<?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>221866</bug_id>
          
          <creation_ts>2021-02-12 21:08:45 -0800</creation_ts>
          <short_desc>Rename `slotVisitor` variables to `visitor`.</short_desc>
          <delta_ts>2021-02-12 21:32:14 -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>JavaScriptCore</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1728896</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-02-12 21:08:45 -0800</bug_when>
    <thetext>In existing code, we sometimes name a SlotVisitor instance `slotVisitor` and sometimes just `visitor`.  This patch makes it so that we use `visitor` consistently everywhere.  This will also reduces the size of the GC verifier patch later.

Also fixed a few typos in comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728897</commentid>
    <comment_count>1</comment_count>
      <attachid>420206</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-02-12 21:14:04 -0800</bug_when>
    <thetext>Created attachment 420206
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728899</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-02-12 21:16:40 -0800</bug_when>
    <thetext>The style complaints are bogus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728900</commentid>
    <comment_count>3</comment_count>
      <attachid>420206</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-12 21:16:58 -0800</bug_when>
    <thetext>Comment on attachment 420206
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728901</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-02-12 21:31:39 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r272830: &lt;http://trac.webkit.org/r272830&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728902</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-12 21:32:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/74303534&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420206</attachid>
            <date>2021-02-12 21:14:04 -0800</date>
            <delta_ts>2021-02-12 21:16:58 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-221866.patch</filename>
            <type>text/plain</type>
            <size>31042</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjcyODI5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDIxLTAyLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgYHNsb3RWaXNpdG9yYCB2YXJpYWJsZXMgdG8gYHZpc2l0b3JgLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxODY2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gZXhpc3RpbmcgY29kZSwgd2Ug
c29tZXRpbWVzIG5hbWUgYSBTbG90VmlzaXRvciBpbnN0YW5jZSBgc2xvdFZpc2l0b3JgIGFuZAor
ICAgICAgICBzb21ldGltZXMganVzdCBgdmlzaXRvcmAuICBUaGlzIHBhdGNoIG1ha2VzIGl0IHNv
IHRoYXQgd2UgdXNlIGB2aXNpdG9yYCBjb25zaXN0ZW50bHkKKyAgICAgICAgZXZlcnl3aGVyZS4g
IFRoaXMgd2lsbCBhbHNvIHJlZHVjZXMgdGhlIHNpemUgb2YgdGhlIEdDIHZlcmlmaWVyIHBhdGNo
IGxhdGVyLgorCisgICAgICAgIEFsc28gZml4ZWQgYSBmZXcgdHlwb3MgaW4gY29tbWVudHMuCisK
KyAgICAgICAgVGhpcyBpcyBhIHB1cmUgcmVmYWN0b3JpbmcgcGF0Y2guICBUaGVyZSBhcmUgbm8g
YmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIEFQSS9KU01hcmtpbmdDb25zdHJhaW50UHJp
dmF0ZS5jcHA6CisgICAgICAgIChKU0NvbnRleHRHcm91cEFkZE1hcmtpbmdDb25zdHJhaW50KToK
KyAgICAgICAgKiBieXRlY29kZS9SZWNvcmRlZFN0YXR1c2VzLmNwcDoKKyAgICAgICAgKEpTQzo6
UmVjb3JkZWRTdGF0dXNlczo6dmlzaXRBZ2dyZWdhdGUpOgorICAgICAgICAoSlNDOjpSZWNvcmRl
ZFN0YXR1c2VzOjptYXJrSWZDaGVhcCk6CisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpHcmFwaDo6YmxvY2tzSW5Qb3N0T3JkZXIpOgorICAgICAgICAqIGhl
YXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OnJ1bkJlZ2luUGhhc2UpOgorICAgICAg
ICAoSlNDOjpIZWFwOjpydW5GaXhwb2ludFBoYXNlKToKKyAgICAgICAgKEpTQzo6SGVhcDo6cnVu
Q29uY3VycmVudFBoYXNlKToKKyAgICAgICAgKEpTQzo6SGVhcDo6c3RvcFRoZVBlcmlwaGVyeSk6
CisgICAgICAgIChKU0M6OkhlYXA6OnJlc3VtZVRoZVBlcmlwaGVyeSk6CisgICAgICAgIChKU0M6
OkhlYXA6OmFkZENvcmVDb25zdHJhaW50cyk6CisgICAgICAgIChKU0M6OkhlYXA6OnBlcmZvcm1J
bmNyZW1lbnQpOgorICAgICAgICAqIGhlYXAvSGVhcElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6
SGVhcDo6Zm9yRWFjaFNsb3RWaXNpdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTU2VnbWVudGVk
VmFyaWFibGVPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU1NlZ21lbnRlZFZhcmlhYmxlT2Jq
ZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIu
Y3BwOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp2aXNpdCk6CisKIDIwMjEtMDIt
MTIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzb21l
IHVudXNlZCBtZXRob2RzIGluIE1hcmtlZEJsb2NrIGFuZCBQcmVjaXNlQWxsb2NhdGlvbi4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYXJraW5nQ29uc3RyYWludFByaXZhdGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYXJraW5nQ29u
c3RyYWludFByaXZhdGUuY3BwCShyZXZpc2lvbiAyNzI4MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTTWFya2luZ0NvbnN0cmFpbnRQcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTczLDEyICs3MywxMSBAQCB2b2lkIEpTQ29udGV4dEdyb3VwQWRkTWFya2luZ0NvbnN0cmFpbnQo
CiAgICAgYXV0byBjb25zdHJhaW50ID0gbWFrZVVuaXF1ZTxTaW1wbGVNYXJraW5nQ29uc3RyYWlu
dD4oCiAgICAgICAgIHRvQ1N0cmluZygiQW1jIiwgY29uc3RyYWludEluZGV4LCAiKCIsIFJhd1Bv
aW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihjb25zdHJhaW50Q2FsbGJhY2spKSwgIikiKSwKICAg
ICAgICAgdG9DU3RyaW5nKCJBUEkgTWFya2luZyBDb25zdHJhaW50ICMiLCBjb25zdHJhaW50SW5k
ZXgsICIgKCIsIFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihjb25zdHJhaW50Q2FsbGJh
Y2spKSwgIiwgIiwgUmF3UG9pbnRlcih1c2VyRGF0YSksICIpIiksCi0gICAgICAgIFtjb25zdHJh
aW50Q2FsbGJhY2ssIHVzZXJEYXRhXQotICAgICAgICAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9y
KSB7CisgICAgICAgIFtjb25zdHJhaW50Q2FsbGJhY2ssIHVzZXJEYXRhXSAoU2xvdFZpc2l0b3Im
IHZpc2l0b3IpIHsKICAgICAgICAgICAgIE1hcmtlciBtYXJrZXI7CiAgICAgICAgICAgICBtYXJr
ZXIuSXNNYXJrZWQgPSBpc01hcmtlZDsKICAgICAgICAgICAgIG1hcmtlci5NYXJrID0gbWFyazsK
LSAgICAgICAgICAgIG1hcmtlci52aXNpdG9yID0gJnNsb3RWaXNpdG9yOworICAgICAgICAgICAg
bWFya2VyLnZpc2l0b3IgPSAmdmlzaXRvcjsKICAgICAgICAgICAgIAogICAgICAgICAgICAgY29u
c3RyYWludENhbGxiYWNrKCZtYXJrZXIsIHVzZXJEYXRhKTsKICAgICAgICAgfSwKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9SZWNvcmRlZFN0YXR1c2VzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUmVjb3JkZWRTdGF0dXNlcy5j
cHAJKHJldmlzaW9uIDI3MjgyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9S
ZWNvcmRlZFN0YXR1c2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMiwzMiArMTAyLDMyIEBA
IFNldFByaXZhdGVCcmFuZFN0YXR1cyogUmVjb3JkZWRTdGF0dXNlczoKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCi12b2lkIFJlY29yZGVkU3RhdHVzZXM6OnZpc2l0QWdncmVnYXRlKFNsb3RWaXNp
dG9yJiBzbG90VmlzaXRvcikKK3ZvaWQgUmVjb3JkZWRTdGF0dXNlczo6dmlzaXRBZ2dyZWdhdGUo
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgZm9yIChhdXRvJiBwYWlyIDogZ2V0cykKLSAg
ICAgICAgcGFpci5zZWNvbmQtPnZpc2l0QWdncmVnYXRlKHNsb3RWaXNpdG9yKTsKKyAgICAgICAg
cGFpci5zZWNvbmQtPnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogICAgIGZvciAoYXV0byYgcGFp
ciA6IGRlbGV0ZXMpCi0gICAgICAgIHBhaXIuc2Vjb25kLT52aXNpdEFnZ3JlZ2F0ZShzbG90Vmlz
aXRvcik7CisgICAgICAgIHBhaXIuc2Vjb25kLT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKICAg
ICBmb3IgKGF1dG8mIHBhaXIgOiBjaGVja1ByaXZhdGVCcmFuZHMpCi0gICAgICAgIHBhaXIuc2Vj
b25kLT52aXNpdEFnZ3JlZ2F0ZShzbG90VmlzaXRvcik7CisgICAgICAgIHBhaXIuc2Vjb25kLT52
aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBzZXRQcml2YXRl
QnJhbmRzKQotICAgICAgICBwYWlyLnNlY29uZC0+dmlzaXRBZ2dyZWdhdGUoc2xvdFZpc2l0b3Ip
OworICAgICAgICBwYWlyLnNlY29uZC0+dmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7CiB9CiAKLXZv
aWQgUmVjb3JkZWRTdGF0dXNlczo6bWFya0lmQ2hlYXAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9y
KQordm9pZCBSZWNvcmRlZFN0YXR1c2VzOjptYXJrSWZDaGVhcChTbG90VmlzaXRvciYgdmlzaXRv
cikKIHsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBnZXRzKQotICAgICAgICBwYWlyLnNlY29uZC0+
bWFya0lmQ2hlYXAoc2xvdFZpc2l0b3IpOworICAgICAgICBwYWlyLnNlY29uZC0+bWFya0lmQ2hl
YXAodmlzaXRvcik7CiAgICAgZm9yIChhdXRvJiBwYWlyIDogcHV0cykKLSAgICAgICAgcGFpci5z
ZWNvbmQtPm1hcmtJZkNoZWFwKHNsb3RWaXNpdG9yKTsKKyAgICAgICAgcGFpci5zZWNvbmQtPm1h
cmtJZkNoZWFwKHZpc2l0b3IpOwogICAgIGZvciAoYXV0byYgcGFpciA6IGlucykKLSAgICAgICAg
cGFpci5zZWNvbmQtPm1hcmtJZkNoZWFwKHNsb3RWaXNpdG9yKTsKKyAgICAgICAgcGFpci5zZWNv
bmQtPm1hcmtJZkNoZWFwKHZpc2l0b3IpOwogICAgIGZvciAoYXV0byYgcGFpciA6IGRlbGV0ZXMp
Ci0gICAgICAgIHBhaXIuc2Vjb25kLT5tYXJrSWZDaGVhcChzbG90VmlzaXRvcik7CisgICAgICAg
IHBhaXIuc2Vjb25kLT5tYXJrSWZDaGVhcCh2aXNpdG9yKTsKICAgICBmb3IgKGF1dG8mIHBhaXIg
OiBjaGVja1ByaXZhdGVCcmFuZHMpCi0gICAgICAgIHBhaXIuc2Vjb25kLT5tYXJrSWZDaGVhcChz
bG90VmlzaXRvcik7CisgICAgICAgIHBhaXIuc2Vjb25kLT5tYXJrSWZDaGVhcCh2aXNpdG9yKTsK
ICAgICBmb3IgKGF1dG8mIHBhaXIgOiBzZXRQcml2YXRlQnJhbmRzKQotICAgICAgICBwYWlyLnNl
Y29uZC0+bWFya0lmQ2hlYXAoc2xvdFZpc2l0b3IpOworICAgICAgICBwYWlyLnNlY29uZC0+bWFy
a0lmQ2hlYXAodmlzaXRvcik7CiB9CiAKIHZvaWQgUmVjb3JkZWRTdGF0dXNlczo6ZmluYWxpemVX
aXRob3V0RGVsZXRpbmcoVk0mIHZtKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdHcmFwaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5jcHAJKHJldmlzaW9uIDI3MjgyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTc3LDcgKzk3Nyw3IEBAIEJsb2NrTGlz
dCBHcmFwaDo6YmxvY2tzSW5Qb3N0T3JkZXIoYm9vbCAKICAgICAgICAgfQogICAgIH0KIAotICAg
IGlmIChpc1NhZmVUb1ZhbGlkYXRlICYmIHZhbGlkYXRpb25FbmFibGVkKCkpIHsgLy8gVGhlcmUg
YXJlIHVzZXJzIG9mIHRoaXMgd2hlcmUgd2UgaGF2ZW4ndCB5ZXQgYnVpbHQgb2YgdGhlIENGRyBl
bm91Z2ggdG8gYmUgYWJsZSB0byBydW4gZG9taW5hdG9ycy4KKyAgICBpZiAoaXNTYWZlVG9WYWxp
ZGF0ZSAmJiB2YWxpZGF0aW9uRW5hYmxlZCgpKSB7IC8vIFRoZXJlIGFyZSB1c2VycyBvZiB0aGlz
IHdoZXJlIHdlIGhhdmVuJ3QgeWV0IGJ1aWx0IHRoZSBDRkcgZW5vdWdoIHRvIGJlIGFibGUgdG8g
cnVuIGRvbWluYXRvcnMuCiAgICAgICAgIGF1dG8gdmFsaWRhdGVSZXN1bHRzID0gWyZdIChhdXRv
JiBkb21pbmF0b3JzKSB7CiAgICAgICAgICAgICAvLyBXaGVuIGl0ZXJhdGluZyBvdmVyIHJldmVy
c2UgcG9zdCBvcmRlciwgd2Ugc2hvdWxkIHNlZSBkb21pbmF0b3JzCiAgICAgICAgICAgICAvLyBi
ZWZvcmUgdGhpbmdzIHRoZXkgZG9taW5hdGUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcAkocmV2aXNpb24gMjcyODI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOTcsMjcgKzEyOTcsMjcgQEAgTkVWRVJfSU5M
SU5FIGJvb2wgSGVhcDo6cnVuQmVnaW5QaGFzZShHQwogCiAgICAgbV9oZWxwZXJDbGllbnQuc2V0
RnVuY3Rpb24oCiAgICAgICAgIFt0aGlzXSAoKSB7Ci0gICAgICAgICAgICBTbG90VmlzaXRvciog
c2xvdFZpc2l0b3I7CisgICAgICAgICAgICBTbG90VmlzaXRvciogdmlzaXRvcjsKICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3BhcmFsbGVsU2xvdFZp
c2l0b3JMb2NrKTsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0Uo
IW1fYXZhaWxhYmxlUGFyYWxsZWxTbG90VmlzaXRvcnMuaXNFbXB0eSgpLCAiUGFyYWxsZWwgU2xv
dFZpc2l0b3JzIGFyZSBhbGxvY2F0ZWQgYXByaW9yaSIpOwotICAgICAgICAgICAgICAgIHNsb3RW
aXNpdG9yID0gbV9hdmFpbGFibGVQYXJhbGxlbFNsb3RWaXNpdG9ycy50YWtlTGFzdCgpOworICAg
ICAgICAgICAgICAgIHZpc2l0b3IgPSBtX2F2YWlsYWJsZVBhcmFsbGVsU2xvdFZpc2l0b3JzLnRh
a2VMYXN0KCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIFRocmVhZDo6cmVnaXN0ZXJH
Q1RocmVhZChHQ1RocmVhZFR5cGU6OkhlbHBlcik7CiAKICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBQYXJhbGxlbE1vZGVFbmFibGVyIHBhcmFsbGVsTW9kZUVuYWJsZXIoKnNsb3RWaXNp
dG9yKTsKLSAgICAgICAgICAgICAgICBzbG90VmlzaXRvci0+ZHJhaW5Gcm9tU2hhcmVkKFNsb3RW
aXNpdG9yOjpIZWxwZXJEcmFpbik7CisgICAgICAgICAgICAgICAgUGFyYWxsZWxNb2RlRW5hYmxl
ciBwYXJhbGxlbE1vZGVFbmFibGVyKCp2aXNpdG9yKTsKKyAgICAgICAgICAgICAgICB2aXNpdG9y
LT5kcmFpbkZyb21TaGFyZWQoU2xvdFZpc2l0b3I6OkhlbHBlckRyYWluKTsKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
cGFyYWxsZWxTbG90VmlzaXRvckxvY2spOwotICAgICAgICAgICAgICAgIG1fYXZhaWxhYmxlUGFy
YWxsZWxTbG90VmlzaXRvcnMuYXBwZW5kKHNsb3RWaXNpdG9yKTsKKyAgICAgICAgICAgICAgICBt
X2F2YWlsYWJsZVBhcmFsbGVsU2xvdFZpc2l0b3JzLmFwcGVuZCh2aXNpdG9yKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfSk7CiAKLSAgICBTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IgPSAqbV9j
b2xsZWN0b3JTbG90VmlzaXRvcjsKKyAgICBTbG90VmlzaXRvciYgdmlzaXRvciA9ICptX2NvbGxl
Y3RvclNsb3RWaXNpdG9yOwogCiAgICAgbV9jb25zdHJhaW50U2V0LT5kaWRTdGFydE1hcmtpbmco
KTsKICAgICAKQEAgLTEzMjUsMTkgKzEzMjUsMTkgQEAgTkVWRVJfSU5MSU5FIGJvb2wgSGVhcDo6
cnVuQmVnaW5QaGFzZShHQwogICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpsb2dHQygpKSkKICAg
ICAgICAgbV9zY2hlZHVsZXItPmxvZygpOwogICAgIAotICAgIC8vIEFmdGVyIHRoaXMsIHdlIHdp
bGwgYWxtb3N0IGNlcnRhaW5seSBmYWxsIHRocm91Z2ggYWxsIG9mIHRoZSAic2xvdFZpc2l0b3Iu
aXNFbXB0eSgpIgorICAgIC8vIEFmdGVyIHRoaXMsIHdlIHdpbGwgYWxtb3N0IGNlcnRhaW5seSBm
YWxsIHRocm91Z2ggYWxsIG9mIHRoZSAidmlzaXRvci5pc0VtcHR5KCkiCiAgICAgLy8gY2hlY2tz
IGJlY2F1c2UgYm9vdHN0cmFwIHdvdWxkIGhhdmUgcHV0IHRoaW5ncyBpbnRvIHRoZSB2aXNpdG9y
LiBTbywgd2Ugc2hvdWxkIGZhbGwKICAgICAvLyB0aHJvdWdoIHRvIGRyYWluaW5nLgogICAgIAot
ICAgIGlmICghc2xvdFZpc2l0b3IuZGlkUmVhY2hUZXJtaW5hdGlvbigpKSB7CisgICAgaWYgKCF2
aXNpdG9yLmRpZFJlYWNoVGVybWluYXRpb24oKSkgewogICAgICAgICBkYXRhTG9nKCJGYXRhbDog
U2xvdFZpc2l0b3Igc2hvdWxkIHRoaW5rIHRoYXQgR0Mgc2hvdWxkIHRlcm1pbmF0ZSBiZWZvcmUg
Y29uc3RyYWludCBzb2x2aW5nLCBidXQgaXQgZG9lcyBub3QgdGhpbmsgdGhpcy5cbiIpOwotICAg
ICAgICBkYXRhTG9nKCJzbG90VmlzaXRvci5pc0VtcHR5KCk6ICIsIHNsb3RWaXNpdG9yLmlzRW1w
dHkoKSwgIlxuIik7Ci0gICAgICAgIGRhdGFMb2coInNsb3RWaXNpdG9yLmNvbGxlY3Rvck1hcmtT
dGFjaygpLmlzRW1wdHkoKTogIiwgc2xvdFZpc2l0b3IuY29sbGVjdG9yTWFya1N0YWNrKCkuaXNF
bXB0eSgpLCAiXG4iKTsKLSAgICAgICAgZGF0YUxvZygic2xvdFZpc2l0b3IubXV0YXRvck1hcmtT
dGFjaygpLmlzRW1wdHkoKTogIiwgc2xvdFZpc2l0b3IubXV0YXRvck1hcmtTdGFjaygpLmlzRW1w
dHkoKSwgIlxuIik7CisgICAgICAgIGRhdGFMb2coInZpc2l0b3IuaXNFbXB0eSgpOiAiLCB2aXNp
dG9yLmlzRW1wdHkoKSwgIlxuIik7CisgICAgICAgIGRhdGFMb2coInZpc2l0b3IuY29sbGVjdG9y
TWFya1N0YWNrKCkuaXNFbXB0eSgpOiAiLCB2aXNpdG9yLmNvbGxlY3Rvck1hcmtTdGFjaygpLmlz
RW1wdHkoKSwgIlxuIik7CisgICAgICAgIGRhdGFMb2coInZpc2l0b3IubXV0YXRvck1hcmtTdGFj
aygpLmlzRW1wdHkoKTogIiwgdmlzaXRvci5tdXRhdG9yTWFya1N0YWNrKCkuaXNFbXB0eSgpLCAi
XG4iKTsKICAgICAgICAgZGF0YUxvZygibV9udW1iZXJPZkFjdGl2ZVBhcmFsbGVsTWFya2Vyczog
IiwgbV9udW1iZXJPZkFjdGl2ZVBhcmFsbGVsTWFya2VycywgIlxuIik7CiAgICAgICAgIGRhdGFM
b2coIm1fc2hhcmVkQ29sbGVjdG9yTWFya1N0YWNrLT5pc0VtcHR5KCk6ICIsIG1fc2hhcmVkQ29s
bGVjdG9yTWFya1N0YWNrLT5pc0VtcHR5KCksICJcbiIpOwogICAgICAgICBkYXRhTG9nKCJtX3No
YXJlZE11dGF0b3JNYXJrU3RhY2stPmlzRW1wdHkoKTogIiwgbV9zaGFyZWRNdXRhdG9yTWFya1N0
YWNrLT5pc0VtcHR5KCksICJcbiIpOwotICAgICAgICBkYXRhTG9nKCJzbG90VmlzaXRvci5kaWRS
ZWFjaFRlcm1pbmF0aW9uKCk6ICIsIHNsb3RWaXNpdG9yLmRpZFJlYWNoVGVybWluYXRpb24oKSwg
IlxuIik7CisgICAgICAgIGRhdGFMb2coInZpc2l0b3IuZGlkUmVhY2hUZXJtaW5hdGlvbigpOiAi
LCB2aXNpdG9yLmRpZFJlYWNoVGVybWluYXRpb24oKSwgIlxuIik7CiAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogICAgICAgICAKQEAgLTEzNDgsMTMgKzEzNDgs
MTMgQEAgTkVWRVJfSU5MSU5FIGJvb2wgSGVhcDo6cnVuRml4cG9pbnRQaGFzZQogewogICAgIFJF
TEVBU0VfQVNTRVJUKGNvbm4gPT0gR0NDb25kdWN0b3I6OkNvbGxlY3RvciB8fCBtX2N1cnJlbnRU
aHJlYWRTdGF0ZSk7CiAgICAgCi0gICAgU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yID0gKm1fY29s
bGVjdG9yU2xvdFZpc2l0b3I7CisgICAgU2xvdFZpc2l0b3ImIHZpc2l0b3IgPSAqbV9jb2xsZWN0
b3JTbG90VmlzaXRvcjsKICAgICAKICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6bG9nR0MoKSkp
IHsKICAgICAgICAgSGFzaE1hcDxjb25zdCBjaGFyKiwgc2l6ZV90PiB2aXNpdE1hcDsKICAgICAg
ICAgZm9yRWFjaFNsb3RWaXNpdG9yKAotICAgICAgICAgICAgWyZdIChTbG90VmlzaXRvciYgc2xv
dFZpc2l0b3IpIHsKLSAgICAgICAgICAgICAgICB2aXNpdE1hcC5hZGQoc2xvdFZpc2l0b3IuY29k
ZU5hbWUoKSwgc2xvdFZpc2l0b3IuYnl0ZXNWaXNpdGVkKCkgLyAxMDI0KTsKKyAgICAgICAgICAg
IFsmXSAoU2xvdFZpc2l0b3ImIHZpc2l0b3IpIHsKKyAgICAgICAgICAgICAgICB2aXNpdE1hcC5h
ZGQodmlzaXRvci5jb2RlTmFtZSgpLCB2aXNpdG9yLmJ5dGVzVmlzaXRlZCgpIC8gMTAyNCk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgCiAgICAgICAgIGF1dG8gcGVyVmlzaXRvckR1bXAgPSBz
b3J0ZWRNYXBEdW1wKApAQCAtMTM2Nyw3ICsxMzY3LDcgQEAgTkVWRVJfSU5MSU5FIGJvb2wgSGVh
cDo6cnVuRml4cG9pbnRQaGFzZQogICAgICAgICBkYXRhTG9nKCJ2PSIsIGJ5dGVzVmlzaXRlZCgp
IC8gMTAyNCwgImtiICgiLCBwZXJWaXNpdG9yRHVtcCwgIikgbz0iLCBtX29wYXF1ZVJvb3RzLnNp
emUoKSwgIiBiPSIsIG1fYmFycmllcnNFeGVjdXRlZCwgIiAiKTsKICAgICB9CiAgICAgICAgIAot
ICAgIGlmIChzbG90VmlzaXRvci5kaWRSZWFjaFRlcm1pbmF0aW9uKCkpIHsKKyAgICBpZiAodmlz
aXRvci5kaWRSZWFjaFRlcm1pbmF0aW9uKCkpIHsKICAgICAgICAgbV9vcGFxdWVSb290cy5kZWxl
dGVPbGRUYWJsZXMoKTsKICAgICAgICAgCiAgICAgICAgIG1fc2NoZWR1bGVyLT5kaWRSZWFjaFRl
cm1pbmF0aW9uKCk7CkBAIC0xMzgyLDExICsxMzgyLDExIEBAIE5FVkVSX0lOTElORSBib29sIEhl
YXA6OnJ1bkZpeHBvaW50UGhhc2UKICAgICAgICAgICAgIAogICAgICAgICAvLyBXb25kZXJpbmcg
d2hhdCB0aGlzIGRvZXM/IExvb2sgYXQgSGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKCkuIFRoZSBE
T00gYW5kIG90aGVycyBjYW4gYWxzbwogICAgICAgICAvLyBhZGQgdGhlaXIgb3duIHVzaW5nIEhl
YXA6OmFkZE1hcmtpbmdDb25zdHJhaW50KCkuCi0gICAgICAgIGJvb2wgY29udmVyZ2VkID0gbV9j
b25zdHJhaW50U2V0LT5leGVjdXRlQ29udmVyZ2VuY2Uoc2xvdFZpc2l0b3IpOworICAgICAgICBi
b29sIGNvbnZlcmdlZCA9IG1fY29uc3RyYWludFNldC0+ZXhlY3V0ZUNvbnZlcmdlbmNlKHZpc2l0
b3IpOwogICAgICAgICAKLSAgICAgICAgLy8gRklYTUU6IFRoZSBzbG90VmlzaXRvci5pc0VtcHR5
KCkgY2hlY2sgaXMgbW9zdCBsaWtlbHkgbm90IG5lZWRlZC4KKyAgICAgICAgLy8gRklYTUU6IFRo
ZSB2aXNpdG9yLmlzRW1wdHkoKSBjaGVjayBpcyBtb3N0IGxpa2VseSBub3QgbmVlZGVkLgogICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMzEwCi0g
ICAgICAgIGlmIChjb252ZXJnZWQgJiYgc2xvdFZpc2l0b3IuaXNFbXB0eSgpKSB7CisgICAgICAg
IGlmIChjb252ZXJnZWQgJiYgdmlzaXRvci5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGFzc2Vy
dE1hcmtTdGFja3NFbXB0eSgpOwogICAgICAgICAgICAgcmV0dXJuIGNoYW5nZVBoYXNlKGNvbm4s
IENvbGxlY3RvclBoYXNlOjpFbmQpOwogICAgICAgICB9CkBAIC0xMzk0LDExICsxMzk0LDExIEBA
IE5FVkVSX0lOTElORSBib29sIEhlYXA6OnJ1bkZpeHBvaW50UGhhc2UKICAgICAgICAgbV9zY2hl
ZHVsZXItPmRpZEV4ZWN1dGVDb25zdHJhaW50cygpOwogICAgIH0KICAgICAgICAgCi0gICAgZGF0
YUxvZ0lmKE9wdGlvbnM6OmxvZ0dDKCksIHNsb3RWaXNpdG9yLmNvbGxlY3Rvck1hcmtTdGFjaygp
LnNpemUoKSwgIisiLCBtX211dGF0b3JNYXJrU3RhY2stPnNpemUoKSArIHNsb3RWaXNpdG9yLm11
dGF0b3JNYXJrU3RhY2soKS5zaXplKCksICIgIik7CisgICAgZGF0YUxvZ0lmKE9wdGlvbnM6Omxv
Z0dDKCksIHZpc2l0b3IuY29sbGVjdG9yTWFya1N0YWNrKCkuc2l6ZSgpLCAiKyIsIG1fbXV0YXRv
ck1hcmtTdGFjay0+c2l6ZSgpICsgdmlzaXRvci5tdXRhdG9yTWFya1N0YWNrKCkuc2l6ZSgpLCAi
ICIpOwogICAgICAgICAKICAgICB7Ci0gICAgICAgIFBhcmFsbGVsTW9kZUVuYWJsZXIgZW5hYmxl
cihzbG90VmlzaXRvcik7Ci0gICAgICAgIHNsb3RWaXNpdG9yLmRyYWluSW5QYXJhbGxlbChtX3Nj
aGVkdWxlci0+dGltZVRvUmVzdW1lKCkpOworICAgICAgICBQYXJhbGxlbE1vZGVFbmFibGVyIGVu
YWJsZXIodmlzaXRvcik7CisgICAgICAgIHZpc2l0b3IuZHJhaW5JblBhcmFsbGVsKG1fc2NoZWR1
bGVyLT50aW1lVG9SZXN1bWUoKSk7CiAgICAgfQogICAgICAgICAKICAgICBtX3NjaGVkdWxlci0+
c3luY2hyb25vdXNEcmFpbmluZ0RpZFN0YWxsKCk7CkBAIC0xNDEyLDggKzE0MTIsOCBAQCBORVZF
Ul9JTkxJTkUgYm9vbCBIZWFwOjpydW5GaXhwb2ludFBoYXNlCiAgICAgLy8KICAgICAvLyBUaGlz
IGRvZXNuJ3QgaGF2ZSB0byBjaGVjayB0aGUgbXV0YXRvciBTbG90VmlzaXRvciBiZWNhdXNlIHRo
YXQgb25lIGJlY29tZXMgZW1wdHkgYWZ0ZXIgZXZlcnkgR0MKICAgICAvLyB3b3JrIGluY3JlbWVu
dCwgc28gaXQgbXVzdCBiZSBlbXB0eSBub3cuCi0gICAgaWYgKHNsb3RWaXNpdG9yLmRpZFJlYWNo
VGVybWluYXRpb24oKSkKLSAgICAgICAgcmV0dXJuIHRydWU7IC8vIFRoaXMgaXMgbGlrZSByZWxv
b3BpbmcgdG8gdGhlIHRvcCBpZiBydW5GaXhwb2ludFBoYXNlKCkuCisgICAgaWYgKHZpc2l0b3Iu
ZGlkUmVhY2hUZXJtaW5hdGlvbigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gVGhpcyBpcyBs
aWtlIHJlbG9vcGluZyB0byB0aGUgdG9wIG9mIHJ1bkZpeHBvaW50UGhhc2UoKS4KICAgICAgICAg
CiAgICAgaWYgKCFtX3NjaGVkdWxlci0+c2hvdWxkUmVzdW1lKCkpCiAgICAgICAgIHJldHVybiB0
cnVlOwpAQCAtMTQzNCwyNiArMTQzNCwyNiBAQCBORVZFUl9JTkxJTkUgYm9vbCBIZWFwOjpydW5G
aXhwb2ludFBoYXNlCiAKIE5FVkVSX0lOTElORSBib29sIEhlYXA6OnJ1bkNvbmN1cnJlbnRQaGFz
ZShHQ0NvbmR1Y3RvciBjb25uKQogewotICAgIFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvciA9ICpt
X2NvbGxlY3RvclNsb3RWaXNpdG9yOworICAgIFNsb3RWaXNpdG9yJiB2aXNpdG9yID0gKm1fY29s
bGVjdG9yU2xvdFZpc2l0b3I7CiAKICAgICBzd2l0Y2ggKGNvbm4pIHsKICAgICBjYXNlIEdDQ29u
ZHVjdG9yOjpNdXRhdG9yOiB7CiAgICAgICAgIC8vIFdoZW4gdGhlIG11dGF0b3IgaGFzIHRoZSBj
b25uLCB3ZSBwb2xsIHJ1bkNvbmN1cnJlbnRQaGFzZSgpIG9uIGV2ZXJ5IHRpbWUgc29tZW9uZSBz
YXlzCiAgICAgICAgIC8vIHN0b3BJZk5lY2Vzc2FyeSgpLCBzbyBvbiBldmVyeSBhbGxvY2F0aW9u
IHNsb3cgcGF0aC4gV2hlbiB0aGF0IGhhcHBlbnMgd2UgcG9sbCBpZiBpdCdzIHRpbWUKICAgICAg
ICAgLy8gdG8gc3RvcCBhbmQgZG8gc29tZSB3b3JrLgotICAgICAgICBpZiAoc2xvdFZpc2l0b3Iu
ZGlkUmVhY2hUZXJtaW5hdGlvbigpCisgICAgICAgIGlmICh2aXNpdG9yLmRpZFJlYWNoVGVybWlu
YXRpb24oKQogICAgICAgICAgICAgfHwgbV9zY2hlZHVsZXItPnNob3VsZFN0b3AoKSkKICAgICAg
ICAgICAgIHJldHVybiBjaGFuZ2VQaGFzZShjb25uLCBDb2xsZWN0b3JQaGFzZTo6UmVsb29wKTsK
ICAgICAgICAgCiAgICAgICAgIC8vIFdlIGNvdWxkIGJlIGNvbWluZyBmcm9tIGEgY29sbGVjdG9y
IHBoYXNlIHRoYXQgc3R1ZmZlZCBvdXIgU2xvdFZpc2l0b3IsIHNvIG1ha2Ugc3VyZSB3ZSBkb25h
dGUKICAgICAgICAgLy8gZXZlcnl0aGluZy4gVGhpcyBpcyBzdXBlciBjaGVhcCBpZiB0aGUgU2xv
dFZpc2l0b3IgaXMgYWxyZWFkeSBlbXB0eS4KLSAgICAgICAgc2xvdFZpc2l0b3IuZG9uYXRlQWxs
KCk7CisgICAgICAgIHZpc2l0b3IuZG9uYXRlQWxsKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAgICAgY2FzZSBHQ0NvbmR1Y3Rvcjo6Q29sbGVjdG9yOiB7CiAgICAgICAgIHsKLSAg
ICAgICAgICAgIFBhcmFsbGVsTW9kZUVuYWJsZXIgZW5hYmxlcihzbG90VmlzaXRvcik7Ci0gICAg
ICAgICAgICBzbG90VmlzaXRvci5kcmFpbkluUGFyYWxsZWxQYXNzaXZlbHkobV9zY2hlZHVsZXIt
PnRpbWVUb1N0b3AoKSk7CisgICAgICAgICAgICBQYXJhbGxlbE1vZGVFbmFibGVyIGVuYWJsZXIo
dmlzaXRvcik7CisgICAgICAgICAgICB2aXNpdG9yLmRyYWluSW5QYXJhbGxlbFBhc3NpdmVseSht
X3NjaGVkdWxlci0+dGltZVRvU3RvcCgpKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gY2hh
bmdlUGhhc2UoY29ubiwgQ29sbGVjdG9yUGhhc2U6OlJlbG9vcCk7CiAgICAgfSB9CkBAIC0xNjQw
LDggKzE2NDAsOCBAQCB2b2lkIEhlYXA6OnN0b3BUaGVQZXJpcGhlcnkoR0NDb25kdWN0b3IgCiAg
ICAgbV93b3JsZElzU3RvcHBlZCA9IHRydWU7CiAKICAgICBmb3JFYWNoU2xvdFZpc2l0b3IoCi0g
ICAgICAgIFsmXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKSB7Ci0gICAgICAgICAgICBzbG90
VmlzaXRvci51cGRhdGVNdXRhdG9ySXNTdG9wcGVkKE5vTG9ja2luZ05lY2Vzc2FyeSk7CisgICAg
ICAgIFsmXSAoU2xvdFZpc2l0b3ImIHZpc2l0b3IpIHsKKyAgICAgICAgICAgIHZpc2l0b3IudXBk
YXRlTXV0YXRvcklzU3RvcHBlZChOb0xvY2tpbmdOZWNlc3NhcnkpOwogICAgICAgICB9KTsKIAog
I2lmIEVOQUJMRShKSVQpCkBAIC0xNjg1LDMzICsxNjg1LDMzIEBAIE5FVkVSX0lOTElORSB2b2lk
IEhlYXA6OnJlc3VtZVRoZVBlcmlwaGUKICAgICAvLyBxdWV1ZXMgYXQgb25jZSwgd2hpY2ggaXMg
dG90YWxseSBhY2hpZXZhYmxlIC0gaXQgd291bGQganVzdCByZXF1aXJlIG1lbW9yeSBhbGxvY2F0
aW9uLCB3aGljaCBpcwogICAgIC8vIHN1Ym9wdGltYWwgYnV0IG5vdCBhIGRpc2FzdGVyLiBBbHRl
cm5hdGl2ZWx5LCB3ZSBjb3VsZCByZXBsYWNlIHRoZSBTbG90VmlzaXRvciByaWdodFRvUnVuIGxv
Y2sKICAgICAvLyB3aXRoIGEgRExHLXN0eWxlIGhhbmRzaGFrZSBtZWNoYW5pc20sIGJ1dCB0aGF0
IHNlZW1zIG5vdCBhcyBnZW5lcmFsLgotICAgIFZlY3RvcjxTbG90VmlzaXRvciosIDg+IHNsb3RW
aXNpdG9yc1RvVXBkYXRlOworICAgIFZlY3RvcjxTbG90VmlzaXRvciosIDg+IHZpc2l0b3JzVG9V
cGRhdGU7CiAKICAgICBmb3JFYWNoU2xvdFZpc2l0b3IoCi0gICAgICAgIFsmXSAoU2xvdFZpc2l0
b3ImIHNsb3RWaXNpdG9yKSB7Ci0gICAgICAgICAgICBzbG90VmlzaXRvcnNUb1VwZGF0ZS5hcHBl
bmQoJnNsb3RWaXNpdG9yKTsKKyAgICAgICAgWyZdIChTbG90VmlzaXRvciYgdmlzaXRvcikgewor
ICAgICAgICAgICAgdmlzaXRvcnNUb1VwZGF0ZS5hcHBlbmQoJnZpc2l0b3IpOwogICAgICAgICB9
KTsKICAgICAKLSAgICBmb3IgKHVuc2lnbmVkIGNvdW50ZG93biA9IDQwOyAhc2xvdFZpc2l0b3Jz
VG9VcGRhdGUuaXNFbXB0eSgpICYmIGNvdW50ZG93bi0tOykgewotICAgICAgICBmb3IgKHVuc2ln
bmVkIGluZGV4ID0gMDsgaW5kZXggPCBzbG90VmlzaXRvcnNUb1VwZGF0ZS5zaXplKCk7ICsraW5k
ZXgpIHsKLSAgICAgICAgICAgIFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvciA9ICpzbG90VmlzaXRv
cnNUb1VwZGF0ZVtpbmRleF07CisgICAgZm9yICh1bnNpZ25lZCBjb3VudGRvd24gPSA0MDsgIXZp
c2l0b3JzVG9VcGRhdGUuaXNFbXB0eSgpICYmIGNvdW50ZG93bi0tOykgeworICAgICAgICBmb3Ig
KHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCB2aXNpdG9yc1RvVXBkYXRlLnNpemUoKTsgKytp
bmRleCkgeworICAgICAgICAgICAgU2xvdFZpc2l0b3ImIHZpc2l0b3IgPSAqdmlzaXRvcnNUb1Vw
ZGF0ZVtpbmRleF07CiAgICAgICAgICAgICBib29sIHJlbW92ZSA9IGZhbHNlOwotICAgICAgICAg
ICAgaWYgKHNsb3RWaXNpdG9yLmhhc0Fja25vd2xlZGdlZFRoYXRUaGVNdXRhdG9ySXNSZXN1bWVk
KCkpCisgICAgICAgICAgICBpZiAodmlzaXRvci5oYXNBY2tub3dsZWRnZWRUaGF0VGhlTXV0YXRv
cklzUmVzdW1lZCgpKQogICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRydWU7Ci0gICAgICAgICAg
ICBlbHNlIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKHNsb3RWaXNpdG9yLnJpZ2h0VG9S
dW4oKSkpIHsKLSAgICAgICAgICAgICAgICBzbG90VmlzaXRvci51cGRhdGVNdXRhdG9ySXNTdG9w
cGVkKGxvY2tlcik7CisgICAgICAgICAgICBlbHNlIGlmIChhdXRvIGxvY2tlciA9IHRyeUhvbGRM
b2NrKHZpc2l0b3IucmlnaHRUb1J1bigpKSkgeworICAgICAgICAgICAgICAgIHZpc2l0b3IudXBk
YXRlTXV0YXRvcklzU3RvcHBlZChsb2NrZXIpOwogICAgICAgICAgICAgICAgIHJlbW92ZSA9IHRy
dWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAocmVtb3ZlKSB7Ci0gICAgICAgICAg
ICAgICAgc2xvdFZpc2l0b3JzVG9VcGRhdGVbaW5kZXgtLV0gPSBzbG90VmlzaXRvcnNUb1VwZGF0
ZS5sYXN0KCk7Ci0gICAgICAgICAgICAgICAgc2xvdFZpc2l0b3JzVG9VcGRhdGUudGFrZUxhc3Qo
KTsKKyAgICAgICAgICAgICAgICB2aXNpdG9yc1RvVXBkYXRlW2luZGV4LS1dID0gdmlzaXRvcnNU
b1VwZGF0ZS5sYXN0KCk7CisgICAgICAgICAgICAgICAgdmlzaXRvcnNUb1VwZGF0ZS50YWtlTGFz
dCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIFRocmVhZDo6eWllbGQoKTsK
ICAgICB9CiAgICAgCi0gICAgZm9yIChTbG90VmlzaXRvciogc2xvdFZpc2l0b3IgOiBzbG90Vmlz
aXRvcnNUb1VwZGF0ZSkKLSAgICAgICAgc2xvdFZpc2l0b3ItPnVwZGF0ZU11dGF0b3JJc1N0b3Bw
ZWQoKTsKKyAgICBmb3IgKFNsb3RWaXNpdG9yKiB2aXNpdG9yIDogdmlzaXRvcnNUb1VwZGF0ZSkK
KyAgICAgICAgdmlzaXRvci0+dXBkYXRlTXV0YXRvcklzU3RvcHBlZCgpOwogICAgIAogICAgIHJl
c3VtZUNvbXBpbGVyVGhyZWFkcygpOwogfQpAQCAtMjcwMSw3ICsyNzAxLDcgQEAgdm9pZCBIZWFw
OjphZGRDb3JlQ29uc3RyYWludHMoKQogewogICAgIG1fY29uc3RyYWludFNldC0+YWRkKAogICAg
ICAgICAiQ3MiLCAiQ29uc2VydmF0aXZlIFNjYW4iLAotICAgICAgICBbdGhpcywgbGFzdFZlcnNp
b24gPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oMCldIChTbG90VmlzaXRvciYgc2xvdFZpc2l0b3Ip
IG11dGFibGUgeworICAgICAgICBbdGhpcywgbGFzdFZlcnNpb24gPSBzdGF0aWNfY2FzdDx1aW50
NjRfdD4oMCldIChTbG90VmlzaXRvciYgdmlzaXRvcikgbXV0YWJsZSB7CiAgICAgICAgICAgICBi
b29sIHNob3VsZE5vdFByb2R1Y2VXb3JrID0gbGFzdFZlcnNpb24gPT0gbV9waGFzZVZlcnNpb247
CiAgICAgICAgICAgICBpZiAoc2hvdWxkTm90UHJvZHVjZVdvcmspCiAgICAgICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMjcxOCwxMyArMjcxOCwxMyBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJh
aW50cygpCiAgICAgICAgICAgICAgICAgZ2F0aGVySlNTdGFja1Jvb3RzKGNvbnNlcnZhdGl2ZVJv
b3RzKTsKICAgICAgICAgICAgICAgICBnYXRoZXJTY3JhdGNoQnVmZmVyUm9vdHMoY29uc2VydmF0
aXZlUm9vdHMpOwogCi0gICAgICAgICAgICAgICAgU2V0Um9vdE1hcmtSZWFzb25TY29wZSByb290
U2NvcGUoc2xvdFZpc2l0b3IsIFJvb3RNYXJrUmVhc29uOjpDb25zZXJ2YXRpdmVTY2FuKTsKLSAg
ICAgICAgICAgICAgICBzbG90VmlzaXRvci5hcHBlbmQoY29uc2VydmF0aXZlUm9vdHMpOworICAg
ICAgICAgICAgICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHZpc2l0b3IsIFJv
b3RNYXJrUmVhc29uOjpDb25zZXJ2YXRpdmVTY2FuKTsKKyAgICAgICAgICAgICAgICB2aXNpdG9y
LmFwcGVuZChjb25zZXJ2YXRpdmVSb290cyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBp
ZiAoT3B0aW9uczo6dXNlSklUKCkpIHsKICAgICAgICAgICAgICAgICAvLyBKSVRTdHViUm91dGlu
ZXMgbXVzdCBiZSB2aXNpdGVkIGFmdGVyIHNjYW5uaW5nIENvbnNlcnZhdGl2ZVJvb3RzIHNpbmNl
IEpJVFN0dWJSb3V0aW5lcyBkZXBlbmQgb24gdGhlIGhvb2sgZXhlY3V0ZWQgZHVyaW5nIGdhdGhl
cmluZyBDb25zZXJ2YXRpdmVSb290cy4KLSAgICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNv
blNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgUm9vdE1hcmtSZWFzb246OkpJVFN0dWJSb3V0
aW5lcyk7Ci0gICAgICAgICAgICAgICAgbV9qaXRTdHViUm91dGluZXMtPnRyYWNlTWFya2VkU3R1
YlJvdXRpbmVzKHNsb3RWaXNpdG9yKTsKKyAgICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNv
blNjb3BlIHJvb3RTY29wZSh2aXNpdG9yLCBSb290TWFya1JlYXNvbjo6SklUU3R1YlJvdXRpbmVz
KTsKKyAgICAgICAgICAgICAgICBtX2ppdFN0dWJSb3V0aW5lcy0+dHJhY2VNYXJrZWRTdHViUm91
dGluZXModmlzaXRvcik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGxhc3RWZXJzaW9uID0gbV9waGFzZVZlcnNpb247CkBAIC0yNzMzLDkyICsyNzMzLDkyIEBAIHZv
aWQgSGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKCkKICAgICAKICAgICBtX2NvbnN0cmFpbnRTZXQt
PmFkZCgKICAgICAgICAgIk1zciIsICJNaXNjIFNtYWxsIFJvb3RzIiwKLSAgICAgICAgW3RoaXNd
IChTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpIHsKKyAgICAgICAgW3RoaXNdIChTbG90VmlzaXRv
ciYgdmlzaXRvcikgewogCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKLSAgICAgICAgICAgIHNj
YW5FeHRlcm5hbFJlbWVtYmVyZWRTZXQobV92bSwgc2xvdFZpc2l0b3IpOworICAgICAgICAgICAg
c2NhbkV4dGVybmFsUmVtZW1iZXJlZFNldChtX3ZtLCB2aXNpdG9yKTsKICNlbmRpZgogICAgICAg
ICAgICAgaWYgKG1fdm0uc21hbGxTdHJpbmdzLm5lZWRzVG9CZVZpc2l0ZWQoKm1fY29sbGVjdGlv
blNjb3BlKSkgewotICAgICAgICAgICAgICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUgcm9vdFNj
b3BlKHNsb3RWaXNpdG9yLCBSb290TWFya1JlYXNvbjo6U3Ryb25nUmVmZXJlbmNlcyk7Ci0gICAg
ICAgICAgICAgICAgbV92bS5zbWFsbFN0cmluZ3MudmlzaXRTdHJvbmdSZWZlcmVuY2VzKHNsb3RW
aXNpdG9yKTsKKyAgICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29w
ZSh2aXNpdG9yLCBSb290TWFya1JlYXNvbjo6U3Ryb25nUmVmZXJlbmNlcyk7CisgICAgICAgICAg
ICAgICAgbV92bS5zbWFsbFN0cmluZ3MudmlzaXRTdHJvbmdSZWZlcmVuY2VzKHZpc2l0b3IpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgU2V0Um9vdE1hcmtSZWFzb25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3IsIFJvb3RNYXJr
UmVhc29uOjpQcm90ZWN0ZWRWYWx1ZXMpOworICAgICAgICAgICAgICAgIFNldFJvb3RNYXJrUmVh
c29uU2NvcGUgcm9vdFNjb3BlKHZpc2l0b3IsIFJvb3RNYXJrUmVhc29uOjpQcm90ZWN0ZWRWYWx1
ZXMpOwogICAgICAgICAgICAgICAgIGZvciAoYXV0byYgcGFpciA6IG1fcHJvdGVjdGVkVmFsdWVz
KQotICAgICAgICAgICAgICAgICAgICBzbG90VmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZChwYWly
LmtleSk7CisgICAgICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQocGFp
ci5rZXkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAobV9t
YXJrTGlzdFNldCAmJiBtX21hcmtMaXN0U2V0LT5zaXplKCkpIHsKLSAgICAgICAgICAgICAgICBT
ZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgUm9vdE1hcmtSZWFz
b246OkNvbnNlcnZhdGl2ZVNjYW4pOwotICAgICAgICAgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyOjptYXJrTGlzdHMoc2xvdFZpc2l0b3IsICptX21hcmtMaXN0U2V0KTsKKyAgICAgICAgICAg
ICAgICBTZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZSh2aXNpdG9yLCBSb290TWFya1Jl
YXNvbjo6Q29uc2VydmF0aXZlU2Nhbik7CisgICAgICAgICAgICAgICAgTWFya2VkQXJndW1lbnRC
dWZmZXI6Om1hcmtMaXN0cyh2aXNpdG9yLCAqbV9tYXJrTGlzdFNldCk7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIG1fbWFya2VkSlNWYWx1ZVJlZkFycmF5cy5mb3JFYWNoKFsmXSAoTWFy
a2VkSlNWYWx1ZVJlZkFycmF5KiBhcnJheSkgewotICAgICAgICAgICAgICAgIGFycmF5LT52aXNp
dEFnZ3JlZ2F0ZShzbG90VmlzaXRvcik7CisgICAgICAgICAgICAgICAgYXJyYXktPnZpc2l0QWdn
cmVnYXRlKHZpc2l0b3IpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBTZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwg
Um9vdE1hcmtSZWFzb246OlZNRXhjZXB0aW9ucyk7Ci0gICAgICAgICAgICAgICAgc2xvdFZpc2l0
b3IuYXBwZW5kVW5iYXJyaWVyZWQobV92bS5leGNlcHRpb24oKSk7Ci0gICAgICAgICAgICAgICAg
c2xvdFZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQobV92bS5sYXN0RXhjZXB0aW9uKCkpOworICAg
ICAgICAgICAgICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHZpc2l0b3IsIFJv
b3RNYXJrUmVhc29uOjpWTUV4Y2VwdGlvbnMpOworICAgICAgICAgICAgICAgIHZpc2l0b3IuYXBw
ZW5kVW5iYXJyaWVyZWQobV92bS5leGNlcHRpb24oKSk7CisgICAgICAgICAgICAgICAgdmlzaXRv
ci5hcHBlbmRVbmJhcnJpZXJlZChtX3ZtLmxhc3RFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0sCiAgICAgICAgIENvbnN0cmFpbnRWb2xhdGlsaXR5OjpHcmV5ZWRCeUV4ZWN1
dGlvbik7CiAgICAgCiAgICAgbV9jb25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJTaCIsICJT
dHJvbmcgSGFuZGxlcyIsCi0gICAgICAgIFt0aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9y
KSB7Ci0gICAgICAgICAgICBTZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90Vmlz
aXRvciwgUm9vdE1hcmtSZWFzb246OlN0cm9uZ0hhbmRsZXMpOwotICAgICAgICAgICAgbV9oYW5k
bGVTZXQudmlzaXRTdHJvbmdIYW5kbGVzKHNsb3RWaXNpdG9yKTsKKyAgICAgICAgW3RoaXNdIChT
bG90VmlzaXRvciYgdmlzaXRvcikgeworICAgICAgICAgICAgU2V0Um9vdE1hcmtSZWFzb25TY29w
ZSByb290U2NvcGUodmlzaXRvciwgUm9vdE1hcmtSZWFzb246OlN0cm9uZ0hhbmRsZXMpOworICAg
ICAgICAgICAgbV9oYW5kbGVTZXQudmlzaXRTdHJvbmdIYW5kbGVzKHZpc2l0b3IpOwogICAgICAg
ICB9LAogICAgICAgICBDb25zdHJhaW50Vm9sYXRpbGl0eTo6R3JleWVkQnlFeGVjdXRpb24pOwog
ICAgIAogICAgIG1fY29uc3RyYWludFNldC0+YWRkKAogICAgICAgICAiRCIsICJEZWJ1Z2dlciIs
Ci0gICAgICAgIFt0aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKSB7Ci0gICAgICAgICAg
ICBTZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgUm9vdE1hcmtS
ZWFzb246OkRlYnVnZ2VyKTsKKyAgICAgICAgW3RoaXNdIChTbG90VmlzaXRvciYgdmlzaXRvcikg
eworICAgICAgICAgICAgU2V0Um9vdE1hcmtSZWFzb25TY29wZSByb290U2NvcGUodmlzaXRvciwg
Um9vdE1hcmtSZWFzb246OkRlYnVnZ2VyKTsKIAogI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxF
UikKICAgICAgICAgICAgIGlmIChTYW1wbGluZ1Byb2ZpbGVyKiBzYW1wbGluZ1Byb2ZpbGVyID0g
bV92bS5zYW1wbGluZ1Byb2ZpbGVyKCkpIHsKICAgICAgICAgICAgICAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKHNhbXBsaW5nUHJvZmlsZXItPmdldExvY2soKSk7CiAgICAgICAgICAgICAgICAg
c2FtcGxpbmdQcm9maWxlci0+cHJvY2Vzc1VudmVyaWZpZWRTdGFja1RyYWNlcyhsb2NrZXIpOwot
ICAgICAgICAgICAgICAgIHNhbXBsaW5nUHJvZmlsZXItPnZpc2l0KHNsb3RWaXNpdG9yKTsKKyAg
ICAgICAgICAgICAgICBzYW1wbGluZ1Byb2ZpbGVyLT52aXNpdCh2aXNpdG9yKTsKICAgICAgICAg
ICAgICAgICBpZiAoT3B0aW9uczo6bG9nR0MoKSA9PSBHQ0xvZ2dpbmc6OlZlcmJvc2UpCi0gICAg
ICAgICAgICAgICAgICAgIGRhdGFMb2coIlNhbXBsaW5nIFByb2ZpbGVyIGRhdGE6XG4iLCBzbG90
VmlzaXRvcik7CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIlNhbXBsaW5nIFByb2ZpbGVy
IGRhdGE6XG4iLCB2aXNpdG9yKTsKICAgICAgICAgICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoU0FN
UExJTkdfUFJPRklMRVIpCiAKICAgICAgICAgICAgIGlmIChtX3ZtLnR5cGVQcm9maWxlcigpKQot
ICAgICAgICAgICAgICAgIG1fdm0udHlwZVByb2ZpbGVyTG9nKCktPnZpc2l0KHNsb3RWaXNpdG9y
KTsKKyAgICAgICAgICAgICAgICBtX3ZtLnR5cGVQcm9maWxlckxvZygpLT52aXNpdCh2aXNpdG9y
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGF1dG8qIHNoYWRvd0NoaWNrZW4gPSBt
X3ZtLnNoYWRvd0NoaWNrZW4oKSkKLSAgICAgICAgICAgICAgICBzaGFkb3dDaGlja2VuLT52aXNp
dENoaWxkcmVuKHNsb3RWaXNpdG9yKTsKKyAgICAgICAgICAgICAgICBzaGFkb3dDaGlja2VuLT52
aXNpdENoaWxkcmVuKHZpc2l0b3IpOwogICAgICAgICB9LAogICAgICAgICBDb25zdHJhaW50Vm9s
YXRpbGl0eTo6R3JleWVkQnlFeGVjdXRpb24pOwogICAgIAogICAgIG1fY29uc3RyYWludFNldC0+
YWRkKAogICAgICAgICAiV3MiLCAiV2VhayBTZXRzIiwKLSAgICAgICAgW3RoaXNdIChTbG90Vmlz
aXRvciYgc2xvdFZpc2l0b3IpIHsKLSAgICAgICAgICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUg
cm9vdFNjb3BlKHNsb3RWaXNpdG9yLCBSb290TWFya1JlYXNvbjo6V2Vha1NldHMpOwotICAgICAg
ICAgICAgbV9vYmplY3RTcGFjZS52aXNpdFdlYWtTZXRzKHNsb3RWaXNpdG9yKTsKKyAgICAgICAg
W3RoaXNdIChTbG90VmlzaXRvciYgdmlzaXRvcikgeworICAgICAgICAgICAgU2V0Um9vdE1hcmtS
ZWFzb25TY29wZSByb290U2NvcGUodmlzaXRvciwgUm9vdE1hcmtSZWFzb246OldlYWtTZXRzKTsK
KyAgICAgICAgICAgIG1fb2JqZWN0U3BhY2UudmlzaXRXZWFrU2V0cyh2aXNpdG9yKTsKICAgICAg
ICAgfSwKICAgICAgICAgQ29uc3RyYWludFZvbGF0aWxpdHk6OkdyZXllZEJ5TWFya2luZyk7CiAg
ICAgCiAgICAgbV9jb25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJPIiwgIk91dHB1dCIsCi0g
ICAgICAgIFtdIChTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpIHsKLSAgICAgICAgICAgIFZNJiB2
bSA9IHNsb3RWaXNpdG9yLnZtKCk7CisgICAgICAgIFtdIChTbG90VmlzaXRvciYgdmlzaXRvcikg
eworICAgICAgICAgICAgVk0mIHZtID0gdmlzaXRvci52bSgpOwogCi0gICAgICAgICAgICBhdXRv
IGNhbGxPdXRwdXRDb25zdHJhaW50ID0gW10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvciwgSGVh
cENlbGwqIGhlYXBDZWxsLCBIZWFwQ2VsbDo6S2luZCkgewotICAgICAgICAgICAgICAgIFNldFJv
b3RNYXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHNsb3RWaXNpdG9yLCBSb290TWFya1JlYXNvbjo6
T3V0cHV0KTsKLSAgICAgICAgICAgICAgICBWTSYgdm0gPSBzbG90VmlzaXRvci52bSgpOworICAg
ICAgICAgICAgYXV0byBjYWxsT3V0cHV0Q29uc3RyYWludCA9IFtdIChTbG90VmlzaXRvciYgdmlz
aXRvciwgSGVhcENlbGwqIGhlYXBDZWxsLCBIZWFwQ2VsbDo6S2luZCkgeworICAgICAgICAgICAg
ICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHZpc2l0b3IsIFJvb3RNYXJrUmVh
c29uOjpPdXRwdXQpOworICAgICAgICAgICAgICAgIFZNJiB2bSA9IHZpc2l0b3Iudm0oKTsKICAg
ICAgICAgICAgICAgICBKU0NlbGwqIGNlbGwgPSBzdGF0aWNfY2FzdDxKU0NlbGwqPihoZWFwQ2Vs
bCk7Ci0gICAgICAgICAgICAgICAgY2VsbC0+bWV0aG9kVGFibGUodm0pLT52aXNpdE91dHB1dENv
bnN0cmFpbnRzKGNlbGwsIHNsb3RWaXNpdG9yKTsKKyAgICAgICAgICAgICAgICBjZWxsLT5tZXRo
b2RUYWJsZSh2bSktPnZpc2l0T3V0cHV0Q29uc3RyYWludHMoY2VsbCwgdmlzaXRvcik7CiAgICAg
ICAgICAgICB9OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBhdXRvIGFkZCA9IFsmXSAoYXV0
byYgc2V0KSB7Ci0gICAgICAgICAgICAgICAgc2xvdFZpc2l0b3IuYWRkUGFyYWxsZWxDb25zdHJh
aW50VGFzayhzZXQuZm9yRWFjaE1hcmtlZENlbGxJblBhcmFsbGVsKGNhbGxPdXRwdXRDb25zdHJh
aW50KSk7CisgICAgICAgICAgICAgICAgdmlzaXRvci5hZGRQYXJhbGxlbENvbnN0cmFpbnRUYXNr
KHNldC5mb3JFYWNoTWFya2VkQ2VsbEluUGFyYWxsZWwoY2FsbE91dHB1dENvbnN0cmFpbnQpKTsK
ICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGFkZCh2bS5leGVjdXRh
YmxlVG9Db2RlQmxvY2tFZGdlc1dpdGhDb25zdHJhaW50cyk7CkBAIC0yODMyLDIyICsyODMyLDIy
IEBAIHZvaWQgSGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKCkKICAgICBpZiAoT3B0aW9uczo6dXNl
SklUKCkpIHsKICAgICAgICAgbV9jb25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICAgICAiRHci
LCAiREZHIFdvcmtsaXN0cyIsCi0gICAgICAgICAgICBbdGhpc10gKFNsb3RWaXNpdG9yJiBzbG90
VmlzaXRvcikgewotICAgICAgICAgICAgICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUgcm9vdFNj
b3BlKHNsb3RWaXNpdG9yLCBSb290TWFya1JlYXNvbjo6REZHV29ya0xpc3RzKTsKKyAgICAgICAg
ICAgIFt0aGlzXSAoU2xvdFZpc2l0b3ImIHZpc2l0b3IpIHsKKyAgICAgICAgICAgICAgICBTZXRS
b290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZSh2aXNpdG9yLCBSb290TWFya1JlYXNvbjo6REZH
V29ya0xpc3RzKTsKIAogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IERGRzo6bnVt
YmVyT2ZXb3JrbGlzdHMoKTsgaS0tOykKLSAgICAgICAgICAgICAgICAgICAgREZHOjpleGlzdGlu
Z1dvcmtsaXN0Rm9ySW5kZXgoaSkudmlzaXRXZWFrUmVmZXJlbmNlcyhzbG90VmlzaXRvcik7Cisg
ICAgICAgICAgICAgICAgICAgIERGRzo6ZXhpc3RpbmdXb3JrbGlzdEZvckluZGV4KGkpLnZpc2l0
V2Vha1JlZmVyZW5jZXModmlzaXRvcik7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IFRoaXMgaXMgYWxtb3N0IGNlcnRhaW5seSB1bm5lY2Vzc2FyeS4KICAgICAg
ICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2
ODI5CiAgICAgICAgICAgICAgICAgREZHOjppdGVyYXRlQ29kZUJsb2Nrc0ZvckdDKAogICAgICAg
ICAgICAgICAgICAgICBtX3ZtLAogICAgICAgICAgICAgICAgICAgICBbJl0gKENvZGVCbG9jayog
Y29kZUJsb2NrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzbG90VmlzaXRvci5hcHBlbmRV
bmJhcnJpZXJlZChjb2RlQmxvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgdmlzaXRvci5h
cHBlbmRVbmJhcnJpZXJlZChjb2RlQmxvY2spOwogICAgICAgICAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoT3B0aW9uczo6bG9nR0MoKSA9PSBH
Q0xvZ2dpbmc6OlZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkRGRyBXb3Jr
bGlzdHM6XG4iLCBzbG90VmlzaXRvcik7CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkRG
RyBXb3JrbGlzdHM6XG4iLCB2aXNpdG9yKTsKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICBD
b25zdHJhaW50Vm9sYXRpbGl0eTo6R3JleWVkQnlNYXJraW5nKTsKICAgICB9CkBAIC0yODU1LDE0
ICsyODU1LDE0IEBAIHZvaWQgSGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKCkKICAgICAKICAgICBt
X2NvbnN0cmFpbnRTZXQtPmFkZCgKICAgICAgICAgIkNiIiwgIkNvZGVCbG9ja3MiLAotICAgICAg
ICBbdGhpc10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvcikgewotICAgICAgICAgICAgU2V0Um9v
dE1hcmtSZWFzb25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3IsIFJvb3RNYXJrUmVhc29uOjpD
b2RlQmxvY2tzKTsKKyAgICAgICAgW3RoaXNdIChTbG90VmlzaXRvciYgdmlzaXRvcikgeworICAg
ICAgICAgICAgU2V0Um9vdE1hcmtSZWFzb25TY29wZSByb290U2NvcGUodmlzaXRvciwgUm9vdE1h
cmtSZWFzb246OkNvZGVCbG9ja3MpOwogICAgICAgICAgICAgaXRlcmF0ZUV4ZWN1dGluZ0FuZENv
bXBpbGluZ0NvZGVCbG9ja3NXaXRob3V0SG9sZGluZ0xvY2tzKAogICAgICAgICAgICAgICAgIFsm
XSAoQ29kZUJsb2NrKiBjb2RlQmxvY2spIHsKICAgICAgICAgICAgICAgICAgICAgLy8gVmlzaXQg
dGhlIENvZGVCbG9jayBhcyBhIGNvbnN0cmFpbnQgb25seSBpZiBpdCdzIGJsYWNrLgogICAgICAg
ICAgICAgICAgICAgICBpZiAoaXNNYXJrZWQoY29kZUJsb2NrKQogICAgICAgICAgICAgICAgICAg
ICAgICAgJiYgY29kZUJsb2NrLT5jZWxsU3RhdGUoKSA9PSBDZWxsU3RhdGU6OlBvc3NpYmx5Qmxh
Y2spCi0gICAgICAgICAgICAgICAgICAgICAgICBzbG90VmlzaXRvci52aXNpdEFzQ29uc3RyYWlu
dChjb2RlQmxvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgdmlzaXRvci52aXNpdEFzQ29u
c3RyYWludChjb2RlQmxvY2spOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9LAogICAg
ICAgICBDb25zdHJhaW50Vm9sYXRpbGl0eTo6U2VsZG9tR3JleWVkKTsKQEAgLTI5NzgsOSArMjk3
OCw5IEBAIHZvaWQgSGVhcDo6cGVyZm9ybUluY3JlbWVudChzaXplX3QgYnl0ZXMKICAgICAgICAg
cmV0dXJuOwogICAgIHRhcmdldEJ5dGVzID0gc3RkOjptaW4odGFyZ2V0Qnl0ZXMsIE9wdGlvbnM6
OmdjSW5jcmVtZW50TWF4Qnl0ZXMoKSk7CiAKLSAgICBTbG90VmlzaXRvciYgc2xvdFZpc2l0b3Ig
PSAqbV9tdXRhdG9yU2xvdFZpc2l0b3I7Ci0gICAgUGFyYWxsZWxNb2RlRW5hYmxlciBwYXJhbGxl
bE1vZGVFbmFibGVyKHNsb3RWaXNpdG9yKTsKLSAgICBzaXplX3QgYnl0ZXNWaXNpdGVkID0gc2xv
dFZpc2l0b3IucGVyZm9ybUluY3JlbWVudE9mRHJhaW5pbmcoc3RhdGljX2Nhc3Q8c2l6ZV90Pih0
YXJnZXRCeXRlcykpOworICAgIFNsb3RWaXNpdG9yJiB2aXNpdG9yID0gKm1fbXV0YXRvclNsb3RW
aXNpdG9yOworICAgIFBhcmFsbGVsTW9kZUVuYWJsZXIgcGFyYWxsZWxNb2RlRW5hYmxlcih2aXNp
dG9yKTsKKyAgICBzaXplX3QgYnl0ZXNWaXNpdGVkID0gdmlzaXRvci5wZXJmb3JtSW5jcmVtZW50
T2ZEcmFpbmluZyhzdGF0aWNfY2FzdDxzaXplX3Q+KHRhcmdldEJ5dGVzKSk7CiAgICAgLy8gaW5j
cmVtZW50QmFsYW5jZSBtYXkgZ28gbmVnYXRpdmUgaGVyZSBiZWNhdXNlIGl0J2xsIHJlbWVtYmVy
IGhvdyBtYW55IGJ5dGVzIHdlIG92ZXJzaG90LgogICAgIG1faW5jcmVtZW50QmFsYW5jZSAtPSBi
eXRlc1Zpc2l0ZWQ7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSW5s
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBJbmxp
bmVzLmgJKHJldmlzaW9uIDI3MjgyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXBJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNzQsOCArMjc0LDggQEAgdm9pZCBIZWFw
Ojpmb3JFYWNoU2xvdFZpc2l0b3IoY29uc3QgRnVuYwogewogICAgIGZ1bmMoKm1fY29sbGVjdG9y
U2xvdFZpc2l0b3IpOwogICAgIGZ1bmMoKm1fbXV0YXRvclNsb3RWaXNpdG9yKTsKLSAgICBmb3Ig
KGF1dG8mIHNsb3RWaXNpdG9yIDogbV9wYXJhbGxlbFNsb3RWaXNpdG9ycykKLSAgICAgICAgZnVu
Yygqc2xvdFZpc2l0b3IpOworICAgIGZvciAoYXV0byYgdmlzaXRvciA6IG1fcGFyYWxsZWxTbG90
VmlzaXRvcnMpCisgICAgICAgIGZ1bmMoKnZpc2l0b3IpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU2VnbWVudGVkVmFyaWFi
bGVPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3BwCShyZXZpc2lvbiAyNzI4MjUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTItMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTYyLDE3ICs2MiwxNyBAQCBTY29wZU9mZnNldCBKU1NlZ21lbnRl
ZFZhcmlhYmxlT2JqZWN0OjphCiAgICAgcmV0dXJuIFNjb3BlT2Zmc2V0KG9sZFNpemUpOwogfQog
Ci12b2lkIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpCit2b2lkIEpTU2VnbWVudGVkVmFyaWFibGVP
YmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKICAgICBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
U2VnbWVudGVkVmFyaWFibGVPYmplY3QqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlz
T2JqZWN0LCBzbG90VmlzaXRvcik7CisgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0
LCB2aXNpdG9yKTsKICAgICAKICAgICAvLyBGSVhNRTogV2UgY291bGQgYXZvaWQgbG9ja2luZyBo
ZXJlIGlmIFNlZ21lbnRlZFZlY3RvciB3YXMgbG9jay1mcmVlLiBJdCBjb3VsZCBiZSBtYWRlIGxv
Y2stZnJlZQogICAgIC8vIHJlbGF0aXZlbHkgZWFzaWx5LgogICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sodGhpc09iamVjdC0+Y2VsbExvY2soKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gdGhp
c09iamVjdC0+bV92YXJpYWJsZXMuc2l6ZSgpOyBpLS07KQotICAgICAgICBzbG90VmlzaXRvci5h
cHBlbmRIaWRkZW4odGhpc09iamVjdC0+bV92YXJpYWJsZXNbaV0pOworICAgICAgICB2aXNpdG9y
LmFwcGVuZEhpZGRlbih0aGlzT2JqZWN0LT5tX3ZhcmlhYmxlc1tpXSk7CiB9CiAKIHZvaWQgSlNT
ZWdtZW50ZWRWYXJpYWJsZU9iamVjdDo6YW5hbHl6ZUhlYXAoSlNDZWxsKiBjZWxsLCBIZWFwQW5h
bHl6ZXImIGFuYWx5emVyKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2Ft
cGxpbmdQcm9maWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAJKHJldmlzaW9uIDI3MjgyNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNjUyLDExICs2NTIsMTEgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpwcm9jZXNzVW52
ZXJpZmllZAogICAgIG1fdW5wcm9jZXNzZWRTdGFja1RyYWNlcy5jbGVhcigpOwogfQogCi12b2lk
IFNhbXBsaW5nUHJvZmlsZXI6OnZpc2l0KFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvcikKK3ZvaWQg
U2FtcGxpbmdQcm9maWxlcjo6dmlzaXQoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgUkVM
RUFTRV9BU1NFUlQobV9sb2NrLmlzTG9ja2VkKCkpOwogICAgIGZvciAoSlNDZWxsKiBjZWxsIDog
bV9saXZlQ2VsbFBvaW50ZXJzKQotICAgICAgICBzbG90VmlzaXRvci5hcHBlbmRVbmJhcnJpZXJl
ZChjZWxsKTsKKyAgICAgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZChjZWxsKTsKIH0KIAog
dm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpzaHV0ZG93bigpCg==
</data>
<flag name="review"
          id="438653"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>