<?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>128406</bug_id>
          
          <creation_ts>2014-02-07 15:17:21 -0800</creation_ts>
          <short_desc>Fix bug in stack limit adjustments in JSLock.</short_desc>
          <delta_ts>2014-02-07 18:04:00 -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>528+ (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>
          
          <blocked>128408</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>978092</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-02-07 15:17:21 -0800</bug_when>
    <thetext>This is the real fix for https://bugs.webkit.org/show_bug.cgi?id=128347 and will undo the workaround committed there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978103</commentid>
    <comment_count>1</comment_count>
      <attachid>223505</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-02-07 15:31:10 -0800</bug_when>
    <thetext>Created attachment 223505
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978107</commentid>
    <comment_count>2</comment_count>
      <attachid>223505</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-02-07 15:47:36 -0800</bug_when>
    <thetext>Comment on attachment 223505
the patch.

Let&apos;s turn this into three patches:

(1) A three-line patch that removes the problematic assignment of nullptr even if not dropping the lock, and removes the problematic testing of &quot;m_vm-&gt;stackPointerAtVMEntry == entryStackPointer&quot;.

(2) A mechanical patch that re-enables stack checking.

(3) The re-architectural you&apos;ve proposed here, which removes the iOS-specific code path.

For (3), I think we need a little research into why that path currently exists, and is iOS-specific. I believe it was needed to fix some nasty bugs -- so we shouldn&apos;t just remove it without knowledge of why it&apos;s there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978118</commentid>
    <comment_count>3</comment_count>
      <attachid>223509</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-02-07 16:11:42 -0800</bug_when>
    <thetext>Created attachment 223509
reduced patch with only the JSLock fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978120</commentid>
    <comment_count>4</comment_count>
      <attachid>223509</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-02-07 16:15:07 -0800</bug_when>
    <thetext>Comment on attachment 223509
reduced patch with only the JSLock fix.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978124</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-02-07 16:19:57 -0800</bug_when>
    <thetext>Thanks.  Landed in r163661: &lt;http://trac.webkit.org/r163661&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978198</commentid>
    <comment_count>6</comment_count>
      <attachid>223509</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-02-07 17:29:04 -0800</bug_when>
    <thetext>Comment on attachment 223509
reduced patch with only the JSLock fix.

This patch should have deleted entryStackPointer since it is no longer needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978199</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-02-07 17:30:48 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 223509 [details])
&gt; This patch should have deleted entryStackPointer since it is no longer needed.

Took care of that in https://webkit.org/b/128413, fixed in &lt;http://trac.webkit.org/r163665&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978222</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-02-07 18:04:00 -0800</bug_when>
    <thetext>ref: &lt;rdar://problem/16008492&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223505</attachid>
            <date>2014-02-07 15:31:10 -0800</date>
            <delta_ts>2014-02-07 16:11:42 -0800</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-128406.patch</filename>
            <type>text/plain</type>
            <size>19556</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNjQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExNSBA
QAorMjAxNC0wMi0wNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
Rml4IGJ1ZyBpbiBzdGFjayBsaW1pdCBhZGp1c3RtZW50cyBpbiBKU0xvY2suCisgICAgICAgIDxo
dHRwczovL3dlYmtpdC5vcmcvYi8xMjg0MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgMS4gVGhlIHN0YWNrIGxpbWl0IGFkanVzdG1lbnRzIGJ1Z3Mg
aW4gSlNMb2NrIHdlcmU6CisKKyAgICAgICAgICAgMS4gSlNMb2NrOjp1bmxvY2soKSB3YXMgb25s
eSBjbGVhcmluZyB0aGUgVk06OnN0YWNrUG9pbnRlckF0RW50cnkgd2hlbgorICAgICAgICAgICAg
ICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPT0gZW50cnlTdGFja1BvaW50ZXIsIHdoZXJl
IGVudHJ5U3RhY2tQb2ludGVyCisgICAgICAgICAgICAgIGlzIGEgZmllbGQgaW4gSlNMb2NrLgor
CisgICAgICAgICAgICAgIEhvd2V2ZXIsIERyb3BBbGxMb2Nrczo6fkRyb3BBbGxMb2NrcygpIHdp
bGwgY2FsbCBKU0xvY2s6OmdyYWJBbGxMb2NrcygpCisgICAgICAgICAgICAgIHRvIHJlbG9jayB0
aGUgSlNMb2NrLiBKU0xvY2s6OmdyYWJBbGxMb2NrcygpIHdpbGwgc2V0IGEgbmV3CisgICAgICAg
ICAgICAgIGVudHJ5U3RhY2tQb2ludGVyIHZhbHVlLiBUaGVyZWFmdGVyLCBEcm9wQWxsTG9ja3M6
On5Ecm9wQWxsTG9ja3MoKSB3aWxsCisgICAgICAgICAgICAgIHJlc3RvcmUgdGhlIHNhdmVkIFZN
OjpzdGFja1BvaW50ZXJBdEVudHJ5LCB3aGljaCB3aWxsIG5vdyBkZWZlciBmcm9tCisgICAgICAg
ICAgICAgIHRoZSBKU0xvY2sncyBlbnRyeVN0YWNrUG9pbnRlciB2YWx1ZS4KKworICAgICAgICAg
ICAgICBJdCB0dXJucyBvdXQgdGhhdCB3aGVuIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeSB3
YXMgaW5pdGlhbGl6ZWQsCisgICAgICAgICAgICAgIGl0IHdhcyBzZXQgdG8gd2hhdGV2ZXIgdmFs
dWUgZW50cnlTdGFja1BvaW50ZXIgaXMgc2V0IHRvLiBBdCBubyB0aW1lCisgICAgICAgICAgICAg
IGRvIHdlIGV2ZXIgZXhwZWN0IHRoZSAyIHZhbHVlcyB0byBkaWZmZXIuIFRoZSBvbmx5IHRpbWUg
aXQgZGlmZmVycyBpcworICAgICAgICAgICAgICB3aGVuIHRoaXMgYnVnIG1hbmlmZXN0cy4KKwor
ICAgICAgICAgICAgICBUaGUgZml4IGlzIHRvIHJlbW92ZSB0aGUgZW50cnlTdGFja1BvaW50ZXIg
ZmllbGQgaW4gSlNMb2NrIGFuZCBpdHMgdXNlcworICAgICAgICAgICAgICBhbHRvZ2V0aGVyLgor
CisgICAgICAgICAgIDIuIEpTTG9jazo6RHJvcEFsbExvY2tzOjpEcm9wQWxsTG9ja3MoKSB3YXMg
ZXhwbGljaXRseSBjbGVhcmluZworICAgICAgICAgICAgICBWTTo6c3RhY2tQb2ludGVyQXRFbnRy
eSBpbnN0ZWFkIG9mIGxldHRpbmcgSlNMb2NrOjp1bmxvY2soKSBkbyB0aGUKKyAgICAgICAgICAg
ICAgY2xlYXJpbmcuCisKKyAgICAgICAgICAgICAgSG93ZXZlciwgRHJvcEFsbExvY2tzIHdpbGwg
bm90IGFjdHVhbGx5IGRyb3AgbG9ja3MgaWYgaXQgaXNuJ3QgcmVxdWlyZWQKKyAgICAgICAgICAg
ICAgdG8gKGkuZS4gYWx3YXlzRHJvcExvY2tzIGlzIERvbnRBbHdheXNEcm9wTG9ja3MpLCBhbmQg
d2UndmUgYWxyZWFkeQorICAgICAgICAgICAgICBkcm9wIGxvY2tzIG9uY2UgKGkuZS4gSlNMb2Nr
OjptX2xvY2tEcm9wRGVwdGggaXMgbm90IDApLgorCisgICAgICAgICAgICAgIEhlbmNlLCBjbGVh
cmluZyBWTTo6c3RhY2tQb2ludGVyQXRFbnRyeSBoZXJlIGxlYXZlcyB0aGUgc3RhY2sgY2hlY2sK
KyAgICAgICAgICAgICAgbWVjaGFuaXNtIGluIGEgY29ycnVwdGVkIHN0YXRlLgorCisgICAgICAg
IDIuIFJlZmFjdG9yZWQgSlNMb2NrIHRvIHdvcmsgdGhlIHNhbWUgd2F5IGZvciBpT1MgYW5kIG5v
bi1pT1MgcG9ydHMsIGFuZCB0bworICAgICAgICAgICBzaW1wbGlmeSB0aGUgY29kZS4gIFRoaXMg
bWFrZXMgaXQgZWFzaWVyIGZvciB1cyB0byByZWFzb24gYWJvdXQgaXRzCisgICAgICAgICAgIGNv
cnJlY3RuZXNzLgorCisgICAgICAgICAgIFJlZmFjdG9yaW5nIGRvbmU6CisKKyAgICAgICAgICAg
MS4gUmVuYW1lZCBEcm9wQWxsTG9jazo6bV9sb2NrQ291bnQgdG8gbV9kcm9wcGVkTG9ja0NvdW50
IGJlY2F1c2UgaXQKKyAgICAgICAgICAgICAgaXMgYWN0dWFsbHkgdHJhY2tpbmcgdGhlIG51bWJl
ciBvZiBsb2NrIHJlZW50cnkgY291bnQgdGhhdCBpdAorICAgICAgICAgICAgICAiZHJvcHBlZCIu
CisKKyAgICAgICAgICAgMi4gQ2hhbmdlZCBEcm9wQWxsTG9jaydzIGNvbnN0cnVjdG9ycyB0byBj
YWxsIGEgY29tbW9uIGZ1bmN0aW9uIHRvIGRvCisgICAgICAgICAgICAgIHRoZSB3b3JrIG9mIGRy
b3BwaW5nIGxvY2tzLgorCisgICAgICAgICAgIDMuIEluIEpTTG9jazo6bG9jaygpLCB0aGVyZSBp
cyBubyBuZWVkIHRvIHNhdmUgdGhlIHByZXZpb3VzIFZNCisgICAgICAgICAgICAgIHJlc2VydmVk
Wm9uZVNpemUuIEpTTG9jazo6Z3JhYkFsbExvY2tzKCkgd2lsbCB0YWtlIGNhcmUgb2YgdGhhdC4K
KworICAgICAgICAgICAgICBTaW1pbGFybHksIEpTTG9jazo6dW5sb2NrKCkgZG9lcyBub3QgbmVl
ZCB0byByZXN0b3JlIGZyb20gYSBzYXZlZAorICAgICAgICAgICAgICByZXNlcnZlZFpvbmVTaXpl
KCkuIEpTTG9jazo6ZHJvcEFsbExvY2tzVW5jb25kaXRpb25hbGx5KCkgd2lsbCB0YWtlCisgICAg
ICAgICAgICAgIGNhcmUgb2YgaXQuCisKKyAgICAgICAgICAgICAgTm93LCBvbmx5IGRyb3BBbGxM
b2Nrc1VuY29uZGl0aW9uYWxseSgpIGFuZCBncmFiQWxsTG9ja3MoKSB3aWxsCisgICAgICAgICAg
ICAgIHdvcmsgd2l0aCB0aGUgdGhyZWFkRGF0YSBzYXZlZCB2YWx1ZXMuCisKKyAgICAgICAgICAg
NC4gUmVmYWN0b3JlZCBKU0xvY2s6OmxvY2soKSBhbmQgdW5sb2NrKCkgaW50byBhIHZlcnNpb24g
dGhhdCB0YWtlcworICAgICAgICAgICAgICBhbiBlbnRyeSBjb3VudCB0byBsb2NrIC8gdW5sb2Nr
LiBUaGUgcHJldmlvdXMgbG9jaygpIGFuZCB1bmxvY2soKQorICAgICAgICAgICAgICBub3cgY2Fs
bHMgdGhlc2UgbmV3IHZlcnNpb25zIHdpdGggYW4gZW50cnkgY291bnQgb2YgMS4KKworICAgICAg
ICAgICA1LiBKU0xvY2sncyBkcm9wQWxsTG9ja3MoKSwgZHJvcEFsbExvY2tzVW5jb25kaXRpb25h
bGx5KCksIGFuZAorICAgICAgICAgICAgICBncmFiQWxsTG9ja3MoKSBub3cgZGVsZWdhdGUgdG8g
SlNMb2NrOjpsb2NrKCkgYW5kIHVubG9jaygpICh0aGUKKyAgICAgICAgICAgICAgdmVyc2lvbiB0
aGF0IHRha2VzIGFuIGVudHJ5IGNvdW50KSB0byBkbyB0aGUgbG9ja2luZyAvIHVubG9ja2luZwor
ICAgICAgICAgICAgICB3b3JrIGluc3RlYWQgb2Ygc3Bpbm5pbmcgdGhlaXIgb3duLgorCisgICAg
ICAgICAgICAgIEFzIGEgcmVzdWx0LCB0aGVpciBjYWxsZXJzIG5vIGxvbmdlciBuZWVkIHRvIGFj
cXVpcmUgdGhlIEpTTG9jaworICAgICAgICAgICAgICBzcGluIGxvY2sgYmVmb3JlIGNhbGxpbmcg
dGhlbS4KKworICAgICAgICAgICA2LiBpT1Mgd291bGQgaW5jcmVtZW50IEpTTG9jazo6bV9sb2Nr
RHJvcERlcHRoIG9ubHkgaWYgbG9ja3Mgd2VyZQorICAgICAgICAgICAgICBhY3R1YWxseSBkcm9w
cGVkLiBub24taU9TIHBvcnRzIHdpbGwgaW5jcmVtZW50IGl0IGV2ZW4gaWYgbG9ja3MKKyAgICAg
ICAgICAgICAgd2VyZSBub3QgZHJvcHBlZC4gV2Ugbm93IHVuaWZ5IG9uIHRoZSBpT1Mgd2F5IGJl
Y2F1c2UgdGhpcyB3YXksCisgICAgICAgICAgICAgIG1fbG9ja0Ryb3BEZXB0aCB3aWxsIGFjdHVh
bGx5IGhvdyBtYW55IHRpbWVzIHdlIGRyb3BwZWQgbG9ja3MsCisgICAgICAgICAgICAgIGFuZCB0
aGVyZSBpcyBubyBhbWJpZ3VpdHkuCisKKyAgICAgICAgICAgNy4gaU9TIHdvdWxkIGVhZ2VybHkg
YWNxdWlyZSB0aGUgSlNMb2NrJ3Mgc3BpbiBsb2NrIGJlZm9yZSBhY2Nlc3NpbmcKKyAgICAgICAg
ICAgICAgdGhlIEpTTG9jaydzIG1fbG9ja0NvdW50IGFuZCBtX293bmVyVGhyZWFkLCBlLmcuIGlu
IERyb3BBbGxMb2Nrcy4KKyAgICAgICAgICAgICAgVGhlIG5vbi1pT1MgcG9ydCBhbHNvIGFjcXVp
cmVzIHRoZSBzcGluIGxvY2ssIGJ1dCBkZWZlcnMgdGhlCisgICAgICAgICAgICAgIGFjcXVpc2l0
aW9uIHVudGlsIGl0IGdldHMgaW50byBKU0xvY2s6OmxvY2soKSBhbmQgdW5sb2NrKCkuCisKKyAg
ICAgICAgICAgICAgVGhlIGNvZGUgbm93IGFsd2F5cyBkZWZlcnMgdGhlIGFjcXVpc2l0aW9uIHRv
IEpTTG9jazo6bG9jaygpIGFuZAorICAgICAgICAgICAgICB1bmxvY2soKS4gVGhlIG9ubHkgZXhj
ZXB0aW9uIHRvIHRoaXMgaXMgSlNMb2NrOjpkcm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoKQor
ICAgICAgICAgICAgICB3aGljaCBuZWVkcyB0byBhY2Nlc3MgbV9sb2NrQ291bnQgYW5kIG1fb3du
ZXJUaHJlYWQgdG8gY2hlY2sgaWYgdGhlCisgICAgICAgICAgICAgIGN1cnJlbnQgdGhyZWFkIGlz
IHRoZSBvd25lciBvZiB0aGUgSlNMb2NrIGZpcnN0IGJlZm9yZSBwcm9jZWVkaW5nCisgICAgICAg
ICAgICAgIHdpdGggdGhlIHdvcmsgdG8gZHJvcCB0aGUgbG9ja3MuCisKKyAgICAgICAgMy4gUmV2
ZXJ0ZWQgd29ya2Fyb3VuZCBjb21taXR0ZWQgaW4gaHR0cDovL3RyYWMud2Via2l0Lm9yZy9yMTYz
NTk1LgorCisgICAgICAgICogQVBJL0pTQ29udGV4dFJlZi5jcHA6CisgICAgICAgIChKU0NvbnRl
eHRHcm91cENyZWF0ZSk6CisgICAgICAgIChKU0dsb2JhbENvbnRleHRDcmVhdGVJbkdyb3VwKToK
KyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5qczoKKyAgICAgICAgKiBydW50aW1lL0pTTG9j
ay5jcHA6CisgICAgICAgIChKU0M6OkpTTG9jazo6bG9jayk6CisgICAgICAgIChKU0M6OkpTTG9j
azo6dW5sb2NrKToKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpkcm9wQWxsTG9ja3MpOgorICAgICAg
ICAoSlNDOjpKU0xvY2s6OmRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseSk6CisgICAgICAgIChK
U0M6OkpTTG9jazo6Z3JhYkFsbExvY2tzKToKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpEcm9wQWxs
TG9ja3M6OkRyb3BBbGxMb2Nrcyk6CisgICAgICAgIChKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tz
Ojp+RHJvcEFsbExvY2tzKToKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3M6OmRy
b3BMb2Nrcyk6CisgICAgICAgIChKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzOjp1bmRyb3BMb2Nr
cyk6CisgICAgICAgICogcnVudGltZS9KU0xvY2suaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNw
cDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKEpTQzo6Vk06OnVwZGF0ZVN0YWNr
TGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZSk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorCiAy
MDE0LTAyLTA3ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjE2MDYyOCk6IExMaW50IGRvZXMgbm90IGFwcGVhciB0byBoYW5kbGUgaW1wdXJl
IGdldCBvd24gcHJvcGVydHkgcHJvcGVybHkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDb250ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ29udGV4dFJlZi5jcHAJKHJldmlzaW9uIDE2MzY0NCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsOSArNTcs
NyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3Jv
dXBDcmVhdGUoKQogewogICAgIGluaXRpYWxpemVUaHJlYWRpbmcoKTsKLSAgICBWTSogdm0gPSBW
TTo6Y3JlYXRlQ29udGV4dEdyb3VwKCkubGVha1JlZigpOwotICAgIHZtLT5pZ25vcmVTdGFja0xp
bWl0KCk7Ci0gICAgcmV0dXJuIHRvUmVmKHZtKTsKKyAgICByZXR1cm4gdG9SZWYoVk06OmNyZWF0
ZUNvbnRleHRHcm91cCgpLmxlYWtSZWYoKSk7CiB9CiAKIEpTQ29udGV4dEdyb3VwUmVmIEpTQ29u
dGV4dEdyb3VwUmV0YWluKEpTQ29udGV4dEdyb3VwUmVmIGdyb3VwKQpAQCAtMTMxLDEzICsxMjks
NyBAQCBKU0dsb2JhbENvbnRleHRSZWYgSlNHbG9iYWxDb250ZXh0Q3JlYXRlCiB7CiAgICAgaW5p
dGlhbGl6ZVRocmVhZGluZygpOwogCi0gICAgUmVmUHRyPFZNPiB2bTsKLSAgICBpZiAoZ3JvdXAp
Ci0gICAgICAgIHZtID0gUGFzc1JlZlB0cjxWTT4odG9KUyhncm91cCkpOwotICAgIGVsc2Ugewot
ICAgICAgICB2bSA9IFZNOjpjcmVhdGVDb250ZXh0R3JvdXAoKTsKLSAgICAgICAgdm0tPmlnbm9y
ZVN0YWNrTGltaXQoKTsKLSAgICB9CisgICAgUmVmUHRyPFZNPiB2bSA9IGdyb3VwID8gUGFzc1Jl
ZlB0cjxWTT4odG9KUyhncm91cCkpIDogVk06OmNyZWF0ZUNvbnRleHRHcm91cCgpOwogCiAgICAg
QVBJRW50cnlTaGltIGVudHJ5U2hpbSh2bS5nZXQoKSwgZmFsc2UpOwogICAgIHZtLT5tYWtlVXNh
YmxlRnJvbU11bHRpcGxlVGhyZWFkcygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy90ZXN0YXBpLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaS5qcwkocmV2aXNpb24gMTYzNjQ0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsNyArMjQy
LDYgQEAgc2hvdWxkQmUoJ2Rlcml2ZWRPbmx5RGVzY3JpcHRvci5jb25maWd1cgogc2hvdWxkQmUo
J2Rlcml2ZWRPbmx5RGVzY3JpcHRvci5lbnVtZXJhYmxlJywgZmFsc2UpOwogCiBzaG91bGRCZSgi
dW5kZWZpbmVkIGluc3RhbmNlb2YgTXlPYmplY3QiLCBmYWxzZSk7Ci0vKgogRXZpbEV4Y2VwdGlv
bk9iamVjdC5oYXNJbnN0YW5jZSA9IGZ1bmN0aW9uIGYoKSB7IHJldHVybiBmKCk7IH07CiBFdmls
RXhjZXB0aW9uT2JqZWN0Ll9fcHJvdG9fXyA9IHVuZGVmaW5lZDsKIHNob3VsZFRocm93KCJ1bmRl
ZmluZWQgaW5zdGFuY2VvZiBFdmlsRXhjZXB0aW9uT2JqZWN0Iik7CkBAIC0yNTMsNyArMjUyLDYg
QEAgRXZpbEV4Y2VwdGlvbk9iamVjdC50b051bWJlciA9IGZ1bmN0aW9uIAogc2hvdWxkVGhyb3co
IkV2aWxFeGNlcHRpb25PYmplY3QqNSIpOwogRXZpbEV4Y2VwdGlvbk9iamVjdC50b1N0cmluZ0V4
cGxpY2l0ID0gZnVuY3Rpb24gZigpIHsgcmV0dXJuIGYoKTsgfQogc2hvdWxkVGhyb3coIlN0cmlu
ZyhFdmlsRXhjZXB0aW9uT2JqZWN0KSIpOwotICovCiAKIHNob3VsZEJlKCJFbXB0eU9iamVjdCIs
ICJbb2JqZWN0IENhbGxiYWNrT2JqZWN0XSIpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0xvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTG9jay5jcHAJKHJldmlzaW9uIDE2MzY0NCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwOCwgMjAxMiwgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEw
NSwxMSArMTA1LDE3IEBAIHZvaWQgSlNMb2NrOjp3aWxsRGVzdHJveVZNKFZNKiB2bSkKIAogdm9p
ZCBKU0xvY2s6OmxvY2soKQogeworICAgIGxvY2soMSk7Cit9CisKK3ZvaWQgSlNMb2NrOjpsb2Nr
KGludHB0cl90IGxvY2tDb3VudCkKK3sKKyAgICBBU1NFUlQobG9ja0NvdW50ID4gMCk7CiAgICAg
VGhyZWFkSWRlbnRpZmllciBjdXJyZW50VGhyZWFkID0gV1RGOjpjdXJyZW50VGhyZWFkKCk7CiAg
ICAgewogICAgICAgICBTcGluTG9ja0hvbGRlciBob2xkZXIoJm1fc3BpbkxvY2spOwogICAgICAg
ICBpZiAobV9vd25lclRocmVhZCA9PSBjdXJyZW50VGhyZWFkICYmIG1fbG9ja0NvdW50KSB7Ci0g
ICAgICAgICAgICBtX2xvY2tDb3VudCsrOworICAgICAgICAgICAgbV9sb2NrQ291bnQgKz0gbG9j
a0NvdW50OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMTIwLDMy
ICsxMjYsMzQgQEAgdm9pZCBKU0xvY2s6OmxvY2soKQogICAgICAgICBTcGluTG9ja0hvbGRlciBo
b2xkZXIoJm1fc3BpbkxvY2spOwogICAgICAgICBtX293bmVyVGhyZWFkID0gY3VycmVudFRocmVh
ZDsKICAgICAgICAgQVNTRVJUKCFtX2xvY2tDb3VudCk7Ci0gICAgICAgIG1fbG9ja0NvdW50ID0g
MTsKLQotICAgICAgICBXVEZUaHJlYWREYXRhJiB0aHJlYWREYXRhID0gd3RmVGhyZWFkRGF0YSgp
OworICAgICAgICBtX2xvY2tDb3VudCA9IGxvY2tDb3VudDsKIAogICAgICAgICBpZiAoIW1fdm0t
PnN0YWNrUG9pbnRlckF0Vk1FbnRyeSkgewotICAgICAgICAgICAgZW50cnlTdGFja1BvaW50ZXIg
PSAmaG9sZGVyOyAvLyBBIHByb3h5IGZvciB0aGUgY3VycmVudCBzdGFjayBwb2ludGVyLgotICAg
ICAgICAgICAgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gZW50cnlTdGFja1BvaW50ZXI7
Ci0gICAgICAgICAgICB0aHJlYWREYXRhLnNldFNhdmVkUmVzZXJ2ZWRab25lU2l6ZShtX3ZtLT51
cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNpemUoT3B0aW9uczo6cmVzZXJ2ZWRab25l
U2l6ZSgpKSk7CisgICAgICAgICAgICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSAmaG9s
ZGVyOyAvLyBBIHByb3h5IGZvciB0aGUgY3VycmVudCBzdGFjayBwb2ludGVyLgorICAgICAgICAg
ICAgbV92bS0+dXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKE9wdGlvbnM6OnJl
c2VydmVkWm9uZVNpemUoKSk7CiAgICAgICAgIH0KLQotICAgICAgICBtX3ZtLT5zZXRMYXN0U3Rh
Y2tUb3AodGhyZWFkRGF0YS5zYXZlZExhc3RTdGFja1RvcCgpKTsKICAgICB9CiB9CiAKIHZvaWQg
SlNMb2NrOjp1bmxvY2soKQogeworICAgIHVubG9jaygxKTsKK30KKwordm9pZCBKU0xvY2s6OnVu
bG9jayhpbnRwdHJfdCB1bmxvY2tDb3VudCkKK3sKICAgICBTcGluTG9ja0hvbGRlciBob2xkZXIo
Jm1fc3BpbkxvY2spOwogICAgIEFTU0VSVChjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpKTsK
KyAgICBBU1NFUlQobV9sb2NrQ291bnQgPj0gdW5sb2NrQ291bnQpOwogCi0gICAgbV9sb2NrQ291
bnQtLTsKKyAgICBtX2xvY2tDb3VudCAtPSB1bmxvY2tDb3VudDsKIAogICAgIGlmICghbV9sb2Nr
Q291bnQpIHsKLSAgICAgICAgaWYgKG1fdm0gJiYgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5
ID09IGVudHJ5U3RhY2tQb2ludGVyKSB7CisgICAgICAgIGlmIChtX3ZtKSB7CiAgICAgICAgICAg
ICBtX3ZtLT5zdGFja1BvaW50ZXJBdFZNRW50cnkgPSBudWxscHRyOwotICAgICAgICAgICAgbV92
bS0+dXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKHd0ZlRocmVhZERhdGEoKS5z
YXZlZFJlc2VydmVkWm9uZVNpemUoKSk7CisgICAgICAgICAgICBtX3ZtLT51cGRhdGVTdGFja0xp
bWl0V2l0aFJlc2VydmVkWm9uZVNpemUoT3B0aW9uczo6cmVzZXJ2ZWRab25lU2l6ZSgpKTsKICAg
ICAgICAgfQorICAgICAgICBtX293bmVyVGhyZWFkID0gMDsKICAgICAgICAgbV9sb2NrLnVubG9j
aygpOwogICAgIH0KIH0KQEAgLTIwNywxNTkgKzIxNSw5MSBAQCBib29sIEpTTG9jazo6Y3VycmVu
dFRocmVhZElzSG9sZGluZ0xvY2soCiAvLwogCiAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhl
IG51bWJlciBvZiBsb2NrcyB0aGF0IHdlcmUgZHJvcHBlZC4KLXVuc2lnbmVkIEpTTG9jazo6ZHJv
cEFsbExvY2tzKFNwaW5Mb2NrJiBzcGluTG9jaykKK3Vuc2lnbmVkIEpTTG9jazo6ZHJvcEFsbExv
Y2tzKCkKIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgQVNTRVJUX1VOVVNFRChzcGluTG9jaywg
c3BpbkxvY2suSXNIZWxkKCkpOwotICAgIC8vIENoZWNrIGlmIHRoaXMgdGhyZWFkIGlzIGN1cnJl
bnRseSBob2xkaW5nIHRoZSBsb2NrLgotICAgIC8vIEZJWE1FOiBNYXliZSB3ZSB3YW50IHRvIHJl
cXVpcmUgdGhpcywgZ3VhcmQgd2l0aCBhbiBBU1NFUlQ/Ci0gICAgdW5zaWduZWQgbG9ja0NvdW50
ID0gbV9sb2NrQ291bnQ7Ci0gICAgaWYgKCFsb2NrQ291bnQgfHwgbV9vd25lclRocmVhZCAhPSBX
VEY6OmN1cnJlbnRUaHJlYWQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KICAgICAvLyBEb24ndCBk
cm9wIHRoZSBsb2NrcyBpZiB0aGV5J3ZlIGFscmVhZHkgYmVlbiBkcm9wcGVkIG9uY2UuCiAgICAg
Ly8gKElmIHRoZSBwcmlvciBkcm9wIGNhbWUgZnJvbSBhbm90aGVyIHRocmVhZCwgYW5kIGl0IHJl
c3VtZWQgZmlyc3QsCiAgICAgLy8gaXQgY291bGQgdHJhc2ggb3VyIHJlZ2lzdGVyIGZpbGUpLgog
ICAgIGlmIChtX2xvY2tEcm9wRGVwdGgpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgLy8gbV9s
b2NrRHJvcERlcHRoIGlzIG9ubHkgaW5jcmVtZW50ZWQgaWYgYW55IGxvY2tzIHdlcmUgZHJvcHBl
ZC4KLSAgICArK21fbG9ja0Ryb3BEZXB0aDsKLSAgICBtX2xvY2tDb3VudCA9IDA7Ci0gICAgbV9s
b2NrLnVubG9jaygpOwotICAgIHJldHVybiBsb2NrQ291bnQ7Ci0jZWxzZQotICAgIGlmIChtX2xv
Y2tEcm9wRGVwdGgrKykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gZHJvcEFsbExv
Y2tzVW5jb25kaXRpb25hbGx5KHNwaW5Mb2NrKTsKLSNlbmRpZgorICAgIHJldHVybiBkcm9wQWxs
TG9ja3NVbmNvbmRpdGlvbmFsbHkoKTsKIH0KIAotdW5zaWduZWQgSlNMb2NrOjpkcm9wQWxsTG9j
a3NVbmNvbmRpdGlvbmFsbHkoU3BpbkxvY2smIHNwaW5Mb2NrKQordW5zaWduZWQgSlNMb2NrOjpk
cm9wQWxsTG9ja3NVbmNvbmRpdGlvbmFsbHkoKQogewotI2lmIFBMQVRGT1JNKElPUykKLSAgICBB
U1NFUlRfVU5VU0VEKHNwaW5Mb2NrLCBzcGluTG9jay5Jc0hlbGQoKSk7Ci0gICAgLy8gQ2hlY2sg
aWYgdGhpcyB0aHJlYWQgaXMgY3VycmVudGx5IGhvbGRpbmcgdGhlIGxvY2suCi0gICAgLy8gRklY
TUU6IE1heWJlIHdlIHdhbnQgdG8gcmVxdWlyZSB0aGlzLCBndWFyZCB3aXRoIGFuIEFTU0VSVD8K
LSAgICB1bnNpZ25lZCBsb2NrQ291bnQgPSBtX2xvY2tDb3VudDsKLSAgICBpZiAoIWxvY2tDb3Vu
dCB8fCBtX293bmVyVGhyZWFkICE9IFdURjo6Y3VycmVudFRocmVhZCgpKQotICAgICAgICByZXR1
cm4gMDsKKyAgICB1bnNpZ25lZCBsb2Nrc1RvRHJvcCA9IDA7CisgICAgeworICAgICAgICBTcGlu
TG9ja0hvbGRlciBob2xkZXIoJm1fc3BpbkxvY2spOworICAgICAgICBsb2Nrc1RvRHJvcCA9IG1f
bG9ja0NvdW50OworICAgICAgICAvLyBDaGVjayBpZiB0aGlzIHRocmVhZCBpcyBjdXJyZW50bHkg
aG9sZGluZyB0aGUgbG9jay4KKyAgICAgICAgLy8gRklYTUU6IE1heWJlIHdlIHdhbnQgdG8gcmVx
dWlyZSB0aGlzLCBndWFyZCB3aXRoIGFuIEFTU0VSVD8KKyAgICAgICAgaWYgKCFsb2Nrc1RvRHJv
cCB8fCBtX293bmVyVGhyZWFkICE9IFdURjo6Y3VycmVudFRocmVhZCgpKQorICAgICAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorCisgICAgV1RGVGhyZWFkRGF0YSYgdGhyZWFkRGF0YSA9IHd0ZlRo
cmVhZERhdGEoKTsKKyAgICB0aHJlYWREYXRhLnNldFNhdmVkU3RhY2tQb2ludGVyQXRWTUVudHJ5
KG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeSk7CisgICAgdGhyZWFkRGF0YS5zZXRTYXZlZExh
c3RTdGFja1RvcChtX3ZtLT5sYXN0U3RhY2tUb3AoKSk7CisgICAgdGhyZWFkRGF0YS5zZXRTYXZl
ZFJlc2VydmVkWm9uZVNpemUobV92bS0+cmVzZXJ2ZWRab25lU2l6ZSgpKTsKIAogICAgIC8vIG1f
bG9ja0Ryb3BEZXB0aCBpcyBvbmx5IGluY3JlbWVudGVkIGlmIGFueSBsb2NrcyB3ZXJlIGRyb3Bw
ZWQuCiAgICAgKyttX2xvY2tEcm9wRGVwdGg7Ci0gICAgbV9sb2NrQ291bnQgPSAwOwotICAgIG1f
bG9jay51bmxvY2soKTsKLSAgICByZXR1cm4gbG9ja0NvdW50OwotI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0oc3BpbkxvY2spOwotICAgIHVuc2lnbmVkIGxvY2tDb3VudCA9IG1fbG9ja0NvdW50Owot
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsb2NrQ291bnQ7ICsraSkKLSAgICAgICAgdW5s
b2NrKCk7CiAKLSAgICByZXR1cm4gbG9ja0NvdW50OwotI2VuZGlmCisgICAgdW5sb2NrKGxvY2tz
VG9Ecm9wKTsKKworICAgIEFTU0VSVCghbV92bSB8fCAhbV92bS0+c3RhY2tQb2ludGVyQXRWTUVu
dHJ5KTsKKyAgICByZXR1cm4gbG9ja3NUb0Ryb3A7CiB9CiAKLXZvaWQgSlNMb2NrOjpncmFiQWxs
TG9ja3ModW5zaWduZWQgbG9ja0NvdW50LCBTcGluTG9jayYgc3BpbkxvY2spCit2b2lkIEpTTG9j
azo6Z3JhYkFsbExvY2tzKHVuc2lnbmVkIGRyb3BwZWRMb2NrQ291bnQpCiB7Ci0jaWYgUExBVEZP
Uk0oSU9TKQotICAgIEFTU0VSVChzcGluTG9jay5Jc0hlbGQoKSk7CiAgICAgLy8gSWYgbm8gbG9j
a3Mgd2VyZSBkcm9wcGVkLCBub3RoaW5nIHRvIGRvIQotICAgIGlmICghbG9ja0NvdW50KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBUaHJlYWRJZGVudGlmaWVyIGN1cnJlbnRUaHJlYWQgPSBXVEY6
OmN1cnJlbnRUaHJlYWQoKTsKLSAgICAvLyBDaGVjayBpZiB0aGlzIHRocmVhZCBpcyBjdXJyZW50
bHkgaG9sZGluZyB0aGUgbG9jay4KLSAgICAvLyBGSVhNRTogTWF5YmUgd2Ugd2FudCB0byBwcm9o
aWJpdCB0aGlzLCBndWFyZCBhZ2FpbnN0IHdpdGggYW4gQVNTRVJUPwotICAgIGlmIChtX293bmVy
VGhyZWFkID09IGN1cnJlbnRUaHJlYWQgJiYgbV9sb2NrQ291bnQpIHsKLSAgICAgICAgbV9sb2Nr
Q291bnQgKz0gbG9ja0NvdW50OwotICAgICAgICAtLW1fbG9ja0Ryb3BEZXB0aDsKKyAgICBpZiAo
IWRyb3BwZWRMb2NrQ291bnQpCiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzcGluTG9j
ay5VbmxvY2soKTsKLSAgICBtX2xvY2subG9jaygpOwotICAgIHNwaW5Mb2NrLkxvY2soKTsKIAot
ICAgIG1fb3duZXJUaHJlYWQgPSBjdXJyZW50VGhyZWFkOwotICAgIEFTU0VSVCghbV9sb2NrQ291
bnQpOwotICAgIG1fbG9ja0NvdW50ID0gbG9ja0NvdW50OworICAgIGxvY2soZHJvcHBlZExvY2tD
b3VudCk7CiAgICAgLS1tX2xvY2tEcm9wRGVwdGg7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShz
cGluTG9jayk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxvY2tDb3VudDsgKytpKQot
ICAgICAgICBsb2NrKCk7CiAKLSAgICAtLW1fbG9ja0Ryb3BEZXB0aDsKLSNlbmRpZgorICAgIFdU
RlRocmVhZERhdGEmIHRocmVhZERhdGEgPSB3dGZUaHJlYWREYXRhKCk7CisgICAgbV92bS0+c3Rh
Y2tQb2ludGVyQXRWTUVudHJ5ID0gdGhyZWFkRGF0YS5zYXZlZFN0YWNrUG9pbnRlckF0Vk1FbnRy
eSgpOworICAgIG1fdm0tPnNldExhc3RTdGFja1RvcCh0aHJlYWREYXRhLnNhdmVkTGFzdFN0YWNr
VG9wKCkpOworICAgIG1fdm0tPnVwZGF0ZVN0YWNrTGltaXRXaXRoUmVzZXJ2ZWRab25lU2l6ZSh0
aHJlYWREYXRhLnNhdmVkUmVzZXJ2ZWRab25lU2l6ZSgpKTsKIH0KIAogSlNMb2NrOjpEcm9wQWxs
TG9ja3M6OkRyb3BBbGxMb2NrcyhFeGVjU3RhdGUqIGV4ZWMsIEFsd2F5c0Ryb3BMb2Nrc1RhZyBh
bHdheXNEcm9wTG9ja3MpCi0gICAgOiBtX2xvY2tDb3VudCgwKQorICAgIDogbV9kcm9wcGVkTG9j
a0NvdW50KDApCiAgICAgLCBtX3ZtKGV4ZWMgPyAmZXhlYy0+dm0oKSA6IG51bGxwdHIpCiB7CiAg
ICAgaWYgKCFtX3ZtKQogICAgICAgICByZXR1cm47Ci0gICAgU3BpbkxvY2smIHNwaW5Mb2NrID0g
bV92bS0+YXBpTG9jaygpLm1fc3BpbkxvY2s7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIFNwaW5M
b2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2spOwotI2VuZGlmCiAKLSAgICBXVEZUaHJlYWREYXRh
JiB0aHJlYWREYXRhID0gd3RmVGhyZWFkRGF0YSgpOwotICAgIAotICAgIHRocmVhZERhdGEuc2V0
U2F2ZWRTdGFja1BvaW50ZXJBdFZNRW50cnkobV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5KTsK
LSAgICB0aHJlYWREYXRhLnNldFNhdmVkTGFzdFN0YWNrVG9wKG1fdm0tPmxhc3RTdGFja1RvcCgp
KTsKLSAgICB0aHJlYWREYXRhLnNldFNhdmVkUmVzZXJ2ZWRab25lU2l6ZShtX3ZtLT5yZXNlcnZl
ZFpvbmVTaXplKCkpOwotCi0gICAgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbnVsbHB0
cjsKLQotICAgIGlmIChhbHdheXNEcm9wTG9ja3MpCi0gICAgICAgIG1fbG9ja0NvdW50ID0gbV92
bS0+YXBpTG9jaygpLmRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseShzcGluTG9jayk7Ci0gICAg
ZWxzZQotICAgICAgICBtX2xvY2tDb3VudCA9IG1fdm0tPmFwaUxvY2soKS5kcm9wQWxsTG9ja3Mo
c3BpbkxvY2spOworICAgIGRyb3BMb2NrcyhhbHdheXNEcm9wTG9ja3MpOwogfQogCiBKU0xvY2s6
OkRyb3BBbGxMb2Nrczo6RHJvcEFsbExvY2tzKFZNKiB2bSwgQWx3YXlzRHJvcExvY2tzVGFnIGFs
d2F5c0Ryb3BMb2NrcykKLSAgICA6IG1fbG9ja0NvdW50KDApCisgICAgOiBtX2Ryb3BwZWRMb2Nr
Q291bnQoMCkKICAgICAsIG1fdm0odm0pCiB7CiAgICAgaWYgKCFtX3ZtKQogICAgICAgICByZXR1
cm47Ci0gICAgU3BpbkxvY2smIHNwaW5Mb2NrID0gbV92bS0+YXBpTG9jaygpLm1fc3BpbkxvY2s7
Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2sp
OwotI2VuZGlmCiAKLSAgICBXVEZUaHJlYWREYXRhJiB0aHJlYWREYXRhID0gd3RmVGhyZWFkRGF0
YSgpOwotICAgIAotICAgIHRocmVhZERhdGEuc2V0U2F2ZWRTdGFja1BvaW50ZXJBdFZNRW50cnko
bV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5KTsKLSAgICB0aHJlYWREYXRhLnNldFNhdmVkTGFz
dFN0YWNrVG9wKG1fdm0tPmxhc3RTdGFja1RvcCgpKTsKLSAgICB0aHJlYWREYXRhLnNldFNhdmVk
UmVzZXJ2ZWRab25lU2l6ZShtX3ZtLT5yZXNlcnZlZFpvbmVTaXplKCkpOwotCi0gICAgbV92bS0+
c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbnVsbHB0cjsKLQotICAgIGlmIChhbHdheXNEcm9wTG9j
a3MpCi0gICAgICAgIG1fbG9ja0NvdW50ID0gbV92bS0+YXBpTG9jaygpLmRyb3BBbGxMb2Nrc1Vu
Y29uZGl0aW9uYWxseShzcGluTG9jayk7Ci0gICAgZWxzZQotICAgICAgICBtX2xvY2tDb3VudCA9
IG1fdm0tPmFwaUxvY2soKS5kcm9wQWxsTG9ja3Moc3BpbkxvY2spOworICAgIGRyb3BMb2Nrcyhh
bHdheXNEcm9wTG9ja3MpOwogfQogCiBKU0xvY2s6OkRyb3BBbGxMb2Nrczo6fkRyb3BBbGxMb2Nr
cygpCiB7CiAgICAgaWYgKCFtX3ZtKQogICAgICAgICByZXR1cm47Ci0gICAgU3BpbkxvY2smIHNw
aW5Mb2NrID0gbV92bS0+YXBpTG9jaygpLm1fc3BpbkxvY2s7Ci0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIFNwaW5Mb2NrSG9sZGVyIGhvbGRlcigmc3BpbkxvY2spOwotI2VuZGlmCi0gICAgbV92bS0+
YXBpTG9jaygpLmdyYWJBbGxMb2NrcyhtX2xvY2tDb3VudCwgc3BpbkxvY2spOwotCi0gICAgV1RG
VGhyZWFkRGF0YSYgdGhyZWFkRGF0YSA9IHd0ZlRocmVhZERhdGEoKTsKKyAgICBtX3ZtLT5hcGlM
b2NrKCkuZ3JhYkFsbExvY2tzKG1fZHJvcHBlZExvY2tDb3VudCk7Cit9CiAKLSAgICBtX3ZtLT5z
dGFja1BvaW50ZXJBdFZNRW50cnkgPSB0aHJlYWREYXRhLnNhdmVkU3RhY2tQb2ludGVyQXRWTUVu
dHJ5KCk7Ci0gICAgbV92bS0+c2V0TGFzdFN0YWNrVG9wKHRocmVhZERhdGEuc2F2ZWRMYXN0U3Rh
Y2tUb3AoKSk7Ci0gICAgbV92bS0+dXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXpl
KHRocmVhZERhdGEuc2F2ZWRSZXNlcnZlZFpvbmVTaXplKCkpOwordm9pZCBKU0xvY2s6OkRyb3BB
bGxMb2Nrczo6ZHJvcExvY2tzKEFsd2F5c0Ryb3BMb2Nrc1RhZyBhbHdheXNEcm9wTG9ja3MpCit7
CisgICAgaWYgKGFsd2F5c0Ryb3BMb2NrcykKKyAgICAgICAgbV9kcm9wcGVkTG9ja0NvdW50ID0g
bV92bS0+YXBpTG9jaygpLmRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseSgpOworICAgIGVsc2UK
KyAgICAgICAgbV9kcm9wcGVkTG9ja0NvdW50ID0gbV92bS0+YXBpTG9jaygpLmRyb3BBbGxMb2Nr
cygpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTG9jay5oCShyZXZpc2lvbiAxNjM2NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0xvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4LCAyMDA5LCAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTA4LDE0ICsx
MDgsMTkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB+
RHJvcEFsbExvY2tzKCk7CiAgICAgICAgICAgICAKICAgICAgICAgcHJpdmF0ZToKLSAgICAgICAg
ICAgIGludHB0cl90IG1fbG9ja0NvdW50OworICAgICAgICAgICAgdm9pZCBkcm9wTG9ja3MoQWx3
YXlzRHJvcExvY2tzVGFnKTsKKworICAgICAgICAgICAgaW50cHRyX3QgbV9kcm9wcGVkTG9ja0Nv
dW50OwogICAgICAgICAgICAgUmVmUHRyPFZNPiBtX3ZtOwogICAgICAgICB9OwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgdW5zaWduZWQgZHJvcEFsbExvY2tzKFNwaW5Mb2NrJik7Ci0gICAgICAg
IHVuc2lnbmVkIGRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseShTcGluTG9jayYpOwotICAgICAg
ICB2b2lkIGdyYWJBbGxMb2Nrcyh1bnNpZ25lZCBsb2NrQ291bnQsIFNwaW5Mb2NrJik7CisgICAg
ICAgIHZvaWQgbG9jayhpbnRwdHJfdCBsb2NrQ291bnQpOworICAgICAgICB2b2lkIHVubG9jayhp
bnRwdHJfdCB1bmxvY2tDb3VudCk7CisKKyAgICAgICAgdW5zaWduZWQgZHJvcEFsbExvY2tzKCk7
CisgICAgICAgIHVuc2lnbmVkIGRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseSgpOworICAgICAg
ICB2b2lkIGdyYWJBbGxMb2Nrcyh1bnNpZ25lZCBsb2NrQ291bnQpOwogCiAgICAgICAgIFNwaW5M
b2NrIG1fc3BpbkxvY2s7CiAgICAgICAgIE11dGV4IG1fbG9jazsKQEAgLTEyMyw3ICsxMjgsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgaW50cHRyX3QgbV9sb2NrQ291bnQ7CiAgICAgICAg
IHVuc2lnbmVkIG1fbG9ja0Ryb3BEZXB0aDsKICAgICAgICAgVk0qIG1fdm07Ci0gICAgICAgIHZv
aWQqIGVudHJ5U3RhY2tQb2ludGVyOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lvbiAxNjM2NDQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw3
ICsyMTksNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAjaWYg
RU5BQkxFKEdDX1ZBTElEQVRJT04pCiAgICAgLCBtX2luaXRpYWxpemluZ09iamVjdENsYXNzKDAp
CiAjZW5kaWYKLSAgICAsIG1faWdub3JlU3RhY2tMaW1pdChmYWxzZSkKICAgICAsIG1fc3RhY2tM
aW1pdCgwKQogI2lmIEVOQUJMRShMTElOVF9DX0xPT1ApCiAgICAgLCBtX2pzU3RhY2tMaW1pdCgw
KQpAQCAtNzM5LDExICs3MzgsNiBAQCB2b2lkIFZNOjogY2xlYXJFeGNlcHRpb25TdGFjaygpCiAK
IHNpemVfdCBWTTo6dXBkYXRlU3RhY2tMaW1pdFdpdGhSZXNlcnZlZFpvbmVTaXplKHNpemVfdCBy
ZXNlcnZlZFpvbmVTaXplKQogewotICAgIGlmIChtX2lnbm9yZVN0YWNrTGltaXQpIHsKLSAgICAg
ICAgc2V0U3RhY2tMaW1pdCgwKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCiAgICAgc2l6
ZV90IG9sZFJlc2VydmVkWm9uZVNpemUgPSBtX3Jlc2VydmVkWm9uZVNpemU7CiAgICAgbV9yZXNl
cnZlZFpvbmVTaXplID0gcmVzZXJ2ZWRab25lU2l6ZTsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCShyZXZpc2lvbiAxNjM2NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zODcsOCArMzg3LDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAjZW5kaWYKICAgICAgICAgdm9pZCogc3RhY2tMaW1pdCgpIHsgcmV0dXJuIG1fc3Rh
Y2tMaW1pdDsgfQogCi0gICAgICAgIHZvaWQgaWdub3JlU3RhY2tMaW1pdCgpIHsgbV9pZ25vcmVT
dGFja0xpbWl0ID0gdHJ1ZTsgfQotCiAgICAgICAgIGJvb2wgaXNTYWZlVG9SZWN1cnNlKHNpemVf
dCBuZWVkZWRTdGFja0luQnl0ZXMgPSAwKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICBB
U1NFUlQod3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkuaXNHcm93aW5nRG93bndhcmQoKSk7CkBAIC01
MjMsNyArNTIxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04p
CiAgICAgICAgIGNvbnN0IENsYXNzSW5mbyogbV9pbml0aWFsaXppbmdPYmplY3RDbGFzczsKICNl
bmRpZgotICAgICAgICBib29sIG1faWdub3JlU3RhY2tMaW1pdDsKICAgICAgICAgc2l6ZV90IG1f
cmVzZXJ2ZWRab25lU2l6ZTsKICNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQogICAgICAgICBzdHJ1
Y3Qgewo=
</data>
<flag name="review"
          id="247545"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223509</attachid>
            <date>2014-02-07 16:11:42 -0800</date>
            <delta_ts>2014-02-07 17:29:04 -0800</delta_ts>
            <desc>reduced patch with only the JSLock fix.</desc>
            <filename>bug-128406.patch</filename>
            <type>text/plain</type>
            <size>3437</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNjU3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE0LTAyLTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggYnVnIGluIHN0YWNrIGxpbWl0IGFkanVzdG1lbnRzIGluIEpTTG9jay4KKyAgICAgICAgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzEyODQwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAxLiBKU0xvY2s6OnVubG9jaygpIHdhcyBvbmx5IGNsZWFyaW5n
IHRoZSBWTTo6c3RhY2tQb2ludGVyQXRFbnRyeSB3aGVuCisgICAgICAgICAgIG1fdm0tPnN0YWNr
UG9pbnRlckF0Vk1FbnRyeSA9PSBlbnRyeVN0YWNrUG9pbnRlci4gRllJLAorICAgICAgICAgICBl
bnRyeVN0YWNrUG9pbnRlciBpcyBhIGZpZWxkIGluIEpTTG9jay4KKworICAgICAgICAgICBXaGVu
IERyb3BBbGxMb2Nrczo6fkRyb3BBbGxMb2NrcygpIHdpbGwgY2FsbCBKU0xvY2s6OmdyYWJBbGxM
b2NrcygpCisgICAgICAgICAgIHRvIHJlbG9jayB0aGUgSlNMb2NrLCBKU0xvY2s6OmdyYWJBbGxM
b2NrcygpIHdpbGwgc2V0IGEgbmV3CisgICAgICAgICAgIGVudHJ5U3RhY2tQb2ludGVyIHZhbHVl
LiBUaGVyZWFmdGVyLCBEcm9wQWxsTG9ja3M6On5Ecm9wQWxsTG9ja3MoKSB3aWxsCisgICAgICAg
ICAgIHJlc3RvcmUgdGhlIHNhdmVkIFZNOjpzdGFja1BvaW50ZXJBdEVudHJ5LCB3aGljaCB3aWxs
IG5vdyBkZWZlciBmcm9tCisgICAgICAgICAgIHRoZSBKU0xvY2sncyBlbnRyeVN0YWNrUG9pbnRl
ciB2YWx1ZS4KKworICAgICAgICAgICBJdCB0dXJucyBvdXQgdGhhdCB3aGVuIG1fdm0tPnN0YWNr
UG9pbnRlckF0Vk1FbnRyeSB3YXMgaW5pdGlhbGl6ZWQsCisgICAgICAgICAgIGl0IHdhcyBzZXQg
dG8gd2hhdGV2ZXIgdmFsdWUgZW50cnlTdGFja1BvaW50ZXIgaXMgc2V0IHRvLiBBdCBubyB0aW1l
CisgICAgICAgICAgIGRvIHdlIGV2ZXIgZXhwZWN0IHRoZSAyIHZhbHVlcyB0byBkaWZmZXIuIFRo
ZSBvbmx5IHRpbWUgaXQgZGlmZmVycyBpcworICAgICAgICAgICB3aGVuIHRoaXMgYnVnIG1hbmlm
ZXN0cy4KKworICAgICAgICAgICBUaGUgZml4IGlzIHRvIHJlbW92ZSB0aGUgZW50cnlTdGFja1Bv
aW50ZXIgZmllbGQgaW4gSlNMb2NrIGFuZCBpdHMgdXNlcworICAgICAgICAgICBhbHRvZ2V0aGVy
LgorCisgICAgICAgIDIuIERyb3BBbGxMb2NrcyB3YXMgdW5jb25kaXRpb25hbGx5IGNsZWFyaW5n
IFZNOjpzdGFja1BvaW50ZXJBdEVudHJ5IGluCisgICAgICAgICAgIGl0cyBjb25zdHJ1Y3RvciBp
bnN0ZWFkIG9mIGxldHRpbmcgSlNMb2NrOjp1bmxvY2soKSBkbyB0aGUgY2xlYXJpbmcuCisKKyAg
ICAgICAgICAgSG93ZXZlciwgRHJvcEFsbExvY2tzIHdpbGwgbm90IGFjdHVhbGx5IGRyb3AgbG9j
a3MgaWYgaXQgaXNuJ3QgcmVxdWlyZWQKKyAgICAgICAgICAgdG8gKGUuZy4gd2hlbiBhbHdheXNE
cm9wTG9ja3MgaXMgRG9udEFsd2F5c0Ryb3BMb2NrcyksIGFuZCB3aGVuIHdlJ3ZlCisgICAgICAg
ICAgIGFscmVhZHkgZHJvcCBsb2NrcyBvbmNlIChpLmUuIEpTTG9jazo6bV9sb2NrRHJvcERlcHRo
IGlzIG5vdCAwKS4KKworICAgICAgICAgICBXZSBzaG91bGQgbm90IGhhdmUgY2xlYXJlZCBWTTo6
c3RhY2tQb2ludGVyQXRFbnRyeSBoZXJlIGlmIHdlIGRvbid0CisgICAgICAgICAgIGFjdHVhbGx5
IGRyb3AgdGhlIGxvY2tzLgorCisgICAgICAgICogcnVudGltZS9KU0xvY2suY3BwOgorICAgICAg
ICAoSlNDOjpKU0xvY2s6OnVubG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6RHJvcEFsbExv
Y2tzOjpEcm9wQWxsTG9ja3MpOgorCiAyMDE0LTAyLTA3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gRWxpbWluYXRlIHJhY2UgYmV0d2VlbiBY
UEMgY29ubmVjdGlvbiBxdWV1ZSBhbmQgTm90aWZpY2F0aW9uIHF1ZXVlCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHJldmlzaW9uIDE2MzY1NykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE0Miw3ICsxNDIsNyBAQCB2b2lkIEpTTG9jazo6dW5sb2NrKCkKICAgICBtX2xvY2tDb3VudC0t
OwogCiAgICAgaWYgKCFtX2xvY2tDb3VudCkgewotICAgICAgICBpZiAobV92bSAmJiBtX3ZtLT5z
dGFja1BvaW50ZXJBdFZNRW50cnkgPT0gZW50cnlTdGFja1BvaW50ZXIpIHsKKyAgICAgICAgaWYg
KG1fdm0pIHsKICAgICAgICAgICAgIG1fdm0tPnN0YWNrUG9pbnRlckF0Vk1FbnRyeSA9IG51bGxw
dHI7CiAgICAgICAgICAgICBtX3ZtLT51cGRhdGVTdGFja0xpbWl0V2l0aFJlc2VydmVkWm9uZVNp
emUod3RmVGhyZWFkRGF0YSgpLnNhdmVkUmVzZXJ2ZWRab25lU2l6ZSgpKTsKICAgICAgICAgfQpA
QCAtMzEyLDggKzMxMiw2IEBAIEpTTG9jazo6RHJvcEFsbExvY2tzOjpEcm9wQWxsTG9ja3MoRXhl
Y1MKICAgICB0aHJlYWREYXRhLnNldFNhdmVkTGFzdFN0YWNrVG9wKG1fdm0tPmxhc3RTdGFja1Rv
cCgpKTsKICAgICB0aHJlYWREYXRhLnNldFNhdmVkUmVzZXJ2ZWRab25lU2l6ZShtX3ZtLT5yZXNl
cnZlZFpvbmVTaXplKCkpOwogCi0gICAgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVudHJ5ID0gbnVs
bHB0cjsKLQogICAgIGlmIChhbHdheXNEcm9wTG9ja3MpCiAgICAgICAgIG1fbG9ja0NvdW50ID0g
bV92bS0+YXBpTG9jaygpLmRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseShzcGluTG9jayk7CiAg
ICAgZWxzZQpAQCAtMzM3LDggKzMzNSw2IEBAIEpTTG9jazo6RHJvcEFsbExvY2tzOjpEcm9wQWxs
TG9ja3MoVk0qIHYKICAgICB0aHJlYWREYXRhLnNldFNhdmVkTGFzdFN0YWNrVG9wKG1fdm0tPmxh
c3RTdGFja1RvcCgpKTsKICAgICB0aHJlYWREYXRhLnNldFNhdmVkUmVzZXJ2ZWRab25lU2l6ZSht
X3ZtLT5yZXNlcnZlZFpvbmVTaXplKCkpOwogCi0gICAgbV92bS0+c3RhY2tQb2ludGVyQXRWTUVu
dHJ5ID0gbnVsbHB0cjsKLQogICAgIGlmIChhbHdheXNEcm9wTG9ja3MpCiAgICAgICAgIG1fbG9j
a0NvdW50ID0gbV92bS0+YXBpTG9jaygpLmRyb3BBbGxMb2Nrc1VuY29uZGl0aW9uYWxseShzcGlu
TG9jayk7CiAgICAgZWxzZQo=
</data>
<flag name="review"
          id="247549"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>