<?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>179142</bug_id>
          
          <creation_ts>2017-11-01 15:53:34 -0700</creation_ts>
          <short_desc>Drop running Service Worker Jobs on a background thread</short_desc>
          <delta_ts>2017-11-15 12:42:42 -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>WebCore Misc.</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>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1367090</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-01 15:53:34 -0700</bug_when>
    <thetext>Drop running Service Worker Jobs on a background thread. We don&apos;t really need to and this simplifies the logic a lot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367092</commentid>
    <comment_count>1</comment_count>
      <attachid>325644</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-01 15:59:27 -0700</bug_when>
    <thetext>Created attachment 325644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367098</commentid>
    <comment_count>2</comment_count>
      <attachid>325644</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-11-01 16:14:36 -0700</bug_when>
    <thetext>Comment on attachment 325644
Patch

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

&gt; Source/WebCore/workers/service/server/SWServer.cpp:75
&gt; +    ASSERT(isMainThread());

Do we still need these 3 asserts now? For future persistency work maybe, right now they do not add much.

&gt; Source/WebCore/workers/service/server/SWServerJobQueue.cpp:198
&gt;      // If jobâs job type is update, and newestWorkerâs script url does not equal jobâs script url with the exclude fragments flag set, then:

s/job&apos;s job/job&apos;s/

&gt; Source/WebCore/workers/service/server/SWServerJobQueue.cpp:257
&gt; +        m_jobTimer.startOneShot(0_s);

Can we have m_jobTimer being active already?
Is startOneShot handling the active state by exiting early?

&gt; Source/WebCore/workers/service/server/SWServerRegistration.cpp:41
&gt; +    , m_scriptURL(scriptURL)

Now that we are no longer doing some background thread things, there might be the possibility to go from IPC up to here without having ref count churn.
Would that be possible here?

&gt; Source/WebCore/workers/service/server/SWServerRegistration.cpp:52
&gt; +    ASSERT(isMainThread());

Probably not needed either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367103</commentid>
    <comment_count>3</comment_count>
      <attachid>325647</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-01 16:22:42 -0700</bug_when>
    <thetext>Created attachment 325647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367105</commentid>
    <comment_count>4</comment_count>
      <attachid>325647</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-01 16:24:35 -0700</bug_when>
    <thetext>Comment on attachment 325647
Patch

Clearing flags on attachment: 325647

Committed r224306: &lt;https://trac.webkit.org/changeset/224306&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367106</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-01 16:24:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372214</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 12:42:42 -0800</bug_when>
    <thetext>&lt;rdar://problem/35567992&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325644</attachid>
            <date>2017-11-01 15:59:27 -0700</date>
            <delta_ts>2017-11-01 16:22:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179142-20171101155926.patch</filename>
            <type>text/plain</type>
            <size>13536</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjExZjBiNzdmNzVhZTZk
ZDU2NTA5NzM0NjYzNGIwOWUxYjIzNDU5MS4uN2QyZThiZmJlNTMyYWZmMjkwYWY4NzRlMDE0YmIx
ODM5MTg2ZWJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4IEBACiAyMDE3LTExLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJvcCBydW5uaW5nIFNlcnZp
Y2UgV29ya2VyIEpvYnMgb24gYSBiYWNrZ3JvdW5kIHRocmVhZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5MTQyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBydW5uaW5nIFNlcnZpY2UgV29ya2Vy
IEpvYnMgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4gV2UgZG9uJ3QgcmVhbGx5IG5lZWQgdG8KKyAg
ICAgICAgYW5kIHRoaXMgc2ltcGxpZmllcyB0aGUgbG9naWMgYSBsb3QuCisKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNX
U2VydmVyOjpnZXRSZWdpc3RyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmFk
ZFJlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6cmVtb3ZlUmVnaXN0
cmF0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVl
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JRdWV1ZTo6c2NyaXB0Q29udGV4
dFN0YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JRdWV1ZTo6c3RhcnROZXh0
Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVySm9iUXVldWU6OnJ1blJlZ2lzdGVySm9i
KToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVySm9iUXVldWU6OnJ1blVucmVnaXN0ZXJKb2Ip
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JRdWV1ZTo6cnVuVXBkYXRlSm9iKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNXU2VydmVySm9iUXVldWU6OmZpbmlzaEN1cnJlbnRKb2IpOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5oOgorCisyMDE3
LTExLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgU3BsaXQg
Sm9iUXVldWUgbG9naWMgb3V0IG9mIFNXU2VydmVyUmVnaXN0cmF0aW9uCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzkxMjYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCBlNmY3
NzdkNzgxODgzNDc0ZThiNjRiZjEyNWViN2M5YTFkYjk3YWIzLi41MjAyMTI0NGU3NDJkOWQ1Zjlh
NjQwOGVjNGVkM2E1YmJjMWU5ZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtNzIsMjAgKzcyLDIwIEBAIFNXU2VydmVy
Ojp+U1dTZXJ2ZXIoKQogCiBTV1NlcnZlclJlZ2lzdHJhdGlvbiogU1dTZXJ2ZXI6OmdldFJlZ2lz
dHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25L
ZXkpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKICAgICByZXR1cm4gbV9yZWdpc3RyYXRpb25zLmdldChyZWdpc3RyYXRpb25LZXkp
OwogfQogCiB2b2lkIFNXU2VydmVyOjphZGRSZWdpc3RyYXRpb24oc3RkOjp1bmlxdWVfcHRyPFNX
U2VydmVyUmVnaXN0cmF0aW9uPiYmIHJlZ2lzdHJhdGlvbikKIHsKLSAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGF1dG8ga2V5ID0g
cmVnaXN0cmF0aW9uLT5rZXkoKTsKICAgICBtX3JlZ2lzdHJhdGlvbnMuYWRkKGtleSwgV1RGTW92
ZShyZWdpc3RyYXRpb24pKTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6cmVtb3ZlUmVnaXN0cmF0aW9u
KGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSkKIHsK
LSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogICAgIG1fcmVnaXN0cmF0aW9ucy5yZW1vdmUocmVnaXN0cmF0aW9uS2V5KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpv
YlF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJKb2JRdWV1ZS5jcHAKaW5kZXggZjIwMzQ1ZjI5NTRlYjdhMTJkNDk0MTNjMjQ5NzZlZGRkZmQ2
ZGQyNi4uOGM4ZTA4MGM4MDE0NGM5YmJkMjM1ZTRhMTZiNDJlZGFlOGI3Y2NhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
Sm9iUXVldWUuY3BwCkBAIC0xMDMsNyArMTAzLDEwIEBAIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6
c2NyaXB0Q29udGV4dFN0YXJ0ZWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCBzZXJ2
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBVTlVTRURfUEFSQU0od29ya2VySUQp
OwogCi0gICAgbV9zZXJ2ZXIucG9zdFRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAm
U1dTZXJ2ZXJKb2JRdWV1ZTo6cmVzb2x2ZUN1cnJlbnRSZWdpc3RyYXRpb25Kb2JPbk1haW5UaGVh
ZCwgc2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsKKyAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBt
X3NlcnZlci5nZXRSZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25LZXkpOworICAgIEFTU0VSVChy
ZWdpc3RyYXRpb24pOworICAgIHJlZ2lzdHJhdGlvbi0+c2V0QWN0aXZlU2VydmljZVdvcmtlcklk
ZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIHJlc29sdmVDdXJyZW50UmVn
aXN0cmF0aW9uSm9iKHJlZ2lzdHJhdGlvbi0+ZGF0YSgpKTsKIH0KIAogdm9pZCBTV1NlcnZlckpv
YlF1ZXVlOjpzdGFydE5leHRKb2IoKQpAQCAtMTEyLDE0ICsxMTUsMTQgQEAgdm9pZCBTV1NlcnZl
ckpvYlF1ZXVlOjpzdGFydE5leHRKb2IoKQogICAgIEFTU0VSVCghbV9jdXJyZW50Sm9iKTsKICAg
ICBBU1NFUlQoIW1fam9iUXVldWUuaXNFbXB0eSgpKTsKIAotICAgIG1fY3VycmVudEpvYiA9IHN0
ZDo6bWFrZV91bmlxdWU8U2VydmljZVdvcmtlckpvYkRhdGE+KG1fam9iUXVldWUudGFrZUZpcnN0
KCkuaXNvbGF0ZWRDb3B5KCkpOworICAgIG1fY3VycmVudEpvYiA9IHN0ZDo6bWFrZV91bmlxdWU8
U2VydmljZVdvcmtlckpvYkRhdGE+KG1fam9iUXVldWUudGFrZUZpcnN0KCkpOwogCiAgICAgc3dp
dGNoIChtX2N1cnJlbnRKb2ItPnR5cGUpIHsKICAgICBjYXNlIFNlcnZpY2VXb3JrZXJKb2JUeXBl
OjpSZWdpc3RlcjoKLSAgICAgICAgbV9zZXJ2ZXIucG9zdFRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRU
YXNrKCp0aGlzLCAmU1dTZXJ2ZXJKb2JRdWV1ZTo6cnVuUmVnaXN0ZXJKb2IsICptX2N1cnJlbnRK
b2IpKTsKKyAgICAgICAgcnVuUmVnaXN0ZXJKb2IoKm1fY3VycmVudEpvYik7CiAgICAgICAgIHJl
dHVybjsKICAgICBjYXNlIFNlcnZpY2VXb3JrZXJKb2JUeXBlOjpVbnJlZ2lzdGVyOgotICAgICAg
ICBtX3NlcnZlci5wb3N0VGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZTV1NlcnZl
ckpvYlF1ZXVlOjpydW5VbnJlZ2lzdGVySm9iLCAqbV9jdXJyZW50Sm9iKSk7CisgICAgICAgIHJ1
blVucmVnaXN0ZXJKb2IoKm1fY3VycmVudEpvYik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTEyOCwyNiArMTMxLDI1IEBAIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6c3RhcnROZXh0Sm9i
KCkKIAogdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpydW5SZWdpc3RlckpvYihjb25zdCBTZXJ2aWNl
V29ya2VySm9iRGF0YSYgam9iKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAg
IEFTU0VSVChqb2IudHlwZSA9PSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6UmVnaXN0ZXIpOwogCiAg
ICAgaWYgKCFzaG91bGRUcmVhdEFzUG90ZW50aWFsbHlUcnVzdHdvcnRoeShqb2Iuc2NyaXB0VVJM
KSkKLSAgICAgICAgcmV0dXJuIHJlamVjdFdpdGhFeGNlcHRpb25Pbk1haW5UaHJlYWQoRXhjZXB0
aW9uRGF0YSB7IFNlY3VyaXR5RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiU2NyaXB0IFVSTCBpcyBub3Qg
cG90ZW50aWFsbHkgdHJ1c3R3b3J0aHkiKSB9KTsKKyAgICAgICAgcmV0dXJuIHJlamVjdEN1cnJl
bnRKb2IoRXhjZXB0aW9uRGF0YSB7IFNlY3VyaXR5RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiU2NyaXB0
IFVSTCBpcyBub3QgcG90ZW50aWFsbHkgdHJ1c3R3b3J0aHkiKSB9KTsKIAogICAgIC8vIElmIHRo
ZSBvcmlnaW4gb2Ygam9i4oCZcyBzY3JpcHQgdXJsIGlzIG5vdCBqb2LigJlzIHJlZmVycmVyJ3Mg
b3JpZ2luLCB0aGVuOgogICAgIGlmICghcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKGpvYi5z
Y3JpcHRVUkwsIGpvYi5jbGllbnRDcmVhdGlvblVSTCkpCi0gICAgICAgIHJldHVybiByZWplY3RX
aXRoRXhjZXB0aW9uT25NYWluVGhyZWFkKEV4Y2VwdGlvbkRhdGEgeyBTZWN1cml0eUVycm9yLCBB
U0NJSUxpdGVyYWwoIlNjcmlwdCBvcmlnaW4gZG9lcyBub3QgbWF0Y2ggdGhlIHJlZ2lzdGVyaW5n
IGNsaWVudCdzIG9yaWdpbiIpIH0pOworICAgICAgICByZXR1cm4gcmVqZWN0Q3VycmVudEpvYihF
eGNlcHRpb25EYXRhIHsgU2VjdXJpdHlFcnJvciwgQVNDSUlMaXRlcmFsKCJTY3JpcHQgb3JpZ2lu
IGRvZXMgbm90IG1hdGNoIHRoZSByZWdpc3RlcmluZyBjbGllbnQncyBvcmlnaW4iKSB9KTsKIAog
ICAgIC8vIElmIHRoZSBvcmlnaW4gb2Ygam9i4oCZcyBzY29wZSB1cmwgaXMgbm90IGpvYuKAmXMg
cmVmZXJyZXIncyBvcmlnaW4sIHRoZW46CiAgICAgaWYgKCFwcm90b2NvbEhvc3RBbmRQb3J0QXJl
RXF1YWwoam9iLnNjb3BlVVJMLCBqb2IuY2xpZW50Q3JlYXRpb25VUkwpKQotICAgICAgICByZXR1
cm4gcmVqZWN0V2l0aEV4Y2VwdGlvbk9uTWFpblRocmVhZChFeGNlcHRpb25EYXRhIHsgU2VjdXJp
dHlFcnJvciwgQVNDSUlMaXRlcmFsKCJTY29wZSBvcmlnaW4gZG9lcyBub3QgbWF0Y2ggdGhlIHJl
Z2lzdGVyaW5nIGNsaWVudCdzIG9yaWdpbiIpIH0pOworICAgICAgICByZXR1cm4gcmVqZWN0Q3Vy
cmVudEpvYihFeGNlcHRpb25EYXRhIHsgU2VjdXJpdHlFcnJvciwgQVNDSUlMaXRlcmFsKCJTY29w
ZSBvcmlnaW4gZG9lcyBub3QgbWF0Y2ggdGhlIHJlZ2lzdGVyaW5nIGNsaWVudCdzIG9yaWdpbiIp
IH0pOwogCiAgICAgLy8gSWYgcmVnaXN0cmF0aW9uIGlzIG5vdCBudWxsIChpbiBvdXIgcGFybGFu
Y2UgImVtcHR5IiksIHRoZW46CiAgICAgaWYgKGF1dG8qIHJlZ2lzdHJhdGlvbiA9IG1fc2VydmVy
LmdldFJlZ2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlvbktleSkpIHsKICAgICAgICAgcmVnaXN0cmF0
aW9uLT5zZXRJc1VuaW5zdGFsbGluZyhmYWxzZSk7CiAgICAgICAgIGF1dG8qIG5ld2VzdFdvcmtl
ciA9IHJlZ2lzdHJhdGlvbi0+Z2V0TmV3ZXN0V29ya2VyKCk7CiAgICAgICAgIGlmIChuZXdlc3RX
b3JrZXIgJiYgZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcihqb2Iuc2NyaXB0VVJMLCBu
ZXdlc3RXb3JrZXItPnNjcmlwdFVSTCgpKSAmJiBqb2IucmVnaXN0cmF0aW9uT3B0aW9ucy51cGRh
dGVWaWFDYWNoZSA9PSByZWdpc3RyYXRpb24tPnVwZGF0ZVZpYUNhY2hlKCkpIHsKLSAgICAgICAg
ICAgIHJlc29sdmVXaXRoUmVnaXN0cmF0aW9uT25NYWluVGhyZWFkKCpyZWdpc3RyYXRpb24pOwor
ICAgICAgICAgICAgcmVzb2x2ZUN1cnJlbnRSZWdpc3RyYXRpb25Kb2IocmVnaXN0cmF0aW9uLT5k
YXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKQEAg
LTE2MCwxMSArMTYyLDkgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpydW5SZWdpc3RlckpvYihj
b25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iKQogCiB2b2lkIFNXU2VydmVySm9iUXVldWU6
OnJ1blVucmVnaXN0ZXJKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKIHsKLSAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLQogICAgIC8vIElmIHRoZSBvcmlnaW4gb2Ygam9i
4oCZcyBzY29wZSB1cmwgaXMgbm90IGpvYidzIGNsaWVudCdzIG9yaWdpbiwgdGhlbjoKICAgICBp
ZiAoIXByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChqb2Iuc2NvcGVVUkwsIGpvYi5jbGllbnRD
cmVhdGlvblVSTCkpCi0gICAgICAgIHJldHVybiByZWplY3RXaXRoRXhjZXB0aW9uT25NYWluVGhy
ZWFkKEV4Y2VwdGlvbkRhdGEgeyBTZWN1cml0eUVycm9yLCBBU0NJSUxpdGVyYWwoIk9yaWdpbiBv
ZiBzY29wZSBVUkwgZG9lcyBub3QgbWF0Y2ggdGhlIGNsaWVudCdzIG9yaWdpbiIpIH0pOworICAg
ICAgICByZXR1cm4gcmVqZWN0Q3VycmVudEpvYihFeGNlcHRpb25EYXRhIHsgU2VjdXJpdHlFcnJv
ciwgQVNDSUlMaXRlcmFsKCJPcmlnaW4gb2Ygc2NvcGUgVVJMIGRvZXMgbm90IG1hdGNoIHRoZSBj
bGllbnQncyBvcmlnaW4iKSB9KTsKIAogICAgIC8vIExldCByZWdpc3RyYXRpb24gYmUgdGhlIHJl
c3VsdCBvZiBydW5uaW5nICJHZXQgUmVnaXN0cmF0aW9uIiBhbGdvcml0aG0gcGFzc2luZyBqb2Li
gJlzIHNjb3BlIHVybCBhcyB0aGUgYXJndW1lbnQuCiAgICAgYXV0byogcmVnaXN0cmF0aW9uID0g
bV9zZXJ2ZXIuZ2V0UmVnaXN0cmF0aW9uKG1fcmVnaXN0cmF0aW9uS2V5KTsKQEAgLTE3Miw3ICsx
NzIsNyBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OnJ1blVucmVnaXN0ZXJKb2IoY29uc3QgU2Vy
dmljZVdvcmtlckpvYkRhdGEmIGpvYikKICAgICAvLyBJZiByZWdpc3RyYXRpb24gaXMgbnVsbCwg
dGhlbjoKICAgICBpZiAoIXJlZ2lzdHJhdGlvbiB8fCByZWdpc3RyYXRpb24tPmlzVW5pbnN0YWxs
aW5nKCkpIHsKICAgICAgICAgLy8gSW52b2tlIFJlc29sdmUgSm9iIFByb21pc2Ugd2l0aCBqb2Ig
YW5kIGZhbHNlLgotICAgICAgICByZXNvbHZlV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0T25NYWlu
VGhyZWFkKGZhbHNlKTsKKyAgICAgICAgcmVzb2x2ZUN1cnJlbnRVbnJlZ2lzdHJhdGlvbkpvYihm
YWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE4MCw3ICsxODAsNyBAQCB2b2lk
IFNXU2VydmVySm9iUXVldWU6OnJ1blVucmVnaXN0ZXJKb2IoY29uc3QgU2VydmljZVdvcmtlckpv
YkRhdGEmIGpvYikKICAgICByZWdpc3RyYXRpb24tPnNldElzVW5pbnN0YWxsaW5nKHRydWUpOwog
CiAgICAgLy8gSW52b2tlIFJlc29sdmUgSm9iIFByb21pc2Ugd2l0aCBqb2IgYW5kIHRydWUuCi0g
ICAgcmVzb2x2ZVdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdE9uTWFpblRocmVhZCh0cnVlKTsKKyAg
ICByZXNvbHZlQ3VycmVudFVucmVnaXN0cmF0aW9uSm9iKHRydWUpOwogCiAgICAgLy8gRklYTUU6
IEludm9rZSBUcnkgQ2xlYXIgUmVnaXN0cmF0aW9uIHdpdGggcmVnaXN0cmF0aW9uLgogfQpAQCAt
MTkxLDQ5ICsxOTEsMTYgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpydW5VcGRhdGVKb2IoY29u
c3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKIAogICAgIC8vIElmIHJlZ2lzdHJhdGlvbiBp
cyBudWxsIChpbiBvdXIgcGFybGFuY2UgImVtcHR5Iikgb3IgcmVnaXN0cmF0aW9u4oCZcyB1bmlu
c3RhbGxpbmcgZmxhZyBpcyBzZXQsIHRoZW46CiAgICAgaWYgKCFyZWdpc3RyYXRpb24pCi0gICAg
ICAgIHJldHVybiByZWplY3RXaXRoRXhjZXB0aW9uT25NYWluVGhyZWFkKEV4Y2VwdGlvbkRhdGEg
eyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IHVwZGF0ZSBhIG51bGwvbm9uZXhpc3Rl
bnQgc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uIikgfSk7CisgICAgICAgIHJldHVybiByZWpl
Y3RDdXJyZW50Sm9iKEV4Y2VwdGlvbkRhdGEgeyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ2Fu
bm90IHVwZGF0ZSBhIG51bGwvbm9uZXhpc3RlbnQgc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9u
IikgfSk7CiAgICAgaWYgKHJlZ2lzdHJhdGlvbi0+aXNVbmluc3RhbGxpbmcoKSkKLSAgICAgICAg
cmV0dXJuIHJlamVjdFdpdGhFeGNlcHRpb25Pbk1haW5UaHJlYWQoRXhjZXB0aW9uRGF0YSB7IFR5
cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgdXBkYXRlIGEgc2VydmljZSB3b3JrZXIgcmVn
aXN0cmF0aW9uIHRoYXQgaXMgdW5pbnN0YWxsaW5nIikgfSk7CisgICAgICAgIHJldHVybiByZWpl
Y3RDdXJyZW50Sm9iKEV4Y2VwdGlvbkRhdGEgeyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ2Fu
bm90IHVwZGF0ZSBhIHNlcnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbiB0aGF0IGlzIHVuaW5zdGFs
bGluZyIpIH0pOwogCiAgICAgLy8gSWYgam9i4oCZcyBqb2IgdHlwZSBpcyB1cGRhdGUsIGFuZCBu
ZXdlc3RXb3JrZXLigJlzIHNjcmlwdCB1cmwgZG9lcyBub3QgZXF1YWwgam9i4oCZcyBzY3JpcHQg
dXJsIHdpdGggdGhlIGV4Y2x1ZGUgZnJhZ21lbnRzIGZsYWcgc2V0LCB0aGVuOgogICAgIGF1dG8q
IG5ld2VzdFdvcmtlciA9IHJlZ2lzdHJhdGlvbi0+Z2V0TmV3ZXN0V29ya2VyKCk7CiAgICAgaWYg
KG5ld2VzdFdvcmtlciAmJiAhZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcihqb2Iuc2Ny
aXB0VVJMLCBuZXdlc3RXb3JrZXItPnNjcmlwdFVSTCgpKSkKLSAgICAgICAgcmV0dXJuIHJlamVj
dFdpdGhFeGNlcHRpb25Pbk1haW5UaHJlYWQoRXhjZXB0aW9uRGF0YSB7IFR5cGVFcnJvciwgQVND
SUlMaXRlcmFsKCJDYW5ub3QgdXBkYXRlIGEgc2VydmljZSB3b3JrZXIgd2l0aCBhIHJlcXVlc3Rl
ZCBzY3JpcHQgVVJMIHdob3NlIG5ld2VzdCB3b3JrZXIgaGFzIGEgZGlmZmVyZW50IHNjcmlwdCBV
UkwiKSB9KTsKLQotICAgIHN0YXJ0U2NyaXB0RmV0Y2hGcm9tTWFpblRocmVhZCgpOwotfQotCi12
b2lkIFNXU2VydmVySm9iUXVldWU6OnJlamVjdFdpdGhFeGNlcHRpb25Pbk1haW5UaHJlYWQoY29u
c3QgRXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uKQotewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOwotICAgIG1fc2VydmVyLnBvc3RUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0
aGlzLCAmU1dTZXJ2ZXJKb2JRdWV1ZTo6cmVqZWN0Q3VycmVudEpvYiwgZXhjZXB0aW9uKSk7Ci19
Ci0KLXZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6cmVzb2x2ZVdpdGhSZWdpc3RyYXRpb25Pbk1haW5U
aHJlYWQoU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbikKLXsKLSAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKLSAgICBtX3NlcnZlci5wb3N0VGFza1JlcGx5KGNyZWF0ZUNyb3Nz
VGhyZWFkVGFzaygqdGhpcywgJlNXU2VydmVySm9iUXVldWU6OnJlc29sdmVDdXJyZW50UmVnaXN0
cmF0aW9uSm9iLCByZWdpc3RyYXRpb24uZGF0YSgpKSk7Ci19CisgICAgICAgIHJldHVybiByZWpl
Y3RDdXJyZW50Sm9iKEV4Y2VwdGlvbkRhdGEgeyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ2Fu
bm90IHVwZGF0ZSBhIHNlcnZpY2Ugd29ya2VyIHdpdGggYSByZXF1ZXN0ZWQgc2NyaXB0IFVSTCB3
aG9zZSBuZXdlc3Qgd29ya2VyIGhhcyBhIGRpZmZlcmVudCBzY3JpcHQgVVJMIikgfSk7CiAKLXZv
aWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6cmVzb2x2ZUN1cnJlbnRSZWdpc3RyYXRpb25Kb2JPbk1haW5U
aGVhZCh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKLXsKLSAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKLSAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3NlcnZlci5nZXRSZWdp
c3RyYXRpb24obV9yZWdpc3RyYXRpb25LZXkpOwotICAgIEFTU0VSVChyZWdpc3RyYXRpb24pOwot
ICAgIHJlZ2lzdHJhdGlvbi0+c2V0QWN0aXZlU2VydmljZVdvcmtlcklkZW50aWZpZXIoc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpOwotICAgIHJlc29sdmVXaXRoUmVnaXN0cmF0aW9uT25NYWluVGhy
ZWFkKCpyZWdpc3RyYXRpb24pOwotfQotCi12b2lkIFNXU2VydmVySm9iUXVldWU6OnJlc29sdmVX
aXRoVW5yZWdpc3RyYXRpb25SZXN1bHRPbk1haW5UaHJlYWQoYm9vbCB1bnJlZ2lzdHJhdGlvblJl
c3VsdCkKLXsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBtX3NlcnZlci5wb3N0
VGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlNXU2VydmVySm9iUXVldWU6
OnJlc29sdmVDdXJyZW50VW5yZWdpc3RyYXRpb25Kb2IsIHVucmVnaXN0cmF0aW9uUmVzdWx0KSk7
Ci19Ci0KLXZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6c3RhcnRTY3JpcHRGZXRjaEZyb21NYWluVGhy
ZWFkKCkKLXsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBtX3NlcnZlci5wb3N0
VGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlNXU2VydmVySm9iUXVldWU6
OnN0YXJ0U2NyaXB0RmV0Y2hGb3JDdXJyZW50Sm9iKSk7CisgICAgc3RhcnRTY3JpcHRGZXRjaEZv
ckN1cnJlbnRKb2IoKTsKIH0KIAogdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpyZWplY3RDdXJyZW50
Sm9iKGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbkRhdGEpCkBAIC0yODYsNyArMjUzLDgg
QEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpmaW5pc2hDdXJyZW50Sm9iKCkKICAgICBpZiAobV9q
b2JRdWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHN0YXJ0TmV4dEpvYigp
OworICAgIGlmICghbV9qb2JUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2pvYlRpbWVyLnN0
YXJ0T25lU2hvdCgwX3MpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1
ZS5oCmluZGV4IDQwOTViM2JmZmQwYWE1N2FjODhhZTM4YTM0ZDQ2YzA2N2UxM2ViYTUuLjBlYmIy
MjYzYWM4YTMzMTU0MTQ3NThhYTllNmI0NGZjZDMwYTg5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5oCkBA
IC01OCwxMyArNTgsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcnVuVW5yZWdpc3RlckpvYihjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpOwogICAgIHZvaWQgcnVuVXBkYXRlSm9iKGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhJik7CiAKLSAgICB2b2lkIHJlamVjdFdpdGhFeGNlcHRpb25Pbk1h
aW5UaHJlYWQoY29uc3QgRXhjZXB0aW9uRGF0YSYpOwotICAgIHZvaWQgcmVzb2x2ZVdpdGhSZWdp
c3RyYXRpb25Pbk1haW5UaHJlYWQoU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKTsKLSAgICB2b2lkIHJl
c29sdmVDdXJyZW50UmVnaXN0cmF0aW9uSm9iT25NYWluVGhlYWQodWludDY0X3Qgc2VydmljZVdv
cmtlcklkZW50aWZpZXIpOwotICAgIHZvaWQgcmVzb2x2ZVdpdGhVbnJlZ2lzdHJhdGlvblJlc3Vs
dE9uTWFpblRocmVhZChib29sKTsKLSAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGcm9tTWFpblRo
cmVhZCgpOwotICAgIGJvb2wgaXNFbXB0eSgpOwotCiAgICAgRGVxdWU8U2VydmljZVdvcmtlckpv
YkRhdGE+IG1fam9iUXVldWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJKb2JE
YXRhPiBtX2N1cnJlbnRKb2I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggY2My
N2M4NjU0YzZlZTA1YTllM2NkNWQ1MjgzMTM1YTE2MjdhN2JkMC4uNmEwMGNiZTgxMDBlNDJlNTIy
ODk1YzE5NDA5OGU4MTc3NGI4MjRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAg
LTI4LDIyICsyOCwxNyBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCi0jaW5jbHVk
ZSAiRXhjZXB0aW9uRGF0YS5oIgogI2luY2x1ZGUgIlNXU2VydmVyLmgiCiAjaW5jbHVkZSAiU1dT
ZXJ2ZXJXb3JrZXIuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIgotI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmgiCi0j
aW5jbHVkZSAiV29ya2VyVHlwZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNXU2VydmVy
UmVnaXN0cmF0aW9uOjpTV1NlcnZlclJlZ2lzdHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5JiBrZXksIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSB1cGRhdGVWaWFD
YWNoZSwgY29uc3QgVVJMJiBzY29wZVVSTCwgY29uc3QgVVJMJiBzY3JpcHRVUkwpCiAgICAgOiBt
X3JlZ2lzdHJhdGlvbktleShrZXkpCiAgICAgLCBtX3VwZGF0ZVZpYUNhY2hlKHVwZGF0ZVZpYUNh
Y2hlKQotICAgICwgbV9zY29wZVVSTChzY29wZVVSTC5pc29sYXRlZENvcHkoKSkKLSAgICAsIG1f
c2NyaXB0VVJMKHNjcmlwdFVSTC5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fc2NvcGVVUkwoc2Nv
cGVVUkwpCisgICAgLCBtX3NjcmlwdFVSTChzY3JpcHRVUkwpCiB7CiAgICAgbV9zY29wZVVSTC5y
ZW1vdmVGcmFnbWVudElkZW50aWZpZXIoKTsKIH0KQEAgLTU0LDcgKzQ5LDcgQEAgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb246On5TV1NlcnZlclJlZ2lzdHJhdGlvbigpCiAKIFNXU2VydmVyV29ya2VyKiBT
V1NlcnZlclJlZ2lzdHJhdGlvbjo6Z2V0TmV3ZXN0V29ya2VyKCkKIHsKLSAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIGlmIChtX2lu
c3RhbGxpbmdXb3JrZXIpCiAgICAgICAgIHJldHVybiBtX2luc3RhbGxpbmdXb3JrZXIuZ2V0KCk7
CiAgICAgaWYgKG1fd2FpdGluZ1dvcmtlcikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325647</attachid>
            <date>2017-11-01 16:22:42 -0700</date>
            <delta_ts>2017-11-01 16:24:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179142-20171101162241.patch</filename>
            <type>text/plain</type>
            <size>15825</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjExZjBiNzdmNzVhZTZk
ZDU2NTA5NzM0NjYzNGIwOWUxYjIzNDU5MS4uNTA0YzQ0NzQ1YTQ4Nzc5YjMxMGY5YTBmNjNkZmE4
ZWRkMDBlN2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4IEBACiAyMDE3LTExLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRHJvcCBydW5uaW5nIFNlcnZp
Y2UgV29ya2VyIEpvYnMgb24gYSBiYWNrZ3JvdW5kIHRocmVhZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5MTQyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBEcm9wIHJ1bm5pbmcgU2VydmljZSBXb3JrZXIg
Sm9icyBvbiBhIGJhY2tncm91bmQgdGhyZWFkLiBXZSBkb24ndCByZWFsbHkgbmVlZCB0bworICAg
ICAgICBhbmQgdGhpcyBzaW1wbGlmaWVzIHRoZSBsb2dpYyBhIGxvdC4KKworICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dT
ZXJ2ZXI6OmdldFJlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6YWRk
UmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZW1vdmVSZWdpc3Ry
YXRpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlckpvYlF1ZXVlOjpzY3JpcHRDb250ZXh0
U3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlckpvYlF1ZXVlOjpzdGFydE5leHRK
b2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JRdWV1ZTo6cnVuUmVnaXN0ZXJKb2Ip
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JRdWV1ZTo6cnVuVW5yZWdpc3RlckpvYik6
CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlckpvYlF1ZXVlOjpydW5VcGRhdGVKb2IpOgorICAg
ICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JRdWV1ZTo6ZmluaXNoQ3VycmVudEpvYik6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmg6CisKKzIwMTct
MTEtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBTcGxpdCBK
b2JRdWV1ZSBsb2dpYyBvdXQgb2YgU1dTZXJ2ZXJSZWdpc3RyYXRpb24KICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTEyNgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGU2Zjc3
N2Q3ODE4ODM0NzRlOGI2NGJmMTI1ZWI3YzlhMWRiOTdhYjMuLjEzNWZmODEzOTM3NDliYmYyMTM4
MmExNjhkYjJhMDdjYzg2YjVmZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC03MiwyMCArNzIsMTcgQEAgU1dTZXJ2ZXI6
On5TV1NlcnZlcigpCiAKIFNXU2VydmVyUmVnaXN0cmF0aW9uKiBTV1NlcnZlcjo6Z2V0UmVnaXN0
cmF0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktl
eSkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICByZXR1cm4gbV9yZWdpc3Ry
YXRpb25zLmdldChyZWdpc3RyYXRpb25LZXkpOwogfQogCiB2b2lkIFNXU2VydmVyOjphZGRSZWdp
c3RyYXRpb24oc3RkOjp1bmlxdWVfcHRyPFNXU2VydmVyUmVnaXN0cmF0aW9uPiYmIHJlZ2lzdHJh
dGlvbikKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBhdXRvIGtleSA9IHJl
Z2lzdHJhdGlvbi0+a2V5KCk7CiAgICAgbV9yZWdpc3RyYXRpb25zLmFkZChrZXksIFdURk1vdmUo
cmVnaXN0cmF0aW9uKSk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6OnJlbW92ZVJlZ2lzdHJhdGlvbihj
b25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXkpCiB7Ci0g
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgbV9yZWdpc3RyYXRpb25zLnJlbW92ZShy
ZWdpc3RyYXRpb25LZXkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAppbmRleCBmMjAzNDVmMjk1
NGViN2ExMmQ0OTQxM2MyNDk3NmVkZGRmZDZkZDI2Li44OTMyYjE0ODFhNzc5ZjhkODhmYzQ0YjJi
ZjFmNWMyOThjYjE1ZTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKQEAgLTY3LDcgKzY3LDYgQEAg
dm9pZCBTV1NlcnZlckpvYlF1ZXVlOjplbnF1ZXVlSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhJiBqb2JEYXRhKQogCiB2b2lkIFNXU2VydmVySm9iUXVldWU6OnNjcmlwdEZldGNoRmluaXNo
ZWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJG
ZXRjaFJlc3VsdCYgcmVzdWx0KQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAg
QVNTRVJUKG1fY3VycmVudEpvYiAmJiBtX2N1cnJlbnRKb2ItPmlkZW50aWZpZXIoKSA9PSByZXN1
bHQuam9iSWRlbnRpZmllcik7CiAKICAgICBpZiAoIXJlc3VsdC5zY3JpcHRFcnJvci5pc051bGwo
KSkgewpAQCAtODgsNyArODcsNiBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OnNjcmlwdEZldGNo
RmluaXNoZWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbgogCiB2b2lkIFNX
U2VydmVySm9iUXVldWU6OnNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KFNXU2VydmVyOjpDb25u
ZWN0aW9uJiwgY29uc3QgU3RyaW5nJiB3b3JrZXJJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgLy8gRklYTUU6IEluc3RhbGwgaGFz
IGZhaWxlZC4gUnVuIHRoZSBpbnN0YWxsIGZhaWxlZCBzdWJzdGVwcwogICAgIC8vIFJ1biB0aGUg
VXBkYXRlIFdvcmtlciBTdGF0ZSBhbGdvcml0aG0gcGFzc2luZyByZWdpc3RyYXRpb27igJlzIGlu
c3RhbGxpbmcgd29ya2VyIGFuZCByZWR1bmRhbnQgYXMgdGhlIGFyZ3VtZW50cy4KICAgICAvLyBS
dW4gdGhlIFVwZGF0ZSBSZWdpc3RyYXRpb24gU3RhdGUgYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0
cmF0aW9uLCAiaW5zdGFsbGluZyIgYW5kIG51bGwgYXMgdGhlIGFyZ3VtZW50cy4KQEAgLTEwMCwy
NiArOTgsMjcgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpzY3JpcHRDb250ZXh0RmFpbGVkVG9T
dGFydChTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIGNvbnN0IFMKIAogdm9pZCBTV1NlcnZlckpvYlF1
ZXVlOjpzY3JpcHRDb250ZXh0U3RhcnRlZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHdvcmtlcklEKQogewotICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgVU5VU0VEX1BBUkFNKHdvcmtlcklEKTsKIAot
ICAgIG1fc2VydmVyLnBvc3RUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlNXU2Vy
dmVySm9iUXVldWU6OnJlc29sdmVDdXJyZW50UmVnaXN0cmF0aW9uSm9iT25NYWluVGhlYWQsIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKSk7CisgICAgYXV0byogcmVnaXN0cmF0aW9uID0gbV9zZXJ2
ZXIuZ2V0UmVnaXN0cmF0aW9uKG1fcmVnaXN0cmF0aW9uS2V5KTsKKyAgICBBU1NFUlQocmVnaXN0
cmF0aW9uKTsKKyAgICByZWdpc3RyYXRpb24tPnNldEFjdGl2ZVNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICByZXNvbHZlQ3VycmVudFJlZ2lzdHJh
dGlvbkpvYihyZWdpc3RyYXRpb24tPmRhdGEoKSk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1
ZTo6c3RhcnROZXh0Sm9iKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFT
U0VSVCghbV9jdXJyZW50Sm9iKTsKICAgICBBU1NFUlQoIW1fam9iUXVldWUuaXNFbXB0eSgpKTsK
IAotICAgIG1fY3VycmVudEpvYiA9IHN0ZDo6bWFrZV91bmlxdWU8U2VydmljZVdvcmtlckpvYkRh
dGE+KG1fam9iUXVldWUudGFrZUZpcnN0KCkuaXNvbGF0ZWRDb3B5KCkpOworICAgIG1fY3VycmVu
dEpvYiA9IHN0ZDo6bWFrZV91bmlxdWU8U2VydmljZVdvcmtlckpvYkRhdGE+KG1fam9iUXVldWUu
dGFrZUZpcnN0KCkpOwogCiAgICAgc3dpdGNoIChtX2N1cnJlbnRKb2ItPnR5cGUpIHsKICAgICBj
YXNlIFNlcnZpY2VXb3JrZXJKb2JUeXBlOjpSZWdpc3RlcjoKLSAgICAgICAgbV9zZXJ2ZXIucG9z
dFRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmU1dTZXJ2ZXJKb2JRdWV1ZTo6cnVu
UmVnaXN0ZXJKb2IsICptX2N1cnJlbnRKb2IpKTsKKyAgICAgICAgcnVuUmVnaXN0ZXJKb2IoKm1f
Y3VycmVudEpvYik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIFNlcnZpY2VXb3JrZXJKb2JU
eXBlOjpVbnJlZ2lzdGVyOgotICAgICAgICBtX3NlcnZlci5wb3N0VGFzayhjcmVhdGVDcm9zc1Ro
cmVhZFRhc2soKnRoaXMsICZTV1NlcnZlckpvYlF1ZXVlOjpydW5VbnJlZ2lzdGVySm9iLCAqbV9j
dXJyZW50Sm9iKSk7CisgICAgICAgIHJ1blVucmVnaXN0ZXJKb2IoKm1fY3VycmVudEpvYik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEyOCwyNiArMTI3LDI1IEBAIHZvaWQgU1dTZXJ2
ZXJKb2JRdWV1ZTo6c3RhcnROZXh0Sm9iKCkKIAogdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpydW5S
ZWdpc3RlckpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iKQogewotICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChqb2IudHlwZSA9PSBTZXJ2aWNlV29ya2Vy
Sm9iVHlwZTo6UmVnaXN0ZXIpOwogCiAgICAgaWYgKCFzaG91bGRUcmVhdEFzUG90ZW50aWFsbHlU
cnVzdHdvcnRoeShqb2Iuc2NyaXB0VVJMKSkKLSAgICAgICAgcmV0dXJuIHJlamVjdFdpdGhFeGNl
cHRpb25Pbk1haW5UaHJlYWQoRXhjZXB0aW9uRGF0YSB7IFNlY3VyaXR5RXJyb3IsIEFTQ0lJTGl0
ZXJhbCgiU2NyaXB0IFVSTCBpcyBub3QgcG90ZW50aWFsbHkgdHJ1c3R3b3J0aHkiKSB9KTsKKyAg
ICAgICAgcmV0dXJuIHJlamVjdEN1cnJlbnRKb2IoRXhjZXB0aW9uRGF0YSB7IFNlY3VyaXR5RXJy
b3IsIEFTQ0lJTGl0ZXJhbCgiU2NyaXB0IFVSTCBpcyBub3QgcG90ZW50aWFsbHkgdHJ1c3R3b3J0
aHkiKSB9KTsKIAogICAgIC8vIElmIHRoZSBvcmlnaW4gb2Ygam9i4oCZcyBzY3JpcHQgdXJsIGlz
IG5vdCBqb2LigJlzIHJlZmVycmVyJ3Mgb3JpZ2luLCB0aGVuOgogICAgIGlmICghcHJvdG9jb2xI
b3N0QW5kUG9ydEFyZUVxdWFsKGpvYi5zY3JpcHRVUkwsIGpvYi5jbGllbnRDcmVhdGlvblVSTCkp
Ci0gICAgICAgIHJldHVybiByZWplY3RXaXRoRXhjZXB0aW9uT25NYWluVGhyZWFkKEV4Y2VwdGlv
bkRhdGEgeyBTZWN1cml0eUVycm9yLCBBU0NJSUxpdGVyYWwoIlNjcmlwdCBvcmlnaW4gZG9lcyBu
b3QgbWF0Y2ggdGhlIHJlZ2lzdGVyaW5nIGNsaWVudCdzIG9yaWdpbiIpIH0pOworICAgICAgICBy
ZXR1cm4gcmVqZWN0Q3VycmVudEpvYihFeGNlcHRpb25EYXRhIHsgU2VjdXJpdHlFcnJvciwgQVND
SUlMaXRlcmFsKCJTY3JpcHQgb3JpZ2luIGRvZXMgbm90IG1hdGNoIHRoZSByZWdpc3RlcmluZyBj
bGllbnQncyBvcmlnaW4iKSB9KTsKIAogICAgIC8vIElmIHRoZSBvcmlnaW4gb2Ygam9i4oCZcyBz
Y29wZSB1cmwgaXMgbm90IGpvYuKAmXMgcmVmZXJyZXIncyBvcmlnaW4sIHRoZW46CiAgICAgaWYg
KCFwcm90b2NvbEhvc3RBbmRQb3J0QXJlRXF1YWwoam9iLnNjb3BlVVJMLCBqb2IuY2xpZW50Q3Jl
YXRpb25VUkwpKQotICAgICAgICByZXR1cm4gcmVqZWN0V2l0aEV4Y2VwdGlvbk9uTWFpblRocmVh
ZChFeGNlcHRpb25EYXRhIHsgU2VjdXJpdHlFcnJvciwgQVNDSUlMaXRlcmFsKCJTY29wZSBvcmln
aW4gZG9lcyBub3QgbWF0Y2ggdGhlIHJlZ2lzdGVyaW5nIGNsaWVudCdzIG9yaWdpbiIpIH0pOwor
ICAgICAgICByZXR1cm4gcmVqZWN0Q3VycmVudEpvYihFeGNlcHRpb25EYXRhIHsgU2VjdXJpdHlF
cnJvciwgQVNDSUlMaXRlcmFsKCJTY29wZSBvcmlnaW4gZG9lcyBub3QgbWF0Y2ggdGhlIHJlZ2lz
dGVyaW5nIGNsaWVudCdzIG9yaWdpbiIpIH0pOwogCiAgICAgLy8gSWYgcmVnaXN0cmF0aW9uIGlz
IG5vdCBudWxsIChpbiBvdXIgcGFybGFuY2UgImVtcHR5IiksIHRoZW46CiAgICAgaWYgKGF1dG8q
IHJlZ2lzdHJhdGlvbiA9IG1fc2VydmVyLmdldFJlZ2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlvbktl
eSkpIHsKICAgICAgICAgcmVnaXN0cmF0aW9uLT5zZXRJc1VuaW5zdGFsbGluZyhmYWxzZSk7CiAg
ICAgICAgIGF1dG8qIG5ld2VzdFdvcmtlciA9IHJlZ2lzdHJhdGlvbi0+Z2V0TmV3ZXN0V29ya2Vy
KCk7CiAgICAgICAgIGlmIChuZXdlc3RXb3JrZXIgJiYgZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRl
bnRpZmllcihqb2Iuc2NyaXB0VVJMLCBuZXdlc3RXb3JrZXItPnNjcmlwdFVSTCgpKSAmJiBqb2Iu
cmVnaXN0cmF0aW9uT3B0aW9ucy51cGRhdGVWaWFDYWNoZSA9PSByZWdpc3RyYXRpb24tPnVwZGF0
ZVZpYUNhY2hlKCkpIHsKLSAgICAgICAgICAgIHJlc29sdmVXaXRoUmVnaXN0cmF0aW9uT25NYWlu
VGhyZWFkKCpyZWdpc3RyYXRpb24pOworICAgICAgICAgICAgcmVzb2x2ZUN1cnJlbnRSZWdpc3Ry
YXRpb25Kb2IocmVnaXN0cmF0aW9uLT5kYXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgfSBlbHNlIHsKQEAgLTE2MCwxMSArMTU4LDkgQEAgdm9pZCBTV1NlcnZlckpv
YlF1ZXVlOjpydW5SZWdpc3RlckpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iKQog
CiB2b2lkIFNXU2VydmVySm9iUXVldWU6OnJ1blVucmVnaXN0ZXJKb2IoY29uc3QgU2VydmljZVdv
cmtlckpvYkRhdGEmIGpvYikKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLQogICAg
IC8vIElmIHRoZSBvcmlnaW4gb2Ygam9i4oCZcyBzY29wZSB1cmwgaXMgbm90IGpvYidzIGNsaWVu
dCdzIG9yaWdpbiwgdGhlbjoKICAgICBpZiAoIXByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChq
b2Iuc2NvcGVVUkwsIGpvYi5jbGllbnRDcmVhdGlvblVSTCkpCi0gICAgICAgIHJldHVybiByZWpl
Y3RXaXRoRXhjZXB0aW9uT25NYWluVGhyZWFkKEV4Y2VwdGlvbkRhdGEgeyBTZWN1cml0eUVycm9y
LCBBU0NJSUxpdGVyYWwoIk9yaWdpbiBvZiBzY29wZSBVUkwgZG9lcyBub3QgbWF0Y2ggdGhlIGNs
aWVudCdzIG9yaWdpbiIpIH0pOworICAgICAgICByZXR1cm4gcmVqZWN0Q3VycmVudEpvYihFeGNl
cHRpb25EYXRhIHsgU2VjdXJpdHlFcnJvciwgQVNDSUlMaXRlcmFsKCJPcmlnaW4gb2Ygc2NvcGUg
VVJMIGRvZXMgbm90IG1hdGNoIHRoZSBjbGllbnQncyBvcmlnaW4iKSB9KTsKIAogICAgIC8vIExl
dCByZWdpc3RyYXRpb24gYmUgdGhlIHJlc3VsdCBvZiBydW5uaW5nICJHZXQgUmVnaXN0cmF0aW9u
IiBhbGdvcml0aG0gcGFzc2luZyBqb2LigJlzIHNjb3BlIHVybCBhcyB0aGUgYXJndW1lbnQuCiAg
ICAgYXV0byogcmVnaXN0cmF0aW9uID0gbV9zZXJ2ZXIuZ2V0UmVnaXN0cmF0aW9uKG1fcmVnaXN0
cmF0aW9uS2V5KTsKQEAgLTE3Miw3ICsxNjgsNyBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OnJ1
blVucmVnaXN0ZXJKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKICAgICAvLyBJ
ZiByZWdpc3RyYXRpb24gaXMgbnVsbCwgdGhlbjoKICAgICBpZiAoIXJlZ2lzdHJhdGlvbiB8fCBy
ZWdpc3RyYXRpb24tPmlzVW5pbnN0YWxsaW5nKCkpIHsKICAgICAgICAgLy8gSW52b2tlIFJlc29s
dmUgSm9iIFByb21pc2Ugd2l0aCBqb2IgYW5kIGZhbHNlLgotICAgICAgICByZXNvbHZlV2l0aFVu
cmVnaXN0cmF0aW9uUmVzdWx0T25NYWluVGhyZWFkKGZhbHNlKTsKKyAgICAgICAgcmVzb2x2ZUN1
cnJlbnRVbnJlZ2lzdHJhdGlvbkpvYihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTE4MCw3ICsxNzYsNyBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OnJ1blVucmVnaXN0ZXJK
b2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKICAgICByZWdpc3RyYXRpb24tPnNl
dElzVW5pbnN0YWxsaW5nKHRydWUpOwogCiAgICAgLy8gSW52b2tlIFJlc29sdmUgSm9iIFByb21p
c2Ugd2l0aCBqb2IgYW5kIHRydWUuCi0gICAgcmVzb2x2ZVdpdGhVbnJlZ2lzdHJhdGlvblJlc3Vs
dE9uTWFpblRocmVhZCh0cnVlKTsKKyAgICByZXNvbHZlQ3VycmVudFVucmVnaXN0cmF0aW9uSm9i
KHRydWUpOwogCiAgICAgLy8gRklYTUU6IEludm9rZSBUcnkgQ2xlYXIgUmVnaXN0cmF0aW9uIHdp
dGggcmVnaXN0cmF0aW9uLgogfQpAQCAtMTkxLDU0ICsxODcsMjAgQEAgdm9pZCBTV1NlcnZlckpv
YlF1ZXVlOjpydW5VcGRhdGVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKIAog
ICAgIC8vIElmIHJlZ2lzdHJhdGlvbiBpcyBudWxsIChpbiBvdXIgcGFybGFuY2UgImVtcHR5Iikg
b3IgcmVnaXN0cmF0aW9u4oCZcyB1bmluc3RhbGxpbmcgZmxhZyBpcyBzZXQsIHRoZW46CiAgICAg
aWYgKCFyZWdpc3RyYXRpb24pCi0gICAgICAgIHJldHVybiByZWplY3RXaXRoRXhjZXB0aW9uT25N
YWluVGhyZWFkKEV4Y2VwdGlvbkRhdGEgeyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ2Fubm90
IHVwZGF0ZSBhIG51bGwvbm9uZXhpc3RlbnQgc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uIikg
fSk7CisgICAgICAgIHJldHVybiByZWplY3RDdXJyZW50Sm9iKEV4Y2VwdGlvbkRhdGEgeyBUeXBl
RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IHVwZGF0ZSBhIG51bGwvbm9uZXhpc3RlbnQgc2Vy
dmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uIikgfSk7CiAgICAgaWYgKHJlZ2lzdHJhdGlvbi0+aXNV
bmluc3RhbGxpbmcoKSkKLSAgICAgICAgcmV0dXJuIHJlamVjdFdpdGhFeGNlcHRpb25Pbk1haW5U
aHJlYWQoRXhjZXB0aW9uRGF0YSB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgdXBk
YXRlIGEgc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uIHRoYXQgaXMgdW5pbnN0YWxsaW5nIikg
fSk7CisgICAgICAgIHJldHVybiByZWplY3RDdXJyZW50Sm9iKEV4Y2VwdGlvbkRhdGEgeyBUeXBl
RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IHVwZGF0ZSBhIHNlcnZpY2Ugd29ya2VyIHJlZ2lz
dHJhdGlvbiB0aGF0IGlzIHVuaW5zdGFsbGluZyIpIH0pOwogCi0gICAgLy8gSWYgam9i4oCZcyBq
b2IgdHlwZSBpcyB1cGRhdGUsIGFuZCBuZXdlc3RXb3JrZXLigJlzIHNjcmlwdCB1cmwgZG9lcyBu
b3QgZXF1YWwgam9i4oCZcyBzY3JpcHQgdXJsIHdpdGggdGhlIGV4Y2x1ZGUgZnJhZ21lbnRzIGZs
YWcgc2V0LCB0aGVuOgorICAgIC8vIElmIGpvYidzIHR5cGUgaXMgdXBkYXRlLCBhbmQgbmV3ZXN0
V29ya2Vy4oCZcyBzY3JpcHQgdXJsIGRvZXMgbm90IGVxdWFsIGpvYuKAmXMgc2NyaXB0IHVybCB3
aXRoIHRoZSBleGNsdWRlIGZyYWdtZW50cyBmbGFnIHNldCwgdGhlbjoKICAgICBhdXRvKiBuZXdl
c3RXb3JrZXIgPSByZWdpc3RyYXRpb24tPmdldE5ld2VzdFdvcmtlcigpOwogICAgIGlmIChuZXdl
c3RXb3JrZXIgJiYgIWVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIoam9iLnNjcmlwdFVS
TCwgbmV3ZXN0V29ya2VyLT5zY3JpcHRVUkwoKSkpCi0gICAgICAgIHJldHVybiByZWplY3RXaXRo
RXhjZXB0aW9uT25NYWluVGhyZWFkKEV4Y2VwdGlvbkRhdGEgeyBUeXBlRXJyb3IsIEFTQ0lJTGl0
ZXJhbCgiQ2Fubm90IHVwZGF0ZSBhIHNlcnZpY2Ugd29ya2VyIHdpdGggYSByZXF1ZXN0ZWQgc2Ny
aXB0IFVSTCB3aG9zZSBuZXdlc3Qgd29ya2VyIGhhcyBhIGRpZmZlcmVudCBzY3JpcHQgVVJMIikg
fSk7Ci0KLSAgICBzdGFydFNjcmlwdEZldGNoRnJvbU1haW5UaHJlYWQoKTsKLX0KKyAgICAgICAg
cmV0dXJuIHJlamVjdEN1cnJlbnRKb2IoRXhjZXB0aW9uRGF0YSB7IFR5cGVFcnJvciwgQVNDSUlM
aXRlcmFsKCJDYW5ub3QgdXBkYXRlIGEgc2VydmljZSB3b3JrZXIgd2l0aCBhIHJlcXVlc3RlZCBz
Y3JpcHQgVVJMIHdob3NlIG5ld2VzdCB3b3JrZXIgaGFzIGEgZGlmZmVyZW50IHNjcmlwdCBVUkwi
KSB9KTsKIAotdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpyZWplY3RXaXRoRXhjZXB0aW9uT25NYWlu
VGhyZWFkKGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikKLXsKLSAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKLSAgICBtX3NlcnZlci5wb3N0VGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhy
ZWFkVGFzaygqdGhpcywgJlNXU2VydmVySm9iUXVldWU6OnJlamVjdEN1cnJlbnRKb2IsIGV4Y2Vw
dGlvbikpOwotfQotCi12b2lkIFNXU2VydmVySm9iUXVldWU6OnJlc29sdmVXaXRoUmVnaXN0cmF0
aW9uT25NYWluVGhyZWFkKFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24pCi17Ci0g
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9zZXJ2ZXIucG9zdFRhc2tSZXBseShj
cmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZTV1NlcnZlckpvYlF1ZXVlOjpyZXNvbHZlQ3Vy
cmVudFJlZ2lzdHJhdGlvbkpvYiwgcmVnaXN0cmF0aW9uLmRhdGEoKSkpOwotfQotCi12b2lkIFNX
U2VydmVySm9iUXVldWU6OnJlc29sdmVDdXJyZW50UmVnaXN0cmF0aW9uSm9iT25NYWluVGhlYWQo
dWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCi17Ci0gICAgQVNTRVJUKCFpc01haW5U
aHJlYWQoKSk7Ci0gICAgYXV0byogcmVnaXN0cmF0aW9uID0gbV9zZXJ2ZXIuZ2V0UmVnaXN0cmF0
aW9uKG1fcmVnaXN0cmF0aW9uS2V5KTsKLSAgICBBU1NFUlQocmVnaXN0cmF0aW9uKTsKLSAgICBy
ZWdpc3RyYXRpb24tPnNldEFjdGl2ZVNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKTsKLSAgICByZXNvbHZlV2l0aFJlZ2lzdHJhdGlvbk9uTWFpblRocmVhZCgq
cmVnaXN0cmF0aW9uKTsKLX0KLQotdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpyZXNvbHZlV2l0aFVu
cmVnaXN0cmF0aW9uUmVzdWx0T25NYWluVGhyZWFkKGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQp
Ci17Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9zZXJ2ZXIucG9zdFRhc2tS
ZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZTV1NlcnZlckpvYlF1ZXVlOjpyZXNv
bHZlQ3VycmVudFVucmVnaXN0cmF0aW9uSm9iLCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkpOwotfQot
Ci12b2lkIFNXU2VydmVySm9iUXVldWU6OnN0YXJ0U2NyaXB0RmV0Y2hGcm9tTWFpblRocmVhZCgp
Ci17Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9zZXJ2ZXIucG9zdFRhc2tS
ZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZTV1NlcnZlckpvYlF1ZXVlOjpzdGFy
dFNjcmlwdEZldGNoRm9yQ3VycmVudEpvYikpOworICAgIHN0YXJ0U2NyaXB0RmV0Y2hGb3JDdXJy
ZW50Sm9iKCk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6cmVqZWN0Q3VycmVudEpvYihj
b25zdCBFeGNlcHRpb25EYXRhJiBleGNlcHRpb25EYXRhKQogewotICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fY3VycmVudEpvYik7CiAKICAgICBtX3NlcnZlci5yZWpl
Y3RKb2IoKm1fY3VycmVudEpvYiwgZXhjZXB0aW9uRGF0YSk7CkBAIC0yNDgsNyArMjEwLDYgQEAg
dm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpyZWplY3RDdXJyZW50Sm9iKGNvbnN0IEV4Y2VwdGlvbkRh
dGEmIGV4Y2VwdGlvbkRhdGEpCiAKIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6cmVzb2x2ZUN1cnJl
bnRSZWdpc3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmIGRh
dGEpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV9jdXJyZW50
Sm9iKTsKICAgICBBU1NFUlQobV9jdXJyZW50Sm9iLT50eXBlID09IFNlcnZpY2VXb3JrZXJKb2JU
eXBlOjpSZWdpc3Rlcik7CiAKQEAgLTI1OSw3ICsyMjAsNiBAQCB2b2lkIFNXU2VydmVySm9iUXVl
dWU6OnJlc29sdmVDdXJyZW50UmVnaXN0cmF0aW9uSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdp
c3RyYQogCiB2b2lkIFNXU2VydmVySm9iUXVldWU6OnJlc29sdmVDdXJyZW50VW5yZWdpc3RyYXRp
b25Kb2IoYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIEFTU0VSVChtX2N1cnJlbnRKb2IpOwogICAgIEFTU0VSVChtX2N1cnJlbnRK
b2ItPnR5cGUgPT0gU2VydmljZVdvcmtlckpvYlR5cGU6OlVucmVnaXN0ZXIpOwogCkBAIC0yNzAs
NyArMjMwLDYgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpyZXNvbHZlQ3VycmVudFVucmVnaXN0
cmF0aW9uSm9iKGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQKIAogdm9pZCBTV1NlcnZlckpvYlF1
ZXVlOjpzdGFydFNjcmlwdEZldGNoRm9yQ3VycmVudEpvYigpCiB7Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKICAgICBBU1NFUlQobV9jdXJyZW50Sm9iKTsKIAogICAgIG1fc2VydmVyLnN0
YXJ0U2NyaXB0RmV0Y2goKm1fY3VycmVudEpvYik7CkBAIC0yNzgsNyArMjM3LDYgQEAgdm9pZCBT
V1NlcnZlckpvYlF1ZXVlOjpzdGFydFNjcmlwdEZldGNoRm9yQ3VycmVudEpvYigpCiAKIHZvaWQg
U1dTZXJ2ZXJKb2JRdWV1ZTo6ZmluaXNoQ3VycmVudEpvYigpCiB7Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKICAgICBBU1NFUlQobV9jdXJyZW50Sm9iKTsKICAgICBBU1NFUlQoIW1fam9i
VGltZXIuaXNBY3RpdmUoKSk7CiAKQEAgLTI4Niw3ICsyNDQsOCBAQCB2b2lkIFNXU2VydmVySm9i
UXVldWU6OmZpbmlzaEN1cnJlbnRKb2IoKQogICAgIGlmIChtX2pvYlF1ZXVlLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RhcnROZXh0Sm9iKCk7CisgICAgQVNTRVJUKCFtX2pv
YlRpbWVyLmlzQWN0aXZlKCkpOworICAgIG1fam9iVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmgKaW5kZXggNDA5NWIzYmZm
ZDBhYTU3YWM4OGFlMzhhMzRkNDZjMDY3ZTEzZWJhNS4uMGViYjIyNjNhYzhhMzMxNTQxNDc1OGFh
OWU2YjQ0ZmNkMzBhODk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmgKQEAgLTU4LDEzICs1OCw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBydW5VbnJlZ2lzdGVySm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhJik7CiAgICAgdm9pZCBydW5VcGRhdGVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEm
KTsKIAotICAgIHZvaWQgcmVqZWN0V2l0aEV4Y2VwdGlvbk9uTWFpblRocmVhZChjb25zdCBFeGNl
cHRpb25EYXRhJik7Ci0gICAgdm9pZCByZXNvbHZlV2l0aFJlZ2lzdHJhdGlvbk9uTWFpblRocmVh
ZChTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwotICAgIHZvaWQgcmVzb2x2ZUN1cnJlbnRSZWdpc3Ry
YXRpb25Kb2JPbk1haW5UaGVhZCh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7Ci0g
ICAgdm9pZCByZXNvbHZlV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0T25NYWluVGhyZWFkKGJvb2wp
OwotICAgIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZyb21NYWluVGhyZWFkKCk7Ci0gICAgYm9vbCBp
c0VtcHR5KCk7Ci0KICAgICBEZXF1ZTxTZXJ2aWNlV29ya2VySm9iRGF0YT4gbV9qb2JRdWV1ZTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2VydmljZVdvcmtlckpvYkRhdGE+IG1fY3VycmVudEpvYjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCBjYzI3Yzg2NTRjNmVlMDVhOWUzY2Q1
ZDUyODMxMzVhMTYyN2E3YmQwLi41ZmRmODVlZTJiM2M5YzdhMDIzOGM4ZTQ1YzdjMWU5MWExZmEx
ZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcApAQCAtMjgsMjIgKzI4LDE3IEBACiAK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKLSNpbmNsdWRlICJFeGNlcHRpb25EYXRhLmgi
CiAjaW5jbHVkZSAiU1dTZXJ2ZXIuaCIKICNpbmNsdWRlICJTV1NlcnZlcldvcmtlci5oIgotI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoUmVz
dWx0LmgiCi0jaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCIKICNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUuaCIKLSNpbmNsdWRlICJXb3JrZXJUeXBl
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1dTZXJ2ZXJSZWdpc3RyYXRpb246OlNXU2Vy
dmVyUmVnaXN0cmF0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIGtleSwg
U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlLCBjb25zdCBVUkwmIHNj
b3BlVVJMLCBjb25zdCBVUkwmIHNjcmlwdFVSTCkKICAgICA6IG1fcmVnaXN0cmF0aW9uS2V5KGtl
eSkKICAgICAsIG1fdXBkYXRlVmlhQ2FjaGUodXBkYXRlVmlhQ2FjaGUpCi0gICAgLCBtX3Njb3Bl
VVJMKHNjb3BlVVJMLmlzb2xhdGVkQ29weSgpKQotICAgICwgbV9zY3JpcHRVUkwoc2NyaXB0VVJM
Lmlzb2xhdGVkQ29weSgpKQorICAgICwgbV9zY29wZVVSTChzY29wZVVSTCkKKyAgICAsIG1fc2Ny
aXB0VVJMKHNjcmlwdFVSTCkKIHsKICAgICBtX3Njb3BlVVJMLnJlbW92ZUZyYWdtZW50SWRlbnRp
ZmllcigpOwogfQpAQCAtNTQsNyArNDksNiBAQCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6flNXU2Vy
dmVyUmVnaXN0cmF0aW9uKCkKIAogU1dTZXJ2ZXJXb3JrZXIqIFNXU2VydmVyUmVnaXN0cmF0aW9u
OjpnZXROZXdlc3RXb3JrZXIoKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAg
IGlmIChtX2luc3RhbGxpbmdXb3JrZXIpCiAgICAgICAgIHJldHVybiBtX2luc3RhbGxpbmdXb3Jr
ZXIuZ2V0KCk7CiAgICAgaWYgKG1fd2FpdGluZ1dvcmtlcikK
</data>

          </attachment>
      

    </bug>

</bugzilla>