<?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>180304</bug_id>
          
          <creation_ts>2017-12-01 18:27:34 -0800</creation_ts>
          <short_desc>WorkerCacheStorageConnection should handle the case of terminated workers</short_desc>
          <delta_ts>2017-12-04 10:14:22 -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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>jlewis3</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1377209</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-01 18:27:34 -0800</bug_when>
    <thetext>WorkerCacheStorageConnection should handle the case of terminated workers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377211</commentid>
    <comment_count>1</comment_count>
      <attachid>328203</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-01 18:31:34 -0800</bug_when>
    <thetext>Created attachment 328203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377420</commentid>
    <comment_count>2</comment_count>
      <attachid>328203</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-12-02 18:53:58 -0800</bug_when>
    <thetext>Comment on attachment 328203
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        Added a method to check a worker thread is still valid.

That type of technique won’t work 100% perfectly. It’s possible that the thread has been fully deleted, but then a new thread allocated, and the new one is in the same memory so happens to have the same address.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377422</commentid>
    <comment_count>3</comment_count>
      <attachid>328203</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-02 18:57:44 -0800</bug_when>
    <thetext>Comment on attachment 328203
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:14
&gt;&gt; +        Added a method to check a worker thread is still valid.
&gt; 
&gt; That type of technique won’t work 100% perfectly. It’s possible that the thread has been fully deleted, but then a new thread allocated, and the new one is in the same memory so happens to have the same address.

I guess I could further check the thread id if the pointer is still alive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377720</commentid>
    <comment_count>4</comment_count>
      <attachid>328352</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-04 09:34:57 -0800</bug_when>
    <thetext>Created attachment 328352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377729</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-04 09:47:46 -0800</bug_when>
    <thetext>Patch appears to fix the crash for me locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377742</commentid>
    <comment_count>6</comment_count>
      <attachid>328352</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-04 10:13:50 -0800</bug_when>
    <thetext>Comment on attachment 328352
Patch

Clearing flags on attachment: 328352

Committed r225481: &lt;https://trac.webkit.org/changeset/225481&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377743</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-04 10:13:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377745</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-04 10:14:07 -0800</bug_when>
    <thetext>*** Bug 180337 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377746</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-04 10:14:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/35831955&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328203</attachid>
            <date>2017-12-01 18:31:34 -0800</date>
            <delta_ts>2017-12-04 09:34:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180304-20171201183133.patch</filename>
            <type>text/plain</type>
            <size>19035</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q5NDI4NTZiYTEyMmI0
M2YyZjFjNzA0YzliZWQzZjQ2NjE4NDVmMS4uYmQ0ZmRmNjRhYzI0ZTRlNDc4ZWNjMDdkMGUzMDc5
OWUzMDJhODBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDE3LTEyLTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uIHNob3VsZCBoYW5kbGUgdGhlIGNhc2Ugb2YgdGVybWluYXRlZCB3b3JrZXJz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzMDQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBvYnNl
cnZhYmxlIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICBSZXdvcmtlZCBXb3JrZXJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uIGhvcHBpbmcuCisgICAgICAgIEluc3RlYWQgb2YgcmVmaW5nL3Vu
cmVmaW5nIGl0c2VsZiwgaXQgb25seSByZWZzIHRoZSBtYWluIHRocmVhZCBjb25uZWN0aW9uLgor
ICAgICAgICBJdCBpcyBhbHNvIHBhc3NpbmcgdG8gdGhlIG1haW4gdGhyZWFkIGl0cyB3b3JrZXIg
dGhyZWFkIHBvaW50ZXIuCisgICAgICAgIFRoaXMgd29ya2VyIHRocmVhZCBwb2ludGVyIGlzIHRo
ZW4gdXNlZCBvbiB0aGUgd2F5IGJhY2sgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCisgICAgICAgIEFk
ZGVkIGEgbWV0aG9kIHRvIGNoZWNrIGEgd29ya2VyIHRocmVhZCBpcyBzdGlsbCB2YWxpZC4KKwor
ICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6V29ya2Vy
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uOjpkb09wZW4pOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbjo6ZG9SZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZXRyaWV2ZUNhY2hlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZWZlcmVuY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZGVyZWZlcmVuY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZXRyaWV2ZVJlY29y
ZHMpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9C
YXRjaERlbGV0ZU9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uOjpkb0JhdGNoUHV0T3BlcmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2Nh
Y2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3Bl
OjpjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyVGhyZWFkOjppc0FsaXZlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
clRocmVhZC5oOgorCisyMDE3LTEyLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKwogICAgICAgICBJbXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3Jr
ZXIvI2NsaWVudHMtZ2V0YWxsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODAyNzYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMDYzYjcw
MjAxOGY5M2YwNTAzMTcyZDVlMTUyNGY1ZjBjM2E3YTI4NS4uYWFlOGFjNTVkNzAzYWY2MDAxMThi
NDU2ZmMyOWIxMTQ2ZTZkZWUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC05MSwx
NyArOTEsMTggQEAgc3RhdGljIFJlY29yZCBmcm9tQ3Jvc3NUaHJlYWRSZWNvcmREYXRhKENyb3Nz
VGhyZWFkUmVjb3JkRGF0YSYmIGRhdGEpCiBSZWY8V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bj4gV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKFdvcmtlckdsb2JhbFNjb3Bl
JiBzY29wZSkKIHsKICAgICBhdXRvIGNvbm5lY3Rpb24gPSBhZG9wdFJlZigqbmV3IFdvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24oc2NvcGUpKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90
ZWN0ZWRDb25uZWN0aW9uID0gY29ubmVjdGlvbi5jb3B5UmVmKCldKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIHByb3RlY3RlZENvbm5lY3Rpb24t
Pm1fbWFpblRocmVhZENvbm5lY3Rpb24gPSBwcm90ZWN0ZWRDb25uZWN0aW9uLT5tX3Byb3h5LmNy
ZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsKKyAgICBjYWxsT25NYWluVGhyZWFkQW5kV2Fp
dChbd29ya2VyVGhyZWFkID0gJnNjb3BlLnRocmVhZCgpLCBjb25uZWN0aW9uID0gY29ubmVjdGlv
bi5wdHIoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFXb3JrZXJUaHJlYWQ6OmlzQWxpdmUo
d29ya2VyVGhyZWFkKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjb25uZWN0aW9u
LT5tX21haW5UaHJlYWRDb25uZWN0aW9uID0gd29ya2VyVGhyZWFkLT53b3JrZXJMb2FkZXJQcm94
eSgpLmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsKICAgICB9KTsKKyAgICBBU1NFUlQo
Y29ubmVjdGlvbi0+bV9tYWluVGhyZWFkQ29ubmVjdGlvbik7CiAgICAgcmV0dXJuIGNvbm5lY3Rp
b247CiB9CiAKIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OldvcmtlckNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24oV29ya2VyR2xvYmFsU2NvcGUmIHNjb3BlKQogICAgIDogbV9zY29wZShzY29w
ZSkKLSAgICAsIG1fcHJveHkobV9zY29wZS50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpKQot
ICAgICwgbV90YXNrTW9kZShXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpLmlzb2xhdGVkQ29w
eSgpKQogewogfQogCkBAIC0xMTMsNzMgKzExNCw2NyBAQCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOjp+V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpCiAKIHZvaWQgV29ya2VyQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9PcGVuKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBjYWNoZU5hbWUpCiB7Ci0gICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1
ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpLCBjYWNoZU5hbWUg
PSBjYWNoZU5hbWUuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsK
LQotICAgICAgICBtX21haW5UaHJlYWRDb25uZWN0aW9uLT5vcGVuKG9yaWdpbiwgY2FjaGVOYW1l
LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJlcXVlc3RJ
ZGVudGlmaWVyXShjb25zdCBDYWNoZUlkZW50aWZpZXJPckVycm9yJiByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICAgICAgbV9wcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3Bl
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgcmVxdWVzdElk
ZW50aWZpZXIsIHJlc3VsdF0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJs
ZSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LmlzV29y
a2VyR2xvYmFsU2NvcGUoKSk7Ci0gICAgICAgICAgICAgICAgb3BlbkNvbXBsZXRlZChyZXF1ZXN0
SWRlbnRpZmllciwgcmVzdWx0KTsKLSAgICAgICAgICAgIH0sIG1fdGFza01vZGUpOworICAgIGF1
dG8qIHdvcmtlclRocmVhZCA9ICZtX3Njb3BlLnRocmVhZCgpOworICAgIGNhbGxPbk1haW5UaHJl
YWQoW3dvcmtlclRocmVhZCwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25u
ZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgp
LCBjYWNoZU5hbWUgPSBjYWNoZU5hbWUuaXNvbGF0ZWRDb3B5KCldICgpIG11dGFibGUgeworICAg
ICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+b3BlbihvcmlnaW4sIGNhY2hlTmFtZSwgW3dvcmtl
clRocmVhZCwgcmVxdWVzdElkZW50aWZpZXJdIChjb25zdCBDYWNoZUlkZW50aWZpZXJPckVycm9y
JiByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKCFXb3JrZXJUaHJlYWQ6OmlzQWxp
dmUod29ya2VyVGhyZWFkKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IHdvcmtlclRocmVhZC0+d29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza0Zvck1vZGVUb1dvcmtl
ckdsb2JhbFNjb3BlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0XSAoYXV0byYgc2NvcGUpIG11
dGFibGUgeworICAgICAgICAgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29w
ZSkuY2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpLm9wZW5Db21wbGV0ZWQocmVxdWVzdElkZW50aWZp
ZXIsIHJlc3VsdCk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6ZG9SZW1vdmUodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNh
Y2hlSWRlbnRpZmllcikKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXJd
KCkgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIEFT
U0VSVChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsKLQotICAgICAgICBtX21haW5UaHJlYWRDb25u
ZWN0aW9uLT5yZW1vdmUoY2FjaGVJZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdU
Rk1vdmUocHJvdGVjdGVkVGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXJd
KGNvbnN0IENhY2hlSWRlbnRpZmllck9yRXJyb3ImIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgYXV0
byogd29ya2VyVGhyZWFkID0gJm1fc2NvcGUudGhyZWFkKCk7CisgICAgY2FsbE9uTWFpblRocmVh
ZChbd29ya2VyVGhyZWFkLCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5l
Y3Rpb24sIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXJdICgpIG11dGFibGUgewor
ICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+cmVtb3ZlKGNhY2hlSWRlbnRpZmllciwgW3dv
cmtlclRocmVhZCwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllcl0gKGNvbnN0IENh
Y2hlSWRlbnRpZmllck9yRXJyb3ImIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBBU1NF
UlRfVU5VU0VEKGNhY2hlSWRlbnRpZmllciwgIXJlc3VsdC5oYXNWYWx1ZSgpIHx8IHJlc3VsdC52
YWx1ZSgpLmlkZW50aWZpZXIgPT0gY2FjaGVJZGVudGlmaWVyKTsKLSAgICAgICAgICAgIG1fcHJv
eHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCByZXN1bHRdKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewotICAgICAgICAgICAgICAg
IEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwot
ICAgICAgICAgICAgICAgIHJlbW92ZUNvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0
KTsKLSAgICAgICAgICAgIH0sIG1fdGFza01vZGUpOworICAgICAgICAgICAgaWYgKCFXb3JrZXJU
aHJlYWQ6OmlzQWxpdmUod29ya2VyVGhyZWFkKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+d29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza0Zv
ck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0XSAoYXV0
byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2Jh
bFNjb3BlPihzY29wZSkuY2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpLnJlbW92ZUNvbXBsZXRlZChy
ZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0KTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6
OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KIAogdm9pZCBXb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlQ2FjaGVzKHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgdWludDY0X3QgdXBkYXRlQ291bnRlcikK
IHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCks
IHVwZGF0ZUNvdW50ZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7Ci0gICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsKKyAgICBhdXRvKiB3
b3JrZXJUaHJlYWQgPSAmbV9zY29wZS50aHJlYWQoKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt3
b3JrZXJUaHJlYWQsIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlv
biwgcmVxdWVzdElkZW50aWZpZXIsIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKSwgdXBk
YXRlQ291bnRlcl0gKCkgbXV0YWJsZSB7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5y
ZXRyaWV2ZUNhY2hlcyhvcmlnaW4sIHVwZGF0ZUNvdW50ZXIsIFt3b3JrZXJUaHJlYWQsIHJlcXVl
c3RJZGVudGlmaWVyXSAoQ2FjaGVJbmZvc09yRXJyb3ImJiByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICAgICAgaWYgKCFXb3JrZXJUaHJlYWQ6OmlzQWxpdmUod29ya2VyVGhyZWFkKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbV9tYWluVGhyZWFkQ29ubmVjdGlvbi0+cmV0
cmlldmVDYWNoZXMob3JpZ2luLCB1cGRhdGVDb3VudGVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJlcXVlc3RJZGVudGlmaWVyXShDYWNoZUluZm9zT3JF
cnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBDYWNoZUluZm9zT3JFcnJvciBp
c29sYXRlZFJlc3VsdDsKICAgICAgICAgICAgIGlmICghcmVzdWx0Lmhhc1ZhbHVlKCkpCiAgICAg
ICAgICAgICAgICAgaXNvbGF0ZWRSZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCk7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgaXNvbGF0ZWRSZXN1bHQgPSByZXN1bHQudmFsdWUoKS5p
c29sYXRlZENvcHkoKTsKIAotICAgICAgICAgICAgbV9wcm94eS5wb3N0VGFza0Zvck1vZGVUb1dv
cmtlckdsb2JhbFNjb3BlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCA9IFdURk1vdmUoaXNvbGF0ZWRSZXN1bHQp
XShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKLSAgICAgICAgICAg
ICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgp
KTsKLSAgICAgICAgICAgICAgICB1cGRhdGVDYWNoZXMocmVxdWVzdElkZW50aWZpZXIsIFdURk1v
dmUocmVzdWx0KSk7Ci0gICAgICAgICAgICB9LCBtX3Rhc2tNb2RlKTsKKyAgICAgICAgICAgIHdv
cmtlclRocmVhZC0+d29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckds
b2JhbFNjb3BlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gV1RGTW92ZShpc29sYXRlZFJl
c3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgZG93bmNhc3Q8
V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5jYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkudXBkYXRl
Q2FjaGVzKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAg
fSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwog
fQogCiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJlZmVyZW5jZSh1aW50NjRf
dCBjYWNoZUlkZW50aWZpZXIpCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWNoZUlkZW50aWZpZXJdKCkgewotICAgICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29ubmVj
dGlvbik7Ci0KLSAgICAgICAgbV9tYWluVGhyZWFkQ29ubmVjdGlvbi0+cmVmZXJlbmNlKGNhY2hl
SWRlbnRpZmllcik7CisgICAgY2FsbE9uTWFpblRocmVhZChbbWFpblRocmVhZENvbm5lY3Rpb24g
PSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBjYWNoZUlkZW50aWZpZXJdKCkgeworICAgICAgICBt
YWluVGhyZWFkQ29ubmVjdGlvbi0+cmVmZXJlbmNlKGNhY2hlSWRlbnRpZmllcik7CiAgICAgfSk7
CiB9CiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZGVyZWZlcmVuY2UodWlu
dDY0X3QgY2FjaGVJZGVudGlmaWVyKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FjaGVJZGVudGlmaWVyXSgpIHsKLSAgICAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgQVNTRVJUKG1fbWFpblRocmVhZENv
bm5lY3Rpb24pOwotCi0gICAgICAgIG1fbWFpblRocmVhZENvbm5lY3Rpb24tPmRlcmVmZXJlbmNl
KGNhY2hlSWRlbnRpZmllcik7CisgICAgY2FsbE9uTWFpblRocmVhZChbbWFpblRocmVhZENvbm5l
Y3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBjYWNoZUlkZW50aWZpZXJdKCkgeworICAg
ICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+ZGVyZWZlcmVuY2UoY2FjaGVJZGVudGlmaWVyKTsK
ICAgICB9KTsKIH0KIApAQCAtMjEwLDQ3ICsyMDUsNDUgQEAgc3RhdGljIGlubGluZSBSZWNvcmRz
T3JFcnJvciByZWNvcmRzT3JFcnJvckZyb21SZWNvcmRzRGF0YShFeHBlY3RlZDxWZWN0b3I8Q3Jv
c3MKIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlUmVjb3Jk
cyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBj
b25zdCBVUkwmIHVybCkKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIs
IHVybCA9IHVybC5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKLSAgICAgICAgQVNTRVJUKG1fbWFpblRocmVhZENvbm5lY3Rpb24pOwot
Ci0gICAgICAgIG1fbWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZlUmVjb3JkcyhjYWNoZUlk
ZW50aWZpZXIsIHVybCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpLCByZXF1ZXN0SWRlbnRpZmllcl0oUmVjb3Jkc09yRXJyb3ImJiByZXN1bHQpIG11dGFibGUg
ewotICAgICAgICAgICAgbV9wcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3Bl
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgcmVzdWx0ID0g
cmVjb3Jkc0RhdGFPckVycm9yRnJvbVJlY29yZHMocmVzdWx0KSwgcmVxdWVzdElkZW50aWZpZXJd
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewotICAgICAgICAgICAg
ICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkp
OwotICAgICAgICAgICAgICAgIHVwZGF0ZVJlY29yZHMocmVxdWVzdElkZW50aWZpZXIsIHJlY29y
ZHNPckVycm9yRnJvbVJlY29yZHNEYXRhKFdURk1vdmUocmVzdWx0KSkpOwotICAgICAgICAgICAg
fSwgbV90YXNrTW9kZSk7CisgICAgYXV0byogd29ya2VyVGhyZWFkID0gJm1fc2NvcGUudGhyZWFk
KCk7CisgICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkLCBtYWluVGhyZWFkQ29ubmVj
dGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlk
ZW50aWZpZXIsIHVybCA9IHVybC5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
bWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZlUmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIHVy
bCwgW3dvcmtlclRocmVhZCwgcmVxdWVzdElkZW50aWZpZXJdKFJlY29yZHNPckVycm9yJiYgcmVz
dWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICghV29ya2VyVGhyZWFkOjppc0FsaXZlKHdv
cmtlclRocmVhZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB3b3Jr
ZXJUaHJlYWQtPndvcmtlckxvYWRlclByb3h5KCkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9i
YWxTY29wZShbcmVzdWx0ID0gcmVjb3Jkc0RhdGFPckVycm9yRnJvbVJlY29yZHMocmVzdWx0KSwg
cmVxdWVzdElkZW50aWZpZXJdIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAg
ICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5jYWNoZVN0b3JhZ2VDb25uZWN0
aW9uKCkudXBkYXRlUmVjb3JkcyhyZXF1ZXN0SWRlbnRpZmllciwgcmVjb3Jkc09yRXJyb3JGcm9t
UmVjb3Jkc0RhdGEoV1RGTW92ZShyZXN1bHQpKSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5M
b29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKIHZvaWQgV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9CYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRf
dCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9ucykKIHsKLSAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlcXVlc3QgPSByZXF1ZXN0Lmlz
b2xhdGVkQ29weSgpLCBvcHRpb25zID0gb3B0aW9ucy5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxl
IHsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgQVNTRVJUKG1fbWFp
blRocmVhZENvbm5lY3Rpb24pOworICAgIGF1dG8qIHdvcmtlclRocmVhZCA9ICZtX3Njb3BlLnRo
cmVhZCgpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dvcmtlclRocmVhZCwgbWFpblRocmVhZENv
bm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwgY2Fj
aGVJZGVudGlmaWVyLCByZXF1ZXN0ID0gcmVxdWVzdC5pc29sYXRlZENvcHkoKSwgb3B0aW9ucyA9
IG9wdGlvbnMuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CisgICAgICAgIG1haW5UaHJlYWRD
b25uZWN0aW9uLT5iYXRjaERlbGV0ZU9wZXJhdGlvbihjYWNoZUlkZW50aWZpZXIsIHJlcXVlc3Qs
IFdURk1vdmUob3B0aW9ucyksIFt3b3JrZXJUaHJlYWQsIHJlcXVlc3RJZGVudGlmaWVyXShSZWNv
cmRJZGVudGlmaWVyc09yRXJyb3ImJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgaWYg
KCFXb3JrZXJUaHJlYWQ6OmlzQWxpdmUod29ya2VyVGhyZWFkKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgbV9tYWluVGhyZWFkQ29ubmVjdGlvbi0+YmF0Y2hEZWxldGVPcGVy
YXRpb24oY2FjaGVJZGVudGlmaWVyLCByZXF1ZXN0LCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJlcXVlc3RJZGVudGlmaWVy
XShSZWNvcmRJZGVudGlmaWVyc09yRXJyb3ImJiByZXN1bHQpIG11dGFibGUgewotCi0gICAgICAg
ICAgICBtX3Byb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwg
cmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRl
eHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgICAgICAgICBkZWxldGVSZWNvcmRz
Q29tcGxldGVkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwotICAgICAgICAg
ICAgfSwgbV90YXNrTW9kZSk7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPndvcmtlckxvYWRl
clByb3h5KCkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShbcmVxdWVzdElkZW50
aWZpZXIsIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24oKS5kZWxldGVSZWNvcmRzQ29tcGxldGVkKHJlcXVlc3RJZGVudGlm
aWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVm
YXVsdE1vZGUoKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQogCiB2b2lkIFdvcmtlckNhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OmRvQmF0Y2hQdXRPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElk
ZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFJlY29yZD4mJiByZWNv
cmRzKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgcmVjb3Jkc0Rh
dGEgPSByZWNvcmRzRGF0YUZyb21SZWNvcmRzKHJlY29yZHMpXSgpIG11dGFibGUgewotICAgICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29u
bmVjdGlvbik7Ci0KLSAgICAgICAgbV9tYWluVGhyZWFkQ29ubmVjdGlvbi0+YmF0Y2hQdXRPcGVy
YXRpb24oY2FjaGVJZGVudGlmaWVyLCByZWNvcmRzRnJvbVJlY29yZHNEYXRhKFdURk1vdmUocmVj
b3Jkc0RhdGEpKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMp
LCByZXF1ZXN0SWRlbnRpZmllcl0oUmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYgcmVzdWx0KSBt
dXRhYmxlIHsKKyAgICBhdXRvKiB3b3JrZXJUaHJlYWQgPSAmbV9zY29wZS50aHJlYWQoKTsKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFt3b3JrZXJUaHJlYWQsIG1haW5UaHJlYWRDb25uZWN0aW9uID0g
bV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmll
ciwgcmVjb3Jkc0RhdGEgPSByZWNvcmRzRGF0YUZyb21SZWNvcmRzKHJlY29yZHMpXSgpIG11dGFi
bGUgeworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+YmF0Y2hQdXRPcGVyYXRpb24oY2Fj
aGVJZGVudGlmaWVyLCByZWNvcmRzRnJvbVJlY29yZHNEYXRhKFdURk1vdmUocmVjb3Jkc0RhdGEp
KSwgW3dvcmtlclRocmVhZCwgcmVxdWVzdElkZW50aWZpZXJdIChSZWNvcmRJZGVudGlmaWVyc09y
RXJyb3ImJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKCFXb3JrZXJUaHJlYWQ6
OmlzQWxpdmUod29ya2VyVGhyZWFkKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgICAgIG1fcHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJlcXVlc3RJZGVudGlmaWVy
LCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpIG11dGFibGUgewotICAgICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29u
dGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwotICAgICAgICAgICAgICAgIHB1dFJlY29yZHND
b21wbGV0ZWQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7Ci0gICAgICAgICAg
ICB9LCBtX3Rhc2tNb2RlKTsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+d29ya2VyTG9hZGVy
UHJveHkoKS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFtyZXF1ZXN0SWRlbnRp
ZmllciwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewor
ICAgICAgICAgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuY2FjaGVT
dG9yYWdlQ29ubmVjdGlvbigpLnB1dFJlY29yZHNDb21wbGV0ZWQocmVxdWVzdElkZW50aWZpZXIs
IFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0
TW9kZSgpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmlu
ZGV4IGJmNWJhMjk1YjY3OTc2Yzc2NWQxYThkOGNjNmNiMmYyMjljOWY3YjkuLjI3NmE1N2FkYjIw
YjIyYjU2M2VkNzg1NzU3ZTk0YzhiOTRlYjBkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBA
IC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV29ya2VyQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbihXb3JrZXJHbG9iYWxTY29wZSYpOwogCi0gICAgLy8gV2ViQ29y
ZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbgorICAgIC8vIFdlYkNvcmU6OkNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24uCiAgICAgdm9pZCBkb09wZW4odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSkgZmluYWw7CiAgICAg
dm9pZCBkb1JlbW92ZSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJ
ZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGRvUmV0cmlldmVDYWNoZXModWludDY0X3QgcmVx
dWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCB1aW50NjRfdCB1cGRhdGVDb3Vu
dGVyKSBmaW5hbDsKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRvQmF0Y2hQ
dXRPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRl
bnRpZmllciwgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYpIGZpbmFsOwogCiAgICAg
V29ya2VyR2xvYmFsU2NvcGUmIG1fc2NvcGU7Ci0gICAgV29ya2VyTG9hZGVyUHJveHkmIG1fcHJv
eHk7Ci0gICAgU3RyaW5nIG1fdGFza01vZGU7CiAKICAgICBSZWZQdHI8Q2FjaGVTdG9yYWdlQ29u
bmVjdGlvbj4gbV9tYWluVGhyZWFkQ29ubmVjdGlvbjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDg4NjFlYjgxZDU2ZWY5OGE4MzMxZTI4
NDRjZjIwMGE5OGY5OGYxNWEuLmZkM2U2OGI0N2JiMDBkMTMzNjIxYmNlZDQ0NWFhMjM1ZDRjYzRj
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBA
IC0zOTUsNyArMzk1LDcgQEAgUGVyZm9ybWFuY2UmIFdvcmtlckdsb2JhbFNjb3BlOjpwZXJmb3Jt
YW5jZSgpIGNvbnN0CiAgICAgcmV0dXJuICptX3BlcmZvcm1hbmNlOwogfQogCi1DYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uJiBXb3JrZXJHbG9iYWxTY29wZTo6Y2FjaGVTdG9yYWdlQ29ubmVjdGlvbigp
CitXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uJiBXb3JrZXJHbG9iYWxTY29wZTo6Y2FjaGVT
dG9yYWdlQ29ubmVjdGlvbigpCiB7CiAgICAgaWYgKCFtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb24p
CiAgICAgICAgIG1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbiA9IFdvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmNyZWF0ZSgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmgKaW5kZXggNmUzZmFjMjAwYTUzY2Q5OGZkMTgwZjdhNmQ5NzVkMWQ2NjZjY2U1
YS4uNzFiZDYwZTFmNTNkMzk5NjcxNzEwNzE2NmEwNGJmYjYwNDdiYTdjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzdG9wSW5kZXhlZERhdGFiYXNlKCk7CiAjZW5kaWYKIAotICAgIENhY2hl
U3RvcmFnZUNvbm5lY3Rpb24mIGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsKKyAgICBXb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uJiBjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAKICAgICBX
b3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsg
fQogICAgIHZvaWQgY2xlYXJTY3JpcHQoKSB7IG1fc2NyaXB0ID0gbnVsbHB0cjsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IGY0NTU1ODg0OWFhZmNjMmY3NmE5
YTQwNTRlYTA3NmQyOTljZmY0YjIuLjUwZTEwYWZlZjM3OWMzNGY5Zjc4NjFmYjljZWYwMTAxMWIx
N2IxOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTY5LDYg
KzY5LDEzIEBAIHVuc2lnbmVkIFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkQ291bnQoKQogICAg
IHJldHVybiB3b3JrZXJUaHJlYWRzKCkuc2l6ZSgpOwogfQogCitib29sIFdvcmtlclRocmVhZDo6
aXNBbGl2ZShXb3JrZXJUaHJlYWQqIHRocmVhZCkKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3Rh
dGljTG9jaz4gbG9jayh0aHJlYWRTZXRNdXRleCk7CisKKyAgICByZXR1cm4gd29ya2VyVGhyZWFk
cygpLmNvbnRhaW5zKHRocmVhZCk7Cit9CisKIHN0cnVjdCBXb3JrZXJUaHJlYWRTdGFydHVwRGF0
YSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2VyVGhyZWFkU3RhcnR1cERhdGEpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5oCmluZGV4IDQ5ZTVjNGJiYmY1MmJkY2E4MTU3YzFjMDdmYjE5NmU4ZGViZWM5NmIu
LjY4OTcxNmViYzhjNzIxNjQ0NGUxZWQ5NDA3ODE0ZTZlMzAyNzI4NTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtNjMsNiArNjMsOCBAQCBjbGFzcyBXb3JrZXJUaHJl
YWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyVGhyZWFkPiB7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+V29ya2VyVGhyZWFkKCk7CiAKKyAgICBzdGF0aWMgYm9vbCBpc0FsaXZl
KFdvcmtlclRocmVhZCopOworCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzdGFydChXVEY6OkZ1
bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgZXZhbHVhdGVDYWxsYmFjayk7CiAgICAgdm9p
ZCBzdG9wKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIHRlcm1pbmF0ZWRDYWxsYmFjayk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328352</attachid>
            <date>2017-12-04 09:34:57 -0800</date>
            <delta_ts>2017-12-04 10:13:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180304-20171204093456.patch</filename>
            <type>text/plain</type>
            <size>16786</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDY1M2VmYjMxZGE1ZjFh
NTFlOGY4YTM0Yjg0Nzg3NTI5MDZiMGM4Yi4uNDFiZDY1NmY0YTI3NTFkOTQyMGJiYjBkNjBkNDAx
MjAxODk3MmM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTEyLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uIHNob3VsZCBoYW5kbGUgdGhlIGNhc2Ugb2YgdGVybWluYXRlZCB3b3JrZXJz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzMDQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyB3ZWIg
cGFnZSBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICBSZXdvcmtlZCBX
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uIGhvcHBpbmcuCisgICAgICAgIEluc3RlYWQgb2Yg
cmVmaW5nL3VucmVmaW5nIGl0c2VsZiwgaXQgcmVmcyB0aGUgd29ya2VyIHRocmVhZCBhbmQgdGhl
IG1haW4gdGhyZWFkIGNvbm5lY3Rpb24uCisgICAgICAgIFRoaXMgd29ya2VyIHRocmVhZCBpcyB0
aGVuIHVzZWQgb24gdGhlIHdheSBiYWNrIGZyb20gdGhlIG1haW4gdGhyZWFkLgorCisgICAgICAg
ICogTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpXb3JrZXJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmRvT3Blbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uOjpkb1JlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uOjpkb1JldHJpZXZlQ2FjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkZXJlZmVyZW5jZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlUmVjb3Jkcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb0JhdGNoRGVs
ZXRlT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OmRvQmF0Y2hQdXRPcGVyYXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24pOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
aDoKKwogMjAxNy0xMi0wNCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW1dQRV1bR1RLXSBJbXBsZW1lbnQgUEFMOjpTbGVlcERpc2FibGVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAwNjNiNzAyMDE4ZjkzZjA1MDMxNzJkNWUxNTI0
ZjVmMGMzYTdhMjg1Li5mMGRiMTNiYzc5MDI3OTAxNGFiN2NkM2IwMmVmM2VjODI3NTZkMGM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2Vy
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTkxLDE3ICs5MSwxNSBAQCBzdGF0aWMgUmVj
b3JkIGZyb21Dcm9zc1RocmVhZFJlY29yZERhdGEoQ3Jvc3NUaHJlYWRSZWNvcmREYXRhJiYgZGF0
YSkKIFJlZjxXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBXb3JrZXJDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uOjpjcmVhdGUoV29ya2VyR2xvYmFsU2NvcGUmIHNjb3BlKQogewogICAgIGF1dG8g
Y29ubmVjdGlvbiA9IGFkb3B0UmVmKCpuZXcgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihz
Y29wZSkpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZENvbm5lY3Rpb24gPSBjb25u
ZWN0aW9uLmNvcHlSZWYoKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKLSAgICAgICAgcHJvdGVjdGVkQ29ubmVjdGlvbi0+bV9tYWluVGhyZWFkQ29ubmVjdGlv
biA9IHByb3RlY3RlZENvbm5lY3Rpb24tPm1fcHJveHkuY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbigpOworICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFt3b3JrZXJUaHJlYWQgPSBtYWtl
UmVmKHNjb3BlLnRocmVhZCgpKSwgY29ubmVjdGlvbiA9IGNvbm5lY3Rpb24ucHRyKCldKCkgbXV0
YWJsZSB7CisgICAgICAgIGNvbm5lY3Rpb24tPm1fbWFpblRocmVhZENvbm5lY3Rpb24gPSB3b3Jr
ZXJUaHJlYWQtPndvcmtlckxvYWRlclByb3h5KCkuY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bigpOwogICAgIH0pOworICAgIEFTU0VSVChjb25uZWN0aW9uLT5tX21haW5UaHJlYWRDb25uZWN0
aW9uKTsKICAgICByZXR1cm4gY29ubmVjdGlvbjsKIH0KIAogV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihXb3JrZXJHbG9iYWxTY29wZSYg
c2NvcGUpCiAgICAgOiBtX3Njb3BlKHNjb3BlKQotICAgICwgbV9wcm94eShtX3Njb3BlLnRocmVh
ZCgpLndvcmtlckxvYWRlclByb3h5KCkpCi0gICAgLCBtX3Rhc2tNb2RlKFdvcmtlclJ1bkxvb3A6
OmRlZmF1bHRNb2RlKCkuaXNvbGF0ZWRDb3B5KCkpCiB7CiB9CiAKQEAgLTExMyw3MyArMTExLDU1
IEBAIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246On5Xb3JrZXJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uKCkKIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb09wZW4odWlu
dDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJp
bmcmIGNhY2hlTmFtZSkKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4gPSBvcmlnaW4u
aXNvbGF0ZWRDb3B5KCksIGNhY2hlTmFtZSA9IGNhY2hlTmFtZS5pc29sYXRlZENvcHkoKV0oKSBt
dXRhYmxlIHsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgQVNTRVJU
KG1fbWFpblRocmVhZENvbm5lY3Rpb24pOwotCi0gICAgICAgIG1fbWFpblRocmVhZENvbm5lY3Rp
b24tPm9wZW4ob3JpZ2luLCBjYWNoZU5hbWUsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92
ZShwcm90ZWN0ZWRUaGlzKSwgcmVxdWVzdElkZW50aWZpZXJdKGNvbnN0IENhY2hlSWRlbnRpZmll
ck9yRXJyb3ImIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBtX3Byb3h5LnBvc3RUYXNr
Rm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3Zl
KHByb3RlY3RlZFRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0XShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRfVU5V
U0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgICAg
ICAgICBvcGVuQ29tcGxldGVkKHJlcXVlc3RJZGVudGlmaWVyLCByZXN1bHQpOwotICAgICAgICAg
ICAgfSwgbV90YXNrTW9kZSk7CisgICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkID0g
bWFrZVJlZihtX3Njb3BlLnRocmVhZCgpKSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5U
aHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2luLmlzb2xh
dGVkQ29weSgpLCBjYWNoZU5hbWUgPSBjYWNoZU5hbWUuaXNvbGF0ZWRDb3B5KCldICgpIG11dGFi
bGUgeworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+b3BlbihvcmlnaW4sIGNhY2hlTmFt
ZSwgW3dvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKSwgcmVxdWVzdElkZW50aWZp
ZXJdIChjb25zdCBDYWNoZUlkZW50aWZpZXJPckVycm9yJiByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZXF1ZXN0
SWRlbnRpZmllciwgcmVzdWx0XSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAg
ICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuY2FjaGVTdG9yYWdlQ29ubmVj
dGlvbigpLm9wZW5Db21wbGV0ZWQocmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCk7CisgICAgICAg
ICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiB9CiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZW1vdmUodWlu
dDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikKIHsKLSAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRDb25u
ZWN0aW9uKTsKLQotICAgICAgICBtX21haW5UaHJlYWRDb25uZWN0aW9uLT5yZW1vdmUoY2FjaGVJ
ZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyks
IHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXJdKGNvbnN0IENhY2hlSWRlbnRpZmll
ck9yRXJyb3ImIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd29ya2Vy
VGhyZWFkID0gbWFrZVJlZihtX3Njb3BlLnRocmVhZCgpKSwgbWFpblRocmVhZENvbm5lY3Rpb24g
PSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlm
aWVyXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJlbW92ZShj
YWNoZUlkZW50aWZpZXIsIFt3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIHJl
cXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXJdIChjb25zdCBDYWNoZUlkZW50aWZpZXJP
ckVycm9yJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChjYWNo
ZUlkZW50aWZpZXIsICFyZXN1bHQuaGFzVmFsdWUoKSB8fCByZXN1bHQudmFsdWUoKS5pZGVudGlm
aWVyID09IGNhY2hlSWRlbnRpZmllcik7Ci0gICAgICAgICAgICBtX3Byb3h5LnBvc3RUYXNrRm9y
TW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0XShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VE
KGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgICAgICAg
ICByZW1vdmVDb21wbGV0ZWQocmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCk7Ci0gICAgICAgICAg
ICB9LCBtX3Rhc2tNb2RlKTsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBv
c3RUYXNrRm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdF0gKGF1dG8mIHNjb3BlKSBt
dXRhYmxlIHsKKyAgICAgICAgICAgICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2Nv
cGUpLmNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKS5yZW1vdmVDb21wbGV0ZWQocmVxdWVzdElkZW50
aWZpZXIsIHJlc3VsdCk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9k
ZSgpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjo6ZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBvcmlnaW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpCiB7Ci0gICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1
ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpLCB1cGRhdGVDb3Vu
dGVyXSgpIG11dGFibGUgewotICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAg
ICBBU1NFUlQobV9tYWluVGhyZWFkQ29ubmVjdGlvbik7Ci0KLSAgICAgICAgbV9tYWluVGhyZWFk
Q29ubmVjdGlvbi0+cmV0cmlldmVDYWNoZXMob3JpZ2luLCB1cGRhdGVDb3VudGVyLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJlcXVlc3RJZGVudGlmaWVy
XShDYWNoZUluZm9zT3JFcnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY2FsbE9uTWFpblRo
cmVhZChbd29ya2VyVGhyZWFkID0gbWFrZVJlZihtX3Njb3BlLnRocmVhZCgpKSwgbWFpblRocmVh
ZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwg
b3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpLCB1cGRhdGVDb3VudGVyXSAoKSBtdXRhYmxl
IHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZlQ2FjaGVzKG9yaWdpbiwg
dXBkYXRlQ291bnRlciwgW3dvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKSwgcmVx
dWVzdElkZW50aWZpZXJdIChDYWNoZUluZm9zT3JFcnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBDYWNoZUluZm9zT3JFcnJvciBpc29sYXRlZFJlc3VsdDsKICAgICAgICAgICAg
IGlmICghcmVzdWx0Lmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICAgICAgaXNvbGF0ZWRSZXN1bHQg
PSBXVEZNb3ZlKHJlc3VsdCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgaXNv
bGF0ZWRSZXN1bHQgPSByZXN1bHQudmFsdWUoKS5pc29sYXRlZENvcHkoKTsKIAotICAgICAgICAg
ICAgbV9wcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIHJl
c3VsdCA9IFdURk1vdmUoaXNvbGF0ZWRSZXN1bHQpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQs
IGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgICAgICAgICB1cGRhdGVD
YWNoZXMocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7Ci0gICAgICAgICAgICB9
LCBtX3Rhc2tNb2RlKTsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RU
YXNrRm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCA9IFdURk1vdmUoaXNvbGF0ZWRS
ZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGRvd25jYXN0
PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuY2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpLnVwZGF0
ZUNhY2hlcyhyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAg
IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9KTsKICAgICB9KTsK
IH0KIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZWZlcmVuY2UodWludDY0
X3QgY2FjaGVJZGVudGlmaWVyKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FjaGVJZGVudGlmaWVyXSgpIHsKLSAgICAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgQVNTRVJUKG1fbWFpblRocmVhZENvbm5l
Y3Rpb24pOwotCi0gICAgICAgIG1fbWFpblRocmVhZENvbm5lY3Rpb24tPnJlZmVyZW5jZShjYWNo
ZUlkZW50aWZpZXIpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW21haW5UaHJlYWRDb25uZWN0aW9u
ID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgY2FjaGVJZGVudGlmaWVyXSgpIHsKKyAgICAgICAg
bWFpblRocmVhZENvbm5lY3Rpb24tPnJlZmVyZW5jZShjYWNoZUlkZW50aWZpZXIpOwogICAgIH0p
OwogfQogCiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRlcmVmZXJlbmNlKHVp
bnQ2NF90IGNhY2hlSWRlbnRpZmllcikKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmllcl0oKSB7Ci0gICAg
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRD
b25uZWN0aW9uKTsKLQotICAgICAgICBtX21haW5UaHJlYWRDb25uZWN0aW9uLT5kZXJlZmVyZW5j
ZShjYWNoZUlkZW50aWZpZXIpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW21haW5UaHJlYWRDb25u
ZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgY2FjaGVJZGVudGlmaWVyXSgpIHsKKyAg
ICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmRlcmVmZXJlbmNlKGNhY2hlSWRlbnRpZmllcik7
CiAgICAgfSk7CiB9CiAKQEAgLTIxMCw0NyArMTkwLDMzIEBAIHN0YXRpYyBpbmxpbmUgUmVjb3Jk
c09yRXJyb3IgcmVjb3Jkc09yRXJyb3JGcm9tUmVjb3Jkc0RhdGEoRXhwZWN0ZWQ8VmVjdG9yPENy
b3NzCiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZXRyaWV2ZVJlY29y
ZHModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwg
Y29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVy
LCB1cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsK
LQotICAgICAgICBtX21haW5UaHJlYWRDb25uZWN0aW9uLT5yZXRyaWV2ZVJlY29yZHMoY2FjaGVJ
ZGVudGlmaWVyLCB1cmwsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKSwgcmVxdWVzdElkZW50aWZpZXJdKFJlY29yZHNPckVycm9yJiYgcmVzdWx0KSBtdXRhYmxl
IHsKLSAgICAgICAgICAgIG1fcHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29w
ZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJlc3VsdCA9
IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRzKHJlc3VsdCksIHJlcXVlc3RJZGVudGlmaWVy
XShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKLSAgICAgICAgICAg
ICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgp
KTsKLSAgICAgICAgICAgICAgICB1cGRhdGVSZWNvcmRzKHJlcXVlc3RJZGVudGlmaWVyLCByZWNv
cmRzT3JFcnJvckZyb21SZWNvcmRzRGF0YShXVEZNb3ZlKHJlc3VsdCkpKTsKLSAgICAgICAgICAg
IH0sIG1fdGFza01vZGUpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dvcmtlclRocmVhZCA9IG1h
a2VSZWYobV9zY29wZS50aHJlYWQoKSksIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhy
ZWFkQ29ubmVjdGlvbiwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgdXJsID0g
dXJsLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAgICAgICBtYWluVGhyZWFkQ29ubmVj
dGlvbi0+cmV0cmlldmVSZWNvcmRzKGNhY2hlSWRlbnRpZmllciwgdXJsLCBbd29ya2VyVGhyZWFk
ID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpLCByZXF1ZXN0SWRlbnRpZmllcl0oUmVjb3Jkc09yRXJy
b3ImJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29w
KCkucG9zdFRhc2tGb3JNb2RlKFtyZXN1bHQgPSByZWNvcmRzRGF0YU9yRXJyb3JGcm9tUmVjb3Jk
cyhyZXN1bHQpLCByZXF1ZXN0SWRlbnRpZmllcl0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24oKS51cGRhdGVSZWNvcmRzKHJlcXVlc3RJZGVudGlmaWVyLCByZWNvcmRz
T3JFcnJvckZyb21SZWNvcmRzRGF0YShXVEZNb3ZlKHJlc3VsdCkpKTsKKyAgICAgICAgICAgIH0s
IFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0K
IAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb0JhdGNoRGVsZXRlT3BlcmF0
aW9uKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRp
b25zKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgcmVxdWVzdCA9
IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVkQ29weSgp
XSgpIG11dGFibGUgewotICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBB
U1NFUlQobV9tYWluVGhyZWFkQ29ubmVjdGlvbik7Ci0KLSAgICAgICAgbV9tYWluVGhyZWFkQ29u
bmVjdGlvbi0+YmF0Y2hEZWxldGVPcGVyYXRpb24oY2FjaGVJZGVudGlmaWVyLCByZXF1ZXN0LCBX
VEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVk
VGhpcyksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRJZGVudGlmaWVyc09yRXJyb3ImJiByZXN1
bHQpIG11dGFibGUgewotCi0gICAgICAgICAgICBtX3Byb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29y
a2VyR2xvYmFsU2NvcGUoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpLCByZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBBU1NF
UlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKLSAgICAg
ICAgICAgICAgICBkZWxldGVSZWNvcmRzQ29tcGxldGVkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZN
b3ZlKHJlc3VsdCkpOwotICAgICAgICAgICAgfSwgbV90YXNrTW9kZSk7CisgICAgY2FsbE9uTWFp
blRocmVhZChbd29ya2VyVGhyZWFkID0gbWFrZVJlZihtX3Njb3BlLnRocmVhZCgpKSwgbWFpblRo
cmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmll
ciwgY2FjaGVJZGVudGlmaWVyLCByZXF1ZXN0ID0gcmVxdWVzdC5pc29sYXRlZENvcHkoKSwgb3B0
aW9ucyA9IG9wdGlvbnMuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CisgICAgICAgIG1haW5U
aHJlYWRDb25uZWN0aW9uLT5iYXRjaERlbGV0ZU9wZXJhdGlvbihjYWNoZUlkZW50aWZpZXIsIHJl
cXVlc3QsIFdURk1vdmUob3B0aW9ucyksIFt3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRo
cmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRJZGVudGlmaWVyc09yRXJyb3ImJiByZXN1
bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRh
c2tGb3JNb2RlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSAo
YXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGRvd25jYXN0PFdvcmtlckds
b2JhbFNjb3BlPihzY29wZSkuY2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpLmRlbGV0ZVJlY29yZHND
b21wbGV0ZWQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAg
ICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiB9CiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9CYXRjaFB1dE9wZXJh
dGlvbih1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVy
LCBWZWN0b3I8UmVjb3JkPiYmIHJlY29yZHMpCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgY2Fj
aGVJZGVudGlmaWVyLCByZWNvcmRzRGF0YSA9IHJlY29yZHNEYXRhRnJvbVJlY29yZHMocmVjb3Jk
cyldKCkgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAg
IEFTU0VSVChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsKLQotICAgICAgICBtX21haW5UaHJlYWRD
b25uZWN0aW9uLT5iYXRjaFB1dE9wZXJhdGlvbihjYWNoZUlkZW50aWZpZXIsIHJlY29yZHNGcm9t
UmVjb3Jkc0RhdGEoV1RGTW92ZShyZWNvcmRzRGF0YSkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRJZGVudGlm
aWVyc09yRXJyb3ImJiByZXN1bHQpIG11dGFibGUgewotCi0gICAgICAgICAgICBtX3Byb3h5LnBv
c3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gV1RGTW92
ZShyZXN1bHQpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKLSAg
ICAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9i
YWxTY29wZSgpKTsKLSAgICAgICAgICAgICAgICBwdXRSZWNvcmRzQ29tcGxldGVkKHJlcXVlc3RJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwotICAgICAgICAgICAgfSwgbV90YXNrTW9kZSk7
CisgICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkID0gbWFrZVJlZihtX3Njb3BlLnRo
cmVhZCgpKSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBy
ZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCByZWNvcmRzRGF0YSA9IHJlY29yZHNE
YXRhRnJvbVJlY29yZHMocmVjb3JkcyldKCkgbXV0YWJsZSB7CisgICAgICAgIG1haW5UaHJlYWRD
b25uZWN0aW9uLT5iYXRjaFB1dE9wZXJhdGlvbihjYWNoZUlkZW50aWZpZXIsIHJlY29yZHNGcm9t
UmVjb3Jkc0RhdGEoV1RGTW92ZShyZWNvcmRzRGF0YSkpLCBbd29ya2VyVGhyZWFkID0gV1RGTW92
ZSh3b3JrZXJUaHJlYWQpLCByZXF1ZXN0SWRlbnRpZmllcl0gKFJlY29yZElkZW50aWZpZXJzT3JF
cnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxv
b3AoKS5wb3N0VGFza0Zvck1vZGUoW3JlcXVlc3RJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3Zl
KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgZG93bmNh
c3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5jYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkucHV0
UmVjb3Jkc0NvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAg
ICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9KTsK
ICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggYmY1YmEyOTViNjc5NzZjNzY1
ZDFhOGQ4Y2M2Y2IyZjIyOWM5ZjdiOS4uMjc2YTU3YWRiMjBiMjJiNTYzZWQ3ODU3NTdlOTRjOGI5
NGViMGQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKFdv
cmtlckdsb2JhbFNjb3BlJik7CiAKLSAgICAvLyBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uCisgICAgLy8gV2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi4KICAgICB2b2lkIGRv
T3Blbih1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNv
bnN0IFN0cmluZyYgY2FjaGVOYW1lKSBmaW5hbDsKICAgICB2b2lkIGRvUmVtb3ZlKHVpbnQ2NF90
IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpIGZpbmFsOwogICAg
IHZvaWQgZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBvcmlnaW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpIGZpbmFsOwpAQCAtNTUsOCAr
NTUsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZG9CYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8RE9NQ2Fj
aGVFbmdpbmU6OlJlY29yZD4mJikgZmluYWw7CiAKICAgICBXb3JrZXJHbG9iYWxTY29wZSYgbV9z
Y29wZTsKLSAgICBXb3JrZXJMb2FkZXJQcm94eSYgbV9wcm94eTsKLSAgICBTdHJpbmcgbV90YXNr
TW9kZTsKIAogICAgIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBtX21haW5UaHJlYWRD
b25uZWN0aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5jcHAKaW5kZXggYmY3NDUyZWNjNmMzYzliZWE2MWNlNWY0YmUwNjgzNjk0ZmFlZjM5NC4uYTdh
NGRkODNjZWIyY2IwNDg0Njk3OGYyYmM5YTAyMmZkNDhkMmFhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTM5NSw3ICszOTUsNyBAQCBQZXJm
b3JtYW5jZSYgV29ya2VyR2xvYmFsU2NvcGU6OnBlcmZvcm1hbmNlKCkgY29uc3QKICAgICByZXR1
cm4gKm1fcGVyZm9ybWFuY2U7CiB9CiAKLUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24mIFdvcmtlckds
b2JhbFNjb3BlOjpjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkKK1dvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24mIFdvcmtlckdsb2JhbFNjb3BlOjpjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkKIHsK
ICAgICBpZiAoIW1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbikKICAgICAgICAgbV9jYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uID0gV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKCp0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCA2ZTNm
YWMyMDBhNTNjZDk4ZmQxODBmN2E2ZDk3NWQxZDY2NmNjZTVhLi43MWJkNjBlMWY1M2QzOTk2NzE3
MTA3MTY2YTA0YmZiNjA0N2JhN2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BJbmRl
eGVkRGF0YWJhc2UoKTsKICNlbmRpZgogCi0gICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbiYgY2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbigpOworICAgIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24m
IGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsKIAogICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIq
IHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAgICAgdm9pZCBjbGVhclNjcmlw
dCgpIHsgbV9zY3JpcHQgPSBudWxscHRyOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>