<?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>221086</bug_id>
          
          <creation_ts>2021-01-28 05:51:46 -0800</creation_ts>
          <short_desc>Recover audio and video capture from GPUProcess crash</short_desc>
          <delta_ts>2021-02-03 07:24:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=221331</see_also>
          <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>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1723354</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-28 05:51:46 -0800</bug_when>
    <thetext>Recover audio and video capture from GPUProcess crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723355</commentid>
    <comment_count>1</comment_count>
      <attachid>418639</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-28 05:57:44 -0800</bug_when>
    <thetext>Created attachment 418639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723356</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-28 05:59:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/73706054&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723359</commentid>
    <comment_count>3</comment_count>
      <attachid>418640</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-28 06:19:06 -0800</bug_when>
    <thetext>Created attachment 418640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723373</commentid>
    <comment_count>4</comment_count>
      <attachid>418645</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-28 08:40:28 -0800</bug_when>
    <thetext>Created attachment 418645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723648</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-29 00:48:03 -0800</bug_when>
    <thetext>Committed r272050: &lt;https://trac.webkit.org/changeset/272050&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418645.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418639</attachid>
            <date>2021-01-28 05:57:44 -0800</date>
            <delta_ts>2021-01-28 06:25:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221086-20210128145742.patch</filename>
            <type>text/plain</type>
            <size>21221</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxOTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkwZDQzYTkwYmJiYTczZWRl
YmUwNmU3MTE5N2Y2MjYwZjZmM2M5NTIuLmI5ZmNjZjY0NWE5OTAwODhiZDFiMDA4NmZhYWE3OWZh
ZWY5OWM1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDEtMjggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlY292ZXIgYXVkaW8gYW5kIHZp
ZGVvIGNhcHR1cmUgZnJvbSBHUFVQcm9jZXNzIGNyYXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEwODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Ug
b2JzZXJ2ZSBHUFUgcHJvY2VzcyBjcmFzaC4KKyAgICAgICAgSWYgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZSBpcyBsaXZlIGFuZCBjYXB0dXJpbmcgaW4gR1BVUHJvY2VzcywgcmVzdGFydCBjYXB0
dXJlIGZyb20gV2ViUHJvY2Vzcy4KKyAgICAgICAgSWYgR1BVIHByb2Nlc3MgY3Jhc2hlcywgbWFr
ZSBzdXJlIHRvIHNlbmQgYmFjayB0aGUgbmVjZXNzYXJ5IGVudGl0bGVtZW50cyBhbmQgaW5mb3Jt
YXRpb24gdG8gR1BVUHJvY2VzcworICAgICAgICBvZiB3aGljaCBwcm9jZXNzZXMgYXJlIGFsbG93
ZWQgdG8gY2FwdHVyZS4KKworICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Z3B1UHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlcjo6ZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVv
RmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVy
ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpkaWRV
cGRhdGVTb3VyY2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMjEtMDEtMjcgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjcx
OTQwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTk0YTEy
ZmIzY2JjYmNmNTYyYzFhNDMxNDMxMDdhMzkxN2FhZDg0YS4uZDY2NGE4MTQ3ZDg3NmQ4ZmNhMmE3
NGVjMDYxM2RkNDM3ZTdjYWRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC0xMDM0OCw2ICsxMDM0OCwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJM
b2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKQogdm9pZCBXZWJQYWdlUHJveHk6OmdwdVByb2Nlc3ND
cmFzaGVkKCkKIHsKICAgICBwYWdlQ2xpZW50KCkuZ3B1UHJvY2Vzc0NyYXNoZWQoKTsKKworICAg
IGJvb2wgc2hvdWxkQWxsb3dBdWRpb0NhcHR1cmUgPSBpc0NhcHR1cmluZ0F1ZGlvKCkgJiYgcHJl
ZmVyZW5jZXMoKS5jYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkKCk7CisgICAgYm9vbCBz
aG91bGRBbGxvd1ZpZGVvQ2FwdHVyZSA9IGlzQ2FwdHVyaW5nVmlkZW8oKSAmJiBwcmVmZXJlbmNl
cygpLmNhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQoKTsKKyAgICBib29sIHNob3VsZEFs
bG93RGlzcGxheUNhcHR1cmUgPSBmYWxzZTsKKyAgICBpZiAoc2hvdWxkQWxsb3dBdWRpb0NhcHR1
cmUgfHwgc2hvdWxkQWxsb3dWaWRlb0NhcHR1cmUpIHsKKyAgICAgICAgYXV0byYgZ3B1UHJvY2Vz
cyA9IHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmVuc3VyZUdQVVByb2Nlc3MoKTsKKyAgICAgICAg
Z3B1UHJvY2Vzcy51cGRhdGVDYXB0dXJlQWNjZXNzKHNob3VsZEFsbG93QXVkaW9DYXB0dXJlLCBz
aG91bGRBbGxvd1ZpZGVvQ2FwdHVyZSwgc2hvdWxkQWxsb3dEaXNwbGF5Q2FwdHVyZSwgbV9wcm9j
ZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSwgW10geyB9KTsKKyAgICB9CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKaW5kZXggZGM0YjkxYzU5NzMyMTgxMWRmOTdmYmMz
YzBmZjVlNzIzZmE4MmNkZS4uZmFjNGVjMTExMjcwNzBmZjE0MmU1NGEyZWVjZjkyOTkyZTg5YTg4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBAIC04Miw2ICs4MiwxMiBAQCB2b2lkIFJl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aQogICAgIH0pOwogfQogCit2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyOjpkaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UmIHNvdXJjZSkKK3sKKyAgICBBU1NFUlQoV1RGOjppc01haW5SdW5Mb29wKCkpOworICAgIHNl
dENvbm5lY3Rpb24oc291cmNlLmNvbm5lY3Rpb24oKSk7Cit9CisKIHZvaWQgUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXI6OmRpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxi
YWNrKQogewogICAgIG1fcXVldWUtPmRpc3BhdGNoKFdURk1vdmUoY2FsbGJhY2spKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyLmgKaW5kZXggMDFhZTE1ZjhmNWZkYWY4NjA0MzE5NjNiYjIyY2IwZmIzMWY0
Yjk1ZS4uYTQwOThhOTdkNWQxM2U5ZGUzOThmZjhkZjg4Y2YwNWIwNTRlZjg5YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyLmgKQEAgLTQ4LDYgKzQ4LDggQEAgcHVibGljOgogICAgIHZvaWQgYWRkU291
cmNlKFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKICAgICB2b2lkIHJlbW92ZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAKKyAgICB2b2lk
IGRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwor
CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCA1ZjljMmFhZDA5
MTk2MmUzNTk2ZWY4OTNiMzU5YzFkMWQ2ODRhZTM0Li5mMTNjYjNhYzgyZTUzMTY4ZWZmMGEwNmYy
MmViZDY0ZDI2ZjkxMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC00NiwyMCArNDYs
MTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlOjpjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNl
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgU3RyaW5nJiYg
bmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2Vy
LCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCitSZWY8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2Um
IGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIFN0cmluZyYmIG5h
bWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwg
Ym9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogewogICAgIGF1dG8gc291cmNlID0gYWRv
cHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UudHlwZSgpLCBXVEZNb3ZlKG5hbWUpLCBXVEZN
b3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOwogICAg
IG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwotICAgIHNvdXJjZS0+Y29ubmVj
dGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyhzb3VyY2UtPmlkZW50aWZpZXIoKSwgZGV2aWNlLCBzb3VyY2UtPmRldmljZUlESGFzaFNhbHQo
KSwgY29uc3RyYWludHMpLCBbc291cmNlID0gc291cmNlLmNvcHlSZWYoKV0oYm9vbCBzdWNjZWVk
ZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxp
dGllcykgewotICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgewotICAgICAgICAgICAgc291cmNlLT5k
aWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICAgICAgc291cmNlLT5zZXROYW1lKFN0cmluZyB7IHNldHRpbmdzLmxhYmVsKCku
c3RyaW5nKCkgfSk7Ci0gICAgICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5n
cykpOwotICAgICAgICBzb3VyY2UtPnNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNhcGFiaWxpdGll
cykpOwotICAgICAgICBzb3VyY2UtPnNldEFzUmVhZHkoKTsKLSAgICB9KTsKKyAgICBzb3VyY2Ut
PmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGRldmljZSwgY29uc3RyYWludHMpOwogICAgIHJldHVy
biBzb3VyY2U7CiB9CiAKQEAgLTEwNiw4ICs5NywzMiBAQCBSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aQogICAgIH0KIH0KIAordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGVSZW1v
dGVNZWRpYVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpIHsKKyAgICAgICAgbV9kZXZpY2UgPSBkZXZpY2U7CisgICAgICAgIG1fY29uc3RyYWlu
dHMgPSBjb25zdHJhaW50czsKKyAgICB9CisKKyAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkZW50aWZpZXIoKSwgZGV2
aWNlLCBkZXZpY2VJREhhc2hTYWx0KCksIGNvbnN0cmFpbnRzKSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2Us
IGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcykgeworICAgICAgICBpZiAoIXN1
Y2NlZWRlZCkgeworICAgICAgICAgICAgZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNldE5hbWUoU3RyaW5nIHsg
c2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKKyAgICAgICAgc2V0U2V0dGluZ3MoV1RGTW92
ZShzZXR0aW5ncykpOworICAgICAgICBzZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBhYmlsaXRp
ZXMpKTsKKyAgICAgICAgc2V0QXNSZWFkeSgpOworICAgICAgICBpZiAobV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKQorICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5hZGRDbGllbnQoKnRoaXMpOworICAgIH0pOworfQorCiBS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjp+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpCiB7
CisgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKKyAgICAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5yZW1vdmVDbGllbnQo
KnRoaXMpOworCiAgICAgc3dpdGNoIChtX2RldmljZVR5cGUpIHsKICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
QEAgLTMwNSw2ICszMjAsMjEgQEAgdm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1
ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2VydmVyKQogICAgIH0KIH0KIAorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5l
Y3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpCit7CisgICAgQVNTRVJUKG1fc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgaWYgKGlzRW5kZWQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9tYW5hZ2VyLmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oKnRoaXMpOwor
ICAgIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKG1fZGV2aWNlLCBtX2NvbnN0cmFpbnRzKTsKKyAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIHVwZGF0ZSB0aGUgdHJhY2sgYWNjb3JkaW5nIGN1cnJlbnQg
c2V0dGluZ3MuCisgICAgaWYgKGlzUHJvZHVjaW5nRGF0YSgpKQorICAgICAgICBzdGFydFByb2R1
Y2luZ0RhdGEoKTsKK30KKyNlbmRpZgorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgK
aW5kZXggMWM4OTBiZWIxYjAzMTNkNGUyMzAyOTUyOWY1MWQxMTE3MGU5YjViOC4uMTNhMzNjY2E2
NGMzZDZiN2IzZTcxYTQ0YjU5MDY1MmExMmI2NDQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKIAorI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9DYXB0dXJlRGV2aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291
cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5o
PgpAQCAtNDcsOSArNDgsMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOwogCi1jbGFzcyBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVi
bGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgeworY2xhc3MgUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorICAgICwgcHVibGljIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGll
bnQKKyNlbmRpZgorewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzID0gZmFsc2UpOworICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKICAg
ICB+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSgpOwogCiAgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRp
ZmllcjsgfQpAQCAtODYsNiArOTEsMTIgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Rl
dmljZVR5cGU7IH0KICAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2xvbmUoKSBmaW5hbDsK
IAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICAvLyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6
Q2xpZW50CisgICAgdm9pZCBncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3ND
b25uZWN0aW9uJikgZmluYWw7CisjZW5kaWYKKworICAgIHZvaWQgY3JlYXRlUmVtb3RlTWVkaWFT
b3VyY2UoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMmKTsKICAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsK
ICAgICB2b2lkIHNldEFzUmVhZHkoKTsKICAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOwpAQCAtMTA0LDYgKzExNSw4IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUmVhZHkgeyBmYWxzZSB9OwogICAgIFN0cmluZyBtX2Vy
cm9yTWVzc2FnZTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+IG1fY2FsbGJh
Y2s7CisgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBtX2RldmljZTsKKyAgICBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IDA4M2Y4MjlhZjc1YWU5OWY2YzI4Y2Q2NzBiOTBh
NjY3Nzg5ZjM3ZTMuLmJmOGQ5MmM0MmU4ODU1MzM5MjE3YzIzODQwZDJmYWVhM2UzZTVkNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIENhcHR1cmVTb3VyY2VPckVy
cm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2Fw
dHVyZVNvCiAgICAgICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdl
QXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIAotICAgIHJldHVybiBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgV1RG
TW92ZShoYXNoU2FsdCksIG1fbWFuYWdlcik7CisgICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2U6OmNyZWF0ZShkZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hT
YWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwogfQogCiB2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OnNldFNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MoYm9vbCB2YWx1ZSkKQEAgLTE3Niw3ICsxNzYsNyBAQCBDYXB0dXJlU291cmNl
T3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRl
b0NhcHR1cmVTbwogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiVmlkZW8g
Y2FwdHVyZSBpbiBHUFVQcm9jZXNzIGlzIG5vdCBpbXBsZW1lbnRlZCJfcyB9OwogI2VuZGlmCiAK
LSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNv
bnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIpOworICAgIHJldHVy
biBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMs
IHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTEsNyArMTkxLDEy
IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5
RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1CiAgICAgaWYgKCFjb25zdHJhaW50cykKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpj
cmVhdGUoZGV2aWNlLCAqY29uc3RyYWludHMsIHsgfSwgeyB9LCBtX21hbmFnZXIpOworICAgIHJl
dHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNlLCAqY29uc3RyYWlu
dHMsIHsgfSwgeyB9LCBtX21hbmFnZXIsIGZhbHNlKTsKK30KKwordm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6ZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbihSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlJiBzb3VyY2UpCit7CisgICAgbV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5kaWRV
cGRhdGVTb3VyY2VDb25uZWN0aW9uKHNvdXJjZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5k
ZXggYjBiMTk4MjkwNTQyMmRlNzI5NTQyYWJiM2VlMDliYzdlMzMwZDAyZC4uOWUwMmFhYmNiY2Q1
ZGM0YTEwNTQ2YmZiMGIxMWYxNDE0MDMyMjhmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTU5LDYg
KzU5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rp
b24oUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYpOwogCiBwcml2YXRlOgogICAgIC8vIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgZmFjdG9yaWVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KaW5kZXggNzdmNjZhOTBiZWVlNGI2YmMy
YTg5OWY1OTY2MTE2MzgyODg3NjExNi4uZGM4YjgzYzRmOTc4M2ViZWY3MjYwZWFhNzk4YjMzNWQz
NzY2MTliYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0
VXNlck1lZGlhLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVz
ZXJNZWRpYS5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJp
dmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+Cisj
aW1wb3J0IDxXZWJLaXQvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaD4KICNpbXBvcnQgPFdlYktp
dC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzcyLDYgKzM3
Myw4NCBAQCBURVNUKFdlYktpdCwgV2ViQXVkaW9BbmRHZXRVc2VyTWVkaWEpCiB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKK1RFU1QoV2ViS2l0MiwgQ3Jhc2hHUFVQcm9jZXNz
V2hpbGVDYXB0dXJpbmcpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHByZWZlcmVuY2Vz
ID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworCisgICAgZm9yIChfV0tJbnRlcm5hbERl
YnVnRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfaW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNhcHR1
cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQiXSkKKyAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBf
c2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAg
IGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3NFbmFibGVkIl0pCisgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6Tk8gZm9y
SW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkg
aXNFcXVhbFRvU3RyaW5nOkAiQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCJdKQorICAg
ICAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllFUyBmb3JJbnRlcm5hbERlYnVnRmVh
dHVyZTpmZWF0dXJlXTsKKyAgICB9CisKKyAgICBwcmVmZXJlbmNlcy5fbWVkaWFDYXB0dXJlUmVx
dWlyZXNTZWN1cmVDb25uZWN0aW9uID0gTk87CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5fbWVk
aWFDYXB0dXJlRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fbW9ja0NhcHR1cmVEZXZp
Y2VzRW5hYmxlZCA9IFlFUzsKKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtb
R1VNTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNl
ckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxl
ci5nZXQoKSBuYW1lOkAiZ3VtIl07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbR2V0VXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKKyAgICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKKworICAg
IFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0VXNlck1lZGlhIl07CisgICAgRVhQRUNU
X1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVy
ZVN0YXRlQWN0aXZlQ2FtZXJhKSk7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNhcHR1cmVBdWRpb0FuZFZpZGVvKCkiXTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byB3ZWJWaWV3
UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIC8vIFRoZSBHUFUg
cHJvY2VzcyBzaG91bGQgZ2V0IGxhdW5jaGVkLgorICAgIGF1dG8qIHByb2Nlc3NQb29sID0gY29u
ZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbDsKKyAgICB1bnNpZ25lZCB0aW1lb3V0ID0gMDsK
KyAgICB3aGlsZSAoIVtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdICYmIHRpbWVv
dXQrKyA8IDEwMCkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC4xKTsKKwor
ICAgIEVYUEVDVF9ORShbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSwgMCk7Cisg
ICAgaWYgKCFbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSkKKyAgICAgICAgcmV0
dXJuOworICAgIGF1dG8gZ3B1UHJvY2Vzc1BJRCA9IFtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lk
ZW50aWZpZXJdOworCisgICAgLy8gS2lsbCB0aGUgR1BVIFByb2Nlc3MuCisgICAga2lsbChncHVQ
cm9jZXNzUElELCA5KTsKKworICAgIC8vIEdQVSBQcm9jZXNzIHNob3VsZCBnZXQgcmVsYXVuY2hl
ZC4KKyAgICB0aW1lb3V0ID0gMDsKKyAgICB3aGlsZSAoKCFbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nl
c3NJZGVudGlmaWVyXSB8fCBbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSA9PSBn
cHVQcm9jZXNzUElEKSAmJiB0aW1lb3V0KysgPCAxMDApCisgICAgICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnNsZWVwKDAuMSk7CisgICAgRVhQRUNUX05FKFtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vz
c0lkZW50aWZpZXJdLCAwKTsKKyAgICBFWFBFQ1RfTkUoW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNz
SWRlbnRpZmllcl0sIGdwdVByb2Nlc3NQSUQpOworICAgIGdwdVByb2Nlc3NQSUQgPSBbcHJvY2Vz
c1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGUgV2Vi
UHJvY2VzcyBkaWQgbm90IGNyYXNoLgorICAgIEVYUEVDVF9FUSh3ZWJWaWV3UElELCBbd2ViVmll
dyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY3JlYXRlQ29ubmVjdGlvbigpIl07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGRvbmUgPSBmYWxz
ZTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2hlY2tWaWRl
b1N0YXR1cygpIl07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAg
IGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiY2hlY2tBdWRpb1N0YXR1cygpIl07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKworICAgIEVYUEVDVF9FUShncHVQcm9jZXNzUElELCBbcHJvY2Vzc1Bvb2wgX2dwdVBy
b2Nlc3NJZGVudGlmaWVyXSk7CisgICAgRVhQRUNUX0VRKHdlYlZpZXdQSUQsIFt3ZWJWaWV3IF93
ZWJQcm9jZXNzSWRlbnRpZmllcl0pOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9nZXRVc2VyTWVkaWEuaHRtbCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2dldFVzZXJNZWRpYS5odG1sCmluZGV4IGE2M2Y1
MDI1MDU2MDViNDBmNTBmNmY2NjQ2ZWY5ZjVmMWIwYzA2NGYuLjU5MTE0MDMzMzg2MGI4ZDM4NTAx
NTU4ODQzNTZjYWI4ZDNkMTk4MGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L2dldFVzZXJNZWRpYS5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L2dldFVzZXJNZWRpYS5odG1sCkBAIC02Myw3ICs2MywxMCBAQAogCiAgICAgICAg
ICAgICBmdW5jdGlvbiBjYXB0dXJlQXVkaW9BbmRWaWRlbygpCiAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0
cnVlLCB2aWRlbzogdHJ1ZX0pLnRoZW4ocyA9PiBzdHJlYW0gPSBzKTsKKyAgICAgICAgICAgICAg
ICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWUsIHZpZGVv
OiB0cnVlfSkudGhlbihzID0+IHsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCJQQVNTIik7CisgICAgICAgICAgICAgICAg
ICAgIHN0cmVhbSA9IHM7CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgIGZ1bmN0aW9uIG5vdGlmeUVuZGVkRXZlbnQoKQpAQCAtOTIsMTEgKzk1LDgwIEBA
CiAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RN
ZXNzYWdlKFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ3ZpZGVvJykgIT0gbnVsbCA/ICJQ
QVNTIiA6ICJGQUlMIik7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdl
dFN0YXRzKGNvbm5lY3Rpb24sIHR5cGUsIGtpbmQpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGNvbm5lY3Rpb24uZ2V0U3RhdHMoKS50aGVuKChyZXBvcnQpID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgdmFyIHN0YXRzOworICAgICAgICAgICAgICAgICAgICByZXBvcnQu
Zm9yRWFjaCgoc3RhdEl0ZW0pID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0
SXRlbS50eXBlID09PSB0eXBlICYmIHN0YXRJdGVtLmtpbmQgPT09IGtpbmQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0cyA9IHN0YXRJdGVtOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHN0YXRzOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICB2YXIgcGMxLCBwYzI7CisgICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVDb25uZWN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAg
ICAgICAgICAgICAgIHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworCisgICAgICAgICAg
ICAgICAgcGMxLm9uaWNlY2FuZGlkYXRlID0gKGUpID0+IHsgaWYgKGUuY2FuZGlkYXRlKSB7cGMy
LmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSk7IHQgKz0gIlxucGMxOiAiICsgZS5jYW5kaWRh
dGUuY2FuZGlkYXRlO30gfQorICAgICAgICAgICAgICAgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IChl
KSA9PiB7IGlmIChlLmNhbmRpZGF0ZSkge3BjMS5hZGRJY2VDYW5kaWRhdGUoZS5jYW5kaWRhdGUp
OyB0ICs9ICJcbnBjMjogIiArIGUuY2FuZGlkYXRlLmNhbmRpZGF0ZTt9IH0KKworICAgICAgICAg
ICAgICAgIHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHBjMS5hZGRUcmFjayh0
cmFjaywgc3RyZWFtKSk7CisgICAgICAgICAgICAgICAgcGMyLm9udHJhY2sgPSAoZSkgPT4gewor
ICAgICAgICAgICAgICAgICAgICByZW1vdGVWaWRlby5zcmNPYmplY3QgPSBlLnN0cmVhbXNbMF07
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcGMxLmNyZWF0ZU9mZmVyKCkK
KyAgICAgICAgICAgICAgICAgICAgLnRoZW4oKG8pID0+IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9u
KG8pKQorICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBwYzIuc2V0UmVtb3RlRGVzY3Jp
cHRpb24ocGMxLmxvY2FsRGVzY3JpcHRpb24pKQorICAgICAgICAgICAgICAgICAgICAudGhlbigo
KSA9PiBwYzIuY3JlYXRlQW5zd2VyKCkpCisgICAgICAgICAgICAgICAgICAgIC50aGVuKChhKSA9
PiBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhKSkKKyAgICAgICAgICAgICAgICAgICAgLnRoZW4o
KGEpID0+IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbikpCisg
ICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZSgiUEFTUyIpOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVu
Y3Rpb24gY2hlY2tWaWRlb1N0YXR1cyhjb3VudGVyKSB7CisgICAgICAgICAgICAgICAgaWYgKCFj
b3VudGVyKQorICAgICAgICAgICAgICAgICAgICBjb3VudGVyID0gMDsKKyAgICAgICAgICAgICAg
ICBlbHNlIGlmIChjb3VudGVyID4gMTAwKSB7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZSgiRkFJTCIpOworICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGdl
dFN0YXRzKHBjMSwgIm91dGJvdW5kLXJ0cCIsICJ2aWRlbyIpLnRoZW4oKHN0YXRzKSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChzdGF0cyAmJiBzdGF0cy5mcmFtZXNFbmNvZGVkKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0u
cG9zdE1lc3NhZ2UoIlBBU1MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+
IGNoZWNrVmlkZW9TdGF0dXMoKytjb3VudGVyKSwgNTApOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjaGVja0F1ZGlvU3RhdHVzKGNv
dW50ZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWNvdW50ZXIpCisgICAgICAgICAgICAgICAg
ICAgIGNvdW50ZXIgPSAwOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvdW50ZXIgPiAxMDAp
IHsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3Vt
LnBvc3RNZXNzYWdlKCJGQUlMIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ2V0U3RhdHMocGMyLCAiaW5ib3VuZC1ydHAi
LCAiYXVkaW8iKS50aGVuKChzdGF0cykgPT4geworICAgICAgICAgICAgICAgICAgICBpZiAoc3Rh
dHMgJiYgc3RhdHMuYXVkaW9MZXZlbCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZSgiUEFTUyIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gY2hlY2tBdWRpb1N0YXR1cygrK2NvdW50
ZXIpLCA1MCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CiAgICAgICAgIDwv
c2NyaXB0PgogICAgIDxoZWFkPgogCiAgICAgPGJvZHkgb25sb2FkPSJwcm9tcHRGb3JDYXB0dXJl
KCkiPgogICAgICAgICA8dmlkZW8gaWQ9InZpZGVvIiBjb250cm9scz48L3ZpZGVvPgorICAgICAg
ICA8dmlkZW8gaWQ9InJlbW90ZVZpZGVvIiBhdXRvcGxheSBwbGF5c2lubGluZT48L3ZpZGVvPgog
ICAgICAgICA8cD4KICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzdG9wKCkiPlN0b3A8L2J1dHRv
bj4KICAgICAgICAgPC9wPgo=
</data>
<flag name="commit-queue"
          id="436663"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418640</attachid>
            <date>2021-01-28 06:19:06 -0800</date>
            <delta_ts>2021-01-28 08:40:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221086-20210128151905.patch</filename>
            <type>text/plain</type>
            <size>21169</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxOTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkwZDQzYTkwYmJiYTczZWRl
YmUwNmU3MTE5N2Y2MjYwZjZmM2M5NTIuLmI5ZmNjZjY0NWE5OTAwODhiZDFiMDA4NmZhYWE3OWZh
ZWY5OWM1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDEtMjggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlY292ZXIgYXVkaW8gYW5kIHZp
ZGVvIGNhcHR1cmUgZnJvbSBHUFVQcm9jZXNzIGNyYXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEwODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Ug
b2JzZXJ2ZSBHUFUgcHJvY2VzcyBjcmFzaC4KKyAgICAgICAgSWYgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZSBpcyBsaXZlIGFuZCBjYXB0dXJpbmcgaW4gR1BVUHJvY2VzcywgcmVzdGFydCBjYXB0
dXJlIGZyb20gV2ViUHJvY2Vzcy4KKyAgICAgICAgSWYgR1BVIHByb2Nlc3MgY3Jhc2hlcywgbWFr
ZSBzdXJlIHRvIHNlbmQgYmFjayB0aGUgbmVjZXNzYXJ5IGVudGl0bGVtZW50cyBhbmQgaW5mb3Jt
YXRpb24gdG8gR1BVUHJvY2VzcworICAgICAgICBvZiB3aGljaCBwcm9jZXNzZXMgYXJlIGFsbG93
ZWQgdG8gY2FwdHVyZS4KKworICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Z3B1UHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlcjo6ZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVv
RmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVy
ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpkaWRV
cGRhdGVTb3VyY2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMjEtMDEtMjcgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjcx
OTQwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTk0YTEy
ZmIzY2JjYmNmNTYyYzFhNDMxNDMxMDdhMzkxN2FhZDg0YS4uMzdhYTE2NmI4NDRjMGYxZjllZjY0
NmViZTRlMjk1NjYzMGNlM2IyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC0xMDM0OCw2ICsxMDM0OCwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJM
b2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKQogdm9pZCBXZWJQYWdlUHJveHk6OmdwdVByb2Nlc3ND
cmFzaGVkKCkKIHsKICAgICBwYWdlQ2xpZW50KCkuZ3B1UHJvY2Vzc0NyYXNoZWQoKTsKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgYm9vbCBzaG91bGRBbGxvd0F1ZGlvQ2FwdHVyZSA9
IGlzQ2FwdHVyaW5nQXVkaW8oKSAmJiBwcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0luR1BVUHJv
Y2Vzc0VuYWJsZWQoKTsKKyAgICBib29sIHNob3VsZEFsbG93VmlkZW9DYXB0dXJlID0gaXNDYXB0
dXJpbmdWaWRlbygpICYmIHByZWZlcmVuY2VzKCkuY2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5h
YmxlZCgpOworICAgIGJvb2wgc2hvdWxkQWxsb3dEaXNwbGF5Q2FwdHVyZSA9IGZhbHNlOworICAg
IGlmIChzaG91bGRBbGxvd0F1ZGlvQ2FwdHVyZSB8fCBzaG91bGRBbGxvd1ZpZGVvQ2FwdHVyZSkg
eworICAgICAgICBhdXRvJiBncHVQcm9jZXNzID0gcHJvY2VzcygpLnByb2Nlc3NQb29sKCkuZW5z
dXJlR1BVUHJvY2VzcygpOworICAgICAgICBncHVQcm9jZXNzLnVwZGF0ZUNhcHR1cmVBY2Nlc3Mo
c2hvdWxkQWxsb3dBdWRpb0NhcHR1cmUsIHNob3VsZEFsbG93VmlkZW9DYXB0dXJlLCBzaG91bGRB
bGxvd0Rpc3BsYXlDYXB0dXJlLCBtX3Byb2Nlc3MtPmNvcmVQcm9jZXNzSWRlbnRpZmllcigpLCBb
XSB7IH0pOworICAgIH0KKyNlbmRpZgogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwCmluZGV4IGRjNGI5MWM1OTczMjE4MTFkZjk3ZmJjM2MwZmY1ZTcyM2ZhODJjZGUuLmZhYzRl
YzExMTI3MDcwZmYxNDJlNTRhMmVlY2Y5Mjk5MmU4OWE4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmNwcApAQCAtODIsNiArODIsMTIgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6cmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGkKICAgICB9
KTsKIH0KIAordm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6ZGlkVXBkYXRlU291cmNl
Q29ubmVjdGlvbihSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7CisgICAgQVNT
RVJUKFdURjo6aXNNYWluUnVuTG9vcCgpKTsKKyAgICBzZXRDb25uZWN0aW9uKHNvdXJjZS5jb25u
ZWN0aW9uKCkpOworfQorCiB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpkaXNwYXRj
aFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX3F1ZXVlLT5k
aXNwYXRjaChXVEZNb3ZlKGNhbGxiYWNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCmluZGV4IDAx
YWUxNWY4ZjVmZGFmODYwNDMxOTYzYmIyMmNiMGZiMzFmNGI5NWUuLmE0MDk4YTk3ZDVkMTNlOWRl
Mzk4ZmY4ZGY4OGNmMDViMDU0ZWY4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCkBAIC00OCw2
ICs0OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZT4mJik7CiAgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogCisgICAgdm9pZCBkaWRVcGRhdGVTb3VyY2VDb25uZWN0
aW9uKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKwogICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNWY5YzJhYWQwOTE5NjJlMzU5NmVmODkzYjM1OWMxZDFk
Njg0YWUzNC4uZjEzY2IzYWM4MmU1MzE2OGVmZjBhMDZmMjJlYmQ2NGQyNmY5MTFmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcApAQCAtNDYsMjAgKzQ2LDExIEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyYgY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKQorUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcykKIHsKICAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwg
ZGV2aWNlLnR5cGUoKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIs
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3Vy
Y2UuY29weVJlZigpKTsKLSAgICBzb3VyY2UtPmNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoc291cmNlLT5pZGVudGlmaWVyKCks
IGRldmljZSwgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCksIGNvbnN0cmFpbnRzKSwgW3NvdXJj
ZSA9IHNvdXJjZS5jb3B5UmVmKCldKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdl
LCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgaWYgKCFz
dWNjZWVkZWQpIHsKLSAgICAgICAgICAgIHNvdXJjZS0+ZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVz
c2FnZSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHNvdXJjZS0+
c2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOwotICAgICAgICBz
b3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKLSAgICAgICAgc291cmNlLT5z
ZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKLSAgICAgICAgc291cmNlLT5z
ZXRBc1JlYWR5KCk7Ci0gICAgfSk7CisgICAgc291cmNlLT5jcmVhdGVSZW1vdGVNZWRpYVNvdXJj
ZShkZXZpY2UsIGNvbnN0cmFpbnRzKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCkBAIC0xMDYs
OCArOTcsMzIgQEAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmkKICAgICB9CiB9CiAKK3ZvaWQgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykK
K3sKKyAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSB7CisgICAgICAgIG1fZGV2
aWNlID0gZGV2aWNlOworICAgICAgICBtX2NvbnN0cmFpbnRzID0gY29uc3RyYWludHM7CisgICAg
fQorCisgICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50cyhpZGVudGlmaWVyKCksIGRldmljZSwgZGV2aWNlSURIYXNoU2FsdCgp
LCBjb25zdHJhaW50cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKGJv
b2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8m
JiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKKyAgICAgICAgICAg
IGRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICBzZXROYW1lKFN0cmluZyB7IHNldHRpbmdzLmxhYmVsKCkuc3RyaW5n
KCkgfSk7CisgICAgICAgIHNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICAgICAg
c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7CisgICAgICAgIHNldEFzUmVh
ZHkoKTsKKyAgICAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKKyAgICAgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
YWRkQ2xpZW50KCp0aGlzKTsKKyAgICB9KTsKK30KKwogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQogeworICAgIGlmIChtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpCisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQ
VVByb2Nlc3NDb25uZWN0aW9uKCkucmVtb3ZlQ2xpZW50KCp0aGlzKTsKKwogICAgIHN3aXRjaCAo
bV9kZXZpY2VUeXBlKSB7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNy
b3Bob25lOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0zMDUsNiArMzIwLDIxIEBAIHZv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKE9ic2VydmVyJiBvYnNl
cnZlcikKICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCit2b2lkIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24mKQoreworICAgIEFTU0VSVChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
OworICAgIGlmIChpc0VuZGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFuYWdlci5k
aWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKCp0aGlzKTsKKyAgICBjcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZShtX2RldmljZSwgbV9jb25zdHJhaW50cyk7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1
cGRhdGUgdGhlIHRyYWNrIGFjY29yZGluZyBjdXJyZW50IHNldHRpbmdzLgorICAgIGlmIChpc1By
b2R1Y2luZ0RhdGEoKSkKKyAgICAgICAgc3RhcnRQcm9kdWNpbmdEYXRhKCk7Cit9CisjZW5kaWYK
KwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDFjODkwYmViMWIwMzEzZDRl
MjMwMjk1MjlmNTFkMTExNzBlOWI1YjguLjEzYTMzY2NhNjRjM2Q2YjdiM2U3MWE0NGI1OTA2NTJh
MTJiNjQ0MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJHUFVQ
cm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KQEAgLTQ3LDkgKzQ4LDEzIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjsKIAotY2xh
c3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlIHsKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICAs
IHB1YmxpYyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CisjZW5kaWYKK3sKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA9IGZhbHNlKTsKKyAgICBzdGF0
aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJv
b2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CiAgICAgflJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KQEAgLTg2LDYgKzkxLDEy
IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZp
Y2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kZXZpY2VUeXBlOyB9CiAgICAgUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkgZmluYWw7CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpIGZpbmFsOworI2Vu
ZGlmCisKKyAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7CiAgICAgdm9p
ZCBkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSk7CiAgICAgdm9pZCBzZXRBc1JlYWR5KCk7
CiAgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYmKTsKQEAgLTEwNCw2ICsxMTUsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9p
c1JlYWR5IHsgZmFsc2UgfTsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBtX2NhbGxiYWNrOworICAgIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UgbV9kZXZpY2U7CisgICAgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBtX2NvbnN0
cmFpbnRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApp
bmRleCAwODNmODI5YWY3NWFlOTlmNmMyOGNkNjcwYjkwYTY2Nzc4OWYzN2UzLi5iZjhkOTJjNDJl
ODg1NTMzOTIxN2MyMzg0MGQyZmFlYTNlM2U1ZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAg
LTE1OCw3ICsxNTgsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTbwogICAgICAgICBEZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRy
dWUpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3Jl
YXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFn
ZXIpOworICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNl
LCAqY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6QXVkaW9GYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUp
CkBAIC0xNzYsNyArMTc2LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU28KICAgICAgICAgcmV0
dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlZpZGVvIGNhcHR1cmUgaW4gR1BVUHJvY2VzcyBp
cyBub3QgaW1wbGVtZW50ZWQiX3MgfTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgbV9tYW5hZ2VyKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CiB9CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpAQCAtMTkxLDcgKzE5MSwxMiBAQCBDYXB0dXJlU291cmNlT3JFcnJv
ciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlD
YXB0dQogICAgIGlmICghY29uc3RyYWludHMpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBy
ZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFp
bnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2VyKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2Vy
LCBmYWxzZSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmRpZFVwZGF0ZVNv
dXJjZUNvbm5lY3Rpb24oUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAg
IG1fcmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbihz
b3VyY2UpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IGIwYjE5ODI5MDU0MjJkZTcyOTU0
MmFiYjNlZTA5YmM3ZTMzMGQwMmQuLjllMDJhYWJjYmNkNWRjNGExMDU0NmJmYjBiMTFmMTQxNDAz
MjI4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKICAgICB2
b2lkIHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7
CisgICAgdm9pZCBkaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UmKTsKIAogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
IGZhY3RvcmllcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
R2V0VXNlck1lZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNl
ck1lZGlhLm1tCmluZGV4IDc3ZjY2YTkwYmVlZTRiNmJjMmE4OTlmNTk2NjExNjM4Mjg4NzYxMTYu
LmRjOGI4M2M0Zjk3ODNlYmVmNzI2MGVhYTc5OGIzMzVkMzc2NjE5YmEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KQEAgLTM4LDYgKzM4
LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0ludGVy
bmFsRGVidWdGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM3Miw2ICszNzMsODQgQEAgVEVTVChXZWJLaXQsIFdl
YkF1ZGlvQW5kR2V0VXNlck1lZGlhKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCitURVNUKFdlYktpdDIsIENyYXNoR1BVUHJvY2Vzc1doaWxlQ2FwdHVyaW5nKQoreworICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXTsKKworICAgIGZvciAoX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKmZlYXR1cmUgaW4g
W1dLUHJlZmVyZW5jZXMgX2ludGVybmFsRGVidWdGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtm
ZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFi
bGVkIl0pCisgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckludGVy
bmFsRGVidWdGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1
YWxUb1N0cmluZzpAIkNhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCJdKQorICAgICAgICAg
ICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOk5PIGZvckludGVybmFsRGVidWdGZWF0dXJlOmZl
YXR1cmVdOworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNhcHR1
cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQiXSkKKyAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBf
c2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CisgICAgfQor
CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9
IE5POworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7
CisgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisKKyAg
ICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9j
XSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRk
U2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwor
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0dldFVzZXJN
ZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgd2ViVmlldy5nZXQoKS5V
SURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CisKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VO
YW1lZDpAImdldFVzZXJNZWRpYSJdOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVT
dGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOwor
CisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJjYXB0dXJlQXVkaW9BbmRWaWRlbygpIl07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKworICAgIGF1dG8gd2ViVmlld1BJRCA9IFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CisKKyAgICAvLyBUaGUgR1BVIHByb2Nlc3Mgc2hvdWxkIGdldCBsYXVu
Y2hlZC4KKyAgICBhdXRvKiBwcm9jZXNzUG9vbCA9IGNvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vz
c1Bvb2w7CisgICAgdW5zaWduZWQgdGltZW91dCA9IDA7CisgICAgd2hpbGUgKCFbcHJvY2Vzc1Bv
b2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSAmJiB0aW1lb3V0KysgPCAxMDApCisgICAgICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMSk7CisKKyAgICBFWFBFQ1RfTkUoW3Byb2Nlc3NQ
b29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0sIDApOworICAgIGlmICghW3Byb2Nlc3NQb29sIF9n
cHVQcm9jZXNzSWRlbnRpZmllcl0pCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGdwdVByb2Nl
c3NQSUQgPSBbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIC8vIEtp
bGwgdGhlIEdQVSBQcm9jZXNzLgorICAgIGtpbGwoZ3B1UHJvY2Vzc1BJRCwgOSk7CisKKyAgICAv
LyBHUFUgUHJvY2VzcyBzaG91bGQgZ2V0IHJlbGF1bmNoZWQuCisgICAgdGltZW91dCA9IDA7Cisg
ICAgd2hpbGUgKCghW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0gfHwgW3Byb2Nl
c3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0gPT0gZ3B1UHJvY2Vzc1BJRCkgJiYgdGltZW91
dCsrIDwgMTAwKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworICAg
IEVYUEVDVF9ORShbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSwgMCk7CisgICAg
RVhQRUNUX05FKFtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdLCBncHVQcm9jZXNz
UElEKTsKKyAgICBncHVQcm9jZXNzUElEID0gW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRp
Zmllcl07CisKKyAgICAvLyBNYWtlIHN1cmUgdGhlIFdlYlByb2Nlc3MgZGlkIG5vdCBjcmFzaC4K
KyAgICBFWFBFQ1RfRVEod2ViVmlld1BJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XSk7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAImNyZWF0ZUNvbm5lY3Rpb24oKSJdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNoZWNrVmlkZW9TdGF0dXMoKSJdOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNoZWNrQXVkaW9TdGF0dXMoKSJd
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBFWFBFQ1RfRVEo
Z3B1UHJvY2Vzc1BJRCwgW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0pOworICAg
IEVYUEVDVF9FUSh3ZWJWaWV3UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvZ2V0VXNlck1lZGlhLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9nZXRVc2VyTWVkaWEuaHRtbAppbmRleCBhNjNmNTAyNTA1NjA1YjQwZjUwZjZmNjY0NmVm
OWY1ZjFiMGMwNjRmLi4yNDMwNTAyNWNhMTU1OWQyN2ZmZDlmYmVlY2EzNjJlYmRjMDE5NDA0IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9nZXRVc2VyTWVkaWEu
aHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9nZXRVc2VyTWVkaWEu
aHRtbApAQCAtNjMsNyArNjMsMTAgQEAKIAogICAgICAgICAgICAgZnVuY3Rpb24gY2FwdHVyZUF1
ZGlvQW5kVmlkZW8oKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9KS50aGVu
KHMgPT4gc3RyZWFtID0gcyk7CisgICAgICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0pLnRoZW4ocyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0
TWVzc2FnZSgiUEFTUyIpOworICAgICAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOworICAgICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBmdW5jdGlvbiBub3Rp
ZnlFbmRlZEV2ZW50KCkKQEAgLTkyLDExICs5NSw4MCBAQAogICAgICAgICAgICAgICAgIHdpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVzc2FnZShSVENSdHBTZW5kZXIuZ2V0
Q2FwYWJpbGl0aWVzKCd2aWRlbycpICE9IG51bGwgPyAiUEFTUyIgOiAiRkFJTCIpOwogICAgICAg
ICAgICAgfQogCisgICAgICAgICAgICBmdW5jdGlvbiBnZXRTdGF0cyhjb25uZWN0aW9uLCB0eXBl
LCBraW5kKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBjb25uZWN0aW9u
LmdldFN0YXRzKCkudGhlbigocmVwb3J0KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHZhciBz
dGF0czsKKyAgICAgICAgICAgICAgICAgICAgcmVwb3J0LmZvckVhY2goKHN0YXRJdGVtKSA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdEl0ZW0udHlwZSA9PT0gdHlwZSAmJiBz
dGF0SXRlbS5raW5kID09PSBraW5kKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dHMgPSBzdGF0SXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0czsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIHBjMSwgcGMyOworICAg
ICAgICAgICAgZnVuY3Rpb24gY3JlYXRlQ29ubmVjdGlvbigpIHsKKyAgICAgICAgICAgICAgICBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAgICAgICAgICAgICBwYzIgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKworICAgICAgICAgICAgICAgIHBjMS5vbmljZWNhbmRpZGF0
ZSA9IChlKSA9PiB7IGlmIChlLmNhbmRpZGF0ZSkgcGMyLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRp
ZGF0ZSkgfQorICAgICAgICAgICAgICAgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IChlKSA9PiB7IGlm
IChlLmNhbmRpZGF0ZSkgcGMxLmFkZEljZUNhbmRpZGF0ZShlLmNhbmRpZGF0ZSkgfQorCisgICAg
ICAgICAgICAgICAgc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gcGMxLmFkZFRy
YWNrKHRyYWNrLCBzdHJlYW0pKTsKKyAgICAgICAgICAgICAgICBwYzIub250cmFjayA9IChlKSA9
PiB7CisgICAgICAgICAgICAgICAgICAgIHJlbW90ZVZpZGVvLnNyY09iamVjdCA9IGUuc3RyZWFt
c1swXTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwYzEuY3JlYXRlT2Zm
ZXIoKQorICAgICAgICAgICAgICAgICAgICAudGhlbigobykgPT4gcGMxLnNldExvY2FsRGVzY3Jp
cHRpb24obykpCisgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHBjMi5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbikpCisgICAgICAgICAgICAgICAgICAgIC50
aGVuKCgpID0+IHBjMi5jcmVhdGVBbnN3ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgLnRoZW4o
KGEpID0+IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGEpKQorICAgICAgICAgICAgICAgICAgICAu
dGhlbigoYSkgPT4gcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9u
KSkKKyAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCJQQVNT
Iik7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBmdW5jdGlvbiBjaGVja1ZpZGVvU3RhdHVzKGNvdW50ZXIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIWNvdW50ZXIpCisgICAgICAgICAgICAgICAgICAgIGNvdW50ZXIgPSAwOworICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKGNvdW50ZXIgPiAxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCJGQUlMIik7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgZ2V0U3RhdHMocGMxLCAib3V0Ym91bmQtcnRwIiwgInZpZGVvIikudGhlbigoc3RhdHMpID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRzICYmIHN0YXRzLmZyYW1lc0VuY29kZWQp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
Lmd1bS5wb3N0TWVzc2FnZSgiUEFTUyIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQo
KCkgPT4gY2hlY2tWaWRlb1N0YXR1cygrK2NvdW50ZXIpLCA1MCk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrQXVkaW9TdGF0
dXMoY291bnRlcikgeworICAgICAgICAgICAgICAgIGlmICghY291bnRlcikKKyAgICAgICAgICAg
ICAgICAgICAgY291bnRlciA9IDA7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoY291bnRlciA+
IDEwMCkgeworICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy5ndW0ucG9zdE1lc3NhZ2UoIkZBSUwiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnZXRTdGF0cyhwYzIsICJpbmJvdW5k
LXJ0cCIsICJhdWRpbyIpLnRoZW4oKHN0YXRzKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChzdGF0cyAmJiBzdGF0cy5hdWRpb0xldmVsID4gMCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCJQQVNTIik7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBjaGVja0F1ZGlvU3RhdHVzKCsr
Y291bnRlciksIDUwKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgPC9zY3JpcHQ+CiAgICAgPGhlYWQ+CiAKICAgICA8Ym9keSBvbmxvYWQ9InByb21wdEZvckNh
cHR1cmUoKSI+CiAgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGNvbnRyb2xzPjwvdmlkZW8+Cisg
ICAgICAgIDx2aWRlbyBpZD0icmVtb3RlVmlkZW8iIGF1dG9wbGF5IHBsYXlzaW5saW5lPjwvdmlk
ZW8+CiAgICAgICAgIDxwPgogICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InN0b3AoKSI+U3RvcDwv
YnV0dG9uPgogICAgICAgICA8L3A+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418645</attachid>
            <date>2021-01-28 08:40:28 -0800</date>
            <delta_ts>2021-01-29 00:48:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221086-20210128174027.patch</filename>
            <type>text/plain</type>
            <size>21048</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxOTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkwZDQzYTkwYmJiYTczZWRl
YmUwNmU3MTE5N2Y2MjYwZjZmM2M5NTIuLmI5ZmNjZjY0NWE5OTAwODhiZDFiMDA4NmZhYWE3OWZh
ZWY5OWM1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDEtMjggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlY292ZXIgYXVkaW8gYW5kIHZp
ZGVvIGNhcHR1cmUgZnJvbSBHUFVQcm9jZXNzIGNyYXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEwODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Ug
b2JzZXJ2ZSBHUFUgcHJvY2VzcyBjcmFzaC4KKyAgICAgICAgSWYgUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZSBpcyBsaXZlIGFuZCBjYXB0dXJpbmcgaW4gR1BVUHJvY2VzcywgcmVzdGFydCBjYXB0
dXJlIGZyb20gV2ViUHJvY2Vzcy4KKyAgICAgICAgSWYgR1BVIHByb2Nlc3MgY3Jhc2hlcywgbWFr
ZSBzdXJlIHRvIHNlbmQgYmFjayB0aGUgbmVjZXNzYXJ5IGVudGl0bGVtZW50cyBhbmQgaW5mb3Jt
YXRpb24gdG8gR1BVUHJvY2VzcworICAgICAgICBvZiB3aGljaCBwcm9jZXNzZXMgYXJlIGFsbG93
ZWQgdG8gY2FwdHVyZS4KKworICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Z3B1UHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlcjo6ZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6flJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVv
RmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVy
ZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpkaWRV
cGRhdGVTb3VyY2VDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMjEtMDEtMjcgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjcx
OTQwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTk0YTEy
ZmIzY2JjYmNmNTYyYzFhNDMxNDMxMDdhMzkxN2FhZDg0YS4uMzdhYTE2NmI4NDRjMGYxZjllZjY0
NmViZTRlMjk1NjYzMGNlM2IyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC0xMDM0OCw2ICsxMDM0OCwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJM
b2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKQogdm9pZCBXZWJQYWdlUHJveHk6OmdwdVByb2Nlc3ND
cmFzaGVkKCkKIHsKICAgICBwYWdlQ2xpZW50KCkuZ3B1UHJvY2Vzc0NyYXNoZWQoKTsKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgYm9vbCBzaG91bGRBbGxvd0F1ZGlvQ2FwdHVyZSA9
IGlzQ2FwdHVyaW5nQXVkaW8oKSAmJiBwcmVmZXJlbmNlcygpLmNhcHR1cmVBdWRpb0luR1BVUHJv
Y2Vzc0VuYWJsZWQoKTsKKyAgICBib29sIHNob3VsZEFsbG93VmlkZW9DYXB0dXJlID0gaXNDYXB0
dXJpbmdWaWRlbygpICYmIHByZWZlcmVuY2VzKCkuY2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5h
YmxlZCgpOworICAgIGJvb2wgc2hvdWxkQWxsb3dEaXNwbGF5Q2FwdHVyZSA9IGZhbHNlOworICAg
IGlmIChzaG91bGRBbGxvd0F1ZGlvQ2FwdHVyZSB8fCBzaG91bGRBbGxvd1ZpZGVvQ2FwdHVyZSkg
eworICAgICAgICBhdXRvJiBncHVQcm9jZXNzID0gcHJvY2VzcygpLnByb2Nlc3NQb29sKCkuZW5z
dXJlR1BVUHJvY2VzcygpOworICAgICAgICBncHVQcm9jZXNzLnVwZGF0ZUNhcHR1cmVBY2Nlc3Mo
c2hvdWxkQWxsb3dBdWRpb0NhcHR1cmUsIHNob3VsZEFsbG93VmlkZW9DYXB0dXJlLCBzaG91bGRB
bGxvd0Rpc3BsYXlDYXB0dXJlLCBtX3Byb2Nlc3MtPmNvcmVQcm9jZXNzSWRlbnRpZmllcigpLCBb
XSB7IH0pOworICAgIH0KKyNlbmRpZgogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
Y3BwCmluZGV4IGRjNGI5MWM1OTczMjE4MTFkZjk3ZmJjM2MwZmY1ZTcyM2ZhODJjZGUuLmZhYzRl
YzExMTI3MDcwZmYxNDJlNTRhMmVlY2Y5Mjk5MmU4OWE4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyLmNwcApAQCAtODIsNiArODIsMTIgQEAgdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6cmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGkKICAgICB9
KTsKIH0KIAordm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6ZGlkVXBkYXRlU291cmNl
Q29ubmVjdGlvbihSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpCit7CisgICAgQVNT
RVJUKFdURjo6aXNNYWluUnVuTG9vcCgpKTsKKyAgICBzZXRDb25uZWN0aW9uKHNvdXJjZS5jb25u
ZWN0aW9uKCkpOworfQorCiB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpkaXNwYXRj
aFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX3F1ZXVlLT5k
aXNwYXRjaChXVEZNb3ZlKGNhbGxiYWNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCmluZGV4IDAx
YWUxNWY4ZjVmZGFmODYwNDMxOTYzYmIyMmNiMGZiMzFmNGI5NWUuLmE0MDk4YTk3ZDVkMTNlOWRl
Mzk4ZmY4ZGY4OGNmMDViMDU0ZWY4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCkBAIC00OCw2
ICs0OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZT4mJik7CiAgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogCisgICAgdm9pZCBkaWRVcGRhdGVTb3VyY2VDb25uZWN0
aW9uKFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UmKTsKKwogICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggNWY5YzJhYWQwOTE5NjJlMzU5NmVmODkzYjM1OWMxZDFk
Njg0YWUzNC4uZjEzY2IzYWM4MmU1MzE2OGVmZjBhMDZmMjJlYmQ2NGQyNmY5MTFmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlLmNwcApAQCAtNDYsMjAgKzQ2LDExIEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGNv
bnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50cyYgY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0
LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKQorUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMmIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2VzcykKIHsKICAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwg
ZGV2aWNlLnR5cGUoKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIs
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKICAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3Vy
Y2UuY29weVJlZigpKTsKLSAgICBzb3VyY2UtPmNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoc291cmNlLT5pZGVudGlmaWVyKCks
IGRldmljZSwgc291cmNlLT5kZXZpY2VJREhhc2hTYWx0KCksIGNvbnN0cmFpbnRzKSwgW3NvdXJj
ZSA9IHNvdXJjZS5jb3B5UmVmKCldKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdl
LCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMpIHsKLSAgICAgICAgaWYgKCFz
dWNjZWVkZWQpIHsKLSAgICAgICAgICAgIHNvdXJjZS0+ZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVz
c2FnZSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHNvdXJjZS0+
c2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOwotICAgICAgICBz
b3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKLSAgICAgICAgc291cmNlLT5z
ZXRDYXBhYmlsaXRpZXMoV1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKLSAgICAgICAgc291cmNlLT5z
ZXRBc1JlYWR5KCk7Ci0gICAgfSk7CisgICAgc291cmNlLT5jcmVhdGVSZW1vdGVNZWRpYVNvdXJj
ZShkZXZpY2UsIGNvbnN0cmFpbnRzKTsKICAgICByZXR1cm4gc291cmNlOwogfQogCkBAIC0xMDYs
OCArOTcsMzIgQEAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6UmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmkKICAgICB9CiB9CiAKK3ZvaWQgUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cykK
K3sKKyAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSB7CisgICAgICAgIG1fZGV2
aWNlID0gZGV2aWNlOworICAgICAgICBtX2NvbnN0cmFpbnRzID0gY29uc3RyYWludHM7CisgICAg
fQorCisgICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50cyhpZGVudGlmaWVyKCksIGRldmljZSwgZGV2aWNlSURIYXNoU2FsdCgp
LCBjb25zdHJhaW50cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKGJv
b2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8m
JiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKKyAgICAgICAgICAg
IGRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICBzZXROYW1lKFN0cmluZyB7IHNldHRpbmdzLmxhYmVsKCkuc3RyaW5n
KCkgfSk7CisgICAgICAgIHNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICAgICAg
c2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7CisgICAgICAgIHNldEFzUmVh
ZHkoKTsKKyAgICAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKKyAgICAgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
YWRkQ2xpZW50KCp0aGlzKTsKKyAgICB9KTsKK30KKwogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UoKQogeworICAgIGlmIChtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpCisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQ
VVByb2Nlc3NDb25uZWN0aW9uKCkucmVtb3ZlQ2xpZW50KCp0aGlzKTsKKwogICAgIHN3aXRjaCAo
bV9kZXZpY2VUeXBlKSB7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNy
b3Bob25lOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0zMDUsNiArMzIwLDIxIEBAIHZv
aWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFRvRW5kKE9ic2VydmVyJiBvYnNl
cnZlcikKICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCit2b2lkIFJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24mKQoreworICAgIEFTU0VSVChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
OworICAgIGlmIChpc0VuZGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFuYWdlci5k
aWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKCp0aGlzKTsKKyAgICBjcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZShtX2RldmljZSwgbV9jb25zdHJhaW50cyk7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1
cGRhdGUgdGhlIHRyYWNrIGFjY29yZGluZyBjdXJyZW50IHNldHRpbmdzLgorICAgIGlmIChpc1By
b2R1Y2luZ0RhdGEoKSkKKyAgICAgICAgc3RhcnRQcm9kdWNpbmdEYXRhKCk7Cit9CisjZW5kaWYK
KwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDFjODkwYmViMWIwMzEzZDRl
MjMwMjk1MjlmNTFkMTExNzBlOWI1YjguLjEzYTMzY2NhNjRjM2Q2YjdiM2U3MWE0NGI1OTA2NTJh
MTJiNjQ0MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJHUFVQ
cm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KQEAgLTQ3LDkgKzQ4LDEzIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjsKIAotY2xh
c3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlIHsKK2NsYXNzIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICAs
IHB1YmxpYyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CisjZW5kaWYKK3sKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25z
dCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyYsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyA9IGZhbHNlKTsKKyAgICBzdGF0
aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJv
b2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CiAgICAgflJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UoKTsKIAogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KQEAgLTg2LDYgKzkxLDEy
IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZp
Y2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kZXZpY2VUeXBlOyB9CiAgICAgUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkgZmluYWw7CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAorICAgIHZvaWQgZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpIGZpbmFsOworI2Vu
ZGlmCisKKyAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJik7CiAgICAgdm9p
ZCBkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSk7CiAgICAgdm9pZCBzZXRBc1JlYWR5KCk7
CiAgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYmKTsKQEAgLTEwNCw2ICsxMTUsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9p
c1JlYWR5IHsgZmFsc2UgfTsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBtX2NhbGxiYWNrOworICAgIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UgbV9kZXZpY2U7CisgICAgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBtX2NvbnN0
cmFpbnRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApp
bmRleCAwODNmODI5YWY3NWFlOTlmNmMyOGNkNjcwYjkwYTY2Nzc4OWYzN2UzLi5iZjhkOTJjNDJl
ODg1NTMzOTIxN2MyMzg0MGQyZmFlYTNlM2U1ZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAg
LTE1OCw3ICsxNTgsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTbwogICAgICAgICBEZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRy
dWUpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3Jl
YXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFn
ZXIpOworICAgIHJldHVybiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpjcmVhdGUoZGV2aWNl
LCAqY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6QXVkaW9GYWN0b3J5OjpzZXRTaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKGJvb2wgdmFsdWUp
CkBAIC0xNzYsNyArMTc2LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU28KICAgICAgICAgcmV0
dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlZpZGVvIGNhcHR1cmUgaW4gR1BVUHJvY2VzcyBp
cyBub3QgaW1wbGVtZW50ZWQiX3MgfTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OmNyZWF0ZShkZXZpY2UsICpjb25zdHJhaW50cywgeyB9LCBXVEZNb3Zl
KGhhc2hTYWx0KSwgbV9tYW5hZ2VyKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQp
LCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CiB9CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpAQCAtMTkxLDcgKzE5MSwxMiBAQCBDYXB0dXJlU291cmNlT3JFcnJv
ciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlD
YXB0dQogICAgIGlmICghY29uc3RyYWludHMpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBy
ZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFp
bnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2VyKTsKKyAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgKmNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2Vy
LCBmYWxzZSk7Cit9CisKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmRpZFVwZGF0ZVNv
dXJjZUNvbm5lY3Rpb24oUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKQoreworICAg
IG1fcmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbihz
b3VyY2UpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IGIwYjE5ODI5MDU0MjJkZTcyOTU0
MmFiYjNlZTA5YmM3ZTMzMGQwMmQuLjllMDJhYWJjYmNkNWRjNGExMDU0NmJmYjBiMTFmMTQxNDAz
MjI4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKICAgICB2
b2lkIHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7
CisgICAgdm9pZCBkaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKFJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2UmKTsKIAogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
IGZhY3RvcmllcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
R2V0VXNlck1lZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNl
ck1lZGlhLm1tCmluZGV4IDc3ZjY2YTkwYmVlZTRiNmJjMmE4OTlmNTk2NjExNjM4Mjg4NzYxMTYu
LjQ4NDA0YjM2NWJiZDdiNjg5MGNiZjMxNGYwMjQ2NGU3OTViNjc3ODAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW0KQEAgLTM4LDYgKzM4
LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0ludGVy
bmFsRGVidWdGZWF0dXJlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM3Miw2ICszNzMsODQgQEAgVEVTVChXZWJLaXQsIFdl
YkF1ZGlvQW5kR2V0VXNlck1lZGlhKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCitURVNUKFdlYktpdDIsIENyYXNoR1BVUHJvY2Vzc1doaWxlQ2FwdHVyaW5nKQoreworICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXTsKKworICAgIGZvciAoX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKmZlYXR1cmUgaW4g
W1dLUHJlZmVyZW5jZXMgX2ludGVybmFsRGVidWdGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtm
ZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFi
bGVkIl0pCisgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckludGVy
bmFsRGVidWdGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1
YWxUb1N0cmluZzpAIkNhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCJdKQorICAgICAgICAg
ICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOk5PIGZvckludGVybmFsRGVidWdGZWF0dXJlOmZl
YXR1cmVdOworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIkNhcHR1
cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQiXSkKKyAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBf
c2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CisgICAgfQor
CisgICAgcHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9
IE5POworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkuX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBZRVM7
CisgICAgcHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisKKyAg
ICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0dVTU1lc3NhZ2VIYW5kbGVyIGFsbG9j
XSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRk
U2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImd1bSJdOwor
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0dldFVzZXJN
ZWRpYUNhcHR1cmVVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgd2ViVmlldy5nZXQoKS5V
SURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CisKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VO
YW1lZDpAImdldFVzZXJNZWRpYSJdOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVT
dGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOwor
CisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJjYXB0dXJlQXVkaW9BbmRWaWRlbyh0cnVlKSJdOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBhdXRvIHdlYlZpZXdQSUQgPSBbd2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgLy8gVGhlIEdQVSBwcm9jZXNzIHNob3VsZCBnZXQg
bGF1bmNoZWQuCisgICAgYXV0byogcHJvY2Vzc1Bvb2wgPSBjb25maWd1cmF0aW9uLmdldCgpLnBy
b2Nlc3NQb29sOworICAgIHVuc2lnbmVkIHRpbWVvdXQgPSAwOworICAgIHdoaWxlICghW3Byb2Nl
c3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0gJiYgdGltZW91dCsrIDwgMTAwKQorICAgICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworCisgICAgRVhQRUNUX05FKFtwcm9j
ZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdLCAwKTsKKyAgICBpZiAoIVtwcm9jZXNzUG9v
bCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBncHVQ
cm9jZXNzUElEID0gW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICAv
LyBLaWxsIHRoZSBHUFUgUHJvY2Vzcy4KKyAgICBraWxsKGdwdVByb2Nlc3NQSUQsIDkpOworCisg
ICAgLy8gR1BVIFByb2Nlc3Mgc2hvdWxkIGdldCByZWxhdW5jaGVkLgorICAgIHRpbWVvdXQgPSAw
OworICAgIHdoaWxlICgoIVtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdIHx8IFtw
cm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdID09IGdwdVByb2Nlc3NQSUQpICYmIHRp
bWVvdXQrKyA8IDEwMCkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC4xKTsK
KyAgICBFWFBFQ1RfTkUoW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0sIDApOwor
ICAgIEVYUEVDVF9ORShbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSwgZ3B1UHJv
Y2Vzc1BJRCk7CisgICAgZ3B1UHJvY2Vzc1BJRCA9IFtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lk
ZW50aWZpZXJdOworCisgICAgLy8gTWFrZSBzdXJlIHRoZSBXZWJQcm9jZXNzIGRpZCBub3QgY3Jh
c2guCisgICAgRVhQRUNUX0VRKHdlYlZpZXdQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHQ6QCJjcmVhdGVDb25uZWN0aW9uKCkiXTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjaGVja1ZpZGVvU3RhdHVzKCkiXTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgZG9uZSA9IGZhbHNlOworICAg
IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjaGVja0F1ZGlvU3RhdHVz
KCkiXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgRVhQRUNU
X0VRKGdwdVByb2Nlc3NQSUQsIFtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdKTsK
KyAgICBFWFBFQ1RfRVEod2ViVmlld1BJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCiAjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L2dldFVzZXJNZWRpYS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvZ2V0VXNlck1lZGlhLmh0bWwKaW5kZXggYTYzZjUwMjUwNTYwNWI0MGY1MGY2ZjY2
NDZlZjlmNWYxYjBjMDY0Zi4uODk1NjgwMzlmZDE1NWM5OTVlNTc0Yjk4ZWQ0NjU2ZjlkMDY3NDYz
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvZ2V0VXNlck1l
ZGlhLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvZ2V0VXNlck1l
ZGlhLmh0bWwKQEAgLTYxLDkgKzYxLDEzIEBACiAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSkudGhlbihzID0+IHZpZGVvLnNy
Y09iamVjdCA9IHMpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbiBjYXB0
dXJlQXVkaW9BbmRWaWRlbygpCisgICAgICAgICAgICBmdW5jdGlvbiBjYXB0dXJlQXVkaW9BbmRW
aWRlbyhub3RpZnlTdWNjZXNzKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9
KS50aGVuKHMgPT4gc3RyZWFtID0gcyk7CisgICAgICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0pLnRoZW4ocyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChub3RpZnlTdWNjZXNzKQorICAgICAgICAgICAg
ICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdl
KCJQQVNTIik7CisgICAgICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7CisgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIG5vdGlmeUVuZGVk
RXZlbnQoKQpAQCAtOTIsNiArOTYsNzEgQEAKICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1lc3NhZ2UoUlRDUnRwU2VuZGVyLmdldENhcGFiaWxp
dGllcygndmlkZW8nKSAhPSBudWxsID8gIlBBU1MiIDogIkZBSUwiKTsKICAgICAgICAgICAgIH0K
IAorICAgICAgICAgICAgZnVuY3Rpb24gZ2V0U3RhdHMoY29ubmVjdGlvbiwgdHlwZSwga2luZCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY29ubmVjdGlvbi5nZXRTdGF0
cygpLnRoZW4oKHJlcG9ydCkgPT4geworICAgICAgICAgICAgICAgICAgICB2YXIgc3RhdHM7Cisg
ICAgICAgICAgICAgICAgICAgIHJlcG9ydC5mb3JFYWNoKChzdGF0SXRlbSkgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHN0YXRJdGVtLnR5cGUgPT09IHR5cGUgJiYgc3RhdEl0ZW0u
a2luZCA9PT0ga2luZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRzID0gc3Rh
dEl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdHM7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBwYzEsIHBjMjsKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGNyZWF0ZUNvbm5lY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcGMxID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgICAgICAgICAgICAgcGMyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisKKyAgICAgICAgICAgICAgICBwYzEub25pY2VjYW5kaWRhdGUgPSAoZSkg
PT4geyBpZiAoZS5jYW5kaWRhdGUpIHBjMi5hZGRJY2VDYW5kaWRhdGUoZS5jYW5kaWRhdGUpIH0K
KyAgICAgICAgICAgICAgICBwYzIub25pY2VjYW5kaWRhdGUgPSAoZSkgPT4geyBpZiAoZS5jYW5k
aWRhdGUpIHBjMS5hZGRJY2VDYW5kaWRhdGUoZS5jYW5kaWRhdGUpIH0KKworICAgICAgICAgICAg
ICAgIHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHBjMS5hZGRUcmFjayh0cmFj
aywgc3RyZWFtKSk7CisKKyAgICAgICAgICAgICAgICBwYzEuY3JlYXRlT2ZmZXIoKQorICAgICAg
ICAgICAgICAgICAgICAudGhlbigobykgPT4gcGMxLnNldExvY2FsRGVzY3JpcHRpb24obykpCisg
ICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihw
YzEubG9jYWxEZXNjcmlwdGlvbikpCisgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHBj
Mi5jcmVhdGVBbnN3ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGEpID0+IHBjMi5z
ZXRMb2NhbERlc2NyaXB0aW9uKGEpKQorICAgICAgICAgICAgICAgICAgICAudGhlbigoYSkgPT4g
cGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKSkKKyAgICAgICAg
ICAgICAgICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCJQQVNTIik7CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBj
aGVja1ZpZGVvU3RhdHVzKGNvdW50ZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWNvdW50ZXIp
CisgICAgICAgICAgICAgICAgICAgIGNvdW50ZXIgPSAwOworICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKGNvdW50ZXIgPiAxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCJGQUlMIik7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ2V0U3RhdHMo
cGMxLCAib3V0Ym91bmQtcnRwIiwgInZpZGVvIikudGhlbigoc3RhdHMpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHN0YXRzICYmIHN0YXRzLmZyYW1lc0VuY29kZWQpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmd1bS5wb3N0TWVz
c2FnZSgiUEFTUyIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gY2hlY2tW
aWRlb1N0YXR1cygrK2NvdW50ZXIpLCA1MCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrQXVkaW9TdGF0dXMoY291bnRlcikg
eworICAgICAgICAgICAgICAgIGlmICghY291bnRlcikKKyAgICAgICAgICAgICAgICAgICAgY291
bnRlciA9IDA7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoY291bnRlciA+IDEwMCkgeworICAg
ICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5ndW0ucG9zdE1l
c3NhZ2UoIkZBSUwiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBnZXRTdGF0cyhwYzIsICJpbmJvdW5kLXJ0cCIsICJhdWRp
byIpLnRoZW4oKHN0YXRzKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0cyAmJiBz
dGF0cy5hdWRpb0xldmVsID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMuZ3VtLnBvc3RNZXNzYWdlKCJQQVNTIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBjaGVja0F1ZGlvU3RhdHVzKCsrY291bnRlciksIDUw
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgPC9zY3JpcHQ+
CiAgICAgPGhlYWQ+CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>