<?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>226021</bug_id>
          
          <creation_ts>2021-05-20 07:58:59 -0700</creation_ts>
          <short_desc>Use CheckedLock more in IPC::Connection</short_desc>
          <delta_ts>2021-05-20 11:45:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226001</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>mkwst</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1761956</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 07:58:59 -0700</bug_when>
    <thetext>Use CheckedLock more in IPC::Connection. This is heavily multithreaded code and it would benefit significantly from Clang Thread Safety Analysis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761957</commentid>
    <comment_count>1</comment_count>
      <attachid>429174</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 08:04:30 -0700</bug_when>
    <thetext>Created attachment 429174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762063</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-20 11:44:17 -0700</bug_when>
    <thetext>Committed r277806 (237961@main): &lt;https://commits.webkit.org/237961@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429174.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762064</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-20 11:45:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/78269352&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429174</attachid>
            <date>2021-05-20 08:04:30 -0700</date>
            <delta_ts>2021-05-20 11:44:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226021-20210520080430.patch</filename>
            <type>text/plain</type>
            <size>19083</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYwYTM4YzE3MjE5NDRlZDRj
YjMyNDc2YzRlMTJkYzdjMTNiMTE3N2IuLjYwZWRlYzNhYjc3Y2VmZWFjZjNmNDcyOTk2NWFmOTRh
NDk2NGNhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMjAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgbW9yZSBp
biBJUEM6OkNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjAyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSBDaGVja2VkTG9jayBtb3JlIGluIElQQzo6Q29ubmVjdGlvbi4gVGhpcyBp
cyBoZWF2aWx5IG11bHRpdGhyZWFkZWQgY29kZSBhbmQKKyAgICAgICAgaXQgd291bGQgYmVuZWZp
dCBzaWduaWZpY2FudGx5IGZyb20gQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4KKworICAg
ICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6cHJvY2Vzc0luY29taW5nTWVzc2FnZSk6CisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246OmVucXVldWVNYXRjaGluZ01lc3NhZ2VzVG9NZXNzYWdlUmVjZWl2
ZVF1ZXVlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6YWRkTWVzc2FnZVJlY2VpdmVRdWV1
ZSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmFkZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
cik6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcik6
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnJlbW92ZU1lc3NhZ2VSZWNlaXZlUXVldWUpOgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kTWVzc2FnZSk6CisgICAgICAgIChJUEM6OkNv
bm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6cHVz
aFBlbmRpbmdTeW5jUmVxdWVzdElEKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6cG9wUGVu
ZGluZ1N5bmNSZXF1ZXN0SUQpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjp3YWl0Rm9yU3lu
Y1JlcGx5KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nU3luY1Jl
cGx5KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZSk6
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246Omluc3RhbGxJbmNvbWluZ1N5bmNNZXNzYWdlQ2Fs
bGJhY2spOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjp1bmluc3RhbGxJbmNvbWluZ1N5bmNN
ZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpoYXNJbmNvbWluZ1N5
bmNNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkRpZENsb3Nl
KToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE91dGdvaW5nTWVzc2FnZXMpOgorICAg
ICAgICAoSVBDOjpDb25uZWN0aW9uOjplbnF1ZXVlSW5jb21pbmdNZXNzYWdlKToKKyAgICAgICAg
KElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVj
dGlvbjo6ZGlzcGF0Y2hPbmVJbmNvbWluZ01lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0
aW9uOjpkaXNwYXRjaEluY29taW5nTWVzc2FnZXMpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmg6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OldURl9HVUFSREVEX0JZX0xP
Q0spOgorCiAyMDIxLTA1LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gV2ViS2l0MiBjb2RlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDEzNDE3ZmEwN2QwNzc1NzMwNzNjYjRl
ZTc2ODNhNWE2Y2QzNWQyZTMuLjRhMjY3MTJlNmI2YTMxYWQwYjEwMmU3ZGM4ZTg4OTVmYWE2ZWNm
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC05MCw3
ICs5MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIG1lc3NhZ2Ug
d2lsbCBiZSBoYW5kbGVkIG9uIGEgY2xpZW50IHRocmVhZCB0aGF0IGlzIGN1cnJlbnRseQogICAg
IC8vIHdhaXRpbmcgZm9yIGEgcmVwbHkgdG8gYSBzeW5jaHJvbm91cyBtZXNzYWdlLgotICAgIGJv
b2wgcHJvY2Vzc0luY29taW5nTWVzc2FnZShDb25uZWN0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPERl
Y29kZXI+Jik7CisgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdNZXNzYWdlKENvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiYpIFdURl9SRVFVSVJFU19MT0NLKGNv
bm5lY3Rpb24ubV9pbmNvbWluZ01lc3NhZ2VzTG9jayk7CiAKICAgICAvLyBEaXNwYXRjaCBwZW5k
aW5nIHN5bmMgbWVzc2FnZXMuCiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VzKEZ1bmN0aW9uPHZv
aWQoTWVzc2FnZU5hbWUsIHVpbnQ2NF90KT4mJiB3aWxsRGlzcGF0Y2hNZXNzYWdlID0geyB9KTsK
QEAgLTE3Myw3ICsxNzMsNyBAQCBib29sIENvbm5lY3Rpb246OlN5bmNNZXNzYWdlU3RhdGU6OnBy
b2Nlc3NJbmNvbWluZ01lc3NhZ2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbgogICAgIHsKICAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsKICAgICAgICAgc2hvdWxkRGlzcGF0
Y2ggPSBtX2RpZFNjaGVkdWxlRGlzcGF0Y2hNZXNzYWdlc1dvcmtTZXQuYWRkKCZjb25uZWN0aW9u
KS5pc05ld0VudHJ5OwotICAgICAgICBBU1NFUlQoY29ubmVjdGlvbi5tX2luY29taW5nTWVzc2Fn
ZXNNdXRleC5pc0hlbGQoKSk7CisgICAgICAgIEFTU0VSVChjb25uZWN0aW9uLm1faW5jb21pbmdN
ZXNzYWdlc0xvY2suaXNIZWxkKCkpOwogICAgICAgICBpZiAobWVzc2FnZS0+c2hvdWxkTWFpbnRh
aW5PcmRlcmluZ1dpdGhBc3luY01lc3NhZ2VzKCkpIHsKICAgICAgICAgICAgIC8vIFRoaXMgc3lu
YyBtZXNzYWdlIHNob3VsZCBtYWludGFpbiBvcmRlcmluZyB3aXRoIGFzeW5jIG1lc3NhZ2VzIHNv
IHdlIG5lZWQgdG8gcHJvY2VzcyB0aGUgcGVuZGluZyBhc3luYyBtZXNzYWdlcyBmaXJzdC4KICAg
ICAgICAgICAgIHdoaWxlICghY29ubmVjdGlvbi5tX2luY29taW5nTWVzc2FnZXMuaXNFbXB0eSgp
KQpAQCAtMzMzLDcgKzMzMyw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6c2V0U2hvdWxkRXhpdE9uU3lu
Y01lc3NhZ2VTZW5kRmFpbHVyZShib29sIHNob3VsZEV4aXRPblN5bmNNZXNzCiAKIC8vIEVucXVl
dWUgYW55IHBlbmRpbmcgbWVzc2FnZSB0byB0aGUgTWVzc2FnZVJlY2VpdmVRdWV1ZSB0aGF0IGlz
IG1lYW50IHRvIGdvIG9uIHRoYXQgcXVldWUuIFRoaXMgaXMgaW1wb3J0YW50IHRvIG1haW50YWlu
IHRoZSBvcmRlcmluZyBvZgogLy8gSVBDIG1lc3NhZ2VzIGFzIHNvbWUgbWVzc2FnZXMgbWF5IGdl
dCByZWNlaXZlZCBvbiB0aGUgSVBDIHRocmVhZCBiZWZvcmUgdGhlIG1lc3NhZ2UgcmVjZWl2ZXIg
cmVnaXN0ZXJlZCBpdHNlbGYgb24gdGhlIG1haW4gdGhyZWFkLgotdm9pZCBDb25uZWN0aW9uOjpl
bnF1ZXVlTWF0Y2hpbmdNZXNzYWdlc1RvTWVzc2FnZVJlY2VpdmVRdWV1ZShMb2NrZXI8TG9jaz4m
LCBNZXNzYWdlUmVjZWl2ZVF1ZXVlJiByZWNlaXZlUXVldWUsIFJlY2VpdmVyTmFtZSByZWNlaXZl
ck5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCit2b2lkIENvbm5lY3Rpb246OmVucXVldWVN
YXRjaGluZ01lc3NhZ2VzVG9NZXNzYWdlUmVjZWl2ZVF1ZXVlKE1lc3NhZ2VSZWNlaXZlUXVldWUm
IHJlY2VpdmVRdWV1ZSwgUmVjZWl2ZXJOYW1lIHJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGlu
YXRpb25JRCkKIHsKICAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIApAQCAtMzUxLDMwICsz
NTEsMzAgQEAgdm9pZCBDb25uZWN0aW9uOjplbnF1ZXVlTWF0Y2hpbmdNZXNzYWdlc1RvTWVzc2Fn
ZVJlY2VpdmVRdWV1ZShMb2NrZXI8TG9jaz4mLCBNZXMKIAogdm9pZCBDb25uZWN0aW9uOjphZGRN
ZXNzYWdlUmVjZWl2ZVF1ZXVlKE1lc3NhZ2VSZWNlaXZlUXVldWUmIHJlY2VpdmVRdWV1ZSwgUmVj
ZWl2ZXJOYW1lIHJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKIHsKLSAgICBh
dXRvIGluY29taW5nTWVzc2FnZXNMb2NrZXIgPSBob2xkTG9jayhtX2luY29taW5nTWVzc2FnZXNN
dXRleCk7Ci0gICAgZW5xdWV1ZU1hdGNoaW5nTWVzc2FnZXNUb01lc3NhZ2VSZWNlaXZlUXVldWUo
aW5jb21pbmdNZXNzYWdlc0xvY2tlciwgcmVjZWl2ZVF1ZXVlLCByZWNlaXZlck5hbWUsIGRlc3Rp
bmF0aW9uSUQpOworICAgIExvY2tlciBpbmNvbWluZ01lc3NhZ2VzTG9ja2VyIHsgbV9pbmNvbWlu
Z01lc3NhZ2VzTG9jayB9OworICAgIGVucXVldWVNYXRjaGluZ01lc3NhZ2VzVG9NZXNzYWdlUmVj
ZWl2ZVF1ZXVlKHJlY2VpdmVRdWV1ZSwgcmVjZWl2ZXJOYW1lLCBkZXN0aW5hdGlvbklEKTsKICAg
ICBtX3JlY2VpdmVRdWV1ZXMuYWRkKHJlY2VpdmVRdWV1ZSwgcmVjZWl2ZXJOYW1lLCBkZXN0aW5h
dGlvbklEKTsKIH0KIAogdm9pZCBDb25uZWN0aW9uOjphZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2
ZXIoUmVjZWl2ZXJOYW1lIHJlY2VpdmVyTmFtZSwgV29ya1F1ZXVlJiB3b3JrUXVldWUsIFdvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlciogcmVjZWl2ZXIsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCiB7
CiAgICAgYXV0byByZWNlaXZlUXVldWUgPSBtYWtlVW5pcXVlPFdvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlclF1ZXVlPih3b3JrUXVldWUsICpyZWNlaXZlcik7Ci0gICAgYXV0byBpbmNvbWluZ01lc3Nh
Z2VzTG9ja2VyID0gaG9sZExvY2sobV9pbmNvbWluZ01lc3NhZ2VzTXV0ZXgpOwotICAgIGVucXVl
dWVNYXRjaGluZ01lc3NhZ2VzVG9NZXNzYWdlUmVjZWl2ZVF1ZXVlKGluY29taW5nTWVzc2FnZXNM
b2NrZXIsICpyZWNlaXZlUXVldWUsIHJlY2VpdmVyTmFtZSwgZGVzdGluYXRpb25JRCk7CisgICAg
TG9ja2VyIGluY29taW5nTWVzc2FnZXNMb2NrZXIgeyBtX2luY29taW5nTWVzc2FnZXNMb2NrIH07
CisgICAgZW5xdWV1ZU1hdGNoaW5nTWVzc2FnZXNUb01lc3NhZ2VSZWNlaXZlUXVldWUoKnJlY2Vp
dmVRdWV1ZSwgcmVjZWl2ZXJOYW1lLCBkZXN0aW5hdGlvbklEKTsKICAgICBtX3JlY2VpdmVRdWV1
ZXMuYWRkKFdURk1vdmUocmVjZWl2ZVF1ZXVlKSwgcmVjZWl2ZXJOYW1lLCBkZXN0aW5hdGlvbklE
KTsKIH0KIAogdm9pZCBDb25uZWN0aW9uOjphZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2
ZXJOYW1lIHJlY2VpdmVyTmFtZSwgVGhyZWFkTWVzc2FnZVJlY2VpdmVyKiByZWNlaXZlciwgdWlu
dDY0X3QgZGVzdGluYXRpb25JRCkKIHsKICAgICBhdXRvIHJlY2VpdmVRdWV1ZSA9IG1ha2VVbmlx
dWU8VGhyZWFkTWVzc2FnZVJlY2VpdmVyUXVldWU+KCpyZWNlaXZlcik7Ci0gICAgYXV0byBpbmNv
bWluZ01lc3NhZ2VzTG9ja2VyID0gaG9sZExvY2sobV9pbmNvbWluZ01lc3NhZ2VzTXV0ZXgpOwot
ICAgIGVucXVldWVNYXRjaGluZ01lc3NhZ2VzVG9NZXNzYWdlUmVjZWl2ZVF1ZXVlKGluY29taW5n
TWVzc2FnZXNMb2NrZXIsICpyZWNlaXZlUXVldWUsIHJlY2VpdmVyTmFtZSwgZGVzdGluYXRpb25J
RCk7CisgICAgTG9ja2VyIGluY29taW5nTWVzc2FnZXNMb2NrZXIgeyBtX2luY29taW5nTWVzc2Fn
ZXNMb2NrIH07CisgICAgZW5xdWV1ZU1hdGNoaW5nTWVzc2FnZXNUb01lc3NhZ2VSZWNlaXZlUXVl
dWUoKnJlY2VpdmVRdWV1ZSwgcmVjZWl2ZXJOYW1lLCBkZXN0aW5hdGlvbklEKTsKICAgICBtX3Jl
Y2VpdmVRdWV1ZXMuYWRkKFdURk1vdmUocmVjZWl2ZVF1ZXVlKSwgcmVjZWl2ZXJOYW1lLCBkZXN0
aW5hdGlvbklEKTsKIH0KIAogdm9pZCBDb25uZWN0aW9uOjpyZW1vdmVNZXNzYWdlUmVjZWl2ZVF1
ZXVlKFJlY2VpdmVyTmFtZSByZWNlaXZlck5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCiB7
Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2luY29taW5nTWVzc2FnZXNNdXRleCk7Cisg
ICAgTG9ja2VyIGxvY2tlciB7IG1faW5jb21pbmdNZXNzYWdlc0xvY2sgfTsKICAgICBtX3JlY2Vp
dmVRdWV1ZXMucmVtb3ZlKHJlY2VpdmVyTmFtZSwgZGVzdGluYXRpb25JRCk7CiB9CiAKQEAgLTQ4
MSw3ICs0ODEsNyBAQCBib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKFVuaXF1ZVJlZjxFbmNv
ZGVyPiYmIGVuY29kZXIsIE9wdGlvblNldDxTZW5kT3B0aW9uPgogICAgICAgICBlbmNvZGVyLT5z
ZXRTaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseShTaG91bGREaXNw
YXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpZZXNEdXJpbmdVbmJvdW5kZWRJUEMpOwogCiAg
ICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fb3V0Z29pbmdNZXNzYWdlc011
dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fb3V0Z29pbmdNZXNzYWdlc0xvY2sgfTsK
ICAgICAgICAgbV9vdXRnb2luZ01lc3NhZ2VzLmFwcGVuZChXVEZNb3ZlKGVuY29kZXIpKTsKICAg
ICB9CiAgICAgCkBAIC01MTIsNyArNTEyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+IENv
bm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKE1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1lLCB1aW4KICAg
ICBXYWl0Rm9yTWVzc2FnZVN0YXRlIHdhaXRpbmdGb3JNZXNzYWdlKG1lc3NhZ2VOYW1lLCBkZXN0
aW5hdGlvbklELCB3YWl0Rm9yT3B0aW9ucyk7CiAKICAgICB7Ci0gICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBtX3dhaXRGb3JNZXNzYWdlTXV0ZXggfTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1f
d2FpdEZvck1lc3NhZ2VMb2NrIH07CiAKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBoYXZp
bmcgbXVsdGlwbGUgY2xpZW50cyB3YWl0aW5nIGZvciBtZXNzYWdlcy4KICAgICAgICAgQVNTRVJU
KCFtX3dhaXRpbmdGb3JNZXNzYWdlKTsKQEAgLTUyOCw3ICs1MjgsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8RGVjb2Rlcj4gQ29ubmVjdGlvbjo6d2FpdEZvck1lc3NhZ2UoTWVzc2FnZU5hbWUgbWVzc2Fn
ZU5hbWUsIHVpbgogCiAgICAgICAgIC8vIEZpcnN0LCBjaGVjayBpZiB0aGlzIG1lc3NhZ2UgaXMg
YWxyZWFkeSBpbiB0aGUgaW5jb21pbmcgbWVzc2FnZXMgcXVldWUuCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9pbmNvbWluZ01lc3NhZ2VzTXV0ZXgpOwor
ICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1faW5jb21pbmdNZXNzYWdlc0xvY2sgfTsKICAg
ICAgICAgICAgIGZvciAoYXV0byBpdCA9IG1faW5jb21pbmdNZXNzYWdlcy5iZWdpbigpLCBlbmQg
PSBtX2luY29taW5nTWVzc2FnZXMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAg
ICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiYgbWVzc2FnZSA9ICppdDsKIApAQCAtNTY0
LDcgKzU2NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9y
TWVzc2FnZShNZXNzYWdlTmFtZSBtZXNzYWdlTmFtZSwgdWluCiAgICAgICAgICAgICB3YXNNZXNz
YWdlVG9XYWl0Rm9yQWxyZWFkeURpc3BhdGNoZWQgfD0gbWVzc2FnZU5hbWUgPT0gbmFtZU9mTWVz
c2FnZVRvRGlzcGF0Y2ggJiYgZGVzdGluYXRpb25JRCA9PSBkZXN0aW5hdGlvbk9mTWVzc2FnZVRv
RGlzcGF0Y2g7CiAgICAgICAgIH0pOwogCi0gICAgICAgIExvY2tlciBsb2NrIHsgbV93YWl0Rm9y
TWVzc2FnZU11dGV4IH07CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3dhaXRGb3JNZXNzYWdl
TG9jayB9OwogCiAgICAgICAgIGlmICh3YXNNZXNzYWdlVG9XYWl0Rm9yQWxyZWFkeURpc3BhdGNo
ZWQpIHsKICAgICAgICAgICAgIG1fd2FpdGluZ0Zvck1lc3NhZ2UgPSBudWxscHRyOwpAQCAtNTg0
LDcgKzU4NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9y
TWVzc2FnZShNZXNzYWdlTmFtZSBtZXNzYWdlTmFtZSwgdWluCiAgICAgICAgIH0KIAogICAgICAg
ICAvLyBOb3cgd2Ugd2FpdC4KLSAgICAgICAgYm9vbCBkaWRUaW1lb3V0ID0gIW1fd2FpdEZvck1l
c3NhZ2VDb25kaXRpb24ud2FpdFVudGlsKG1fd2FpdEZvck1lc3NhZ2VNdXRleCwgdGltZW91dC5k
ZWFkbGluZSgpKTsKKyAgICAgICAgYm9vbCBkaWRUaW1lb3V0ID0gIW1fd2FpdEZvck1lc3NhZ2VD
b25kaXRpb24ud2FpdFVudGlsKG1fd2FpdEZvck1lc3NhZ2VMb2NrLCB0aW1lb3V0LmRlYWRsaW5l
KCkpOwogICAgICAgICAvLyBXZSB0aW1lZCBvdXQsIGxvc3Qgb3VyIGNvbm5lY3Rpb24sIG9yIGEg
c3luYyBtZXNzYWdlIGNhbWUgaW4gd2l0aCBJbnRlcnJ1cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFy
cml2ZXMsIHNvIHN0b3Agd2FpdGluZy4KICAgICAgICAgaWYgKGRpZFRpbWVvdXQgfHwgbV93YWl0
aW5nRm9yTWVzc2FnZS0+bWVzc2FnZVdhaXRpbmdJbnRlcnJ1cHRlZCkgewogICAgICAgICAgICAg
bV93YWl0aW5nRm9yTWVzc2FnZSA9IG51bGxwdHI7CkBAIC01OTgsNyArNTk4LDcgQEAgc3RkOjp1
bmlxdWVfcHRyPERlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JNZXNzYWdlKE1lc3NhZ2VOYW1l
IG1lc3NhZ2VOYW1lLCB1aW4KIGJvb2wgQ29ubmVjdGlvbjo6cHVzaFBlbmRpbmdTeW5jUmVxdWVz
dElEKFN5bmNSZXF1ZXN0SUQgc3luY1JlcXVlc3RJRCkKIHsKICAgICB7Ci0gICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBtX3N5bmNSZXBseVN0YXRlTG9jayB9OwogICAgICAgICBpZiAoIW1fc2hvdWxkV2FpdEZv
clN5bmNSZXBsaWVzKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBtX3BlbmRp
bmdTeW5jUmVwbGllcy5hcHBlbmQoUGVuZGluZ1N5bmNSZXBseShzeW5jUmVxdWVzdElEKSk7CkBA
IC02MTAsNyArNjEwLDcgQEAgYm9vbCBDb25uZWN0aW9uOjpwdXNoUGVuZGluZ1N5bmNSZXF1ZXN0
SUQoU3luY1JlcXVlc3RJRCBzeW5jUmVxdWVzdElEKQogdm9pZCBDb25uZWN0aW9uOjpwb3BQZW5k
aW5nU3luY1JlcXVlc3RJRChTeW5jUmVxdWVzdElEIHN5bmNSZXF1ZXN0SUQpCiB7CiAgICAgLS1t
X2luU2VuZFN5bmNDb3VudDsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N5bmNSZXBseVN0YXRl
TXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBtX3N5bmNSZXBseVN0YXRlTG9jayB9OwogICAg
IEFTU0VSVF9VTlVTRUQoc3luY1JlcXVlc3RJRCwgbV9wZW5kaW5nU3luY1JlcGxpZXMubGFzdCgp
LnN5bmNSZXF1ZXN0SUQgPT0gc3luY1JlcXVlc3RJRCk7CiAgICAgbV9wZW5kaW5nU3luY1JlcGxp
ZXMucmVtb3ZlTGFzdCgpOwogfQpAQCAtNjY1LDcgKzY2NSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxE
ZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KFN5bmNSZXF1ZXN0SUQgc3luY1Jl
cXVlc3RJCiAgICAgICAgIFN5bmNNZXNzYWdlU3RhdGU6OnNpbmdsZXRvbigpLmRpc3BhdGNoTWVz
c2FnZXMoKTsKICAgICAgICAgCiAgICAgICAgIHsKLSAgICAgICAgICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fc3luY1JlcGx5U3RhdGVNdXRleCk7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
bV9zeW5jUmVwbHlTdGF0ZUxvY2sgfTsKIAogICAgICAgICAgICAgLy8gU2Vjb25kLCBjaGVjayBp
ZiB0aGVyZSBpcyBhIHN5bmMgcmVwbHkgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suCiAgICAgICAg
ICAgICBBU1NFUlQoIW1fcGVuZGluZ1N5bmNSZXBsaWVzLmlzRW1wdHkoKSk7CkBAIC03MTAsNyAr
NzEwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5j
UmVwbHkoU3luY1JlcXVlc3RJRCBzeW5jUmVxdWVzdEkKIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vz
c0luY29taW5nU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBkZWNvZGVyKQogewog
ICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fc3luY1JlcGx5U3RhdGVMb2NrIH07CiAKICAgICAg
ICAgLy8gR28gdGhyb3VnaCB0aGUgc3RhY2sgb2Ygc3luYyByZXF1ZXN0cyB0aGF0IGhhdmUgcGVu
ZGluZyByZXBsaWVzIGFuZCBzZWUgd2hpY2ggb25lCiAgICAgICAgIC8vIHRoaXMgcmVwbHkgaXMg
Zm9yLgpAQCAtNzU0LDE2ICs3NTQsMTYgQEAgdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21p
bmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBtZXNzYWdlKQogICAgIH0KIAogICAg
IC8vIEZJWE1FOiBUaGVzZSBhcmUgcHJhY3RpY2FsbHkgdGhlIHNhbWUgbXV0ZXgsIHNvIG1heWJl
IHRoZXkgY291bGQgYmUgbWVyZ2VkLgotICAgIExvY2tlciB3YWl0Rm9yTWVzc2FnZXNMb2NrZXIg
eyBtX3dhaXRGb3JNZXNzYWdlTXV0ZXggfTsKKyAgICBMb2NrZXIgd2FpdEZvck1lc3NhZ2VzTG9j
a2VyIHsgbV93YWl0Rm9yTWVzc2FnZUxvY2sgfTsKIAotICAgIGF1dG8gaW5jb21pbmdNZXNzYWdl
c0xvY2tlciA9IGhvbGRMb2NrKG1faW5jb21pbmdNZXNzYWdlc011dGV4KTsKKyAgICBMb2NrZXIg
aW5jb21pbmdNZXNzYWdlc0xvY2tlciB7IG1faW5jb21pbmdNZXNzYWdlc0xvY2sgfTsKICAgICBp
ZiAoYXV0byogcmVjZWl2ZVF1ZXVlID0gbV9yZWNlaXZlUXVldWVzLmdldCgqbWVzc2FnZSkpIHsK
ICAgICAgICAgcmVjZWl2ZVF1ZXVlLT5lbnF1ZXVlTWVzc2FnZSgqdGhpcywgV1RGTW92ZShtZXNz
YWdlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobWVzc2FnZS0+aXNTeW5j
TWVzc2FnZSgpKSB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9pbmNvbWluZ1N5
bmNNZXNzYWdlQ2FsbGJhY2tNdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2luY29t
aW5nU3luY01lc3NhZ2VDYWxsYmFja0xvY2sgfTsKIAogICAgICAgICBmb3IgKGF1dG8mIGNhbGxi
YWNrIDogbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tzLnZhbHVlcygpKQogICAgICAgICAg
ICAgbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZS0+ZGlzcGF0Y2goV1RGTW92ZShj
YWxsYmFjaykpOwpAQCAtODA0LDcgKzgwNCw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0lu
Y29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVzc2FnZSkKIAogdWludDY0
X3QgQ29ubmVjdGlvbjo6aW5zdGFsbEluY29taW5nU3luY01lc3NhZ2VDYWxsYmFjayhXVEY6OkZ1
bmN0aW9uPHZvaWQgKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhtX2luY29taW5nU3luY01lc3NhZ2VDYWxsYmFja011dGV4KTsKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tMb2NrIH07CiAKICAgICBtX25leHRJbmNv
bWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tJRCsrOwogCkBAIC04MTgsMTMgKzgxOCwxMyBAQCB1aW50
NjRfdCBDb25uZWN0aW9uOjppbnN0YWxsSW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrKFdURjo6
RnVuY3Rpb248dm9pZCAoKT4mJgogCiB2b2lkIENvbm5lY3Rpb246OnVuaW5zdGFsbEluY29taW5n
U3luY01lc3NhZ2VDYWxsYmFjayh1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tNdXRleCk7CisgICAg
TG9ja2VyIGxvY2tlciB7IG1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrTG9jayB9OwogICAg
IG1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrcy5yZW1vdmUoY2FsbGJhY2tJRCk7CiB9CiAK
IGJvb2wgQ29ubmVjdGlvbjo6aGFzSW5jb21pbmdTeW5jTWVzc2FnZSgpCiB7Ci0gICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX2luY29taW5nTWVzc2FnZXNNdXRleCk7CisgICAgTG9ja2VyIGxv
Y2tlciB7IG1faW5jb21pbmdNZXNzYWdlc0xvY2sgfTsKIAogICAgIGZvciAoYXV0byYgbWVzc2Fn
ZSA6IG1faW5jb21pbmdNZXNzYWdlcykgewogICAgICAgICBpZiAobWVzc2FnZS0+aXNTeW5jTWVz
c2FnZSgpKQpAQCAtODYyLDcgKzg2Miw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkRp
ZENsb3NlKCkKICAgICBwbGF0Zm9ybUludmFsaWRhdGUoKTsKIAogICAgIHsKLSAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9zeW5jUmVwbHlTdGF0ZU11dGV4KTsKKyAgICAgICAgTG9ja2VyIGxv
Y2tlciB7IG1fc3luY1JlcGx5U3RhdGVMb2NrIH07CiAKICAgICAgICAgQVNTRVJUKG1fc2hvdWxk
V2FpdEZvclN5bmNSZXBsaWVzKTsKICAgICAgICAgbV9zaG91bGRXYWl0Rm9yU3luY1JlcGxpZXMg
PSBmYWxzZTsKQEAgLTg3Miw3ICs4NzIsNyBAQCB2b2lkIENvbm5lY3Rpb246OmNvbm5lY3Rpb25E
aWRDbG9zZSgpCiAgICAgfQogCiAgICAgewotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV93YWl0
Rm9yTWVzc2FnZU11dGV4IH07CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3dhaXRGb3JNZXNz
YWdlTG9jayB9OwogCiAgICAgICAgIEFTU0VSVChtX3Nob3VsZFdhaXRGb3JNZXNzYWdlcyk7CiAg
ICAgICAgIG1fc2hvdWxkV2FpdEZvck1lc3NhZ2VzID0gZmFsc2U7CkBAIC05MTUsNyArOTE1LDcg
QEAgdm9pZCBDb25uZWN0aW9uOjpzZW5kT3V0Z29pbmdNZXNzYWdlcygpCiAgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxFbmNvZGVyPiBtZXNzYWdlOwogCiAgICAgICAgIHsKLSAgICAgICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9vdXRnb2luZ01lc3NhZ2VzTXV0ZXgpOworICAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fb3V0Z29pbmdNZXNzYWdlc0xvY2sgfTsKICAgICAgICAgICAg
IGlmIChtX291dGdvaW5nTWVzc2FnZXMuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgbWVzc2FnZSA9IG1fb3V0Z29pbmdNZXNzYWdlcy50YWtlRmlyc3QoKS5t
b3ZlVG9VbmlxdWVQdHIoKTsKQEAgLTk5Miw3ICs5OTIsNyBAQCB2b2lkIENvbm5lY3Rpb246OmRp
ZEZhaWxUb1NlbmRTeW5jTWVzc2FnZSgpCiAKIHZvaWQgQ29ubmVjdGlvbjo6ZW5xdWV1ZUluY29t
aW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gaW5jb21pbmdNZXNzYWdlKQogewot
ICAgIEFTU0VSVChtX2luY29taW5nTWVzc2FnZXNNdXRleC5pc0hlbGQoKSk7CisgICAgQVNTRVJU
KG1faW5jb21pbmdNZXNzYWdlc0xvY2suaXNIZWxkKCkpOwogICAgIHsKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICAgICAgaWYgKG1fd2FzS2lsbGVkKQpAQCAtMTA2NCw3ICsxMDY0LDcgQEAgdm9p
ZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+IG1l
c3NhZ2UpCiAgICAgICAgIC8vIFN5bmNTdGF0ZTo6bV9tZXNzYWdlc1RvRGlzcGF0Y2hXaGlsZVdh
aXRpbmdGb3JTeW5jUmVwbHkgd2hpbGUgb3RoZXJzCiAgICAgICAgIC8vIGdvIHRvIENvbm5lY3Rp
b246Om1faW5jb21pbmdNZXNzYWdlcy4gU2hvdWxkIGJlIGZpeGVkIGJ5IGFkZGluZyBhbGwKICAg
ICAgICAgLy8gbWVzc2FnZXMgdG8gb25lIGxpc3QuCi0gICAgICAgIGF1dG8gaW5jb21pbmdNZXNz
YWdlc0xvY2tlciA9IGhvbGRMb2NrKG1faW5jb21pbmdNZXNzYWdlc011dGV4KTsKKyAgICAgICAg
TG9ja2VyIGluY29taW5nTWVzc2FnZXNMb2NrZXIgeyBtX2luY29taW5nTWVzc2FnZXNMb2NrIH07
CiAgICAgICAgIGlmIChhdXRvKiByZWNlaXZlUXVldWUgPSBtX3JlY2VpdmVRdWV1ZXMuZ2V0KCpt
ZXNzYWdlKSkgewogICAgICAgICAgICAgcmVjZWl2ZVF1ZXVlLT5lbnF1ZXVlTWVzc2FnZSgqdGhp
cywgV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMTU1LDcgKzEx
NTUsNyBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoT25lSW5jb21pbmdNZXNzYWdlKCkKIHsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVzc2FnZTsKICAgICB7Ci0gICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9pbmNvbWluZ01lc3NhZ2VzTXV0ZXgpOworICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9pbmNvbWluZ01lc3NhZ2VzTG9jayB9OwogICAgICAgICBpZiAobV9p
bmNvbWluZ01lc3NhZ2VzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTE3
Myw3ICsxMTczLDcgQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaEluY29taW5nTWVzc2FnZXMo
KQogCiAgICAgc2l6ZV90IG1lc3NhZ2VzVG9Qcm9jZXNzID0gMDsKICAgICB7Ci0gICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9pbmNvbWluZ01lc3NhZ2VzTXV0ZXgpOworICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9pbmNvbWluZ01lc3NhZ2VzTG9jayB9OwogICAgICAgICBpZiAobV9p
bmNvbWluZ01lc3NhZ2VzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTIw
MSw3ICsxMjAxLDcgQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaEluY29taW5nTWVzc2FnZXMo
KQogCiAgICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBtZXNzYWdlc1RvUHJvY2VzczsgKytpKSB7
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9pbmNvbWlu
Z01lc3NhZ2VzTXV0ZXgpOworICAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1faW5jb21pbmdN
ZXNzYWdlc0xvY2sgfTsKICAgICAgICAgICAgIGlmIChtX2luY29taW5nTWVzc2FnZXMuaXNFbXB0
eSgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5oCmluZGV4IDllNDRhY2FiYzFjNTkxNWY5NjgzYTBhOWIxYmY0OWM0NWE3ODgx
MTAuLmMwZDU0ZTYzNTA2MTFiOWQwNmFlZTc1YWM5Njk2ZDMyOTYwNjk5MWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRl
IDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvT2JqZWN0SWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgpAQCAtMzM0LDcgKzMzMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3BQZW5kaW5n
U3luY1JlcXVlc3RJRChTeW5jUmVxdWVzdElEKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rl
cj4gd2FpdEZvclN5bmNSZXBseShTeW5jUmVxdWVzdElELCBNZXNzYWdlTmFtZSwgVGltZW91dCwg
T3B0aW9uU2V0PFNlbmRTeW5jT3B0aW9uPik7CiAKLSAgICB2b2lkIGVucXVldWVNYXRjaGluZ01l
c3NhZ2VzVG9NZXNzYWdlUmVjZWl2ZVF1ZXVlKExvY2tlcjxMb2NrPiYgaW5jb21pbmdNZXNzYWdl
c0xvY2tlciwgTWVzc2FnZVJlY2VpdmVRdWV1ZSYsIFJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVz
dGluYXRpb25JRCk7CisgICAgdm9pZCBlbnF1ZXVlTWF0Y2hpbmdNZXNzYWdlc1RvTWVzc2FnZVJl
Y2VpdmVRdWV1ZShNZXNzYWdlUmVjZWl2ZVF1ZXVlJiwgUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBk
ZXN0aW5hdGlvbklEKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2luY29taW5nTWVzc2FnZXNMb2NrKTsK
IAogICAgIC8vIENhbGxlZCBvbiB0aGUgY29ubmVjdGlvbiB3b3JrIHF1ZXVlLgogICAgIHZvaWQg
cHJvY2Vzc0luY29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4pOwpAQCAtMzU1
LDcgKzM1NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGYWlsVG9TZW5kU3luY01lc3NhZ2Uo
KTsKIAogICAgIC8vIENhbiBiZSBjYWxsZWQgb24gYW55IHRocmVhZC4KLSAgICB2b2lkIGVucXVl
dWVJbmNvbWluZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+KTsKKyAgICB2b2lkIGVu
cXVldWVJbmNvbWluZ01lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+KSBXVEZfUkVRVUlS
RVNfTE9DSyhtX2luY29taW5nTWVzc2FnZXNMb2NrKTsKICAgICBzaXplX3QgaW5jb21pbmdNZXNz
YWdlc0Rpc3BhdGNoaW5nQmF0Y2hTaXplKCkgY29uc3Q7CiAKICAgICB2b2lkIHdpbGxTZW5kU3lu
Y01lc3NhZ2UoT3B0aW9uU2V0PFNlbmRTeW5jT3B0aW9uPik7CkBAIC00MDUsMzMgKzQwNCwzMyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UgeyBmYWxzZSB9
OwogCiAgICAgLy8gSW5jb21pbmcgbWVzc2FnZXMuCi0gICAgTG9jayBtX2luY29taW5nTWVzc2Fn
ZXNNdXRleDsKLSAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4+IG1faW5jb21pbmdN
ZXNzYWdlczsKKyAgICBDaGVja2VkTG9jayBtX2luY29taW5nTWVzc2FnZXNMb2NrOworICAgIERl
cXVlPHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPj4gbV9pbmNvbWluZ01lc3NhZ2VzIFdURl9HVUFS
REVEX0JZX0xPQ0sobV9pbmNvbWluZ01lc3NhZ2VzTG9jayk7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VzVGhyb3R0bGVyPiBtX2luY29taW5nTWVzc2FnZXNUaHJvdHRsZXI7Ci0gICAgTWVz
c2FnZVJlY2VpdmVRdWV1ZU1hcCBtX3JlY2VpdmVRdWV1ZXM7CisgICAgTWVzc2FnZVJlY2VpdmVR
dWV1ZU1hcCBtX3JlY2VpdmVRdWV1ZXMgV1RGX0dVQVJERURfQllfTE9DSyhtX2luY29taW5nTWVz
c2FnZXNMb2NrKTsKIAogICAgIC8vIE91dGdvaW5nIG1lc3NhZ2VzLgotICAgIExvY2sgbV9vdXRn
b2luZ01lc3NhZ2VzTXV0ZXg7Ci0gICAgRGVxdWU8VW5pcXVlUmVmPEVuY29kZXI+PiBtX291dGdv
aW5nTWVzc2FnZXM7CisgICAgQ2hlY2tlZExvY2sgbV9vdXRnb2luZ01lc3NhZ2VzTG9jazsKKyAg
ICBEZXF1ZTxVbmlxdWVSZWY8RW5jb2Rlcj4+IG1fb3V0Z29pbmdNZXNzYWdlcyBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fb3V0Z29pbmdNZXNzYWdlc0xvY2spOwogCiAgICAgQ2hlY2tlZENvbmRpdGlv
biBtX3dhaXRGb3JNZXNzYWdlQ29uZGl0aW9uOwotICAgIENoZWNrZWRMb2NrIG1fd2FpdEZvck1l
c3NhZ2VNdXRleDsKKyAgICBDaGVja2VkTG9jayBtX3dhaXRGb3JNZXNzYWdlTG9jazsKIAogICAg
IHN0cnVjdCBXYWl0Rm9yTWVzc2FnZVN0YXRlOwotICAgIFdhaXRGb3JNZXNzYWdlU3RhdGUqIG1f
d2FpdGluZ0Zvck1lc3NhZ2UgV1RGX0dVQVJERURfQllfTE9DSyhtX3dhaXRGb3JNZXNzYWdlTXV0
ZXgpIHsgbnVsbHB0ciB9OyAvLyBOT0xJTlQKKyAgICBXYWl0Rm9yTWVzc2FnZVN0YXRlKiBtX3dh
aXRpbmdGb3JNZXNzYWdlIFdURl9HVUFSREVEX0JZX0xPQ0sobV93YWl0Rm9yTWVzc2FnZUxvY2sp
IHsgbnVsbHB0ciB9OyAvLyBOT0xJTlQKIAogICAgIGNsYXNzIFN5bmNNZXNzYWdlU3RhdGU7CiAK
LSAgICBMb2NrIG1fc3luY1JlcGx5U3RhdGVNdXRleDsKLSAgICBib29sIG1fc2hvdWxkV2FpdEZv
clN5bmNSZXBsaWVzIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9zaG91bGRXYWl0Rm9yTWVzc2FnZXMg
V1RGX0dVQVJERURfQllfTE9DSyhtX3dhaXRGb3JNZXNzYWdlTXV0ZXgpIHsgdHJ1ZSB9OworICAg
IENoZWNrZWRMb2NrIG1fc3luY1JlcGx5U3RhdGVMb2NrOworICAgIGJvb2wgbV9zaG91bGRXYWl0
Rm9yU3luY1JlcGxpZXMgV1RGX0dVQVJERURfQllfTE9DSyhtX3N5bmNSZXBseVN0YXRlTG9jaykg
eyB0cnVlIH07CisgICAgYm9vbCBtX3Nob3VsZFdhaXRGb3JNZXNzYWdlcyBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fd2FpdEZvck1lc3NhZ2VMb2NrKSB7IHRydWUgfTsKICAgICBzdHJ1Y3QgUGVuZGlu
Z1N5bmNSZXBseTsKLSAgICBWZWN0b3I8UGVuZGluZ1N5bmNSZXBseT4gbV9wZW5kaW5nU3luY1Jl
cGxpZXM7CisgICAgVmVjdG9yPFBlbmRpbmdTeW5jUmVwbHk+IG1fcGVuZGluZ1N5bmNSZXBsaWVz
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9zeW5jUmVwbHlTdGF0ZUxvY2spOwogCi0gICAgTG9jayBt
X2luY29taW5nU3luY01lc3NhZ2VDYWxsYmFja011dGV4OwotICAgIEhhc2hNYXA8dWludDY0X3Qs
IFdURjo6RnVuY3Rpb248dm9pZCgpPj4gbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tzOwot
ICAgIFJlZlB0cjxXb3JrUXVldWU+IG1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrUXVldWU7
Ci0gICAgdWludDY0X3QgbV9uZXh0SW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrSUQgeyAwIH07
CisgICAgQ2hlY2tlZExvY2sgbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tMb2NrOworICAg
IEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZCgpPj4gbV9pbmNvbWluZ1N5bmNN
ZXNzYWdlQ2FsbGJhY2tzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9pbmNvbWluZ1N5bmNNZXNzYWdl
Q2FsbGJhY2tMb2NrKTsKKyAgICBSZWZQdHI8V29ya1F1ZXVlPiBtX2luY29taW5nU3luY01lc3Nh
Z2VDYWxsYmFja1F1ZXVlIFdURl9HVUFSREVEX0JZX0xPQ0sobV9pbmNvbWluZ1N5bmNNZXNzYWdl
Q2FsbGJhY2tMb2NrKTsKKyAgICB1aW50NjRfdCBtX25leHRJbmNvbWluZ1N5bmNNZXNzYWdlQ2Fs
bGJhY2tJRCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNr
TG9jaykgeyAwIH07CiAKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIFZlY3RvcjxX
ZWFrUHRyPE1lc3NhZ2VPYnNlcnZlcj4+IG1fbWVzc2FnZU9ic2VydmVyczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>