<?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>164560</bug_id>
          
          <creation_ts>2016-11-09 13:51:47 -0800</creation_ts>
          <short_desc>MediaStreamTrack should use more Ref&lt;&gt; and less RefPtr&lt;&gt;</short_desc>
          <delta_ts>2016-11-10 12:24:09 -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></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>alex</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1249491</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-09 13:51:47 -0800</bug_when>
    <thetext>Some refactoring might help</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249492</commentid>
    <comment_count>1</comment_count>
      <attachid>294283</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-09 13:56:09 -0800</bug_when>
    <thetext>Created attachment 294283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249824</commentid>
    <comment_count>2</comment_count>
      <attachid>294283</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-10 09:29:27 -0800</bug_when>
    <thetext>Comment on attachment 294283
Patch

Clearing flags on attachment: 294283

Committed r208542: &lt;http://trac.webkit.org/changeset/208542&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249825</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-10 09:29:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249911</commentid>
    <comment_count>4</comment_count>
      <attachid>294283</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-10 12:24:09 -0800</bug_when>
    <thetext>Comment on attachment 294283
Patch

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

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:55
&gt; +        ASSERT(source);
&gt; +        tracks.append(MediaStreamTrackPrivate::create(source.releaseNonNull()));

This is an anti-pattern. The releaseNonNull function includes this assertion and we generally don’t want to a second redundant assertion before each time we use that function.

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:60
&gt; +        ASSERT(source);
&gt; +        tracks.append(MediaStreamTrackPrivate::create(source.releaseNonNull()));

Ditto.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294283</attachid>
            <date>2016-11-09 13:56:09 -0800</date>
            <delta_ts>2016-11-10 09:29:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164560-20161109135158.patch</filename>
            <type>text/plain</type>
            <size>24902</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjEzMDQ5NzI0ZTM5MDIx
ZjZkOWQ4MDFiMmFjZTZhOGM0Y2JmZjViMS4uYTg3OTM4NWY3NmEzZTk3MTA2YWJkZjYxY2E4ZGQ5
YTQ3YTlkNmY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE2LTExLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uZkBnbWFpbC5jb20+CisKKyAgICAgICAgTWVkaWFTdHJlYW1UcmFj
ayBzaG91bGQgdXNlIG1vcmUgUmVmPD4gYW5kIGxlc3MgUmVmUHRyPD4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDU2MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvci4K
KworICAgICAgICBNYWtlIE1lZGlhU3RyZWFtVHJhY2sgdGFrZSBhIFJlZjw+JiBpbnN0ZWFkIG9m
IGEgcmVmZXJlbmNlLgorICAgICAgICBVc2luZyBSZWY8PiYmIGluc3RlYWQgb2YgUmVmUHRyPD4m
JiBpbiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS4KKyAgICAgICAgVXBkYXRpbmcgY29uc3RuZXNz
IG9mIHNvbWUgbWV0aG9kcyBhY2NvcmRpbmdseS4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlUmVjZWl2ZXIpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFjazo6TWVkaWFTdHJlYW1UcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbVRyYWNrOjpjbG9uZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlv
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNh
cGFiaWxpdGllcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpz
ZXR0aW5ncyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludC5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2xvbmUpOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c2V0TXV0ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjppbml0aWFsaXplU2V0dGlu
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6OnNldHRpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2FwYWJp
bGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmls
aXRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRp
bWVNZWRpYVNvdXJjZU93ci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZU93cjo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VPd3I6OnNldHRpbmdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNl
Ojppbml0aWFsaXplQ2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlOjpjYXBhYmlsaXRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2U6OmluaXRpYWxpemVTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0dGluZ3MpOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKwogMjAxNi0xMS0wNCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYlJUQ10gSW50cm9kdWNlIGFzeW5j
aHJvbm91cyBiYWNrZW5kIGZvciBvdGhlciBSVENQZWVyQ29ubmVjdGlvbiBBUEkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFF
bmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcAppbmRleCBkNjZiOTJlMWU5ZmI0OWUyNmIxNTQ0Yjg0
YzM3YmMxOTAyOTQzOTBkLi5hMDk2NmEwODU1NDI4ZmRhM2E5MGRlNDE4MTdmODkxY2JjYmFjNDI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5k
cG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwCkBAIC02OTIsOCArNjkyLDgg
QEAgUmVmPFJUQ1J0cFJlY2VpdmVyPiBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmNyZWF0
ZVJlY2VpdmVyKGNvbnN0IFN0cmluZyYgdHIKIAogICAgIC8vIENyZWF0ZSBhIG11dGVkIHJlbW90
ZSBzb3VyY2UgdGhhdCB3aWxsIGJlIHVubXV0ZWQgb25jZSBtZWRpYSBzdGFydHMgYXJyaXZpbmcu
CiAgICAgYXV0byByZW1vdGVTb3VyY2UgPSBtX21lZGlhRW5kcG9pbnQtPmNyZWF0ZU11dGVkUmVt
b3RlU291cmNlKHRyYW5zY2VpdmVyTWlkLCBzb3VyY2VUeXBlKTsKLSAgICBhdXRvIHJlbW90ZVRy
YWNrUHJpdmF0ZSA9IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpjcmVhdGUoV1RGTW92ZShyZW1v
dGVTb3VyY2UpLCB0cmFja0lkKTsKLSAgICBhdXRvIHJlbW90ZVRyYWNrID0gTWVkaWFTdHJlYW1U
cmFjazo6Y3JlYXRlKCptX3BlZXJDb25uZWN0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
KnJlbW90ZVRyYWNrUHJpdmF0ZSk7CisgICAgYXV0byByZW1vdGVUcmFja1ByaXZhdGUgPSBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKFdURk1vdmUocmVtb3RlU291cmNlKSwgU3RyaW5n
KHRyYWNrSWQpKTsKKyAgICBhdXRvIHJlbW90ZVRyYWNrID0gTWVkaWFTdHJlYW1UcmFjazo6Y3Jl
YXRlKCptX3BlZXJDb25uZWN0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgV1RGTW92ZShy
ZW1vdGVUcmFja1ByaXZhdGUpKTsKIAogICAgIHJldHVybiBSVENSdHBSZWNlaXZlcjo6Y3JlYXRl
KFdURk1vdmUocmVtb3RlVHJhY2spKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDExNTExOWZlZjY3
NjQwZjRiOGI3ODU0MDI5YzVkMDNiNjM5ZjkwNjEuLjhiMzZiMGI4NjAwYzY0N2M2Mzk4NjZjZDIw
OGY2YTMyNThmNjRmNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDgsMTQgKzQ4LDE0IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPE1lZGlhU3RyZWFtVHJhY2s+IE1lZGlhU3RyZWFtVHJh
Y2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgcHJpdmF0ZVRyYWNrKQorUmVmPE1lZGlhU3RyZWFtVHJhY2s+IE1lZGlhU3Ry
ZWFtVHJhY2s6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU+JiYgcHJpdmF0ZVRyYWNrKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1lZGlhU3RyZWFtVHJhY2soY29udGV4dCwgcHJpdmF0ZVRyYWNrKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTdHJlYW1UcmFjayhjb250ZXh0LCBXVEZNb3ZlKHBy
aXZhdGVUcmFjaykpKTsKIH0KIAotTWVkaWFTdHJlYW1UcmFjazo6TWVkaWFTdHJlYW1UcmFjayhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYg
cHJpdmF0ZVRyYWNrKQorTWVkaWFTdHJlYW1UcmFjazo6TWVkaWFTdHJlYW1UcmFjayhTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYg
cHJpdmF0ZVRyYWNrKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQotICAgICwgbV9w
cml2YXRlKHByaXZhdGVUcmFjaykKKyAgICAsIG1fcHJpdmF0ZShXVEZNb3ZlKHByaXZhdGVUcmFj
aykpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgc3VzcGVuZElmTmVlZGVk
KCk7CkBAIC0xMjMsOSArMTIzLDkgQEAgYm9vbCBNZWRpYVN0cmVhbVRyYWNrOjplbmRlZCgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fZW5kZWQgfHwgbV9wcml2YXRlLT5lbmRlZCgpOwogfQogCi1SZWZQ
dHI8TWVkaWFTdHJlYW1UcmFjaz4gTWVkaWFTdHJlYW1UcmFjazo6Y2xvbmUoKQorUmVmPE1lZGlh
U3RyZWFtVHJhY2s+IE1lZGlhU3RyZWFtVHJhY2s6OmNsb25lKCkKIHsKLSAgICByZXR1cm4gTWVk
aWFTdHJlYW1UcmFjazo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICptX3ByaXZh
dGUtPmNsb25lKCkpOworICAgIHJldHVybiBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9wcml2YXRlLT5jbG9uZSgpKTsKIH0KIAogdm9pZCBNZWRp
YVN0cmVhbVRyYWNrOjpzdG9wUHJvZHVjaW5nRGF0YSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IDc2YmIwM2Nk
ODQ5ODY4ZDdlMmVlZGQ2YmI2OTMzODJhMjlhNTAzYjAuLjMwZDQ1NTU3YTAwYjk2MjI5OTAxOWE0
Zjk1YTAxYWE3MTQ4YWU4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoK
ICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrRGlkRW5kKCkgPSAwOwogICAgIH07CiAKLSAgICBz
dGF0aWMgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKTsKKyAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFt
VHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlPiYmKTsKICAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbVRyYWNrKCk7CiAKICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGtpbmQoKSBjb25zdDsKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0OwogCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJh
Y2s+IGNsb25lKCk7CisgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IGNsb25lKCk7CiAgICAgdm9p
ZCBzdG9wUHJvZHVjaW5nRGF0YSgpOwogCiAgICAgUmVmUHRyPE1lZGlhVHJhY2tDb25zdHJhaW50
cz4gZ2V0Q29uc3RyYWludHMoKSBjb25zdDsKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAg
IHZvaWQgYXBwbHlDb25zdHJhaW50cyhSZWY8TWVkaWFDb25zdHJhaW50cz4mJiwgQXBwbHlDb25z
dHJhaW50c1Byb21pc2UmJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlh
Q29uc3RyYWludHMmKTsKIAotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJpdmF0ZS0+c291cmNlKCk7IH0KKyAgICBSZWFsdGltZU1lZGlhU291cmNl
JiBzb3VyY2UoKSB7IHJldHVybiBtX3ByaXZhdGUtPnNvdXJjZSgpOyB9CiAgICAgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHByaXZhdGVUcmFjaygpIHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsg
fQogCiAgICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpOwpAQCAt
MTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFt
VHJhY2s+OjpkZXJlZjsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVN0cmVhbVRyYWNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOworICAgIE1lZGlhU3Ry
ZWFtVHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4mJik7CiAgICAgZXhwbGljaXQgTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbVRyYWNr
Jik7CiAKICAgICB2b2lkIGNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
LmNwcAppbmRleCA0M2U4MGZkNjJkMjkzNDhjYTdkNWEwODQzYWFmNTE0YjQxNmIwZjNkLi40YzI3
NGFlZTUwMzg3OGM4MDA5MjNmNWU4MDI3ZWI5YTBhMTBjYTA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5j
cHAKQEAgLTQ0LDcgKzQ0LDcgQEAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6TWVkaWFTdHJlYW1B
dWRpb1NvdXJjZSgpCiB7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQorUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFi
aWxpdGllcygpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI0MzAKQEAgLTUyLDcg
KzUyLDcgQEAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IE1lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LWNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgTWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZTo6c2V0dGluZ3MoKQorY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBNZWRpYVN0
cmVhbUF1ZGlvU291cmNlOjpzZXR0aW5ncygpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IGltcGxl
bWVudCB0aGlzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjI0MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYVN0cmVhbUF1ZGlvU291cmNlLmgKaW5kZXggODkxZmM0MDg4YTk4MWJjNmU5N2E3NTk4MjBh
NDVlNzFjMWFmMjg5Mi4uMGY1NDgzN2JmOTg3ODVlNGNiNmI2MmI1YzM1NTk1MDQ2ZTdiNTMwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1
ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlLmgKQEAgLTQxLDE1ICs0MSwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBBdWRpb0J1czsKIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM7
CiAKLWNsYXNzIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNv
dXJjZSB7CitjbGFzcyBNZWRpYVN0cmVhbUF1ZGlvU291cmNlIGZpbmFsIDogcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1BdWRp
b1NvdXJjZT4gY3JlYXRlKCk7CiAKICAgICB+TWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpIHsgfQog
Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGll
cygpIG92ZXJyaWRlOwotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0
dGluZ3MoKSBvdmVycmlkZTsKLSAgICAKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWw7CisgICAgY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IGZpbmFsOworCiAgICAgY29u
c3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlSWQ7IH0KICAgICB2
b2lkIHNldERldmljZUlkKGNvbnN0IFN0cmluZyYgZGV2aWNlSWQpIHsgbV9kZXZpY2VJZCA9IGRl
dmljZUlkOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggNGVjODBhYWI2ZTkwNjA2NzQ0YTU5NzhmNzY1ZTlm
NTQ4MTRkYTRiNi4uZDRjOGNkNzQ5ZDE3MWM2NjJkMmZmZTIwZjIyNTAxNDAxMzQ0NTE0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2lu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRw
b2ludC5jcHAKQEAgLTM4LDEyICszOCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIEVtcHR5UmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNl
IHsKK2NsYXNzIEVtcHR5UmVhbHRpbWVNZWRpYVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBSZWFsdGlt
ZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEVtcHR5UmVhbHRpbWVNZWRp
YVNvdXJjZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVJlYWx0aW1lTWVk
aWFTb3VyY2UoKSk7IH0KIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBjYXBhYmlsaXRpZXMoKSBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIG92ZXJyaWRlIHsgcmV0
dXJuIG1fc291cmNlU2V0dGluZ3M7IH0KKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsg
fQorICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZVNldHRpbmdzOyB9CiAKIHByaXZhdGU6CiAgICAgRW1w
dHlSZWFsdGltZU1lZGlhU291cmNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IDdiOWFhNWQ0
MzQ0M2Y2YjY1NjkzZDJlNWYzNTNjYTdiYjhlYmExMmYuLjZhNDQyOThhY2EzYjkxMjJkNWJlZjVj
OGQ4OTVlNWVhYjY1ZjU1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcApAQCAtNTAsMTEgKzUwLDE1
IEBAIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRl
KGNvbnN0IFZlY3RvcjxSZWZQdHI8UmVhbHRpCiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVW
ZWN0b3IgdHJhY2tzOwogICAgIHRyYWNrcy5yZXNlcnZlQ2FwYWNpdHkoYXVkaW9Tb3VyY2VzLnNp
emUoKSArIHZpZGVvU291cmNlcy5zaXplKCkpOwogCi0gICAgZm9yIChhdXRvIHNvdXJjZSA6IGF1
ZGlvU291cmNlcykKLSAgICAgICAgdHJhY2tzLmFwcGVuZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZTo6Y3JlYXRlKFdURk1vdmUoc291cmNlKSkpOworICAgIGZvciAoYXV0byBzb3VyY2UgOiBhdWRp
b1NvdXJjZXMpIHsKKyAgICAgICAgQVNTRVJUKHNvdXJjZSk7CisgICAgICAgIHRyYWNrcy5hcHBl
bmQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShzb3VyY2UucmVsZWFzZU5vbk51bGwo
KSkpOworICAgIH0KIAotICAgIGZvciAoYXV0byBzb3VyY2UgOiB2aWRlb1NvdXJjZXMpCi0gICAg
ICAgIHRyYWNrcy5hcHBlbmQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShXVEZNb3Zl
KHNvdXJjZSkpKTsKKyAgICBmb3IgKGF1dG8gc291cmNlIDogdmlkZW9Tb3VyY2VzKSB7CisgICAg
ICAgIEFTU0VSVChzb3VyY2UpOworICAgICAgICB0cmFja3MuYXBwZW5kKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpjcmVhdGUoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpKTsKKyAgICB9CiAKICAg
ICByZXR1cm4gTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUodHJhY2tzKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcAppbmRleCBhNDhiMjY3MzMyZmRkZGJjOTkzODcyMjA4YmM4OWQx
OTFhODI1NDFjLi5iMjIyYmVkMjM3NjNkOTg3OWEwNDY3NmVkYmJhYTU4ODliZjNkZGFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCkBAIC0zNywxOSArMzcsMTggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1SZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpjcmVhdGUoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291
cmNlKQorUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZTo6Y3JlYXRlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKFdURk1vdmUoc291cmNlKSwg
Y3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUoV1RGTW92ZShzb3VyY2UpLCBjcmVhdGVDYW5vbmljYWxV
VUlEU3RyaW5nKCkpKTsKIH0KIAotUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y3JlYXRlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYm
IHNvdXJjZSwgY29uc3QgU3RyaW5nJiBpZCkKK1JlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4g
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmNyZWF0ZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4m
JiBzb3VyY2UsIFN0cmluZyYmIGlkKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUoV1RGTW92ZShzb3VyY2UpLCBpZCkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKFdURk1vdmUoc291cmNlKSwgV1RGTW92
ZShpZCkpKTsKIH0KIAogTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBvdGhlcikKLSAgICA6IFJlZkNv
dW50ZWQoKQotICAgICwgbV9zb3VyY2UoJm90aGVyLnNvdXJjZSgpKQorICAgIDogbV9zb3VyY2Uo
b3RoZXIubV9zb3VyY2UuY29weVJlZigpKQogICAgICwgbV9pZChjcmVhdGVDYW5vbmljYWxVVUlE
U3RyaW5nKCkpCiAgICAgLCBtX2lzRW5hYmxlZChvdGhlci5lbmFibGVkKCkpCiAgICAgLCBtX2lz
RW5kZWQob3RoZXIuZW5kZWQoKSkKQEAgLTU3LDEwICs1Niw5IEBAIE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYKICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIodGhpcyk7CiB9CiAKLU1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZShSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgaWQpCi0gICAgOiBSZWZDb3VudGVkKCkK
LSAgICAsIG1fc291cmNlKHNvdXJjZSkKLSAgICAsIG1faWQoaWQpCitNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+
JiYgc291cmNlLCBTdHJpbmcmJiBpZCkKKyAgICA6IG1fc291cmNlKFdURk1vdmUoc291cmNlKSkK
KyAgICAsIG1faWQoV1RGTW92ZShpZCkpCiAgICAgLCBtX2lzRW5hYmxlZCh0cnVlKQogICAgICwg
bV9pc0VuZGVkKGZhbHNlKQogewpAQCAtMTMyLDkgKzEzMCw5IEBAIHZvaWQgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU6OmVuZFRyYWNrKCkKICAgICAgICAgb2JzZXJ2ZXItPnRyYWNrRW5kZWQoKnRo
aXMpOwogfQogCi1SZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjpjbG9uZSgpCitSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpjbG9uZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSgqdGhpcykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlKCp0aGlzKSk7CiB9CiAKIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnR5cGUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlLmgKaW5kZXggY2QyMWE0ZTdlN2YzZjQ0ZDJiZWQ3MDQyMmEwMjdmOTgwMWIzYjgy
ZS4uNWY0MmI0MDc5NjczZTZmMDdiNGI5NjBiNTc0ZWMyMmQ1OGJiYzdmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZS5oCkBAIC01Myw5ICs1Myw5IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVh
bCB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSB7IH07CiAgICAgfTsKLSAgICAKLSAgICBzdGF0aWMg
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBjcmVhdGUoUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2U+JiYpOwotICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+
IGNyZWF0ZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiwgY29uc3QgU3RyaW5nJiBpZCk7
CisKKyAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBjcmVhdGUoUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+JiYpOworICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+IGNyZWF0ZShSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiwgU3RyaW5nJiYgaWQpOwog
CiAgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUoKTsKIApAQCAtNjksNyArNjks
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSB7IHJldHVybiBtX3NvdXJj
ZS0+aXNQcm9kdWNpbmdEYXRhKCk7IH0KIAogICAgIGJvb2wgbXV0ZWQoKSBjb25zdDsKLSAgICB2
b2lkIHNldE11dGVkKGJvb2wgbXV0ZWQpIGNvbnN0IHsgbV9zb3VyY2UtPnNldE11dGVkKG11dGVk
KTsgfQorICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCBtdXRlZCkgeyBtX3NvdXJjZS0+c2V0TXV0ZWQo
bXV0ZWQpOyB9CiAKICAgICBib29sIHJlYWRvbmx5KCkgY29uc3Q7CiAgICAgYm9vbCByZW1vdGUo
KSBjb25zdDsKQEAgLTc3LDkgKzc3LDkgQEAgcHVibGljOgogICAgIGJvb2wgZW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGJvb2wpOwog
Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBjbG9uZSgpOworICAgIFJlZjxN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gY2xvbmUoKTsKIAotICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2UmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuICptX3NvdXJjZS5nZXQoKTsgfQorICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2UmIHNvdXJjZSgpIHsgcmV0dXJuIG1fc291cmNlLmdldCgpOyB9CiAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuZFRy
YWNrKCk7CkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
OwotICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
PiYmLCBjb25zdCBTdHJpbmcmIGlkKTsKKyAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZShSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiwgU3RyaW5nJiYgaWQpOwogCiAgICAgLy8gUmVhbHRpbWVN
ZWRpYVNvdXJjZU9ic2VydmVyCiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7CkBAIC0x
MDksNyArMTA5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZUhhc01vcmVNZWRpYURhdGEo
TWVkaWFTYW1wbGUmKSBmaW5hbDsKIAogICAgIFZlY3RvcjxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJz
OwotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBSZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+
IG1fY29uc3RyYWludHM7CiAKICAgICBTdHJpbmcgbV9pZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRl
eCAzMTQ1ZWQ2MGQwOWIxYzZkNDFiYzg4Mjk2YjQyMTE3YjlhMWI4NjhhLi5kMWUwNDUxMzc0Y2Jk
NmUwMTEzMWJjY2QxMTNkNjk3MDYzOWRkMjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC04OCw4
ICs4OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGZpdG5lc3NTY29yZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZml0bmVzc1Njb3JlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEZpdG5l
c3NTY29yZShjb25zdCB1bnNpZ25lZCBmaXRuZXNzU2NvcmUpIHsgbV9maXRuZXNzU2NvcmUgPSBm
aXRuZXNzU2NvcmU7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSA9IDA7CisgICAgdmlydHVhbCBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0
aW5ncygpIGNvbnN0ID0gMDsKIAogICAgIHVzaW5nIFN1Y2Nlc3NIYW5kbGVyID0gc3RkOjpmdW5j
dGlvbjx2b2lkKCk+OwogICAgIHVzaW5nIEZhaWx1cmVIYW5kbGVyID0gc3RkOjpmdW5jdGlvbjx2
b2lkKGNvbnN0IFN0cmluZyYgYmFkQ29uc3RyYWludCwgY29uc3QgU3RyaW5nJiBlcnJvclN0cmlu
Zyk+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWTWVkaWFDYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAppbmRleCBkMDVhYmNjZmRhYmRhYzllMDQ3
ZTgyN2ZjYjhmODY2OTgxZmVlZTg3Li43NDFlYWU4OGQ0OTgxMTYxMTE4NGE3ZTEwYzY1NTUxYmE4
NTdmNWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaApAQCAtNTMsMTAgKzUzLDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1
ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxlQnVmZmVyUmVmLCBB
VkNhcHR1cmVDb25uZWN0aW9uKikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVTZXNz
aW9uSXNSdW5uaW5nRGlkQ2hhbmdlKGJvb2wpOwotICAgIAorCiAgICAgQVZDYXB0dXJlU2Vzc2lv
biAqc2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbi5nZXQoKTsgfQogCi0gICAgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIG92ZXJyaWRlOworICAg
IGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzdG9wUHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwpAQCAtNzgsNyArNzgsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMoKSB7IHJldHVybiBtX2NvbnN0
cmFpbnRzLmdldCgpOyB9CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3Ry
YWludHMmIHN1cHBvcnRlZENvbnN0cmFpbnRzKCk7Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIG92ZXJyaWRlOworICAgIFJlZlB0cjxS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIHZvaWQgc2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShBVkNhcHR1cmVW
aWRlb0RhdGFPdXRwdXQqKTsKICAgICB2b2lkIHNldEF1ZGlvU2FtcGxlQnVmZmVyRGVsZWdhdGUo
QVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0Kik7CkBAIC04Nyw2ICs4Nyw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXR1cFNlc3Npb24oKTsKICAgICB2b2lkIHJlc2V0KCkgb3ZlcnJpZGU7CiAKKyAg
ICB2b2lkIGluaXRpYWxpemVTZXR0aW5ncygpOworICAgIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxp
dGllcygpOworCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRp
bmdzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBv
cnRlZENvbnN0cmFpbnRzOwogICAgIFJldGFpblB0cjxXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3Vy
Y2VPYnNlcnZlcj4gbV9vYmpjT2JzZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0K
aW5kZXggYTkxY2NiOGEyMjA5MGMxODhjMzQxMTU0MDEwNDExNzEwOGZhZjA4Ny4uMWE4Y2EzMzhl
ZjUwODBiNjY3ZmE3ODBhNGNlNWFhNTE3ODEwN2JmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNv
dXJjZS5tbQpAQCAtMTYzLDEzICsxNjMsMTggQEAgdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6
c3RvcFByb2R1Y2luZ0RhdGEoKQogICAgIFttX3Nlc3Npb24uZ2V0KCkgc3RvcFJ1bm5pbmddOwog
fQogCi1jb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIEFWTWVkaWFDYXB0dXJlU291
cmNlOjpzZXR0aW5ncygpCit2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjppbml0aWFsaXplU2V0
dGluZ3MoKQogewogICAgIGlmIChtX2N1cnJlbnRTZXR0aW5ncy5kZXZpY2VJZCgpLmlzRW1wdHko
KSkKICAgICAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0U3VwcG9ydGVkQ29uc3RyYWl0cyhzdXBw
b3J0ZWRDb25zdHJhaW50cygpKTsKIAogICAgIG1fY3VycmVudFNldHRpbmdzLnNldERldmljZUlk
KGlkKCkpOwogICAgIHVwZGF0ZVNldHRpbmdzKG1fY3VycmVudFNldHRpbmdzKTsKK30KKworY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c2V0
dGluZ3MoKSBjb25zdAoreworICAgIGNvbnN0X2Nhc3Q8QVZNZWRpYUNhcHR1cmVTb3VyY2UmPigq
dGhpcykuaW5pdGlhbGl6ZVNldHRpbmdzKCk7CiAgICAgcmV0dXJuIG1fY3VycmVudFNldHRpbmdz
OwogfQogCkBAIC0xODQsMTQgKzE4OSwxOCBAQCBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVk
Q29uc3RyYWludHMmIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdXBwb3J0ZWRDb25zdHJhaQogICAg
IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygp
Cit2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0aWVzKCkKIHsK
LSAgICBpZiAoIW1fY2FwYWJpbGl0aWVzKSB7Ci0gICAgICAgIG1fY2FwYWJpbGl0aWVzID0gUmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZU1hbmFn
ZXI6OnNpbmdsZXRvbigpLnN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOwotICAgICAgICBtX2NhcGFi
aWxpdGllcy0+c2V0RGV2aWNlSWQoaWQoKSk7CisgICAgbV9jYXBhYmlsaXRpZXMgPSBSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpjcmVhdGUoQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6
c2luZ2xldG9uKCkuc3VwcG9ydGVkQ29uc3RyYWludHMoKSk7CisgICAgbV9jYXBhYmlsaXRpZXMt
PnNldERldmljZUlkKGlkKCkpOwogCi0gICAgICAgIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoKm1f
Y2FwYWJpbGl0aWVzLmdldCgpKTsKLSAgICB9CisgICAgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygq
bV9jYXBhYmlsaXRpZXMuZ2V0KCkpOworfQorCitSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcz4gQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2NhcGFiaWxpdGllcykKKyAgICAgICAgY29uc3RfY2FzdDxBVk1lZGlhQ2Fw
dHVyZVNvdXJjZSY+KCp0aGlzKS5pbml0aWFsaXplQ2FwYWJpbGl0aWVzKCk7CiAgICAgcmV0dXJu
IG1fY2FwYWJpbGl0aWVzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNv
dXJjZU93ci5oCmluZGV4IDg2OTVjN2I1NTc1NjEyOWRjNDQ4MGQzNjZmZmY0OGFkYjBkNWUzYjIu
LjAxYjJiN2VhM2IwZGJhNjk1YTAzMWMzNDI3ZThlMDJkNjcwYTM3NjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRp
YVNvdXJjZU93ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCkBAIC03Miw4ICs3Miw4IEBAIFJlYWx0
aW1lTWVkaWFTb3VyY2VPd3IoY29uc3QgU3RyaW5nJiBpZCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZSB0eXBlLCBjb25zdCBTCiAgICAgICAgIHNldE11dGVkKGZhbHNlKTsKICAgICB9CiAKLSAg
ICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmls
aXRpZXMoKSB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQotICAgIHZpcnR1YWwgY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIHsgcmV0dXJuIG1fY3VycmVudFNl
dHRpbmdzOyB9CisgICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAg
ICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBj
b25zdCB7IHJldHVybiBtX2N1cnJlbnRTZXR0aW5nczsgfQogCiAgICAgT3dyTWVkaWFTb3VyY2Uq
IG1lZGlhU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNvdXJjZTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCmluZGV4IDZhNTJjYzI5ODM5MGU2YzBjYjRlNGEyNGRiNGVlYmZlYzVjNzNkNTAuLmNl
MjcwYTQyZGY2NWFhYzI1MTg4MDhlZGFiODE1MzVmN2I1NDgyYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
CkBAIC05MCwxOSArOTAsMjEgQEAgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6Ok1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQsIFJlYWx0aW1lTWVkaWEKICAgICAgICAgc2V0
UGVyc2lzdGVudElEKG1vY2tWaWRlb1NvdXJjZVBlcnNpc3RlbnRJRCgpKTsKIH0KIAotUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IE1vY2tSZWFsdGltZU1lZGlhU291cmNl
OjpjYXBhYmlsaXRpZXMoKQordm9pZCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6aW5pdGlhbGl6
ZUNhcGFiaWxpdGllcygpCiB7Ci0gICAgaWYgKG1fY2FwYWJpbGl0aWVzKQotICAgICAgICByZXR1
cm4gbV9jYXBhYmlsaXRpZXM7Ci0KICAgICBtX2NhcGFiaWxpdGllcyA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM6OmNyZWF0ZShzdXBwb3J0ZWRDb25zdHJhaW50cygpKTsKICAgICBt
X2NhcGFiaWxpdGllcy0+c2V0RGV2aWNlSWQoaWQoKSk7CiAgICAgaW5pdGlhbGl6ZUNhcGFiaWxp
dGllcygqbV9jYXBhYmlsaXRpZXMuZ2V0KCkpOworfQogCitSZWZQdHI8UmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcz4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcGFiaWxpdGllcygp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2NhcGFiaWxpdGllcykKKyAgICAgICAgY29uc3RfY2FzdDxN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZSY+KCp0aGlzKS5pbml0aWFsaXplQ2FwYWJpbGl0aWVzKCk7
CiAgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOwogfQogCi1jb25zdCBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MmIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpzZXR0aW5ncygpCit2b2lkIE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlOjppbml0aWFsaXplU2V0dGluZ3MoKQogewogICAgIGlmICht
X2N1cnJlbnRTZXR0aW5ncy5kZXZpY2VJZCgpLmlzRW1wdHkoKSkgewogICAgICAgICBtX2N1cnJl
bnRTZXR0aW5ncy5zZXRTdXBwb3J0ZWRDb25zdHJhaXRzKHN1cHBvcnRlZENvbnN0cmFpbnRzKCkp
OwpAQCAtMTEwLDYgKzExMiwxMSBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mm
IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpzZXR0aW5ncygpCiAgICAgfQogCiAgICAgdXBkYXRl
U2V0dGluZ3MobV9jdXJyZW50U2V0dGluZ3MpOworfQorCitjb25zdCBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MmIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpzZXR0aW5ncygpIGNvbnN0Cit7
CisgICAgY29uc3RfY2FzdDxNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZSY+KCp0aGlzKS5pbml0aWFs
aXplU2V0dGluZ3MoKTsKICAgICByZXR1cm4gbV9jdXJyZW50U2V0dGluZ3M7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAppbmRleCA3YTAxMjNhNWFkOTJmOThiNDFmZGYxYWQyNDlkYTMwYTg0NjAzMjMzLi5kZGZk
YTFlNGU0ZDI4OWUyYTZiNDZmNDhlMWZmNGJiMTBiYmM1ZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC03
MiwxNCArNzIsMTUgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwogCi0gICAg
UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIG92
ZXJyaWRlOwotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3Mo
KSBvdmVycmlkZTsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
Y2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTWVkaWFDb25z
dHJhaW50cyYgY29uc3RyYWludHMoKSB7IHJldHVybiAqbV9jb25zdHJhaW50cy5nZXQoKTsgfQog
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29u
c3RyYWludHMoKTsKIAogcHJpdmF0ZToKLQorICAgIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGll
cygpOworICAgIHZvaWQgaW5pdGlhbGl6ZVNldHRpbmdzKCk7CiAgICAgYm9vbCBpc1Byb2R1Y2lu
Z0RhdGEoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzUHJvZHVjaW5nRGF0YTsgfQogCiAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fY3VycmVudFNldHRpbmdzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>