<?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>207086</bug_id>
          
          <creation_ts>2020-01-31 21:42:19 -0800</creation_ts>
          <short_desc>[JSC] Hold StructureID instead of Structure* in PolyProtoAccessChain and DFG::CommonData</short_desc>
          <delta_ts>2020-01-31 22:19:19 -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>New Bugs</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1613701</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-31 21:42:19 -0800</bug_when>
    <thetext>[JSC] Hold StructureID instead of Structure* in PolyProtoAccessChain and DFG::CommonData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613706</commentid>
    <comment_count>1</comment_count>
      <attachid>389453</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-31 21:46:04 -0800</bug_when>
    <thetext>Created attachment 389453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613710</commentid>
    <comment_count>2</comment_count>
      <attachid>389454</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-31 21:51:00 -0800</bug_when>
    <thetext>Created attachment 389454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613717</commentid>
    <comment_count>3</comment_count>
      <attachid>389454</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-01-31 22:06:20 -0800</bug_when>
    <thetext>Comment on attachment 389454
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613719</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-31 22:18:24 -0800</bug_when>
    <thetext>Committed r255542: &lt;https://trac.webkit.org/changeset/255542&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613720</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-31 22:19:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/59084969&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389453</attachid>
            <date>2020-01-31 21:46:04 -0800</date>
            <delta_ts>2020-01-31 21:50:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207086-20200131214603.patch</filename>
            <type>text/plain</type>
            <size>29153</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
Y2NiNThlZGJjYTMxZjMyZGQ4NWRmODViYzc0M2RlMzVkYTQ5Njk5Li4zOWE3OWU3MzYwNTUxN2M5
MTNhMWUxMmQ1OWIzN2VmMjc5YzZiMjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NCBAQAorMjAyMC0wMS0zMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEhvbGQgU3RydWN0dXJlSUQgaW5zdGVhZCBvZiBTdHJ1Y3R1cmUq
IGluIFBvbHlQcm90b0FjY2Vzc0NoYWluIGFuZCBERkc6OkNvbW1vbkRhdGEKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzA4NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvbHlQcm90b0FjY2Vzc0NoYWlu
IGFuZCBERkc6OkNvbW1vbkRhdGEgYXJlIGtlcHQgYWxpdmUgc28gbG9uZyBhcyBhc3NvY2lhdGVk
IEFjY2Vzc0Nhc2UgLyBERkcvRlRMIENvZGVCbG9jaworICAgICAgICBpcyBhbGl2ZS4gVGhleSBo
b2xkIFZlY3RvcjxTdHJ1Y3R1cmUqPiAvIFZlY3RvcjxXcml0ZUJhcnJpZXI8U3RydWN0dXJlKj4+
LCBidXQgYWNjZXNzIGZyZXF1ZW5jeSBpcyBsb3cuIEFuZAorICAgICAgICBXZSBzaG91bGQgaG9s
ZCBWZWN0b3I8U3RydWN0dXJlSUQ+IGluc3RlYWQgdG8gY3V0IDUwJSBvZiB0aGUgc2l6ZS4KKwor
ICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3ND
YXNlOjpjb21taXQpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpmb3JFYWNoRGVwZW5kZW50
Q2VsbCBjb25zdCk6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmRvZXNDYWxscyBjb25zdCk6
CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OnZpc2l0V2VhayBjb25zdCk6CisgICAgICAgIChK
U0M6OkFjY2Vzc0Nhc2U6OnByb3BhZ2F0ZVRyYW5zaXRpb25zIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6QWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQpOgorICAgICAgICAqIGJ5dGVjb2RlL0Fj
Y2Vzc0Nhc2UuaDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6OnByb3BhZ2F0ZVRyYW5zaXRpb25zKToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpkZXRlcm1pbmVMaXZlbmVzcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3Ry
b25nbHlWaXNpdFdlYWtSZWZlcmVuY2VzKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeVN0YXR1
cy5jcHA6CisgICAgICAgIChKU0M6OkdldEJ5U3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRo
b3V0RXhpdFNpdGVGZWVkYmFjayk6CisgICAgICAgICogYnl0ZWNvZGUvSW5CeUlkU3RhdHVzLmNw
cDoKKyAgICAgICAgKEpTQzo6SW5CeUlkU3RhdHVzOjpjb21wdXRlRm9yKToKKyAgICAgICAgKEpT
Qzo6SW5CeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8pOgorICAgICAgICAoSlNDOjpJbkJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKToKKyAg
ICAgICAgKiBieXRlY29kZS9JbkJ5SWRTdGF0dXMuaDoKKyAgICAgICAgKiBieXRlY29kZS9JbnN0
YW5jZU9mU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6SW5zdGFuY2VPZlN0YXR1czo6Y29tcHV0
ZUZvcik6CisgICAgICAgIChKU0M6Okluc3RhbmNlT2ZTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5m
byk6CisgICAgICAgICogYnl0ZWNvZGUvSW5zdGFuY2VPZlN0YXR1cy5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1BvbHlQcm90b0FjY2Vzc0NoYWluLmNwcDoKKyAgICAgICAgKEpTQzo6UG9seVByb3Rv
QWNjZXNzQ2hhaW46OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlBvbHlQcm90b0FjY2Vzc0NoYWlu
OjpuZWVkSW1wdXJlUHJvcGVydHlXYXRjaHBvaW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UG9s
eVByb3RvQWNjZXNzQ2hhaW46OmR1bXAgY29uc3QpOgorICAgICAgICAqIGJ5dGVjb2RlL1BvbHlQ
cm90b0FjY2Vzc0NoYWluLmg6CisgICAgICAgIChKU0M6OlBvbHlQcm90b0FjY2Vzc0NoYWluOjpj
aGFpbiBjb25zdCk6CisgICAgICAgIChKU0M6OlBvbHlQcm90b0FjY2Vzc0NoYWluOjpmb3JFYWNo
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UG9seVByb3RvQWNjZXNzQ2hhaW46OnNsb3RCYXNlU3Ry
dWN0dXJlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6UG9seVByb3RvQWNjZXNzQ2hhaW46OiBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgor
ICAgICAgICAoSlNDOjpQb2x5bW9ycGhpY0FjY2Vzczo6cmVnZW5lcmF0ZSk6CisgICAgICAgICog
Ynl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OlB1dEJ5SWRTdGF0dXM6
OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6c3VtbWFyeSBjb25zdCk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZvOjpzdW1tYXJ5KToKKyAgICAgICAgKiBi
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGRmZy9ERkdDb21tb25EYXRh
Lmg6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRXZWFrUmVmZXJlbmNlcy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6RGVzaXJlZFdlYWtSZWZlcmVuY2VzOjpyZWFsbHlBZGQpOgorICAgICAgICAq
IGRmZy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpmaW5hbGl6ZVdpdGhv
dXROb3RpZnlpbmdDYWxsYmFjayk6CisgICAgICAgICogaml0L1JlcGF0Y2guY3BwOgorICAgICAg
ICAoSlNDOjp0cnlDYWNoZUdldEJ5KToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVQdXRCeUlEKToK
KyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVJbkJ5SUQpOgorCiAyMDIwLTAxLTMxICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gU2hyaW5rVG9GaXQgc29t
ZSB2ZWN0b3JzIGtlcHQgYnkgSklUIGRhdGEgc3RydWN0dXJlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCmluZGV4IDg5NGQzNzIxYjJkMmYzODVlOWZm
YTEzZTk1NWE3NDVhMGFhYTU1M2IuLjgwNjUyMWI2YjhlNDY5MzQzNjFmM2JlYWE3YjFiNTlhZDg5
M2E3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3ND
YXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5j
cHAKQEAgLTE5MCw3ICsxOTAsOCBAQCBWZWN0b3I8V2F0Y2hwb2ludFNldCosIDI+IEFjY2Vzc0Nh
c2U6OmNvbW1pdChWTSYgdm0pCiAgICAgaWYgKG1faWRlbnRpZmllcikgewogICAgICAgICBpZiAo
KHN0cnVjdHVyZSAmJiBzdHJ1Y3R1cmUtPm5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9pbnQoKSkK
ICAgICAgICAgICAgIHx8IG1fY29uZGl0aW9uU2V0Lm5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9p
bnQoKQotICAgICAgICAgICAgfHwgKG1fcG9seVByb3RvQWNjZXNzQ2hhaW4gJiYgbV9wb2x5UHJv
dG9BY2Nlc3NDaGFpbi0+bmVlZEltcHVyZVByb3BlcnR5V2F0Y2hwb2ludCgpKSkKKyAgICAgICAg
ICAgIHx8IChtX3BvbHlQcm90b0FjY2Vzc0NoYWluICYmIG1fcG9seVByb3RvQWNjZXNzQ2hhaW4t
Pm5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9pbnQodm0pKSkKKwogICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCh2bS5lbnN1cmVXYXRjaHBvaW50U2V0Rm9ySW1wdXJlUHJvcGVydHkobV9pZGVudGlm
aWVyLnVpZCgpKSk7CiAgICAgfQogCkBAIC0zOTksMTQgKzQwMCwxNCBAQCBib29sIEFjY2Vzc0Nh
c2U6Om5lZWRzU2NyYXRjaEZQUigpIGNvbnN0CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0
b3I+Ci12b2lkIEFjY2Vzc0Nhc2U6OmZvckVhY2hEZXBlbmRlbnRDZWxsKGNvbnN0IEZ1bmN0b3Im
IGZ1bmN0b3IpIGNvbnN0Cit2b2lkIEFjY2Vzc0Nhc2U6OmZvckVhY2hEZXBlbmRlbnRDZWxsKFZN
JiB2bSwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikgY29uc3QKIHsKICAgICBtX2NvbmRpdGlvblNl
dC5mb3JFYWNoRGVwZW5kZW50Q2VsbChmdW5jdG9yKTsKICAgICBpZiAobV9zdHJ1Y3R1cmUpCiAg
ICAgICAgIGZ1bmN0b3IobV9zdHJ1Y3R1cmUuZ2V0KCkpOwogICAgIGlmIChtX3BvbHlQcm90b0Fj
Y2Vzc0NoYWluKSB7Ci0gICAgICAgIGZvciAoU3RydWN0dXJlKiBzdHJ1Y3R1cmUgOiBtX3BvbHlQ
cm90b0FjY2Vzc0NoYWluLT5jaGFpbigpKQotICAgICAgICAgICAgZnVuY3RvcihzdHJ1Y3R1cmUp
OworICAgICAgICBmb3IgKFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEIDogbV9wb2x5UHJvdG9BY2Nl
c3NDaGFpbi0+Y2hhaW4oKSkKKyAgICAgICAgICAgIGZ1bmN0b3Iodm0uZ2V0U3RydWN0dXJlKHN0
cnVjdHVyZUlEKSk7CiAgICAgfQogCiAgICAgc3dpdGNoICh0eXBlKCkpIHsKQEAgLTQ3Nyw3ICs0
NzgsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmZvckVhY2hEZXBlbmRlbnRDZWxsKGNvbnN0IEZ1bmN0
b3ImIGZ1bmN0b3IpIGNvbnN0CiAgICAgfQogfQogCi1ib29sIEFjY2Vzc0Nhc2U6OmRvZXNDYWxs
cyhWZWN0b3I8SlNDZWxsKj4qIGNlbGxzVG9NYXJrSWZEb2VzQ2FsbHMpIGNvbnN0Citib29sIEFj
Y2Vzc0Nhc2U6OmRvZXNDYWxscyhWTSYgdm0sIFZlY3RvcjxKU0NlbGwqPiogY2VsbHNUb01hcmtJ
ZkRvZXNDYWxscykgY29uc3QKIHsKICAgICBib29sIGRvZXNDYWxscyA9IGZhbHNlOwogICAgIHN3
aXRjaCAodHlwZSgpKSB7CkBAIC01MjgsNyArNTI5LDcgQEAgYm9vbCBBY2Nlc3NDYXNlOjpkb2Vz
Q2FsbHMoVmVjdG9yPEpTQ2VsbCo+KiBjZWxsc1RvTWFya0lmRG9lc0NhbGxzKSBjb25zdAogICAg
IH0KIAogICAgIGlmIChkb2VzQ2FsbHMgJiYgY2VsbHNUb01hcmtJZkRvZXNDYWxscykgewotICAg
ICAgICBmb3JFYWNoRGVwZW5kZW50Q2VsbChbJl0oSlNDZWxsKiBjZWxsKSB7CisgICAgICAgIGZv
ckVhY2hEZXBlbmRlbnRDZWxsKHZtLCBbJl0oSlNDZWxsKiBjZWxsKSB7CiAgICAgICAgICAgICBj
ZWxsc1RvTWFya0lmRG9lc0NhbGxzLT5hcHBlbmQoY2VsbCk7CiAgICAgICAgIH0pOwogICAgIH0K
QEAgLTY4NSw3ICs2ODYsNyBAQCBib29sIEFjY2Vzc0Nhc2U6OnZpc2l0V2VhayhWTSYgdm0pIGNv
bnN0CiAgICAgfQogCiAgICAgYm9vbCBpc1ZhbGlkID0gdHJ1ZTsKLSAgICBmb3JFYWNoRGVwZW5k
ZW50Q2VsbChbJl0oSlNDZWxsKiBjZWxsKSB7CisgICAgZm9yRWFjaERlcGVuZGVudENlbGwodm0s
IFsmXShKU0NlbGwqIGNlbGwpIHsKICAgICAgICAgaXNWYWxpZCAmPSB2bS5oZWFwLmlzTWFya2Vk
KGNlbGwpOwogICAgIH0pOwogICAgIHJldHVybiBpc1ZhbGlkOwpAQCAtNjk5LDggKzcwMCw4IEBA
IGJvb2wgQWNjZXNzQ2FzZTo6cHJvcGFnYXRlVHJhbnNpdGlvbnMoU2xvdFZpc2l0b3ImIHZpc2l0
b3IpIGNvbnN0CiAgICAgICAgIHJlc3VsdCAmPSBtX3N0cnVjdHVyZS0+bWFya0lmQ2hlYXAodmlz
aXRvcik7CiAKICAgICBpZiAobV9wb2x5UHJvdG9BY2Nlc3NDaGFpbikgewotICAgICAgICBmb3Ig
KFN0cnVjdHVyZSogc3RydWN0dXJlIDogbV9wb2x5UHJvdG9BY2Nlc3NDaGFpbi0+Y2hhaW4oKSkK
LSAgICAgICAgICAgIHJlc3VsdCAmPSBzdHJ1Y3R1cmUtPm1hcmtJZkNoZWFwKHZpc2l0b3IpOwor
ICAgICAgICBmb3IgKFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEIDogbV9wb2x5UHJvdG9BY2Nlc3ND
aGFpbi0+Y2hhaW4oKSkKKyAgICAgICAgICAgIHJlc3VsdCAmPSB2aXNpdG9yLnZtKCkuZ2V0U3Ry
dWN0dXJlKHN0cnVjdHVyZUlEKS0+bWFya0lmQ2hlYXAodmlzaXRvcik7CiAgICAgfQogCiAgICAg
c3dpdGNoIChtX3R5cGUpIHsKQEAgLTc1NSw3ICs3NTYsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6Omdl
bmVyYXRlV2l0aEd1YXJkKAogICAgICAgICBpZiAobV9wb2x5UHJvdG9BY2Nlc3NDaGFpbikgewog
ICAgICAgICAgICAgR1BSUmVnIGJhc2VGb3JBY2Nlc3NHUFIgPSBzdGF0ZS5zY3JhdGNoR1BSOwog
ICAgICAgICAgICAgaml0Lm1vdmUoc3RhdGUuYmFzZUdQUiwgYmFzZUZvckFjY2Vzc0dQUik7Ci0g
ICAgICAgICAgICBtX3BvbHlQcm90b0FjY2Vzc0NoYWluLT5mb3JFYWNoKHN0cnVjdHVyZSgpLCBb
Jl0gKFN0cnVjdHVyZSogc3RydWN0dXJlLCBib29sIGF0RW5kKSB7CisgICAgICAgICAgICBtX3Bv
bHlQcm90b0FjY2Vzc0NoYWluLT5mb3JFYWNoKHZtLCBzdHJ1Y3R1cmUoKSwgWyZdIChTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgYm9vbCBhdEVuZCkgewogICAgICAgICAgICAgICAgIGZhbGxUaHJvdWdo
LmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICAgaml0LmJyYW5jaFN0cnVjdHVyZSgKICAgICAg
ICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Tm90RXF1YWwsCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuaAppbmRleCBiYzJhNjU4MGE0MjI3MTg3OTE1
NTY1OTBhM2IwMDk5ZjU2MTU4ZTMyLi43OWQzMTAxNTVlOTNhNTQ1M2QyODYxYzQzMjI3YmEzYmFj
MTlmMjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNz
Q2FzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmgK
QEAgLTE3OSw3ICsxNzksNyBAQCBjbGFzcyBBY2Nlc3NDYXNlIHsKIAogICAgIC8vIElmIHlvdSBz
dXBwbHkgdGhlIG9wdGlvbmFsIHZlY3RvciwgdGhpcyB3aWxsIGFwcGVuZCB0aGUgc2V0IG9mIGNl
bGxzIHRoYXQgdGhpcyB3aWxsIG5lZWQgdG8ga2VlcCBhbGl2ZQogICAgIC8vIHBhc3QgdGhlIGNh
bGwuCi0gICAgYm9vbCBkb2VzQ2FsbHMoVmVjdG9yPEpTQ2VsbCo+KiBjZWxsc1RvTWFyayA9IG51
bGxwdHIpIGNvbnN0OworICAgIGJvb2wgZG9lc0NhbGxzKFZNJiwgVmVjdG9yPEpTQ2VsbCo+KiBj
ZWxsc1RvTWFyayA9IG51bGxwdHIpIGNvbnN0OwogCiAgICAgYm9vbCBpc0N1c3RvbSgpIGNvbnN0
CiAgICAgewpAQCAtMjY4LDcgKzI2OCw3IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgIGZyaWVu
ZCBjbGFzcyBQb2x5bW9ycGhpY0FjY2VzczsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0
b3I+Ci0gICAgdm9pZCBmb3JFYWNoRGVwZW5kZW50Q2VsbChjb25zdCBGdW5jdG9yJikgY29uc3Q7
CisgICAgdm9pZCBmb3JFYWNoRGVwZW5kZW50Q2VsbChWTSYsIGNvbnN0IEZ1bmN0b3ImKSBjb25z
dDsKIAogICAgIHZvaWQgdmlzaXRBZ2dyZWdhdGUoU2xvdFZpc2l0b3ImKSBjb25zdDsKICAgICBi
b29sIHZpc2l0V2VhayhWTSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAppbmRleCA5MWYwNGZlM2M4OTJjNWQ4ZTgxOTI0ODFmY2NkZDIyNjg0
ZDZkYWQwLi45Njc1OTFkYTNmNTI0MjQ3MTNjYjhiMzc4NjUwM2I0YmYzYzgwMWMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMTEzMyw4ICsx
MTMzLDggQEAgdm9pZCBDb2RlQmxvY2s6OnByb3BhZ2F0ZVRyYW5zaXRpb25zKGNvbnN0IENvbmN1
cnJlbnRKU0xvY2tlciYsIFNsb3RWaXNpdG9yJiB2aXMKICAgICAgICAgCiAgICAgICAgIGRmZ0Nv
bW1vbi0+cmVjb3JkZWRTdGF0dXNlcy5tYXJrSWZDaGVhcCh2aXNpdG9yKTsKICAgICAgICAgCi0g
ICAgICAgIGZvciAoYXV0byYgd2Vha1JlZmVyZW5jZSA6IGRmZ0NvbW1vbi0+d2Vha1N0cnVjdHVy
ZVJlZmVyZW5jZXMpCi0gICAgICAgICAgICB3ZWFrUmVmZXJlbmNlLT5tYXJrSWZDaGVhcCh2aXNp
dG9yKTsKKyAgICAgICAgZm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IGRmZ0NvbW1vbi0+
d2Vha1N0cnVjdHVyZVJlZmVyZW5jZXMpCisgICAgICAgICAgICB2bS5nZXRTdHJ1Y3R1cmUoc3Ry
dWN0dXJlSUQpLT5tYXJrSWZDaGVhcCh2aXNpdG9yKTsKIAogICAgICAgICBmb3IgKGF1dG8mIHRy
YW5zaXRpb24gOiBkZmdDb21tb24tPnRyYW5zaXRpb25zKSB7CiAgICAgICAgICAgICBpZiAoc2hv
dWxkTWFya1RyYW5zaXRpb24odm0sIHRyYW5zaXRpb24pKSB7CkBAIC0xMTkzLDggKzExOTMsOSBA
QCB2b2lkIENvZGVCbG9jazo6ZGV0ZXJtaW5lTGl2ZW5lc3MoY29uc3QgQ29uY3VycmVudEpTTG9j
a2VyJiwgU2xvdFZpc2l0b3ImIHZpc2l0bwogICAgICAgICB9CiAgICAgfQogICAgIGlmIChhbGxB
cmVMaXZlU29GYXIpIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRmZ0NvbW1v
bi0+d2Vha1N0cnVjdHVyZVJlZmVyZW5jZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGlm
ICghdm0uaGVhcC5pc01hcmtlZChkZmdDb21tb24tPndlYWtTdHJ1Y3R1cmVSZWZlcmVuY2VzW2ld
LmdldCgpKSkgeworICAgICAgICBmb3IgKFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEIDogZGZnQ29t
bW9uLT53ZWFrU3RydWN0dXJlUmVmZXJlbmNlcykgeworICAgICAgICAgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSB2bS5nZXRTdHJ1Y3R1cmUoc3RydWN0dXJlSUQpOworICAgICAgICAgICAgaWYg
KCF2bS5oZWFwLmlzTWFya2VkKHN0cnVjdHVyZSkpIHsKICAgICAgICAgICAgICAgICBhbGxBcmVM
aXZlU29GYXIgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
QEAgLTE3MjAsOCArMTcyMSw4IEBAIHZvaWQgQ29kZUJsb2NrOjpzdHJvbmdseVZpc2l0V2Vha1Jl
ZmVyZW5jZXMoY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiwgU2xvdFZpc2l0CiAgICAgZm9yIChh
dXRvJiB3ZWFrUmVmZXJlbmNlIDogZGZnQ29tbW9uLT53ZWFrUmVmZXJlbmNlcykKICAgICAgICAg
dmlzaXRvci5hcHBlbmQod2Vha1JlZmVyZW5jZSk7CiAKLSAgICBmb3IgKGF1dG8mIHdlYWtTdHJ1
Y3R1cmVSZWZlcmVuY2UgOiBkZmdDb21tb24tPndlYWtTdHJ1Y3R1cmVSZWZlcmVuY2VzKQotICAg
ICAgICB2aXNpdG9yLmFwcGVuZCh3ZWFrU3RydWN0dXJlUmVmZXJlbmNlKTsKKyAgICBmb3IgKFN0
cnVjdHVyZUlEIHN0cnVjdHVyZUlEIDogZGZnQ29tbW9uLT53ZWFrU3RydWN0dXJlUmVmZXJlbmNl
cykKKyAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZCh2aXNpdG9yLnZtKCkuZ2V0U3Ry
dWN0dXJlKHN0cnVjdHVyZUlEKSk7CiAKICAgICBkZmdDb21tb24tPmxpdmVuZXNzSGFzQmVlblBy
b3ZlZCA9IHRydWU7CiAjZW5kaWYgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0QnlTdGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0dldEJ5U3RhdHVzLmNwcAppbmRleCA1M2YzNTg2NDNhOTE5MmFlZWQ2Y2E3OTdlNTNjNmQ0
NGQxMjY1Y2FkLi44ZGU4NTc5NDgxOWUyOTE3NjM0ZDMxM2Y0MWU0Yjg3ZGJjMGMwNjM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlTdGF0dXMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeVN0YXR1cy5jcHAKQEAgLTE2
OCw3ICsxNjgsNyBAQCBHZXRCeVN0YXR1czo6R2V0QnlTdGF0dXMoY29uc3QgTW9kdWxlTmFtZXNw
YWNlQWNjZXNzQ2FzZSYgYWNjZXNzQ2FzZSkKIEdldEJ5U3RhdHVzIEdldEJ5U3RhdHVzOjpjb21w
dXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjaygKICAgICBjb25zdCBDb25jdXJy
ZW50SlNMb2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8sIENhbGxMaW5rU3RhdHVzOjpFeGl0U2l0ZURhdGEgY2FsbEV4aXRT
aXRlRGF0YSkKIHsKLSAgICBTdHViSW5mb1N1bW1hcnkgc3VtbWFyeSA9IFN0cnVjdHVyZVN0dWJJ
bmZvOjpzdW1tYXJ5KHN0dWJJbmZvKTsKKyAgICBTdHViSW5mb1N1bW1hcnkgc3VtbWFyeSA9IFN0
cnVjdHVyZVN0dWJJbmZvOjpzdW1tYXJ5KHByb2ZpbGVkQmxvY2stPnZtKCksIHN0dWJJbmZvKTsK
ICAgICBpZiAoIWlzSW5saW5lYWJsZShzdW1tYXJ5KSkKICAgICAgICAgcmV0dXJuIEdldEJ5U3Rh
dHVzKHN1bW1hcnksICpzdHViSW5mbyk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvSW5CeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9JbkJ5SWRTdGF0dXMuY3BwCmluZGV4IDVhZTBiZGNiNjQwNDZiZjRkODQxYzM0
MDU3OWQ1M2YyYTU3YjVlMjkuLjg2MjJiMjc4ZjM3Mzc0MmRhNjcxYzEzMGVkN2Q3N2JmZDRlNjdk
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbkJ5SWRTdGF0
dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbkJ5SWRTdGF0dXMu
Y3BwCkBAIC01MCw3ICs1MCw3IEBAIEluQnlJZFN0YXR1cyBJbkJ5SWRTdGF0dXM6OmNvbXB1dGVG
b3IoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBJQ1N0YXR1c01hcCYgbWFwCiAgICAgSW5CeUlk
U3RhdHVzIHJlc3VsdDsKIAogI2lmIEVOQUJMRShERkdfSklUKQotICAgIHJlc3VsdCA9IGNvbXB1
dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKGxvY2tlciwgbWFwLmdldChDb2Rl
T3JpZ2luKGJ5dGVjb2RlSW5kZXgpKS5zdHViSW5mbywgdWlkKTsKKyAgICByZXN1bHQgPSBjb21w
dXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjayhsb2NrZXIsIHByb2ZpbGVkQmxv
Y2stPnZtKCksIG1hcC5nZXQoQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSkuc3R1YkluZm8sIHVp
ZCk7CiAKICAgICBpZiAoIXJlc3VsdC50YWtlc1Nsb3dQYXRoKCkgJiYgZGlkRXhpdCkKICAgICAg
ICAgcmV0dXJuIEluQnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoKTsKQEAgLTk2LDcgKzk2LDcgQEAg
SW5CeUlkU3RhdHVzIEluQnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICAgICAgICAgIEluQnlJ
ZFN0YXR1cyByZXN1bHQ7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgQ29uY3VycmVu
dEpTTG9ja2VyIGxvY2tlcihjb250ZXh0LT5vcHRpbWl6ZWRDb2RlQmxvY2stPm1fbG9jayk7Ci0g
ICAgICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRl
RmVlZGJhY2sobG9ja2VyLCBzdGF0dXMuc3R1YkluZm8sIHVpZCk7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2sobG9ja2Vy
LCBwcm9maWxlZEJsb2NrLT52bSgpLCBzdGF0dXMuc3R1YkluZm8sIHVpZCk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBpZiAocmVzdWx0LmlzU2V0KCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGJsZXNzKHJlc3VsdCk7CkBAIC0xMTQsMTYgKzExNCwxNiBAQCBJbkJ5SWRTdGF0dXMgSW5C
eUlkU3RhdHVzOjpjb21wdXRlRm9yKAogI2lmIEVOQUJMRShERkdfSklUKQogSW5CeUlkU3RhdHVz
IEluQnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tl
ciYgbG9ja2VyLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQog
ewotICAgIEluQnlJZFN0YXR1cyByZXN1bHQgPSBJbkJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHVi
SW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKGxvY2tlciwgc3R1YkluZm8sIHVpZCk7CisgICAg
SW5CeUlkU3RhdHVzIHJlc3VsdCA9IEluQnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0
aG91dEV4aXRTaXRlRmVlZGJhY2sobG9ja2VyLCBwcm9maWxlZEJsb2NrLT52bSgpLCBzdHViSW5m
bywgdWlkKTsKIAogICAgIGlmICghcmVzdWx0LnRha2VzU2xvd1BhdGgoKSAmJiBoYXNCYWRDYWNo
ZUV4aXRTaXRlKHByb2ZpbGVkQmxvY2ssIGNvZGVPcmlnaW4uYnl0ZWNvZGVJbmRleCgpKSkKICAg
ICAgICAgcmV0dXJuIEluQnlJZFN0YXR1cyhUYWtlc1Nsb3dQYXRoKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCi1JbkJ5SWRTdGF0dXMgSW5CeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9X
aXRob3V0RXhpdFNpdGVGZWVkYmFjayhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImLCBTdHJ1Y3R1
cmVTdHViSW5mbyogc3R1YkluZm8sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCitJbkJ5SWRTdGF0
dXMgSW5CeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFj
ayhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImLCBWTSYgdm0sIFN0cnVjdHVyZVN0dWJJbmZvKiBz
dHViSW5mbywgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKIHsKLSAgICBTdHViSW5mb1N1bW1hcnkg
c3VtbWFyeSA9IFN0cnVjdHVyZVN0dWJJbmZvOjpzdW1tYXJ5KHN0dWJJbmZvKTsKKyAgICBTdHVi
SW5mb1N1bW1hcnkgc3VtbWFyeSA9IFN0cnVjdHVyZVN0dWJJbmZvOjpzdW1tYXJ5KHZtLCBzdHVi
SW5mbyk7CiAgICAgaWYgKCFpc0lubGluZWFibGUoc3VtbWFyeSkpCiAgICAgICAgIHJldHVybiBJ
bkJ5SWRTdGF0dXMoc3VtbWFyeSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvSW5CeUlkU3RhdHVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvSW5CeUlkU3RhdHVzLmgKaW5kZXggYjc5MTFhMTAxNWVlMDUxYTJkYmE5M2E3ODM5Mzcz
YTQ2OGQ3OTdkNS4uMzhkOTdhOWM3ZWM5YjgwOWQ3Yzc4ODU0MWRlNWJjNmJlMjg5MGVlMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luQnlJZFN0YXR1cy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbkJ5SWRTdGF0dXMuaApAQCAtMTEz
LDcgKzExMyw3IEBAIGNsYXNzIEluQnlJZFN0YXR1cyBmaW5hbCB7CiAKIHByaXZhdGU6CiAjaWYg
RU5BQkxFKERGR19KSVQpCi0gICAgc3RhdGljIEluQnlJZFN0YXR1cyBjb21wdXRlRm9yU3R1Yklu
Zm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjayhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpOworICAgIHN0YXRpYyBJbkJ5
SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soY29uc3Qg
Q29uY3VycmVudEpTTG9ja2VyJiwgVk0mLCBTdHJ1Y3R1cmVTdHViSW5mbyosIFVuaXF1ZWRTdHJp
bmdJbXBsKiB1aWQpOwogI2VuZGlmCiAgICAgYm9vbCBhcHBlbmRWYXJpYW50KGNvbnN0IEluQnlJ
ZFZhcmlhbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0luc3RhbmNlT2ZTdGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lu
c3RhbmNlT2ZTdGF0dXMuY3BwCmluZGV4IGFiNjk0ZTU3MWIxODQ1YjNjZmM0M2YxOWIzM2M1NjY0
ZmMwODJlODYuLjM1NTRjN2NkOTllMmRhZmFhODg5MjFkNDY4MTVmMjMyOGY3NzRmYjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnN0YW5jZU9mU3RhdHVzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5zdGFuY2VPZlN0YXR1cy5j
cHAKQEAgLTQ2LDcgKzQ2LDcgQEAgSW5zdGFuY2VPZlN0YXR1cyBJbnN0YW5jZU9mU3RhdHVzOjpj
b21wdXRlRm9yKAogICAgIAogICAgIEluc3RhbmNlT2ZTdGF0dXMgcmVzdWx0OwogI2lmIEVOQUJM
RShERkdfSklUKQotICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mbyhsb2NrZXIsIGluZm9N
YXAuZ2V0KENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkpLnN0dWJJbmZvKTsKKyAgICByZXN1bHQg
PSBjb21wdXRlRm9yU3R1YkluZm8obG9ja2VyLCBjb2RlQmxvY2stPnZtKCksIGluZm9NYXAuZ2V0
KENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkpLnN0dWJJbmZvKTsKIAogICAgIGlmICghcmVzdWx0
LnRha2VzU2xvd1BhdGgoKSkgewogICAgICAgICBVbmxpbmtlZENvZGVCbG9jayogdW5saW5rZWRD
b2RlQmxvY2sgPSBjb2RlQmxvY2stPnVubGlua2VkQ29kZUJsb2NrKCk7CkBAIC02NiwxMiArNjYs
MTIgQEAgSW5zdGFuY2VPZlN0YXR1cyBJbnN0YW5jZU9mU3RhdHVzOjpjb21wdXRlRm9yKAogfQog
CiAjaWYgRU5BQkxFKERGR19KSVQpCi1JbnN0YW5jZU9mU3RhdHVzIEluc3RhbmNlT2ZTdGF0dXM6
OmNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImLCBTdHJ1Y3R1cmVT
dHViSW5mbyogc3R1YkluZm8pCitJbnN0YW5jZU9mU3RhdHVzIEluc3RhbmNlT2ZTdGF0dXM6OmNv
bXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImLCBWTSYgdm0sIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbykKIHsKICAgICAvLyBGSVhNRTogV2Ugd291bGRuJ3QgaGF2
ZSB0byBiYWlsIGZvciBub25DZWxsIGlmIHdlIHRhdWdodCBNYXRjaFN0cnVjdHVyZSBob3cgdG8g
aGFuZGxlIG5vbgogICAgIC8vIGNlbGxzLiBJZiB3ZSBmaXhlZCB0aGF0IHRoZW4gd2Ugd291bGRu
J3QgYmUgYWJsZSB0byB1c2Ugc3VtbWFyeSgpOwogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODU3ODQKLSAgICBTdHViSW5mb1N1bW1hcnkgc3VtbWFyeSA9
IFN0cnVjdHVyZVN0dWJJbmZvOjpzdW1tYXJ5KHN0dWJJbmZvKTsKKyAgICBTdHViSW5mb1N1bW1h
cnkgc3VtbWFyeSA9IFN0cnVjdHVyZVN0dWJJbmZvOjpzdW1tYXJ5KHZtLCBzdHViSW5mbyk7CiAg
ICAgaWYgKCFpc0lubGluZWFibGUoc3VtbWFyeSkpCiAgICAgICAgIHJldHVybiBJbnN0YW5jZU9m
U3RhdHVzKHN1bW1hcnkpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0luc3RhbmNlT2ZTdGF0dXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9JbnN0YW5jZU9mU3RhdHVzLmgKaW5kZXggNzY4NGE5ZjU2MDIyZjVhZTI1YzhhMzFmMjZm
ZWQyZmU2OGU3ZWM0Yy4uODVjNDVjYzhhMTljMmY5ZDM0MWNmNWIyZTBjZTBiYmExZWI1MWEyMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZTdGF0
dXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5zdGFuY2VPZlN0YXR1
cy5oCkBAIC04Miw3ICs4Miw3IEBAIGNsYXNzIEluc3RhbmNlT2ZTdGF0dXMgZmluYWwgewogICAg
IHN0YXRpYyBJbnN0YW5jZU9mU3RhdHVzIGNvbXB1dGVGb3IoQ29kZUJsb2NrKiwgSUNTdGF0dXNN
YXAmLCBCeXRlY29kZUluZGV4KTsKICAgICAKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICBzdGF0
aWMgSW5zdGFuY2VPZlN0YXR1cyBjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpT
TG9ja2VyJiwgU3RydWN0dXJlU3R1YkluZm8qKTsKKyAgICBzdGF0aWMgSW5zdGFuY2VPZlN0YXR1
cyBjb21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiwgVk0mLCBTdHJ1
Y3R1cmVTdHViSW5mbyopOwogI2VuZGlmCiAgICAgCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvUG9seVByb3RvQWNjZXNzQ2hhaW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1BvbHlQcm90b0FjY2Vzc0NoYWluLmNwcAppbmRleCBlNmUxYTkxYjE1YTE4YWVlNGEy
YzFjNmUzNWM4NjMwNGE3NzhmYzJiLi44NGY1NmU0YmU0ZThlODM5YmU0NDBjOTM1MGZiNzgzOGYx
N2I4M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seVBy
b3RvQWNjZXNzQ2hhaW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Q
b2x5UHJvdG9BY2Nlc3NDaGFpbi5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgc3RkOjp1bmlxdWVfcHRy
PFBvbHlQcm90b0FjY2Vzc0NoYWluPiBQb2x5UHJvdG9BY2Nlc3NDaGFpbjo6Y3JlYXRlKEpTR2xv
YmFsT2JqZWMKICAgICAgICAgLy8gVG8gc2F2ZSBtZW1vcnksIHdlIGRvbid0IGluY2x1ZGUgdGhl
IGJhc2UgaW4gdGhlIGNoYWluLiBXZSBsZXQKICAgICAgICAgLy8gQWNjZXNzQ2FzZSBwcm92aWRl
IHRoZSBiYXNlIHRvIHVzIGFzIG5lZWRlZC4KICAgICAgICAgaWYgKGl0ZXJhdGlvbk51bWJlcikK
LSAgICAgICAgICAgIHJlc3VsdC0+bV9jaGFpbi5hcHBlbmQoc3RydWN0dXJlKTsKKyAgICAgICAg
ICAgIHJlc3VsdC0+bV9jaGFpbi5hcHBlbmQoc3RydWN0dXJlLT5pZCgpKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY3VycmVudCA9PSBiYXNlKTsKIApAQCAtODMs
MTAgKzgzLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxQb2x5UHJvdG9BY2Nlc3NDaGFpbj4gUG9seVBy
b3RvQWNjZXNzQ2hhaW46OmNyZWF0ZShKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotYm9vbCBQb2x5UHJvdG9BY2Nlc3NDaGFpbjo6bmVlZEltcHVyZVByb3BlcnR5V2F0Y2hw
b2ludCgpIGNvbnN0Citib29sIFBvbHlQcm90b0FjY2Vzc0NoYWluOjpuZWVkSW1wdXJlUHJvcGVy
dHlXYXRjaHBvaW50KFZNJiB2bSkgY29uc3QKIHsKLSAgICBmb3IgKFN0cnVjdHVyZSogc3RydWN0
dXJlIDogbV9jaGFpbikgewotICAgICAgICBpZiAoc3RydWN0dXJlLT5uZWVkSW1wdXJlUHJvcGVy
dHlXYXRjaHBvaW50KCkpCisgICAgZm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IG1fY2hh
aW4pIHsKKyAgICAgICAgaWYgKHZtLmdldFN0cnVjdHVyZShzdHJ1Y3R1cmVJRCktPm5lZWRJbXB1
cmVQcm9wZXJ0eVdhdGNocG9pbnQoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDAsNyArMTAwLDcgQEAgYm9vbCBQb2x5UHJvdG9BY2Nl
c3NDaGFpbjo6b3BlcmF0b3I9PShjb25zdCBQb2x5UHJvdG9BY2Nlc3NDaGFpbiYgb3RoZXIpIGNv
bnN0CiB2b2lkIFBvbHlQcm90b0FjY2Vzc0NoYWluOjpkdW1wKFN0cnVjdHVyZSogYmFzZVN0cnVj
dHVyZSwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJpbnQoIlBvbHlQb2x5
UHJvdG9BY2Nlc3NDaGFpbjogW1xuIik7Ci0gICAgZm9yRWFjaChiYXNlU3RydWN0dXJlLCBbJl0g
KFN0cnVjdHVyZSogc3RydWN0dXJlLCBib29sKSB7CisgICAgZm9yRWFjaChiYXNlU3RydWN0dXJl
LT52bSgpLCBiYXNlU3RydWN0dXJlLCBbJl0gKFN0cnVjdHVyZSogc3RydWN0dXJlLCBib29sKSB7
CiAgICAgICAgIG91dC5wcmludCgiXHQiKTsKICAgICAgICAgc3RydWN0dXJlLT5kdW1wKG91dCk7
CiAgICAgICAgIG91dC5wcmludCgiXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5UHJvdG9BY2Nlc3NDaGFpbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1BvbHlQcm90b0FjY2Vzc0NoYWluLmgKaW5kZXggNjhiMjRiZTgzMjQ1MjM1
YjA4MzBlZGQ5NGQxOTdkZjEzMTk4OWM4OC4uYjE4MmVkNDhkMTg0MzY5MmFlYjhkYWQ1YjMxNjk0
ZTQ2Zjc3ZDQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Bv
bHlQcm90b0FjY2Vzc0NoYWluLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1BvbHlQcm90b0FjY2Vzc0NoYWluLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgUG9seVByb3Rv
QWNjZXNzQ2hhaW4gewogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxQb2x5UHJvdG9BY2Nlc3ND
aGFpbj4oKnRoaXMpOwogICAgIH0KIAotICAgIGNvbnN0IFZlY3RvcjxTdHJ1Y3R1cmUqPiYgY2hh
aW4oKSBjb25zdCB7IHJldHVybiBtX2NoYWluOyB9CisgICAgY29uc3QgVmVjdG9yPFN0cnVjdHVy
ZUlEPiYgY2hhaW4oKSBjb25zdCB7IHJldHVybiBtX2NoYWluOyB9CiAKICAgICB2b2lkIGR1bXAo
U3RydWN0dXJlKiBiYXNlU3RydWN0dXJlLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdDsKIApAQCAt
NjAsMjMgKzYwLDIzIEBAIGNsYXNzIFBvbHlQcm90b0FjY2Vzc0NoYWluIHsKICAgICAgICAgcmV0
dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0KIAotICAgIGJvb2wgbmVlZEltcHVyZVByb3Bl
cnR5V2F0Y2hwb2ludCgpIGNvbnN0OworICAgIGJvb2wgbmVlZEltcHVyZVByb3BlcnR5V2F0Y2hw
b2ludChWTSYpIGNvbnN0OwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmM+Ci0gICAgdm9p
ZCBmb3JFYWNoKFN0cnVjdHVyZSogYmFzZVN0cnVjdHVyZSwgY29uc3QgRnVuYyYgZnVuYykgY29u
c3QKKyAgICB2b2lkIGZvckVhY2goVk0mIHZtLCBTdHJ1Y3R1cmUqIGJhc2VTdHJ1Y3R1cmUsIGNv
bnN0IEZ1bmMmIGZ1bmMpIGNvbnN0CiAgICAgewogICAgICAgICBib29sIGF0RW5kID0gIW1fY2hh
aW4uc2l6ZSgpOwogICAgICAgICBmdW5jKGJhc2VTdHJ1Y3R1cmUsIGF0RW5kKTsKICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hhaW4uc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
ICAgIGF0RW5kID0gaSArIDEgPT0gbV9jaGFpbi5zaXplKCk7Ci0gICAgICAgICAgICBmdW5jKG1f
Y2hhaW5baV0sIGF0RW5kKTsKKyAgICAgICAgICAgIGZ1bmModm0uZ2V0U3RydWN0dXJlKG1fY2hh
aW5baV0pLCBhdEVuZCk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBTdHJ1Y3R1cmUqIHNsb3RC
YXNlU3RydWN0dXJlKFN0cnVjdHVyZSogYmFzZVN0cnVjdHVyZSkgY29uc3QKKyAgICBTdHJ1Y3R1
cmUqIHNsb3RCYXNlU3RydWN0dXJlKFZNJiB2bSwgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJlKSBj
b25zdAogICAgIHsKICAgICAgICAgaWYgKG1fY2hhaW4uc2l6ZSgpKQotICAgICAgICAgICAgcmV0
dXJuIG1fY2hhaW4ubGFzdCgpOworICAgICAgICAgICAgcmV0dXJuIHZtLmdldFN0cnVjdHVyZSht
X2NoYWluLmxhc3QoKSk7CiAgICAgICAgIHJldHVybiBiYXNlU3RydWN0dXJlOwogICAgIH0KIApA
QCAtODUsNyArODUsNyBAQCBjbGFzcyBQb2x5UHJvdG9BY2Nlc3NDaGFpbiB7CiAKICAgICAvLyBU
aGlzIGRvZXMgbm90IGluY2x1ZGUgdGhlIGJhc2UuIFdlIHJlbHkgb24gQWNjZXNzQ2FzZSBwcm92
aWRpbmcgaXQgZm9yIHVzLiBUaGF0IHNhaWQsIHRoaXMgZGF0YQogICAgIC8vIHN0cnVjdHVyZSBp
cyB0aWVkIHRvIHRoZSBiYXNlIHRoYXQgaXQgd2FzIGNyZWF0ZWQgd2l0aC4KLSAgICBWZWN0b3I8
U3RydWN0dXJlKj4gbV9jaGFpbjsgCisgICAgVmVjdG9yPFN0cnVjdHVyZUlEPiBtX2NoYWluOyAK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5
bW9ycGhpY0FjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1v
cnBoaWNBY2Nlc3MuY3BwCmluZGV4IGRjMmY1ODZlZTIyZGE5MWJkYmNhZjY2YTY3MTI3OTc1ZWU2
MjBhZWEuLjEzMjQwOWMwYTQ1MTBiZGZhOGVjZTMzYjc0MzQ3MTYwMmQ3YjBlNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNw
cApAQCAtNzI1LDcgKzcyNSw3IEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9seW1vcnBoaWNB
Y2Nlc3M6OnJlZ2VuZXJhdGUoCiAgICAgYm9vbCBkb2VzQ2FsbHMgPSBmYWxzZTsKICAgICBWZWN0
b3I8SlNDZWxsKj4gY2VsbHNUb01hcms7CiAgICAgZm9yIChhdXRvJiBlbnRyeSA6IGNhc2VzKQot
ICAgICAgICBkb2VzQ2FsbHMgfD0gZW50cnktPmRvZXNDYWxscygmY2VsbHNUb01hcmspOworICAg
ICAgICBkb2VzQ2FsbHMgfD0gZW50cnktPmRvZXNDYWxscyh2bSwgJmNlbGxzVG9NYXJrKTsKICAg
ICAKICAgICBtX3N0dWJSb3V0aW5lID0gY3JlYXRlSklUU3R1YlJvdXRpbmUoY29kZSwgdm0sIGNv
ZGVCbG9jaywgZG9lc0NhbGxzLCBjZWxsc1RvTWFyaywgV1RGTW92ZShzdGF0ZS5tX2NhbGxMaW5r
SW5mb3MpLCBjb2RlQmxvY2tUaGF0T3duc0V4Y2VwdGlvbkhhbmRsZXJzLCBjYWxsU2l0ZUluZGV4
Rm9yRXhjZXB0aW9uSGFuZGxpbmcpOwogICAgIG1fd2F0Y2hwb2ludHMgPSBXVEZNb3ZlKHN0YXRl
LndhdGNocG9pbnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9QdXRCeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRC
eUlkU3RhdHVzLmNwcAppbmRleCBmNDk1YmVmOGQ1MDNlNDQzNjg4MzY5ZjM0MDUzN2M3ZmIzMmNk
YzNjLi4yY2JjYmNhYzkyMDRkNWQzMDdlMmNiNDgzZDNlZjA4YTNhNzFlMTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCkBAIC0xMjks
NyArMTI5LDcgQEAgUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1Yklu
Zm8oCiAgICAgY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJv
ZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLAogICAgIFVuaXF1ZWRTdHJp
bmdJbXBsKiB1aWQsIENhbGxMaW5rU3RhdHVzOjpFeGl0U2l0ZURhdGEgY2FsbEV4aXRTaXRlRGF0
YSkKIHsKLSAgICBTdHViSW5mb1N1bW1hcnkgc3VtbWFyeSA9IFN0cnVjdHVyZVN0dWJJbmZvOjpz
dW1tYXJ5KHN0dWJJbmZvKTsKKyAgICBTdHViSW5mb1N1bW1hcnkgc3VtbWFyeSA9IFN0cnVjdHVy
ZVN0dWJJbmZvOjpzdW1tYXJ5KHByb2ZpbGVkQmxvY2stPnZtKCksIHN0dWJJbmZvKTsKICAgICBp
ZiAoIWlzSW5saW5lYWJsZShzdW1tYXJ5KSkKICAgICAgICAgcmV0dXJuIFB1dEJ5SWRTdGF0dXMo
c3VtbWFyeSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1N0cnVjdHVyZVN0dWJJbmZvLmNwcAppbmRleCA3OTRiMjc5ZmVlMTFkYjIxNzk0NDUyZjUxZTI0
NDk0OTAwMTRhYmUzLi42MTc4NzM3ZjlmOGE5Y2QwYjZkZGFkNTdmMWNmMTJlZmU0ZmNhNzA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHVi
SW5mby5jcHAKQEAgLTM1MSw3ICszNTEsNyBAQCBib29sIFN0cnVjdHVyZVN0dWJJbmZvOjpwcm9w
YWdhdGVUcmFuc2l0aW9ucyhTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotU3R1YkluZm9TdW1tYXJ5IFN0cnVjdHVyZVN0dWJJbmZvOjpzdW1tYXJ5KCkgY29uc3QK
K1N0dWJJbmZvU3VtbWFyeSBTdHJ1Y3R1cmVTdHViSW5mbzo6c3VtbWFyeShWTSYgdm0pIGNvbnN0
CiB7CiAgICAgU3R1YkluZm9TdW1tYXJ5IHRha2VzU2xvd1BhdGggPSBTdHViSW5mb1N1bW1hcnk6
OlRha2VzU2xvd1BhdGg7CiAgICAgU3R1YkluZm9TdW1tYXJ5IHNpbXBsZSA9IFN0dWJJbmZvU3Vt
bWFyeTo6U2ltcGxlOwpAQCAtMzU5LDcgKzM1OSw3IEBAIFN0dWJJbmZvU3VtbWFyeSBTdHJ1Y3R1
cmVTdHViSW5mbzo6c3VtbWFyeSgpIGNvbnN0CiAgICAgICAgIFBvbHltb3JwaGljQWNjZXNzKiBs
aXN0ID0gdS5zdHViOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGlzdC0+c2l6
ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGNvbnN0IEFjY2Vzc0Nhc2UmIGFjY2VzcyA9IGxpc3Qt
PmF0KGkpOwotICAgICAgICAgICAgaWYgKGFjY2Vzcy5kb2VzQ2FsbHMoKSkgeworICAgICAgICAg
ICAgaWYgKGFjY2Vzcy5kb2VzQ2FsbHModm0pKSB7CiAgICAgICAgICAgICAgICAgdGFrZXNTbG93
UGF0aCA9IFN0dWJJbmZvU3VtbWFyeTo6VGFrZXNTbG93UGF0aEFuZE1ha2VzQ2FsbHM7CiAgICAg
ICAgICAgICAgICAgc2ltcGxlID0gU3R1YkluZm9TdW1tYXJ5OjpNYWtlc0NhbGxzOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtMzc2LDEyICszNzYsMTIgQEAgU3R1YkluZm9TdW1tYXJ5IFN0
cnVjdHVyZVN0dWJJbmZvOjpzdW1tYXJ5KCkgY29uc3QKICAgICByZXR1cm4gc2ltcGxlOwogfQog
Ci1TdHViSW5mb1N1bW1hcnkgU3RydWN0dXJlU3R1YkluZm86OnN1bW1hcnkoY29uc3QgU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvKQorU3R1YkluZm9TdW1tYXJ5IFN0cnVjdHVyZVN0dWJJbmZv
OjpzdW1tYXJ5KFZNJiB2bSwgY29uc3QgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKQogewog
ICAgIGlmICghc3R1YkluZm8pCiAgICAgICAgIHJldHVybiBTdHViSW5mb1N1bW1hcnk6Ok5vSW5m
b3JtYXRpb247CiAgICAgCi0gICAgcmV0dXJuIHN0dWJJbmZvLT5zdW1tYXJ5KCk7CisgICAgcmV0
dXJuIHN0dWJJbmZvLT5zdW1tYXJ5KHZtKTsKIH0KIAogYm9vbCBTdHJ1Y3R1cmVTdHViSW5mbzo6
Y29udGFpbnNQQyh2b2lkKiBwYykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKaW5kZXggNjJjZWEwODEwOGZiZmI0NDdhOGE2
ODcxMjU0MGY4N2M2NDlhMGFlMS4uZGRjZTg1ZWMwMjU1NTc2YzllMzQ1MWY2NDczNmQxMmMzODk0
MjgwMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVy
ZVN0dWJJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVy
ZVN0dWJJbmZvLmgKQEAgLTE2Niw5ICsxNjYsOSBAQCBjbGFzcyBTdHJ1Y3R1cmVTdHViSW5mbyB7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBTdHViSW5mb1N1bW1hcnkgc3Vt
bWFyeSgpIGNvbnN0OworICAgIFN0dWJJbmZvU3VtbWFyeSBzdW1tYXJ5KFZNJikgY29uc3Q7CiAg
ICAgCi0gICAgc3RhdGljIFN0dWJJbmZvU3VtbWFyeSBzdW1tYXJ5KGNvbnN0IFN0cnVjdHVyZVN0
dWJJbmZvKik7CisgICAgc3RhdGljIFN0dWJJbmZvU3VtbWFyeSBzdW1tYXJ5KFZNJiwgY29uc3Qg
U3RydWN0dXJlU3R1YkluZm8qKTsKIAogICAgIGJvb2wgY29udGFpbnNQQyh2b2lkKiBwYykgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uRGF0
YS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmgKaW5kZXggMmVk
ODMwZmRjM2E0OWYwNDkyZDhmODA2NWMyNTEyODBhZTUzNDhkZS4uZGMzMjRkZTllYTY3M2FmOTg4
MDZkMmJmNDQ5NjhhNTNiM2U1ZTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb21tb25EYXRhLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
b21tb25EYXRhLmgKQEAgLTEyNSw3ICsxMjUsNyBAQCBjbGFzcyBDb21tb25EYXRhIHsKICAgICBW
ZWN0b3I8SWRlbnRpZmllcj4gZGZnSWRlbnRpZmllcnM7CiAgICAgVmVjdG9yPFdlYWtSZWZlcmVu
Y2VUcmFuc2l0aW9uPiB0cmFuc2l0aW9uczsKICAgICBWZWN0b3I8V3JpdGVCYXJyaWVyPEpTQ2Vs
bD4+IHdlYWtSZWZlcmVuY2VzOwotICAgIFZlY3RvcjxXcml0ZUJhcnJpZXI8U3RydWN0dXJlPj4g
d2Vha1N0cnVjdHVyZVJlZmVyZW5jZXM7CisgICAgVmVjdG9yPFN0cnVjdHVyZUlEPiB3ZWFrU3Ry
dWN0dXJlUmVmZXJlbmNlczsKICAgICBWZWN0b3I8Q2F0Y2hFbnRyeXBvaW50RGF0YT4gY2F0Y2hF
bnRyeXBvaW50czsKICAgICBCYWc8Q29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50PiB3YXRj
aHBvaW50czsKICAgICBCYWc8QWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50PiBhZGFwdGl2ZVN0
cnVjdHVyZVdhdGNocG9pbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEZXNpcmVkV2Vha1JlZmVyZW5jZXMuY3BwCmluZGV4IGZjMjc3NDVlZThmNGQzYWUwNjVi
Yzg1YzIxNDc0NjU1MTg5NWJlNTkuLjFhMGFkOGEyM2QwNDQ5ZDViMDEwMjRlZjcyZjBkNGVmZWI0
NTk4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdl
YWtSZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2ly
ZWRXZWFrUmVmZXJlbmNlcy5jcHAKQEAgLTY3LDExICs2NywxMiBAQCBib29sIERlc2lyZWRXZWFr
UmVmZXJlbmNlczo6Y29udGFpbnMoSlNDZWxsKiBjZWxsKQogCiB2b2lkIERlc2lyZWRXZWFrUmVm
ZXJlbmNlczo6cmVhbGx5QWRkKFZNJiB2bSwgQ29tbW9uRGF0YSogY29tbW9uKQogeworICAgIEFT
U0VSVCh2bS0+aGVhcC5pc0RlZmVycmVkKCkpOwogICAgIGZvciAoSlNDZWxsKiB0YXJnZXQgOiBt
X3JlZmVyZW5jZXMpIHsKICAgICAgICAgaWYgKFN0cnVjdHVyZSogc3RydWN0dXJlID0ganNEeW5h
bWljQ2FzdDxTdHJ1Y3R1cmUqPih2bSwgdGFyZ2V0KSkgewogICAgICAgICAgICAgQ29uY3VycmVu
dEpTTG9ja2VyIGxvY2tlcihtX2NvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgIGNvbW1v
bi0+d2Vha1N0cnVjdHVyZVJlZmVyZW5jZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIFdyaXRl
QmFycmllcjxTdHJ1Y3R1cmU+KHZtLCBtX2NvZGVCbG9jaywgc3RydWN0dXJlKSk7CisgICAgICAg
ICAgICAvLyBXZSBkbyBub3QgZW1pdCBXcml0ZUJhcnJpZXIgaGVyZSBzaW5jZSAoMSkgR0MgaXMg
ZGVmZXJyZWQgYW5kICgyKSB3ZSBlbWl0IHdyaXRlLWJhcnJpZXIgb24gQ29kZUJsb2NrIHdoZW4g
ZmluaXNoaW5nIERGRzo6UGxhbjo6cmVhbGx5QWRkLgorICAgICAgICAgICAgY29tbW9uLT53ZWFr
U3RydWN0dXJlUmVmZXJlbmNlcy5hcHBlbmQoc3RydWN0dXJlLT5pZCgpKTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIC8vIFRoZXJlIGFyZSB3ZWlyZCByZWxhdGlvbnNoaXBzIGluIGhv
dyBvcHRpbWl6ZWQgQ29kZUJsb2NrcwogICAgICAgICAgICAgLy8gcG9pbnQgdG8gb3RoZXIgQ29k
ZUJsb2Nrcy4gV2UgZG9uJ3Qgd2FudCB0byBoYXZlIHRoZW0gYmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1BsYW4uY3BwCmluZGV4IDkzMzQyZGFlZmQ4YWI0YTM5MDIzNmVhMmQxMGUwZjU5MDNl
Yjk3YTYuLjVkODM3MjViZGZhOTExZThiY2JiY2YxMWI4MGEzNDdjNDA4N2Y4OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcApAQCAtNjI0LDggKzYyNCw4IEBAIENvbXBpbGF0
aW9uUmVzdWx0IFBsYW46OmZpbmFsaXplV2l0aG91dE5vdGlmeWluZ0NhbGxiYWNrKCkKIAogICAg
ICAgICAgICAgZm9yIChXcml0ZUJhcnJpZXI8SlNDZWxsPiYgcmVmZXJlbmNlIDogbV9jb2RlQmxv
Y2stPmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPndlYWtSZWZlcmVuY2VzKQogICAgICAgICAgICAg
ICAgIHRyYWNrZWRSZWZlcmVuY2VzLmFkZChyZWZlcmVuY2UuZ2V0KCkpOwotICAgICAgICAgICAg
Zm9yIChXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiYgcmVmZXJlbmNlIDogbV9jb2RlQmxvY2stPmpp
dENvZGUoKS0+ZGZnQ29tbW9uKCktPndlYWtTdHJ1Y3R1cmVSZWZlcmVuY2VzKQotICAgICAgICAg
ICAgICAgIHRyYWNrZWRSZWZlcmVuY2VzLmFkZChyZWZlcmVuY2UuZ2V0KCkpOworICAgICAgICAg
ICAgZm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IG1fY29kZUJsb2NrLT5qaXRDb2RlKCkt
PmRmZ0NvbW1vbigpLT53ZWFrU3RydWN0dXJlUmVmZXJlbmNlcykKKyAgICAgICAgICAgICAgICB0
cmFja2VkUmVmZXJlbmNlcy5hZGQobV92bS0+Z2V0U3RydWN0dXJlKHN0cnVjdHVyZUlEKSk7CiAg
ICAgICAgICAgICBmb3IgKFdyaXRlQmFycmllcjxVbmtub3duPiYgY29uc3RhbnQgOiBtX2NvZGVC
bG9jay0+Y29uc3RhbnRzKCkpCiAgICAgICAgICAgICAgICAgdHJhY2tlZFJlZmVyZW5jZXMuYWRk
KGNvbnN0YW50LmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKaW5k
ZXggZGE1MjNmMzk4YTI4NmM2NjQzMzFmNGJmYjY0MzdiNmU1NGFkODZkYS4uOTE4MjA0MTU1NGJk
Yzc2YzE5MWNiMTM4NWQxM2E5YzgxZmZkNDVlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRy
eUNhY2hlR2V0QnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKgogICAg
ICAgICAgICAgICAgICAgICAgICAgcHJvdG90eXBlQWNjZXNzQ2hhaW4gPSBQb2x5UHJvdG9BY2Nl
c3NDaGFpbjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgYmFzZUNlbGwsIHNsb3QpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFwcm90b3R5cGVBY2Nlc3NDaGFpbikKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gR2l2ZVVwT25DYWNoZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSB8fCBwcm90b3R5cGVB
Y2Nlc3NDaGFpbi0+c2xvdEJhc2VTdHJ1Y3R1cmUoc3RydWN0dXJlKS0+Z2V0KHZtLCBwcm9wZXJ0
eU5hbWUudWlkKCkpID09IG9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVChzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgfHwgcHJvdG90eXBlQWNjZXNzQ2hhaW4t
PnNsb3RCYXNlU3RydWN0dXJlKHZtLCBzdHJ1Y3R1cmUpLT5nZXQodm0sIHByb3BlcnR5TmFtZS51
aWQoKSkgPT0gb2Zmc2V0KTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIFdlIHVzZSBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBpbnN0
ZWFkIGZvciBmYXN0ZXIgYWNjZXNzZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b3R5
cGVBY2Nlc3NDaGFpbiA9IG51bGxwdHI7CkBAIC02ODgsNyArNjg4LDcgQEAgc3RhdGljIElubGlu
ZUNhY2hlQWN0aW9uIHRyeUNhY2hlUHV0QnlJRChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDb2RlQmxvY2sKICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvdHlwZUFjY2Vzc0NoYWlu
ID0gUG9seVByb3RvQWNjZXNzQ2hhaW46OmNyZWF0ZShnbG9iYWxPYmplY3QsIGJhc2VDZWxsLCBz
bG90LmJhc2UoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb3RvdHlwZUFjY2Vz
c0NoYWluKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaXZlVXBPbkNhY2hl
OwotICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gcHJvdG90eXBlQWNjZXNzQ2hhaW4t
PnNsb3RCYXNlU3RydWN0dXJlKGJhc2VDZWxsLT5zdHJ1Y3R1cmUodm0pKS0+Z2V0KHZtLCBpZGVu
dC5pbXBsKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gcHJvdG90eXBlQWNj
ZXNzQ2hhaW4tPnNsb3RCYXNlU3RydWN0dXJlKHZtLCBiYXNlQ2VsbC0+c3RydWN0dXJlKHZtKSkt
PmdldCh2bSwgaWRlbnQuaW1wbCgpKTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIHByb3RvdHlwZUFjY2Vzc0NoYWluID0gbnVsbHB0cjsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvblNldCA9IGdlbmVyYXRlQ29uZGl0aW9uc0Zv
clByb3RvdHlwZVByb3BlcnR5SGl0KApAQCAtNzkwLDcgKzc5MCw3IEBAIHN0YXRpYyBJbmxpbmVD
YWNoZUFjdGlvbiB0cnlDYWNoZUluQnlJRCgKICAgICAgICAgICAgICAgICAgICAgcHJvdG90eXBl
QWNjZXNzQ2hhaW4gPSBQb2x5UHJvdG9BY2Nlc3NDaGFpbjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
YmFzZSwgc2xvdCk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvdG90eXBlQWNjZXNzQ2hh
aW4pCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2l2ZVVwT25DYWNoZTsKLSAgICAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpIHx8
IHByb3RvdHlwZUFjY2Vzc0NoYWluLT5zbG90QmFzZVN0cnVjdHVyZShzdHJ1Y3R1cmUpLT5nZXQo
dm0sIGlkZW50LmltcGwoKSkgPT0gc2xvdC5jYWNoZWRPZmZzZXQoKSk7CisgICAgICAgICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSB8fCBwcm90b3R5
cGVBY2Nlc3NDaGFpbi0+c2xvdEJhc2VTdHJ1Y3R1cmUodm0sIHN0cnVjdHVyZSktPmdldCh2bSwg
aWRlbnQuaW1wbCgpKSA9PSBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBwcm90b3R5cGVBY2Nlc3NDaGFpbiA9IG51bGxw
dHI7CiAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvblNldCA9IGdlbmVyYXRlQ29uZGl0aW9u
c0ZvclByb3RvdHlwZVByb3BlcnR5SGl0KAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389454</attachid>
            <date>2020-01-31 21:51:00 -0800</date>
            <delta_ts>2020-01-31 22:06:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207086-20200131215059.patch</filename>
            <type>text/plain</type>
            <size>29150</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
Y2NiNThlZGJjYTMxZjMyZGQ4NWRmODViYzc0M2RlMzVkYTQ5Njk5Li4zOWE3OWU3MzYwNTUxN2M5
MTNhMWUxMmQ1OWIzN2VmMjc5YzZiMjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NCBAQAorMjAyMC0wMS0zMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEhvbGQgU3RydWN0dXJlSUQgaW5zdGVhZCBvZiBTdHJ1Y3R1cmUq
IGluIFBvbHlQcm90b0FjY2Vzc0NoYWluIGFuZCBERkc6OkNvbW1vbkRhdGEKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzA4NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBvbHlQcm90b0FjY2Vzc0NoYWlu
IGFuZCBERkc6OkNvbW1vbkRhdGEgYXJlIGtlcHQgYWxpdmUgc28gbG9uZyBhcyBhc3NvY2lhdGVk
IEFjY2Vzc0Nhc2UgLyBERkcvRlRMIENvZGVCbG9jaworICAgICAgICBpcyBhbGl2ZS4gVGhleSBo
b2xkIFZlY3RvcjxTdHJ1Y3R1cmUqPiAvIFZlY3RvcjxXcml0ZUJhcnJpZXI8U3RydWN0dXJlKj4+
LCBidXQgYWNjZXNzIGZyZXF1ZW5jeSBpcyBsb3cuIEFuZAorICAgICAgICBXZSBzaG91bGQgaG9s
ZCBWZWN0b3I8U3RydWN0dXJlSUQ+IGluc3RlYWQgdG8gY3V0IDUwJSBvZiB0aGUgc2l6ZS4KKwor
ICAgICAgICAqIGJ5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3ND
YXNlOjpjb21taXQpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpmb3JFYWNoRGVwZW5kZW50
Q2VsbCBjb25zdCk6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmRvZXNDYWxscyBjb25zdCk6
CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OnZpc2l0V2VhayBjb25zdCk6CisgICAgICAgIChK
U0M6OkFjY2Vzc0Nhc2U6OnByb3BhZ2F0ZVRyYW5zaXRpb25zIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6QWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQpOgorICAgICAgICAqIGJ5dGVjb2RlL0Fj
Y2Vzc0Nhc2UuaDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6OnByb3BhZ2F0ZVRyYW5zaXRpb25zKToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpkZXRlcm1pbmVMaXZlbmVzcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3Ry
b25nbHlWaXNpdFdlYWtSZWZlcmVuY2VzKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeVN0YXR1
cy5jcHA6CisgICAgICAgIChKU0M6OkdldEJ5U3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRo
b3V0RXhpdFNpdGVGZWVkYmFjayk6CisgICAgICAgICogYnl0ZWNvZGUvSW5CeUlkU3RhdHVzLmNw
cDoKKyAgICAgICAgKEpTQzo6SW5CeUlkU3RhdHVzOjpjb21wdXRlRm9yKToKKyAgICAgICAgKEpT
Qzo6SW5CeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm8pOgorICAgICAgICAoSlNDOjpJbkJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKToKKyAg
ICAgICAgKiBieXRlY29kZS9JbkJ5SWRTdGF0dXMuaDoKKyAgICAgICAgKiBieXRlY29kZS9JbnN0
YW5jZU9mU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6SW5zdGFuY2VPZlN0YXR1czo6Y29tcHV0
ZUZvcik6CisgICAgICAgIChKU0M6Okluc3RhbmNlT2ZTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5m
byk6CisgICAgICAgICogYnl0ZWNvZGUvSW5zdGFuY2VPZlN0YXR1cy5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1BvbHlQcm90b0FjY2Vzc0NoYWluLmNwcDoKKyAgICAgICAgKEpTQzo6UG9seVByb3Rv
QWNjZXNzQ2hhaW46OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlBvbHlQcm90b0FjY2Vzc0NoYWlu
OjpuZWVkSW1wdXJlUHJvcGVydHlXYXRjaHBvaW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UG9s
eVByb3RvQWNjZXNzQ2hhaW46OmR1bXAgY29uc3QpOgorICAgICAgICAqIGJ5dGVjb2RlL1BvbHlQ
cm90b0FjY2Vzc0NoYWluLmg6CisgICAgICAgIChKU0M6OlBvbHlQcm90b0FjY2Vzc0NoYWluOjpj
aGFpbiBjb25zdCk6CisgICAgICAgIChKU0M6OlBvbHlQcm90b0FjY2Vzc0NoYWluOjpmb3JFYWNo
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UG9seVByb3RvQWNjZXNzQ2hhaW46OnNsb3RCYXNlU3Ry
dWN0dXJlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6UG9seVByb3RvQWNjZXNzQ2hhaW46OiBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgor
ICAgICAgICAoSlNDOjpQb2x5bW9ycGhpY0FjY2Vzczo6cmVnZW5lcmF0ZSk6CisgICAgICAgICog
Ynl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OlB1dEJ5SWRTdGF0dXM6
OmNvbXB1dGVGb3JTdHViSW5mbyk6CisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6c3VtbWFyeSBjb25zdCk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJbmZvOjpzdW1tYXJ5KToKKyAgICAgICAgKiBi
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAqIGRmZy9ERkdDb21tb25EYXRh
Lmg6CisgICAgICAgICogZGZnL0RGR0Rlc2lyZWRXZWFrUmVmZXJlbmNlcy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6RGVzaXJlZFdlYWtSZWZlcmVuY2VzOjpyZWFsbHlBZGQpOgorICAgICAgICAq
IGRmZy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjpmaW5hbGl6ZVdpdGhv
dXROb3RpZnlpbmdDYWxsYmFjayk6CisgICAgICAgICogaml0L1JlcGF0Y2guY3BwOgorICAgICAg
ICAoSlNDOjp0cnlDYWNoZUdldEJ5KToKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVQdXRCeUlEKToK
KyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVJbkJ5SUQpOgorCiAyMDIwLTAxLTMxICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gU2hyaW5rVG9GaXQgc29t
ZSB2ZWN0b3JzIGtlcHQgYnkgSklUIGRhdGEgc3RydWN0dXJlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCmluZGV4IDg5NGQzNzIxYjJkMmYzODVlOWZm
YTEzZTk1NWE3NDVhMGFhYTU1M2IuLjJhZjQ4MGE5Y2U3ZDgwMjVjZTU4ODNkOGFkZjljOTg0MjY5
YmE5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3ND
YXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5j
cHAKQEAgLTE5MCw3ICsxOTAsNyBAQCBWZWN0b3I8V2F0Y2hwb2ludFNldCosIDI+IEFjY2Vzc0Nh
c2U6OmNvbW1pdChWTSYgdm0pCiAgICAgaWYgKG1faWRlbnRpZmllcikgewogICAgICAgICBpZiAo
KHN0cnVjdHVyZSAmJiBzdHJ1Y3R1cmUtPm5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9pbnQoKSkK
ICAgICAgICAgICAgIHx8IG1fY29uZGl0aW9uU2V0Lm5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9p
bnQoKQotICAgICAgICAgICAgfHwgKG1fcG9seVByb3RvQWNjZXNzQ2hhaW4gJiYgbV9wb2x5UHJv
dG9BY2Nlc3NDaGFpbi0+bmVlZEltcHVyZVByb3BlcnR5V2F0Y2hwb2ludCgpKSkKKyAgICAgICAg
ICAgIHx8IChtX3BvbHlQcm90b0FjY2Vzc0NoYWluICYmIG1fcG9seVByb3RvQWNjZXNzQ2hhaW4t
Pm5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9pbnQodm0pKSkKICAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQodm0uZW5zdXJlV2F0Y2hwb2ludFNldEZvckltcHVyZVByb3BlcnR5KG1faWRlbnRpZmll
ci51aWQoKSkpOwogICAgIH0KIApAQCAtMzk5LDE0ICszOTksMTQgQEAgYm9vbCBBY2Nlc3NDYXNl
OjpuZWVkc1NjcmF0Y2hGUFIoKSBjb25zdAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9y
Pgotdm9pZCBBY2Nlc3NDYXNlOjpmb3JFYWNoRGVwZW5kZW50Q2VsbChjb25zdCBGdW5jdG9yJiBm
dW5jdG9yKSBjb25zdAordm9pZCBBY2Nlc3NDYXNlOjpmb3JFYWNoRGVwZW5kZW50Q2VsbChWTSYg
dm0sIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpIGNvbnN0CiB7CiAgICAgbV9jb25kaXRpb25TZXQu
Zm9yRWFjaERlcGVuZGVudENlbGwoZnVuY3Rvcik7CiAgICAgaWYgKG1fc3RydWN0dXJlKQogICAg
ICAgICBmdW5jdG9yKG1fc3RydWN0dXJlLmdldCgpKTsKICAgICBpZiAobV9wb2x5UHJvdG9BY2Nl
c3NDaGFpbikgewotICAgICAgICBmb3IgKFN0cnVjdHVyZSogc3RydWN0dXJlIDogbV9wb2x5UHJv
dG9BY2Nlc3NDaGFpbi0+Y2hhaW4oKSkKLSAgICAgICAgICAgIGZ1bmN0b3Ioc3RydWN0dXJlKTsK
KyAgICAgICAgZm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IG1fcG9seVByb3RvQWNjZXNz
Q2hhaW4tPmNoYWluKCkpCisgICAgICAgICAgICBmdW5jdG9yKHZtLmdldFN0cnVjdHVyZShzdHJ1
Y3R1cmVJRCkpOwogICAgIH0KIAogICAgIHN3aXRjaCAodHlwZSgpKSB7CkBAIC00NzcsNyArNDc3
LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpmb3JFYWNoRGVwZW5kZW50Q2VsbChjb25zdCBGdW5jdG9y
JiBmdW5jdG9yKSBjb25zdAogICAgIH0KIH0KIAotYm9vbCBBY2Nlc3NDYXNlOjpkb2VzQ2FsbHMo
VmVjdG9yPEpTQ2VsbCo+KiBjZWxsc1RvTWFya0lmRG9lc0NhbGxzKSBjb25zdAorYm9vbCBBY2Nl
c3NDYXNlOjpkb2VzQ2FsbHMoVk0mIHZtLCBWZWN0b3I8SlNDZWxsKj4qIGNlbGxzVG9NYXJrSWZE
b2VzQ2FsbHMpIGNvbnN0CiB7CiAgICAgYm9vbCBkb2VzQ2FsbHMgPSBmYWxzZTsKICAgICBzd2l0
Y2ggKHR5cGUoKSkgewpAQCAtNTI4LDcgKzUyOCw3IEBAIGJvb2wgQWNjZXNzQ2FzZTo6ZG9lc0Nh
bGxzKFZlY3RvcjxKU0NlbGwqPiogY2VsbHNUb01hcmtJZkRvZXNDYWxscykgY29uc3QKICAgICB9
CiAKICAgICBpZiAoZG9lc0NhbGxzICYmIGNlbGxzVG9NYXJrSWZEb2VzQ2FsbHMpIHsKLSAgICAg
ICAgZm9yRWFjaERlcGVuZGVudENlbGwoWyZdKEpTQ2VsbCogY2VsbCkgeworICAgICAgICBmb3JF
YWNoRGVwZW5kZW50Q2VsbCh2bSwgWyZdKEpTQ2VsbCogY2VsbCkgewogICAgICAgICAgICAgY2Vs
bHNUb01hcmtJZkRvZXNDYWxscy0+YXBwZW5kKGNlbGwpOwogICAgICAgICB9KTsKICAgICB9CkBA
IC02ODUsNyArNjg1LDcgQEAgYm9vbCBBY2Nlc3NDYXNlOjp2aXNpdFdlYWsoVk0mIHZtKSBjb25z
dAogICAgIH0KIAogICAgIGJvb2wgaXNWYWxpZCA9IHRydWU7Ci0gICAgZm9yRWFjaERlcGVuZGVu
dENlbGwoWyZdKEpTQ2VsbCogY2VsbCkgeworICAgIGZvckVhY2hEZXBlbmRlbnRDZWxsKHZtLCBb
Jl0oSlNDZWxsKiBjZWxsKSB7CiAgICAgICAgIGlzVmFsaWQgJj0gdm0uaGVhcC5pc01hcmtlZChj
ZWxsKTsKICAgICB9KTsKICAgICByZXR1cm4gaXNWYWxpZDsKQEAgLTY5OSw4ICs2OTksOCBAQCBi
b29sIEFjY2Vzc0Nhc2U6OnByb3BhZ2F0ZVRyYW5zaXRpb25zKFNsb3RWaXNpdG9yJiB2aXNpdG9y
KSBjb25zdAogICAgICAgICByZXN1bHQgJj0gbV9zdHJ1Y3R1cmUtPm1hcmtJZkNoZWFwKHZpc2l0
b3IpOwogCiAgICAgaWYgKG1fcG9seVByb3RvQWNjZXNzQ2hhaW4pIHsKLSAgICAgICAgZm9yIChT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSA6IG1fcG9seVByb3RvQWNjZXNzQ2hhaW4tPmNoYWluKCkpCi0g
ICAgICAgICAgICByZXN1bHQgJj0gc3RydWN0dXJlLT5tYXJrSWZDaGVhcCh2aXNpdG9yKTsKKyAg
ICAgICAgZm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IG1fcG9seVByb3RvQWNjZXNzQ2hh
aW4tPmNoYWluKCkpCisgICAgICAgICAgICByZXN1bHQgJj0gdmlzaXRvci52bSgpLmdldFN0cnVj
dHVyZShzdHJ1Y3R1cmVJRCktPm1hcmtJZkNoZWFwKHZpc2l0b3IpOwogICAgIH0KIAogICAgIHN3
aXRjaCAobV90eXBlKSB7CkBAIC03NTUsNyArNzU1LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5l
cmF0ZVdpdGhHdWFyZCgKICAgICAgICAgaWYgKG1fcG9seVByb3RvQWNjZXNzQ2hhaW4pIHsKICAg
ICAgICAgICAgIEdQUlJlZyBiYXNlRm9yQWNjZXNzR1BSID0gc3RhdGUuc2NyYXRjaEdQUjsKICAg
ICAgICAgICAgIGppdC5tb3ZlKHN0YXRlLmJhc2VHUFIsIGJhc2VGb3JBY2Nlc3NHUFIpOwotICAg
ICAgICAgICAgbV9wb2x5UHJvdG9BY2Nlc3NDaGFpbi0+Zm9yRWFjaChzdHJ1Y3R1cmUoKSwgWyZd
IChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgYm9vbCBhdEVuZCkgeworICAgICAgICAgICAgbV9wb2x5
UHJvdG9BY2Nlc3NDaGFpbi0+Zm9yRWFjaCh2bSwgc3RydWN0dXJlKCksIFsmXSAoU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIGJvb2wgYXRFbmQpIHsKICAgICAgICAgICAgICAgICBmYWxsVGhyb3VnaC5h
cHBlbmQoCiAgICAgICAgICAgICAgICAgICAgIGppdC5icmFuY2hTdHJ1Y3R1cmUoCiAgICAgICAg
ICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmgKaW5kZXggYmMyYTY1ODBhNDIyNzE4NzkxNTU2
NTkwYTNiMDA5OWY1NjE1OGUzMi4uNzlkMzEwMTU1ZTkzYTU0NTNkMjg2MWM0MzIyN2JhM2JhYzE5
ZjI3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nh
c2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5oCkBA
IC0xNzksNyArMTc5LDcgQEAgY2xhc3MgQWNjZXNzQ2FzZSB7CiAKICAgICAvLyBJZiB5b3Ugc3Vw
cGx5IHRoZSBvcHRpb25hbCB2ZWN0b3IsIHRoaXMgd2lsbCBhcHBlbmQgdGhlIHNldCBvZiBjZWxs
cyB0aGF0IHRoaXMgd2lsbCBuZWVkIHRvIGtlZXAgYWxpdmUKICAgICAvLyBwYXN0IHRoZSBjYWxs
LgotICAgIGJvb2wgZG9lc0NhbGxzKFZlY3RvcjxKU0NlbGwqPiogY2VsbHNUb01hcmsgPSBudWxs
cHRyKSBjb25zdDsKKyAgICBib29sIGRvZXNDYWxscyhWTSYsIFZlY3RvcjxKU0NlbGwqPiogY2Vs
bHNUb01hcmsgPSBudWxscHRyKSBjb25zdDsKIAogICAgIGJvb2wgaXNDdXN0b20oKSBjb25zdAog
ICAgIHsKQEAgLTI2OCw3ICsyNjgsNyBAQCBjbGFzcyBBY2Nlc3NDYXNlIHsKICAgICBmcmllbmQg
Y2xhc3MgUG9seW1vcnBoaWNBY2Nlc3M7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9y
PgotICAgIHZvaWQgZm9yRWFjaERlcGVuZGVudENlbGwoY29uc3QgRnVuY3RvciYpIGNvbnN0Owor
ICAgIHZvaWQgZm9yRWFjaERlcGVuZGVudENlbGwoVk0mLCBjb25zdCBGdW5jdG9yJikgY29uc3Q7
CiAKICAgICB2b2lkIHZpc2l0QWdncmVnYXRlKFNsb3RWaXNpdG9yJikgY29uc3Q7CiAgICAgYm9v
bCB2aXNpdFdlYWsoVk0mKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKaW5kZXggOTFmMDRmZTNjODkyYzVkOGU4MTkyNDgxZmNjZGQyMjY4NGQ2
ZGFkMC4uOTY3NTkxZGEzZjUyNDI0NzEzY2I4YjM3ODY1MDNiNGJmM2M4MDFjMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTExMzMsOCArMTEz
Myw4IEBAIHZvaWQgQ29kZUJsb2NrOjpwcm9wYWdhdGVUcmFuc2l0aW9ucyhjb25zdCBDb25jdXJy
ZW50SlNMb2NrZXImLCBTbG90VmlzaXRvciYgdmlzCiAgICAgICAgIAogICAgICAgICBkZmdDb21t
b24tPnJlY29yZGVkU3RhdHVzZXMubWFya0lmQ2hlYXAodmlzaXRvcik7CiAgICAgICAgIAotICAg
ICAgICBmb3IgKGF1dG8mIHdlYWtSZWZlcmVuY2UgOiBkZmdDb21tb24tPndlYWtTdHJ1Y3R1cmVS
ZWZlcmVuY2VzKQotICAgICAgICAgICAgd2Vha1JlZmVyZW5jZS0+bWFya0lmQ2hlYXAodmlzaXRv
cik7CisgICAgICAgIGZvciAoU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgOiBkZmdDb21tb24tPndl
YWtTdHJ1Y3R1cmVSZWZlcmVuY2VzKQorICAgICAgICAgICAgdm0uZ2V0U3RydWN0dXJlKHN0cnVj
dHVyZUlEKS0+bWFya0lmQ2hlYXAodmlzaXRvcik7CiAKICAgICAgICAgZm9yIChhdXRvJiB0cmFu
c2l0aW9uIDogZGZnQ29tbW9uLT50cmFuc2l0aW9ucykgewogICAgICAgICAgICAgaWYgKHNob3Vs
ZE1hcmtUcmFuc2l0aW9uKHZtLCB0cmFuc2l0aW9uKSkgewpAQCAtMTE5Myw4ICsxMTkzLDkgQEAg
dm9pZCBDb2RlQmxvY2s6OmRldGVybWluZUxpdmVuZXNzKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tl
ciYsIFNsb3RWaXNpdG9yJiB2aXNpdG8KICAgICAgICAgfQogICAgIH0KICAgICBpZiAoYWxsQXJl
TGl2ZVNvRmFyKSB7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZmdDb21tb24t
PndlYWtTdHJ1Y3R1cmVSZWZlcmVuY2VzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAo
IXZtLmhlYXAuaXNNYXJrZWQoZGZnQ29tbW9uLT53ZWFrU3RydWN0dXJlUmVmZXJlbmNlc1tpXS5n
ZXQoKSkpIHsKKyAgICAgICAgZm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IGRmZ0NvbW1v
bi0+d2Vha1N0cnVjdHVyZVJlZmVyZW5jZXMpIHsKKyAgICAgICAgICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlID0gdm0uZ2V0U3RydWN0dXJlKHN0cnVjdHVyZUlEKTsKKyAgICAgICAgICAgIGlmICgh
dm0uaGVhcC5pc01hcmtlZChzdHJ1Y3R1cmUpKSB7CiAgICAgICAgICAgICAgICAgYWxsQXJlTGl2
ZVNvRmFyID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBA
IC0xNzIwLDggKzE3MjEsOCBAQCB2b2lkIENvZGVCbG9jazo6c3Ryb25nbHlWaXNpdFdlYWtSZWZl
cmVuY2VzKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlciYsIFNsb3RWaXNpdAogICAgIGZvciAoYXV0
byYgd2Vha1JlZmVyZW5jZSA6IGRmZ0NvbW1vbi0+d2Vha1JlZmVyZW5jZXMpCiAgICAgICAgIHZp
c2l0b3IuYXBwZW5kKHdlYWtSZWZlcmVuY2UpOwogCi0gICAgZm9yIChhdXRvJiB3ZWFrU3RydWN0
dXJlUmVmZXJlbmNlIDogZGZnQ29tbW9uLT53ZWFrU3RydWN0dXJlUmVmZXJlbmNlcykKLSAgICAg
ICAgdmlzaXRvci5hcHBlbmQod2Vha1N0cnVjdHVyZVJlZmVyZW5jZSk7CisgICAgZm9yIChTdHJ1
Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IGRmZ0NvbW1vbi0+d2Vha1N0cnVjdHVyZVJlZmVyZW5jZXMp
CisgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQodmlzaXRvci52bSgpLmdldFN0cnVj
dHVyZShzdHJ1Y3R1cmVJRCkpOwogCiAgICAgZGZnQ29tbW9uLT5saXZlbmVzc0hhc0JlZW5Qcm92
ZWQgPSB0cnVlOwogI2VuZGlmICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0dldEJ5U3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9HZXRCeVN0YXR1cy5jcHAKaW5kZXggNTNmMzU4NjQzYTkxOTJhZWVkNmNhNzk3ZTUzYzZkNDRk
MTI2NWNhZC4uOGRlODU3OTQ4MTllMjkxNzYzNGQzMTNmNDFlNGI4N2RiYzBjMDYzNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5U3RhdHVzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlTdGF0dXMuY3BwCkBAIC0xNjgs
NyArMTY4LDcgQEAgR2V0QnlTdGF0dXM6OkdldEJ5U3RhdHVzKGNvbnN0IE1vZHVsZU5hbWVzcGFj
ZUFjY2Vzc0Nhc2UmIGFjY2Vzc0Nhc2UpCiBHZXRCeVN0YXR1cyBHZXRCeVN0YXR1czo6Y29tcHV0
ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgY29uc3QgQ29uY3VycmVu
dEpTTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvLCBDYWxsTGlua1N0YXR1czo6RXhpdFNpdGVEYXRhIGNhbGxFeGl0U2l0
ZURhdGEpCiB7Ci0gICAgU3R1YkluZm9TdW1tYXJ5IHN1bW1hcnkgPSBTdHJ1Y3R1cmVTdHViSW5m
bzo6c3VtbWFyeShzdHViSW5mbyk7CisgICAgU3R1YkluZm9TdW1tYXJ5IHN1bW1hcnkgPSBTdHJ1
Y3R1cmVTdHViSW5mbzo6c3VtbWFyeShwcm9maWxlZEJsb2NrLT52bSgpLCBzdHViSW5mbyk7CiAg
ICAgaWYgKCFpc0lubGluZWFibGUoc3VtbWFyeSkpCiAgICAgICAgIHJldHVybiBHZXRCeVN0YXR1
cyhzdW1tYXJ5LCAqc3R1YkluZm8pOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0luQnlJZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvSW5CeUlkU3RhdHVzLmNwcAppbmRleCA1YWUwYmRjYjY0MDQ2YmY0ZDg0MWMzNDA1
NzlkNTNmMmE1N2I1ZTI5Li44NjIyYjI3OGYzNzM3NDJkYTY3MWMxMzBlZDdkNzdiZmQ0ZTY3ZDI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5CeUlkU3RhdHVz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5CeUlkU3RhdHVzLmNw
cApAQCAtNTAsNyArNTAsNyBAQCBJbkJ5SWRTdGF0dXMgSW5CeUlkU3RhdHVzOjpjb21wdXRlRm9y
KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgSUNTdGF0dXNNYXAmIG1hcAogICAgIEluQnlJZFN0
YXR1cyByZXN1bHQ7CiAKICNpZiBFTkFCTEUoREZHX0pJVCkKLSAgICByZXN1bHQgPSBjb21wdXRl
Rm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjayhsb2NrZXIsIG1hcC5nZXQoQ29kZU9y
aWdpbihieXRlY29kZUluZGV4KSkuc3R1YkluZm8sIHVpZCk7CisgICAgcmVzdWx0ID0gY29tcHV0
ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2sobG9ja2VyLCBwcm9maWxlZEJsb2Nr
LT52bSgpLCBtYXAuZ2V0KENvZGVPcmlnaW4oYnl0ZWNvZGVJbmRleCkpLnN0dWJJbmZvLCB1aWQp
OwogCiAgICAgaWYgKCFyZXN1bHQudGFrZXNTbG93UGF0aCgpICYmIGRpZEV4aXQpCiAgICAgICAg
IHJldHVybiBJbkJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCk7CkBAIC05Niw3ICs5Niw3IEBAIElu
QnlJZFN0YXR1cyBJbkJ5SWRTdGF0dXM6OmNvbXB1dGVGb3IoCiAgICAgICAgICAgICBJbkJ5SWRT
dGF0dXMgcmVzdWx0OwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIENvbmN1cnJlbnRK
U0xvY2tlciBsb2NrZXIoY29udGV4dC0+b3B0aW1pemVkQ29kZUJsb2NrLT5tX2xvY2spOwotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZl
ZWRiYWNrKGxvY2tlciwgc3RhdHVzLnN0dWJJbmZvLCB1aWQpOworICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKGxvY2tlciwg
cHJvZmlsZWRCbG9jay0+dm0oKSwgc3RhdHVzLnN0dWJJbmZvLCB1aWQpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1NldCgpKQogICAgICAgICAgICAgICAgIHJldHVy
biBibGVzcyhyZXN1bHQpOwpAQCAtMTE0LDE2ICsxMTQsMTYgQEAgSW5CeUlkU3RhdHVzIEluQnlJ
ZFN0YXR1czo6Y29tcHV0ZUZvcigKICNpZiBFTkFCTEUoREZHX0pJVCkKIEluQnlJZFN0YXR1cyBJ
bkJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mbyhjb25zdCBDb25jdXJyZW50SlNMb2NrZXIm
IGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKIHsK
LSAgICBJbkJ5SWRTdGF0dXMgcmVzdWx0ID0gSW5CeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1Yklu
Zm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjayhsb2NrZXIsIHN0dWJJbmZvLCB1aWQpOworICAgIElu
QnlJZFN0YXR1cyByZXN1bHQgPSBJbkJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhv
dXRFeGl0U2l0ZUZlZWRiYWNrKGxvY2tlciwgcHJvZmlsZWRCbG9jay0+dm0oKSwgc3R1YkluZm8s
IHVpZCk7CiAKICAgICBpZiAoIXJlc3VsdC50YWtlc1Nsb3dQYXRoKCkgJiYgaGFzQmFkQ2FjaGVF
eGl0U2l0ZShwcm9maWxlZEJsb2NrLCBjb2RlT3JpZ2luLmJ5dGVjb2RlSW5kZXgoKSkpCiAgICAg
ICAgIHJldHVybiBJbkJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotSW5CeUlkU3RhdHVzIEluQnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0
aG91dEV4aXRTaXRlRmVlZGJhY2soY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiwgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQorSW5CeUlkU3RhdHVz
IEluQnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2so
Y29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiwgVk0mIHZtLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm8sIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCiB7Ci0gICAgU3R1YkluZm9TdW1tYXJ5IHN1
bW1hcnkgPSBTdHJ1Y3R1cmVTdHViSW5mbzo6c3VtbWFyeShzdHViSW5mbyk7CisgICAgU3R1Yklu
Zm9TdW1tYXJ5IHN1bW1hcnkgPSBTdHJ1Y3R1cmVTdHViSW5mbzo6c3VtbWFyeSh2bSwgc3R1Yklu
Zm8pOwogICAgIGlmICghaXNJbmxpbmVhYmxlKHN1bW1hcnkpKQogICAgICAgICByZXR1cm4gSW5C
eUlkU3RhdHVzKHN1bW1hcnkpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0luQnlJZFN0YXR1cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0luQnlJZFN0YXR1cy5oCmluZGV4IGI3OTExYTEwMTVlZTA1MWEyZGJhOTNhNzgzOTM3M2E0
NjhkNzk3ZDUuLjM4ZDk3YTljN2VjOWI4MDlkN2M3ODg1NDFkZTViYzZiZTI4OTBlZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbkJ5SWRTdGF0dXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5CeUlkU3RhdHVzLmgKQEAgLTExMyw3
ICsxMTMsNyBAQCBjbGFzcyBJbkJ5SWRTdGF0dXMgZmluYWwgewogCiBwcml2YXRlOgogI2lmIEVO
QUJMRShERkdfSklUKQotICAgIHN0YXRpYyBJbkJ5SWRTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZv
V2l0aG91dEV4aXRTaXRlRmVlZGJhY2soY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiwgU3RydWN0
dXJlU3R1YkluZm8qLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKTsKKyAgICBzdGF0aWMgSW5CeUlk
U3RhdHVzIGNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKGNvbnN0IENv
bmN1cnJlbnRKU0xvY2tlciYsIFZNJiwgU3RydWN0dXJlU3R1YkluZm8qLCBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkKTsKICNlbmRpZgogICAgIGJvb2wgYXBwZW5kVmFyaWFudChjb25zdCBJbkJ5SWRW
YXJpYW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9J
bnN0YW5jZU9mU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnN0
YW5jZU9mU3RhdHVzLmNwcAppbmRleCBhYjY5NGU1NzFiMTg0NWIzY2ZjNDNmMTliMzNjNTY2NGZj
MDgyZTg2Li4zNTU0YzdjZDk5ZTJkYWZhYTg4OTIxZDQ2ODE1ZjIzMjhmNzc0ZmIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5zdGFuY2VPZlN0YXR1cy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZTdGF0dXMuY3Bw
CkBAIC00Niw3ICs0Niw3IEBAIEluc3RhbmNlT2ZTdGF0dXMgSW5zdGFuY2VPZlN0YXR1czo6Y29t
cHV0ZUZvcigKICAgICAKICAgICBJbnN0YW5jZU9mU3RhdHVzIHJlc3VsdDsKICNpZiBFTkFCTEUo
REZHX0pJVCkKLSAgICByZXN1bHQgPSBjb21wdXRlRm9yU3R1YkluZm8obG9ja2VyLCBpbmZvTWFw
LmdldChDb2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgpKS5zdHViSW5mbyk7CisgICAgcmVzdWx0ID0g
Y29tcHV0ZUZvclN0dWJJbmZvKGxvY2tlciwgY29kZUJsb2NrLT52bSgpLCBpbmZvTWFwLmdldChD
b2RlT3JpZ2luKGJ5dGVjb2RlSW5kZXgpKS5zdHViSW5mbyk7CiAKICAgICBpZiAoIXJlc3VsdC50
YWtlc1Nsb3dQYXRoKCkpIHsKICAgICAgICAgVW5saW5rZWRDb2RlQmxvY2sqIHVubGlua2VkQ29k
ZUJsb2NrID0gY29kZUJsb2NrLT51bmxpbmtlZENvZGVCbG9jaygpOwpAQCAtNjYsMTIgKzY2LDEy
IEBAIEluc3RhbmNlT2ZTdGF0dXMgSW5zdGFuY2VPZlN0YXR1czo6Y29tcHV0ZUZvcigKIH0KIAog
I2lmIEVOQUJMRShERkdfSklUKQotSW5zdGFuY2VPZlN0YXR1cyBJbnN0YW5jZU9mU3RhdHVzOjpj
b21wdXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiwgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvKQorSW5zdGFuY2VPZlN0YXR1cyBJbnN0YW5jZU9mU3RhdHVzOjpjb21w
dXRlRm9yU3R1YkluZm8oY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiwgVk0mIHZtLCBTdHJ1Y3R1
cmVTdHViSW5mbyogc3R1YkluZm8pCiB7CiAgICAgLy8gRklYTUU6IFdlIHdvdWxkbid0IGhhdmUg
dG8gYmFpbCBmb3Igbm9uQ2VsbCBpZiB3ZSB0YXVnaHQgTWF0Y2hTdHJ1Y3R1cmUgaG93IHRvIGhh
bmRsZSBub24KICAgICAvLyBjZWxscy4gSWYgd2UgZml4ZWQgdGhhdCB0aGVuIHdlIHdvdWxkbid0
IGJlIGFibGUgdG8gdXNlIHN1bW1hcnkoKTsKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg1Nzg0Ci0gICAgU3R1YkluZm9TdW1tYXJ5IHN1bW1hcnkgPSBT
dHJ1Y3R1cmVTdHViSW5mbzo6c3VtbWFyeShzdHViSW5mbyk7CisgICAgU3R1YkluZm9TdW1tYXJ5
IHN1bW1hcnkgPSBTdHJ1Y3R1cmVTdHViSW5mbzo6c3VtbWFyeSh2bSwgc3R1YkluZm8pOwogICAg
IGlmICghaXNJbmxpbmVhYmxlKHN1bW1hcnkpKQogICAgICAgICByZXR1cm4gSW5zdGFuY2VPZlN0
YXR1cyhzdW1tYXJ5KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9JbnN0YW5jZU9mU3RhdHVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvSW5zdGFuY2VPZlN0YXR1cy5oCmluZGV4IDc2ODRhOWY1NjAyMmY1YWUyNWM4YTMxZjI2ZmVk
MmZlNjhlN2VjNGMuLjg1YzQ1Y2M4YTE5YzJmOWQzNDFjZjViMmUwY2UwYmJhMWViNTFhMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnN0YW5jZU9mU3RhdHVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZTdGF0dXMu
aApAQCAtODIsNyArODIsNyBAQCBjbGFzcyBJbnN0YW5jZU9mU3RhdHVzIGZpbmFsIHsKICAgICBz
dGF0aWMgSW5zdGFuY2VPZlN0YXR1cyBjb21wdXRlRm9yKENvZGVCbG9jayosIElDU3RhdHVzTWFw
JiwgQnl0ZWNvZGVJbmRleCk7CiAgICAgCiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgc3RhdGlj
IEluc3RhbmNlT2ZTdGF0dXMgY29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKU0xv
Y2tlciYsIFN0cnVjdHVyZVN0dWJJbmZvKik7CisgICAgc3RhdGljIEluc3RhbmNlT2ZTdGF0dXMg
Y29tcHV0ZUZvclN0dWJJbmZvKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlciYsIFZNJiwgU3RydWN0
dXJlU3R1YkluZm8qKTsKICNlbmRpZgogICAgIAogICAgIFN0YXRlIHN0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGF0ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1BvbHlQcm90b0FjY2Vzc0NoYWluLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Qb2x5UHJvdG9BY2Nlc3NDaGFpbi5jcHAKaW5kZXggZTZlMWE5MWIxNWExOGFlZTRhMmMx
YzZlMzVjODYzMDRhNzc4ZmMyYi4uODRmNTZlNGJlNGU4ZTgzOWJlNDQwYzkzNTBmYjc4MzhmMTdi
ODNlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHlQcm90
b0FjY2Vzc0NoYWluLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9s
eVByb3RvQWNjZXNzQ2hhaW4uY3BwCkBAIC02MSw3ICs2MSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQ
b2x5UHJvdG9BY2Nlc3NDaGFpbj4gUG9seVByb3RvQWNjZXNzQ2hhaW46OmNyZWF0ZShKU0dsb2Jh
bE9iamVjCiAgICAgICAgIC8vIFRvIHNhdmUgbWVtb3J5LCB3ZSBkb24ndCBpbmNsdWRlIHRoZSBi
YXNlIGluIHRoZSBjaGFpbi4gV2UgbGV0CiAgICAgICAgIC8vIEFjY2Vzc0Nhc2UgcHJvdmlkZSB0
aGUgYmFzZSB0byB1cyBhcyBuZWVkZWQuCiAgICAgICAgIGlmIChpdGVyYXRpb25OdW1iZXIpCi0g
ICAgICAgICAgICByZXN1bHQtPm1fY2hhaW4uYXBwZW5kKHN0cnVjdHVyZSk7CisgICAgICAgICAg
ICByZXN1bHQtPm1fY2hhaW4uYXBwZW5kKHN0cnVjdHVyZS0+aWQoKSk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGN1cnJlbnQgPT0gYmFzZSk7CiAKQEAgLTgzLDEw
ICs4MywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8UG9seVByb3RvQWNjZXNzQ2hhaW4+IFBvbHlQcm90
b0FjY2Vzc0NoYWluOjpjcmVhdGUoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLWJvb2wgUG9seVByb3RvQWNjZXNzQ2hhaW46Om5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9p
bnQoKSBjb25zdAorYm9vbCBQb2x5UHJvdG9BY2Nlc3NDaGFpbjo6bmVlZEltcHVyZVByb3BlcnR5
V2F0Y2hwb2ludChWTSYgdm0pIGNvbnN0CiB7Ci0gICAgZm9yIChTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA6IG1fY2hhaW4pIHsKLSAgICAgICAgaWYgKHN0cnVjdHVyZS0+bmVlZEltcHVyZVByb3BlcnR5
V2F0Y2hwb2ludCgpKQorICAgIGZvciAoU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgOiBtX2NoYWlu
KSB7CisgICAgICAgIGlmICh2bS5nZXRTdHJ1Y3R1cmUoc3RydWN0dXJlSUQpLT5uZWVkSW1wdXJl
UHJvcGVydHlXYXRjaHBvaW50KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMTAwLDcgKzEwMCw3IEBAIGJvb2wgUG9seVByb3RvQWNjZXNz
Q2hhaW46Om9wZXJhdG9yPT0oY29uc3QgUG9seVByb3RvQWNjZXNzQ2hhaW4mIG90aGVyKSBjb25z
dAogdm9pZCBQb2x5UHJvdG9BY2Nlc3NDaGFpbjo6ZHVtcChTdHJ1Y3R1cmUqIGJhc2VTdHJ1Y3R1
cmUsIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KCJQb2x5UG9seVBy
b3RvQWNjZXNzQ2hhaW46IFtcbiIpOwotICAgIGZvckVhY2goYmFzZVN0cnVjdHVyZSwgWyZdIChT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgYm9vbCkgeworICAgIGZvckVhY2goYmFzZVN0cnVjdHVyZS0+
dm0oKSwgYmFzZVN0cnVjdHVyZSwgWyZdIChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgYm9vbCkgewog
ICAgICAgICBvdXQucHJpbnQoIlx0Iik7CiAgICAgICAgIHN0cnVjdHVyZS0+ZHVtcChvdXQpOwog
ICAgICAgICBvdXQucHJpbnQoIlxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvUG9seVByb3RvQWNjZXNzQ2hhaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Qb2x5UHJvdG9BY2Nlc3NDaGFpbi5oCmluZGV4IDY4YjI0YmU4MzI0NTIzNWIw
ODMwZWRkOTRkMTk3ZGYxMzE5ODljODguLmIxODJlZDQ4ZDE4NDM2OTJhZWI4ZGFkNWIzMTY5NGU0
NmY3N2Q0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5
UHJvdG9BY2Nlc3NDaGFpbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Q
b2x5UHJvdG9BY2Nlc3NDaGFpbi5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFBvbHlQcm90b0Fj
Y2Vzc0NoYWluIHsKICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UG9seVByb3RvQWNjZXNzQ2hh
aW4+KCp0aGlzKTsKICAgICB9CiAKLSAgICBjb25zdCBWZWN0b3I8U3RydWN0dXJlKj4mIGNoYWlu
KCkgY29uc3QgeyByZXR1cm4gbV9jaGFpbjsgfQorICAgIGNvbnN0IFZlY3RvcjxTdHJ1Y3R1cmVJ
RD4mIGNoYWluKCkgY29uc3QgeyByZXR1cm4gbV9jaGFpbjsgfQogCiAgICAgdm9pZCBkdW1wKFN0
cnVjdHVyZSogYmFzZVN0cnVjdHVyZSwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3Q7CiAKQEAgLTYw
LDIzICs2MCwyMyBAQCBjbGFzcyBQb2x5UHJvdG9BY2Nlc3NDaGFpbiB7CiAgICAgICAgIHJldHVy
biAhKCp0aGlzID09IG90aGVyKTsKICAgICB9CiAKLSAgICBib29sIG5lZWRJbXB1cmVQcm9wZXJ0
eVdhdGNocG9pbnQoKSBjb25zdDsKKyAgICBib29sIG5lZWRJbXB1cmVQcm9wZXJ0eVdhdGNocG9p
bnQoVk0mKSBjb25zdDsKIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jPgotICAgIHZvaWQg
Zm9yRWFjaChTdHJ1Y3R1cmUqIGJhc2VTdHJ1Y3R1cmUsIGNvbnN0IEZ1bmMmIGZ1bmMpIGNvbnN0
CisgICAgdm9pZCBmb3JFYWNoKFZNJiB2bSwgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJlLCBjb25z
dCBGdW5jJiBmdW5jKSBjb25zdAogICAgIHsKICAgICAgICAgYm9vbCBhdEVuZCA9ICFtX2NoYWlu
LnNpemUoKTsKICAgICAgICAgZnVuYyhiYXNlU3RydWN0dXJlLCBhdEVuZCk7CiAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoYWluLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAg
ICBhdEVuZCA9IGkgKyAxID09IG1fY2hhaW4uc2l6ZSgpOwotICAgICAgICAgICAgZnVuYyhtX2No
YWluW2ldLCBhdEVuZCk7CisgICAgICAgICAgICBmdW5jKHZtLmdldFN0cnVjdHVyZShtX2NoYWlu
W2ldKSwgYXRFbmQpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgU3RydWN0dXJlKiBzbG90QmFz
ZVN0cnVjdHVyZShTdHJ1Y3R1cmUqIGJhc2VTdHJ1Y3R1cmUpIGNvbnN0CisgICAgU3RydWN0dXJl
KiBzbG90QmFzZVN0cnVjdHVyZShWTSYgdm0sIFN0cnVjdHVyZSogYmFzZVN0cnVjdHVyZSkgY29u
c3QKICAgICB7CiAgICAgICAgIGlmIChtX2NoYWluLnNpemUoKSkKLSAgICAgICAgICAgIHJldHVy
biBtX2NoYWluLmxhc3QoKTsKKyAgICAgICAgICAgIHJldHVybiB2bS5nZXRTdHJ1Y3R1cmUobV9j
aGFpbi5sYXN0KCkpOwogICAgICAgICByZXR1cm4gYmFzZVN0cnVjdHVyZTsKICAgICB9CiAKQEAg
LTg1LDcgKzg1LDcgQEAgY2xhc3MgUG9seVByb3RvQWNjZXNzQ2hhaW4gewogCiAgICAgLy8gVGhp
cyBkb2VzIG5vdCBpbmNsdWRlIHRoZSBiYXNlLiBXZSByZWx5IG9uIEFjY2Vzc0Nhc2UgcHJvdmlk
aW5nIGl0IGZvciB1cy4gVGhhdCBzYWlkLCB0aGlzIGRhdGEKICAgICAvLyBzdHJ1Y3R1cmUgaXMg
dGllZCB0byB0aGUgYmFzZSB0aGF0IGl0IHdhcyBjcmVhdGVkIHdpdGguCi0gICAgVmVjdG9yPFN0
cnVjdHVyZSo+IG1fY2hhaW47IAorICAgIFZlY3RvcjxTdHJ1Y3R1cmVJRD4gbV9jaGFpbjsgCiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1v
cnBoaWNBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmNwcAppbmRleCBkYzJmNTg2ZWUyMmRhOTFiZGJjYWY2NmE2NzEyNzk3NWVlNjIw
YWVhLi4xMzI0MDljMGE0NTEwYmRmYThlY2UzM2I3NDM0NzE2MDJkN2IwZTc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAK
QEAgLTcyNSw3ICs3MjUsNyBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGljQWNj
ZXNzOjpyZWdlbmVyYXRlKAogICAgIGJvb2wgZG9lc0NhbGxzID0gZmFsc2U7CiAgICAgVmVjdG9y
PEpTQ2VsbCo+IGNlbGxzVG9NYXJrOwogICAgIGZvciAoYXV0byYgZW50cnkgOiBjYXNlcykKLSAg
ICAgICAgZG9lc0NhbGxzIHw9IGVudHJ5LT5kb2VzQ2FsbHMoJmNlbGxzVG9NYXJrKTsKKyAgICAg
ICAgZG9lc0NhbGxzIHw9IGVudHJ5LT5kb2VzQ2FsbHModm0sICZjZWxsc1RvTWFyayk7CiAgICAg
CiAgICAgbV9zdHViUm91dGluZSA9IGNyZWF0ZUpJVFN0dWJSb3V0aW5lKGNvZGUsIHZtLCBjb2Rl
QmxvY2ssIGRvZXNDYWxscywgY2VsbHNUb01hcmssIFdURk1vdmUoc3RhdGUubV9jYWxsTGlua0lu
Zm9zKSwgY29kZUJsb2NrVGhhdE93bnNFeGNlcHRpb25IYW5kbGVycywgY2FsbFNpdGVJbmRleEZv
ckV4Y2VwdGlvbkhhbmRsaW5nKTsKICAgICBtX3dhdGNocG9pbnRzID0gV1RGTW92ZShzdGF0ZS53
YXRjaHBvaW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
UHV0QnlJZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJ
ZFN0YXR1cy5jcHAKaW5kZXggZjQ5NWJlZjhkNTAzZTQ0MzY4ODM2OWYzNDA1MzdjN2ZiMzJjZGMz
Yy4uMmNiY2JjYWM5MjA0ZDVkMzA3ZTJjYjQ4M2QzZWYwOGEzYTcxZTE0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcApAQCAtMTI5LDcg
KzEyOSw3IEBAIFB1dEJ5SWRTdGF0dXMgUHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZv
KAogICAgIGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlciYgbG9ja2VyLCBDb2RlQmxvY2sqIHByb2Zp
bGVkQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywKICAgICBVbmlxdWVkU3RyaW5n
SW1wbCogdWlkLCBDYWxsTGlua1N0YXR1czo6RXhpdFNpdGVEYXRhIGNhbGxFeGl0U2l0ZURhdGEp
CiB7Ci0gICAgU3R1YkluZm9TdW1tYXJ5IHN1bW1hcnkgPSBTdHJ1Y3R1cmVTdHViSW5mbzo6c3Vt
bWFyeShzdHViSW5mbyk7CisgICAgU3R1YkluZm9TdW1tYXJ5IHN1bW1hcnkgPSBTdHJ1Y3R1cmVT
dHViSW5mbzo6c3VtbWFyeShwcm9maWxlZEJsb2NrLT52bSgpLCBzdHViSW5mbyk7CiAgICAgaWYg
KCFpc0lubGluZWFibGUoc3VtbWFyeSkpCiAgICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKHN1
bW1hcnkpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1N0cnVjdHVyZVN0dWJJbmZvLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
dHJ1Y3R1cmVTdHViSW5mby5jcHAKaW5kZXggNzk0YjI3OWZlZTExZGIyMTc5NDQ1MmY1MWUyNDQ5
NDkwMDE0YWJlMy4uNjE3ODczN2Y5ZjhhOWNkMGI2ZGRhZDU3ZjFjZjEyZWZlNGZjYTcwNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZv
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1Yklu
Zm8uY3BwCkBAIC0zNTEsNyArMzUxLDcgQEAgYm9vbCBTdHJ1Y3R1cmVTdHViSW5mbzo6cHJvcGFn
YXRlVHJhbnNpdGlvbnMoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLVN0dWJJbmZvU3VtbWFyeSBTdHJ1Y3R1cmVTdHViSW5mbzo6c3VtbWFyeSgpIGNvbnN0CitT
dHViSW5mb1N1bW1hcnkgU3RydWN0dXJlU3R1YkluZm86OnN1bW1hcnkoVk0mIHZtKSBjb25zdAog
ewogICAgIFN0dWJJbmZvU3VtbWFyeSB0YWtlc1Nsb3dQYXRoID0gU3R1YkluZm9TdW1tYXJ5OjpU
YWtlc1Nsb3dQYXRoOwogICAgIFN0dWJJbmZvU3VtbWFyeSBzaW1wbGUgPSBTdHViSW5mb1N1bW1h
cnk6OlNpbXBsZTsKQEAgLTM1OSw3ICszNTksNyBAQCBTdHViSW5mb1N1bW1hcnkgU3RydWN0dXJl
U3R1YkluZm86OnN1bW1hcnkoKSBjb25zdAogICAgICAgICBQb2x5bW9ycGhpY0FjY2VzcyogbGlz
dCA9IHUuc3R1YjsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxpc3QtPnNpemUo
KTsgKytpKSB7CiAgICAgICAgICAgICBjb25zdCBBY2Nlc3NDYXNlJiBhY2Nlc3MgPSBsaXN0LT5h
dChpKTsKLSAgICAgICAgICAgIGlmIChhY2Nlc3MuZG9lc0NhbGxzKCkpIHsKKyAgICAgICAgICAg
IGlmIChhY2Nlc3MuZG9lc0NhbGxzKHZtKSkgewogICAgICAgICAgICAgICAgIHRha2VzU2xvd1Bh
dGggPSBTdHViSW5mb1N1bW1hcnk6OlRha2VzU2xvd1BhdGhBbmRNYWtlc0NhbGxzOwogICAgICAg
ICAgICAgICAgIHNpbXBsZSA9IFN0dWJJbmZvU3VtbWFyeTo6TWFrZXNDYWxsczsKICAgICAgICAg
ICAgICAgICBicmVhazsKQEAgLTM3NiwxMiArMzc2LDEyIEBAIFN0dWJJbmZvU3VtbWFyeSBTdHJ1
Y3R1cmVTdHViSW5mbzo6c3VtbWFyeSgpIGNvbnN0CiAgICAgcmV0dXJuIHNpbXBsZTsKIH0KIAot
U3R1YkluZm9TdW1tYXJ5IFN0cnVjdHVyZVN0dWJJbmZvOjpzdW1tYXJ5KGNvbnN0IFN0cnVjdHVy
ZVN0dWJJbmZvKiBzdHViSW5mbykKK1N0dWJJbmZvU3VtbWFyeSBTdHJ1Y3R1cmVTdHViSW5mbzo6
c3VtbWFyeShWTSYgdm0sIGNvbnN0IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbykKIHsKICAg
ICBpZiAoIXN0dWJJbmZvKQogICAgICAgICByZXR1cm4gU3R1YkluZm9TdW1tYXJ5OjpOb0luZm9y
bWF0aW9uOwogICAgIAotICAgIHJldHVybiBzdHViSW5mby0+c3VtbWFyeSgpOworICAgIHJldHVy
biBzdHViSW5mby0+c3VtbWFyeSh2bSk7CiB9CiAKIGJvb2wgU3RydWN0dXJlU3R1YkluZm86OmNv
bnRhaW5zUEModm9pZCogcGMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4IDYyY2VhMDgxMDhmYmZiNDQ3YThhNjg3
MTI1NDBmODdjNjQ5YTBhZTEuLmRkY2U4NWVjMDI1NTU3NmM5ZTM0NTFmNjQ3MzZkMTJjMzg5NDI4
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVT
dHViSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVT
dHViSW5mby5oCkBAIC0xNjYsOSArMTY2LDkgQEAgY2xhc3MgU3RydWN0dXJlU3R1YkluZm8gewog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgU3R1YkluZm9TdW1tYXJ5IHN1bW1h
cnkoKSBjb25zdDsKKyAgICBTdHViSW5mb1N1bW1hcnkgc3VtbWFyeShWTSYpIGNvbnN0OwogICAg
IAotICAgIHN0YXRpYyBTdHViSW5mb1N1bW1hcnkgc3VtbWFyeShjb25zdCBTdHJ1Y3R1cmVTdHVi
SW5mbyopOworICAgIHN0YXRpYyBTdHViSW5mb1N1bW1hcnkgc3VtbWFyeShWTSYsIGNvbnN0IFN0
cnVjdHVyZVN0dWJJbmZvKik7CiAKICAgICBib29sIGNvbnRhaW5zUEModm9pZCogcGMpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5oCmluZGV4IDJlZDgz
MGZkYzNhNDlmMDQ5MmQ4ZjgwNjVjMjUxMjgwYWU1MzQ4ZGUuLmRjMzI0ZGU5ZWE2NzNhZjk4ODA2
ZDJiZjQ0OTY4YTUzYjNlNWU0YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29tbW9uRGF0YS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29t
bW9uRGF0YS5oCkBAIC0xMjUsNyArMTI1LDcgQEAgY2xhc3MgQ29tbW9uRGF0YSB7CiAgICAgVmVj
dG9yPElkZW50aWZpZXI+IGRmZ0lkZW50aWZpZXJzOwogICAgIFZlY3RvcjxXZWFrUmVmZXJlbmNl
VHJhbnNpdGlvbj4gdHJhbnNpdGlvbnM7CiAgICAgVmVjdG9yPFdyaXRlQmFycmllcjxKU0NlbGw+
PiB3ZWFrUmVmZXJlbmNlczsKLSAgICBWZWN0b3I8V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4+IHdl
YWtTdHJ1Y3R1cmVSZWZlcmVuY2VzOworICAgIFZlY3RvcjxTdHJ1Y3R1cmVJRD4gd2Vha1N0cnVj
dHVyZVJlZmVyZW5jZXM7CiAgICAgVmVjdG9yPENhdGNoRW50cnlwb2ludERhdGE+IGNhdGNoRW50
cnlwb2ludHM7CiAgICAgQmFnPENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludD4gd2F0Y2hw
b2ludHM7CiAgICAgQmFnPEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludD4gYWRhcHRpdmVTdHJ1
Y3R1cmVXYXRjaHBvaW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRGVzaXJlZFdlYWtSZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRGVzaXJlZFdlYWtSZWZlcmVuY2VzLmNwcAppbmRleCBmYzI3NzQ1ZWU4ZjRkM2FlMDY1YmM4
NWMyMTQ3NDY1NTE4OTViZTU5Li4yYzI0YjY0MDUyZjhiMmU1YjAxMDk2YmJiNzRhMzg5ODNlOWM5
NzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rlc2lyZWRXZWFr
UmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVk
V2Vha1JlZmVyZW5jZXMuY3BwCkBAIC02NywxMSArNjcsMTIgQEAgYm9vbCBEZXNpcmVkV2Vha1Jl
ZmVyZW5jZXM6OmNvbnRhaW5zKEpTQ2VsbCogY2VsbCkKIAogdm9pZCBEZXNpcmVkV2Vha1JlZmVy
ZW5jZXM6OnJlYWxseUFkZChWTSYgdm0sIENvbW1vbkRhdGEqIGNvbW1vbikKIHsKKyAgICBBU1NF
UlQodm0uaGVhcC5pc0RlZmVycmVkKCkpOwogICAgIGZvciAoSlNDZWxsKiB0YXJnZXQgOiBtX3Jl
ZmVyZW5jZXMpIHsKICAgICAgICAgaWYgKFN0cnVjdHVyZSogc3RydWN0dXJlID0ganNEeW5hbWlj
Q2FzdDxTdHJ1Y3R1cmUqPih2bSwgdGFyZ2V0KSkgewogICAgICAgICAgICAgQ29uY3VycmVudEpT
TG9ja2VyIGxvY2tlcihtX2NvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAgIGNvbW1vbi0+
d2Vha1N0cnVjdHVyZVJlZmVyZW5jZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIFdyaXRlQmFy
cmllcjxTdHJ1Y3R1cmU+KHZtLCBtX2NvZGVCbG9jaywgc3RydWN0dXJlKSk7CisgICAgICAgICAg
ICAvLyBXZSBkbyBub3QgZW1pdCBXcml0ZUJhcnJpZXIgaGVyZSBzaW5jZSAoMSkgR0MgaXMgZGVm
ZXJyZWQgYW5kICgyKSB3ZSBlbWl0IHdyaXRlLWJhcnJpZXIgb24gQ29kZUJsb2NrIHdoZW4gZmlu
aXNoaW5nIERGRzo6UGxhbjo6cmVhbGx5QWRkLgorICAgICAgICAgICAgY29tbW9uLT53ZWFrU3Ry
dWN0dXJlUmVmZXJlbmNlcy5hcHBlbmQoc3RydWN0dXJlLT5pZCgpKTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIC8vIFRoZXJlIGFyZSB3ZWlyZCByZWxhdGlvbnNoaXBzIGluIGhvdyBv
cHRpbWl6ZWQgQ29kZUJsb2NrcwogICAgICAgICAgICAgLy8gcG9pbnQgdG8gb3RoZXIgQ29kZUJs
b2Nrcy4gV2UgZG9uJ3Qgd2FudCB0byBoYXZlIHRoZW0gYmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1BsYW4uY3BwCmluZGV4IDkzMzQyZGFlZmQ4YWI0YTM5MDIzNmVhMmQxMGUwZjU5MDNlYjk3
YTYuLjVkODM3MjViZGZhOTExZThiY2JiY2YxMWI4MGEzNDdjNDA4N2Y4OGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcApAQCAtNjI0LDggKzYyNCw4IEBAIENvbXBpbGF0aW9u
UmVzdWx0IFBsYW46OmZpbmFsaXplV2l0aG91dE5vdGlmeWluZ0NhbGxiYWNrKCkKIAogICAgICAg
ICAgICAgZm9yIChXcml0ZUJhcnJpZXI8SlNDZWxsPiYgcmVmZXJlbmNlIDogbV9jb2RlQmxvY2st
PmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPndlYWtSZWZlcmVuY2VzKQogICAgICAgICAgICAgICAg
IHRyYWNrZWRSZWZlcmVuY2VzLmFkZChyZWZlcmVuY2UuZ2V0KCkpOwotICAgICAgICAgICAgZm9y
IChXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiYgcmVmZXJlbmNlIDogbV9jb2RlQmxvY2stPmppdENv
ZGUoKS0+ZGZnQ29tbW9uKCktPndlYWtTdHJ1Y3R1cmVSZWZlcmVuY2VzKQotICAgICAgICAgICAg
ICAgIHRyYWNrZWRSZWZlcmVuY2VzLmFkZChyZWZlcmVuY2UuZ2V0KCkpOworICAgICAgICAgICAg
Zm9yIChTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA6IG1fY29kZUJsb2NrLT5qaXRDb2RlKCktPmRm
Z0NvbW1vbigpLT53ZWFrU3RydWN0dXJlUmVmZXJlbmNlcykKKyAgICAgICAgICAgICAgICB0cmFj
a2VkUmVmZXJlbmNlcy5hZGQobV92bS0+Z2V0U3RydWN0dXJlKHN0cnVjdHVyZUlEKSk7CiAgICAg
ICAgICAgICBmb3IgKFdyaXRlQmFycmllcjxVbmtub3duPiYgY29uc3RhbnQgOiBtX2NvZGVCbG9j
ay0+Y29uc3RhbnRzKCkpCiAgICAgICAgICAgICAgICAgdHJhY2tlZFJlZmVyZW5jZXMuYWRkKGNv
bnN0YW50LmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9S
ZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKaW5kZXgg
ZGE1MjNmMzk4YTI4NmM2NjQzMzFmNGJmYjY0MzdiNmU1NGFkODZkYS4uOTE4MjA0MTU1NGJkYzc2
YzE5MWNiMTM4NWQxM2E5YzgxZmZkNDVlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0
Y2guY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNh
Y2hlR2V0QnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKgogICAgICAg
ICAgICAgICAgICAgICAgICAgcHJvdG90eXBlQWNjZXNzQ2hhaW4gPSBQb2x5UHJvdG9BY2Nlc3ND
aGFpbjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgYmFzZUNlbGwsIHNsb3QpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFwcm90b3R5cGVBY2Nlc3NDaGFpbikKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gR2l2ZVVwT25DYWNoZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSB8fCBwcm90b3R5cGVBY2Nl
c3NDaGFpbi0+c2xvdEJhc2VTdHJ1Y3R1cmUoc3RydWN0dXJlKS0+Z2V0KHZtLCBwcm9wZXJ0eU5h
bWUudWlkKCkpID09IG9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgfHwgcHJvdG90eXBlQWNjZXNzQ2hhaW4tPnNs
b3RCYXNlU3RydWN0dXJlKHZtLCBzdHJ1Y3R1cmUpLT5nZXQodm0sIHByb3BlcnR5TmFtZS51aWQo
KSkgPT0gb2Zmc2V0KTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIFdlIHVzZSBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBpbnN0ZWFk
IGZvciBmYXN0ZXIgYWNjZXNzZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b3R5cGVB
Y2Nlc3NDaGFpbiA9IG51bGxwdHI7CkBAIC02ODgsNyArNjg4LDcgQEAgc3RhdGljIElubGluZUNh
Y2hlQWN0aW9uIHRyeUNhY2hlUHV0QnlJRChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
b2RlQmxvY2sKICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvdHlwZUFjY2Vzc0NoYWluID0g
UG9seVByb3RvQWNjZXNzQ2hhaW46OmNyZWF0ZShnbG9iYWxPYmplY3QsIGJhc2VDZWxsLCBzbG90
LmJhc2UoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb3RvdHlwZUFjY2Vzc0No
YWluKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHaXZlVXBPbkNhY2hlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gcHJvdG90eXBlQWNjZXNzQ2hhaW4tPnNs
b3RCYXNlU3RydWN0dXJlKGJhc2VDZWxsLT5zdHJ1Y3R1cmUodm0pKS0+Z2V0KHZtLCBpZGVudC5p
bXBsKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gcHJvdG90eXBlQWNjZXNz
Q2hhaW4tPnNsb3RCYXNlU3RydWN0dXJlKHZtLCBiYXNlQ2VsbC0+c3RydWN0dXJlKHZtKSktPmdl
dCh2bSwgaWRlbnQuaW1wbCgpKTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIHByb3RvdHlwZUFjY2Vzc0NoYWluID0gbnVsbHB0cjsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvblNldCA9IGdlbmVyYXRlQ29uZGl0aW9uc0ZvclBy
b3RvdHlwZVByb3BlcnR5SGl0KApAQCAtNzkwLDcgKzc5MCw3IEBAIHN0YXRpYyBJbmxpbmVDYWNo
ZUFjdGlvbiB0cnlDYWNoZUluQnlJRCgKICAgICAgICAgICAgICAgICAgICAgcHJvdG90eXBlQWNj
ZXNzQ2hhaW4gPSBQb2x5UHJvdG9BY2Nlc3NDaGFpbjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgYmFz
ZSwgc2xvdCk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvdG90eXBlQWNjZXNzQ2hhaW4p
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2l2ZVVwT25DYWNoZTsKLSAgICAgICAg
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpIHx8IHBy
b3RvdHlwZUFjY2Vzc0NoYWluLT5zbG90QmFzZVN0cnVjdHVyZShzdHJ1Y3R1cmUpLT5nZXQodm0s
IGlkZW50LmltcGwoKSkgPT0gc2xvdC5jYWNoZWRPZmZzZXQoKSk7CisgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSB8fCBwcm90b3R5cGVB
Y2Nlc3NDaGFpbi0+c2xvdEJhc2VTdHJ1Y3R1cmUodm0sIHN0cnVjdHVyZSktPmdldCh2bSwgaWRl
bnQuaW1wbCgpKSA9PSBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgICAgICBwcm90b3R5cGVBY2Nlc3NDaGFpbiA9IG51bGxwdHI7
CiAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvblNldCA9IGdlbmVyYXRlQ29uZGl0aW9uc0Zv
clByb3RvdHlwZVByb3BlcnR5SGl0KAo=
</data>
<flag name="review"
          id="405121"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>