<?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>229963</bug_id>
          
          <creation_ts>2021-09-06 07:53:06 -0700</creation_ts>
          <short_desc>Update RTCPeerConnection descriptions as per specification</short_desc>
          <delta_ts>2021-09-09 09:09:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</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>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1790706</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-06 07:53:06 -0700</bug_when>
    <thetext>Update RTCPeerConnection descriptions as per specification</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790708</commentid>
    <comment_count>1</comment_count>
      <attachid>437416</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-06 08:07:08 -0700</bug_when>
    <thetext>Created attachment 437416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791850</commentid>
    <comment_count>2</comment_count>
      <attachid>437733</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-09 04:26:57 -0700</bug_when>
    <thetext>Created attachment 437733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791920</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-09 09:08:58 -0700</bug_when>
    <thetext>Committed r282217 (241504@main): &lt;https://commits.webkit.org/241504@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437733.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791922</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-09 09:09:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/82927429&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437416</attachid>
            <date>2021-09-06 08:07:08 -0700</date>
            <delta_ts>2021-09-09 04:26:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229963-20210906170705.patch</filename>
            <type>text/plain</type>
            <size>38489</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjcyNjViNGFjNDA2YTg1
MDFiZDFhMTRhZDQ0NTUxOGQwMmE0NDRjNi4uMjJiYWZiOWIxZjlkOWU4NjBjZDliNzE2MjAzNWZm
MDA5NjcwYTE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTA5LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgUlRDUGVlckNv
bm5lY3Rpb24gZGVzY3JpcHRpb25zIGFzIHBlciBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk5NjMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHBlZXIgY29ubmVjdGlvbiBoYXMg
dHdvIHNldHMgb2YgZGVzY3JpcHRpb25zOiBtYWluIHRocmVhZCBkZXNjcmlwdGlvbnMgd2hpY2gg
YXJlIGV4cG9zZWQgdG8gSlMgYW5kIHNpZ25hbGluZyB0aHJlYWQgZGVzY3JpcHRpb25zCisgICAg
ICAgIHdoaWNoIGFyZSB1c2VkL21vZGlmaWVkIGludGVybmFsbHkgYnkgdGhlIGJhY2tlbmQuCisg
ICAgICAgIFdlYlJUQyBzcGVjIGRlc2NyaWJlcyB3aGVuIHNpZ25hbGluZyB0aHJlYWQgZGVzY3Jp
cHRpb25zIHNob3VsZCBiZSB1c2VkIHRvIHNldCBtYWluIHRocmVhZCBkZXNjcmlwdGlvbnMuCisg
ICAgICAgIFRoaXMgc2hvdWxkIGJlIGRvbmUgYXQgdGhlIGVuZCBvZiBzZXR0aW5nIHJlbW90ZS9s
b2NhbCBkZXNjcmlwdGlvbnMsIGFzIHdlbGwgYXMgd2hlbiBhZGRpbmcgb3Igc3VyZmFjaW5nIGFu
IElDRSBjYW5kaWRhdGUuCisgICAgICAgIFdlIG1ha2Ugc3VyZSB0byBncmFiIHNpZ25hbGluZyB0
aHJlYWQgZGVzY3JpcHRpb25zIGF0IHRob3NlIG1vbWVudHMsIHRoZW4gaG9wIHRvIG1haW4gdGhy
ZWFkIHRvIHNldCB0aGUgbWFpbiB0aHJlYWQgZGVzY3JpcHRpb25zLgorCisgICAgICAgIEluIGNh
c2Ugb2YgY2xvc2VkIGNvbm5lY3Rpb24sIHdlIHN0b3AgZWFybHkgYXMgd2UgZG8gbm90IG5lZWQg
dG8gc3VyZmFjZSBuZXcgZGVzY3JpcHRpb25zIChhcyB3ZWxsIGFzIHJlc29sdmUgcHJvbWlzZXMv
ZmlyZSBldmVudHMpLgorCisgICAgICAgIENvdmVyZWQgYnkgcmViYXNlZCB0ZXN0cy4KKworICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0TG9jYWxEZXNjcmlwdGlv
blN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNl
dFJlbW90ZURlc2NyaXB0aW9uU3VjY2VlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6YWRkSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJD
b25uZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRl
RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnVwZGF0
ZURlc2NyaXB0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ01lZGlhRW5kcG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZnJvbVNlc3Npb25EZXNj
cmlwdGlvblR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVzY3JpcHRpb25zRnJvbVBlZXJDb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmFkZElj
ZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpP
bkljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50
OjpzZXRMb2NhbFNlc3Npb25EZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzZXRSZW1vdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0FkZEljZUNhbmRpZGF0ZSk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmg6CisKIDIwMjEtMDktMDMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBSVENTY3RwVHJhbnNwb3J0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHAKaW5kZXggMDEwNGZhODViZTNmMzM3YzU0NDBlZjEyMDZlOWQxOTM1YmRm
MmFmNC4uZDI4ZWU3NjNmNzIzYTg0NWI4NmI0MmUxYWVlOWU2YjUyNmQzMWIxZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcApAQCAtMTc1LDE2ICsxNzUsMTggQEAgdm9pZCBQZWVyQ29ubmVjdGlv
bkJhY2tlbmQ6OnNldExvY2FsRGVzY3JpcHRpb24oY29uc3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
KiBzZXMKICAgICBkb1NldExvY2FsRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2NyaXB0aW9uKTsKIH0K
IAotdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNldExvY2FsRGVzY3JpcHRpb25TdWNjZWVk
ZWQoc3RkOjp1bmlxdWVfcHRyPFJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kPiYmIHNjdHBCYWNrZW5k
KQordm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNldExvY2FsRGVzY3JpcHRpb25TdWNjZWVk
ZWQoc3RkOjpvcHRpb25hbDxEZXNjcmlwdGlvblN0YXRlcz4mJiBkZXNjcmlwdGlvblN0YXRlcywg
c3RkOjp1bmlxdWVfcHRyPFJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kPiYmIHNjdHBCYWNrZW5kKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKIAogICAgIEFTU0VSVChtX3NldERlc2NyaXB0aW9uUHJvbWlzZSk7Ci0gICAgbV9wZWVy
Q29ubmVjdGlvbi5kb1Rhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKG1fc2V0RGVzY3JpcHRp
b25Qcm9taXNlKSwgc2N0cEJhY2tlbmQgPSBXVEZNb3ZlKHNjdHBCYWNrZW5kKV0oKSBtdXRhYmxl
IHsKKyAgICBtX3BlZXJDb25uZWN0aW9uLmRvVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUo
bV9zZXREZXNjcmlwdGlvblByb21pc2UpLCBkZXNjcmlwdGlvblN0YXRlcyA9IFdURk1vdmUoZGVz
Y3JpcHRpb25TdGF0ZXMpLCBzY3RwQmFja2VuZCA9IFdURk1vdmUoc2N0cEJhY2tlbmQpXSgpIG11
dGFibGUgewogICAgICAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pc0Nsb3NlZCgpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCisgICAgICAgIGlmIChkZXNjcmlwdGlvblN0YXRlcykKKyAgICAgICAg
ICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlRGVzY3JpcHRpb25zKFdURk1vdmUoKmRlc2NyaXB0
aW9uU3RhdGVzKSk7CiAgICAgICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlVHJhbnNjZWl2ZXJz
QWZ0ZXJTdWNjZXNzZnVsTG9jYWxEZXNjcmlwdGlvbigpOwogICAgICAgICBtX3BlZXJDb25uZWN0
aW9uLnVwZGF0ZVNjdHBCYWNrZW5kKFdURk1vdmUoc2N0cEJhY2tlbmQpKTsKICAgICAgICAgcHJv
bWlzZS0+cmVzb2x2ZSgpOwpAQCAtMjEzLDcgKzIxNSw3IEBAIHZvaWQgUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjpzZXRSZW1vdGVEZXNjcmlwdGlvbihjb25zdCBSVENTZXNzaW9uRGVzY3JpcHRpb24m
IHNlCiAgICAgZG9TZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzY3JpcHRpb24pOwogfQog
Ci12b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0UmVtb3RlRGVzY3JpcHRpb25TdWNjZWVk
ZWQoc3RkOjp1bmlxdWVfcHRyPFJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kPiYmIHNjdHBCYWNrZW5k
KQordm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNldFJlbW90ZURlc2NyaXB0aW9uU3VjY2Vl
ZGVkKHN0ZDo6b3B0aW9uYWw8RGVzY3JpcHRpb25TdGF0ZXM+JiYgZGVzY3JpcHRpb25TdGF0ZXMs
IHN0ZDo6dW5pcXVlX3B0cjxSVENTY3RwVHJhbnNwb3J0QmFja2VuZD4mJiBzY3RwQmFja2VuZCkK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUiwgIlNldCByZW1vdGUgZGVzY3JpcHRpb24gc3VjY2VlZGVkIik7CkBAIC0yMzQsMTAgKzIz
NiwxMiBAQCB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0UmVtb3RlRGVzY3JpcHRpb25T
dWNjZWVkZWQoc3RkOjp1bmlxdWVfcHRyPFJUQ1NjdAogICAgICAgICB0cmFjay5zb3VyY2UoKS5z
ZXRNdXRlZChmYWxzZSk7CiAgICAgfQogCi0gICAgbV9wZWVyQ29ubmVjdGlvbi5kb1Rhc2soW3Ro
aXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBzY3RwQmFja2VuZCA9IFdURk1vdmUoc2N0
cEJhY2tlbmQpXSgpIG11dGFibGUgeworICAgIG1fcGVlckNvbm5lY3Rpb24uZG9UYXNrKFt0aGlz
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZGVzY3JpcHRpb25TdGF0ZXMgPSBXVEZNb3Zl
KGRlc2NyaXB0aW9uU3RhdGVzKSwgc2N0cEJhY2tlbmQgPSBXVEZNb3ZlKHNjdHBCYWNrZW5kKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fcGVlckNvbm5lY3Rpb24uaXNDbG9zZWQoKSkKICAg
ICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBpZiAoZGVzY3JpcHRpb25TdGF0ZXMpCisgICAg
ICAgICAgICBtX3BlZXJDb25uZWN0aW9uLnVwZGF0ZURlc2NyaXB0aW9ucyhXVEZNb3ZlKCpkZXNj
cmlwdGlvblN0YXRlcykpOwogICAgICAgICBtX3BlZXJDb25uZWN0aW9uLnVwZGF0ZVRyYW5zY2Vp
dmVyc0FmdGVyU3VjY2Vzc2Z1bFJlbW90ZURlc2NyaXB0aW9uKCk7CiAgICAgICAgIG1fcGVlckNv
bm5lY3Rpb24udXBkYXRlU2N0cEJhY2tlbmQoV1RGTW92ZShzY3RwQmFja2VuZCkpOwogICAgICAg
ICBwcm9taXNlLT5yZXNvbHZlKCk7CkBAIC0zMTIsMTAgKzMxNiwxNiBAQCB2b2lkIFBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6YWRkSWNlQ2FuZGlkYXRlKFJUQ0ljZUNhbmRpZGF0ZSogaWNlQ2FuZGlk
YXRlLCBET01QcgogCiAgICAgZG9BZGRJY2VDYW5kaWRhdGUoKmljZUNhbmRpZGF0ZSwgW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRv
JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCB3ZWFrVGhpcy0+
bV9wZWVyQ29ubmVjdGlvbi5pc0Nsb3NlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihXZWJSVEMsICJBZGRpbmcgaWNlIGNhbmRpZGF0ZSBmaW5pc2hl
ZCwgc3VjY2Vzcz0lZCIsIHJlc3VsdC5oYXNFeGNlcHRpb24oKSk7Ci0gICAgICAgIHByb21pc2Uu
c2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYlJUQywgIkFkZGluZyBpY2Ug
Y2FuZGlkYXRlIGZhaWxlZCAlZCIsIHJlc3VsdC5leGNlcHRpb24oKS5jb2RlKCkpOworICAgICAg
ICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8gZGVzY3JpcHRpb25zID0g
cmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVl
ckNvbm5lY3Rpb24udXBkYXRlRGVzY3JpcHRpb25zKFdURk1vdmUoKmRlc2NyaXB0aW9ucykpOwor
ICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKICAgICB9KTsKIH0KIApAQCAtMzQ5LDE0ICszNTks
MTkgQEAgdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnZhbGlkYXRlU0RQKGNvbnN0IFN0cmlu
ZyYgc2RwKSBjb25zdAogI2VuZGlmCiB9CiAKLXZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpu
ZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQsIHVuc2lnbmVkIHNob3J0
IHNkcE1MaW5lSW5kZXgsIFN0cmluZyYmIHNlcnZlclVSTCkKK3ZvaWQgUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjpuZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQsIHVuc2ln
bmVkIHNob3J0IHNkcE1MaW5lSW5kZXgsIFN0cmluZyYmIHNlcnZlclVSTCwgc3RkOjpvcHRpb25h
bDxEZXNjcmlwdGlvblN0YXRlcz4mJiBkZXNjcmlwdGlvbnMpCiB7Ci0gICAgbV9wZWVyQ29ubmVj
dGlvbi5kb1Rhc2soW2xvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUiwgdGhpcywgc2Rw
ID0gV1RGTW92ZShzZHApLCBtaWQgPSBXVEZNb3ZlKG1pZCksIHNkcE1MaW5lSW5kZXgsIHNlcnZl
clVSTCA9IFdURk1vdmUoc2VydmVyVVJMKV0oKSBtdXRhYmxlIHsKKyAgICBtX3BlZXJDb25uZWN0
aW9uLmRvVGFzayhbbG9nU2l0ZUlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSLCB0aGlzLCBzZHAg
PSBXVEZNb3ZlKHNkcCksIG1pZCA9IFdURk1vdmUobWlkKSwgc2RwTUxpbmVJbmRleCwgc2VydmVy
VVJMID0gV1RGTW92ZShzZXJ2ZXJVUkwpLCBkZXNjcmlwdGlvbnMgPSBXVEZNb3ZlKGRlc2NyaXB0
aW9ucyldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmlzQ2xvc2Vk
KCkpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgVU5VU0VEX1BBUkFNKGxvZ1NpdGVJ
ZGVudGlmaWVyKTsKICAgICAgICAgQUxXQVlTX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgIkdhdGhl
cmVkIGljZSBjYW5kaWRhdGU6Iiwgc2RwKTsKICAgICAgICAgbV9maW5pc2hlZEdhdGhlcmluZ0Nh
bmRpZGF0ZXMgPSBmYWxzZTsKIAogICAgICAgICBBU1NFUlQoIW1fc2hvdWxkRmlsdGVySUNFQ2Fu
ZGlkYXRlcyB8fCBzZHAuY29udGFpbnMoIi5sb2NhbCIpKTsKKyAgICAgICAgaWYgKGRlc2NyaXB0
aW9ucykKKyAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlRGVzY3JpcHRpb25zKFdU
Rk1vdmUoKmRlc2NyaXB0aW9ucykpOwogICAgICAgICBmaXJlSUNFQ2FuZGlkYXRlRXZlbnQoUlRD
SWNlQ2FuZGlkYXRlOjpjcmVhdGUoV1RGTW92ZShzZHApLCBXVEZNb3ZlKG1pZCksIHNkcE1MaW5l
SW5kZXgpLCBXVEZNb3ZlKHNlcnZlclVSTCkpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmgKaW5kZXggNmUyZmJmOWRjNjE2MjYyYTBkOWEyMWRjYmZiMDlhYjZkNWZmYWVlMi4uODljN2Nl
NGQ1NDgzNDdhOTdlODI3MTc1NDkyZDhkMzdjZTI1MzVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5o
CkBAIC0xMDQsMTQgKzEwNCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgp
ID0gMDsKIAotICAgIHZpcnR1YWwgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gbG9jYWxE
ZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxSVENTZXNzaW9uRGVz
Y3JpcHRpb24+IGN1cnJlbnRMb2NhbERlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwotICAgIHZpcnR1
YWwgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24o
KSBjb25zdCA9IDA7Ci0KLSAgICB2aXJ0dWFsIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+
IHJlbW90ZURlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbj4gY3VycmVudFJlbW90ZURlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwot
ICAgIHZpcnR1YWwgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcGVuZGluZ1JlbW90ZURl
c2NyaXB0aW9uKCkgY29uc3QgPSAwOwotCiAgICAgdmlydHVhbCB2b2lkIHJlc3RhcnRJY2UoKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIHNldENvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2ludENvbmZp
Z3VyYXRpb24mJikgPSAwOwogCkBAIC0xMzAsNyArMTIyLDE4IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlvbikgPSAw
OwogCi0gICAgdm9pZCBuZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcmJiBtaWQs
IHVuc2lnbmVkIHNob3J0IHNkcE1MaW5lSW5kZXgsIFN0cmluZyYmIHNlcnZlclVSTCk7CisgICAg
c3RydWN0IERlc2NyaXB0aW9uU3RhdGVzIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxSVENTZHBU
eXBlPiBjdXJyZW50TG9jYWxEZXNjcmlwdGlvblNkcFR5cGU7CisgICAgICAgIFN0cmluZyBjdXJy
ZW50TG9jYWxEZXNjcmlwdGlvblNkcDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxSVENTZHBUeXBl
PiBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvblNkcFR5cGU7CisgICAgICAgIFN0cmluZyBwZW5kaW5n
TG9jYWxEZXNjcmlwdGlvblNkcDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxSVENTZHBUeXBlPiBj
dXJyZW50UmVtb3RlRGVzY3JpcHRpb25TZHBUeXBlOworICAgICAgICBTdHJpbmcgY3VycmVudFJl
bW90ZURlc2NyaXB0aW9uU2RwOworICAgICAgICBzdGQ6Om9wdGlvbmFsPFJUQ1NkcFR5cGU+IHBl
bmRpbmdSZW1vdGVEZXNjcmlwdGlvblNkcFR5cGU7CisgICAgICAgIFN0cmluZyBwZW5kaW5nUmVt
b3RlRGVzY3JpcHRpb25TZHA7CisgICAgfTsKKworICAgIHZvaWQgbmV3SUNFQ2FuZGlkYXRlKFN0
cmluZyYmIHNkcCwgU3RyaW5nJiYgbWlkLCB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUluZGV4LCBT
dHJpbmcmJiBzZXJ2ZXJVUkwsIHN0ZDo6b3B0aW9uYWw8RGVzY3JpcHRpb25TdGF0ZXM+JiYpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiAgICAgdm9p
ZCBlbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKIApAQCAtMTg3LDYgKzE5MCw5IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcygpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlczsgfTsKIAorICAgIHVzaW5nIEFkZEljZUNh
bmRpZGF0ZUNhbGxiYWNrRnVuY3Rpb24gPSB2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6b3B0aW9uYWw8
UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpEZXNjcmlwdGlvblN0YXRlcz4+JiYpOworICAgIHVzaW5n
IEFkZEljZUNhbmRpZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248QWRkSWNlQ2FuZGlkYXRlQ2FsbGJh
Y2tGdW5jdGlvbj47CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGZpcmVJQ0VDYW5kaWRhdGVFdmVu
dChSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiYmLCBTdHJpbmcmJiB1cmwpOwogICAgIHZvaWQgZG9u
ZUdhdGhlcmluZ0NhbmRpZGF0ZXMoKTsKQEAgLTE5OSwxNSArMjA1LDEyIEBAIHByb3RlY3RlZDoK
ICAgICB2b2lkIGNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJpbmcmJik7CiAgICAgdm9pZCBjcmVh
dGVBbnN3ZXJGYWlsZWQoRXhjZXB0aW9uJiYpOwogCi0gICAgdm9pZCBzZXRMb2NhbERlc2NyaXB0
aW9uU3VjY2VlZGVkKHN0ZDo6dW5pcXVlX3B0cjxSVENTY3RwVHJhbnNwb3J0QmFja2VuZD4mJik7
CisgICAgdm9pZCBzZXRMb2NhbERlc2NyaXB0aW9uU3VjY2VlZGVkKHN0ZDo6b3B0aW9uYWw8RGVz
Y3JpcHRpb25TdGF0ZXM+JiYsIHN0ZDo6dW5pcXVlX3B0cjxSVENTY3RwVHJhbnNwb3J0QmFja2Vu
ZD4mJik7CiAgICAgdm9pZCBzZXRMb2NhbERlc2NyaXB0aW9uRmFpbGVkKEV4Y2VwdGlvbiYmKTsK
IAotICAgIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb25TdWNjZWVkZWQoc3RkOjp1bmlxdWVfcHRy
PFJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kPiYmKTsKKyAgICB2b2lkIHNldFJlbW90ZURlc2NyaXB0
aW9uU3VjY2VlZGVkKHN0ZDo6b3B0aW9uYWw8RGVzY3JpcHRpb25TdGF0ZXM+JiYsIHN0ZDo6dW5p
cXVlX3B0cjxSVENTY3RwVHJhbnNwb3J0QmFja2VuZD4mJik7CiAgICAgdm9pZCBzZXRSZW1vdGVE
ZXNjcmlwdGlvbkZhaWxlZChFeGNlcHRpb24mJik7CiAKLSAgICB2b2lkIGFkZEljZUNhbmRpZGF0
ZVN1Y2NlZWRlZCgpOwotICAgIHZvaWQgYWRkSWNlQ2FuZGlkYXRlRmFpbGVkKEV4Y2VwdGlvbiYm
KTsKLQogICAgIHZvaWQgdmFsaWRhdGVTRFAoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAKICAgICBz
dHJ1Y3QgUGVuZGluZ1RyYWNrRXZlbnQgewpAQCAtMjIzLDcgKzIyNiw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGRvQ3JlYXRlQW5zd2VyKFJUQ0Fuc3dlck9wdGlvbnMmJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkb1NldExvY2FsRGVzY3JpcHRpb24oY29uc3QgUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkb1NldFJlbW90ZURlc2NyaXB0aW9u
KGNvbnN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZG9B
ZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiwgRnVuY3Rpb248dm9pZChFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkb0FkZEljZUNhbmRpZGF0ZShS
VENJY2VDYW5kaWRhdGUmLCBBZGRJY2VDYW5kaWRhdGVDYWxsYmFjayYmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGVuZE9mSWNlQ2FuZGlkYXRlcyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7
CiAgICAgdmlydHVhbCB2b2lkIGRvU3RvcCgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCAy
ZDQ4OTg4NGI0NDIzZTAxNDg0OGI2MGM0NzhlMWY4ZDdiMjZmODMyLi40ZGE3NWVjYTA0NmJjODY3
MGY3MTJlMDMzZWRjMWM1ZGM1MWFjNTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMjQ3LDIxICsy
NDcsNiBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uKHN0ZDo6
b3B0aW9uYWw8RGVzY3JpcHRpb24+JiYgbG9jYWxEZQogICAgIH0pOwogfQogCi1SZWZQdHI8UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6bG9jYWxEZXNjcmlwdGlvbigp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYmFja2VuZC0+bG9jYWxEZXNjcmlwdGlvbigpOwotfQot
Ci1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6Y3VycmVu
dExvY2FsRGVzY3JpcHRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2JhY2tlbmQtPmN1cnJl
bnRMb2NhbERlc2NyaXB0aW9uKCk7Ci19Ci0KLVJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+
IFJUQ1BlZXJDb25uZWN0aW9uOjpwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fYmFja2VuZC0+cGVuZGluZ0xvY2FsRGVzY3JpcHRpb24oKTsKLX0KLQogdm9p
ZCBSVENQZWVyQ29ubmVjdGlvbjo6c2V0UmVtb3RlRGVzY3JpcHRpb24oRGVzY3JpcHRpb24mJiBy
ZW1vdGVEZXNjcmlwdGlvbiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAg
IFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IGRlc2NyaXB0aW9uOwpAQCAtMjg2LDIxICsy
NzEsNiBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRSZW1vdGVEZXNjcmlwdGlvbihEZXNj
cmlwdGlvbiYmIHJlbW90ZURlc2NyaXB0aW9uLCBSZQogICAgIH0pOwogfQogCi1SZWZQdHI8UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6cmVtb3RlRGVzY3JpcHRpb24o
KSBjb25zdAotewotICAgIHJldHVybiBtX2JhY2tlbmQtPnJlbW90ZURlc2NyaXB0aW9uKCk7Ci19
Ci0KLVJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IFJUQ1BlZXJDb25uZWN0aW9uOjpjdXJy
ZW50UmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2JhY2tlbmQtPmN1
cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpOwotfQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6cGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9iYWNrZW5kLT5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24oKTsKLX0K
LQogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKENhbmRpZGF0ZSYmIHJ0
Y0NhbmRpZGF0ZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIHN0ZDo6
b3B0aW9uYWw8RXhjZXB0aW9uPiBleGNlcHRpb247CkBAIC05MzYsNiArOTA2LDI1IEBAIFJlZlB0
cjxSVENEdGxzVHJhbnNwb3J0PiBSVENQZWVyQ29ubmVjdGlvbjo6Z2V0T3JDcmVhdGVEdGxzVHJh
bnNwb3J0KHN0ZDo6dW5pcXVlCiAgICAgcmV0dXJuIG1fZHRsc1RyYW5zcG9ydHNbaW5kZXhdLmNv
cHlSZWYoKTsKIH0KIAorc3RhdGljIHZvaWQgdXBkYXRlRGVzY3JpcHRpb24oUmVmUHRyPFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbj4mIGRlc2NyaXB0aW9uLCBzdGQ6Om9wdGlvbmFsPFJUQ1NkcFR5cGU+
IHR5cGUsIFN0cmluZyYmIHNkcCkKK3sKKyAgICBpZiAoZGVzY3JpcHRpb24gJiYgdHlwZSAmJiBk
ZXNjcmlwdGlvbi0+c2RwKCkgPT0gc2RwICYmIGRlc2NyaXB0aW9uLT50eXBlKCkgPT0gKnR5cGUp
CisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIXR5cGUgfHwgc2RwLmlzRW1wdHkoKSkgeworICAg
ICAgICBkZXNjcmlwdGlvbiA9IG51bGxwdHI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
ZGVzY3JpcHRpb24gPSBSVENTZXNzaW9uRGVzY3JpcHRpb246OmNyZWF0ZSgqdHlwZSwgV1RGTW92
ZShzZHApKTsKK30KKwordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6dXBkYXRlRGVzY3JpcHRpb25z
KFBlZXJDb25uZWN0aW9uQmFja2VuZDo6RGVzY3JpcHRpb25TdGF0ZXMmJiBzdGF0ZXMpCit7Cisg
ICAgdXBkYXRlRGVzY3JpcHRpb24obV9jdXJyZW50TG9jYWxEZXNjcmlwdGlvbiwgc3RhdGVzLmN1
cnJlbnRMb2NhbERlc2NyaXB0aW9uU2RwVHlwZSwgV1RGTW92ZShzdGF0ZXMuY3VycmVudExvY2Fs
RGVzY3JpcHRpb25TZHApKTsKKyAgICB1cGRhdGVEZXNjcmlwdGlvbihtX3BlbmRpbmdMb2NhbERl
c2NyaXB0aW9uLCBzdGF0ZXMucGVuZGluZ0xvY2FsRGVzY3JpcHRpb25TZHBUeXBlLCBXVEZNb3Zl
KHN0YXRlcy5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvblNkcCkpOworICAgIHVwZGF0ZURlc2NyaXB0
aW9uKG1fY3VycmVudFJlbW90ZURlc2NyaXB0aW9uLCBzdGF0ZXMuY3VycmVudFJlbW90ZURlc2Ny
aXB0aW9uU2RwVHlwZSwgV1RGTW92ZShzdGF0ZXMuY3VycmVudFJlbW90ZURlc2NyaXB0aW9uU2Rw
KSk7CisgICAgdXBkYXRlRGVzY3JpcHRpb24obV9wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIHN0
YXRlcy5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb25TZHBUeXBlLCBXVEZNb3ZlKHN0YXRlcy5wZW5k
aW5nUmVtb3RlRGVzY3JpcHRpb25TZHApKTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6
dXBkYXRlVHJhbnNjZWl2ZXJUcmFuc3BvcnRzKCkKIHsKICAgICBmb3IgKGF1dG8mIHRyYW5zY2Vp
dmVyIDogbV90cmFuc2NlaXZlclNldC5saXN0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBkNTg5Y2Nm
ZWM0OTk2MWM5MDk0ZTA1ODZiYmQ1YWFiYzY1ODdjMTZkLi42MDZhNDkxYzAzMGZhNWFhYTYxNzBl
MDA5ZjA2ZDVkN2E3NmU4MDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC0xMTIsMTQgKzExMiwxNCBAQCBw
dWJsaWM6CiAKICAgICB1c2luZyBEZXNjcmlwdGlvbiA9IFZhcmlhbnQ8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uSW5pdCwgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4+OwogICAgIHZvaWQgc2V0
TG9jYWxEZXNjcmlwdGlvbihzdGQ6Om9wdGlvbmFsPERlc2NyaXB0aW9uPiYmLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmKTsKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBsb2NhbERl
c2NyaXB0aW9uKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gY3Vy
cmVudExvY2FsRGVzY3JpcHRpb24oKSBjb25zdDsKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uPiBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0OworICAgIFJlZlB0cjxSVENT
ZXNzaW9uRGVzY3JpcHRpb24+IGxvY2FsRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bl
bmRpbmdMb2NhbERlc2NyaXB0aW9uID8gbV9wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbi5nZXQoKSA6
IG1fY3VycmVudExvY2FsRGVzY3JpcHRpb24uZ2V0KCk7IH0KKyAgICBSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uPiBjdXJyZW50TG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
Y3VycmVudExvY2FsRGVzY3JpcHRpb24uZ2V0KCk7IH0KKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uPiBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGVu
ZGluZ0xvY2FsRGVzY3JpcHRpb24uZ2V0KCk7IH0KIAogICAgIHZvaWQgc2V0UmVtb3RlRGVzY3Jp
cHRpb24oRGVzY3JpcHRpb24mJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Ci0gICAgUmVmUHRy
PFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdDsKLSAgICBS
ZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24oKSBj
b25zdDsKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nUmVtb3RlRGVz
Y3JpcHRpb24oKSBjb25zdDsKKyAgICBSVENTZXNzaW9uRGVzY3JpcHRpb24qIHJlbW90ZURlc2Ny
aXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gPyBtX3Bl
bmRpbmdSZW1vdGVEZXNjcmlwdGlvbi5nZXQoKSA6IG1fY3VycmVudFJlbW90ZURlc2NyaXB0aW9u
LmdldCgpOyB9CisgICAgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKiBjdXJyZW50UmVtb3RlRGVzY3Jp
cHRpb24oKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbi5nZXQoKTsg
fQorICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiogcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24uZ2V0KCk7IH0KIAogICAg
IHVzaW5nIENhbmRpZGF0ZSA9IHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxSVENJY2VDYW5kaWRhdGVJ
bml0LCBSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPj4+OwogICAgIHZvaWQgYWRkSWNlQ2FuZGlkYXRl
KENhbmRpZGF0ZSYmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKQEAgLTE4Nyw2ICsxODcsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGRvVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOwogCisgICAg
dm9pZCB1cGRhdGVEZXNjcmlwdGlvbnMoUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpEZXNjcmlwdGlv
blN0YXRlcyYmKTsKICAgICB2b2lkIHVwZGF0ZVRyYW5zY2VpdmVyc0FmdGVyU3VjY2Vzc2Z1bExv
Y2FsRGVzY3JpcHRpb24oKTsKICAgICB2b2lkIHVwZGF0ZVRyYW5zY2VpdmVyc0FmdGVyU3VjY2Vz
c2Z1bFJlbW90ZURlc2NyaXB0aW9uKCk7CiAgICAgdm9pZCB1cGRhdGVTY3RwQmFja2VuZChzdGQ6
OnVuaXF1ZV9wdHI8UlRDU2N0cFRyYW5zcG9ydEJhY2tlbmQ+JiYpOwpAQCAtMjcxLDYgKzI3Miwx
MSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZWY8UlRDRHRsc1RyYW5zcG9ydD4+IG1fZHRsc1Ry
YW5zcG9ydHM7CiAgICAgVmVjdG9yPFJlZjxSVENJY2VUcmFuc3BvcnQ+PiBtX2ljZVRyYW5zcG9y
dHM7CiAgICAgUmVmUHRyPFJUQ1NjdHBUcmFuc3BvcnQ+IG1fc2N0cFRyYW5zcG9ydDsKKworICAg
IFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IG1fY3VycmVudExvY2FsRGVzY3JpcHRpb247
CisgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gbV9wZW5kaW5nTG9jYWxEZXNjcmlw
dGlvbjsKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBtX2N1cnJlbnRSZW1vdGVE
ZXNjcmlwdGlvbjsKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBtX3BlbmRpbmdS
ZW1vdGVEZXNjcmlwdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggMDg0ODUxOTNiYWNhMGM2
YmVjNmJlZTQwNTc2OWE1NzM5YmU1Y2M4NS4uNjFiYWEzMWYxMGQ3MjU0NmQ5ZGMyYTMwNDMxYzZh
NmM1YTk0YTc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5j
cHAKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlIDx3ZWJydGMvcGMvcGVlcl9jb25uZWN0aW9u
X2ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMvc3lzdGVtX3dyYXBwZXJzL2luY2x1ZGUvZmll
bGRfdHJpYWwuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9T
aGFyZWRUYXNrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTQzLDU5ICsxNDQsNiBA
QCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHNlc3Npb25EZXNjcmlwdGlvblR5cGUoUlRDU2Rw
VHlwZSBzZHBUeXBlKQogICAgIHJldHVybiAiIjsKIH0KIAotc3RhdGljIGlubGluZSBSVENTZHBU
eXBlIGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKGNvbnN0IHdlYnJ0Yzo6U2Vzc2lvbkRlc2Ny
aXB0aW9uSW50ZXJmYWNlJiBkZXNjcmlwdGlvbikKLXsKLSAgICBhdXRvIHR5cGUgPSBkZXNjcmlw
dGlvbi50eXBlKCk7Ci0gICAgaWYgKHR5cGUgPT0gd2VicnRjOjpTZXNzaW9uRGVzY3JpcHRpb25J
bnRlcmZhY2U6OmtPZmZlcikKLSAgICAgICAgcmV0dXJuIFJUQ1NkcFR5cGU6Ok9mZmVyOwotICAg
IGlmICh0eXBlID09IHdlYnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlOjprQW5zd2Vy
KQotICAgICAgICByZXR1cm4gUlRDU2RwVHlwZTo6QW5zd2VyOwotICAgIEFTU0VSVCh0eXBlID09
IHdlYnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlOjprUHJBbnN3ZXIpOwotICAgIHJl
dHVybiBSVENTZHBUeXBlOjpQcmFuc3dlcjsKLX0KLQotc3RhdGljIGlubGluZSBSZWZQdHI8UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uPiBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uKGNvbnN0IHdlYnJ0Yzo6
U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlKiBkZXNjcmlwdGlvbikKLXsKLSAgICBpZiAoIWRl
c2NyaXB0aW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHN0ZDo6c3RyaW5nIHNk
cDsKLSAgICBkZXNjcmlwdGlvbi0+VG9TdHJpbmcoJnNkcCk7Ci0KLSAgICByZXR1cm4gUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uOjpjcmVhdGUoZnJvbVNlc3Npb25EZXNjcmlwdGlvblR5cGUoKmRlc2Ny
aXB0aW9uKSwgZnJvbVN0ZFN0cmluZyhzZHApKTsKLX0KLQotLy8gRklYTUU6IFdlIG1pZ2h0IHdh
bnQgdG8gY3JlYXRlIGEgbmV3IG9iamVjdCBvbmx5IGlmIHRoZSBzZXNzaW9uIGFjdHVhbGx5IGNo
YW5nZWQgZm9yIGFsbCBkZXNjcmlwdGlvbiBnZXR0ZXJzLgotUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbj4gTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6Y3VycmVudExvY2FsRGVzY3JpcHRpb24o
KSBjb25zdAotewotICAgIHJldHVybiBtX2JhY2tlbmQgPyBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9u
KG1fYmFja2VuZC0+Y3VycmVudF9sb2NhbF9kZXNjcmlwdGlvbigpKSA6IG51bGxwdHI7Ci19Ci0K
LVJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmN1
cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYmFja2VuZCA/
IGZyb21TZXNzaW9uRGVzY3JpcHRpb24obV9iYWNrZW5kLT5jdXJyZW50X3JlbW90ZV9kZXNjcmlw
dGlvbigpKSA6IG51bGxwdHI7Ci19Ci0KLVJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IExp
YldlYlJUQ01lZGlhRW5kcG9pbnQ6OnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9iYWNrZW5kID8gZnJvbVNlc3Npb25EZXNjcmlwdGlvbihtX2JhY2tlbmQt
PnBlbmRpbmdfbG9jYWxfZGVzY3JpcHRpb24oKSkgOiBudWxscHRyOwotfQotCi1SZWZQdHI8UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpwZW5kaW5nUmVtb3Rl
RGVzY3JpcHRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2JhY2tlbmQgPyBmcm9tU2Vzc2lv
bkRlc2NyaXB0aW9uKG1fYmFja2VuZC0+cGVuZGluZ19yZW1vdGVfZGVzY3JpcHRpb24oKSkgOiBu
dWxscHRyOwotfQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJSVENNZWRp
YUVuZHBvaW50Ojpsb2NhbERlc2NyaXB0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9iYWNr
ZW5kID8gZnJvbVNlc3Npb25EZXNjcmlwdGlvbihtX2JhY2tlbmQtPmxvY2FsX2Rlc2NyaXB0aW9u
KCkpIDogbnVsbHB0cjsKLX0KLQotUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gTGliV2Vi
UlRDTWVkaWFFbmRwb2ludDo6cmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdAotewotICAgIHJldHVy
biBtX2JhY2tlbmQgPyBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uKG1fYmFja2VuZC0+cmVtb3RlX2Rl
c2NyaXB0aW9uKCkpIDogbnVsbHB0cjsKLX0KLQogdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50
Ojpkb1NldExvY2FsRGVzY3JpcHRpb24oY29uc3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKiBkZXNj
cmlwdGlvbikKIHsKICAgICBBU1NFUlQobV9iYWNrZW5kKTsKQEAgLTYyMCw5ICs1NjgsNjAgQEAg
dm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPbkljZUdhdGhlcmluZ0NoYW5nZSh3ZWJydGM6
OlBlZXJDb25uZWN0aW9uSW50ZXJmYWMKICAgICB9KTsKIH0KIAotdm9pZCBMaWJXZWJSVENNZWRp
YUVuZHBvaW50OjphZGRJY2VDYW5kaWRhdGUoc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6SWNlQ2Fu
ZGlkYXRlSW50ZXJmYWNlPiYmIGNhbmRpZGF0ZSwgc3RkOjpmdW5jdGlvbjx2b2lkKHdlYnJ0Yzo6
UlRDRXJyb3IpPiYmIGNhbGxiYWNrKQorc3RhdGljIGlubGluZSBSVENTZHBUeXBlIGZyb21TZXNz
aW9uRGVzY3JpcHRpb25UeXBlKGNvbnN0IHdlYnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJm
YWNlJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhdXRvIHR5cGUgPSBkZXNjcmlwdGlvbi50eXBlKCk7
CisgICAgaWYgKHR5cGUgPT0gd2VicnRjOjpTZXNzaW9uRGVzY3JpcHRpb25JbnRlcmZhY2U6OmtP
ZmZlcikKKyAgICAgICAgcmV0dXJuIFJUQ1NkcFR5cGU6Ok9mZmVyOworICAgIGlmICh0eXBlID09
IHdlYnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlOjprQW5zd2VyKQorICAgICAgICBy
ZXR1cm4gUlRDU2RwVHlwZTo6QW5zd2VyOworICAgIEFTU0VSVCh0eXBlID09IHdlYnJ0Yzo6U2Vz
c2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlOjprUHJBbnN3ZXIpOworICAgIHJldHVybiBSVENTZHBU
eXBlOjpQcmFuc3dlcjsKK30KKworc3RhdGljIHN0ZDo6b3B0aW9uYWw8UGVlckNvbm5lY3Rpb25C
YWNrZW5kOjpEZXNjcmlwdGlvblN0YXRlcz4gZGVzY3JpcHRpb25zRnJvbVBlZXJDb25uZWN0aW9u
KHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2UqIGNvbm5lY3Rpb24pCiB7Ci0gICAgbV9i
YWNrZW5kLT5BZGRJY2VDYW5kaWRhdGUoV1RGTW92ZShjYW5kaWRhdGUpLCBXVEZNb3ZlKGNhbGxi
YWNrKSk7CisgICAgaWYgKCFjb25uZWN0aW9uKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
c3RkOjpvcHRpb25hbDxSVENTZHBUeXBlPiBjdXJyZW50TG9jYWxEZXNjcmlwdGlvblNkcFR5cGUs
IHBlbmRpbmdMb2NhbERlc2NyaXB0aW9uU2RwVHlwZSwgY3VycmVudFJlbW90ZURlc2NyaXB0aW9u
U2RwVHlwZSwgcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uU2RwVHlwZTsKKyAgICBzdGQ6OnN0cmlu
ZyBjdXJyZW50TG9jYWxEZXNjcmlwdGlvblNkcCwgcGVuZGluZ0xvY2FsRGVzY3JpcHRpb25TZHAs
IGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvblNkcCwgcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uU2Rw
OworICAgIGlmIChhdXRvKiBkZXNjcmlwdGlvbiA9IGNvbm5lY3Rpb24tPmN1cnJlbnRfbG9jYWxf
ZGVzY3JpcHRpb24oKSkgeworICAgICAgICBjdXJyZW50TG9jYWxEZXNjcmlwdGlvblNkcFR5cGUg
PSBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24pOworICAgICAgICBkZXNj
cmlwdGlvbi0+VG9TdHJpbmcoJmN1cnJlbnRMb2NhbERlc2NyaXB0aW9uU2RwKTsKKyAgICB9Cisg
ICAgaWYgKGF1dG8qIGRlc2NyaXB0aW9uID0gY29ubmVjdGlvbi0+cGVuZGluZ19sb2NhbF9kZXNj
cmlwdGlvbigpKSB7CisgICAgICAgIHBlbmRpbmdMb2NhbERlc2NyaXB0aW9uU2RwVHlwZSA9IGZy
b21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbik7CisgICAgICAgIGRlc2NyaXB0
aW9uLT5Ub1N0cmluZygmcGVuZGluZ0xvY2FsRGVzY3JpcHRpb25TZHApOworICAgIH0KKyAgICBp
ZiAoYXV0byogZGVzY3JpcHRpb24gPSBjb25uZWN0aW9uLT5jdXJyZW50X3JlbW90ZV9kZXNjcmlw
dGlvbigpKSB7CisgICAgICAgIGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvblNkcFR5cGUgPSBmcm9t
U2Vzc2lvbkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24pOworICAgICAgICBkZXNjcmlwdGlv
bi0+VG9TdHJpbmcoJmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvblNkcCk7CisgICAgfQorICAgIGlm
IChhdXRvKiBkZXNjcmlwdGlvbiA9IGNvbm5lY3Rpb24tPnBlbmRpbmdfcmVtb3RlX2Rlc2NyaXB0
aW9uKCkpIHsKKyAgICAgICAgcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uU2RwVHlwZSA9IGZyb21T
ZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbik7CisgICAgICAgIGRlc2NyaXB0aW9u
LT5Ub1N0cmluZygmcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uU2RwKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpEZXNjcmlwdGlvblN0YXRlcyB7CisgICAgICAg
IGN1cnJlbnRMb2NhbERlc2NyaXB0aW9uU2RwVHlwZSwgZnJvbVN0ZFN0cmluZyhjdXJyZW50TG9j
YWxEZXNjcmlwdGlvblNkcCksCisgICAgICAgIHBlbmRpbmdMb2NhbERlc2NyaXB0aW9uU2RwVHlw
ZSwgZnJvbVN0ZFN0cmluZyhwZW5kaW5nTG9jYWxEZXNjcmlwdGlvblNkcCksCisgICAgICAgIGN1
cnJlbnRSZW1vdGVEZXNjcmlwdGlvblNkcFR5cGUsIGZyb21TdGRTdHJpbmcoY3VycmVudFJlbW90
ZURlc2NyaXB0aW9uU2RwKSwKKyAgICAgICAgcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uU2RwVHlw
ZSwgZnJvbVN0ZFN0cmluZyhwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb25TZHApCisgICAgfTsKK30K
Kwordm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRJY2VDYW5kaWRhdGUoc3RkOjp1bmlx
dWVfcHRyPHdlYnJ0Yzo6SWNlQ2FuZGlkYXRlSW50ZXJmYWNlPiYmIGNhbmRpZGF0ZSwgUGVlckNv
bm5lY3Rpb25CYWNrZW5kOjpBZGRJY2VDYW5kaWRhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQorewor
ICAgIG1fYmFja2VuZC0+QWRkSWNlQ2FuZGlkYXRlKFdURk1vdmUoY2FuZGlkYXRlKSwgW3Rhc2sg
PSBjcmVhdGVTaGFyZWRUYXNrPFBlZXJDb25uZWN0aW9uQmFja2VuZDo6QWRkSWNlQ2FuZGlkYXRl
Q2FsbGJhY2tGdW5jdGlvbj4oV1RGTW92ZShjYWxsYmFjaykpLCBiYWNrZW5kID0gbV9iYWNrZW5k
XShhdXRvJiYgZXJyb3IpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0YXNr
ID0gV1RGTW92ZSh0YXNrKSwgZGVzY3JpcHRpb25zID0gZGVzY3JpcHRpb25zRnJvbVBlZXJDb25u
ZWN0aW9uKGJhY2tlbmQuZ2V0KCkpLCBlcnJvciA9IFdURk1vdmUoZXJyb3IpXSgpIG11dGFibGUg
eworICAgICAgICAgICAgaWYgKCFlcnJvci5vaygpKSB7CisgICAgICAgICAgICAgICAgdGFzay0+
cnVuKHRvRXhjZXB0aW9uKGVycm9yKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgdGFzay0+cnVuKFdURk1vdmUoZGVzY3JpcHRpb25zKSk7Cisg
ICAgICAgIH0pOworICAgIH0pOwogfQogCiB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6Ok9u
SWNlQ2FuZGlkYXRlKGNvbnN0IHdlYnJ0Yzo6SWNlQ2FuZGlkYXRlSW50ZXJmYWNlICpydGNDYW5k
aWRhdGUpCkBAIC02MzQsMTAgKzYzMywxMCBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6
Ok9uSWNlQ2FuZGlkYXRlKGNvbnN0IHdlYnJ0Yzo6SWNlQ2FuZGlkYXRlSW50ZXJmYWNlCiAKICAg
ICBhdXRvIHNkcE1MaW5lSW5kZXggPSBzYWZlQ2FzdDx1bnNpZ25lZCBzaG9ydD4ocnRjQ2FuZGlk
YXRlLT5zZHBfbWxpbmVfaW5kZXgoKSk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1pZCA9IGZyb21TdGRTdHJpbmcocnRjQ2FuZGlkYXRl
LT5zZHBfbWlkKCkpLCBzZHAgPSBmcm9tU3RkU3RyaW5nKHNkcCksIHNkcE1MaW5lSW5kZXgsIHVy
bCA9IGZyb21TdGRTdHJpbmcocnRjQ2FuZGlkYXRlLT5zZXJ2ZXJfdXJsKCkpXSgpIG11dGFibGUg
eworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
ZGVzY3JpcHRpb25zID0gZGVzY3JpcHRpb25zRnJvbVBlZXJDb25uZWN0aW9uKG1fYmFja2VuZC5n
ZXQoKSksIG1pZCA9IGZyb21TdGRTdHJpbmcocnRjQ2FuZGlkYXRlLT5zZHBfbWlkKCkpLCBzZHAg
PSBmcm9tU3RkU3RyaW5nKHNkcCksIHNkcE1MaW5lSW5kZXgsIHVybCA9IGZyb21TdGRTdHJpbmco
cnRjQ2FuZGlkYXRlLT5zZXJ2ZXJfdXJsKCkpXSgpIG11dGFibGUgewogICAgICAgICBpZiAocHJv
dGVjdGVkVGhpcy0+aXNTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHBy
b3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld0lDRUNhbmRpZGF0ZShXVEZN
b3ZlKHNkcCksIFdURk1vdmUobWlkKSwgc2RwTUxpbmVJbmRleCwgV1RGTW92ZSh1cmwpKTsKKyAg
ICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3SUNFQ2FuZGlk
YXRlKFdURk1vdmUoc2RwKSwgV1RGTW92ZShtaWQpLCBzZHBNTGluZUluZGV4LCBXVEZNb3ZlKHVy
bCksIFdURk1vdmUoZGVzY3JpcHRpb25zKSk7CiAgICAgfSk7CiB9CiAKQEAgLTY5OSwxMCArNjk4
LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENTY3RwVHJhbnNwb3J0QmFja2VuZD4gU2N0
cFRyYW5zcG9ydFN0YXRlOjpjcmVhdGVCYWNrZW5kCiAKIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRw
b2ludDo6c2V0TG9jYWxTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoKQogewotICAgIGNhbGxP
bk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgc2N0cFN0YXRlID0g
U2N0cFRyYW5zcG9ydFN0YXRlKG1fYmFja2VuZC0+R2V0U2N0cFRyYW5zcG9ydCgpKV0oKSBtdXRh
YmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGRlc2NyaXB0aW9ucyA9IGRlc2NyaXB0aW9uc0Zyb21QZWVyQ29ubmVjdGlvbihtX2JhY2tl
bmQuZ2V0KCkpLCBzY3RwU3RhdGUgPSBTY3RwVHJhbnNwb3J0U3RhdGUobV9iYWNrZW5kLT5HZXRT
Y3RwVHJhbnNwb3J0KCkpXSgpIG11dGFibGUgewogICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+
aXNTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHByb3RlY3RlZFRoaXMt
Pm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLnNldExvY2FsRGVzY3JpcHRpb25TdWNjZWVkZWQoc2N0
cFN0YXRlLmNyZWF0ZUJhY2tlbmQoKSk7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGVlckNv
bm5lY3Rpb25CYWNrZW5kLnNldExvY2FsRGVzY3JpcHRpb25TdWNjZWVkZWQoV1RGTW92ZShkZXNj
cmlwdGlvbnMpLCBzY3RwU3RhdGUuY3JlYXRlQmFja2VuZCgpKTsKICAgICB9KTsKIH0KIApAQCAt
NzE3LDEwICs3MTYsMTAgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzZXRMb2NhbFNl
c3Npb25EZXNjcmlwdGlvbkZhaWxlZChFeGNlcHRpb25Db2RlIGVycm8KIAogdm9pZCBMaWJXZWJS
VENNZWRpYUVuZHBvaW50OjpzZXRSZW1vdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoKQog
ewotICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
c2N0cFN0YXRlID0gU2N0cFRyYW5zcG9ydFN0YXRlKG1fYmFja2VuZC0+R2V0U2N0cFRyYW5zcG9y
dCgpKV0oKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGRlc2NyaXB0aW9ucyA9IGRlc2NyaXB0aW9uc0Zyb21QZWVyQ29ubmVj
dGlvbihtX2JhY2tlbmQuZ2V0KCkpLCBzY3RwU3RhdGUgPSBTY3RwVHJhbnNwb3J0U3RhdGUobV9i
YWNrZW5kLT5HZXRTY3RwVHJhbnNwb3J0KCkpXSgpIG11dGFibGUgewogICAgICAgICBpZiAocHJv
dGVjdGVkVGhpcy0+aXNTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHBy
b3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLnNldFJlbW90ZURlc2NyaXB0aW9u
U3VjY2VlZGVkKHNjdHBTdGF0ZS5jcmVhdGVCYWNrZW5kKCkpOworICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX3BlZXJDb25uZWN0aW9uQmFja2VuZC5zZXRSZW1vdGVEZXNjcmlwdGlvblN1Y2NlZWRl
ZChXVEZNb3ZlKGRlc2NyaXB0aW9ucyksIHNjdHBTdGF0ZS5jcmVhdGVCYWNrZW5kKCkpOwogICAg
IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgKaW5kZXgg
YTgyYmEzODM1YjBiMjRhNzg1ZDllY2JlOWY4ZjExOGQ5ZWQ4YTU1Zi4uYWU1NWE1MTViNzcyODNk
NDRkMGZhN2VmNWZkZmYwYjNkYTg1ODk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01l
ZGlhRW5kcG9pbnQuaApAQCAtODksMTkgKzg5LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFN0
YXRzKHdlYnJ0Yzo6UnRwUmVjZWl2ZXJJbnRlcmZhY2UmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYm
KTsKICAgICB2b2lkIGdldFN0YXRzKHdlYnJ0Yzo6UnRwU2VuZGVySW50ZXJmYWNlJiwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFu
ZGxlcj4gY3JlYXRlRGF0YUNoYW5uZWwoY29uc3QgU3RyaW5nJiwgY29uc3QgUlRDRGF0YUNoYW5u
ZWxJbml0Jik7Ci0gICAgdm9pZCBhZGRJY2VDYW5kaWRhdGUoc3RkOjp1bmlxdWVfcHRyPHdlYnJ0
Yzo6SWNlQ2FuZGlkYXRlSW50ZXJmYWNlPiYmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQod2VicnRjOjpS
VENFcnJvcik+JiYpOworICAgIHZvaWQgYWRkSWNlQ2FuZGlkYXRlKHN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OkljZUNhbmRpZGF0ZUludGVyZmFjZT4mJiwgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpB
ZGRJY2VDYW5kaWRhdGVDYWxsYmFjayYmKTsKIAogICAgIHZvaWQgY2xvc2UoKTsKICAgICB2b2lk
IHN0b3AoKTsKICAgICBib29sIGlzU3RvcHBlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2JhY2tlbmQ7
IH0KIAotICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IGxvY2FsRGVzY3JpcHRpb24o
KSBjb25zdDsKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiByZW1vdGVEZXNjcmlw
dGlvbigpIGNvbnN0OwotICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IGN1cnJlbnRM
b2NhbERlc2NyaXB0aW9uKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bj4gY3VycmVudFJlbW90ZURlc2NyaXB0aW9uKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbj4gcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24oKSBjb25zdDsKLSAgICBSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24oKSBjb25z
dDsKLQogICAgIGJvb2wgYWRkVHJhY2soTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZCYsIE1lZGlh
U3RyZWFtVHJhY2smLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogICAgIHZvaWQgcmVtb3ZlVHJh
Y2soTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCA4NzUzMzRmMmE3YjJh
OTA2OTQ5MTZmYTU4ODVkZmI2MDcwMmIwYTc4Li4wMGViYmY4MDVhNDhkMzc2ODVhZmYyNGM3Y2Q4
NDM4NmY4ZjEyMzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCIKICNpbmNsdWRlICJSZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2UuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9TaGFyZWRUYXNr
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjcwLDcgKzI2OSw3IEBAIHZvaWQgTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb1N0b3AoKQogICAgIG1fcGVuZGluZ1JlY2Vp
dmVycy5jbGVhcigpOwogfQogCi12b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6
ZG9BZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiBjYW5kaWRhdGUsIEZ1bmN0aW9uPHZv
aWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY2FsbGJhY2spCit2b2lkIExpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZDo6ZG9BZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiBjYW5k
aWRhdGUsIEFkZEljZUNhbmRpZGF0ZUNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgd2VicnRj
OjpTZHBQYXJzZUVycm9yIGVycm9yOwogICAgIGludCBzZHBNTGluZUluZGV4ID0gY2FuZGlkYXRl
LnNkcE1MaW5lSW5kZXgoKSA/IGNhbmRpZGF0ZS5zZHBNTGluZUluZGV4KCkudmFsdWUoKSA6IDA7
CkBAIC0yODEsMTUgKzI4MCw3IEBAIHZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
Ojpkb0FkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUmIGNhbmRpZGF0CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBtX2VuZHBvaW50LT5hZGRJY2VDYW5kaWRhdGUoV1RGTW92ZShy
dGNDYW5kaWRhdGUpLCBbdGFzayA9IGNyZWF0ZVNoYXJlZFRhc2s8dm9pZChFeGNlcHRpb25Pcjx2
b2lkPiYmKT4oV1RGTW92ZShjYWxsYmFjaykpXShhdXRvJiYgZXJyb3IpIG11dGFibGUgewotICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFt0YXNrID0gV1RGTW92ZSh0YXNrKSwgZXJyb3IgPSBXVEZN
b3ZlKGVycm9yKV0gewotICAgICAgICAgICAgaWYgKCFlcnJvci5vaygpKSB7Ci0gICAgICAgICAg
ICAgICAgdGFzay0+cnVuKHRvRXhjZXB0aW9uKGVycm9yKSk7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGFzay0+cnVuKHsgfSk7Ci0gICAgICAg
IH0pOwotICAgIH0pOworICAgIG1fZW5kcG9pbnQtPmFkZEljZUNhbmRpZGF0ZShXVEZNb3ZlKHJ0
Y0NhbmRpZGF0ZSksIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogUmVmPFJUQ1J0cFJlY2VpdmVy
PiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZVJlY2VpdmVyKHN0ZDo6dW5p
cXVlX3B0cjxMaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQ+JiYgYmFja2VuZCkKQEAgLTMxMSw0
NSArMzAyLDYgQEAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVEYXQKICAgICByZXR1cm4gbV9lbmRwb2lu
dC0+Y3JlYXRlRGF0YUNoYW5uZWwobGFiZWwsIG9wdGlvbnMpOwogfQogCi1SZWZQdHI8UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmN1cnJlbnRM
b2NhbERlc2NyaXB0aW9uKCkgY29uc3QKLXsKLSAgICBhdXRvIGRlc2NyaXB0aW9uID0gbV9lbmRw
b2ludC0+Y3VycmVudExvY2FsRGVzY3JpcHRpb24oKTsKLSAgICBpZiAoZGVzY3JpcHRpb24pCi0g
ICAgICAgIHZhbGlkYXRlU0RQKGRlc2NyaXB0aW9uLT5zZHAoKSk7Ci0gICAgcmV0dXJuIGRlc2Ny
aXB0aW9uOwotfQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkJhY2tlbmQ6OmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fZW5kcG9pbnQtPmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpOwotfQotCi1S
ZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQ6OnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uKCkgY29uc3QKLXsKLSAgICBhdXRvIGRlc2NyaXB0
aW9uID0gbV9lbmRwb2ludC0+cGVuZGluZ0xvY2FsRGVzY3JpcHRpb24oKTsKLSAgICBpZiAoZGVz
Y3JpcHRpb24pCi0gICAgICAgIHZhbGlkYXRlU0RQKGRlc2NyaXB0aW9uLT5zZHAoKSk7Ci0gICAg
cmV0dXJuIGRlc2NyaXB0aW9uOwotfQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBM
aWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbigp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZW5kcG9pbnQtPnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlv
bigpOwotfQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQ6OmxvY2FsRGVzY3JpcHRpb24oKSBjb25zdAotewotICAgIGF1dG8gZGVz
Y3JpcHRpb24gPSBtX2VuZHBvaW50LT5sb2NhbERlc2NyaXB0aW9uKCk7Ci0gICAgaWYgKGRlc2Ny
aXB0aW9uKQotICAgICAgICB2YWxpZGF0ZVNEUChkZXNjcmlwdGlvbi0+c2RwKCkpOwotICAgIHJl
dHVybiBkZXNjcmlwdGlvbjsKLX0KLQotUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpyZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fZW5kcG9pbnQtPnJlbW90ZURlc2NyaXB0aW9uKCk7Ci19Ci0KIHN0YXRp
YyBpbmxpbmUgUmVmUHRyPFJUQ1J0cFNlbmRlcj4gZmluZEV4aXN0aW5nU2VuZGVyKGNvbnN0IFZl
Y3RvcjxSZWZQdHI8UlRDUnRwVHJhbnNjZWl2ZXI+PiYgdHJhbnNjZWl2ZXJzLCBMaWJXZWJSVENS
dHBTZW5kZXJCYWNrZW5kJiBzZW5kZXJCYWNrZW5kKQogewogICAgIEFTU0VSVChzZW5kZXJCYWNr
ZW5kLnJ0Y1NlbmRlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNv
bm5lY3Rpb25CYWNrZW5kLmgKaW5kZXggZmZjZTIyZDc1ZDhiMDE1NTQyM2JiNmNkMGE3YTIwYmM0
ZjU0YTQ1OC4uMzEwYjBiMGZmOTVjMjZkY2U5Y2I0OTc3NjVlOTNjODZmYTc2N2I5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAg
LTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRvQ3JlYXRlQW5zd2VyKFJUQ0Fuc3dl
ck9wdGlvbnMmJikgZmluYWw7CiAgICAgdm9pZCBkb1NldExvY2FsRGVzY3JpcHRpb24oY29uc3Qg
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uKikgZmluYWw7CiAgICAgdm9pZCBkb1NldFJlbW90ZURlc2Ny
aXB0aW9uKGNvbnN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYpIGZpbmFsOwotICAgIHZvaWQgZG9B
ZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiwgRnVuY3Rpb248dm9pZChFeGNlcHRpb25P
cjx2b2lkPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBkb0FkZEljZUNhbmRpZGF0ZShSVENJY2VD
YW5kaWRhdGUmLCBBZGRJY2VDYW5kaWRhdGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGRv
U3RvcCgpIGZpbmFsOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+
IGNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBSVENEYXRhQ2hh
bm5lbEluaXQmKSBmaW5hbDsKICAgICB2b2lkIHJlc3RhcnRJY2UoKSBmaW5hbDsKQEAgLTcxLDE0
ICs3MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRTdGF0cyhSVENSdHBTZW5kZXImLCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmKSBmaW5hbDsKICAgICB2b2lkIGdldFN0YXRzKFJUQ1J0cFJlY2Vp
dmVyJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJikgZmluYWw7CiAKLSAgICBSZWZQdHI8UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uPiBsb2NhbERlc2NyaXB0aW9uKCkgY29uc3QgZmluYWw7Ci0gICAgUmVm
UHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gY3VycmVudExvY2FsRGVzY3JpcHRpb24oKSBjb25z
dCBmaW5hbDsKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nTG9jYWxE
ZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwotCi0gICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbj4gcmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKLSAgICBSZWZQdHI8UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uPiBjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsK
LSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nUmVtb3RlRGVzY3JpcHRp
b24oKSBjb25zdCBmaW5hbDsKLQogICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gY2FuVHJpY2tsZUlj
ZUNhbmRpZGF0ZXMoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgZW11bGF0ZVBsYXRmb3JtRXZl
bnQoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2RjZGExNTc3OGU4OWQ2MDZhNjM0
NDQ0M2ViYTgyNGMzMTMzODBjYS4uM2FkMTU3YzkxNzM0NDU0OGNmNGRjOTA1NDljYTUyZmYwNDFi
NGUyYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA5LTA2ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgUlRDUGVlckNvbm5lY3Rpb24gZGVz
Y3JpcHRpb25zIGFzIHBlciBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk5NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgdGhhdCB3ZSB1cGRhdGUgZGVzY3JpcHRpb25zIGF0
IHNwZWNpZmljIHRpbWVzLAorICAgICAgICB3ZSBuZWVkIHRvIHdhaXQgYSBiaXQgdG8gZ2V0IHRo
ZSBkZXNjcmlwdGlvbi4KKworICAgICAgICAqIHdlYnJ0Yy9kYXRhY2hhbm5lbC9tZG5zLWljZS1j
YW5kaWRhdGVzLmh0bWw6CisKIDIwMjEtMDktMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIHdlYnJ0Yy9lcGhlbWVyYWwtY2VydGlmaWNhdGVzLWFuZC1jbmFt
ZXMuaHRtbCBuZWVkcyB0byBjbG9zZSBpdHMgY29ubmVjdGlvbnMgYmV0d2VlbiB0d28gdGVzdHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDE1OWIxZThmYzE3ZjgzNmU4MWVkNmZm
YmE1Y2MwNDIzNmYyOWE2YzQuLjMxMDE1ZGQ2ZmJjMjY0ZGZiNzBmMDdiZGFkZjVjMGI2YWFjMGNi
OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIx
LTA5LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRh
dGUgUlRDUGVlckNvbm5lY3Rpb24gZGVzY3JpcHRpb25zIGFzIHBlciBzcGVjaWZpY2F0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk5NjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRl
cy10aW1pbmcuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1yb2xsYmFjay1l
eHBlY3RlZC50eHQ6CisKIDIwMjEtMDktMDMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBSVENTY3RwVHJhbnNwb3J0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1kZXNjcmlwdGlvbi1hdHRyaWJ1dGVzLXRpbWluZy5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1kZXNjcmlwdGlvbi1hdHRyaWJ1dGVzLXRpbWluZy5odHRw
cy1leHBlY3RlZC50eHQKaW5kZXggZjEzN2JmYjg1ZDYyYzI0NGQ4MGVjNWQzM2RlYTc4ZDJkZTA0
ZjE4MS4uMzZjYTFkZmJmODliMDY5YjBmOWEwODZmMTY0NGQzZTc5YTQ4ODRjYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWRlc2NyaXB0aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBwZW5kaW5nTG9jYWxEZXNj
cmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGltZSBhc3NlcnRfZXF1YWxzOiBwZW5k
aW5nTG9jYWxEZXNjcmlwdGlvbiBpcyBzdGlsbCBudWxsIHdoaWxlIHByb21pc2UgcGVuZGluZyBl
eHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bl0iCi1GQUlMIHBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmln
aHQgdGltZSBhc3NlcnRfZXF1YWxzOiBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gaXMgc3RpbGwg
bnVsbCB3aGlsZSBwcm9taXNlIHBlbmRpbmcgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAi
W29iamVjdCBSVENTZXNzaW9uRGVzY3JpcHRpb25dIgotRkFJTCBjdXJyZW50TG9jYWxEZXNjcmlw
dGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGltZSBhc3NlcnRfZXF1YWxzOiBjdXJyZW50
TG9jYWxEZXNjcmlwdGlvbiBpcyBzdGlsbCBudWxsIHdoaWxlIHByb21pc2UgcGVuZGluZyBleHBl
Y3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbl0i
Ci1GQUlMIGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQg
dGltZSBhc3NlcnRfZXF1YWxzOiBjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVs
bCB3aGlsZSBwcm9taXNlIHBlbmRpbmcgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29i
amVjdCBSVENTZXNzaW9uRGVzY3JpcHRpb25dIgorUEFTUyBwZW5kaW5nTG9jYWxEZXNjcmlwdGlv
biBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGltZQorUEFTUyBwZW5kaW5nUmVtb3RlRGVzY3Jp
cHRpb24gaXMgc3VyZmFjZWQgYXQgdGhlIHJpZ2h0IHRpbWUKK1BBU1MgY3VycmVudExvY2FsRGVz
Y3JpcHRpb24gaXMgc3VyZmFjZWQgYXQgdGhlIHJpZ2h0IHRpbWUKK1BBU1MgY3VycmVudFJlbW90
ZURlc2NyaXB0aW9uIGlzIHN1cmZhY2VkIGF0IHRoZSByaWdodCB0aW1lCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRpb24tcm9sbGJhY2stZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1yb2xsYmFjay1leHBlY3RlZC50eHQKaW5k
ZXggMzYzNGM2MzEzNmVmZjgyYWQ0ZGMwZWI5ODliNTEyNzk2MTMzMDNhYS4uMzNjMjM2M2JiOWIw
MmY2OWUwMjgwMTE0ZWI2NWViNTc2YjQ3ODY2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0
TG9jYWxEZXNjcmlwdGlvbi1yb2xsYmFjay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
c2V0TG9jYWxEZXNjcmlwdGlvbi1yb2xsYmFjay1leHBlY3RlZC50eHQKQEAgLTMsNSArMyw1IEBA
IFBBU1Mgc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFjaykgZnJvbSBoYXZlLWxvY2FsLW9mZmVy
IHN0YXRlIHNob3VsZCByZXNldCBiYWNrCiBQQVNTIHNldExvY2FsRGVzY3JpcHRpb24ocm9sbGJh
Y2spIGZyb20gc3RhYmxlIHN0YXRlIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJv
cgogUEFTUyBzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBhZnRlciBzZXR0aW5nIGFuc3dl
ciBkZXNjcmlwdGlvbiBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZFN0YXRlRXJyb3IKIFBBU1Mg
c2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFjaykgc2hvdWxkIGlnbm9yZSBpbnZhbGlkIHNkcCBj
b250ZW50IGFuZCBzdWNjZWVkCi1GQUlMIHNldExvY2FsRGVzY3JpcHRpb24ocm9sbGJhY2spIHNo
b3VsZCB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgd2l0aCBhIHF1ZXVlZCB0YXNzaywgaW4gdGhlIHJp
Z2h0IG9yZGVyIGFzc2VydF9ub3RfZXF1YWxzOiBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBzaG91
bGQgbm90IGJlIHNldCBzeW5jaHJvbm91c2x5IGFmdGVyIGEgY2FsbCB0byBzTEQgZ290IGRpc2Fs
bG93ZWQgdmFsdWUgbnVsbAorRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBzaG91
bGQgdXBkYXRlIGludGVybmFsIHN0YXRlIHdpdGggYSBxdWV1ZWQgdGFzc2ssIGluIHRoZSByaWdo
dCBvcmRlciBhc3NlcnRfZXF1YWxzOiBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBzaG91bGQgYmUg
dXBkYXRlZCBiZWZvcmUgdGhlIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGV2ZW50IGV4cGVjdGVkIG51
bGwgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uXSIKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL21kbnMtaWNlLWNhbmRpZGF0
ZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9tZG5zLWljZS1jYW5kaWRh
dGVzLmh0bWwKaW5kZXggM2FiODM5MDUxOWQxZTI5Yzg1ZTlmODI0NmE5MWIwNDg0MmU0MmZlYi4u
NjU4ZjQ4ZDYzN2JlMTEyYTliNThjOTAwMGY4MDExNGM4YWFmZGIzNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL21kbnMtaWNlLWNhbmRpZGF0ZXMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvbWRucy1pY2UtY2FuZGlkYXRlcy5odG1s
CkBAIC0xNjAsMTAgKzE2MCwxMyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKIAog
ICAgIGNvbnN0IGNoYW5uZWwyID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3NlbmREYXRhQ2hhbm5l
bDInKTsKICAgICBjb25zdCBvZmZlcjIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOwotICAgIGNv
bnN0IGRlc2NyaXB0aW9uID0gcGMubG9jYWxEZXNjcmlwdGlvbjsKIAogICAgIC8vIE1ha2Ugc3Vy
ZSB3ZSBjYW4gYXBwbHkgdGhlIGZpbHRlcmVkIGRlc2NyaXB0aW9uLgotICAgIGF3YWl0IHBjLnNl
dExvY2FsRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgIGF3YWl0IHBjLnNldExvY2FsRGVz
Y3JpcHRpb24ocGMubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgICAvLyBSZWFwcGx5IGRlc2NyaXB0
aW9uIHdoaWNoIHNob3VsZCBoYXZlIGNhbmRpZGF0ZXMuCisgICAgYXdhaXQgcGMuc2V0TG9jYWxE
ZXNjcmlwdGlvbihvZmZlcjIpOworICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gcGMubG9jYWxEZXNj
cmlwdGlvbjsKIAogICAgIGNvbnN0IGxpbmVzID0gZGVzY3JpcHRpb24uc2RwLnNwbGl0KCdcclxu
JykuZmlsdGVyKGxpbmUgPT4gewogICAgICAgICByZXR1cm4gbGluZS5pbmRleE9mKCdhPWNhbmRp
ZGF0ZScpID09PSAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437733</attachid>
            <date>2021-09-09 04:26:57 -0700</date>
            <delta_ts>2021-09-09 09:08:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229963-20210909132655.patch</filename>
            <type>text/plain</type>
            <size>38117</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2JiYmQ0MTcwODYxMjI1
MTc1ZjVkMWU3YmJjNjA5MDg1Y2FhYjk1Mi4uNmRmZDVjZGJhMmYwYTcxMjNiODdkMTk0MDY2NWI2
NmMwM2M1NWY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTA5LTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgUlRDUGVlckNv
bm5lY3Rpb24gZGVzY3JpcHRpb25zIGFzIHBlciBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk5NjMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHBlZXIgY29ubmVjdGlvbiBoYXMg
dHdvIHNldHMgb2YgZGVzY3JpcHRpb25zOiBtYWluIHRocmVhZCBkZXNjcmlwdGlvbnMgd2hpY2gg
YXJlIGV4cG9zZWQgdG8gSlMgYW5kIHNpZ25hbGluZyB0aHJlYWQgZGVzY3JpcHRpb25zCisgICAg
ICAgIHdoaWNoIGFyZSB1c2VkL21vZGlmaWVkIGludGVybmFsbHkgYnkgdGhlIGJhY2tlbmQuCisg
ICAgICAgIFdlYlJUQyBzcGVjIGRlc2NyaWJlcyB3aGVuIHNpZ25hbGluZyB0aHJlYWQgZGVzY3Jp
cHRpb25zIHNob3VsZCBiZSB1c2VkIHRvIHNldCBtYWluIHRocmVhZCBkZXNjcmlwdGlvbnMuCisg
ICAgICAgIFRoaXMgc2hvdWxkIGJlIGRvbmUgYXQgdGhlIGVuZCBvZiBzZXR0aW5nIHJlbW90ZS9s
b2NhbCBkZXNjcmlwdGlvbnMsIGFzIHdlbGwgYXMgd2hlbiBhZGRpbmcgb3Igc3VyZmFjaW5nIGFu
IElDRSBjYW5kaWRhdGUuCisgICAgICAgIFdlIG1ha2Ugc3VyZSB0byBncmFiIHNpZ25hbGluZyB0
aHJlYWQgZGVzY3JpcHRpb25zIGF0IHRob3NlIG1vbWVudHMsIHRoZW4gaG9wIHRvIG1haW4gdGhy
ZWFkIHRvIHNldCB0aGUgbWFpbiB0aHJlYWQgZGVzY3JpcHRpb25zLgorCisgICAgICAgIEluIGNh
c2Ugb2YgY2xvc2VkIGNvbm5lY3Rpb24sIHdlIHN0b3AgZWFybHkgYXMgd2UgZG8gbm90IG5lZWQg
dG8gc3VyZmFjZSBuZXcgZGVzY3JpcHRpb25zIChhcyB3ZWxsIGFzIHJlc29sdmUgcHJvbWlzZXMv
ZmlyZSBldmVudHMpLgorCisgICAgICAgIENvdmVyZWQgYnkgcmViYXNlZCB0ZXN0cy4KKworICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0TG9jYWxEZXNjcmlwdGlv
blN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNl
dFJlbW90ZURlc2NyaXB0aW9uU3VjY2VlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6YWRkSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJD
b25uZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRl
RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnVwZGF0
ZURlc2NyaXB0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ01lZGlhRW5kcG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZnJvbVNlc3Npb25EZXNj
cmlwdGlvblR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVzY3JpcHRpb25zRnJvbVBlZXJDb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmFkZElj
ZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpP
bkljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENNZWRpYUVuZHBvaW50
OjpzZXRMb2NhbFNlc3Npb25EZXNjcmlwdGlvblN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzZXRSZW1vdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNj
ZWVkZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q01lZGlhRW5kcG9pbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0FkZEljZUNhbmRpZGF0ZSk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmg6CisKIDIwMjEtMDktMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFVzZSBSVENFcnJvckV2ZW50IGZvciBkYXRhIGNoYW5uZWwgZXJyb3Ig
ZXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCBiMDU2M2UzNGI0NDMzMGFmNGE4ZGQy
MWY5ZmJhMTU0ZTlhYThlZGU4Li4xNzA5Njk2ZTRhZjNiNTYwYmZjNDYwMzc0MGNhMGI4MzA4ODE1
MjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC0xNzUsMTYgKzE3NSwxOCBAQCB2b2lk
IFBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0TG9jYWxEZXNjcmlwdGlvbihjb25zdCBSVENTZXNz
aW9uRGVzY3JpcHRpb24qIHNlcwogICAgIGRvU2V0TG9jYWxEZXNjcmlwdGlvbihzZXNzaW9uRGVz
Y3JpcHRpb24pOwogfQogCi12b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0TG9jYWxEZXNj
cmlwdGlvblN1Y2NlZWRlZChzdGQ6OnVuaXF1ZV9wdHI8UlRDU2N0cFRyYW5zcG9ydEJhY2tlbmQ+
JiYgc2N0cEJhY2tlbmQpCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0TG9jYWxEZXNj
cmlwdGlvblN1Y2NlZWRlZChzdGQ6Om9wdGlvbmFsPERlc2NyaXB0aW9uU3RhdGVzPiYmIGRlc2Ny
aXB0aW9uU3RhdGVzLCBzdGQ6OnVuaXF1ZV9wdHI8UlRDU2N0cFRyYW5zcG9ydEJhY2tlbmQ+JiYg
c2N0cEJhY2tlbmQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIpOwogCiAgICAgQVNTRVJUKG1fc2V0RGVzY3JpcHRpb25Qcm9taXNl
KTsKLSAgICBtX3BlZXJDb25uZWN0aW9uLmRvVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUo
bV9zZXREZXNjcmlwdGlvblByb21pc2UpLCBzY3RwQmFja2VuZCA9IFdURk1vdmUoc2N0cEJhY2tl
bmQpXSgpIG11dGFibGUgeworICAgIG1fcGVlckNvbm5lY3Rpb24uZG9UYXNrKFt0aGlzLCBwcm9t
aXNlID0gV1RGTW92ZShtX3NldERlc2NyaXB0aW9uUHJvbWlzZSksIGRlc2NyaXB0aW9uU3RhdGVz
ID0gV1RGTW92ZShkZXNjcmlwdGlvblN0YXRlcyksIHNjdHBCYWNrZW5kID0gV1RGTW92ZShzY3Rw
QmFja2VuZCldKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChtX3BlZXJDb25uZWN0aW9uLmlzQ2xv
c2VkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uU3Rh
dGVzKQorICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbi51cGRhdGVEZXNjcmlwdGlvbnMoV1RG
TW92ZSgqZGVzY3JpcHRpb25TdGF0ZXMpKTsKICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbi51cGRh
dGVUcmFuc2NlaXZlcnNBZnRlclN1Y2Nlc3NmdWxMb2NhbERlc2NyaXB0aW9uKCk7CiAgICAgICAg
IG1fcGVlckNvbm5lY3Rpb24udXBkYXRlU2N0cEJhY2tlbmQoV1RGTW92ZShzY3RwQmFja2VuZCkp
OwogICAgICAgICBwcm9taXNlLT5yZXNvbHZlKCk7CkBAIC0yMTMsNyArMjE1LDcgQEAgdm9pZCBQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnNldFJlbW90ZURlc2NyaXB0aW9uKGNvbnN0IFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbiYgc2UKICAgICBkb1NldFJlbW90ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNj
cmlwdGlvbik7CiB9CiAKLXZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRSZW1vdGVEZXNj
cmlwdGlvblN1Y2NlZWRlZChzdGQ6OnVuaXF1ZV9wdHI8UlRDU2N0cFRyYW5zcG9ydEJhY2tlbmQ+
JiYgc2N0cEJhY2tlbmQpCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6c2V0UmVtb3RlRGVz
Y3JpcHRpb25TdWNjZWVkZWQoc3RkOjpvcHRpb25hbDxEZXNjcmlwdGlvblN0YXRlcz4mJiBkZXNj
cmlwdGlvblN0YXRlcywgc3RkOjp1bmlxdWVfcHRyPFJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kPiYm
IHNjdHBCYWNrZW5kKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQUxXQVlT
X0xPRyhMT0dJREVOVElGSUVSLCAiU2V0IHJlbW90ZSBkZXNjcmlwdGlvbiBzdWNjZWVkZWQiKTsK
QEAgLTIzNCwxMCArMjM2LDEyIEBAIHZvaWQgUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpzZXRSZW1v
dGVEZXNjcmlwdGlvblN1Y2NlZWRlZChzdGQ6OnVuaXF1ZV9wdHI8UlRDU2N0CiAgICAgICAgIHRy
YWNrLnNvdXJjZSgpLnNldE11dGVkKGZhbHNlKTsKICAgICB9CiAKLSAgICBtX3BlZXJDb25uZWN0
aW9uLmRvVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHNjdHBCYWNrZW5k
ID0gV1RGTW92ZShzY3RwQmFja2VuZCldKCkgbXV0YWJsZSB7CisgICAgbV9wZWVyQ29ubmVjdGlv
bi5kb1Rhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBkZXNjcmlwdGlvblN0
YXRlcyA9IFdURk1vdmUoZGVzY3JpcHRpb25TdGF0ZXMpLCBzY3RwQmFja2VuZCA9IFdURk1vdmUo
c2N0cEJhY2tlbmQpXSgpIG11dGFibGUgewogICAgICAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5p
c0Nsb3NlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGlmIChkZXNjcmlwdGlv
blN0YXRlcykKKyAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb24udXBkYXRlRGVzY3JpcHRpb25z
KFdURk1vdmUoKmRlc2NyaXB0aW9uU3RhdGVzKSk7CiAgICAgICAgIG1fcGVlckNvbm5lY3Rpb24u
dXBkYXRlVHJhbnNjZWl2ZXJzQWZ0ZXJTdWNjZXNzZnVsUmVtb3RlRGVzY3JpcHRpb24oKTsKICAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbi51cGRhdGVTY3RwQmFja2VuZChXVEZNb3ZlKHNjdHBCYWNr
ZW5kKSk7CiAgICAgICAgIHByb21pc2UtPnJlc29sdmUoKTsKQEAgLTMxNCw4ICszMTgsMTYgQEAg
dm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRh
dGUqIGljZUNhbmRpZGF0ZSwgRE9NUHIKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCB3ZWFrVGhpcy0+bV9wZWVyQ29ubmVjdGlvbi5pc0Ns
b3NlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihX
ZWJSVEMsICJBZGRpbmcgaWNlIGNhbmRpZGF0ZSBmaW5pc2hlZCwgc3VjY2Vzcz0lZCIsIHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSk7Ci0gICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0
KSk7CisKKyAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViUlRDLCAiQWRkaW5nIGljZSBjYW5kaWRhdGUgZmFpbGVkICVk
IiwgcmVzdWx0LmV4Y2VwdGlvbigpLmNvZGUoKSk7CisgICAgICAgICAgICBwcm9taXNlLnJlamVj
dChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChhdXRvIGRlc2NyaXB0aW9ucyA9IHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKSkKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlZXJDb25uZWN0aW9uLnVwZGF0
ZURlc2NyaXB0aW9ucyhXVEZNb3ZlKCpkZXNjcmlwdGlvbnMpKTsKKyAgICAgICAgcHJvbWlzZS5y
ZXNvbHZlKCk7CiAgICAgfSk7CiB9CiAKQEAgLTM0OSwxMiArMzYxLDE1IEBAIHZvaWQgUGVlckNv
bm5lY3Rpb25CYWNrZW5kOjp2YWxpZGF0ZVNEUChjb25zdCBTdHJpbmcmIHNkcCkgY29uc3QKICNl
bmRpZgogfQogCi12b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2FuZGlkYXRlKFN0
cmluZyYmIHNkcCwgU3RyaW5nJiYgbWlkLCB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUluZGV4LCBT
dHJpbmcmJiBzZXJ2ZXJVUkwpCit2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6bmV3SUNFQ2Fu
ZGlkYXRlKFN0cmluZyYmIHNkcCwgU3RyaW5nJiYgbWlkLCB1bnNpZ25lZCBzaG9ydCBzZHBNTGlu
ZUluZGV4LCBTdHJpbmcmJiBzZXJ2ZXJVUkwsIHN0ZDo6b3B0aW9uYWw8RGVzY3JpcHRpb25TdGF0
ZXM+JiYgZGVzY3JpcHRpb25zKQogewotICAgIG1fcGVlckNvbm5lY3Rpb24uZG9UYXNrKFtsb2dT
aXRlSWRlbnRpZmllciA9IExPR0lERU5USUZJRVIsIHRoaXMsIHNkcCA9IFdURk1vdmUoc2RwKSwg
bWlkID0gV1RGTW92ZShtaWQpLCBzZHBNTGluZUluZGV4LCBzZXJ2ZXJVUkwgPSBXVEZNb3ZlKHNl
cnZlclVSTCldKCkgbXV0YWJsZSB7CisgICAgbV9wZWVyQ29ubmVjdGlvbi5kb1Rhc2soW2xvZ1Np
dGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUiwgdGhpcywgc2RwID0gV1RGTW92ZShzZHApLCBt
aWQgPSBXVEZNb3ZlKG1pZCksIHNkcE1MaW5lSW5kZXgsIHNlcnZlclVSTCA9IFdURk1vdmUoc2Vy
dmVyVVJMKSwgZGVzY3JpcHRpb25zID0gV1RGTW92ZShkZXNjcmlwdGlvbnMpXSgpIG11dGFibGUg
ewogICAgICAgICBpZiAobV9wZWVyQ29ubmVjdGlvbi5pc0Nsb3NlZCgpKQogICAgICAgICAgICAg
cmV0dXJuOwogCisgICAgICAgIGlmIChkZXNjcmlwdGlvbnMpCisgICAgICAgICAgICBtX3BlZXJD
b25uZWN0aW9uLnVwZGF0ZURlc2NyaXB0aW9ucyhXVEZNb3ZlKCpkZXNjcmlwdGlvbnMpKTsKKwog
ICAgICAgICBVTlVTRURfUEFSQU0obG9nU2l0ZUlkZW50aWZpZXIpOwogICAgICAgICBBTFdBWVNf
TE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiR2F0aGVyZWQgaWNlIGNhbmRpZGF0ZToiLCBzZHApOwog
ICAgICAgICBtX2ZpbmlzaGVkR2F0aGVyaW5nQ2FuZGlkYXRlcyA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmgKaW5kZXggNmUyZmJmOWRjNjE2MjYyYTBkOWEyMWRjYmZiMDlhYjZkNWZmYWVlMi4u
ODljN2NlNGQ1NDgzNDdhOTdlODI3MTc1NDkyZDhkMzdjZTI1MzVkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5oCkBAIC0xMDQsMTQgKzEwNCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBj
bG9zZSgpID0gMDsKIAotICAgIHZpcnR1YWwgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4g
bG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxSVENTZXNz
aW9uRGVzY3JpcHRpb24+IGN1cnJlbnRMb2NhbERlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwotICAg
IHZpcnR1YWwgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcGVuZGluZ0xvY2FsRGVzY3Jp
cHRpb24oKSBjb25zdCA9IDA7Ci0KLSAgICB2aXJ0dWFsIFJlZlB0cjxSVENTZXNzaW9uRGVzY3Jp
cHRpb24+IHJlbW90ZURlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRy
PFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gY3VycmVudFJlbW90ZURlc2NyaXB0aW9uKCkgY29uc3Qg
PSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcGVuZGluZ1Jl
bW90ZURlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwotCiAgICAgdmlydHVhbCB2b2lkIHJlc3RhcnRJ
Y2UoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNldENvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2lu
dENvbmZpZ3VyYXRpb24mJikgPSAwOwogCkBAIC0xMzAsNyArMTIyLDE4IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlv
bikgPSAwOwogCi0gICAgdm9pZCBuZXdJQ0VDYW5kaWRhdGUoU3RyaW5nJiYgc2RwLCBTdHJpbmcm
JiBtaWQsIHVuc2lnbmVkIHNob3J0IHNkcE1MaW5lSW5kZXgsIFN0cmluZyYmIHNlcnZlclVSTCk7
CisgICAgc3RydWN0IERlc2NyaXB0aW9uU3RhdGVzIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxS
VENTZHBUeXBlPiBjdXJyZW50TG9jYWxEZXNjcmlwdGlvblNkcFR5cGU7CisgICAgICAgIFN0cmlu
ZyBjdXJyZW50TG9jYWxEZXNjcmlwdGlvblNkcDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxSVENT
ZHBUeXBlPiBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvblNkcFR5cGU7CisgICAgICAgIFN0cmluZyBw
ZW5kaW5nTG9jYWxEZXNjcmlwdGlvblNkcDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxSVENTZHBU
eXBlPiBjdXJyZW50UmVtb3RlRGVzY3JpcHRpb25TZHBUeXBlOworICAgICAgICBTdHJpbmcgY3Vy
cmVudFJlbW90ZURlc2NyaXB0aW9uU2RwOworICAgICAgICBzdGQ6Om9wdGlvbmFsPFJUQ1NkcFR5
cGU+IHBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvblNkcFR5cGU7CisgICAgICAgIFN0cmluZyBwZW5k
aW5nUmVtb3RlRGVzY3JpcHRpb25TZHA7CisgICAgfTsKKworICAgIHZvaWQgbmV3SUNFQ2FuZGlk
YXRlKFN0cmluZyYmIHNkcCwgU3RyaW5nJiYgbWlkLCB1bnNpZ25lZCBzaG9ydCBzZHBNTGluZUlu
ZGV4LCBTdHJpbmcmJiBzZXJ2ZXJVUkwsIHN0ZDo6b3B0aW9uYWw8RGVzY3JpcHRpb25TdGF0ZXM+
JiYpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiAg
ICAgdm9pZCBlbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKIApAQCAtMTg3LDYgKzE5MCw5
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlcygpIGNvbnN0
IHsgcmV0dXJuIG1fc2hvdWxkRmlsdGVySUNFQ2FuZGlkYXRlczsgfTsKIAorICAgIHVzaW5nIEFk
ZEljZUNhbmRpZGF0ZUNhbGxiYWNrRnVuY3Rpb24gPSB2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6b3B0
aW9uYWw8UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpEZXNjcmlwdGlvblN0YXRlcz4+JiYpOworICAg
IHVzaW5nIEFkZEljZUNhbmRpZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248QWRkSWNlQ2FuZGlkYXRl
Q2FsbGJhY2tGdW5jdGlvbj47CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGZpcmVJQ0VDYW5kaWRh
dGVFdmVudChSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiYmLCBTdHJpbmcmJiB1cmwpOwogICAgIHZv
aWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoKTsKQEAgLTE5OSwxNSArMjA1LDEyIEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIGNyZWF0ZUFuc3dlclN1Y2NlZWRlZChTdHJpbmcmJik7CiAgICAgdm9p
ZCBjcmVhdGVBbnN3ZXJGYWlsZWQoRXhjZXB0aW9uJiYpOwogCi0gICAgdm9pZCBzZXRMb2NhbERl
c2NyaXB0aW9uU3VjY2VlZGVkKHN0ZDo6dW5pcXVlX3B0cjxSVENTY3RwVHJhbnNwb3J0QmFja2Vu
ZD4mJik7CisgICAgdm9pZCBzZXRMb2NhbERlc2NyaXB0aW9uU3VjY2VlZGVkKHN0ZDo6b3B0aW9u
YWw8RGVzY3JpcHRpb25TdGF0ZXM+JiYsIHN0ZDo6dW5pcXVlX3B0cjxSVENTY3RwVHJhbnNwb3J0
QmFja2VuZD4mJik7CiAgICAgdm9pZCBzZXRMb2NhbERlc2NyaXB0aW9uRmFpbGVkKEV4Y2VwdGlv
biYmKTsKIAotICAgIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb25TdWNjZWVkZWQoc3RkOjp1bmlx
dWVfcHRyPFJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kPiYmKTsKKyAgICB2b2lkIHNldFJlbW90ZURl
c2NyaXB0aW9uU3VjY2VlZGVkKHN0ZDo6b3B0aW9uYWw8RGVzY3JpcHRpb25TdGF0ZXM+JiYsIHN0
ZDo6dW5pcXVlX3B0cjxSVENTY3RwVHJhbnNwb3J0QmFja2VuZD4mJik7CiAgICAgdm9pZCBzZXRS
ZW1vdGVEZXNjcmlwdGlvbkZhaWxlZChFeGNlcHRpb24mJik7CiAKLSAgICB2b2lkIGFkZEljZUNh
bmRpZGF0ZVN1Y2NlZWRlZCgpOwotICAgIHZvaWQgYWRkSWNlQ2FuZGlkYXRlRmFpbGVkKEV4Y2Vw
dGlvbiYmKTsKLQogICAgIHZvaWQgdmFsaWRhdGVTRFAoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAK
ICAgICBzdHJ1Y3QgUGVuZGluZ1RyYWNrRXZlbnQgewpAQCAtMjIzLDcgKzIyNiw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGRvQ3JlYXRlQW5zd2VyKFJUQ0Fuc3dlck9wdGlvbnMmJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkb1NldExvY2FsRGVzY3JpcHRpb24oY29uc3QgUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkb1NldFJlbW90ZURlc2Ny
aXB0aW9uKGNvbnN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgZG9BZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiwgRnVuY3Rpb248dm9pZChFeGNl
cHRpb25Pcjx2b2lkPiYmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkb0FkZEljZUNhbmRp
ZGF0ZShSVENJY2VDYW5kaWRhdGUmLCBBZGRJY2VDYW5kaWRhdGVDYWxsYmFjayYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGVuZE9mSWNlQ2FuZGlkYXRlcyhET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJik7CiAgICAgdmlydHVhbCB2b2lkIGRvU3RvcCgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApp
bmRleCA3NTRjZDIzMTE3YThmNzVlN2JkZGMxNzE3ZDkyNGE3NmMxNzM2MjlkLi42OGMxOGE5Nzc4
ZGM5YjUzNTRkNTM2Mzg0ZTVjMGIyMDJiYWZjZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMjQ3
LDIxICsyNDcsNiBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9u
KHN0ZDo6b3B0aW9uYWw8RGVzY3JpcHRpb24+JiYgbG9jYWxEZQogICAgIH0pOwogfQogCi1SZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6bG9jYWxEZXNjcmlw
dGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYmFja2VuZC0+bG9jYWxEZXNjcmlwdGlvbigp
OwotfQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6
Y3VycmVudExvY2FsRGVzY3JpcHRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2JhY2tlbmQt
PmN1cnJlbnRMb2NhbERlc2NyaXB0aW9uKCk7Ci19Ci0KLVJlZlB0cjxSVENTZXNzaW9uRGVzY3Jp
cHRpb24+IFJUQ1BlZXJDb25uZWN0aW9uOjpwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fYmFja2VuZC0+cGVuZGluZ0xvY2FsRGVzY3JpcHRpb24oKTsKLX0K
LQogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6c2V0UmVtb3RlRGVzY3JpcHRpb24oRGVzY3JpcHRp
b24mJiByZW1vdGVEZXNjcmlwdGlvbiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQog
ewogICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IGRlc2NyaXB0aW9uOwpAQCAtMjg2
LDIxICsyNzEsNiBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRSZW1vdGVEZXNjcmlwdGlv
bihEZXNjcmlwdGlvbiYmIHJlbW90ZURlc2NyaXB0aW9uLCBSZQogICAgIH0pOwogfQogCi1SZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6cmVtb3RlRGVzY3Jp
cHRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2JhY2tlbmQtPnJlbW90ZURlc2NyaXB0aW9u
KCk7Ci19Ci0KLVJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IFJUQ1BlZXJDb25uZWN0aW9u
OjpjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2JhY2tl
bmQtPmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpOwotfQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uPiBSVENQZWVyQ29ubmVjdGlvbjo6cGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9iYWNrZW5kLT5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24o
KTsKLX0KLQogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKENhbmRpZGF0
ZSYmIHJ0Y0NhbmRpZGF0ZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAg
IHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiBleGNlcHRpb247CkBAIC05MzQsNiArOTA0LDI1IEBA
IFJlZlB0cjxSVENEdGxzVHJhbnNwb3J0PiBSVENQZWVyQ29ubmVjdGlvbjo6Z2V0T3JDcmVhdGVE
dGxzVHJhbnNwb3J0KHN0ZDo6dW5pcXVlCiAgICAgcmV0dXJuIG1fZHRsc1RyYW5zcG9ydHNbaW5k
ZXhdLmNvcHlSZWYoKTsKIH0KIAorc3RhdGljIHZvaWQgdXBkYXRlRGVzY3JpcHRpb24oUmVmUHRy
PFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4mIGRlc2NyaXB0aW9uLCBzdGQ6Om9wdGlvbmFsPFJUQ1Nk
cFR5cGU+IHR5cGUsIFN0cmluZyYmIHNkcCkKK3sKKyAgICBpZiAoZGVzY3JpcHRpb24gJiYgdHlw
ZSAmJiBkZXNjcmlwdGlvbi0+c2RwKCkgPT0gc2RwICYmIGRlc2NyaXB0aW9uLT50eXBlKCkgPT0g
KnR5cGUpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIXR5cGUgfHwgc2RwLmlzRW1wdHkoKSkg
eworICAgICAgICBkZXNjcmlwdGlvbiA9IG51bGxwdHI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgZGVzY3JpcHRpb24gPSBSVENTZXNzaW9uRGVzY3JpcHRpb246OmNyZWF0ZSgqdHlwZSwg
V1RGTW92ZShzZHApKTsKK30KKwordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6dXBkYXRlRGVzY3Jp
cHRpb25zKFBlZXJDb25uZWN0aW9uQmFja2VuZDo6RGVzY3JpcHRpb25TdGF0ZXMmJiBzdGF0ZXMp
Cit7CisgICAgdXBkYXRlRGVzY3JpcHRpb24obV9jdXJyZW50TG9jYWxEZXNjcmlwdGlvbiwgc3Rh
dGVzLmN1cnJlbnRMb2NhbERlc2NyaXB0aW9uU2RwVHlwZSwgV1RGTW92ZShzdGF0ZXMuY3VycmVu
dExvY2FsRGVzY3JpcHRpb25TZHApKTsKKyAgICB1cGRhdGVEZXNjcmlwdGlvbihtX3BlbmRpbmdM
b2NhbERlc2NyaXB0aW9uLCBzdGF0ZXMucGVuZGluZ0xvY2FsRGVzY3JpcHRpb25TZHBUeXBlLCBX
VEZNb3ZlKHN0YXRlcy5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvblNkcCkpOworICAgIHVwZGF0ZURl
c2NyaXB0aW9uKG1fY3VycmVudFJlbW90ZURlc2NyaXB0aW9uLCBzdGF0ZXMuY3VycmVudFJlbW90
ZURlc2NyaXB0aW9uU2RwVHlwZSwgV1RGTW92ZShzdGF0ZXMuY3VycmVudFJlbW90ZURlc2NyaXB0
aW9uU2RwKSk7CisgICAgdXBkYXRlRGVzY3JpcHRpb24obV9wZW5kaW5nUmVtb3RlRGVzY3JpcHRp
b24sIHN0YXRlcy5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb25TZHBUeXBlLCBXVEZNb3ZlKHN0YXRl
cy5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb25TZHApKTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVj
dGlvbjo6dXBkYXRlVHJhbnNjZWl2ZXJUcmFuc3BvcnRzKCkKIHsKICAgICBmb3IgKGF1dG8mIHRy
YW5zY2VpdmVyIDogbV90cmFuc2NlaXZlclNldC5saXN0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCBk
NTg5Y2NmZWM0OTk2MWM5MDk0ZTA1ODZiYmQ1YWFiYzY1ODdjMTZkLi42MDZhNDkxYzAzMGZhNWFh
YTYxNzBlMDA5ZjA2ZDVkN2E3NmU4MDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC0xMTIsMTQgKzExMiwx
NCBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBEZXNjcmlwdGlvbiA9IFZhcmlhbnQ8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uSW5pdCwgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4+OwogICAgIHZv
aWQgc2V0TG9jYWxEZXNjcmlwdGlvbihzdGQ6Om9wdGlvbmFsPERlc2NyaXB0aW9uPiYmLCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmKTsKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBs
b2NhbERlc2NyaXB0aW9uKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bj4gY3VycmVudExvY2FsRGVzY3JpcHRpb24oKSBjb25zdDsKLSAgICBSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uPiBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0OworICAgIFJlZlB0
cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IGxvY2FsRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVy
biBtX3BlbmRpbmdMb2NhbERlc2NyaXB0aW9uID8gbV9wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbi5n
ZXQoKSA6IG1fY3VycmVudExvY2FsRGVzY3JpcHRpb24uZ2V0KCk7IH0KKyAgICBSZWZQdHI8UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uPiBjdXJyZW50TG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fY3VycmVudExvY2FsRGVzY3JpcHRpb24uZ2V0KCk7IH0KKyAgICBSZWZQdHI8UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24uZ2V0KCk7IH0KIAogICAgIHZvaWQgc2V0UmVtb3Rl
RGVzY3JpcHRpb24oRGVzY3JpcHRpb24mJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Ci0gICAg
UmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gcmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdDsK
LSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBjdXJyZW50UmVtb3RlRGVzY3JpcHRp
b24oKSBjb25zdDsKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nUmVt
b3RlRGVzY3JpcHRpb24oKSBjb25zdDsKKyAgICBSVENTZXNzaW9uRGVzY3JpcHRpb24qIHJlbW90
ZURlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24g
PyBtX3BlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbi5nZXQoKSA6IG1fY3VycmVudFJlbW90ZURlc2Ny
aXB0aW9uLmdldCgpOyB9CisgICAgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKiBjdXJyZW50UmVtb3Rl
RGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbi5n
ZXQoKTsgfQorICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiogcGVuZGluZ1JlbW90ZURlc2NyaXB0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24uZ2V0KCk7IH0K
IAogICAgIHVzaW5nIENhbmRpZGF0ZSA9IHN0ZDo6b3B0aW9uYWw8VmFyaWFudDxSVENJY2VDYW5k
aWRhdGVJbml0LCBSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPj4+OwogICAgIHZvaWQgYWRkSWNlQ2Fu
ZGlkYXRlKENhbmRpZGF0ZSYmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKQEAgLTE4Nyw2ICsx
ODcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRvVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOwog
CisgICAgdm9pZCB1cGRhdGVEZXNjcmlwdGlvbnMoUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpEZXNj
cmlwdGlvblN0YXRlcyYmKTsKICAgICB2b2lkIHVwZGF0ZVRyYW5zY2VpdmVyc0FmdGVyU3VjY2Vz
c2Z1bExvY2FsRGVzY3JpcHRpb24oKTsKICAgICB2b2lkIHVwZGF0ZVRyYW5zY2VpdmVyc0FmdGVy
U3VjY2Vzc2Z1bFJlbW90ZURlc2NyaXB0aW9uKCk7CiAgICAgdm9pZCB1cGRhdGVTY3RwQmFja2Vu
ZChzdGQ6OnVuaXF1ZV9wdHI8UlRDU2N0cFRyYW5zcG9ydEJhY2tlbmQ+JiYpOwpAQCAtMjcxLDYg
KzI3MiwxMSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZWY8UlRDRHRsc1RyYW5zcG9ydD4+IG1f
ZHRsc1RyYW5zcG9ydHM7CiAgICAgVmVjdG9yPFJlZjxSVENJY2VUcmFuc3BvcnQ+PiBtX2ljZVRy
YW5zcG9ydHM7CiAgICAgUmVmUHRyPFJUQ1NjdHBUcmFuc3BvcnQ+IG1fc2N0cFRyYW5zcG9ydDsK
KworICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IG1fY3VycmVudExvY2FsRGVzY3Jp
cHRpb247CisgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gbV9wZW5kaW5nTG9jYWxE
ZXNjcmlwdGlvbjsKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBtX2N1cnJlbnRS
ZW1vdGVEZXNjcmlwdGlvbjsKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBtX3Bl
bmRpbmdSZW1vdGVEZXNjcmlwdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKaW5kZXggMDg0ODUxOTNi
YWNhMGM2YmVjNmJlZTQwNTc2OWE1NzM5YmU1Y2M4NS4uNjFiYWEzMWYxMGQ3MjU0NmQ5ZGMyYTMw
NDMxYzZhNmM1YTk0YTc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRw
b2ludC5jcHAKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlIDx3ZWJydGMvcGMvcGVlcl9jb25u
ZWN0aW9uX2ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMvc3lzdGVtX3dyYXBwZXJzL2luY2x1
ZGUvZmllbGRfdHJpYWwuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUg
PHd0Zi9TaGFyZWRUYXNrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTQzLDU5ICsx
NDQsNiBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHNlc3Npb25EZXNjcmlwdGlvblR5cGUo
UlRDU2RwVHlwZSBzZHBUeXBlKQogICAgIHJldHVybiAiIjsKIH0KIAotc3RhdGljIGlubGluZSBS
VENTZHBUeXBlIGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKGNvbnN0IHdlYnJ0Yzo6U2Vzc2lv
bkRlc2NyaXB0aW9uSW50ZXJmYWNlJiBkZXNjcmlwdGlvbikKLXsKLSAgICBhdXRvIHR5cGUgPSBk
ZXNjcmlwdGlvbi50eXBlKCk7Ci0gICAgaWYgKHR5cGUgPT0gd2VicnRjOjpTZXNzaW9uRGVzY3Jp
cHRpb25JbnRlcmZhY2U6OmtPZmZlcikKLSAgICAgICAgcmV0dXJuIFJUQ1NkcFR5cGU6Ok9mZmVy
OwotICAgIGlmICh0eXBlID09IHdlYnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlOjpr
QW5zd2VyKQotICAgICAgICByZXR1cm4gUlRDU2RwVHlwZTo6QW5zd2VyOwotICAgIEFTU0VSVCh0
eXBlID09IHdlYnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlOjprUHJBbnN3ZXIpOwot
ICAgIHJldHVybiBSVENTZHBUeXBlOjpQcmFuc3dlcjsKLX0KLQotc3RhdGljIGlubGluZSBSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uKGNvbnN0IHdl
YnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlKiBkZXNjcmlwdGlvbikKLXsKLSAgICBp
ZiAoIWRlc2NyaXB0aW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHN0ZDo6c3Ry
aW5nIHNkcDsKLSAgICBkZXNjcmlwdGlvbi0+VG9TdHJpbmcoJnNkcCk7Ci0KLSAgICByZXR1cm4g
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpjcmVhdGUoZnJvbVNlc3Npb25EZXNjcmlwdGlvblR5cGUo
KmRlc2NyaXB0aW9uKSwgZnJvbVN0ZFN0cmluZyhzZHApKTsKLX0KLQotLy8gRklYTUU6IFdlIG1p
Z2h0IHdhbnQgdG8gY3JlYXRlIGEgbmV3IG9iamVjdCBvbmx5IGlmIHRoZSBzZXNzaW9uIGFjdHVh
bGx5IGNoYW5nZWQgZm9yIGFsbCBkZXNjcmlwdGlvbiBnZXR0ZXJzLgotUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbj4gTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6Y3VycmVudExvY2FsRGVzY3Jp
cHRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2JhY2tlbmQgPyBmcm9tU2Vzc2lvbkRlc2Ny
aXB0aW9uKG1fYmFja2VuZC0+Y3VycmVudF9sb2NhbF9kZXNjcmlwdGlvbigpKSA6IG51bGxwdHI7
Ci19Ci0KLVJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IExpYldlYlJUQ01lZGlhRW5kcG9p
bnQ6OmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fYmFj
a2VuZCA/IGZyb21TZXNzaW9uRGVzY3JpcHRpb24obV9iYWNrZW5kLT5jdXJyZW50X3JlbW90ZV9k
ZXNjcmlwdGlvbigpKSA6IG51bGxwdHI7Ci19Ci0KLVJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b24+IExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9iYWNrZW5kID8gZnJvbVNlc3Npb25EZXNjcmlwdGlvbihtX2Jh
Y2tlbmQtPnBlbmRpbmdfbG9jYWxfZGVzY3JpcHRpb24oKSkgOiBudWxscHRyOwotfQotCi1SZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpwZW5kaW5n
UmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2JhY2tlbmQgPyBmcm9t
U2Vzc2lvbkRlc2NyaXB0aW9uKG1fYmFja2VuZC0+cGVuZGluZ19yZW1vdGVfZGVzY3JpcHRpb24o
KSkgOiBudWxscHRyOwotfQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJS
VENNZWRpYUVuZHBvaW50Ojpsb2NhbERlc2NyaXB0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9iYWNrZW5kID8gZnJvbVNlc3Npb25EZXNjcmlwdGlvbihtX2JhY2tlbmQtPmxvY2FsX2Rlc2Ny
aXB0aW9uKCkpIDogbnVsbHB0cjsKLX0KLQotUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4g
TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6cmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdAotewotICAg
IHJldHVybiBtX2JhY2tlbmQgPyBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uKG1fYmFja2VuZC0+cmVt
b3RlX2Rlc2NyaXB0aW9uKCkpIDogbnVsbHB0cjsKLX0KLQogdm9pZCBMaWJXZWJSVENNZWRpYUVu
ZHBvaW50Ojpkb1NldExvY2FsRGVzY3JpcHRpb24oY29uc3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
KiBkZXNjcmlwdGlvbikKIHsKICAgICBBU1NFUlQobV9iYWNrZW5kKTsKQEAgLTYyMCw5ICs1Njgs
NjAgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpPbkljZUdhdGhlcmluZ0NoYW5nZSh3
ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWMKICAgICB9KTsKIH0KIAotdm9pZCBMaWJXZWJS
VENNZWRpYUVuZHBvaW50OjphZGRJY2VDYW5kaWRhdGUoc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6
SWNlQ2FuZGlkYXRlSW50ZXJmYWNlPiYmIGNhbmRpZGF0ZSwgc3RkOjpmdW5jdGlvbjx2b2lkKHdl
YnJ0Yzo6UlRDRXJyb3IpPiYmIGNhbGxiYWNrKQorc3RhdGljIGlubGluZSBSVENTZHBUeXBlIGZy
b21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKGNvbnN0IHdlYnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0aW9u
SW50ZXJmYWNlJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhdXRvIHR5cGUgPSBkZXNjcmlwdGlvbi50
eXBlKCk7CisgICAgaWYgKHR5cGUgPT0gd2VicnRjOjpTZXNzaW9uRGVzY3JpcHRpb25JbnRlcmZh
Y2U6OmtPZmZlcikKKyAgICAgICAgcmV0dXJuIFJUQ1NkcFR5cGU6Ok9mZmVyOworICAgIGlmICh0
eXBlID09IHdlYnJ0Yzo6U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlOjprQW5zd2VyKQorICAg
ICAgICByZXR1cm4gUlRDU2RwVHlwZTo6QW5zd2VyOworICAgIEFTU0VSVCh0eXBlID09IHdlYnJ0
Yzo6U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlOjprUHJBbnN3ZXIpOworICAgIHJldHVybiBS
VENTZHBUeXBlOjpQcmFuc3dlcjsKK30KKworc3RhdGljIHN0ZDo6b3B0aW9uYWw8UGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjpEZXNjcmlwdGlvblN0YXRlcz4gZGVzY3JpcHRpb25zRnJvbVBlZXJDb25u
ZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2UqIGNvbm5lY3Rpb24pCiB7Ci0g
ICAgbV9iYWNrZW5kLT5BZGRJY2VDYW5kaWRhdGUoV1RGTW92ZShjYW5kaWRhdGUpLCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CisgICAgaWYgKCFjb25uZWN0aW9uKQorICAgICAgICByZXR1cm4geyB9Owor
CisgICAgc3RkOjpvcHRpb25hbDxSVENTZHBUeXBlPiBjdXJyZW50TG9jYWxEZXNjcmlwdGlvblNk
cFR5cGUsIHBlbmRpbmdMb2NhbERlc2NyaXB0aW9uU2RwVHlwZSwgY3VycmVudFJlbW90ZURlc2Ny
aXB0aW9uU2RwVHlwZSwgcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uU2RwVHlwZTsKKyAgICBzdGQ6
OnN0cmluZyBjdXJyZW50TG9jYWxEZXNjcmlwdGlvblNkcCwgcGVuZGluZ0xvY2FsRGVzY3JpcHRp
b25TZHAsIGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvblNkcCwgcGVuZGluZ1JlbW90ZURlc2NyaXB0
aW9uU2RwOworICAgIGlmIChhdXRvKiBkZXNjcmlwdGlvbiA9IGNvbm5lY3Rpb24tPmN1cnJlbnRf
bG9jYWxfZGVzY3JpcHRpb24oKSkgeworICAgICAgICBjdXJyZW50TG9jYWxEZXNjcmlwdGlvblNk
cFR5cGUgPSBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24pOworICAgICAg
ICBkZXNjcmlwdGlvbi0+VG9TdHJpbmcoJmN1cnJlbnRMb2NhbERlc2NyaXB0aW9uU2RwKTsKKyAg
ICB9CisgICAgaWYgKGF1dG8qIGRlc2NyaXB0aW9uID0gY29ubmVjdGlvbi0+cGVuZGluZ19sb2Nh
bF9kZXNjcmlwdGlvbigpKSB7CisgICAgICAgIHBlbmRpbmdMb2NhbERlc2NyaXB0aW9uU2RwVHlw
ZSA9IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbik7CisgICAgICAgIGRl
c2NyaXB0aW9uLT5Ub1N0cmluZygmcGVuZGluZ0xvY2FsRGVzY3JpcHRpb25TZHApOworICAgIH0K
KyAgICBpZiAoYXV0byogZGVzY3JpcHRpb24gPSBjb25uZWN0aW9uLT5jdXJyZW50X3JlbW90ZV9k
ZXNjcmlwdGlvbigpKSB7CisgICAgICAgIGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvblNkcFR5cGUg
PSBmcm9tU2Vzc2lvbkRlc2NyaXB0aW9uVHlwZSgqZGVzY3JpcHRpb24pOworICAgICAgICBkZXNj
cmlwdGlvbi0+VG9TdHJpbmcoJmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvblNkcCk7CisgICAgfQor
ICAgIGlmIChhdXRvKiBkZXNjcmlwdGlvbiA9IGNvbm5lY3Rpb24tPnBlbmRpbmdfcmVtb3RlX2Rl
c2NyaXB0aW9uKCkpIHsKKyAgICAgICAgcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uU2RwVHlwZSA9
IGZyb21TZXNzaW9uRGVzY3JpcHRpb25UeXBlKCpkZXNjcmlwdGlvbik7CisgICAgICAgIGRlc2Ny
aXB0aW9uLT5Ub1N0cmluZygmcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uU2RwKTsKKyAgICB9CisK
KyAgICByZXR1cm4gUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpEZXNjcmlwdGlvblN0YXRlcyB7Cisg
ICAgICAgIGN1cnJlbnRMb2NhbERlc2NyaXB0aW9uU2RwVHlwZSwgZnJvbVN0ZFN0cmluZyhjdXJy
ZW50TG9jYWxEZXNjcmlwdGlvblNkcCksCisgICAgICAgIHBlbmRpbmdMb2NhbERlc2NyaXB0aW9u
U2RwVHlwZSwgZnJvbVN0ZFN0cmluZyhwZW5kaW5nTG9jYWxEZXNjcmlwdGlvblNkcCksCisgICAg
ICAgIGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvblNkcFR5cGUsIGZyb21TdGRTdHJpbmcoY3VycmVu
dFJlbW90ZURlc2NyaXB0aW9uU2RwKSwKKyAgICAgICAgcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9u
U2RwVHlwZSwgZnJvbVN0ZFN0cmluZyhwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb25TZHApCisgICAg
fTsKK30KKwordm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjphZGRJY2VDYW5kaWRhdGUoc3Rk
Ojp1bmlxdWVfcHRyPHdlYnJ0Yzo6SWNlQ2FuZGlkYXRlSW50ZXJmYWNlPiYmIGNhbmRpZGF0ZSwg
UGVlckNvbm5lY3Rpb25CYWNrZW5kOjpBZGRJY2VDYW5kaWRhdGVDYWxsYmFjayYmIGNhbGxiYWNr
KQoreworICAgIG1fYmFja2VuZC0+QWRkSWNlQ2FuZGlkYXRlKFdURk1vdmUoY2FuZGlkYXRlKSwg
W3Rhc2sgPSBjcmVhdGVTaGFyZWRUYXNrPFBlZXJDb25uZWN0aW9uQmFja2VuZDo6QWRkSWNlQ2Fu
ZGlkYXRlQ2FsbGJhY2tGdW5jdGlvbj4oV1RGTW92ZShjYWxsYmFjaykpLCBiYWNrZW5kID0gbV9i
YWNrZW5kXShhdXRvJiYgZXJyb3IpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFt0YXNrID0gV1RGTW92ZSh0YXNrKSwgZGVzY3JpcHRpb25zID0gZGVzY3JpcHRpb25zRnJvbVBl
ZXJDb25uZWN0aW9uKGJhY2tlbmQuZ2V0KCkpLCBlcnJvciA9IFdURk1vdmUoZXJyb3IpXSgpIG11
dGFibGUgeworICAgICAgICAgICAgaWYgKCFlcnJvci5vaygpKSB7CisgICAgICAgICAgICAgICAg
dGFzay0+cnVuKHRvRXhjZXB0aW9uKGVycm9yKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgdGFzay0+cnVuKFdURk1vdmUoZGVzY3JpcHRpb25z
KSk7CisgICAgICAgIH0pOworICAgIH0pOwogfQogCiB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9p
bnQ6Ok9uSWNlQ2FuZGlkYXRlKGNvbnN0IHdlYnJ0Yzo6SWNlQ2FuZGlkYXRlSW50ZXJmYWNlICpy
dGNDYW5kaWRhdGUpCkBAIC02MzQsMTAgKzYzMywxMCBAQCB2b2lkIExpYldlYlJUQ01lZGlhRW5k
cG9pbnQ6Ok9uSWNlQ2FuZGlkYXRlKGNvbnN0IHdlYnJ0Yzo6SWNlQ2FuZGlkYXRlSW50ZXJmYWNl
CiAKICAgICBhdXRvIHNkcE1MaW5lSW5kZXggPSBzYWZlQ2FzdDx1bnNpZ25lZCBzaG9ydD4ocnRj
Q2FuZGlkYXRlLT5zZHBfbWxpbmVfaW5kZXgoKSk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1pZCA9IGZyb21TdGRTdHJpbmcocnRjQ2Fu
ZGlkYXRlLT5zZHBfbWlkKCkpLCBzZHAgPSBmcm9tU3RkU3RyaW5nKHNkcCksIHNkcE1MaW5lSW5k
ZXgsIHVybCA9IGZyb21TdGRTdHJpbmcocnRjQ2FuZGlkYXRlLT5zZXJ2ZXJfdXJsKCkpXSgpIG11
dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgZGVzY3JpcHRpb25zID0gZGVzY3JpcHRpb25zRnJvbVBlZXJDb25uZWN0aW9uKG1fYmFj
a2VuZC5nZXQoKSksIG1pZCA9IGZyb21TdGRTdHJpbmcocnRjQ2FuZGlkYXRlLT5zZHBfbWlkKCkp
LCBzZHAgPSBmcm9tU3RkU3RyaW5nKHNkcCksIHNkcE1MaW5lSW5kZXgsIHVybCA9IGZyb21TdGRT
dHJpbmcocnRjQ2FuZGlkYXRlLT5zZXJ2ZXJfdXJsKCkpXSgpIG11dGFibGUgewogICAgICAgICBp
ZiAocHJvdGVjdGVkVGhpcy0+aXNTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIHByb3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLm5ld0lDRUNhbmRpZGF0
ZShXVEZNb3ZlKHNkcCksIFdURk1vdmUobWlkKSwgc2RwTUxpbmVJbmRleCwgV1RGTW92ZSh1cmwp
KTsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQubmV3SUNF
Q2FuZGlkYXRlKFdURk1vdmUoc2RwKSwgV1RGTW92ZShtaWQpLCBzZHBNTGluZUluZGV4LCBXVEZN
b3ZlKHVybCksIFdURk1vdmUoZGVzY3JpcHRpb25zKSk7CiAgICAgfSk7CiB9CiAKQEAgLTY5OSwx
MCArNjk4LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENTY3RwVHJhbnNwb3J0QmFja2Vu
ZD4gU2N0cFRyYW5zcG9ydFN0YXRlOjpjcmVhdGVCYWNrZW5kCiAKIHZvaWQgTGliV2ViUlRDTWVk
aWFFbmRwb2ludDo6c2V0TG9jYWxTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVkZWQoKQogewotICAg
IGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgc2N0cFN0
YXRlID0gU2N0cFRyYW5zcG9ydFN0YXRlKG1fYmFja2VuZC0+R2V0U2N0cFRyYW5zcG9ydCgpKV0o
KSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGRlc2NyaXB0aW9ucyA9IGRlc2NyaXB0aW9uc0Zyb21QZWVyQ29ubmVjdGlvbiht
X2JhY2tlbmQuZ2V0KCkpLCBzY3RwU3RhdGUgPSBTY3RwVHJhbnNwb3J0U3RhdGUobV9iYWNrZW5k
LT5HZXRTY3RwVHJhbnNwb3J0KCkpXSgpIG11dGFibGUgewogICAgICAgICBpZiAocHJvdGVjdGVk
VGhpcy0+aXNTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHByb3RlY3Rl
ZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLnNldExvY2FsRGVzY3JpcHRpb25TdWNjZWVk
ZWQoc2N0cFN0YXRlLmNyZWF0ZUJhY2tlbmQoKSk7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm1f
cGVlckNvbm5lY3Rpb25CYWNrZW5kLnNldExvY2FsRGVzY3JpcHRpb25TdWNjZWVkZWQoV1RGTW92
ZShkZXNjcmlwdGlvbnMpLCBzY3RwU3RhdGUuY3JlYXRlQmFja2VuZCgpKTsKICAgICB9KTsKIH0K
IApAQCAtNzE3LDEwICs3MTYsMTAgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpzZXRM
b2NhbFNlc3Npb25EZXNjcmlwdGlvbkZhaWxlZChFeGNlcHRpb25Db2RlIGVycm8KIAogdm9pZCBM
aWJXZWJSVENNZWRpYUVuZHBvaW50OjpzZXRSZW1vdGVTZXNzaW9uRGVzY3JpcHRpb25TdWNjZWVk
ZWQoKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgc2N0cFN0YXRlID0gU2N0cFRyYW5zcG9ydFN0YXRlKG1fYmFja2VuZC0+R2V0U2N0cFRy
YW5zcG9ydCgpKV0oKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGRlc2NyaXB0aW9ucyA9IGRlc2NyaXB0aW9uc0Zyb21QZWVy
Q29ubmVjdGlvbihtX2JhY2tlbmQuZ2V0KCkpLCBzY3RwU3RhdGUgPSBTY3RwVHJhbnNwb3J0U3Rh
dGUobV9iYWNrZW5kLT5HZXRTY3RwVHJhbnNwb3J0KCkpXSgpIG11dGFibGUgewogICAgICAgICBp
ZiAocHJvdGVjdGVkVGhpcy0+aXNTdG9wcGVkKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIHByb3RlY3RlZFRoaXMtPm1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLnNldFJlbW90ZURlc2Ny
aXB0aW9uU3VjY2VlZGVkKHNjdHBTdGF0ZS5jcmVhdGVCYWNrZW5kKCkpOworICAgICAgICBwcm90
ZWN0ZWRUaGlzLT5tX3BlZXJDb25uZWN0aW9uQmFja2VuZC5zZXRSZW1vdGVEZXNjcmlwdGlvblN1
Y2NlZWRlZChXVEZNb3ZlKGRlc2NyaXB0aW9ucyksIHNjdHBTdGF0ZS5jcmVhdGVCYWNrZW5kKCkp
OwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmgK
aW5kZXggYTgyYmEzODM1YjBiMjRhNzg1ZDllY2JlOWY4ZjExOGQ5ZWQ4YTU1Zi4uYWU1NWE1MTVi
NzcyODNkNDRkMGZhN2VmNWZkZmYwYjNkYTg1ODk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ01lZGlhRW5kcG9pbnQuaApAQCAtODksMTkgKzg5LDEyIEBAIHB1YmxpYzoKICAgICB2b2lk
IGdldFN0YXRzKHdlYnJ0Yzo6UnRwUmVjZWl2ZXJJbnRlcmZhY2UmLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmKTsKICAgICB2b2lkIGdldFN0YXRzKHdlYnJ0Yzo6UnRwU2VuZGVySW50ZXJmYWNlJiwg
UmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFu
bmVsSGFuZGxlcj4gY3JlYXRlRGF0YUNoYW5uZWwoY29uc3QgU3RyaW5nJiwgY29uc3QgUlRDRGF0
YUNoYW5uZWxJbml0Jik7Ci0gICAgdm9pZCBhZGRJY2VDYW5kaWRhdGUoc3RkOjp1bmlxdWVfcHRy
PHdlYnJ0Yzo6SWNlQ2FuZGlkYXRlSW50ZXJmYWNlPiYmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQod2Vi
cnRjOjpSVENFcnJvcik+JiYpOworICAgIHZvaWQgYWRkSWNlQ2FuZGlkYXRlKHN0ZDo6dW5pcXVl
X3B0cjx3ZWJydGM6OkljZUNhbmRpZGF0ZUludGVyZmFjZT4mJiwgUGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjpBZGRJY2VDYW5kaWRhdGVDYWxsYmFjayYmKTsKIAogICAgIHZvaWQgY2xvc2UoKTsKICAg
ICB2b2lkIHN0b3AoKTsKICAgICBib29sIGlzU3RvcHBlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2Jh
Y2tlbmQ7IH0KIAotICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IGxvY2FsRGVzY3Jp
cHRpb24oKSBjb25zdDsKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiByZW1vdGVE
ZXNjcmlwdGlvbigpIGNvbnN0OwotICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IGN1
cnJlbnRMb2NhbERlc2NyaXB0aW9uKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbj4gY3VycmVudFJlbW90ZURlc2NyaXB0aW9uKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbj4gcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24oKSBjb25zdDsKLSAg
ICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24o
KSBjb25zdDsKLQogICAgIGJvb2wgYWRkVHJhY2soTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZCYs
IE1lZGlhU3RyZWFtVHJhY2smLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogICAgIHZvaWQgcmVt
b3ZlVHJhY2soTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZCYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCA4NzUzMzRm
MmE3YjJhOTA2OTQ5MTZmYTU4ODVkZmI2MDcwMmIwYTc4Li4wMGViYmY4MDVhNDhkMzc2ODVhZmYy
NGM3Y2Q4NDM4NmY4ZjEyMzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCIKICNpbmNsdWRlICJSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2UuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9TaGFy
ZWRUYXNrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjcwLDcgKzI2OSw3IEBAIHZv
aWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb1N0b3AoKQogICAgIG1fcGVuZGlu
Z1JlY2VpdmVycy5jbGVhcigpOwogfQogCi12b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZDo6ZG9BZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiBjYW5kaWRhdGUsIEZ1bmN0
aW9uPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY2FsbGJhY2spCit2b2lkIExpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9BZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRl
JiBjYW5kaWRhdGUsIEFkZEljZUNhbmRpZGF0ZUNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAg
d2VicnRjOjpTZHBQYXJzZUVycm9yIGVycm9yOwogICAgIGludCBzZHBNTGluZUluZGV4ID0gY2Fu
ZGlkYXRlLnNkcE1MaW5lSW5kZXgoKSA/IGNhbmRpZGF0ZS5zZHBNTGluZUluZGV4KCkudmFsdWUo
KSA6IDA7CkBAIC0yODEsMTUgKzI4MCw3IEBAIHZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25C
YWNrZW5kOjpkb0FkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUmIGNhbmRpZGF0CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2VuZHBvaW50LT5hZGRJY2VDYW5kaWRhdGUoV1RG
TW92ZShydGNDYW5kaWRhdGUpLCBbdGFzayA9IGNyZWF0ZVNoYXJlZFRhc2s8dm9pZChFeGNlcHRp
b25Pcjx2b2lkPiYmKT4oV1RGTW92ZShjYWxsYmFjaykpXShhdXRvJiYgZXJyb3IpIG11dGFibGUg
ewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0YXNrID0gV1RGTW92ZSh0YXNrKSwgZXJyb3Ig
PSBXVEZNb3ZlKGVycm9yKV0gewotICAgICAgICAgICAgaWYgKCFlcnJvci5vaygpKSB7Ci0gICAg
ICAgICAgICAgICAgdGFzay0+cnVuKHRvRXhjZXB0aW9uKGVycm9yKSk7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGFzay0+cnVuKHsgfSk7Ci0g
ICAgICAgIH0pOwotICAgIH0pOworICAgIG1fZW5kcG9pbnQtPmFkZEljZUNhbmRpZGF0ZShXVEZN
b3ZlKHJ0Y0NhbmRpZGF0ZSksIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogUmVmPFJUQ1J0cFJl
Y2VpdmVyPiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmNyZWF0ZVJlY2VpdmVyKHN0
ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQ+JiYgYmFja2VuZCkKQEAg
LTMxMSw0NSArMzAyLDYgQEAgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4g
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpjcmVhdGVEYXQKICAgICByZXR1cm4gbV9l
bmRwb2ludC0+Y3JlYXRlRGF0YUNoYW5uZWwobGFiZWwsIG9wdGlvbnMpOwogfQogCi1SZWZQdHI8
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmN1
cnJlbnRMb2NhbERlc2NyaXB0aW9uKCkgY29uc3QKLXsKLSAgICBhdXRvIGRlc2NyaXB0aW9uID0g
bV9lbmRwb2ludC0+Y3VycmVudExvY2FsRGVzY3JpcHRpb24oKTsKLSAgICBpZiAoZGVzY3JpcHRp
b24pCi0gICAgICAgIHZhbGlkYXRlU0RQKGRlc2NyaXB0aW9uLT5zZHAoKSk7Ci0gICAgcmV0dXJu
IGRlc2NyaXB0aW9uOwotfQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fZW5kcG9pbnQtPmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbigpOwot
fQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQ6OnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uKCkgY29uc3QKLXsKLSAgICBhdXRvIGRl
c2NyaXB0aW9uID0gbV9lbmRwb2ludC0+cGVuZGluZ0xvY2FsRGVzY3JpcHRpb24oKTsKLSAgICBp
ZiAoZGVzY3JpcHRpb24pCi0gICAgICAgIHZhbGlkYXRlU0RQKGRlc2NyaXB0aW9uLT5zZHAoKSk7
Ci0gICAgcmV0dXJuIGRlc2NyaXB0aW9uOwotfQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uPiBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OnBlbmRpbmdSZW1vdGVEZXNjcmlw
dGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZW5kcG9pbnQtPnBlbmRpbmdSZW1vdGVEZXNj
cmlwdGlvbigpOwotfQotCi1SZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmxvY2FsRGVzY3JpcHRpb24oKSBjb25zdAotewotICAgIGF1
dG8gZGVzY3JpcHRpb24gPSBtX2VuZHBvaW50LT5sb2NhbERlc2NyaXB0aW9uKCk7Ci0gICAgaWYg
KGRlc2NyaXB0aW9uKQotICAgICAgICB2YWxpZGF0ZVNEUChkZXNjcmlwdGlvbi0+c2RwKCkpOwot
ICAgIHJldHVybiBkZXNjcmlwdGlvbjsKLX0KLQotUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bj4gTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpyZW1vdGVEZXNjcmlwdGlvbigpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fZW5kcG9pbnQtPnJlbW90ZURlc2NyaXB0aW9uKCk7Ci19Ci0K
IHN0YXRpYyBpbmxpbmUgUmVmUHRyPFJUQ1J0cFNlbmRlcj4gZmluZEV4aXN0aW5nU2VuZGVyKGNv
bnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwVHJhbnNjZWl2ZXI+PiYgdHJhbnNjZWl2ZXJzLCBMaWJX
ZWJSVENSdHBTZW5kZXJCYWNrZW5kJiBzZW5kZXJCYWNrZW5kKQogewogICAgIEFTU0VSVChzZW5k
ZXJCYWNrZW5kLnJ0Y1NlbmRlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKaW5kZXggZmZjZTIyZDc1ZDhiMDE1NTQyM2JiNmNkMGE3
YTIwYmM0ZjU0YTQ1OC4uMzEwYjBiMGZmOTVjMjZkY2U5Y2I0OTc3NjVlOTNjODZmYTc2N2I5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRvQ3JlYXRlQW5zd2VyKFJU
Q0Fuc3dlck9wdGlvbnMmJikgZmluYWw7CiAgICAgdm9pZCBkb1NldExvY2FsRGVzY3JpcHRpb24o
Y29uc3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKikgZmluYWw7CiAgICAgdm9pZCBkb1NldFJlbW90
ZURlc2NyaXB0aW9uKGNvbnN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiYpIGZpbmFsOwotICAgIHZv
aWQgZG9BZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlJiwgRnVuY3Rpb248dm9pZChFeGNl
cHRpb25Pcjx2b2lkPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBkb0FkZEljZUNhbmRpZGF0ZShS
VENJY2VDYW5kaWRhdGUmLCBBZGRJY2VDYW5kaWRhdGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2
b2lkIGRvU3RvcCgpIGZpbmFsOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhh
bmRsZXI+IGNyZWF0ZURhdGFDaGFubmVsSGFuZGxlcihjb25zdCBTdHJpbmcmLCBjb25zdCBSVENE
YXRhQ2hhbm5lbEluaXQmKSBmaW5hbDsKICAgICB2b2lkIHJlc3RhcnRJY2UoKSBmaW5hbDsKQEAg
LTcxLDE0ICs3MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRTdGF0cyhSVENSdHBTZW5kZXIm
LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKSBmaW5hbDsKICAgICB2b2lkIGdldFN0YXRzKFJUQ1J0
cFJlY2VpdmVyJiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJikgZmluYWw7CiAKLSAgICBSZWZQdHI8
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBsb2NhbERlc2NyaXB0aW9uKCkgY29uc3QgZmluYWw7Ci0g
ICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbj4gY3VycmVudExvY2FsRGVzY3JpcHRpb24o
KSBjb25zdCBmaW5hbDsKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5n
TG9jYWxEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwotCi0gICAgUmVmUHRyPFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbj4gcmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKLSAgICBSZWZQdHI8
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24oKSBjb25zdCBm
aW5hbDsKLSAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uPiBwZW5kaW5nUmVtb3RlRGVz
Y3JpcHRpb24oKSBjb25zdCBmaW5hbDsKLQogICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gY2FuVHJp
Y2tsZUljZUNhbmRpZGF0ZXMoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgZW11bGF0ZVBsYXRm
b3JtRXZlbnQoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjU2YmRiMmJhN2I1NmJj
YmIyNzgxYzE3ZDkzZmJmOTVlZjExZDAyMy4uYTA3YTkyZGRlZTA5OTMzZjVmNTk1ODg1ZDRjYWVi
ODExYjkyZDNiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA5LTA5ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgUlRDUGVlckNvbm5lY3Rp
b24gZGVzY3JpcHRpb25zIGFzIHBlciBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk5NjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgdGhhdCB3ZSB1cGRhdGUgZGVzY3JpcHRp
b25zIGF0IHNwZWNpZmljIHRpbWVzLAorICAgICAgICB3ZSBuZWVkIHRvIHdhaXQgYSBiaXQgdG8g
Z2V0IHRoZSBkZXNjcmlwdGlvbi4KKworICAgICAgICAqIHdlYnJ0Yy9kYXRhY2hhbm5lbC9tZG5z
LWljZS1jYW5kaWRhdGVzLmh0bWw6CisKIDIwMjEtMDktMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBSVENEYXRhQ2hhbm5lbCBj
bG9zaW5nIGV2ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBkNTljZDM1ZjFl
NjU2NWIyNWU3MWJjMGQ0MDE4N2I3ZDNiNjRmZWRkLi5kMmIxM2Q1OTg4MTNjNjRjYTg2ZjBjZGU4
ZGYxN2M3OTkyM2NmY2YxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAyMS0wOS0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgVXBkYXRlIFJUQ1BlZXJDb25uZWN0aW9uIGRlc2NyaXB0aW9ucyBhcyBwZXIgc3Bl
Y2lmaWNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5OTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWRlc2NyaXB0
aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRp
b24tcm9sbGJhY2stZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA5LTA5ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgUlRDRXJyb3JFdmVudCBmb3IgZGF0YSBj
aGFubmVsIGVycm9yIGV2ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1kZXNjcmlwdGlvbi1h
dHRyaWJ1dGVzLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1kZXNjcmlw
dGlvbi1hdHRyaWJ1dGVzLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZjEzN2JmYjg1
ZDYyYzI0NGQ4MGVjNWQzM2RlYTc4ZDJkZTA0ZjE4MS4uMzZjYTFkZmJmODliMDY5YjBmOWEwODZm
MTY0NGQzZTc5YTQ4ODRjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0
cmlidXRlcy10aW1pbmcuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWRlc2Ny
aXB0aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYg
QEAKIAotRkFJTCBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmln
aHQgdGltZSBhc3NlcnRfZXF1YWxzOiBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBpcyBzdGlsbCBu
dWxsIHdoaWxlIHByb21pc2UgcGVuZGluZyBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJb
b2JqZWN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbl0iCi1GQUlMIHBlbmRpbmdSZW1vdGVEZXNjcmlw
dGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGltZSBhc3NlcnRfZXF1YWxzOiBwZW5kaW5n
UmVtb3RlRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVsbCB3aGlsZSBwcm9taXNlIHBlbmRpbmcgZXhw
ZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBSVENTZXNzaW9uRGVzY3JpcHRpb25d
IgotRkFJTCBjdXJyZW50TG9jYWxEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQg
dGltZSBhc3NlcnRfZXF1YWxzOiBjdXJyZW50TG9jYWxEZXNjcmlwdGlvbiBpcyBzdGlsbCBudWxs
IHdoaWxlIHByb21pc2UgcGVuZGluZyBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2Jq
ZWN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbl0iCi1GQUlMIGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlv
biBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGltZSBhc3NlcnRfZXF1YWxzOiBjdXJyZW50UmVt
b3RlRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVsbCB3aGlsZSBwcm9taXNlIHBlbmRpbmcgZXhwZWN0
ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBSVENTZXNzaW9uRGVzY3JpcHRpb25dIgor
UEFTUyBwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGlt
ZQorUEFTUyBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQgdGhlIHJpZ2h0
IHRpbWUKK1BBU1MgY3VycmVudExvY2FsRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQgdGhlIHJp
Z2h0IHRpbWUKK1BBU1MgY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIGlzIHN1cmZhY2VkIGF0IHRo
ZSByaWdodCB0aW1lCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldExvY2FsRGVzY3JpcHRp
b24tcm9sbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlv
bi1yb2xsYmFjay1leHBlY3RlZC50eHQKaW5kZXggMzYzNGM2MzEzNmVmZjgyYWQ0ZGMwZWI5ODli
NTEyNzk2MTMzMDNhYS4uMzNjMjM2M2JiOWIwMmY2OWUwMjgwMTE0ZWI2NWViNTc2YjQ3ODY2MyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1yb2xsYmFjay1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0TG9jYWxEZXNjcmlwdGlvbi1yb2xsYmFjay1l
eHBlY3RlZC50eHQKQEAgLTMsNSArMyw1IEBAIFBBU1Mgc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xs
YmFjaykgZnJvbSBoYXZlLWxvY2FsLW9mZmVyIHN0YXRlIHNob3VsZCByZXNldCBiYWNrCiBQQVNT
IHNldExvY2FsRGVzY3JpcHRpb24ocm9sbGJhY2spIGZyb20gc3RhYmxlIHN0YXRlIHNob3VsZCBy
ZWplY3Qgd2l0aCBJbnZhbGlkU3RhdGVFcnJvcgogUEFTUyBzZXRMb2NhbERlc2NyaXB0aW9uKHJv
bGxiYWNrKSBhZnRlciBzZXR0aW5nIGFuc3dlciBkZXNjcmlwdGlvbiBzaG91bGQgcmVqZWN0IHdp
dGggSW52YWxpZFN0YXRlRXJyb3IKIFBBU1Mgc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFjaykg
c2hvdWxkIGlnbm9yZSBpbnZhbGlkIHNkcCBjb250ZW50IGFuZCBzdWNjZWVkCi1GQUlMIHNldExv
Y2FsRGVzY3JpcHRpb24ocm9sbGJhY2spIHNob3VsZCB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgd2l0
aCBhIHF1ZXVlZCB0YXNzaywgaW4gdGhlIHJpZ2h0IG9yZGVyIGFzc2VydF9ub3RfZXF1YWxzOiBw
ZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBzaG91bGQgbm90IGJlIHNldCBzeW5jaHJvbm91c2x5IGFm
dGVyIGEgY2FsbCB0byBzTEQgZ290IGRpc2FsbG93ZWQgdmFsdWUgbnVsbAorRkFJTCBzZXRMb2Nh
bERlc2NyaXB0aW9uKHJvbGxiYWNrKSBzaG91bGQgdXBkYXRlIGludGVybmFsIHN0YXRlIHdpdGgg
YSBxdWV1ZWQgdGFzc2ssIGluIHRoZSByaWdodCBvcmRlciBhc3NlcnRfZXF1YWxzOiBwZW5kaW5n
TG9jYWxEZXNjcmlwdGlvbiBzaG91bGQgYmUgdXBkYXRlZCBiZWZvcmUgdGhlIHNpZ25hbGluZ3N0
YXRlY2hhbmdlIGV2ZW50IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uXSIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2Rh
dGFjaGFubmVsL21kbnMtaWNlLWNhbmRpZGF0ZXMuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9k
YXRhY2hhbm5lbC9tZG5zLWljZS1jYW5kaWRhdGVzLmh0bWwKaW5kZXggM2FiODM5MDUxOWQxZTI5
Yzg1ZTlmODI0NmE5MWIwNDg0MmU0MmZlYi4uNjU4ZjQ4ZDYzN2JlMTEyYTliNThjOTAwMGY4MDEx
NGM4YWFmZGIzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL21k
bnMtaWNlLWNhbmRpZGF0ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5u
ZWwvbWRucy1pY2UtY2FuZGlkYXRlcy5odG1sCkBAIC0xNjAsMTAgKzE2MCwxMyBAQCBwcm9taXNl
X3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKIAogICAgIGNvbnN0IGNoYW5uZWwyID0gcGMuY3JlYXRl
RGF0YUNoYW5uZWwoJ3NlbmREYXRhQ2hhbm5lbDInKTsKICAgICBjb25zdCBvZmZlcjIgPSBhd2Fp
dCBwYy5jcmVhdGVPZmZlcigpOwotICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gcGMubG9jYWxEZXNj
cmlwdGlvbjsKIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSBjYW4gYXBwbHkgdGhlIGZpbHRlcmVkIGRl
c2NyaXB0aW9uLgotICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oZGVzY3JpcHRpb24p
OworICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24ocGMubG9jYWxEZXNjcmlwdGlvbik7
CisKKyAgICAvLyBSZWFwcGx5IGRlc2NyaXB0aW9uIHdoaWNoIHNob3VsZCBoYXZlIGNhbmRpZGF0
ZXMuCisgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcjIpOworICAgIGNvbnN0
IGRlc2NyaXB0aW9uID0gcGMubG9jYWxEZXNjcmlwdGlvbjsKIAogICAgIGNvbnN0IGxpbmVzID0g
ZGVzY3JpcHRpb24uc2RwLnNwbGl0KCdcclxuJykuZmlsdGVyKGxpbmUgPT4gewogICAgICAgICBy
ZXR1cm4gbGluZS5pbmRleE9mKCdhPWNhbmRpZGF0ZScpID09PSAwOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>