<?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>194463</bug_id>
          
          <creation_ts>2019-02-08 16:25:33 -0800</creation_ts>
          <short_desc>[WK2][macOS] Avoid creating new CVDisplayLink objects for each WebProcess</short_desc>
          <delta_ts>2019-02-08 20:38:28 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>pvollan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1504382</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-08 16:25:33 -0800</bug_when>
    <thetext>Avoid creating new CVDisplayLink objects for each WebProcess. We really only need one per display, creating such object is expensive and it is even worse in a PSON world where we swap process on navigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504388</commentid>
    <comment_count>1</comment_count>
      <attachid>361557</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-08 16:28:33 -0800</bug_when>
    <thetext>Created attachment 361557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504394</commentid>
    <comment_count>2</comment_count>
      <attachid>361559</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-08 16:35:43 -0800</bug_when>
    <thetext>Created attachment 361559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504400</commentid>
    <comment_count>3</comment_count>
      <attachid>361563</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-08 16:52:01 -0800</bug_when>
    <thetext>Created attachment 361563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504402</commentid>
    <comment_count>4</comment_count>
      <attachid>361565</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-08 16:56:58 -0800</bug_when>
    <thetext>Created attachment 361565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504408</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-02-08 17:03:59 -0800</bug_when>
    <thetext>Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504493</commentid>
    <comment_count>6</comment_count>
      <attachid>361565</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-08 20:37:03 -0800</bug_when>
    <thetext>Comment on attachment 361565
Patch

Clearing flags on attachment: 361565

Committed r241232: &lt;https://trac.webkit.org/changeset/241232&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504494</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-08 20:37:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504495</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-08 20:38:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/47938388&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361557</attachid>
            <date>2019-02-08 16:28:33 -0800</date>
            <delta_ts>2019-02-08 16:35:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194463-20190208162832.patch</filename>
            <type>text/plain</type>
            <size>15334</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwOTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVhYjM5YTExZDg4ZTMxOTI4
ZjhjODdhZDU3MDdkNjcxZjQ2NDk0Y2QuLjZlMzFjZGViM2EzZDk3ZjIwMjZlMGVlOTYzMjEzMTEy
ZjdhZTUxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTktMDItMDggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXVttYWNPU10gQXZvaWQgY3Jl
YXRpbmcgbmV3IENWRGlzcGxheUxpbmsgb2JqZWN0cyBmb3IgZWFjaCBXZWJQcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ0NjMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdm9pZCBjcmVhdGlu
ZyBuZXcgQ1ZEaXNwbGF5TGluayBvYmplY3RzIGZvciBlYWNoIFdlYlByb2Nlc3MuIFdlIHJlYWxs
eSBvbmx5IG5lZWQgb25lIHBlcgorICAgICAgICBkaXNwbGF5LCBjcmVhdGluZyBzdWNoIG9iamVj
dCBpcyBleHBlbnNpdmUgYW5kIGl0IGlzIGV2ZW4gd29yc2UgaW4gYSBQU09OIHdvcmxkIHdoZXJl
IHdlCisgICAgICAgIHN3YXAgcHJvY2VzcyBvbiBuYXZpZ2F0aW9uLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggbW92ZXMgdGhlIERpc3BsYXlMaW5rIHN0b3JpbmcgZnJvbSBXZWJQcm9jZXNzUHJveHkg
dG8gV2ViUHJvY2Vzc1Bvb2wuIEFsc28sCisgICAgICAgIGEgRGlzcGxheUxpbmsgY2FuIG5vdyBi
ZSBhc3NvY2lhdGVkIHRvIHNldmVyYWwgSVBDIGNvbm5lY3Rpb25zIGluc3RlYWQgb2YgaGF2aW5n
IGEgMToxCisgICAgICAgIG1hcHBpbmcuIFdoZW4gYSBEaXNwbGF5TGluayBubyBsb25nZXIgaGFz
IGFueSBvYnNlcnZlcnMsIHdlIG5vdyBtZXJlbHkgc3RvcCBpdCBpbnN0ZWFkCisgICAgICAgIG9m
IGRlc3Ryb3lpbmcgaXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0RGlzcGxh
eUxpbmspOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c3RvcERpc3BsYXlMaW5r
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN0b3BEaXNwbGF5TGlua3MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
On5XZWJQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBy
b2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNo
dXREb3duKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3Bs
YXlMaW5rOjpEaXNwbGF5TGluayk6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjphZGRP
YnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpyZW1vdmVPYnNlcnZlcik6
CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpyZW1vdmVPYnNlcnZlcnMpOgorICAgICAg
ICAoV2ViS2l0OjpEaXNwbGF5TGluazo6aGFzT2JzZXJ2ZXJzIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6RGlzcGxheUxpbms6OmRpc3BsYXlMaW5rQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvRGlzcGxheUxpbmsuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlByb2Nl
c3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzdGFydERp
c3BsYXlMaW5rKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzdG9wRGlzcGxh
eUxpbmspOgorCiAyMDE5LTAyLTA1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggaU9TIHNpbXVsYXRvciBidWlsZCBhZnRlciByMjQwOTU0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpp
bmRleCAyZGFmNzU1NzFjY2IxYTlkNzA1YmFhMDU3YWQ2MjRhNWE2OThhNDM5Li44MjFiZGNlMjYz
YTBlYWExODRmMDYxZjBlYWVlMzcyZTZlNTFlNDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NjMsNiArNDYz
LDM3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlc2V0SFNUU0hvc3RzQWRkZWRBZnRlckRhdGUo
ZG91YmxlIHN0YXJ0RGF0ZUludGVydmFsU2luY2UxCiAgICAgX0NGTmV0d29ya1Jlc2V0SFNUU0hv
c3RzU2luY2VEYXRlKHByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSwgKF9fYnJpZGdlIENGRGF0ZVJl
ZilzdGFydERhdGUpOwogfQogCisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpzdGFydERpc3Bs
YXlMaW5rKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdW5zaWduZWQgb2JzZXJ2ZXJJRCwg
dWludDMyX3QgZGlzcGxheUlEKQoreworICAgIGZvciAoYXV0byYgZGlzcGxheUxpbmsgOiBtX2Rp
c3BsYXlMaW5rcykgeworICAgICAgICBpZiAoZGlzcGxheUxpbmstPmRpc3BsYXlJRCgpID09IGRp
c3BsYXlJRCkgeworICAgICAgICAgICAgZGlzcGxheUxpbmstPmFkZE9ic2VydmVyKGNvbm5lY3Rp
b24sIG9ic2VydmVySUQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQor
ICAgIGF1dG8gZGlzcGxheUxpbmsgPSBzdGQ6Om1ha2VfdW5pcXVlPERpc3BsYXlMaW5rPihkaXNw
bGF5SUQpOworICAgIGRpc3BsYXlMaW5rLT5hZGRPYnNlcnZlcihjb25uZWN0aW9uLCBvYnNlcnZl
cklEKTsKKyAgICBtX2Rpc3BsYXlMaW5rcy5hcHBlbmQoV1RGTW92ZShkaXNwbGF5TGluaykpOwor
fQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpzdG9wRGlzcGxheUxpbmsoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCB1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50MzJfdCBkaXNwbGF5SUQpCit7
CisgICAgZm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKSB7CisgICAgICAg
IGlmIChkaXNwbGF5TGluay0+ZGlzcGxheUlEKCkgPT0gZGlzcGxheUlEKSB7CisgICAgICAgICAg
ICBkaXNwbGF5TGluay0+cmVtb3ZlT2JzZXJ2ZXIoY29ubmVjdGlvbiwgb2JzZXJ2ZXJJRCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnN0b3BEaXNwbGF5TGlua3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorewor
ICAgIGZvciAoYXV0byYgZGlzcGxheUxpbmsgOiBtX2Rpc3BsYXlMaW5rcykKKyAgICAgICAgZGlz
cGxheUxpbmstPnJlbW92ZU9ic2VydmVycyhjb25uZWN0aW9uKTsKK30KKyNlbmRpZgorCiAvLyBG
SVhNRTogRGVwcmVjYXRlZC4gTGVmdCBoZXJlIHVudGlsIGEgZmluYWwgZGVjaXNpb24gaXMgbWFk
ZS4KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCmluZGV4IDNhZWNkNDI0ZDhiMjdmZWEzZTc1ZWVmMTA2NGQ4MGE2NDQ3ZjJhMjMuLjYxZGM4
NTM1MWVhMDczZWFjMDQzNzgzNTJiM2E4YjJiNzVmMzIwZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtNzEsNiArNzEsMTAgQEAgT0JKQ19DTEFTUyBOU09i
amVjdDsKIE9CSkNfQ0xBU1MgTlNTdHJpbmc7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2luY2x1ZGUgIkRp
c3BsYXlMaW5rLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBdXRvbWF0aW9u
Q2xpZW50OwogY2xhc3MgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50OwpAQCAtMjA4LDYgKzIx
MiwxMiBAQCBwdWJsaWM6CiAgICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5n
LCBIYXNoTWFwPFN0cmluZywgdWludDhfdD4+PiYgcGx1Z2luTG9hZENsaWVudFBvbGljaWVzKCkg
Y29uc3QgeyByZXR1cm4gbV9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXM7IH0KICNlbmRpZgogCisj
aWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJ
TkcpCisgICAgdm9pZCBzdGFydERpc3BsYXlMaW5rKElQQzo6Q29ubmVjdGlvbiYsIHVuc2lnbmVk
IG9ic2VydmVySUQsIHVpbnQzMl90IGRpc3BsYXlJRCk7CisgICAgdm9pZCBzdG9wRGlzcGxheUxp
bmsoSVBDOjpDb25uZWN0aW9uJiwgdW5zaWduZWQgb2JzZXJ2ZXJJRCwgdWludDMyX3QgZGlzcGxh
eUlEKTsKKyAgICB2b2lkIHN0b3BEaXNwbGF5TGlua3MoSVBDOjpDb25uZWN0aW9uJik7CisjZW5k
aWYKKwogICAgIHZvaWQgYWRkU3VwcG9ydGVkUGx1Z2luKFN0cmluZyYmIG1hdGNoaW5nRG9tYWlu
LCBTdHJpbmcmJiBuYW1lLCBIYXNoU2V0PFN0cmluZz4mJiBtaW1lVHlwZXMsIEhhc2hTZXQ8U3Ry
aW5nPiBleHRlbnNpb25zKTsKICAgICB2b2lkIGNsZWFyU3VwcG9ydGVkUGx1Z2lucygpOwogCkBA
IC03MjgsNiArNzM4LDEwIEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlByZXdhcm1JbmZvcm1hdGlvbj4+IG1fcHJld2FybUluZm9ybWF0
aW9uUGVyUmVnaXN0cmFibGVEb21haW47CiAKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShX
RUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyAgICBWZWN0b3I8c3RkOjp1bmlxdWVf
cHRyPERpc3BsYXlMaW5rPj4gbV9kaXNwbGF5TGlua3M7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIGJvb2wgbV9zYW5kYm94RW5hYmxlZCB7IGZhbHNl
IH07CiAgICAgSGFzaE1hcDxDU3RyaW5nLCBTYW5kYm94UGVybWlzc2lvbj4gbV9leHRyYVNhbmRi
b3hQYXRoczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IGIyZGEzYmI4NzY1ZTE2NmY5NzJlNTk2ZGUxZTM3ZWY2YmVkMzlmNzIuLjkyZTc2MjQyMDU1
NDQ4ZTgzZjBkZjJhNmRkOWI0NTk5ZDRhNmJmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTYyLDYgKzE2Miw5IEBAIFdlYlByb2Nlc3NQcm94
eTo6fldlYlByb2Nlc3NQcm94eSgpCiAKICAgICBXZWJQYXN0ZWJvYXJkUHJveHk6OnNpbmdsZXRv
bigpLnJlbW92ZVdlYlByb2Nlc3NQcm94eSgqdGhpcyk7CiAKKyAgICBpZiAoc3RhdGUoKSA9PSBT
dGF0ZTo6UnVubmluZykKKyAgICAgICAgcHJvY2Vzc1Bvb2woKS5zdG9wRGlzcGxheUxpbmtzKCpj
b25uZWN0aW9uKCkpOworCiAgICAgaWYgKG1fd2ViQ29ubmVjdGlvbikKICAgICAgICAgbV93ZWJD
b25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7CiAKQEAgLTI0MCw2ICsyNDMsOCBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkg
PT0gJmNvbm5lY3Rpb24pOwogCisgICAgcHJvY2Vzc1Bvb2woKS5zdG9wRGlzcGxheUxpbmtzKGNv
bm5lY3Rpb24pOworCiAgICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQog
ICAgICAgICBwYWdlLT53ZWJQcm9jZXNzV2lsbFNodXREb3duKCk7CiB9CkBAIC0yNDgsNiArMjUz
LDggQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNodXREb3duKCkKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChpc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQoKSk7CiAKKyAgICBwcm9jZXNzUG9vbCgp
LnN0b3BEaXNwbGF5TGlua3MoKmNvbm5lY3Rpb24oKSk7CisKICAgICBzaHV0RG93blByb2Nlc3Mo
KTsKIAogICAgIGlmIChtX3dlYkNvbm5lY3Rpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggOGRmNWMyNTM0NGMyM2YwMzFkMWQxYmEwNWYzOTYyYWFh
ODVmYzhiMC4uZWE4MDk3OTYyMWU4MTYyYzgyZDYyMDdjYzNlMmI0NjgxYTVmMjE2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTUwLDEwICs1MCw2IEBA
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
LSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9D
S0lORykKLSNpbmNsdWRlICJEaXNwbGF5TGluay5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBBUEkg
ewogY2xhc3MgTmF2aWdhdGlvbjsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwpAQCAtNDIyLDEw
ICs0MTgsNiBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAgICAgUHJvY2Vzc1Ro
cm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4gbV9iYWNrZ3JvdW5kQWN0aXZpdHlUb2tl
bkZvckZ1bGxzY3JlZW5Gb3JtQ29udHJvbHM7CiAjZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpbms+PiBtX2Rpc3BsYXlMaW5rczsKLSNlbmRpZgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvRGlzcGxheUxpbmsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rp
c3BsYXlMaW5rLmNwcAppbmRleCBiZmIwMzI0MjZkOThjZmYzODhiNTEwNDkzNDg0MzgxMWIxMTBl
Zjg5Li4xYWQxNzNiZWVjNDZlNWU4NjMxMzlkMmQ0ZjJiZmFiMWVlNDQ0NDk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTYgKzI4LDEzIEBACiAK
ICNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAKLSNpbmNsdWRl
ICJEcmF3aW5nQXJlYU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgi
Ci0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NQcml2
aWxlZ2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCi1EaXNwbGF5TGluazo6RGlzcGxh
eUxpbmsoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBXZWJQcm9jZXNzUHJv
eHkmIHdlYlByb2Nlc3NQcm94eSkKLSAgICA6IG1fY29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHku
Y29ubmVjdGlvbigpKQotICAgICwgbV9kaXNwbGF5SUQoZGlzcGxheUlEKQorRGlzcGxheUxpbms6
OkRpc3BsYXlMaW5rKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKKyAgICA6
IG1fZGlzcGxheUlEKGRpc3BsYXlJRCkKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVn
ZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIpKTsKICAg
ICBDVlJldHVybiBlcnJvciA9IENWRGlzcGxheUxpbmtDcmVhdGVXaXRoQ0dEaXNwbGF5KGRpc3Bs
YXlJRCwgJm1fZGlzcGxheUxpbmspOwpAQCAtNTEsMTAgKzQ4LDYgQEAgRGlzcGxheUxpbms6OkRp
c3BsYXlMaW5rKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgV2ViUHJvY2Vz
c1Byb3h5JgogICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBzZXQgdGhlIGRpc3BsYXkg
bGluayBvdXRwdXQgY2FsbGJhY2s6ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotCi0gICAgZXJyb3IgPSBDVkRpc3BsYXlMaW5rU3RhcnQobV9kaXNwbGF5TGluayk7Ci0gICAg
aWYgKGVycm9yKQotICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBzdGFydCB0aGUgZGlz
cGxheSBsaW5rOiAlZCIsIGVycm9yKTsKIH0KIAogRGlzcGxheUxpbms6On5EaXNwbGF5TGluaygp
CkBAIC02OCwyOCArNjEsNzMgQEAgRGlzcGxheUxpbms6On5EaXNwbGF5TGluaygpCiAgICAgQ1ZE
aXNwbGF5TGlua1JlbGVhc2UobV9kaXNwbGF5TGluayk7CiB9CiAKLXZvaWQgRGlzcGxheUxpbms6
OmFkZE9ic2VydmVyKHVuc2lnbmVkIG9ic2VydmVySUQpCit2b2lkIERpc3BsYXlMaW5rOjphZGRP
YnNlcnZlcihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVuc2lnbmVkIG9ic2VydmVySUQp
Cit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBib29sIGlzUnVubmluZyA9
ICFtX29ic2VydmVycy5pc0VtcHR5KCk7CisKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fb2JzZXJ2ZXJzTG9jayk7CisgICAgICAgIG1fb2JzZXJ2ZXJzLmVuc3VyZSgmY29ubmVj
dGlvbiwgW10geworICAgICAgICAgICAgcmV0dXJuIFZlY3Rvcjx1bnNpZ25lZD4geyB9OworICAg
ICAgICB9KS5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKG9ic2VydmVySUQpOworICAgIH0KKworICAg
IGlmICghaXNSdW5uaW5nKSB7CisgICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZEaXNwbGF5TGlu
a1N0YXJ0KG1fZGlzcGxheUxpbmspOworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICBX
VEZMb2dBbHdheXMoIkNvdWxkIG5vdCBzdGFydCB0aGUgZGlzcGxheSBsaW5rOiAlZCIsIGVycm9y
KTsKKyAgICB9Cit9CisKK3ZvaWQgRGlzcGxheUxpbms6OnJlbW92ZU9ic2VydmVyKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgdW5zaWduZWQgb2JzZXJ2ZXJJRCkKIHsKLSAgICBtX29ic2Vy
dmVycy5hZGQob2JzZXJ2ZXJJRCk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKwor
ICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYnNlcnZlcnNMb2NrKTsKKworICAg
ICAgICBhdXRvIGl0ID0gbV9vYnNlcnZlcnMuZmluZCgmY29ubmVjdGlvbik7CisgICAgICAgIGlm
IChpdCA9PSBtX29ic2VydmVycy5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
Ym9vbCByZW1vdmVkID0gaXQtPnZhbHVlLnJlbW92ZUZpcnN0KG9ic2VydmVySUQpOworICAgICAg
ICBBU1NFUlRfVU5VU0VEKHJlbW92ZWQsIHJlbW92ZWQpOworICAgICAgICBpZiAoaXQtPnZhbHVl
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShpdCk7CisgICAgfQor
CisgICAgaWYgKG1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgQ1ZEaXNwbGF5TGlua1N0
b3AobV9kaXNwbGF5TGluayk7CiB9CiAKLXZvaWQgRGlzcGxheUxpbms6OnJlbW92ZU9ic2VydmVy
KHVuc2lnbmVkIG9ic2VydmVySUQpCit2b2lkIERpc3BsYXlMaW5rOjpyZW1vdmVPYnNlcnZlcnMo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewotICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShv
YnNlcnZlcklEKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgeworICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29ic2VydmVyc0xvY2spOworICAgICAgICBtX29ic2Vy
dmVycy5yZW1vdmUoJmNvbm5lY3Rpb24pOworICAgIH0KKworICAgIGlmIChtX29ic2VydmVycy5p
c0VtcHR5KCkpCisgICAgICAgIENWRGlzcGxheUxpbmtTdG9wKG1fZGlzcGxheUxpbmspOwogfQog
CiBib29sIERpc3BsYXlMaW5rOjpoYXNPYnNlcnZlcnMoKSBjb25zdAogeworICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiAgICAgcmV0dXJuICFtX29ic2VydmVycy5pc0VtcHR5KCk7CiB9
CiAKIENWUmV0dXJuIERpc3BsYXlMaW5rOjpkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlzcGxheUxp
bmtSZWYgZGlzcGxheUxpbmtSZWYsIGNvbnN0IENWVGltZVN0YW1wKiwgY29uc3QgQ1ZUaW1lU3Rh
bXAqLCBDVk9wdGlvbkZsYWdzLCBDVk9wdGlvbkZsYWdzKiwgdm9pZCogZGF0YSkKIHsKLSAgICBE
aXNwbGF5TGluayogZGlzcGxheUxpbmsgPSBzdGF0aWNfY2FzdDxEaXNwbGF5TGluayo+KGRhdGEp
OwotICAgIGRpc3BsYXlMaW5rLT5tX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3M6OkRpc3BsYXlXYXNSZWZyZXNoZWQoZGlzcGxheUxpbmstPm1fZGlzcGxheUlEKSwgMCk7Cisg
ICAgYXV0byogZGlzcGxheUxpbmsgPSBzdGF0aWNfY2FzdDxEaXNwbGF5TGluayo+KGRhdGEpOwor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKGRpc3BsYXlMaW5rLT5tX29ic2VydmVyc0xvY2spOworICAg
IGZvciAoYXV0byYgY29ubmVjdGlvbiA6IGRpc3BsYXlMaW5rLT5tX29ic2VydmVycy5rZXlzKCkp
CisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRpc3BsYXlX
YXNSZWZyZXNoZWQoZGlzcGxheUxpbmstPm1fZGlzcGxheUlEKSwgMCk7CiAgICAgcmV0dXJuIGtD
VlJldHVyblN1Y2Nlc3M7CiB9CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKaW5kZXggZmUyYzgyNDEw
MWM1YWI4MDE1OTE4MGZjZmM5MTU5OGQwMDU3NGY0OS4uZDQ4YWFhZWMwMGJhNTViYTZjNzkwNTk5
NDZmOTdlYmI5ZWExMjYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L0Rpc3BsYXlMaW5rLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlM
aW5rLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjgsMjUgKzI4LDI0IEBACiAjaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQogCiAjaW5jbHVkZSA8Q29yZVZpZGVvL0NWRGlzcGxheUxpbmsuaD4KLQogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KIAogbmFt
ZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
LQotY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogICAgIAogY2xhc3MgRGlzcGxheUxpbmsgewogcHVi
bGljOgotICAgIERpc3BsYXlMaW5rKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlELCBXZWJQcm9j
ZXNzUHJveHkmKTsKKyAgICBleHBsaWNpdCBEaXNwbGF5TGluayhXZWJDb3JlOjpQbGF0Zm9ybURp
c3BsYXlJRCk7CiAgICAgfkRpc3BsYXlMaW5rKCk7CiAgICAgCi0gICAgdm9pZCBhZGRPYnNlcnZl
cih1bnNpZ25lZCBvYnNlcnZlcklEKTsKLSAgICB2b2lkIHJlbW92ZU9ic2VydmVyKHVuc2lnbmVk
IG9ic2VydmVySUQpOworICAgIHZvaWQgYWRkT2JzZXJ2ZXIoSVBDOjpDb25uZWN0aW9uJiwgdW5z
aWduZWQgb2JzZXJ2ZXJJRCk7CisgICAgdm9pZCByZW1vdmVPYnNlcnZlcihJUEM6OkNvbm5lY3Rp
b24mLCB1bnNpZ25lZCBvYnNlcnZlcklEKTsKKyAgICB2b2lkIHJlbW92ZU9ic2VydmVycyhJUEM6
OkNvbm5lY3Rpb24mKTsKICAgICBib29sIGhhc09ic2VydmVycygpIGNvbnN0OwogCiAgICAgV2Vi
Q29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5SUQ7IH0KQEAgLTU1LDEyICs1NCwxMiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBDVlJldHVy
biBkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlzcGxheUxpbmtSZWYsIGNvbnN0IENWVGltZVN0YW1w
KiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBDVk9wdGlvbkZsYWdzLCBDVk9wdGlvbkZsYWdzKiwgdm9p
ZCogZGF0YSk7CiAgICAgCiAgICAgQ1ZEaXNwbGF5TGlua1JlZiBtX2Rpc3BsYXlMaW5rIHsgbnVs
bHB0ciB9OwotICAgIEhhc2hTZXQ8dW5zaWduZWQ+IG1fb2JzZXJ2ZXJzOwotICAgIFJlZlB0cjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybURpc3Bs
YXlJRCBtX2Rpc3BsYXlJRCB7IDAgfTsKKyAgICBMb2NrIG1fb2JzZXJ2ZXJzTG9jazsKKyAgICBI
YXNoTWFwPFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCBWZWN0b3I8dW5zaWduZWQ+PiBtX29ic2Vy
dmVyczsKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRDsKIH07CiAK
LX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0KaW5kZXggODM5ZWE2ODI5YjMz
ZWI3ZWIwN2VjOTNkNjQ3Yjc5ZWZjMzk3YmI5MS4uZTc1OGMwZWRiMTdlZGIwZDY4YTg0ZGQyMDhj
OTIzMjE0ZDdiZjMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dl
YlByb2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
UHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC03NCwyOSArNzQsMTQgQEAgYm9vbCBXZWJQcm9jZXNzUHJv
eHk6OnNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3RlZENvZGUoKSBjb25zdAogdm9pZCBXZWJQcm9j
ZXNzUHJveHk6OnN0YXJ0RGlzcGxheUxpbmsodW5zaWduZWQgb2JzZXJ2ZXJJRCwgdWludDMyX3Qg
ZGlzcGxheUlEKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2
aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwotICAgIGZvciAoYXV0byYg
ZGlzcGxheUxpbmsgOiBtX2Rpc3BsYXlMaW5rcykgewotICAgICAgICBpZiAoZGlzcGxheUxpbmst
PmRpc3BsYXlJRCgpID09IGRpc3BsYXlJRCkgewotICAgICAgICAgICAgZGlzcGxheUxpbmstPmFk
ZE9ic2VydmVyKG9ic2VydmVySUQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgfQotICAgIGF1dG8gZGlzcGxheUxpbmsgPSBzdGQ6Om1ha2VfdW5pcXVlPERpc3BsYXlMaW5r
PihkaXNwbGF5SUQsICp0aGlzKTsKLSAgICBkaXNwbGF5TGluay0+YWRkT2JzZXJ2ZXIob2JzZXJ2
ZXJJRCk7Ci0gICAgbV9kaXNwbGF5TGlua3MuYXBwZW5kKFdURk1vdmUoZGlzcGxheUxpbmspKTsK
KyAgICBBU1NFUlQoY29ubmVjdGlvbigpKTsKKyAgICBwcm9jZXNzUG9vbCgpLnN0YXJ0RGlzcGxh
eUxpbmsoKmNvbm5lY3Rpb24oKSwgb2JzZXJ2ZXJJRCwgZGlzcGxheUlEKTsKIH0KIAogdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OnN0b3BEaXNwbGF5TGluayh1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50
MzJfdCBkaXNwbGF5SUQpCiB7Ci0gICAgc2l6ZV90IHBvcyA9IDA7Ci0gICAgZm9yIChhdXRvJiBk
aXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKSB7Ci0gICAgICAgIGlmIChkaXNwbGF5TGluay0+
ZGlzcGxheUlEKCkgPT0gZGlzcGxheUlEKSB7Ci0gICAgICAgICAgICBkaXNwbGF5TGluay0+cmVt
b3ZlT2JzZXJ2ZXIob2JzZXJ2ZXJJRCk7Ci0gICAgICAgICAgICBpZiAoIWRpc3BsYXlMaW5rLT5o
YXNPYnNlcnZlcnMoKSkKLSAgICAgICAgICAgICAgICBtX2Rpc3BsYXlMaW5rcy5yZW1vdmUocG9z
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBwb3MrKzsKLSAgICB9
CisgICAgQVNTRVJUKGNvbm5lY3Rpb24oKSk7CisgICAgcHJvY2Vzc1Bvb2woKS5zdG9wRGlzcGxh
eUxpbmsoKmNvbm5lY3Rpb24oKSwgb2JzZXJ2ZXJJRCwgZGlzcGxheUlEKTsKIH0KICNlbmRpZgog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361559</attachid>
            <date>2019-02-08 16:35:43 -0800</date>
            <delta_ts>2019-02-08 16:51:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194463-20190208163543.patch</filename>
            <type>text/plain</type>
            <size>15360</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZjOTFhZDQ0YTM1NmNkYTgz
ZjE0NGM2YWJlNDZkZWEwODZhZjJiYWYuLjNkOTY3ODAyYzliYmY2NTIyZTkzYWIyMGFkNzliN2M5
Mzk3N2Q1YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTktMDItMDggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXVttYWNPU10gQXZvaWQgY3Jl
YXRpbmcgbmV3IENWRGlzcGxheUxpbmsgb2JqZWN0cyBmb3IgZWFjaCBXZWJQcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ0NjMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdm9pZCBjcmVhdGlu
ZyBuZXcgQ1ZEaXNwbGF5TGluayBvYmplY3RzIGZvciBlYWNoIFdlYlByb2Nlc3MuIFdlIHJlYWxs
eSBvbmx5IG5lZWQgb25lIHBlcgorICAgICAgICBkaXNwbGF5LCBjcmVhdGluZyBzdWNoIG9iamVj
dCBpcyBleHBlbnNpdmUgYW5kIGl0IGlzIGV2ZW4gd29yc2UgaW4gYSBQU09OIHdvcmxkIHdoZXJl
IHdlCisgICAgICAgIHN3YXAgcHJvY2VzcyBvbiBuYXZpZ2F0aW9uLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggbW92ZXMgdGhlIERpc3BsYXlMaW5rIHN0b3JpbmcgZnJvbSBXZWJQcm9jZXNzUHJveHkg
dG8gV2ViUHJvY2Vzc1Bvb2wuIEFsc28sCisgICAgICAgIGEgRGlzcGxheUxpbmsgY2FuIG5vdyBi
ZSBhc3NvY2lhdGVkIHRvIHNldmVyYWwgSVBDIGNvbm5lY3Rpb25zIGluc3RlYWQgb2YgaGF2aW5n
IGEgMToxCisgICAgICAgIG1hcHBpbmcuIFdoZW4gYSBEaXNwbGF5TGluayBubyBsb25nZXIgaGFz
IGFueSBvYnNlcnZlcnMsIHdlIG5vdyBtZXJlbHkgc3RvcCBpdCBpbnN0ZWFkCisgICAgICAgIG9m
IGRlc3Ryb3lpbmcgaXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0RGlzcGxh
eUxpbmspOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c3RvcERpc3BsYXlMaW5r
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN0b3BEaXNwbGF5TGlua3MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
On5XZWJQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBy
b2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNo
dXREb3duKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3Bs
YXlMaW5rOjpEaXNwbGF5TGluayk6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjphZGRP
YnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpyZW1vdmVPYnNlcnZlcik6
CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpyZW1vdmVPYnNlcnZlcnMpOgorICAgICAg
ICAoV2ViS2l0OjpEaXNwbGF5TGluazo6aGFzT2JzZXJ2ZXJzIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6RGlzcGxheUxpbms6OmRpc3BsYXlMaW5rQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvRGlzcGxheUxpbmsuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlByb2Nl
c3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzdGFydERp
c3BsYXlMaW5rKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzdG9wRGlzcGxh
eUxpbmspOgorCiAyMDE5LTAyLTA4ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0MTE5Ny4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4
IDJkYWY3NTU3MWNjYjFhOWQ3MDViYWEwNTdhZDYyNGE1YTY5OGE0MzkuLjgyMWJkY2UyNjNhMGVh
YTE4NGYwNjFmMGVhZWUzNzJlNmU1MWU0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ2Myw2ICs0NjMsMzcg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVzZXRIU1RTSG9zdHNBZGRlZEFmdGVyRGF0ZShkb3Vi
bGUgc3RhcnREYXRlSW50ZXJ2YWxTaW5jZTEKICAgICBfQ0ZOZXR3b3JrUmVzZXRIU1RTSG9zdHNT
aW5jZURhdGUocHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpLCAoX19icmlkZ2UgQ0ZEYXRlUmVmKXN0
YXJ0RGF0ZSk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0RGlzcGxheUxp
bmsoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50
MzJfdCBkaXNwbGF5SUQpCit7CisgICAgZm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxh
eUxpbmtzKSB7CisgICAgICAgIGlmIChkaXNwbGF5TGluay0+ZGlzcGxheUlEKCkgPT0gZGlzcGxh
eUlEKSB7CisgICAgICAgICAgICBkaXNwbGF5TGluay0+YWRkT2JzZXJ2ZXIoY29ubmVjdGlvbiwg
b2JzZXJ2ZXJJRCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAg
YXV0byBkaXNwbGF5TGluayA9IHN0ZDo6bWFrZV91bmlxdWU8RGlzcGxheUxpbms+KGRpc3BsYXlJ
RCk7CisgICAgZGlzcGxheUxpbmstPmFkZE9ic2VydmVyKGNvbm5lY3Rpb24sIG9ic2VydmVySUQp
OworICAgIG1fZGlzcGxheUxpbmtzLmFwcGVuZChXVEZNb3ZlKGRpc3BsYXlMaW5rKSk7Cit9CisK
K3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN0b3BEaXNwbGF5TGluayhJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIHVuc2lnbmVkIG9ic2VydmVySUQsIHVpbnQzMl90IGRpc3BsYXlJRCkKK3sKKyAg
ICBmb3IgKGF1dG8mIGRpc3BsYXlMaW5rIDogbV9kaXNwbGF5TGlua3MpIHsKKyAgICAgICAgaWYg
KGRpc3BsYXlMaW5rLT5kaXNwbGF5SUQoKSA9PSBkaXNwbGF5SUQpIHsKKyAgICAgICAgICAgIGRp
c3BsYXlMaW5rLT5yZW1vdmVPYnNlcnZlcihjb25uZWN0aW9uLCBvYnNlcnZlcklEKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBXZWJQcm9jZXNzUG9v
bDo6c3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAg
Zm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKQorICAgICAgICBkaXNwbGF5
TGluay0+cmVtb3ZlT2JzZXJ2ZXJzKGNvbm5lY3Rpb24pOworfQorI2VuZGlmCisKIC8vIEZJWE1F
OiBEZXByZWNhdGVkLiBMZWZ0IGhlcmUgdW50aWwgYSBmaW5hbCBkZWNpc2lvbiBpcyBtYWRlLgog
dm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
aW5kZXggM2FlY2Q0MjRkOGIyN2ZlYTNlNzVlZWYxMDY0ZDgwYTY0NDdmMmEyMy4uNjFkYzg1MzUx
ZWEwNzNlYWMwNDM3ODM1MmIzYThiMmI3NWYzMjBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCkBAIC03MSw2ICs3MSwxMCBAQCBPQkpDX0NMQVNTIE5TT2JqZWN0
OwogT0JKQ19DTEFTUyBOU1N0cmluZzsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaW5jbHVkZSAiRGlzcGxh
eUxpbmsuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF1dG9tYXRpb25DbGll
bnQ7CiBjbGFzcyBDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQ7CkBAIC0yMDgsNiArMjEyLDEy
IEBAIHB1YmxpYzoKICAgICBjb25zdCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhh
c2hNYXA8U3RyaW5nLCB1aW50OF90Pj4+JiBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMoKSBjb25z
dCB7IHJldHVybiBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llczsgfQogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykK
KyAgICB2b2lkIHN0YXJ0RGlzcGxheUxpbmsoSVBDOjpDb25uZWN0aW9uJiwgdW5zaWduZWQgb2Jz
ZXJ2ZXJJRCwgdWludDMyX3QgZGlzcGxheUlEKTsKKyAgICB2b2lkIHN0b3BEaXNwbGF5TGluayhJ
UEM6OkNvbm5lY3Rpb24mLCB1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50MzJfdCBkaXNwbGF5SUQp
OworICAgIHZvaWQgc3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rpb24mKTsKKyNlbmRpZgor
CiAgICAgdm9pZCBhZGRTdXBwb3J0ZWRQbHVnaW4oU3RyaW5nJiYgbWF0Y2hpbmdEb21haW4sIFN0
cmluZyYmIG5hbWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1pbWVUeXBlcywgSGFzaFNldDxTdHJpbmc+
IGV4dGVuc2lvbnMpOwogICAgIHZvaWQgY2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiAKQEAgLTcy
OCw2ICs3MzgsMTAgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uPj4gbV9wcmV3YXJtSW5mb3JtYXRpb25Q
ZXJSZWdpc3RyYWJsZURvbWFpbjsKIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBS
T0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
RGlzcGxheUxpbms+PiBtX2Rpc3BsYXlMaW5rczsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCiAgICAgYm9vbCBtX3NhbmRib3hFbmFibGVkIHsgZmFsc2UgfTsK
ICAgICBIYXNoTWFwPENTdHJpbmcsIFNhbmRib3hQZXJtaXNzaW9uPiBtX2V4dHJhU2FuZGJveFBh
dGhzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
YWNlMzRkNWIzMTE2NmRjMjIwNjFkZjllYTVjNWMwZWE3NGEzYzgzNC4uZDRkNjIwMjg1OGJiYWIx
MzRkOGQ4YTI0MWE1NDJhY2M4NTgwZDA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNjIsNiArMTYyLDkgQEAgV2ViUHJvY2Vzc1Byb3h5Ojp+
V2ViUHJvY2Vzc1Byb3h5KCkKIAogICAgIFdlYlBhc3RlYm9hcmRQcm94eTo6c2luZ2xldG9uKCku
cmVtb3ZlV2ViUHJvY2Vzc1Byb3h5KCp0aGlzKTsKIAorICAgIGlmIChzdGF0ZSgpID09IFN0YXRl
OjpSdW5uaW5nKQorICAgICAgICBwcm9jZXNzUG9vbCgpLnN0b3BEaXNwbGF5TGlua3MoKmNvbm5l
Y3Rpb24oKSk7CisKICAgICBpZiAobV93ZWJDb25uZWN0aW9uKQogICAgICAgICBtX3dlYkNvbm5l
Y3Rpb24tPmludmFsaWRhdGUoKTsKIApAQCAtMjQwLDYgKzI0Myw4IEBAIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikK
IHsKICAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAm
Y29ubmVjdGlvbik7CiAKKyAgICBwcm9jZXNzUG9vbCgpLnN0b3BEaXNwbGF5TGlua3MoY29ubmVj
dGlvbik7CisKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkpCiAgICAg
ICAgIHBhZ2UtPndlYlByb2Nlc3NXaWxsU2h1dERvd24oKTsKIH0KQEAgLTI0OCw2ICsyNTMsOCBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2h1dERvd24oKQogewogICAgIFJFTEVBU0VfQVNTRVJU
KGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpKTsKIAorICAgIHByb2Nlc3NQb29sKCkuc3Rv
cERpc3BsYXlMaW5rcygqY29ubmVjdGlvbigpKTsKKwogICAgIHNodXREb3duUHJvY2VzcygpOwog
CiAgICAgaWYgKG1fd2ViQ29ubmVjdGlvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaAppbmRleCBiMTAzOWVjYjhhZjZjY2U1MTRlZjVhNGM1MTQwMTVmOGU1NWJm
NGMxLi4xY2ZhM2QyZjE1Y2I5YWFjYTMzZTZlZTQ1ZTE0YjE0MWYzODU4MGE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNTAsMTAgKzUwLDYgQEAKICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAotI2lm
IFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5H
KQotI2luY2x1ZGUgIkRpc3BsYXlMaW5rLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIEFQSSB7CiBj
bGFzcyBOYXZpZ2F0aW9uOwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CkBAIC00MjEsMTAgKzQx
Nyw2IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKICAgICBQcm9jZXNzVGhyb3R0
bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbiBtX2JhY2tncm91bmRBY3Rpdml0eVRva2VuRm9y
RnVsbHNjcmVlbkZvcm1Db250cm9sczsKICNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCi0gICAgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxEaXNwbGF5TGluaz4+IG1fZGlzcGxheUxpbmtzOwotI2VuZGlmCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9EaXNwbGF5TGluay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxh
eUxpbmsuY3BwCmluZGV4IGJmYjAzMjQyNmQ5OGNmZjM4OGI1MTA0OTM0ODQzODExYjExMGVmODku
LjFhZDE3M2JlZWM0NmU1ZTg2MzEzOWQyZDRmMmJmYWIxZWU0NDQ0OTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxNiArMjgsMTMgQEAKIAogI2lm
IEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKIAotI2luY2x1ZGUgIkRy
YXdpbmdBcmVhTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVn
ZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAKLURpc3BsYXlMaW5rOjpEaXNwbGF5TGlu
ayhXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIFdlYlByb2Nlc3NQcm94eSYg
d2ViUHJvY2Vzc1Byb3h5KQotICAgIDogbV9jb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eS5jb25u
ZWN0aW9uKCkpCi0gICAgLCBtX2Rpc3BsYXlJRChkaXNwbGF5SUQpCitEaXNwbGF5TGluazo6RGlz
cGxheUxpbmsoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQorICAgIDogbV9k
aXNwbGF5SUQoZGlzcGxheUlEKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFBy
b2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwogICAgIENW
UmV0dXJuIGVycm9yID0gQ1ZEaXNwbGF5TGlua0NyZWF0ZVdpdGhDR0Rpc3BsYXkoZGlzcGxheUlE
LCAmbV9kaXNwbGF5TGluayk7CkBAIC01MSwxMCArNDgsNiBAQCBEaXNwbGF5TGluazo6RGlzcGxh
eUxpbmsoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBXZWJQcm9jZXNzUHJv
eHkmCiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IHNldCB0aGUgZGlzcGxheSBsaW5r
IG91dHB1dCBjYWxsYmFjazogJWQiLCBlcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0K
LSAgICBlcnJvciA9IENWRGlzcGxheUxpbmtTdGFydChtX2Rpc3BsYXlMaW5rKTsKLSAgICBpZiAo
ZXJyb3IpCi0gICAgICAgIFdURkxvZ0Fsd2F5cygiQ291bGQgbm90IHN0YXJ0IHRoZSBkaXNwbGF5
IGxpbms6ICVkIiwgZXJyb3IpOwogfQogCiBEaXNwbGF5TGluazo6fkRpc3BsYXlMaW5rKCkKQEAg
LTY4LDI4ICs2MSw3MyBAQCBEaXNwbGF5TGluazo6fkRpc3BsYXlMaW5rKCkKICAgICBDVkRpc3Bs
YXlMaW5rUmVsZWFzZShtX2Rpc3BsYXlMaW5rKTsKIH0KIAotdm9pZCBEaXNwbGF5TGluazo6YWRk
T2JzZXJ2ZXIodW5zaWduZWQgb2JzZXJ2ZXJJRCkKK3ZvaWQgRGlzcGxheUxpbms6OmFkZE9ic2Vy
dmVyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdW5zaWduZWQgb2JzZXJ2ZXJJRCkKK3sK
KyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIGJvb2wgaXNSdW5uaW5nID0gIW1f
b2JzZXJ2ZXJzLmlzRW1wdHkoKTsKKworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9vYnNlcnZlcnNMb2NrKTsKKyAgICAgICAgbV9vYnNlcnZlcnMuZW5zdXJlKCZjb25uZWN0aW9u
LCBbXSB7CisgICAgICAgICAgICByZXR1cm4gVmVjdG9yPHVuc2lnbmVkPiB7IH07CisgICAgICAg
IH0pLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQob2JzZXJ2ZXJJRCk7CisgICAgfQorCisgICAgaWYg
KCFpc1J1bm5pbmcpIHsKKyAgICAgICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVkRpc3BsYXlMaW5rU3Rh
cnQobV9kaXNwbGF5TGluayk7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIFdURkxv
Z0Fsd2F5cygiQ291bGQgbm90IHN0YXJ0IHRoZSBkaXNwbGF5IGxpbms6ICVkIiwgZXJyb3IpOwor
ICAgIH0KK30KKwordm9pZCBEaXNwbGF5TGluazo6cmVtb3ZlT2JzZXJ2ZXIoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCB1bnNpZ25lZCBvYnNlcnZlcklEKQogewotICAgIG1fb2JzZXJ2ZXJz
LmFkZChvYnNlcnZlcklEKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAg
eworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29ic2VydmVyc0xvY2spOworCisgICAgICAg
IGF1dG8gaXQgPSBtX29ic2VydmVycy5maW5kKCZjb25uZWN0aW9uKTsKKyAgICAgICAgaWYgKGl0
ID09IG1fb2JzZXJ2ZXJzLmVuZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBib29s
IHJlbW92ZWQgPSBpdC0+dmFsdWUucmVtb3ZlRmlyc3Qob2JzZXJ2ZXJJRCk7CisgICAgICAgIEFT
U0VSVF9VTlVTRUQocmVtb3ZlZCwgcmVtb3ZlZCk7CisgICAgICAgIGlmIChpdC0+dmFsdWUuaXNF
bXB0eSgpKQorICAgICAgICAgICAgbV9vYnNlcnZlcnMucmVtb3ZlKGl0KTsKKyAgICB9CisKKyAg
ICBpZiAobV9vYnNlcnZlcnMuaXNFbXB0eSgpKQorICAgICAgICBDVkRpc3BsYXlMaW5rU3RvcCht
X2Rpc3BsYXlMaW5rKTsKIH0KIAotdm9pZCBEaXNwbGF5TGluazo6cmVtb3ZlT2JzZXJ2ZXIodW5z
aWduZWQgb2JzZXJ2ZXJJRCkKK3ZvaWQgRGlzcGxheUxpbms6OnJlbW92ZU9ic2VydmVycyhJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7Ci0gICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2Vy
dmVySUQpOworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICB7CisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJzTG9jayk7CisgICAgICAgIG1fb2JzZXJ2ZXJz
LnJlbW92ZSgmY29ubmVjdGlvbik7CisgICAgfQorCisgICAgaWYgKG1fb2JzZXJ2ZXJzLmlzRW1w
dHkoKSkKKyAgICAgICAgQ1ZEaXNwbGF5TGlua1N0b3AobV9kaXNwbGF5TGluayk7CiB9CiAKIGJv
b2wgRGlzcGxheUxpbms6Omhhc09ic2VydmVycygpIGNvbnN0CiB7CisgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKICAgICByZXR1cm4gIW1fb2JzZXJ2ZXJzLmlzRW1wdHkoKTsKIH0KIAog
Q1ZSZXR1cm4gRGlzcGxheUxpbms6OmRpc3BsYXlMaW5rQ2FsbGJhY2soQ1ZEaXNwbGF5TGlua1Jl
ZiBkaXNwbGF5TGlua1JlZiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBjb25zdCBDVlRpbWVTdGFtcCos
IENWT3B0aW9uRmxhZ3MsIENWT3B0aW9uRmxhZ3MqLCB2b2lkKiBkYXRhKQogewotICAgIERpc3Bs
YXlMaW5rKiBkaXNwbGF5TGluayA9IHN0YXRpY19jYXN0PERpc3BsYXlMaW5rKj4oZGF0YSk7Ci0g
ICAgZGlzcGxheUxpbmstPm1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
RGlzcGxheVdhc1JlZnJlc2hlZChkaXNwbGF5TGluay0+bV9kaXNwbGF5SUQpLCAwKTsKKyAgICBh
dXRvKiBkaXNwbGF5TGluayA9IHN0YXRpY19jYXN0PERpc3BsYXlMaW5rKj4oZGF0YSk7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIoZGlzcGxheUxpbmstPm1fb2JzZXJ2ZXJzTG9jayk7CisgICAgZm9y
IChhdXRvJiBjb25uZWN0aW9uIDogZGlzcGxheUxpbmstPm1fb2JzZXJ2ZXJzLmtleXMoKSkKKyAg
ICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RGlzcGxheVdhc1Jl
ZnJlc2hlZChkaXNwbGF5TGluay0+bV9kaXNwbGF5SUQpLCAwKTsKICAgICByZXR1cm4ga0NWUmV0
dXJuU3VjY2VzczsKIH0KIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuaAppbmRleCBmYzljOGQ3YjkyZWYz
NTQ0OWQzZTM4OWFjYzIyYWJlOTk2MDNkOGEwLi5mMzRhNDY1MWJmNTE4MzViMzRlNjM4ZmQwYTE4
MjE0ZmQwYjNlZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlz
cGxheUxpbmsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yOCwyNiArMjgsMjUgQEAKICNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxP
Q0tJTkcpCiAKICNpbmNsdWRlIDxDb3JlVmlkZW8vQ1ZEaXNwbGF5TGluay5oPgotCiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Cisj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogCiBuYW1lc3Bh
Y2UgSVBDIHsKIGNsYXNzIENvbm5lY3Rpb247CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotCi1j
bGFzcyBXZWJQcm9jZXNzUHJveHk7CiAgICAgCiBjbGFzcyBEaXNwbGF5TGluayB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgRGlzcGxheUxpbmsoV2ViQ29yZTo6
UGxhdGZvcm1EaXNwbGF5SUQsIFdlYlByb2Nlc3NQcm94eSYpOworICAgIGV4cGxpY2l0IERpc3Bs
YXlMaW5rKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKTsKICAgICB+RGlzcGxheUxpbmsoKTsK
ICAgICAKLSAgICB2b2lkIGFkZE9ic2VydmVyKHVuc2lnbmVkIG9ic2VydmVySUQpOwotICAgIHZv
aWQgcmVtb3ZlT2JzZXJ2ZXIodW5zaWduZWQgb2JzZXJ2ZXJJRCk7CisgICAgdm9pZCBhZGRPYnNl
cnZlcihJUEM6OkNvbm5lY3Rpb24mLCB1bnNpZ25lZCBvYnNlcnZlcklEKTsKKyAgICB2b2lkIHJl
bW92ZU9ic2VydmVyKElQQzo6Q29ubmVjdGlvbiYsIHVuc2lnbmVkIG9ic2VydmVySUQpOworICAg
IHZvaWQgcmVtb3ZlT2JzZXJ2ZXJzKElQQzo6Q29ubmVjdGlvbiYpOwogICAgIGJvb2wgaGFzT2Jz
ZXJ2ZXJzKCkgY29uc3Q7CiAKICAgICBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5
SUQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlJRDsgfQpAQCAtNTYsMTIgKzU1LDEyIEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIENWUmV0dXJuIGRpc3BsYXlMaW5rQ2FsbGJhY2soQ1ZEaXNwbGF5
TGlua1JlZiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBjb25zdCBDVlRpbWVTdGFtcCosIENWT3B0aW9u
RmxhZ3MsIENWT3B0aW9uRmxhZ3MqLCB2b2lkKiBkYXRhKTsKICAgICAKICAgICBDVkRpc3BsYXlM
aW5rUmVmIG1fZGlzcGxheUxpbmsgeyBudWxscHRyIH07Ci0gICAgSGFzaFNldDx1bnNpZ25lZD4g
bV9vYnNlcnZlcnM7Ci0gICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwot
ICAgIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIG1fZGlzcGxheUlEIHsgMCB9OworICAgIExv
Y2sgbV9vYnNlcnZlcnNMb2NrOworICAgIEhhc2hNYXA8UmVmUHRyPElQQzo6Q29ubmVjdGlvbj4s
IFZlY3Rvcjx1bnNpZ25lZD4+IG1fb2JzZXJ2ZXJzOworICAgIFdlYkNvcmU6OlBsYXRmb3JtRGlz
cGxheUlEIG1fZGlzcGxheUlEOwogfTsKIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUHJvY2Vz
c1Byb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94
eU1hYy5tbQppbmRleCA4MzllYTY4MjliMzNlYjdlYjA3ZWM5M2Q2NDdiNzllZmMzOTdiYjkxLi5l
NzU4YzBlZGIxN2VkYjBkNjhhODRkZDIwOGM5MjMyMTRkN2JmMzA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0KQEAgLTc0LDI5ICs3
NCwxNCBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6c2hvdWxkQWxsb3dOb25WYWxpZEluamVjdGVk
Q29kZSgpIGNvbnN0CiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnREaXNwbGF5TGluayh1bnNp
Z25lZCBvYnNlcnZlcklELCB1aW50MzJfdCBkaXNwbGF5SUQpCiB7CiAgICAgQVNTRVJUKGhhc1By
b2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQ29tbXVuaWNhdGVXaXRoV2luZG93
U2VydmVyKSk7Ci0gICAgZm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKSB7
Ci0gICAgICAgIGlmIChkaXNwbGF5TGluay0+ZGlzcGxheUlEKCkgPT0gZGlzcGxheUlEKSB7Ci0g
ICAgICAgICAgICBkaXNwbGF5TGluay0+YWRkT2JzZXJ2ZXIob2JzZXJ2ZXJJRCk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgYXV0byBkaXNwbGF5TGluayA9IHN0
ZDo6bWFrZV91bmlxdWU8RGlzcGxheUxpbms+KGRpc3BsYXlJRCwgKnRoaXMpOwotICAgIGRpc3Bs
YXlMaW5rLT5hZGRPYnNlcnZlcihvYnNlcnZlcklEKTsKLSAgICBtX2Rpc3BsYXlMaW5rcy5hcHBl
bmQoV1RGTW92ZShkaXNwbGF5TGluaykpOworICAgIEFTU0VSVChjb25uZWN0aW9uKCkpOworICAg
IHByb2Nlc3NQb29sKCkuc3RhcnREaXNwbGF5TGluaygqY29ubmVjdGlvbigpLCBvYnNlcnZlcklE
LCBkaXNwbGF5SUQpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RvcERpc3BsYXlMaW5r
KHVuc2lnbmVkIG9ic2VydmVySUQsIHVpbnQzMl90IGRpc3BsYXlJRCkKIHsKLSAgICBzaXplX3Qg
cG9zID0gMDsKLSAgICBmb3IgKGF1dG8mIGRpc3BsYXlMaW5rIDogbV9kaXNwbGF5TGlua3MpIHsK
LSAgICAgICAgaWYgKGRpc3BsYXlMaW5rLT5kaXNwbGF5SUQoKSA9PSBkaXNwbGF5SUQpIHsKLSAg
ICAgICAgICAgIGRpc3BsYXlMaW5rLT5yZW1vdmVPYnNlcnZlcihvYnNlcnZlcklEKTsKLSAgICAg
ICAgICAgIGlmICghZGlzcGxheUxpbmstPmhhc09ic2VydmVycygpKQotICAgICAgICAgICAgICAg
IG1fZGlzcGxheUxpbmtzLnJlbW92ZShwb3MpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0gICAgICAgIHBvcysrOwotICAgIH0KKyAgICBBU1NFUlQoY29ubmVjdGlvbigpKTsKKyAg
ICBwcm9jZXNzUG9vbCgpLnN0b3BEaXNwbGF5TGluaygqY29ubmVjdGlvbigpLCBvYnNlcnZlcklE
LCBkaXNwbGF5SUQpOwogfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361563</attachid>
            <date>2019-02-08 16:52:01 -0800</date>
            <delta_ts>2019-02-08 16:56:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194463-20190208165200.patch</filename>
            <type>text/plain</type>
            <size>15142</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZjOTFhZDQ0YTM1NmNkYTgz
ZjE0NGM2YWJlNDZkZWEwODZhZjJiYWYuLjNkOTY3ODAyYzliYmY2NTIyZTkzYWIyMGFkNzliN2M5
Mzk3N2Q1YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTktMDItMDggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXVttYWNPU10gQXZvaWQgY3Jl
YXRpbmcgbmV3IENWRGlzcGxheUxpbmsgb2JqZWN0cyBmb3IgZWFjaCBXZWJQcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ0NjMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdm9pZCBjcmVhdGlu
ZyBuZXcgQ1ZEaXNwbGF5TGluayBvYmplY3RzIGZvciBlYWNoIFdlYlByb2Nlc3MuIFdlIHJlYWxs
eSBvbmx5IG5lZWQgb25lIHBlcgorICAgICAgICBkaXNwbGF5LCBjcmVhdGluZyBzdWNoIG9iamVj
dCBpcyBleHBlbnNpdmUgYW5kIGl0IGlzIGV2ZW4gd29yc2UgaW4gYSBQU09OIHdvcmxkIHdoZXJl
IHdlCisgICAgICAgIHN3YXAgcHJvY2VzcyBvbiBuYXZpZ2F0aW9uLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggbW92ZXMgdGhlIERpc3BsYXlMaW5rIHN0b3JpbmcgZnJvbSBXZWJQcm9jZXNzUHJveHkg
dG8gV2ViUHJvY2Vzc1Bvb2wuIEFsc28sCisgICAgICAgIGEgRGlzcGxheUxpbmsgY2FuIG5vdyBi
ZSBhc3NvY2lhdGVkIHRvIHNldmVyYWwgSVBDIGNvbm5lY3Rpb25zIGluc3RlYWQgb2YgaGF2aW5n
IGEgMToxCisgICAgICAgIG1hcHBpbmcuIFdoZW4gYSBEaXNwbGF5TGluayBubyBsb25nZXIgaGFz
IGFueSBvYnNlcnZlcnMsIHdlIG5vdyBtZXJlbHkgc3RvcCBpdCBpbnN0ZWFkCisgICAgICAgIG9m
IGRlc3Ryb3lpbmcgaXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0RGlzcGxh
eUxpbmspOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c3RvcERpc3BsYXlMaW5r
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN0b3BEaXNwbGF5TGlua3MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
On5XZWJQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBy
b2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNo
dXREb3duKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3Bs
YXlMaW5rOjpEaXNwbGF5TGluayk6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjphZGRP
YnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpyZW1vdmVPYnNlcnZlcik6
CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpyZW1vdmVPYnNlcnZlcnMpOgorICAgICAg
ICAoV2ViS2l0OjpEaXNwbGF5TGluazo6aGFzT2JzZXJ2ZXJzIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6RGlzcGxheUxpbms6OmRpc3BsYXlMaW5rQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvRGlzcGxheUxpbmsuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlByb2Nl
c3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzdGFydERp
c3BsYXlMaW5rKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzdG9wRGlzcGxh
eUxpbmspOgorCiAyMDE5LTAyLTA4ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0MTE5Ny4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4
IDJkYWY3NTU3MWNjYjFhOWQ3MDViYWEwNTdhZDYyNGE1YTY5OGE0MzkuLjgyMWJkY2UyNjNhMGVh
YTE4NGYwNjFmMGVhZWUzNzJlNmU1MWU0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ2Myw2ICs0NjMsMzcg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVzZXRIU1RTSG9zdHNBZGRlZEFmdGVyRGF0ZShkb3Vi
bGUgc3RhcnREYXRlSW50ZXJ2YWxTaW5jZTEKICAgICBfQ0ZOZXR3b3JrUmVzZXRIU1RTSG9zdHNT
aW5jZURhdGUocHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpLCAoX19icmlkZ2UgQ0ZEYXRlUmVmKXN0
YXJ0RGF0ZSk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0RGlzcGxheUxp
bmsoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50
MzJfdCBkaXNwbGF5SUQpCit7CisgICAgZm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxh
eUxpbmtzKSB7CisgICAgICAgIGlmIChkaXNwbGF5TGluay0+ZGlzcGxheUlEKCkgPT0gZGlzcGxh
eUlEKSB7CisgICAgICAgICAgICBkaXNwbGF5TGluay0+YWRkT2JzZXJ2ZXIoY29ubmVjdGlvbiwg
b2JzZXJ2ZXJJRCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAg
YXV0byBkaXNwbGF5TGluayA9IHN0ZDo6bWFrZV91bmlxdWU8RGlzcGxheUxpbms+KGRpc3BsYXlJ
RCk7CisgICAgZGlzcGxheUxpbmstPmFkZE9ic2VydmVyKGNvbm5lY3Rpb24sIG9ic2VydmVySUQp
OworICAgIG1fZGlzcGxheUxpbmtzLmFwcGVuZChXVEZNb3ZlKGRpc3BsYXlMaW5rKSk7Cit9CisK
K3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN0b3BEaXNwbGF5TGluayhJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIHVuc2lnbmVkIG9ic2VydmVySUQsIHVpbnQzMl90IGRpc3BsYXlJRCkKK3sKKyAg
ICBmb3IgKGF1dG8mIGRpc3BsYXlMaW5rIDogbV9kaXNwbGF5TGlua3MpIHsKKyAgICAgICAgaWYg
KGRpc3BsYXlMaW5rLT5kaXNwbGF5SUQoKSA9PSBkaXNwbGF5SUQpIHsKKyAgICAgICAgICAgIGRp
c3BsYXlMaW5rLT5yZW1vdmVPYnNlcnZlcihjb25uZWN0aW9uLCBvYnNlcnZlcklEKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBXZWJQcm9jZXNzUG9v
bDo6c3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAg
Zm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKQorICAgICAgICBkaXNwbGF5
TGluay0+cmVtb3ZlT2JzZXJ2ZXJzKGNvbm5lY3Rpb24pOworfQorI2VuZGlmCisKIC8vIEZJWE1F
OiBEZXByZWNhdGVkLiBMZWZ0IGhlcmUgdW50aWwgYSBmaW5hbCBkZWNpc2lvbiBpcyBtYWRlLgog
dm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
aW5kZXggM2FlY2Q0MjRkOGIyN2ZlYTNlNzVlZWYxMDY0ZDgwYTY0NDdmMmEyMy4uNjFkYzg1MzUx
ZWEwNzNlYWMwNDM3ODM1MmIzYThiMmI3NWYzMjBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCkBAIC03MSw2ICs3MSwxMCBAQCBPQkpDX0NMQVNTIE5TT2JqZWN0
OwogT0JKQ19DTEFTUyBOU1N0cmluZzsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaW5jbHVkZSAiRGlzcGxh
eUxpbmsuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF1dG9tYXRpb25DbGll
bnQ7CiBjbGFzcyBDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQ7CkBAIC0yMDgsNiArMjEyLDEy
IEBAIHB1YmxpYzoKICAgICBjb25zdCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhh
c2hNYXA8U3RyaW5nLCB1aW50OF90Pj4+JiBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMoKSBjb25z
dCB7IHJldHVybiBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llczsgfQogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykK
KyAgICB2b2lkIHN0YXJ0RGlzcGxheUxpbmsoSVBDOjpDb25uZWN0aW9uJiwgdW5zaWduZWQgb2Jz
ZXJ2ZXJJRCwgdWludDMyX3QgZGlzcGxheUlEKTsKKyAgICB2b2lkIHN0b3BEaXNwbGF5TGluayhJ
UEM6OkNvbm5lY3Rpb24mLCB1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50MzJfdCBkaXNwbGF5SUQp
OworICAgIHZvaWQgc3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rpb24mKTsKKyNlbmRpZgor
CiAgICAgdm9pZCBhZGRTdXBwb3J0ZWRQbHVnaW4oU3RyaW5nJiYgbWF0Y2hpbmdEb21haW4sIFN0
cmluZyYmIG5hbWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1pbWVUeXBlcywgSGFzaFNldDxTdHJpbmc+
IGV4dGVuc2lvbnMpOwogICAgIHZvaWQgY2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiAKQEAgLTcy
OCw2ICs3MzgsMTAgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uPj4gbV9wcmV3YXJtSW5mb3JtYXRpb25Q
ZXJSZWdpc3RyYWJsZURvbWFpbjsKIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBS
T0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
RGlzcGxheUxpbms+PiBtX2Rpc3BsYXlMaW5rczsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCiAgICAgYm9vbCBtX3NhbmRib3hFbmFibGVkIHsgZmFsc2UgfTsK
ICAgICBIYXNoTWFwPENTdHJpbmcsIFNhbmRib3hQZXJtaXNzaW9uPiBtX2V4dHJhU2FuZGJveFBh
dGhzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
YWNlMzRkNWIzMTE2NmRjMjIwNjFkZjllYTVjNWMwZWE3NGEzYzgzNC4uZDRjMjMwNmM1MGZiODg3
ZDlmOTRiNmNmNjQxMzU4ZDUwNjZlZGJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNjIsNiArMTYyLDkgQEAgV2ViUHJvY2Vzc1Byb3h5Ojp+
V2ViUHJvY2Vzc1Byb3h5KCkKIAogICAgIFdlYlBhc3RlYm9hcmRQcm94eTo6c2luZ2xldG9uKCku
cmVtb3ZlV2ViUHJvY2Vzc1Byb3h5KCp0aGlzKTsKIAorICAgIGlmIChzdGF0ZSgpID09IFN0YXRl
OjpSdW5uaW5nKQorICAgICAgICBwcm9jZXNzUG9vbCgpLnN0b3BEaXNwbGF5TGlua3MoKmNvbm5l
Y3Rpb24oKSk7CisKICAgICBpZiAobV93ZWJDb25uZWN0aW9uKQogICAgICAgICBtX3dlYkNvbm5l
Y3Rpb24tPmludmFsaWRhdGUoKTsKIApAQCAtMjQwLDYgKzI0Myw4IEBAIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikK
IHsKICAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAm
Y29ubmVjdGlvbik7CiAKKyAgICBwcm9jZXNzUG9vbCgpLnN0b3BEaXNwbGF5TGlua3MoY29ubmVj
dGlvbik7CisKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkpCiAgICAg
ICAgIHBhZ2UtPndlYlByb2Nlc3NXaWxsU2h1dERvd24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYjEwMzllY2I4YWY2Y2NlNTE0ZWY1YTRjNTE0
MDE1ZjhlNTViZjRjMS4uMWNmYTNkMmYxNWNiOWFhY2EzM2U2ZWU0NWUxNGIxNDFmMzg1ODBhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTUwLDEwICs1
MCw2IEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZF
Ul9CTE9DS0lORykKLSNpbmNsdWRlICJEaXNwbGF5TGluay5oIgotI2VuZGlmCi0KIG5hbWVzcGFj
ZSBBUEkgewogY2xhc3MgTmF2aWdhdGlvbjsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwpAQCAt
NDIxLDEwICs0MTcsNiBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAgICAgUHJv
Y2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4gbV9iYWNrZ3JvdW5kQWN0aXZp
dHlUb2tlbkZvckZ1bGxzY3JlZW5Gb3JtQ29udHJvbHM7CiAjZW5kaWYKLQotI2lmIFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheUxpbms+PiBtX2Rpc3BsYXlMaW5rczsKLSNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL0Rpc3BsYXlMaW5rLmNwcAppbmRleCBiZmIwMzI0MjZkOThjZmYzODhiNTEwNDkzNDg0Mzgx
MWIxMTBlZjg5Li4xYWQxNzNiZWVjNDZlNWU4NjMxMzlkMmQ0ZjJiZmFiMWVlNDQ0NDk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTYgKzI4LDEz
IEBACiAKICNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAKLSNp
bmNsdWRlICJEcmF3aW5nQXJlYU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8d3RmL1Byb2Nl
c3NQcml2aWxlZ2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCi1EaXNwbGF5TGluazo6
RGlzcGxheUxpbmsoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBXZWJQcm9j
ZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSkKLSAgICA6IG1fY29ubmVjdGlvbih3ZWJQcm9jZXNz
UHJveHkuY29ubmVjdGlvbigpKQotICAgICwgbV9kaXNwbGF5SUQoZGlzcGxheUlEKQorRGlzcGxh
eUxpbms6OkRpc3BsYXlMaW5rKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkK
KyAgICA6IG1fZGlzcGxheUlEKGRpc3BsYXlJRCkKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1By
aXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIp
KTsKICAgICBDVlJldHVybiBlcnJvciA9IENWRGlzcGxheUxpbmtDcmVhdGVXaXRoQ0dEaXNwbGF5
KGRpc3BsYXlJRCwgJm1fZGlzcGxheUxpbmspOwpAQCAtNTEsMTAgKzQ4LDYgQEAgRGlzcGxheUxp
bms6OkRpc3BsYXlMaW5rKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgV2Vi
UHJvY2Vzc1Byb3h5JgogICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBzZXQgdGhlIGRp
c3BsYXkgbGluayBvdXRwdXQgY2FsbGJhY2s6ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotCi0gICAgZXJyb3IgPSBDVkRpc3BsYXlMaW5rU3RhcnQobV9kaXNwbGF5TGluayk7
Ci0gICAgaWYgKGVycm9yKQotICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBzdGFydCB0
aGUgZGlzcGxheSBsaW5rOiAlZCIsIGVycm9yKTsKIH0KIAogRGlzcGxheUxpbms6On5EaXNwbGF5
TGluaygpCkBAIC02OCwyOCArNjEsNzMgQEAgRGlzcGxheUxpbms6On5EaXNwbGF5TGluaygpCiAg
ICAgQ1ZEaXNwbGF5TGlua1JlbGVhc2UobV9kaXNwbGF5TGluayk7CiB9CiAKLXZvaWQgRGlzcGxh
eUxpbms6OmFkZE9ic2VydmVyKHVuc2lnbmVkIG9ic2VydmVySUQpCit2b2lkIERpc3BsYXlMaW5r
OjphZGRPYnNlcnZlcihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVuc2lnbmVkIG9ic2Vy
dmVySUQpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBib29sIGlzUnVu
bmluZyA9ICFtX29ic2VydmVycy5pc0VtcHR5KCk7CisKKyAgICB7CisgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fb2JzZXJ2ZXJzTG9jayk7CisgICAgICAgIG1fb2JzZXJ2ZXJzLmVuc3VyZSgm
Y29ubmVjdGlvbiwgW10geworICAgICAgICAgICAgcmV0dXJuIFZlY3Rvcjx1bnNpZ25lZD4geyB9
OworICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKG9ic2VydmVySUQpOworICAgIH0K
KworICAgIGlmICghaXNSdW5uaW5nKSB7CisgICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZEaXNw
bGF5TGlua1N0YXJ0KG1fZGlzcGxheUxpbmspOworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAg
ICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBzdGFydCB0aGUgZGlzcGxheSBsaW5rOiAlZCIs
IGVycm9yKTsKKyAgICB9Cit9CisKK3ZvaWQgRGlzcGxheUxpbms6OnJlbW92ZU9ic2VydmVyKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdW5zaWduZWQgb2JzZXJ2ZXJJRCkKIHsKLSAgICBt
X29ic2VydmVycy5hZGQob2JzZXJ2ZXJJRCk7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKKworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYnNlcnZlcnNMb2NrKTsK
KworICAgICAgICBhdXRvIGl0ID0gbV9vYnNlcnZlcnMuZmluZCgmY29ubmVjdGlvbik7CisgICAg
ICAgIGlmIChpdCA9PSBtX29ic2VydmVycy5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgYm9vbCByZW1vdmVkID0gaXQtPnZhbHVlLnJlbW92ZUZpcnN0KG9ic2VydmVySUQpOwor
ICAgICAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWQsIHJlbW92ZWQpOworICAgICAgICBpZiAoaXQt
PnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShpdCk7Cisg
ICAgfQorCisgICAgaWYgKG1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgQ1ZEaXNwbGF5
TGlua1N0b3AobV9kaXNwbGF5TGluayk7CiB9CiAKLXZvaWQgRGlzcGxheUxpbms6OnJlbW92ZU9i
c2VydmVyKHVuc2lnbmVkIG9ic2VydmVySUQpCit2b2lkIERpc3BsYXlMaW5rOjpyZW1vdmVPYnNl
cnZlcnMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewotICAgIG1fb2JzZXJ2ZXJzLnJl
bW92ZShvYnNlcnZlcklEKTsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAg
eworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29ic2VydmVyc0xvY2spOworICAgICAgICBt
X29ic2VydmVycy5yZW1vdmUoJmNvbm5lY3Rpb24pOworICAgIH0KKworICAgIGlmIChtX29ic2Vy
dmVycy5pc0VtcHR5KCkpCisgICAgICAgIENWRGlzcGxheUxpbmtTdG9wKG1fZGlzcGxheUxpbmsp
OwogfQogCiBib29sIERpc3BsYXlMaW5rOjpoYXNPYnNlcnZlcnMoKSBjb25zdAogeworICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgcmV0dXJuICFtX29ic2VydmVycy5pc0VtcHR5
KCk7CiB9CiAKIENWUmV0dXJuIERpc3BsYXlMaW5rOjpkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlz
cGxheUxpbmtSZWYgZGlzcGxheUxpbmtSZWYsIGNvbnN0IENWVGltZVN0YW1wKiwgY29uc3QgQ1ZU
aW1lU3RhbXAqLCBDVk9wdGlvbkZsYWdzLCBDVk9wdGlvbkZsYWdzKiwgdm9pZCogZGF0YSkKIHsK
LSAgICBEaXNwbGF5TGluayogZGlzcGxheUxpbmsgPSBzdGF0aWNfY2FzdDxEaXNwbGF5TGluayo+
KGRhdGEpOwotICAgIGRpc3BsYXlMaW5rLT5tX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OkRpc3BsYXlXYXNSZWZyZXNoZWQoZGlzcGxheUxpbmstPm1fZGlzcGxheUlEKSwg
MCk7CisgICAgYXV0byogZGlzcGxheUxpbmsgPSBzdGF0aWNfY2FzdDxEaXNwbGF5TGluayo+KGRh
dGEpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKGRpc3BsYXlMaW5rLT5tX29ic2VydmVyc0xvY2sp
OworICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IGRpc3BsYXlMaW5rLT5tX29ic2VydmVycy5r
ZXlzKCkpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRp
c3BsYXlXYXNSZWZyZXNoZWQoZGlzcGxheUxpbmstPm1fZGlzcGxheUlEKSwgMCk7CiAgICAgcmV0
dXJuIGtDVlJldHVyblN1Y2Nlc3M7CiB9CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGlu
ay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKaW5kZXggZmM5
YzhkN2I5MmVmMzU0NDlkM2UzODlhY2MyMmFiZTk5NjAzZDhhMC4uZjM0YTQ2NTFiZjUxODM1YjM0
ZTYzOGZkMGExODIxNGZkMGIzZWQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL0Rpc3BsYXlMaW5rLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rp
c3BsYXlMaW5rLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjgsMjYgKzI4LDI1IEBACiAjaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9X
U0VSVkVSX0JMT0NLSU5HKQogCiAjaW5jbHVkZSA8Q29yZVZpZGVvL0NWRGlzcGxheUxpbmsuaD4K
LQogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KLSNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4K
IAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKLQotY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogICAgIAogY2xhc3MgRGlzcGxheUxpbmsg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIERpc3BsYXlMaW5r
KFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlELCBXZWJQcm9jZXNzUHJveHkmKTsKKyAgICBleHBs
aWNpdCBEaXNwbGF5TGluayhXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CiAgICAgfkRpc3Bs
YXlMaW5rKCk7CiAgICAgCi0gICAgdm9pZCBhZGRPYnNlcnZlcih1bnNpZ25lZCBvYnNlcnZlcklE
KTsKLSAgICB2b2lkIHJlbW92ZU9ic2VydmVyKHVuc2lnbmVkIG9ic2VydmVySUQpOworICAgIHZv
aWQgYWRkT2JzZXJ2ZXIoSVBDOjpDb25uZWN0aW9uJiwgdW5zaWduZWQgb2JzZXJ2ZXJJRCk7Cisg
ICAgdm9pZCByZW1vdmVPYnNlcnZlcihJUEM6OkNvbm5lY3Rpb24mLCB1bnNpZ25lZCBvYnNlcnZl
cklEKTsKKyAgICB2b2lkIHJlbW92ZU9ic2VydmVycyhJUEM6OkNvbm5lY3Rpb24mKTsKICAgICBi
b29sIGhhc09ic2VydmVycygpIGNvbnN0OwogCiAgICAgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5
SUQgZGlzcGxheUlEKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5SUQ7IH0KQEAgLTU2LDEyICs1
NSwxMiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBDVlJldHVybiBkaXNwbGF5TGlua0NhbGxiYWNr
KENWRGlzcGxheUxpbmtSZWYsIGNvbnN0IENWVGltZVN0YW1wKiwgY29uc3QgQ1ZUaW1lU3RhbXAq
LCBDVk9wdGlvbkZsYWdzLCBDVk9wdGlvbkZsYWdzKiwgdm9pZCogZGF0YSk7CiAgICAgCiAgICAg
Q1ZEaXNwbGF5TGlua1JlZiBtX2Rpc3BsYXlMaW5rIHsgbnVsbHB0ciB9OwotICAgIEhhc2hTZXQ8
dW5zaWduZWQ+IG1fb2JzZXJ2ZXJzOwotICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRCB7IDAg
fTsKKyAgICBMb2NrIG1fb2JzZXJ2ZXJzTG9jazsKKyAgICBIYXNoTWFwPFJlZlB0cjxJUEM6OkNv
bm5lY3Rpb24+LCBWZWN0b3I8dW5zaWduZWQ+PiBtX29ic2VydmVyczsKKyAgICBXZWJDb3JlOjpQ
bGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRDsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYlByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQ
cm9jZXNzUHJveHlNYWMubW0KaW5kZXggODM5ZWE2ODI5YjMzZWI3ZWIwN2VjOTNkNjQ3Yjc5ZWZj
Mzk3YmI5MS4uZTc1OGMwZWRiMTdlZGIwZDY4YTg0ZGQyMDhjOTIzMjE0ZDdiZjMwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1Byb3h5TWFjLm1tCkBA
IC03NCwyOSArNzQsMTQgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OnNob3VsZEFsbG93Tm9uVmFs
aWRJbmplY3RlZENvZGUoKSBjb25zdAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0RGlzcGxh
eUxpbmsodW5zaWduZWQgb2JzZXJ2ZXJJRCwgdWludDMyX3QgZGlzcGxheUlEKQogewogICAgIEFT
U0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRl
V2l0aFdpbmRvd1NlcnZlcikpOwotICAgIGZvciAoYXV0byYgZGlzcGxheUxpbmsgOiBtX2Rpc3Bs
YXlMaW5rcykgewotICAgICAgICBpZiAoZGlzcGxheUxpbmstPmRpc3BsYXlJRCgpID09IGRpc3Bs
YXlJRCkgewotICAgICAgICAgICAgZGlzcGxheUxpbmstPmFkZE9ic2VydmVyKG9ic2VydmVySUQp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotICAgIGF1dG8gZGlzcGxh
eUxpbmsgPSBzdGQ6Om1ha2VfdW5pcXVlPERpc3BsYXlMaW5rPihkaXNwbGF5SUQsICp0aGlzKTsK
LSAgICBkaXNwbGF5TGluay0+YWRkT2JzZXJ2ZXIob2JzZXJ2ZXJJRCk7Ci0gICAgbV9kaXNwbGF5
TGlua3MuYXBwZW5kKFdURk1vdmUoZGlzcGxheUxpbmspKTsKKyAgICBBU1NFUlQoY29ubmVjdGlv
bigpKTsKKyAgICBwcm9jZXNzUG9vbCgpLnN0YXJ0RGlzcGxheUxpbmsoKmNvbm5lY3Rpb24oKSwg
b2JzZXJ2ZXJJRCwgZGlzcGxheUlEKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0b3BE
aXNwbGF5TGluayh1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50MzJfdCBkaXNwbGF5SUQpCiB7Ci0g
ICAgc2l6ZV90IHBvcyA9IDA7Ci0gICAgZm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxh
eUxpbmtzKSB7Ci0gICAgICAgIGlmIChkaXNwbGF5TGluay0+ZGlzcGxheUlEKCkgPT0gZGlzcGxh
eUlEKSB7Ci0gICAgICAgICAgICBkaXNwbGF5TGluay0+cmVtb3ZlT2JzZXJ2ZXIob2JzZXJ2ZXJJ
RCk7Ci0gICAgICAgICAgICBpZiAoIWRpc3BsYXlMaW5rLT5oYXNPYnNlcnZlcnMoKSkKLSAgICAg
ICAgICAgICAgICBtX2Rpc3BsYXlMaW5rcy5yZW1vdmUocG9zKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgICAgICBwb3MrKzsKLSAgICB9CisgICAgQVNTRVJUKGNvbm5lY3Rp
b24oKSk7CisgICAgcHJvY2Vzc1Bvb2woKS5zdG9wRGlzcGxheUxpbmsoKmNvbm5lY3Rpb24oKSwg
b2JzZXJ2ZXJJRCwgZGlzcGxheUlEKTsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361565</attachid>
            <date>2019-02-08 16:56:58 -0800</date>
            <delta_ts>2019-02-08 20:37:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194463-20190208165657.patch</filename>
            <type>text/plain</type>
            <size>15286</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZjOTFhZDQ0YTM1NmNkYTgz
ZjE0NGM2YWJlNDZkZWEwODZhZjJiYWYuLjNkOTY3ODAyYzliYmY2NTIyZTkzYWIyMGFkNzliN2M5
Mzk3N2Q1YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTktMDItMDggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXVttYWNPU10gQXZvaWQgY3Jl
YXRpbmcgbmV3IENWRGlzcGxheUxpbmsgb2JqZWN0cyBmb3IgZWFjaCBXZWJQcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ0NjMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdm9pZCBjcmVhdGlu
ZyBuZXcgQ1ZEaXNwbGF5TGluayBvYmplY3RzIGZvciBlYWNoIFdlYlByb2Nlc3MuIFdlIHJlYWxs
eSBvbmx5IG5lZWQgb25lIHBlcgorICAgICAgICBkaXNwbGF5LCBjcmVhdGluZyBzdWNoIG9iamVj
dCBpcyBleHBlbnNpdmUgYW5kIGl0IGlzIGV2ZW4gd29yc2UgaW4gYSBQU09OIHdvcmxkIHdoZXJl
IHdlCisgICAgICAgIHN3YXAgcHJvY2VzcyBvbiBuYXZpZ2F0aW9uLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggbW92ZXMgdGhlIERpc3BsYXlMaW5rIHN0b3JpbmcgZnJvbSBXZWJQcm9jZXNzUHJveHkg
dG8gV2ViUHJvY2Vzc1Bvb2wuIEFsc28sCisgICAgICAgIGEgRGlzcGxheUxpbmsgY2FuIG5vdyBi
ZSBhc3NvY2lhdGVkIHRvIHNldmVyYWwgSVBDIGNvbm5lY3Rpb25zIGluc3RlYWQgb2YgaGF2aW5n
IGEgMToxCisgICAgICAgIG1hcHBpbmcuIFdoZW4gYSBEaXNwbGF5TGluayBubyBsb25nZXIgaGFz
IGFueSBvYnNlcnZlcnMsIHdlIG5vdyBtZXJlbHkgc3RvcCBpdCBpbnN0ZWFkCisgICAgICAgIG9m
IGRlc3Ryb3lpbmcgaXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0RGlzcGxh
eUxpbmspOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c3RvcERpc3BsYXlMaW5r
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN0b3BEaXNwbGF5TGlua3MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
On5XZWJQcm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBy
b2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNo
dXREb3duKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpc3Bs
YXlMaW5rOjpEaXNwbGF5TGluayk6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjphZGRP
YnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpyZW1vdmVPYnNlcnZlcik6
CisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlMaW5rOjpyZW1vdmVPYnNlcnZlcnMpOgorICAgICAg
ICAoV2ViS2l0OjpEaXNwbGF5TGluazo6aGFzT2JzZXJ2ZXJzIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6RGlzcGxheUxpbms6OmRpc3BsYXlMaW5rQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvRGlzcGxheUxpbmsuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlByb2Nl
c3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzdGFydERp
c3BsYXlMaW5rKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzdG9wRGlzcGxh
eUxpbmspOgorCiAyMDE5LTAyLTA4ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0MTE5Ny4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4
IDJkYWY3NTU3MWNjYjFhOWQ3MDViYWEwNTdhZDYyNGE1YTY5OGE0MzkuLjgyMWJkY2UyNjNhMGVh
YTE4NGYwNjFmMGVhZWUzNzJlNmU1MWU0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ2Myw2ICs0NjMsMzcg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVzZXRIU1RTSG9zdHNBZGRlZEFmdGVyRGF0ZShkb3Vi
bGUgc3RhcnREYXRlSW50ZXJ2YWxTaW5jZTEKICAgICBfQ0ZOZXR3b3JrUmVzZXRIU1RTSG9zdHNT
aW5jZURhdGUocHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpLCAoX19icmlkZ2UgQ0ZEYXRlUmVmKXN0
YXJ0RGF0ZSk7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0RGlzcGxheUxp
bmsoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50
MzJfdCBkaXNwbGF5SUQpCit7CisgICAgZm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxh
eUxpbmtzKSB7CisgICAgICAgIGlmIChkaXNwbGF5TGluay0+ZGlzcGxheUlEKCkgPT0gZGlzcGxh
eUlEKSB7CisgICAgICAgICAgICBkaXNwbGF5TGluay0+YWRkT2JzZXJ2ZXIoY29ubmVjdGlvbiwg
b2JzZXJ2ZXJJRCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAg
YXV0byBkaXNwbGF5TGluayA9IHN0ZDo6bWFrZV91bmlxdWU8RGlzcGxheUxpbms+KGRpc3BsYXlJ
RCk7CisgICAgZGlzcGxheUxpbmstPmFkZE9ic2VydmVyKGNvbm5lY3Rpb24sIG9ic2VydmVySUQp
OworICAgIG1fZGlzcGxheUxpbmtzLmFwcGVuZChXVEZNb3ZlKGRpc3BsYXlMaW5rKSk7Cit9CisK
K3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN0b3BEaXNwbGF5TGluayhJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIHVuc2lnbmVkIG9ic2VydmVySUQsIHVpbnQzMl90IGRpc3BsYXlJRCkKK3sKKyAg
ICBmb3IgKGF1dG8mIGRpc3BsYXlMaW5rIDogbV9kaXNwbGF5TGlua3MpIHsKKyAgICAgICAgaWYg
KGRpc3BsYXlMaW5rLT5kaXNwbGF5SUQoKSA9PSBkaXNwbGF5SUQpIHsKKyAgICAgICAgICAgIGRp
c3BsYXlMaW5rLT5yZW1vdmVPYnNlcnZlcihjb25uZWN0aW9uLCBvYnNlcnZlcklEKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBXZWJQcm9jZXNzUG9v
bDo6c3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAg
Zm9yIChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKQorICAgICAgICBkaXNwbGF5
TGluay0+cmVtb3ZlT2JzZXJ2ZXJzKGNvbm5lY3Rpb24pOworfQorI2VuZGlmCisKIC8vIEZJWE1F
OiBEZXByZWNhdGVkLiBMZWZ0IGhlcmUgdW50aWwgYSBmaW5hbCBkZWNpc2lvbiBpcyBtYWRlLgog
dm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
aW5kZXggM2FlY2Q0MjRkOGIyN2ZlYTNlNzVlZWYxMDY0ZDgwYTY0NDdmMmEyMy4uNjFkYzg1MzUx
ZWEwNzNlYWMwNDM3ODM1MmIzYThiMmI3NWYzMjBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCkBAIC03MSw2ICs3MSwxMCBAQCBPQkpDX0NMQVNTIE5TT2JqZWN0
OwogT0JKQ19DTEFTUyBOU1N0cmluZzsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaW5jbHVkZSAiRGlzcGxh
eUxpbmsuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF1dG9tYXRpb25DbGll
bnQ7CiBjbGFzcyBDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQ7CkBAIC0yMDgsNiArMjEyLDEy
IEBAIHB1YmxpYzoKICAgICBjb25zdCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhh
c2hNYXA8U3RyaW5nLCB1aW50OF90Pj4+JiBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMoKSBjb25z
dCB7IHJldHVybiBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llczsgfQogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykK
KyAgICB2b2lkIHN0YXJ0RGlzcGxheUxpbmsoSVBDOjpDb25uZWN0aW9uJiwgdW5zaWduZWQgb2Jz
ZXJ2ZXJJRCwgdWludDMyX3QgZGlzcGxheUlEKTsKKyAgICB2b2lkIHN0b3BEaXNwbGF5TGluayhJ
UEM6OkNvbm5lY3Rpb24mLCB1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50MzJfdCBkaXNwbGF5SUQp
OworICAgIHZvaWQgc3RvcERpc3BsYXlMaW5rcyhJUEM6OkNvbm5lY3Rpb24mKTsKKyNlbmRpZgor
CiAgICAgdm9pZCBhZGRTdXBwb3J0ZWRQbHVnaW4oU3RyaW5nJiYgbWF0Y2hpbmdEb21haW4sIFN0
cmluZyYmIG5hbWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1pbWVUeXBlcywgSGFzaFNldDxTdHJpbmc+
IGV4dGVuc2lvbnMpOwogICAgIHZvaWQgY2xlYXJTdXBwb3J0ZWRQbHVnaW5zKCk7CiAKQEAgLTcy
OCw2ICs3MzgsMTAgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uPj4gbV9wcmV3YXJtSW5mb3JtYXRpb25Q
ZXJSZWdpc3RyYWJsZURvbWFpbjsKIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBS
T0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
RGlzcGxheUxpbms+PiBtX2Rpc3BsYXlMaW5rczsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCiAgICAgYm9vbCBtX3NhbmRib3hFbmFibGVkIHsgZmFsc2UgfTsK
ICAgICBIYXNoTWFwPENTdHJpbmcsIFNhbmRib3hQZXJtaXNzaW9uPiBtX2V4dHJhU2FuZGJveFBh
dGhzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
YWNlMzRkNWIzMTE2NmRjMjIwNjFkZjllYTVjNWMwZWE3NGEzYzgzNC4uOTIwYzI1YmMxZDNiMTFm
YmY1MDQyYzZjODFlYTc3ODlkOWQ5NTIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNjIsNiArMTYyLDExIEBAIFdlYlByb2Nlc3NQcm94eTo6
fldlYlByb2Nlc3NQcm94eSgpCiAKICAgICBXZWJQYXN0ZWJvYXJkUHJveHk6OnNpbmdsZXRvbigp
LnJlbW92ZVdlYlByb2Nlc3NQcm94eSgqdGhpcyk7CiAKKyNpZiBQTEFURk9STShNQUMpICYmIEVO
QUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyAgICBpZiAoc3RhdGUoKSA9
PSBTdGF0ZTo6UnVubmluZykKKyAgICAgICAgcHJvY2Vzc1Bvb2woKS5zdG9wRGlzcGxheUxpbmtz
KCpjb25uZWN0aW9uKCkpOworI2VuZGlmCisKICAgICBpZiAobV93ZWJDb25uZWN0aW9uKQogICAg
ICAgICBtX3dlYkNvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKIApAQCAtMjQwLDYgKzI0NSwxMCBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCB0aGlzLT5j
b25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOwogCisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisgICAgcHJvY2Vzc1Bvb2woKS5z
dG9wRGlzcGxheUxpbmtzKGNvbm5lY3Rpb24pOworI2VuZGlmCisKICAgICBmb3IgKGF1dG8mIHBh
Z2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkpCiAgICAgICAgIHBhZ2UtPndlYlByb2Nlc3NXaWxsU2h1
dERvd24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggYjEwMzllY2I4YWY2Y2NlNTE0ZWY1YTRjNTE0MDE1ZjhlNTViZjRjMS4uMWNmYTNkMmYxNWNi
OWFhY2EzM2U2ZWU0NWUxNGIxNDFmMzg1ODBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTUwLDEwICs1MCw2IEBACiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKLSNpZiBQTEFURk9STShNQUMpICYm
IEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLSNpbmNsdWRlICJEaXNw
bGF5TGluay5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgTmF2aWdhdGlvbjsK
IGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwpAQCAtNDIxLDEwICs0MTcsNiBAQCBwcml2YXRlOgog
I2lmIFBMQVRGT1JNKFdBVENIT1MpCiAgICAgUHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFj
dGl2aXR5VG9rZW4gbV9iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbkZvckZ1bGxzY3JlZW5Gb3JtQ29u
dHJvbHM7CiAjZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1Nf
V0lORE9XU0VSVkVSX0JMT0NLSU5HKQotICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxh
eUxpbms+PiBtX2Rpc3BsYXlMaW5rczsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvRGlzcGxheUxpbmsu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmNwcAppbmRleCBi
ZmIwMzI0MjZkOThjZmYzODhiNTEwNDkzNDg0MzgxMWIxMTBlZjg5Li4xYWQxNzNiZWVjNDZlNWU4
NjMxMzlkMmQ0ZjJiZmFiMWVlNDQ0NDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvRGlzcGxheUxpbmsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9EaXNwbGF5TGluay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
OC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjgsMTYgKzI4LDEzIEBACiAKICNpZiBFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAKLSNpbmNsdWRlICJEcmF3aW5nQXJlYU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vz
c1Byb3h5LmgiCiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAgICAgCi1EaXNwbGF5TGluazo6RGlzcGxheUxpbmsoV2ViQ29yZTo6UGxhdGZv
cm1EaXNwbGF5SUQgZGlzcGxheUlELCBXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSkK
LSAgICA6IG1fY29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHkuY29ubmVjdGlvbigpKQotICAgICwg
bV9kaXNwbGF5SUQoZGlzcGxheUlEKQorRGlzcGxheUxpbms6OkRpc3BsYXlMaW5rKFdlYkNvcmU6
OlBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKKyAgICA6IG1fZGlzcGxheUlEKGRpc3BsYXlJ
RCkKIHsKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpD
YW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIpKTsKICAgICBDVlJldHVybiBlcnJvciA9IENW
RGlzcGxheUxpbmtDcmVhdGVXaXRoQ0dEaXNwbGF5KGRpc3BsYXlJRCwgJm1fZGlzcGxheUxpbmsp
OwpAQCAtNTEsMTAgKzQ4LDYgQEAgRGlzcGxheUxpbms6OkRpc3BsYXlMaW5rKFdlYkNvcmU6OlBs
YXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgV2ViUHJvY2Vzc1Byb3h5JgogICAgICAgICBXVEZM
b2dBbHdheXMoIkNvdWxkIG5vdCBzZXQgdGhlIGRpc3BsYXkgbGluayBvdXRwdXQgY2FsbGJhY2s6
ICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgZXJyb3IgPSBDVkRp
c3BsYXlMaW5rU3RhcnQobV9kaXNwbGF5TGluayk7Ci0gICAgaWYgKGVycm9yKQotICAgICAgICBX
VEZMb2dBbHdheXMoIkNvdWxkIG5vdCBzdGFydCB0aGUgZGlzcGxheSBsaW5rOiAlZCIsIGVycm9y
KTsKIH0KIAogRGlzcGxheUxpbms6On5EaXNwbGF5TGluaygpCkBAIC02OCwyOCArNjEsNzMgQEAg
RGlzcGxheUxpbms6On5EaXNwbGF5TGluaygpCiAgICAgQ1ZEaXNwbGF5TGlua1JlbGVhc2UobV9k
aXNwbGF5TGluayk7CiB9CiAKLXZvaWQgRGlzcGxheUxpbms6OmFkZE9ic2VydmVyKHVuc2lnbmVk
IG9ic2VydmVySUQpCit2b2lkIERpc3BsYXlMaW5rOjphZGRPYnNlcnZlcihJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIHVuc2lnbmVkIG9ic2VydmVySUQpCit7CisgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKKyAgICBib29sIGlzUnVubmluZyA9ICFtX29ic2VydmVycy5pc0VtcHR5
KCk7CisKKyAgICB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJzTG9jayk7
CisgICAgICAgIG1fb2JzZXJ2ZXJzLmVuc3VyZSgmY29ubmVjdGlvbiwgW10geworICAgICAgICAg
ICAgcmV0dXJuIFZlY3Rvcjx1bnNpZ25lZD4geyB9OworICAgICAgICB9KS5pdGVyYXRvci0+dmFs
dWUuYXBwZW5kKG9ic2VydmVySUQpOworICAgIH0KKworICAgIGlmICghaXNSdW5uaW5nKSB7Cisg
ICAgICAgIENWUmV0dXJuIGVycm9yID0gQ1ZEaXNwbGF5TGlua1N0YXJ0KG1fZGlzcGxheUxpbmsp
OworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5v
dCBzdGFydCB0aGUgZGlzcGxheSBsaW5rOiAlZCIsIGVycm9yKTsKKyAgICB9Cit9CisKK3ZvaWQg
RGlzcGxheUxpbms6OnJlbW92ZU9ic2VydmVyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
dW5zaWduZWQgb2JzZXJ2ZXJJRCkKIHsKLSAgICBtX29ic2VydmVycy5hZGQob2JzZXJ2ZXJJRCk7
CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIHsKKyAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9vYnNlcnZlcnNMb2NrKTsKKworICAgICAgICBhdXRvIGl0ID0gbV9vYnNl
cnZlcnMuZmluZCgmY29ubmVjdGlvbik7CisgICAgICAgIGlmIChpdCA9PSBtX29ic2VydmVycy5l
bmQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYm9vbCByZW1vdmVkID0gaXQtPnZh
bHVlLnJlbW92ZUZpcnN0KG9ic2VydmVySUQpOworICAgICAgICBBU1NFUlRfVU5VU0VEKHJlbW92
ZWQsIHJlbW92ZWQpOworICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShpdCk7CisgICAgfQorCisgICAgaWYgKG1fb2JzZXJ2ZXJz
LmlzRW1wdHkoKSkKKyAgICAgICAgQ1ZEaXNwbGF5TGlua1N0b3AobV9kaXNwbGF5TGluayk7CiB9
CiAKLXZvaWQgRGlzcGxheUxpbms6OnJlbW92ZU9ic2VydmVyKHVuc2lnbmVkIG9ic2VydmVySUQp
Cit2b2lkIERpc3BsYXlMaW5rOjpyZW1vdmVPYnNlcnZlcnMoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKQogewotICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShvYnNlcnZlcklEKTsKKyAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX29ic2VydmVyc0xvY2spOworICAgICAgICBtX29ic2VydmVycy5yZW1vdmUoJmNvbm5lY3Rp
b24pOworICAgIH0KKworICAgIGlmIChtX29ic2VydmVycy5pc0VtcHR5KCkpCisgICAgICAgIENW
RGlzcGxheUxpbmtTdG9wKG1fZGlzcGxheUxpbmspOwogfQogCiBib29sIERpc3BsYXlMaW5rOjpo
YXNPYnNlcnZlcnMoKSBjb25zdAogeworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAg
ICAgcmV0dXJuICFtX29ic2VydmVycy5pc0VtcHR5KCk7CiB9CiAKIENWUmV0dXJuIERpc3BsYXlM
aW5rOjpkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlzcGxheUxpbmtSZWYgZGlzcGxheUxpbmtSZWYs
IGNvbnN0IENWVGltZVN0YW1wKiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBDVk9wdGlvbkZsYWdzLCBD
Vk9wdGlvbkZsYWdzKiwgdm9pZCogZGF0YSkKIHsKLSAgICBEaXNwbGF5TGluayogZGlzcGxheUxp
bmsgPSBzdGF0aWNfY2FzdDxEaXNwbGF5TGluayo+KGRhdGEpOwotICAgIGRpc3BsYXlMaW5rLT5t
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRpc3BsYXlXYXNSZWZyZXNo
ZWQoZGlzcGxheUxpbmstPm1fZGlzcGxheUlEKSwgMCk7CisgICAgYXV0byogZGlzcGxheUxpbmsg
PSBzdGF0aWNfY2FzdDxEaXNwbGF5TGluayo+KGRhdGEpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KGRpc3BsYXlMaW5rLT5tX29ic2VydmVyc0xvY2spOworICAgIGZvciAoYXV0byYgY29ubmVjdGlv
biA6IGRpc3BsYXlMaW5rLT5tX29ic2VydmVycy5rZXlzKCkpCisgICAgICAgIGNvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRpc3BsYXlXYXNSZWZyZXNoZWQoZGlzcGxheUxp
bmstPm1fZGlzcGxheUlEKSwgMCk7CiAgICAgcmV0dXJuIGtDVlJldHVyblN1Y2Nlc3M7CiB9CiAK
LX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9EaXNwbGF5TGluay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL0Rpc3BsYXlMaW5rLmgKaW5kZXggZmM5YzhkN2I5MmVmMzU0NDlkM2UzODlhY2MyMmFi
ZTk5NjAzZDhhMC4uZjM0YTQ2NTFiZjUxODM1YjM0ZTYzOGZkMGExODIxNGZkMGIzZWQ0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0Rpc3BsYXlMaW5rLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMjYgKzI4LDI1IEBA
CiAjaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogCiAjaW5jbHVk
ZSA8Q29yZVZpZGVvL0NWRGlzcGxheUxpbmsuaD4KLQogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZv
cm1TY3JlZW4uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBD
b25uZWN0aW9uOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUHJvY2Vzc1By
b3h5OwogICAgIAogY2xhc3MgRGlzcGxheUxpbmsgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIERpc3BsYXlMaW5rKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlE
LCBXZWJQcm9jZXNzUHJveHkmKTsKKyAgICBleHBsaWNpdCBEaXNwbGF5TGluayhXZWJDb3JlOjpQ
bGF0Zm9ybURpc3BsYXlJRCk7CiAgICAgfkRpc3BsYXlMaW5rKCk7CiAgICAgCi0gICAgdm9pZCBh
ZGRPYnNlcnZlcih1bnNpZ25lZCBvYnNlcnZlcklEKTsKLSAgICB2b2lkIHJlbW92ZU9ic2VydmVy
KHVuc2lnbmVkIG9ic2VydmVySUQpOworICAgIHZvaWQgYWRkT2JzZXJ2ZXIoSVBDOjpDb25uZWN0
aW9uJiwgdW5zaWduZWQgb2JzZXJ2ZXJJRCk7CisgICAgdm9pZCByZW1vdmVPYnNlcnZlcihJUEM6
OkNvbm5lY3Rpb24mLCB1bnNpZ25lZCBvYnNlcnZlcklEKTsKKyAgICB2b2lkIHJlbW92ZU9ic2Vy
dmVycyhJUEM6OkNvbm5lY3Rpb24mKTsKICAgICBib29sIGhhc09ic2VydmVycygpIGNvbnN0Owog
CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKCkgY29uc3QgeyByZXR1
cm4gbV9kaXNwbGF5SUQ7IH0KQEAgLTU2LDEyICs1NSwxMiBAQCBwcml2YXRlOgogICAgIHN0YXRp
YyBDVlJldHVybiBkaXNwbGF5TGlua0NhbGxiYWNrKENWRGlzcGxheUxpbmtSZWYsIGNvbnN0IENW
VGltZVN0YW1wKiwgY29uc3QgQ1ZUaW1lU3RhbXAqLCBDVk9wdGlvbkZsYWdzLCBDVk9wdGlvbkZs
YWdzKiwgdm9pZCogZGF0YSk7CiAgICAgCiAgICAgQ1ZEaXNwbGF5TGlua1JlZiBtX2Rpc3BsYXlM
aW5rIHsgbnVsbHB0ciB9OwotICAgIEhhc2hTZXQ8dW5zaWduZWQ+IG1fb2JzZXJ2ZXJzOwotICAg
IFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICBXZWJDb3JlOjpQbGF0
Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRCB7IDAgfTsKKyAgICBMb2NrIG1fb2JzZXJ2ZXJzTG9j
azsKKyAgICBIYXNoTWFwPFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+LCBWZWN0b3I8dW5zaWduZWQ+
PiBtX29ic2VydmVyczsKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJ
RDsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0KaW5kZXggODM5
ZWE2ODI5YjMzZWI3ZWIwN2VjOTNkNjQ3Yjc5ZWZjMzk3YmI5MS4uZTc1OGMwZWRiMTdlZGIwZDY4
YTg0ZGQyMDhjOTIzMjE0ZDdiZjMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV2ViUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC03NCwyOSArNzQsMTQgQEAgYm9vbCBXZWJQ
cm9jZXNzUHJveHk6OnNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3RlZENvZGUoKSBjb25zdAogdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnN0YXJ0RGlzcGxheUxpbmsodW5zaWduZWQgb2JzZXJ2ZXJJRCwg
dWludDMyX3QgZGlzcGxheUlEKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFBy
b2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwotICAgIGZv
ciAoYXV0byYgZGlzcGxheUxpbmsgOiBtX2Rpc3BsYXlMaW5rcykgewotICAgICAgICBpZiAoZGlz
cGxheUxpbmstPmRpc3BsYXlJRCgpID09IGRpc3BsYXlJRCkgewotICAgICAgICAgICAgZGlzcGxh
eUxpbmstPmFkZE9ic2VydmVyKG9ic2VydmVySUQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgfQotICAgIGF1dG8gZGlzcGxheUxpbmsgPSBzdGQ6Om1ha2VfdW5pcXVlPERp
c3BsYXlMaW5rPihkaXNwbGF5SUQsICp0aGlzKTsKLSAgICBkaXNwbGF5TGluay0+YWRkT2JzZXJ2
ZXIob2JzZXJ2ZXJJRCk7Ci0gICAgbV9kaXNwbGF5TGlua3MuYXBwZW5kKFdURk1vdmUoZGlzcGxh
eUxpbmspKTsKKyAgICBBU1NFUlQoY29ubmVjdGlvbigpKTsKKyAgICBwcm9jZXNzUG9vbCgpLnN0
YXJ0RGlzcGxheUxpbmsoKmNvbm5lY3Rpb24oKSwgb2JzZXJ2ZXJJRCwgZGlzcGxheUlEKTsKIH0K
IAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnN0b3BEaXNwbGF5TGluayh1bnNpZ25lZCBvYnNlcnZl
cklELCB1aW50MzJfdCBkaXNwbGF5SUQpCiB7Ci0gICAgc2l6ZV90IHBvcyA9IDA7Ci0gICAgZm9y
IChhdXRvJiBkaXNwbGF5TGluayA6IG1fZGlzcGxheUxpbmtzKSB7Ci0gICAgICAgIGlmIChkaXNw
bGF5TGluay0+ZGlzcGxheUlEKCkgPT0gZGlzcGxheUlEKSB7Ci0gICAgICAgICAgICBkaXNwbGF5
TGluay0+cmVtb3ZlT2JzZXJ2ZXIob2JzZXJ2ZXJJRCk7Ci0gICAgICAgICAgICBpZiAoIWRpc3Bs
YXlMaW5rLT5oYXNPYnNlcnZlcnMoKSkKLSAgICAgICAgICAgICAgICBtX2Rpc3BsYXlMaW5rcy5y
ZW1vdmUocG9zKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBwb3Mr
KzsKLSAgICB9CisgICAgQVNTRVJUKGNvbm5lY3Rpb24oKSk7CisgICAgcHJvY2Vzc1Bvb2woKS5z
dG9wRGlzcGxheUxpbmsoKmNvbm5lY3Rpb24oKSwgb2JzZXJ2ZXJJRCwgZGlzcGxheUlEKTsKIH0K
ICNlbmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>