<?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>179936</bug_id>
          
          <creation_ts>2017-11-21 22:16:38 -0800</creation_ts>
          <short_desc>Fix CLoop::sanitizeStack() bug where it was clearing part of the JS stack in use.</short_desc>
          <delta_ts>2017-11-24 13:06:43 -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 Local 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>aestes</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1374136</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-21 22:16:38 -0800</bug_when>
    <thetext>This issue was uncovered when we enabled --useDollarVM=true on the JSC tests.

Basically, the case of the failing test we observed, op_tail_call_forward_arguments was allocating stack space to stash the arguments (to be forwarded) and new frame info.  The location of this new stash space happens to lie beyond the top of frame of the tail call caller frame.  After stashing the arguments, the code proceeded to load the callee codeBlock.  This triggers an allocation, which in turn, triggers stack sanitization.  The CLoop stack sanitizer was relying on frame-&gt;topOfFrame() to tell it where the top of the used stack is.  In this case, that turned out to be inadequate.  As a result, part of the stashed data was zeroed out, and subsequently led to a crash.

This bug does not affect JIT builds for 2 reasons:
1. JIT builds do stack sanitization in the LLInt code itself (different from the CLoop implementation), and the sanitizer there is aware of the true top of stack value (i.e. the stack pointer).
2. JIT builds don&apos;t use a parallel stack like the CLoop.  The parallel stack is one condition necessary for reproducing this issue.

The fix is to make the CLoop record the stack pointer in m_stackTop each time before it calls out to native code.  This also brings the CLoops behavior closer to hardware behavior where we always know where the stack pointer is after calling into native C++ code, and make it easier to reason about correctness.

&lt;rdar://problem/35623998&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374156</commentid>
    <comment_count>1</comment_count>
      <attachid>327446</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-21 23:50:59 -0800</bug_when>
    <thetext>Created attachment 327446
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374630</commentid>
    <comment_count>2</comment_count>
      <attachid>327446</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-24 12:40:48 -0800</bug_when>
    <thetext>Comment on attachment 327446
proposed patch.

View in context: https://bugs.webkit.org/attachment.cgi?id=327446&amp;action=review

&gt; Source/JavaScriptCore/ChangeLog:43
&gt; +            highAddress(): the highest address just beyond the bounds of the stack.

So this value minus one is the stack base?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374632</commentid>
    <comment_count>3</comment_count>
      <attachid>327446</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-24 13:02:04 -0800</bug_when>
    <thetext>Comment on attachment 327446
proposed patch.

Clearing flags on attachment: 327446

Committed r225140: &lt;https://trac.webkit.org/changeset/225140&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374633</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-24 13:02:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374634</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-24 13:06:43 -0800</bug_when>
    <thetext>(In reply to Saam Barati from comment #2)
&gt; Comment on attachment 327446 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=327446&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:43
&gt; &gt; +            highAddress(): the highest address just beyond the bounds of the stack.
&gt; 
&gt; So this value minus one is the stack base?

highAddress() points just beyond the stack.
highAddress() - 1 points to the first Register slot on the stack.
If the stackPointer points to highAddress(), then the stack is empty.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327446</attachid>
            <date>2017-11-21 23:50:59 -0800</date>
            <delta_ts>2017-11-24 13:02:04 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-179936.patch</filename>
            <type>text/plain</type>
            <size>16423</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI1MDkzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg5IEBA
CisyMDE3LTExLTIxICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggQ0xvb3A6OnNhbml0aXplU3RhY2soKSBidWcgd2hlcmUgaXQgd2FzIGNsZWFyaW5nIHBhcnQg
b2YgdGhlIEpTIHN0YWNrIGluIHVzZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3OTkzNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU2MjM5OTg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBp
c3N1ZSB3YXMgdW5jb3ZlcmVkIHdoZW4gd2UgZW5hYmxlZCAtLXVzZURvbGxhclZNPXRydWUgb24g
dGhlIEpTQyB0ZXN0cy4KKyAgICAgICAgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzk2ODQuCisKKyAgICAgICAgQmFzaWNhbGx5LCBpbiB0aGUgY2FzZSBvZiB0
aGUgZmFpbGluZyB0ZXN0IHdlIG9ic2VydmVkLCBvcF90YWlsX2NhbGxfZm9yd2FyZF9hcmd1bWVu
dHMKKyAgICAgICAgd2FzIGFsbG9jYXRpbmcgc3RhY2sgc3BhY2UgdG8gc3Rhc2ggYXJndW1lbnRz
ICh0byBiZSBmb3J3YXJkZWQpIGFuZCBuZXcgZnJhbWUKKyAgICAgICAgaW5mby4gIFRoZSBsb2Nh
dGlvbiBvZiB0aGlzIG5ldyBzdGFzaCBzcGFjZSBoYXBwZW5zIHRvIGxpZSBiZXlvbmQgdGhlIHRv
cCBvZiBmcmFtZQorICAgICAgICBvZiB0aGUgdGFpbCBjYWxsIGNhbGxlciBmcmFtZS4gIEFmdGVy
IHN0YXNoaW5nIHRoZSBhcmd1bWVudHMsIHRoZSBjb2RlIHByb2NlZWRlZAorICAgICAgICB0byBs
b2FkIHRoZSBjYWxsZWUgY29kZUJsb2NrLiAgVGhpcyB0cmlnZ2VyZWQgYW4gYWxsb2NhdGlvbiwg
d2hpY2ggaW4gdHVybiwKKyAgICAgICAgdHJpZ2dlcmVkIHN0YWNrIHNhbml0aXphdGlvbi4gIFRo
ZSBDTG9vcCBzdGFjayBzYW5pdGl6ZXIgd2FzIHJlbHlpbmcgb24KKyAgICAgICAgZnJhbWUtPnRv
cE9mRnJhbWUoKSB0byB0ZWxsIGl0IHdoZXJlIHRoZSB0b3Agb2YgdGhlIHVzZWQgc3RhY2sgaXMu
ICBJbiB0aGlzIGNhc2UsCisgICAgICAgIHRoYXQgdHVybmVkIG91dCB0byBiZSBpbmFkZXF1YXRl
LiAgQXMgYSByZXN1bHQsIHBhcnQgb2YgdGhlIHN0YXNoZWQgZGF0YSB3YXMKKyAgICAgICAgemVy
b2VkIG91dCwgYW5kIHN1YnNlcXVlbnRseSBsZWQgdG8gYSBjcmFzaC4KKworICAgICAgICBUaGlz
IGJ1ZyBkb2VzIG5vdCBhZmZlY3QgSklUIGJ1aWxkcyAoaS5lLiB0aGUgQVNNIExMaW50KSBmb3Ig
MiByZWFzb25zOgorICAgICAgICAxLiBKSVQgYnVpbGRzIGRvIHN0YWNrIHNhbml0aXphdGlvbiBp
biB0aGUgTExJbnQgY29kZSBpdHNlbGYgKGRpZmZlcmVudCBmcm9tIHRoZQorICAgICAgICAgICBD
TG9vcCBpbXBsZW1lbnRhdGlvbiksIGFuZCB0aGUgc2FuaXRpemVyIHRoZXJlIGlzIGF3YXJlIG9m
IHRoZSB0cnVlIHRvcCBvZgorICAgICAgICAgICBzdGFjayB2YWx1ZSAoaS5lLiB0aGUgc3RhY2sg
cG9pbnRlcikuCisgICAgICAgIDIuIEpJVCBidWlsZHMgZG9uJ3QgdXNlIGEgcGFyYWxsZWwgc3Rh
Y2sgbGlrZSB0aGUgQ0xvb3AuICBUaGUgcHJlc2VuY2Ugb2YgdGhlCisgICAgICAgICAgIHBhcmFs
bGVsIHN0YWNrIGlzIG9uZSBjb25kaXRpb24gbmVjZXNzYXJ5IGZvciByZXByb2R1Y2luZyB0aGlz
IGlzc3VlLgorCisgICAgICAgIFRoZSBmaXggaXMgdG8gbWFrZSB0aGUgQ0xvb3AgcmVjb3JkIHRo
ZSBzdGFjayBwb2ludGVyIGluIENMb29wU3RhY2s6Om1fY3VycmVudFN0YWNrUG9pbnRlcgorICAg
ICAgICBldmVyeSB0aW1lIGJlZm9yZSBpdCBjYWxscyBvdXQgdG8gbmF0aXZlIEMrKyBjb2RlLiAg
VGhpcyBhbHNvIGJyaW5ncyB0aGUgQ0xvb3AncworICAgICAgICBiZWhhdmlvciBjbG9zZXIgdG8g
aGFyZHdhcmUgYmVoYXZpb3Igd2hlcmUgd2UgY2FuIGtub3cgd2hlcmUgdGhlIHN0YWNrIHBvaW50
ZXIKKyAgICAgICAgaXMgYWZ0ZXIgY2FsbGluZyBmcm9tIEpTIGJhY2sgaW50byBuYXRpdmUgQysr
IGNvZGUsIHdoaWNoIG1ha2VzIGl0IGVhc2llciB0bworICAgICAgICByZWFzb24gYWJvdXQgY29y
cmVjdG5lc3MuICAgICAgIAorCisgICAgICAgIEFsc28gc2ltcGxpZmllZCB0aGUgdmFyaW91cyBz
dGFjayBib3VuZGFyeSBjYWxjdWxhdGlvbnMgKHJlbW92ZWQgdGhlICsxIGFuZCAtMQorICAgICAg
ICBhZGp1c3RtZW50cykuICBUaGUgQ0xvb3BTdGFjayBib3VuZHMgYXJlIG5vdzoKKworICAgICAg
ICAgICAgcmVzZXJ2YXRpb25Ub3AoKTogdGhlIGxvd2VzdCByZXNlcnZlZCBhZGRyZXNzIHRoYXQg
Y2FuIGJlIHdpdGhpbiBzdGFjayBib3VuZHMuCisgICAgICAgICAgICBtX2NvbW1pdFRvcDogdGhl
IGxvd2VzdCBhZGRyZXNzIHdpdGhpbiBzdGFjayBib3VuZHMgdGhhdCBoYXMgYmVlbiBjb21taXR0
ZWQuCisgICAgICAgICAgICBsb3dBZGRyZXNzKCkgYWthIG1fZW5kOiB0aGUgbG93ZXN0IHN0YWNr
IGFkZHJlc3MgdGhhdCBKUyBjb2RlIGNhbiB1c2UuCisgICAgICAgICAgICBtX2xhc3RTdGFja1Bv
aW50ZXI6IGNhY2hlIG9mIHRoZSBsYXN0IG1fY3VycmVudFN0YWNrUG9pbnRlciB2YWx1ZS4KKyAg
ICAgICAgICAgIG1fY3VycmVudFN0YWNrUG9pbnRlcjogdGhlIENMb29wU3RhY2sgc3RhY2sgcG9p
bnRlciB2YWx1ZSB3aGVuIGNhbGxpbmcgZnJvbSBKUyBpbnRvIEMrKyBjb2RlLgorICAgICAgICAg
ICAgaGlnaEFkZHJlc3MoKTogdGhlIGhpZ2hlc3QgYWRkcmVzcyBqdXN0IGJleW9uZCB0aGUgYm91
bmRzIG9mIHRoZSBzdGFjay4KKworICAgICAgICBBbHNvIGRlbGV0ZWQgc29tZSB1bm5lZWRlZCBj
b2RlLgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvQ0xvb3BTdGFjay5jcHA6CisgICAgICAgIChK
U0M6OkNMb29wU3RhY2s6OkNMb29wU3RhY2spOgorICAgICAgICAoSlNDOjpDTG9vcFN0YWNrOjpn
YXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6OkNMb29wU3RhY2s6OnNhbml0
aXplU3RhY2spOgorICAgICAgICAoSlNDOjpDTG9vcFN0YWNrOjpzZXRTb2Z0UmVzZXJ2ZWRab25l
U2l6ZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ0xvb3BTdGFjay5oOgorICAgICAgICAoSlND
OjpDTG9vcFN0YWNrOjpzZXRDdXJyZW50U3RhY2tQb2ludGVyKToKKyAgICAgICAgKEpTQzo6Q0xv
b3BTdGFjazo6bG93QWRkcmVzcyBjb25zdCk6CisKKyAgICAgICAgKEpTQzo6Q0xvb3BTdGFjazo6
YmFzZU9mU3RhY2sgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAtIE5vdCBuZWVkZWQgYWZ0ZXIg
d2Ugc2ltcGxpZmllZCB0aGUgY29kZSBhbmQgcmVtb3ZlZCBhbGwgdGhlICsxLy0xIGFkanVzdG1l
bnRzLgorICAgICAgICAgIE5vdywgaXQgaGFzIHRoZSBleGFjdCBzYW1lIHZhbHVlIGFzIGhpZ2hB
ZGRyZXNzKCkgYW5kIGNhbiBiZSByZW1vdmVkLgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvQ0xv
b3BTdGFja0lubGluZXMuaDoKKyAgICAgICAgKEpTQzo6Q0xvb3BTdGFjazo6ZW5zdXJlQ2FwYWNp
dHlGb3IpOgorICAgICAgICAoSlNDOjpDTG9vcFN0YWNrOjpjdXJyZW50U3RhY2tQb2ludGVyKToK
KyAgICAgICAgKEpTQzo6Q0xvb3BTdGFjazo6c2V0Q0xvb3BTdGFja0xpbWl0KToKKworICAgICAg
ICAoSlNDOjpDTG9vcFN0YWNrOjp0b3BPZkZyYW1lRm9yKTogRGVsZXRlZC4KKyAgICAgICAgLSBO
b3QgbmVlZGVkLgorCisgICAgICAgIChKU0M6OkNMb29wU3RhY2s6OnRvcE9mU3RhY2spOiBEZWxl
dGVkLgorICAgICAgICAtIFN1cHBsYW50ZWQgYnkgY3VycmVudFN0YWNrUG9pbnRlcigpLgorCisg
ICAgICAgIChKU0M6OkNMb29wU3RhY2s6OnNocmluayk6IERlbGV0ZWQuCisgICAgICAgIC0gVGhp
cyBpcyB1bnVzZWQuCisKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6Q0xvb3A6OmV4ZWN1dGUpOgorICAgICAgICAtIEludHJvZHVjZSBhIFN0
YWNrUG9pbnRlclNjb3BlIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIENMb29wU3RhY2s6Om1fY3Vy
cmVudFN0YWNrUG9pbnRlcgorICAgICAgICAgIHVwb24gZXhpdHRpbmcgdGhlIGludGVycHJldGVy
IGxvb3AuCisKKyAgICAgICAgKiBvZmZsaW5lYXNtL2Nsb29wLnJiOgorICAgICAgICAtIEFkZGVk
IHNldHRpbmcgb2YgQ0xvb3BTdGFjazo6bV9jdXJyZW50U3RhY2tQb2ludGVyIGF0IGJvdW5kYXJ5
IHBvaW50cyB3aGVyZSB3ZQorICAgICAgICAgIGNhbGwgZnJvbSBKUyBpbnRvIEMrKyBjb2RlLgor
CisgICAgICAgICogdG9vbHMvVk1JbnNwZWN0b3IuaDoKKyAgICAgICAgLSBBZGRlZCBzb21lIGRl
ZmF1bHQgYXJndW1lbnQgdmFsdWVzLiBUaGVzZSB3ZXJlIGJlaW5nIHVzZWQgd2hpbGUgZGVidWdn
aW5nIHRoaXMKKyAgICAgICAgICBpc3N1ZS4KKwogMjAxNy0xMS0yMSAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBmb3IgbW9yZSBlZmZpY2ll
bnQgdXNlIG9mIEdlbmVyaWNUeXBlZEFycmF5VmlldwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0NMb29wU3RhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9DTG9vcFN0YWNrLmNwcAkocmV2aXNpb24gMjI1MDU2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NMb29wU3RhY2suY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
My0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNTMsMTcgKzUzLDE5IEBAIHN0YXRpYyBTdGF0aWNMb2NrIHN0
YWNrU3RhdGlzdGljc011dGV4OwogQ0xvb3BTdGFjazo6Q0xvb3BTdGFjayhWTSYgdm0pCiAgICAg
OiBtX3ZtKHZtKQogICAgICwgbV90b3BDYWxsRnJhbWUodm0udG9wQ2FsbEZyYW1lKQotICAgICwg
bV9lbmQoMCkKICAgICAsIG1fc29mdFJlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVycygwKQogewog
ICAgIHNpemVfdCBjYXBhY2l0eSA9IE9wdGlvbnM6Om1heFBlclRocmVhZFN0YWNrVXNhZ2UoKTsK
ICAgICBBU1NFUlQoY2FwYWNpdHkgJiYgaXNQYWdlQWxpZ25lZChjYXBhY2l0eSkpOwogCiAgICAg
bV9yZXNlcnZhdGlvbiA9IFBhZ2VSZXNlcnZhdGlvbjo6cmVzZXJ2ZShXVEY6OnJvdW5kVXBUb011
bHRpcGxlT2YoY29tbWl0U2l6ZSgpLCBjYXBhY2l0eSksIE9TQWxsb2NhdG9yOjpKU1ZNU3RhY2tQ
YWdlcyk7Ci0gICAgc2V0Q0xvb3BTdGFja0xpbWl0KGhpZ2hBZGRyZXNzKCkpOwotICAgIG1fY29t
bWl0VG9wID0gaGlnaEFkZHJlc3MoKTsKLSAgICAKLSAgICBtX2xhc3RTdGFja1RvcCA9IGJhc2VP
ZlN0YWNrKCk7CisKKyAgICBhdXRvKiBib3R0b21PZlN0YWNrID0gaGlnaEFkZHJlc3MoKTsKKyAg
ICBzZXRDTG9vcFN0YWNrTGltaXQoYm90dG9tT2ZTdGFjayk7CisgICAgQVNTRVJUKG1fZW5kID09
IGJvdHRvbU9mU3RhY2spOworICAgIG1fY29tbWl0VG9wID0gYm90dG9tT2ZTdGFjazsKKyAgICBt
X2xhc3RTdGFja1BvaW50ZXIgPSBib3R0b21PZlN0YWNrOworICAgIG1fY3VycmVudFN0YWNrUG9p
bnRlciA9IGJvdHRvbU9mU3RhY2s7CiAKICAgICBtX3RvcENhbGxGcmFtZSA9IDA7CiB9CkBAIC0x
MDYsMjEgKzEwOCwyMSBAQCBib29sIENMb29wU3RhY2s6Omdyb3coUmVnaXN0ZXIqIG5ld1RvcE9m
CiAKIHZvaWQgQ0xvb3BTdGFjazo6Z2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZl
Um9vdHMmIGNvbnNlcnZhdGl2ZVJvb3RzLCBKSVRTdHViUm91dGluZVNldCYgaml0U3R1YlJvdXRp
bmVzLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9ja3MpCiB7Ci0gICAgY29uc2VydmF0aXZlUm9vdHMu
YWRkKHRvcE9mU3RhY2soKSArIDEsIGhpZ2hBZGRyZXNzKCksIGppdFN0dWJSb3V0aW5lcywgY29k
ZUJsb2Nrcyk7CisgICAgY29uc2VydmF0aXZlUm9vdHMuYWRkKGN1cnJlbnRTdGFja1BvaW50ZXIo
KSwgaGlnaEFkZHJlc3MoKSwgaml0U3R1YlJvdXRpbmVzLCBjb2RlQmxvY2tzKTsKIH0KIAogdm9p
ZCBDTG9vcFN0YWNrOjpzYW5pdGl6ZVN0YWNrKCkKIHsKICNpZiAhQVNBTl9FTkFCTEVECi0gICAg
QVNTRVJUKHRvcE9mU3RhY2soKSA8PSBiYXNlT2ZTdGFjaygpKTsKLSAgICAKLSAgICBpZiAobV9s
YXN0U3RhY2tUb3AgPCB0b3BPZlN0YWNrKCkpIHsKLSAgICAgICAgY2hhciogYmVnaW4gPSByZWlu
dGVycHJldF9jYXN0PGNoYXIqPihtX2xhc3RTdGFja1RvcCArIDEpOwotICAgICAgICBjaGFyKiBl
bmQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPih0b3BPZlN0YWNrKCkgKyAxKTsKKyAgICB2b2lk
KiBzdGFja1RvcCA9IGN1cnJlbnRTdGFja1BvaW50ZXIoKTsKKyAgICBBU1NFUlQoc3RhY2tUb3Ag
PD0gaGlnaEFkZHJlc3MoKSk7CisgICAgaWYgKG1fbGFzdFN0YWNrUG9pbnRlciA8IHN0YWNrVG9w
KSB7CisgICAgICAgIGNoYXIqIGJlZ2luID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9sYXN0
U3RhY2tQb2ludGVyKTsKKyAgICAgICAgY2hhciogZW5kID0gcmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4oc3RhY2tUb3ApOwogICAgICAgICBtZW1zZXQoYmVnaW4sIDAsIGVuZCAtIGJlZ2luKTsKICAg
ICB9CiAgICAgCi0gICAgbV9sYXN0U3RhY2tUb3AgPSB0b3BPZlN0YWNrKCk7CisgICAgbV9sYXN0
U3RhY2tQb2ludGVyID0gc3RhY2tUb3A7CiAjZW5kaWYKIH0KIApAQCAtMTQzLDggKzE0NSw4IEBA
IHZvaWQgQ0xvb3BTdGFjazo6YWRkVG9Db21taXR0ZWRCeXRlQ291bnQKIHZvaWQgQ0xvb3BTdGFj
azo6c2V0U29mdFJlc2VydmVkWm9uZVNpemUoc2l6ZV90IHJlc2VydmVkWm9uZVNpemUpCiB7CiAg
ICAgbV9zb2Z0UmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzID0gcmVzZXJ2ZWRab25lU2l6ZSAv
IHNpemVvZihSZWdpc3Rlcik7Ci0gICAgaWYgKG1fY29tbWl0VG9wID49IChtX2VuZCArIDEpIC0g
bV9zb2Z0UmVzZXJ2ZWRab25lU2l6ZUluUmVnaXN0ZXJzKQotICAgICAgICBncm93KG1fZW5kICsg
MSk7CisgICAgaWYgKG1fY29tbWl0VG9wID4gbV9lbmQgLSBtX3NvZnRSZXNlcnZlZFpvbmVTaXpl
SW5SZWdpc3RlcnMpCisgICAgICAgIGdyb3cobV9lbmQpOwogfQogCiBib29sIENMb29wU3RhY2s6
OmlzU2FmZVRvUmVjdXJzZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvQ0xvb3BTdGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9DTG9vcFN0YWNrLmgJKHJldmlzaW9uIDIyNTA1NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DTG9vcFN0YWNrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMDksIDIwMTMtMjAxNCwg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDgtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDIyICs1OSwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgdm9pZCBnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYsIEpJVFN0
dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jik7CiAgICAgICAgIHZvaWQgc2FuaXRpemVTdGFj
aygpOwogCi0gICAgICAgIFJlZ2lzdGVyKiBiYXNlT2ZTdGFjaygpIGNvbnN0Ci0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBoaWdoQWRkcmVzcygpIC0gMTsKLSAgICAgICAgfQorICAgICAg
ICBpbmxpbmUgdm9pZCogY3VycmVudFN0YWNrUG9pbnRlcigpOworICAgICAgICB2b2lkIHNldEN1
cnJlbnRTdGFja1BvaW50ZXIodm9pZCogc3ApIHsgbV9jdXJyZW50U3RhY2tQb2ludGVyID0gc3A7
IH0KIAogICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGhpZ2hBZGRyZXNzKCkg
LSBsb3dBZGRyZXNzKCk7IH0KIAogICAgICAgICB2b2lkIHNldFNvZnRSZXNlcnZlZFpvbmVTaXpl
KHNpemVfdCk7CiAgICAgICAgIGJvb2wgaXNTYWZlVG9SZWN1cnNlKCkgY29uc3Q7Ci0gICAgICAg
IGlubGluZSBSZWdpc3RlciogdG9wT2ZTdGFjaygpOwogCiAgICAgcHJpdmF0ZToKLQogICAgICAg
ICBSZWdpc3RlciogbG93QWRkcmVzcygpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBtX2VuZCArIDE7CisgICAgICAgICAgICByZXR1cm4gbV9lbmQ7CiAgICAgICAgIH0KIAog
ICAgICAgICBSZWdpc3RlciogaGlnaEFkZHJlc3MoKSBjb25zdApAQCAtODIsOCArNzgsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0X3B0cjxS
ZWdpc3Rlcio+KHN0YXRpY19jYXN0PGNoYXIqPihtX3Jlc2VydmF0aW9uLmJhc2UoKSkgKyBtX3Jl
c2VydmF0aW9uLnNpemUoKSk7CiAgICAgICAgIH0KIAotICAgICAgICBpbmxpbmUgUmVnaXN0ZXIq
IHRvcE9mRnJhbWVGb3IoQ2FsbEZyYW1lKik7Ci0KICAgICAgICAgUmVnaXN0ZXIqIHJlc2VydmF0
aW9uVG9wKCkgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgY2hhciogcmVzZXJ2YXRpb25U
b3AgPSBzdGF0aWNfY2FzdDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpOwpAQCAtOTEsNyAr
ODUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgZ3JvdyhS
ZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7Ci0gICAgICAgIHZvaWQgc2hyaW5rKFJlZ2lzdGVyKiBu
ZXdUb3BPZlN0YWNrKTsKICAgICAgICAgdm9pZCByZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKTsKICAg
ICAgICAgdm9pZCBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChsb25nKTsKIApAQCAtOTksMTAgKzky
LDE0IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIFZNJiBtX3ZtOwogICAgICAgICBDYWxs
RnJhbWUqJiBtX3RvcENhbGxGcmFtZTsKLSAgICAgICAgUmVnaXN0ZXIqIG1fZW5kOwotICAgICAg
ICBSZWdpc3RlciogbV9jb21taXRUb3A7CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBpcyBh
bHdheXMgdHJ1ZToKKyAgICAgICAgLy8gICAgcmVzZXJ2YXRpb25Ub3AoKSA8PSBtX2NvbW1pdFRv
cCA8PSBtX2VuZCA8PSBtX2N1cnJlbnRTdGFja1BvaW50ZXIgPD0gaGlnaEFkZHJlc3MoKQorICAg
ICAgICBSZWdpc3RlciogbV9lbmQ7IC8vIGxvd2VzdCBhZGRyZXNzIG9mIEpTIGFsbG9jYXRhYmxl
IHN0YWNrIG1lbW9yeS4KKyAgICAgICAgUmVnaXN0ZXIqIG1fY29tbWl0VG9wOyAvLyBsb3dlc3Qg
YWRkcmVzcyBvZiBjb21taXR0ZWQgbWVtb3J5LgogICAgICAgICBQYWdlUmVzZXJ2YXRpb24gbV9y
ZXNlcnZhdGlvbjsKLSAgICAgICAgUmVnaXN0ZXIqIG1fbGFzdFN0YWNrVG9wOworICAgICAgICB2
b2lkKiBtX2xhc3RTdGFja1BvaW50ZXI7CisgICAgICAgIHZvaWQqIG1fY3VycmVudFN0YWNrUG9p
bnRlcjsKICAgICAgICAgcHRyZGlmZl90IG1fc29mdFJlc2VydmVkWm9uZVNpemVJblJlZ2lzdGVy
czsKIAogICAgICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NMb29wU3RhY2tJbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NMb29wU3RhY2tJ
bmxpbmVzLmgJKHJldmlzaW9uIDIyNTA1NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9DTG9vcFN0YWNrSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYs
NDMgKzM2LDI0IEBAIG5hbWVzcGFjZSBKU0MgewogCiBpbmxpbmUgYm9vbCBDTG9vcFN0YWNrOjpl
bnN1cmVDYXBhY2l0eUZvcihSZWdpc3RlciogbmV3VG9wT2ZTdGFjaykKIHsKLSAgICBSZWdpc3Rl
ciogbmV3RW5kID0gbmV3VG9wT2ZTdGFjayAtIDE7Ci0gICAgaWYgKG5ld0VuZCA+PSBtX2VuZCkK
KyAgICBpZiAobmV3VG9wT2ZTdGFjayA+PSBtX2VuZCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgcmV0dXJuIGdyb3cobmV3VG9wT2ZTdGFjayk7CiB9CiAKLWlubGluZSBSZWdpc3RlciogQ0xv
b3BTdGFjazo6dG9wT2ZGcmFtZUZvcihDYWxsRnJhbWUqIGZyYW1lKQoraW5saW5lIHZvaWQqIENM
b29wU3RhY2s6OmN1cnJlbnRTdGFja1BvaW50ZXIoKQogewotICAgIGlmIChVTkxJS0VMWSghZnJh
bWUpKQotICAgICAgICByZXR1cm4gYmFzZU9mU3RhY2soKTsKLSAgICByZXR1cm4gZnJhbWUtPnRv
cE9mRnJhbWUoKSAtIDE7Ci19Ci0KLWlubGluZSBSZWdpc3RlciogQ0xvb3BTdGFjazo6dG9wT2ZT
dGFjaygpCi17Ci0gICAgcmV0dXJuIHRvcE9mRnJhbWVGb3IobV90b3BDYWxsRnJhbWUpOwotfQot
Ci1pbmxpbmUgdm9pZCBDTG9vcFN0YWNrOjpzaHJpbmsoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2sp
Ci17Ci0gICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG5ld1RvcE9mU3RhY2sgLSAxOwotICAgIGlmIChu
ZXdFbmQgPj0gbV9lbmQpCi0gICAgICAgIHJldHVybjsKLSAgICBzZXRDTG9vcFN0YWNrTGltaXQo
bmV3VG9wT2ZTdGFjayk7Ci0gICAgLy8gTm90ZTogQ2xhbmcgY29tcGxhaW5zIG9mIGFuIHVucmVz
b2x2ZWQgbGlua2FnZSB0byBtYXhFeGNlc3NDYXBhY2l0eSBpZgotICAgIC8vIGludm9rZSBzdGQ6
Om1heCgpIHdpdGggaXQgYXMgYW4gYXJndW1lbnQuIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHdlIGZp
cnN0Ci0gICAgLy8gYXNzaWduIHRoZSBjb25zdGFudCB0byBhIGxvY2FsIHZhcmlhYmxlLCBhbmQg
dXNlIHRoZSBsb2NhbCBpbnN0ZWFkLgotICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NDYXBhY2l0eSA9
IENMb29wU3RhY2s6Om1heEV4Y2Vzc0NhcGFjaXR5OwotICAgIHB0cmRpZmZfdCBtYXhFeGNlc3NJ
blJlZ2lzdGVycyA9IHN0ZDo6bWF4KG1heEV4Y2Vzc0NhcGFjaXR5LCBtX3NvZnRSZXNlcnZlZFpv
bmVTaXplSW5SZWdpc3RlcnMpOwotICAgIGlmIChtX2VuZCA9PSBiYXNlT2ZTdGFjaygpICYmICho
aWdoQWRkcmVzcygpIC0gbV9jb21taXRUb3ApID49IG1heEV4Y2Vzc0luUmVnaXN0ZXJzKQotICAg
ICAgICByZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKTsKKyAgICAvLyBPbmUgbWlnaHQgYmUgdGVtcHRl
ZCB0byBhc3NlcnQgdGhhdCBtX2N1cnJlbnRTdGFja1BvaW50ZXIgPD0gbV90b3BDYWxsRnJhbWUt
PnRvcE9mRnJhbWUoKQorICAgIC8vIGhlcmUuIFRoYXQgYXNzZXJ0aW9uIHdvdWxkIGJlIGluY29y
cmVjdCBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBmcm9tIGZ1bmN0aW9uCisg
ICAgLy8gcHJvbG9ndWVzIChlLmcuIGR1cmluZyBhIHN0YWNrIGNoZWNrKSB3aGVyZSBtX2N1cnJl
bnRTdGFja1BvaW50ZXIgbWF5IGJlIGhpZ2hlciB0aGFuCisgICAgLy8gbV90b3BDYWxsRnJhbWUt
PnRvcE9mRnJhbWUoKSBiZWNhdXNlIHRoZSBzdGFjayBwb2ludGVyIGhhcyBub3QgYmVlbiBpbml0
aWFsaXplZCB0byBwb2ludAorICAgIC8vIHRvIGZyYW1lIHRvcCB5ZXQuCisgICAgcmV0dXJuIG1f
Y3VycmVudFN0YWNrUG9pbnRlcjsKIH0KIAogaW5saW5lIHZvaWQgQ0xvb3BTdGFjazo6c2V0Q0xv
b3BTdGFja0xpbWl0KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogewotICAgIFJlZ2lzdGVyKiBu
ZXdFbmQgPSBuZXdUb3BPZlN0YWNrIC0gMTsKLSAgICBtX2VuZCA9IG5ld0VuZDsKKyAgICBtX2Vu
ZCA9IG5ld1RvcE9mU3RhY2s7CiAgICAgbV92bS5zZXRDTG9vcFN0YWNrTGltaXQobmV3VG9wT2ZT
dGFjayk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDIyNTA1NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzMzLDggKzMzMywyNyBAQCBKU1ZhbHVlIENMb29wOjpleGVjdXRlKE9wY29kZUlEIGVudHJ5
T3BjCiAjZW5kaWYKICAgICBDTG9vcERvdWJsZVJlZ2lzdGVyIGQwLCBkMTsKIAorICAgIHN0cnVj
dCBTdGFja1BvaW50ZXJTY29wZSB7CisgICAgICAgIFN0YWNrUG9pbnRlclNjb3BlKENMb29wU3Rh
Y2smIHN0YWNrKQorICAgICAgICAgICAgOiBtX3N0YWNrKHN0YWNrKQorICAgICAgICAgICAgLCBt
X29yaWdpbmFsU3RhY2tQb2ludGVyKHN0YWNrLmN1cnJlbnRTdGFja1BvaW50ZXIoKSkKKyAgICAg
ICAgeyB9CisKKyAgICAgICAgflN0YWNrUG9pbnRlclNjb3BlKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgbV9zdGFjay5zZXRDdXJyZW50U3RhY2tQb2ludGVyKG1fb3JpZ2luYWxTdGFja1BvaW50
ZXIpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBDTG9vcFN0YWNrJiBtX3N0
YWNrOworICAgICAgICB2b2lkKiBtX29yaWdpbmFsU3RhY2tQb2ludGVyOworICAgIH07CisKKyAg
ICBDTG9vcFN0YWNrJiBjbG9vcFN0YWNrID0gdm0tPmludGVycHJldGVyLT5jbG9vcFN0YWNrKCk7
CisgICAgU3RhY2tQb2ludGVyU2NvcGUgc3RhY2tQb2ludGVyU2NvcGUoY2xvb3BTdGFjayk7CisK
ICAgICBsci5vcGNvZGUgPSBnZXRPcGNvZGUobGxpbnRfcmV0dXJuX3RvX2hvc3QpOwotICAgIHNw
LnZwID0gdm0tPmludGVycHJldGVyLT5jbG9vcFN0YWNrKCkudG9wT2ZTdGFjaygpICsgMTsKKyAg
ICBzcC52cCA9IGNsb29wU3RhY2suY3VycmVudFN0YWNrUG9pbnRlcigpOwogICAgIGNmci5jYWxs
RnJhbWUgPSB2bS0+dG9wQ2FsbEZyYW1lOwogI2lmbmRlZiBOREVCVUcKICAgICB2b2lkKiBzdGFy
dFNQID0gc3AudnA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9v
cC5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9v
cC5yYgkocmV2aXNpb24gMjI1MDU2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vY2xvb3AucmIJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAxMi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTQzLDEyICs1NDMsMTQgQEAgZW5kCiAjIG9wZXJhbmRz
OiBjYWxsVGFyZ2V0LCBjdXJyZW50RnJhbWUsIGN1cnJlbnRQQwogZGVmIGNsb29wRW1pdENhbGxT
bG93UGF0aChvcGVyYW5kcykKICAgICAkYXNtLnB1dGMgInsiCisgICAgJGFzbS5wdXRjICIgICAg
Y2xvb3BTdGFjay5zZXRDdXJyZW50U3RhY2tQb2ludGVyKHNwLnZwKTsiCiAgICAgJGFzbS5wdXRj
ICIgICAgU2xvd1BhdGhSZXR1cm5UeXBlIHJlc3VsdCA9ICN7b3BlcmFuZHNbMF0uY0xhYmVsfSgj
e29wZXJhbmRzWzFdLmNsRHVtcH0sICN7b3BlcmFuZHNbMl0uY2xEdW1wfSk7IgogICAgICRhc20u
cHV0YyAiICAgIGRlY29kZVJlc3VsdChyZXN1bHQsIHQwLnZwLCB0MS52cCk7IgogICAgICRhc20u
cHV0YyAifSIKIGVuZAogCiBkZWYgY2xvb3BFbWl0Q2FsbFNsb3dQYXRoVm9pZChvcGVyYW5kcykK
KyAgICAkYXNtLnB1dGMgImNsb29wU3RhY2suc2V0Q3VycmVudFN0YWNrUG9pbnRlcihzcC52cCk7
IgogICAgICRhc20ucHV0YyAiI3tvcGVyYW5kc1swXS5jTGFiZWx9KCN7b3BlcmFuZHNbMV0uY2xE
dW1wfSwgI3tvcGVyYW5kc1syXS5jbER1bXB9KTsiCiBlbmQKIApAQCAtMTEyNSw2ICsxMTI3LDcg
QEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgIyBmb3J0dW5hdGVseSB3ZSBkb24ndCBoYXZl
IHRvIGhlcmUuIEFsbCBuYXRpdmUgZnVuY3Rpb24gY2FsbHMgYWx3YXlzCiAgICAgICAgICMgaGF2
ZSBhIGZpeGVkIHByb3RvdHlwZSBvZiAxIGFyZ3M6IHRoZSBwYXNzZWQgRXhlY1N0YXRlLgogICAg
ICAgICB3aGVuICJjbG9vcENhbGxOYXRpdmUiCisgICAgICAgICAgICAkYXNtLnB1dGMgImNsb29w
U3RhY2suc2V0Q3VycmVudFN0YWNrUG9pbnRlcihzcC52cCk7IgogICAgICAgICAgICAgJGFzbS5w
dXRjICJuYXRpdmVGdW5jID0gI3tvcGVyYW5kc1swXS5jbFZhbHVlKDpuYXRpdmVGdW5jKX07Igog
ICAgICAgICAgICAgJGFzbS5wdXRjICJmdW5jdGlvblJldHVyblZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKG5hdGl2ZUZ1bmModDAuZXhlY1N0YXRlKSk7IgogICAgICAgICAgICAgJGFzbS5wdXRjICIj
aWYgVVNFKEpTVkFMVUUzMl82NCkiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
Vk1JbnNwZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
Vk1JbnNwZWN0b3IuaAkocmV2aXNpb24gMjI1MDU2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1ZNSW5zcGVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDggKzY5LDggQEAgcHVi
bGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGlzVmFsaWRDZWxsKEhlYXAq
LCBKU0NlbGwqKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBpc1ZhbGlkQ29k
ZUJsb2NrKEV4ZWNTdGF0ZSosIENvZGVCbG9jayopOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyBDb2RlQmxvY2sqIGNvZGVCbG9ja0ZvckZyYW1lKENhbGxGcmFtZSogdG9wQ2FsbEZyYW1l
LCB1bnNpZ25lZCBmcmFtZU51bWJlcik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZv
aWQgcHJpbnRDYWxsRnJhbWUoQ2FsbEZyYW1lKiwgdW5zaWduZWQgZnJhbWVzVG9Ta2lwKTsKLSAg
ICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBwcmludFN0YWNrKENhbGxGcmFtZSogdG9w
Q2FsbEZyYW1lLCB1bnNpZ25lZCBmcmFtZXNUb1NraXApOworICAgIEpTX0VYUE9SVF9QUklWQVRF
IHN0YXRpYyB2b2lkIHByaW50Q2FsbEZyYW1lKENhbGxGcmFtZSosIHVuc2lnbmVkIGZyYW1lc1Rv
U2tpcCA9IDApOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHByaW50U3RhY2so
Q2FsbEZyYW1lKiB0b3BDYWxsRnJhbWUsIHVuc2lnbmVkIGZyYW1lc1RvU2tpcCA9IDApOwogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHByaW50VmFsdWUoSlNWYWx1ZSk7CiAKIHBy
aXZhdGU6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>