<?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>156330</bug_id>
          
          <creation_ts>2016-04-06 21:37:12 -0700</creation_ts>
          <short_desc>Rationalize the handling of PutById transitions a bit</short_desc>
          <delta_ts>2016-04-07 11:17:25 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1181580</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-06 21:37:12 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181582</commentid>
    <comment_count>1</comment_count>
      <attachid>275862</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-06 21:37:43 -0700</bug_when>
    <thetext>Created attachment 275862
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181718</commentid>
    <comment_count>2</comment_count>
      <attachid>275894</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-07 10:33:11 -0700</bug_when>
    <thetext>Created attachment 275894
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181731</commentid>
    <comment_count>3</comment_count>
      <attachid>275894</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-04-07 10:55:59 -0700</bug_when>
    <thetext>Comment on attachment 275894
the patch

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

r=me with fix.

&gt; Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:1050
&gt; -        if (newStructure()-&gt;outOfLineCapacity() != structure()-&gt;outOfLineCapacity()
&gt; -            &amp;&amp; structure()-&gt;outOfLineCapacity())
&gt; +        if (allocating)

This should be &quot;if (reallocating)&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181732</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-07 10:58:10 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 275894 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=275894&amp;action=review
&gt; 
&gt; r=me with fix.
&gt; 
&gt; &gt; Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:1050
&gt; &gt; -        if (newStructure()-&gt;outOfLineCapacity() != structure()-&gt;outOfLineCapacity()
&gt; &gt; -            &amp;&amp; structure()-&gt;outOfLineCapacity())
&gt; &gt; +        if (allocating)
&gt; 
&gt; This should be &quot;if (reallocating)&quot;.

Actually, it needs to be &quot;allocating&quot; because we now use scratchGPR3 in the store barrier slow path, which happens when we&apos;re either allocating or reallocating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181734</commentid>
    <comment_count>5</comment_count>
      <attachid>275894</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-04-07 10:58:50 -0700</bug_when>
    <thetext>Comment on attachment 275894
the patch

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

&gt;&gt;&gt; Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp:1050
&gt;&gt;&gt; +        if (allocating)
&gt;&gt; 
&gt;&gt; This should be &quot;if (reallocating)&quot;.
&gt; 
&gt; Actually, it needs to be &quot;allocating&quot; because we now use scratchGPR3 in the store barrier slow path, which happens when we&apos;re either allocating or reallocating.

Oh, I missed that.  LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181748</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-04-07 11:17:25 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/199162</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275862</attachid>
            <date>2016-04-06 21:37:43 -0700</date>
            <delta_ts>2016-04-07 10:33:11 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>9627</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmNwcAkocmV2aXNpb24gMTk5MTM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzNCw3
ICsxMDM0LDggQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZShBY2Nlc3NHZW5lcmF0aQogICAg
ICAgICB9IGVsc2UgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJEb24ndCBoYXZl
IHR5cGUuXG4iKTsKICAgICAgICAgCi0gICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3Qgc2xv
d1BhdGg7CisgICAgICAgIGJvb2wgYWxsb2NhdGluZyA9IG5ld1N0cnVjdHVyZSgpLT5vdXRPZkxp
bmVDYXBhY2l0eSgpICE9IHN0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpOworICAgICAg
ICBib29sIHJlYWxsb2NhdGluZyA9IGFsbG9jYXRpbmcgJiYgc3RydWN0dXJlKCktPm91dE9mTGlu
ZUNhcGFjaXR5KCk7CiAKICAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRv
cihzdHViSW5mby5wYXRjaC51c2VkUmVnaXN0ZXJzKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2so
YmFzZUdQUik7CkBAIC0xMDQ2LDI1ICsxMDQ3LDIzIEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJh
dGUoQWNjZXNzR2VuZXJhdGkKIAogICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUjIgPSBhbGxvY2F0
b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSMzsKLSAg
ICAgICAgaWYgKG5ld1N0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpICE9IHN0cnVjdHVy
ZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpCi0gICAgICAgICAgICAmJiBzdHJ1Y3R1cmUoKS0+b3V0
T2ZMaW5lQ2FwYWNpdHkoKSkKKyAgICAgICAgaWYgKGFsbG9jYXRpbmcpCiAgICAgICAgICAgICBz
Y3JhdGNoR1BSMyA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgc2NyYXRjaEdQUjMgPSBJbnZhbGlkR1BSUmVnOwogCiAgICAgICAgIFNj
cmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6UHJlc2VydmVkU3RhdGUgcHJlc2VydmVkU3RhdGUgPQog
ICAgICAgICAgICAgYWxsb2NhdG9yLnByZXNlcnZlUmV1c2VkUmVnaXN0ZXJzQnlQdXNoaW5nKGpp
dCwgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpFeHRyYVN0YWNrU3BhY2U6OlNwYWNlRm9yQ0Nh
bGwpOworICAgICAgICAKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsK
IAogICAgICAgICBBU1NFUlQoc3RydWN0dXJlKCktPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SGFz
QmVlbkludmFsaWRhdGVkKCkpOwogCi0gICAgICAgIGJvb2wgc2NyYXRjaEdQUkhhc1N0b3JhZ2Ug
PSBmYWxzZTsKLSAgICAgICAgYm9vbCBuZWVkc1RvTWFrZVJvb21PblN0YWNrRm9yQ0NhbGwgPSAh
cHJlc2VydmVkU3RhdGUubnVtYmVyT2ZCeXRlc1ByZXNlcnZlZCAmJiBjb2RlQmxvY2stPmppdFR5
cGUoKSA9PSBKSVRDb2RlOjpGVExKSVQ7Ci0KLSAgICAgICAgaWYgKG5ld1N0cnVjdHVyZSgpLT5v
dXRPZkxpbmVDYXBhY2l0eSgpICE9IHN0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpKSB7
CisgICAgICAgIGlmIChhbGxvY2F0aW5nKSB7CiAgICAgICAgICAgICBzaXplX3QgbmV3U2l6ZSA9
IG5ld1N0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpICogc2l6ZW9mKEpTVmFsdWUpOwog
ICAgICAgICAgICAgQ29waWVkQWxsb2NhdG9yKiBjb3BpZWRBbGxvY2F0b3IgPSAmdm0uaGVhcC5z
dG9yYWdlQWxsb2NhdG9yKCk7CiAKLSAgICAgICAgICAgIGlmICghc3RydWN0dXJlKCktPm91dE9m
TGluZUNhcGFjaXR5KCkpIHsKKyAgICAgICAgICAgIGlmICghcmVhbGxvY2F0aW5nKSB7CiAgICAg
ICAgICAgICAgICAgaml0LmxvYWRQdHIoJmNvcGllZEFsbG9jYXRvci0+bV9jdXJyZW50UmVtYWlu
aW5nLCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoCiAgICAg
ICAgICAgICAgICAgICAgIGppdC5icmFuY2hTdWJQdHIoCkBAIC0xMTA0LDE2ICsxMTAzLDggQEAg
dm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZShBY2Nlc3NHZW5lcmF0aQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KG9mZnNldCArIHNpemVvZihKU1Zh
bHVlKSArIHNpemVvZih2b2lkKikpKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKGJhc2VHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSkpOwotICAgICAgICAg
ICAgc2NyYXRjaEdQUkhhc1N0b3JhZ2UgPSB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgdWlu
dDMyX3Qgc3RydWN0dXJlQml0cyA9IGJpdHdpc2VfY2FzdDx1aW50MzJfdD4obmV3U3RydWN0dXJl
KCktPmlkKCkpOwotICAgICAgICBqaXQuc3RvcmUzMigKLSAgICAgICAgICAgIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKHN0cnVjdHVyZUJpdHMpLAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKGJhc2VHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSkpOwotCiAgICAg
ICAgIGlmIChpc0lubGluZU9mZnNldChtX29mZnNldCkpIHsKICAgICAgICAgICAgIGppdC5zdG9y
ZVZhbHVlKAogICAgICAgICAgICAgICAgIHZhbHVlUmVncywKQEAgLTExMjIsMTAwICsxMTEzLDU1
IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGUoQWNjZXNzR2VuZXJhdGkKICAgICAgICAgICAg
ICAgICAgICAgSlNPYmplY3Q6Om9mZnNldE9mSW5saW5lU3RvcmFnZSgpICsKICAgICAgICAgICAg
ICAgICAgICAgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKG1fb2Zmc2V0KSAqIHNpemVvZihKU1ZhbHVl
KSkpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKCFzY3JhdGNoR1BSSGFzU3Rv
cmFnZSkKKyAgICAgICAgICAgIGlmICghYWxsb2NhdGluZykKICAgICAgICAgICAgICAgICBqaXQu
bG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgSlNPYmplY3Q6OmJ1dHRlcmZs
eU9mZnNldCgpKSwgc2NyYXRjaEdQUik7CiAgICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZSgKICAg
ICAgICAgICAgICAgICB2YWx1ZVJlZ3MsCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHNjcmF0Y2hHUFIsIG9mZnNldEluQnV0dGVyZmx5KG1fb2Zmc2V0KSAqIHNpemVvZihK
U1ZhbHVlKSkpOwogICAgICAgICB9Ci0KLSAgICAgICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1
ZmZlciA9IG51bGxwdHI7Ci0gICAgICAgIGlmIChuZXdTdHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2Fw
YWNpdHkoKSAhPSBzdHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSkKLSAgICAgICAgICAg
IHNjcmF0Y2hCdWZmZXIgPSB2bS5zY3JhdGNoQnVmZmVyRm9yU2l6ZShhbGxvY2F0b3IuZGVzaXJl
ZFNjcmF0Y2hCdWZmZXJTaXplRm9yQ2FsbCgpKTsKLQotICAgICAgICBpZiAobmV3U3RydWN0dXJl
KCktPm91dE9mTGluZUNhcGFjaXR5KCkgIT0gc3RydWN0dXJlKCktPm91dE9mTGluZUNhcGFjaXR5
KCkpIHsKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBjYWxsRmx1c2hXcml0ZUJhcnJp
ZXJCdWZmZXI7CisgICAgICAgIAorICAgICAgICBpZiAoYWxsb2NhdGluZykgewogICAgICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG93bmVySXNSZW1lbWJlcmVkT3JJbkVkZW4gPSBqaXQuanVt
cElmSXNSZW1lbWJlcmVkT3JJbkVkZW4oYmFzZUdQUik7CiAgICAgICAgICAgICBXcml0ZUJhcnJp
ZXJCdWZmZXImIHdyaXRlQmFycmllckJ1ZmZlciA9IGppdC52bSgpLT5oZWFwLndyaXRlQmFycmll
ckJ1ZmZlcigpOwogICAgICAgICAgICAgaml0LmxvYWQzMih3cml0ZUJhcnJpZXJCdWZmZXIuY3Vy
cmVudEluZGV4QWRkcmVzcygpLCBzY3JhdGNoR1BSMik7Ci0gICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6Okp1bXAgbmVlZFRvRmx1c2ggPQorICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKAogICAg
ICAgICAgICAgICAgIGppdC5icmFuY2gzMigKICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpBYm92ZU9yRXF1YWwsIHNjcmF0Y2hHUFIyLAotICAgICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMih3cml0ZUJhcnJpZXJCdWZmZXIuY2FwYWNpdHkoKSkpOwor
ICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMih3cml0ZUJhcnJp
ZXJCdWZmZXIuY2FwYWNpdHkoKSkpKTsKIAogICAgICAgICAgICAgaml0LmFkZDMyKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKDEpLCBzY3JhdGNoR1BSMik7CiAgICAgICAgICAgICBqaXQuc3Rv
cmUzMihzY3JhdGNoR1BSMiwgd3JpdGVCYXJyaWVyQnVmZmVyLmN1cnJlbnRJbmRleEFkZHJlc3Mo
KSk7CiAKLSAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih3
cml0ZUJhcnJpZXJCdWZmZXIuYnVmZmVyKCkpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgIGpp
dC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih3cml0ZUJhcnJpZXJCdWZmZXIuYnVm
ZmVyKCkpLCBzY3JhdGNoR1BSMyk7CiAgICAgICAgICAgICAvLyBXZSB1c2UgYW4gb2Zmc2V0IG9m
IC1zaXplb2Yodm9pZCopIGJlY2F1c2Ugd2UgYWxyZWFkeSBhZGRlZCAxIHRvIHNjcmF0Y2hHUFIy
LgogICAgICAgICAgICAgaml0LnN0b3JlUHRyKAogICAgICAgICAgICAgICAgIGJhc2VHUFIsCiAg
ICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoCi0gICAgICAgICAgICAgICAg
ICAgIHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIyLCBDQ2FsbEhlbHBlcnM6OlNjYWxlUHRyLAorICAg
ICAgICAgICAgICAgICAgICBzY3JhdGNoR1BSMywgc2NyYXRjaEdQUjIsIENDYWxsSGVscGVyczo6
U2NhbGVQdHIsCiAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KC1zaXpl
b2Yodm9pZCopKSkpOwotCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZG9uZVdpdGhC
YXJyaWVyID0gaml0Lmp1bXAoKTsKLSAgICAgICAgICAgIG5lZWRUb0ZsdXNoLmxpbmsoJmppdCk7
Ci0KLSAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVzdG9yZVJldXNlZFJlZ2lzdGVy
c0J5UG9wcGluZygpIGJlZm9yZSB0aGlzLiBUaGVuLCB3ZSB3b3VsZG4ndCBuZWVkCi0gICAgICAg
ICAgICAvLyBwYWRkaW5nIGluIHByZXNlcnZlUmV1c2VkUmVnaXN0ZXJzQnlQdXNoaW5nKCkuIE9y
LCBtYXliZSBpdCB3b3VsZCBiZSBldmVuIGJldHRlciBpZiB0aGUKLSAgICAgICAgICAgIC8vIGJh
cnJpZXIgc2xvdyBwYXRoIHdhcyBqdXN0IHRoZSBub3JtYWwgc2xvdyBwYXRoLCBiZWxvdy4KLSAg
ICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkw
MzAKLSAgICAgICAgICAgIGFsbG9jYXRvci5wcmVzZXJ2ZVVzZWRSZWdpc3RlcnNUb1NjcmF0Y2hC
dWZmZXJGb3JDYWxsKGppdCwgc2NyYXRjaEJ1ZmZlciwgc2NyYXRjaEdQUjIpOwotICAgICAgICAg
ICAgaWYgKG5lZWRzVG9NYWtlUm9vbU9uU3RhY2tGb3JDQ2FsbCkKLSAgICAgICAgICAgICAgICBq
aXQubWFrZVNwYWNlT25TdGFja0ZvckNDYWxsKCk7Ci0gICAgICAgICAgICBqaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKGJhc2VHUFIpOwotICAgICAgICAgICAgY2FsbEZsdXNoV3JpdGVC
YXJyaWVyQnVmZmVyID0gaml0LmNhbGwoKTsKLSAgICAgICAgICAgIGlmIChuZWVkc1RvTWFrZVJv
b21PblN0YWNrRm9yQ0NhbGwpCi0gICAgICAgICAgICAgICAgaml0LnJlY2xhaW1TcGFjZU9uU3Rh
Y2tGb3JDQ2FsbCgpOwotICAgICAgICAgICAgYWxsb2NhdG9yLnJlc3RvcmVVc2VkUmVnaXN0ZXJz
RnJvbVNjcmF0Y2hCdWZmZXJGb3JDYWxsKAotICAgICAgICAgICAgICAgIGppdCwgc2NyYXRjaEJ1
ZmZlciwgc2NyYXRjaEdQUjIpOwotCi0gICAgICAgICAgICBkb25lV2l0aEJhcnJpZXIubGluaygm
aml0KTsKICAgICAgICAgICAgIG93bmVySXNSZW1lbWJlcmVkT3JJbkVkZW4ubGluaygmaml0KTsK
LQotICAgICAgICAgICAgc3RhdGUuY2FsbGJhY2tzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBb
PV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgbGlua0J1
ZmZlci5saW5rKGNhbGxGbHVzaFdyaXRlQmFycmllckJ1ZmZlciwgb3BlcmF0aW9uRmx1c2hXcml0
ZUJhcnJpZXJCdWZmZXIpOwotICAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgICAg
IAorICAgICAgICAvLyBXZSBzZXQgdGhlIG5ldyBidXR0ZXJmbHkgYW5kIHRoZSBzdHJ1Y3R1cmUg
bGFzdC4gRG9pbmcgaXQgdGhpcyB3YXkgZW5zdXJlcyB0aGF0IHdoYXRldmVyCisgICAgICAgIC8v
IHdlIGhhZCBkb25lIHVwIHRvIHRoaXMgcG9pbnQgaXMgZm9yZ290dGVuIGlmIHdlIGNob29zZSB0
byBicmFuY2ggdG8gc2xvdyBwYXRoLgorICAgICAgICAKKyAgICAgICAgaWYgKGFsbG9jYXRpbmcp
CisgICAgICAgICAgICBqaXQuc3RvcmVQdHIoc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKGJhc2VHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSkpOworICAgICAgICAKKyAg
ICAgICAgdWludDMyX3Qgc3RydWN0dXJlQml0cyA9IGJpdHdpc2VfY2FzdDx1aW50MzJfdD4obmV3
U3RydWN0dXJlKCktPmlkKCkpOworICAgICAgICBqaXQuc3RvcmUzMigKKyAgICAgICAgICAgIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHN0cnVjdHVyZUJpdHMpLAorICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSkp
OworCiAgICAgICAgIGFsbG9jYXRvci5yZXN0b3JlUmV1c2VkUmVnaXN0ZXJzQnlQb3BwaW5nKGpp
dCwgcHJlc2VydmVkU3RhdGUpOwogICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7Ci0KLSAgICAgICAg
aWYgKG5ld1N0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpICE9IHN0cnVjdHVyZSgpLT5v
dXRPZkxpbmVDYXBhY2l0eSgpKSB7CisgICAgICAgIAorICAgICAgICBpZiAoYWxsb2NhdG9yLmRp
ZFJldXNlUmVnaXN0ZXJzKCkpIHsKICAgICAgICAgICAgIHNsb3dQYXRoLmxpbmsoJmppdCk7CiAg
ICAgICAgICAgICBhbGxvY2F0b3IucmVzdG9yZVJldXNlZFJlZ2lzdGVyc0J5UG9wcGluZyhqaXQs
IHByZXNlcnZlZFN0YXRlKTsKLSAgICAgICAgICAgIGFsbG9jYXRvci5wcmVzZXJ2ZVVzZWRSZWdp
c3RlcnNUb1NjcmF0Y2hCdWZmZXJGb3JDYWxsKGppdCwgc2NyYXRjaEJ1ZmZlciwgc2NyYXRjaEdQ
Uik7Ci0gICAgICAgICAgICBpZiAobmVlZHNUb01ha2VSb29tT25TdGFja0ZvckNDYWxsKQotICAg
ICAgICAgICAgICAgIGppdC5tYWtlU3BhY2VPblN0YWNrRm9yQ0NhbGwoKTsKLSAgICAgICAgICAg
IGppdC5zdG9yZTMyKAotICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KHN0YXRlLm9yaWdpbmFsQ2FsbFNpdGVJbmRleCgpLmJpdHMoKSksCi0gICAgICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjp0YWdGb3Ioc3RhdGljX2Nhc3Q8VmlydHVhbFJlZ2lzdGVyPihKU1N0YWNr
OjpBcmd1bWVudENvdW50KSkpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBqaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKAotICAgICAgICAgICAgICAgIGJhc2VHUFIsCi0g
ICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG5ld1N0cnVjdHVyZSgp
KSwKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtX29mZnNldCks
Ci0gICAgICAgICAgICAgICAgdmFsdWVSZWdzLmdwcigpKTsKLSNlbHNlCi0gICAgICAgICAgICBq
aXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKAotICAgICAgICAgICAgICAgIGJhc2VHUFIs
Ci0gICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG5ld1N0cnVjdHVy
ZSgpKSwKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtX29mZnNl
dCksCi0gICAgICAgICAgICAgICAgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSwgdmFsdWVSZWdzLnRh
Z0dQUigpKTsKLSNlbmRpZgotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIG9wZXJhdGlv
bkNhbGwgPSBqaXQuY2FsbCgpOwotICAgICAgICAgICAgaWYgKG5lZWRzVG9NYWtlUm9vbU9uU3Rh
Y2tGb3JDQ2FsbCkKLSAgICAgICAgICAgICAgICBqaXQucmVjbGFpbVNwYWNlT25TdGFja0ZvckND
YWxsKCk7Ci0gICAgICAgICAgICBhbGxvY2F0b3IucmVzdG9yZVVzZWRSZWdpc3RlcnNGcm9tU2Ny
YXRjaEJ1ZmZlckZvckNhbGwoaml0LCBzY3JhdGNoQnVmZmVyLCBzY3JhdGNoR1BSKTsKLSAgICAg
ICAgICAgIHN0YXRlLnN1Y2NlZWQoKTsKLQotICAgICAgICAgICAgc3RhdGUuY2FsbGJhY2tzLmFw
cGVuZCgKLSAgICAgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKLSAg
ICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKG9wZXJhdGlvbkNhbGwsIG9wZXJhdGlv
blJlYWxsb2NhdGVTdG9yYWdlQW5kRmluaXNoUHV0KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgfQorICAgICAgICAgICAgc3RhdGUuZmFpbEFuZElnbm9yZS5hcHBlbmQoaml0Lmp1bXAo
KSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3RhdGUuZmFpbEFuZElnbm9yZS5hcHBl
bmQoc2xvd1BhdGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAJKHJl
dmlzaW9uIDE5OTEzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1
cmVTdHViSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMCw3ICsxMTAsNyBAQCBBY2Nlc3NH
ZW5lcmF0aW9uUmVzdWx0IFN0cnVjdHVyZVN0dWJJbmZvCiAgICAgVk0mIHZtID0gKmNvZGVCbG9j
ay0+dm0oKTsKICAgICAKICAgICBpZiAoIWFjY2Vzc0Nhc2UpCi0gICAgICAgIHJldHVybiBBY2Nl
c3NHZW5lcmF0aW9uUmVzdWx0OjpNYWRlTm9DaGFuZ2VzOworICAgICAgICByZXR1cm4gQWNjZXNz
R2VuZXJhdGlvblJlc3VsdDo6R2F2ZVVwOwogICAgIAogICAgIGlmIChjYWNoZVR5cGUgPT0gQ2Fj
aGVUeXBlOjpTdHViKQogICAgICAgICByZXR1cm4gdS5zdHViLT5yZWdlbmVyYXRlV2l0aENhc2Uo
dm0sIGNvZGVCbG9jaywgKnRoaXMsIGlkZW50LCBXVEZNb3ZlKGFjY2Vzc0Nhc2UpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275894</attachid>
            <date>2016-04-07 10:33:11 -0700</date>
            <delta_ts>2016-04-07 10:55:59 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>10853</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5MTU5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDE2LTA0LTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UmF0aW9uYWxpemUgdGhlIGhhbmRsaW5nIG9mIFB1dEJ5SWQgdHJhbnNpdGlvbnMgYSBiaXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjMzMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYnl0ZWNvZGUv
UG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0
ZSk6IEdldCByaWQgb2YgdGhlIHNwZWNpYWxpemVkIHNsb3cgY2FsbHMuIFdlIGNhbiBqdXN0IHVz
ZSB0aGUgZmFpbEFuZElnbm9yZSBqdW1wIHRhcmdldC4gV2UganVzdCBuZWVkIHRvIG1ha2Ugc3Vy
ZSB0aGF0IHdlIGRvbid0IG1ha2Ugb2JzZXJ2YWJsZSBlZmZlY3RzIHVudGlsIHdlJ3JlIGRvbmUg
d2l0aCBhbGwgb2YgdGhlIGZhc3QgcGF0aCBjaGVja3MuCisgICAgICAgICogYnl0ZWNvZGUvU3Ry
dWN0dXJlU3R1YkluZm8uY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6YWRk
QWNjZXNzQ2FzZSk6IE1hZGVOb0NoYW5nZXMgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIGtlZXAg
dHJ5aW5nIHRvIHJlcGF0Y2guIEN1cnJlbnRseSBQdXRCeUlkIHRyYW5zaXRpb25zIG1pZ2h0IHRy
aWdnZXIgdGhlIGNhc2UgdGhhdCBhZGRBY2Nlc3NDYXNlKCkgc2VlcyBudWxsLCBpZiB0aGUgdHJh
bnNpdGlvbiBpbnZvbHZlcyBhbiBpbmRleGluZyBoZWFkZXIuIERvaW5nIHJlcGF0Y2hpbmcgaW4g
dGhhdCBjYXNlIGlzIHByb2JhYmx5IG5vdCBnb29kLiBCdXQsIHdlIHNob3VsZCBqdXN0IGZpeCB0
aGlzIHRoZSByaWdodCB3YXkgZXZlbnR1YWxseS4KKwogMjAxNi0wNC0wNiAgQmVuamFtaW4gUG91
bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBVSW50MzJUb051bWJl
ciBzaG91bGQgYmUgTm9kZU11c3RHZW5lcmF0ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCShyZXZpc2lvbiAxOTkx
MzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDM0LDcgKzEwMzQsOCBAQCB2b2lkIEFjY2Vzc0Nhc2U6
OmdlbmVyYXRlKEFjY2Vzc0dlbmVyYXRpCiAgICAgICAgIH0gZWxzZSBpZiAodmVyYm9zZSkKICAg
ICAgICAgICAgIGRhdGFMb2coIkRvbid0IGhhdmUgdHlwZS5cbiIpOwogICAgICAgICAKLSAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKKyAgICAgICAgYm9vbCBhbGxvY2F0
aW5nID0gbmV3U3RydWN0dXJlKCktPm91dE9mTGluZUNhcGFjaXR5KCkgIT0gc3RydWN0dXJlKCkt
Pm91dE9mTGluZUNhcGFjaXR5KCk7CisgICAgICAgIGJvb2wgcmVhbGxvY2F0aW5nID0gYWxsb2Nh
dGluZyAmJiBzdHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKTsKIAogICAgICAgICBTY3Jh
dGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnBhdGNoLnVzZWRSZWdpc3Rl
cnMpOwogICAgICAgICBhbGxvY2F0b3IubG9jayhiYXNlR1BSKTsKQEAgLTEwNDYsMjUgKzEwNDcs
MjMgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZShBY2Nlc3NHZW5lcmF0aQogCiAgICAgICAg
IEdQUlJlZyBzY3JhdGNoR1BSMiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKICAg
ICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIzOwotICAgICAgICBpZiAobmV3U3RydWN0dXJlKCktPm91
dE9mTGluZUNhcGFjaXR5KCkgIT0gc3RydWN0dXJlKCktPm91dE9mTGluZUNhcGFjaXR5KCkKLSAg
ICAgICAgICAgICYmIHN0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpKQorICAgICAgICBp
ZiAoYWxsb2NhdGluZykKICAgICAgICAgICAgIHNjcmF0Y2hHUFIzID0gYWxsb2NhdG9yLmFsbG9j
YXRlU2NyYXRjaEdQUigpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzY3JhdGNoR1BSMyA9
IEludmFsaWRHUFJSZWc7CiAKICAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yOjpQcmVz
ZXJ2ZWRTdGF0ZSBwcmVzZXJ2ZWRTdGF0ZSA9CiAgICAgICAgICAgICBhbGxvY2F0b3IucHJlc2Vy
dmVSZXVzZWRSZWdpc3RlcnNCeVB1c2hpbmcoaml0LCBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3I6
OkV4dHJhU3RhY2tTcGFjZTo6U3BhY2VGb3JDQ2FsbCk7CisgICAgICAgIAorICAgICAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dQYXRoOwogCiAgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUo
KS0+dHJhbnNpdGlvbldhdGNocG9pbnRTZXRIYXNCZWVuSW52YWxpZGF0ZWQoKSk7CiAKLSAgICAg
ICAgYm9vbCBzY3JhdGNoR1BSSGFzU3RvcmFnZSA9IGZhbHNlOwotICAgICAgICBib29sIG5lZWRz
VG9NYWtlUm9vbU9uU3RhY2tGb3JDQ2FsbCA9ICFwcmVzZXJ2ZWRTdGF0ZS5udW1iZXJPZkJ5dGVz
UHJlc2VydmVkICYmIGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVENvZGU6OkZUTEpJVDsKLQot
ICAgICAgICBpZiAobmV3U3RydWN0dXJlKCktPm91dE9mTGluZUNhcGFjaXR5KCkgIT0gc3RydWN0
dXJlKCktPm91dE9mTGluZUNhcGFjaXR5KCkpIHsKKyAgICAgICAgaWYgKGFsbG9jYXRpbmcpIHsK
ICAgICAgICAgICAgIHNpemVfdCBuZXdTaXplID0gbmV3U3RydWN0dXJlKCktPm91dE9mTGluZUNh
cGFjaXR5KCkgKiBzaXplb2YoSlNWYWx1ZSk7CiAgICAgICAgICAgICBDb3BpZWRBbGxvY2F0b3Iq
IGNvcGllZEFsbG9jYXRvciA9ICZ2bS5oZWFwLnN0b3JhZ2VBbGxvY2F0b3IoKTsKIAotICAgICAg
ICAgICAgaWYgKCFzdHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSkgeworICAgICAgICAg
ICAgaWYgKCFyZWFsbG9jYXRpbmcpIHsKICAgICAgICAgICAgICAgICBqaXQubG9hZFB0cigmY29w
aWVkQWxsb2NhdG9yLT5tX2N1cnJlbnRSZW1haW5pbmcsIHNjcmF0Y2hHUFIpOwogICAgICAgICAg
ICAgICAgIHNsb3dQYXRoLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICAgaml0LmJyYW5jaFN1
YlB0cigKQEAgLTExMDQsMTYgKzExMDMsOCBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlKEFj
Y2Vzc0dlbmVyYXRpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXN0YXRpY19jYXN0PHB0
cmRpZmZfdD4ob2Zmc2V0ICsgc2l6ZW9mKEpTVmFsdWUpICsgc2l6ZW9mKHZvaWQqKSkpKTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGppdC5zdG9yZVB0
cihzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgSlNPYmplY3Q6OmJ1
dHRlcmZseU9mZnNldCgpKSk7Ci0gICAgICAgICAgICBzY3JhdGNoR1BSSGFzU3RvcmFnZSA9IHRy
dWU7CiAgICAgICAgIH0KIAotICAgICAgICB1aW50MzJfdCBzdHJ1Y3R1cmVCaXRzID0gYml0d2lz
ZV9jYXN0PHVpbnQzMl90PihuZXdTdHJ1Y3R1cmUoKS0+aWQoKSk7Ci0gICAgICAgIGppdC5zdG9y
ZTMyKAotICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc3RydWN0dXJlQml0
cyksCi0gICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjpz
dHJ1Y3R1cmVJRE9mZnNldCgpKSk7Ci0KICAgICAgICAgaWYgKGlzSW5saW5lT2Zmc2V0KG1fb2Zm
c2V0KSkgewogICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoCiAgICAgICAgICAgICAgICAgdmFs
dWVSZWdzLApAQCAtMTEyMiwxMDAgKzExMTMsNTUgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0
ZShBY2Nlc3NHZW5lcmF0aQogICAgICAgICAgICAgICAgICAgICBKU09iamVjdDo6b2Zmc2V0T2ZJ
bmxpbmVTdG9yYWdlKCkgKwogICAgICAgICAgICAgICAgICAgICBvZmZzZXRJbklubGluZVN0b3Jh
Z2UobV9vZmZzZXQpICogc2l6ZW9mKEpTVmFsdWUpKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBpZiAoIXNjcmF0Y2hHUFJIYXNTdG9yYWdlKQorICAgICAgICAgICAgaWYgKCFhbGxv
Y2F0aW5nKQogICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVz
cyhiYXNlR1BSLCBKU09iamVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKICAg
ICAgICAgICAgIGppdC5zdG9yZVZhbHVlKAogICAgICAgICAgICAgICAgIHZhbHVlUmVncywKICAg
ICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgb2Zmc2V0SW5C
dXR0ZXJmbHkobV9vZmZzZXQpICogc2l6ZW9mKEpTVmFsdWUpKSk7CiAgICAgICAgIH0KLQotICAg
ICAgICBTY3JhdGNoQnVmZmVyKiBzY3JhdGNoQnVmZmVyID0gbnVsbHB0cjsKLSAgICAgICAgaWYg
KG5ld1N0cnVjdHVyZSgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpICE9IHN0cnVjdHVyZSgpLT5vdXRP
ZkxpbmVDYXBhY2l0eSgpKQotICAgICAgICAgICAgc2NyYXRjaEJ1ZmZlciA9IHZtLnNjcmF0Y2hC
dWZmZXJGb3JTaXplKGFsbG9jYXRvci5kZXNpcmVkU2NyYXRjaEJ1ZmZlclNpemVGb3JDYWxsKCkp
OwotCi0gICAgICAgIGlmIChuZXdTdHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSAhPSBz
dHJ1Y3R1cmUoKS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSkgewotICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpDYWxsIGNhbGxGbHVzaFdyaXRlQmFycmllckJ1ZmZlcjsKKyAgICAgICAgCisgICAgICAg
IGlmIChhbGxvY2F0aW5nKSB7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgb3duZXJJ
c1JlbWVtYmVyZWRPckluRWRlbiA9IGppdC5qdW1wSWZJc1JlbWVtYmVyZWRPckluRWRlbihiYXNl
R1BSKTsKICAgICAgICAgICAgIFdyaXRlQmFycmllckJ1ZmZlciYgd3JpdGVCYXJyaWVyQnVmZmVy
ID0gaml0LnZtKCktPmhlYXAud3JpdGVCYXJyaWVyQnVmZmVyKCk7CiAgICAgICAgICAgICBqaXQu
bG9hZDMyKHdyaXRlQmFycmllckJ1ZmZlci5jdXJyZW50SW5kZXhBZGRyZXNzKCksIHNjcmF0Y2hH
UFIyKTsKLSAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBuZWVkVG9GbHVzaCA9CisgICAg
ICAgICAgICBzbG93UGF0aC5hcHBlbmQoCiAgICAgICAgICAgICAgICAgaml0LmJyYW5jaDMyKAog
ICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFib3ZlT3JFcXVhbCwgc2NyYXRjaEdQ
UjIsCi0gICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHdyaXRl
QmFycmllckJ1ZmZlci5jYXBhY2l0eSgpKSk7CisgICAgICAgICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKHdyaXRlQmFycmllckJ1ZmZlci5jYXBhY2l0eSgpKSkpOwogCiAg
ICAgICAgICAgICBqaXQuYWRkMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIHNjcmF0
Y2hHUFIyKTsKICAgICAgICAgICAgIGppdC5zdG9yZTMyKHNjcmF0Y2hHUFIyLCB3cml0ZUJhcnJp
ZXJCdWZmZXIuY3VycmVudEluZGV4QWRkcmVzcygpKTsKIAotICAgICAgICAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHdyaXRlQmFycmllckJ1ZmZlci5idWZmZXIoKSks
IHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tUHRyKHdyaXRlQmFycmllckJ1ZmZlci5idWZmZXIoKSksIHNjcmF0Y2hHUFIzKTsKICAgICAg
ICAgICAgIC8vIFdlIHVzZSBhbiBvZmZzZXQgb2YgLXNpemVvZih2b2lkKikgYmVjYXVzZSB3ZSBh
bHJlYWR5IGFkZGVkIDEgdG8gc2NyYXRjaEdQUjIuCiAgICAgICAgICAgICBqaXQuc3RvcmVQdHIo
CiAgICAgICAgICAgICAgICAgYmFzZUdQUiwKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
OkJhc2VJbmRleCgKLSAgICAgICAgICAgICAgICAgICAgc2NyYXRjaEdQUiwgc2NyYXRjaEdQUjIs
IENDYWxsSGVscGVyczo6U2NhbGVQdHIsCisgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIz
LCBzY3JhdGNoR1BSMiwgQ0NhbGxIZWxwZXJzOjpTY2FsZVB0ciwKICAgICAgICAgICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oLXNpemVvZih2b2lkKikpKSk7Ci0KLSAgICAgICAgICAg
IENDYWxsSGVscGVyczo6SnVtcCBkb25lV2l0aEJhcnJpZXIgPSBqaXQuanVtcCgpOwotICAgICAg
ICAgICAgbmVlZFRvRmx1c2gubGluaygmaml0KTsKLQotICAgICAgICAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCByZXN0b3JlUmV1c2VkUmVnaXN0ZXJzQnlQb3BwaW5nKCkgYmVmb3JlIHRoaXMuIFRo
ZW4sIHdlIHdvdWxkbid0IG5lZWQKLSAgICAgICAgICAgIC8vIHBhZGRpbmcgaW4gcHJlc2VydmVS
ZXVzZWRSZWdpc3RlcnNCeVB1c2hpbmcoKS4gT3IsIG1heWJlIGl0IHdvdWxkIGJlIGV2ZW4gYmV0
dGVyIGlmIHRoZQotICAgICAgICAgICAgLy8gYmFycmllciBzbG93IHBhdGggd2FzIGp1c3QgdGhl
IG5vcm1hbCBzbG93IHBhdGgsIGJlbG93LgotICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTAzMAotICAgICAgICAgICAgYWxsb2NhdG9yLnBy
ZXNlcnZlVXNlZFJlZ2lzdGVyc1RvU2NyYXRjaEJ1ZmZlckZvckNhbGwoaml0LCBzY3JhdGNoQnVm
ZmVyLCBzY3JhdGNoR1BSMik7Ci0gICAgICAgICAgICBpZiAobmVlZHNUb01ha2VSb29tT25TdGFj
a0ZvckNDYWxsKQotICAgICAgICAgICAgICAgIGppdC5tYWtlU3BhY2VPblN0YWNrRm9yQ0NhbGwo
KTsKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYmFzZUdQUik7
Ci0gICAgICAgICAgICBjYWxsRmx1c2hXcml0ZUJhcnJpZXJCdWZmZXIgPSBqaXQuY2FsbCgpOwot
ICAgICAgICAgICAgaWYgKG5lZWRzVG9NYWtlUm9vbU9uU3RhY2tGb3JDQ2FsbCkKLSAgICAgICAg
ICAgICAgICBqaXQucmVjbGFpbVNwYWNlT25TdGFja0ZvckNDYWxsKCk7Ci0gICAgICAgICAgICBh
bGxvY2F0b3IucmVzdG9yZVVzZWRSZWdpc3RlcnNGcm9tU2NyYXRjaEJ1ZmZlckZvckNhbGwoCi0g
ICAgICAgICAgICAgICAgaml0LCBzY3JhdGNoQnVmZmVyLCBzY3JhdGNoR1BSMik7Ci0KLSAgICAg
ICAgICAgIGRvbmVXaXRoQmFycmllci5saW5rKCZqaXQpOwogICAgICAgICAgICAgb3duZXJJc1Jl
bWVtYmVyZWRPckluRWRlbi5saW5rKCZqaXQpOwotCi0gICAgICAgICAgICBzdGF0ZS5jYWxsYmFj
a3MuYXBwZW5kKAotICAgICAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikg
ewotICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoY2FsbEZsdXNoV3JpdGVCYXJy
aWVyQnVmZmVyLCBvcGVyYXRpb25GbHVzaFdyaXRlQmFycmllckJ1ZmZlcik7Ci0gICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0KICAgICAgICAgCisgICAgICAgIC8vIFdlIHNldCB0aGUgbmV3
IGJ1dHRlcmZseSBhbmQgdGhlIHN0cnVjdHVyZSBsYXN0LiBEb2luZyBpdCB0aGlzIHdheSBlbnN1
cmVzIHRoYXQgd2hhdGV2ZXIKKyAgICAgICAgLy8gd2UgaGFkIGRvbmUgdXAgdG8gdGhpcyBwb2lu
dCBpcyBmb3Jnb3R0ZW4gaWYgd2UgY2hvb3NlIHRvIGJyYW5jaCB0byBzbG93IHBhdGguCisgICAg
ICAgIAorICAgICAgICBpZiAoYWxsb2NhdGluZykKKyAgICAgICAgICAgIGppdC5zdG9yZVB0cihz
Y3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgSlNPYmplY3Q6OmJ1dHRl
cmZseU9mZnNldCgpKSk7CisgICAgICAgIAorICAgICAgICB1aW50MzJfdCBzdHJ1Y3R1cmVCaXRz
ID0gYml0d2lzZV9jYXN0PHVpbnQzMl90PihuZXdTdHJ1Y3R1cmUoKS0+aWQoKSk7CisgICAgICAg
IGppdC5zdG9yZTMyKAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc3Ry
dWN0dXJlQml0cyksCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwg
SlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSk7CisKICAgICAgICAgYWxsb2NhdG9yLnJlc3Rv
cmVSZXVzZWRSZWdpc3RlcnNCeVBvcHBpbmcoaml0LCBwcmVzZXJ2ZWRTdGF0ZSk7CiAgICAgICAg
IHN0YXRlLnN1Y2NlZWQoKTsKLQotICAgICAgICBpZiAobmV3U3RydWN0dXJlKCktPm91dE9mTGlu
ZUNhcGFjaXR5KCkgIT0gc3RydWN0dXJlKCktPm91dE9mTGluZUNhcGFjaXR5KCkpIHsKKyAgICAg
ICAgCisgICAgICAgIGlmIChhbGxvY2F0b3IuZGlkUmV1c2VSZWdpc3RlcnMoKSkgewogICAgICAg
ICAgICAgc2xvd1BhdGgubGluaygmaml0KTsKICAgICAgICAgICAgIGFsbG9jYXRvci5yZXN0b3Jl
UmV1c2VkUmVnaXN0ZXJzQnlQb3BwaW5nKGppdCwgcHJlc2VydmVkU3RhdGUpOwotICAgICAgICAg
ICAgYWxsb2NhdG9yLnByZXNlcnZlVXNlZFJlZ2lzdGVyc1RvU2NyYXRjaEJ1ZmZlckZvckNhbGwo
aml0LCBzY3JhdGNoQnVmZmVyLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgICAgIGlmIChuZWVkc1Rv
TWFrZVJvb21PblN0YWNrRm9yQ0NhbGwpCi0gICAgICAgICAgICAgICAgaml0Lm1ha2VTcGFjZU9u
U3RhY2tGb3JDQ2FsbCgpOwotICAgICAgICAgICAgaml0LnN0b3JlMzIoCi0gICAgICAgICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc3RhdGUub3JpZ2luYWxDYWxsU2l0ZUluZGV4
KCkuYml0cygpKSwKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihzdGF0aWNf
Y2FzdDxWaXJ0dWFsUmVnaXN0ZXI+KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7Ci0jaWYgVVNF
KEpTVkFMVUU2NCkKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
Ci0gICAgICAgICAgICAgICAgYmFzZUdQUiwKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIobmV3U3RydWN0dXJlKCkpLAotICAgICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKG1fb2Zmc2V0KSwKLSAgICAgICAgICAgICAgICB2YWx1ZVJlZ3Mu
Z3ByKCkpOwotI2Vsc2UKLSAgICAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoCi0gICAgICAgICAgICAgICAgYmFzZUdQUiwKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIobmV3U3RydWN0dXJlKCkpLAotICAgICAgICAgICAgICAgIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKG1fb2Zmc2V0KSwKLSAgICAgICAgICAgICAgICB2YWx1ZVJl
Z3MucGF5bG9hZEdQUigpLCB2YWx1ZVJlZ3MudGFnR1BSKCkpOwotI2VuZGlmCi0gICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkNhbGwgb3BlcmF0aW9uQ2FsbCA9IGppdC5jYWxsKCk7Ci0gICAgICAg
ICAgICBpZiAobmVlZHNUb01ha2VSb29tT25TdGFja0ZvckNDYWxsKQotICAgICAgICAgICAgICAg
IGppdC5yZWNsYWltU3BhY2VPblN0YWNrRm9yQ0NhbGwoKTsKLSAgICAgICAgICAgIGFsbG9jYXRv
ci5yZXN0b3JlVXNlZFJlZ2lzdGVyc0Zyb21TY3JhdGNoQnVmZmVyRm9yQ2FsbChqaXQsIHNjcmF0
Y2hCdWZmZXIsIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwotCi0g
ICAgICAgICAgICBzdGF0ZS5jYWxsYmFja3MuYXBwZW5kKAotICAgICAgICAgICAgICAgIFs9XSAo
TGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewotICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVy
Lmxpbmsob3BlcmF0aW9uQ2FsbCwgb3BlcmF0aW9uUmVhbGxvY2F0ZVN0b3JhZ2VBbmRGaW5pc2hQ
dXQpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICB9CisgICAgICAgICAgICBzdGF0ZS5m
YWlsQW5kSWdub3JlLmFwcGVuZChqaXQuanVtcCgpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBzdGF0ZS5mYWlsQW5kSWdub3JlLmFwcGVuZChzbG93UGF0aCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1
cmVTdHViSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAkocmV2aXNpb24gMTk5MTM0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTEwLDcgKzExMCw3IEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgU3RydWN0dXJlU3R1
YkluZm8KICAgICBWTSYgdm0gPSAqY29kZUJsb2NrLT52bSgpOwogICAgIAogICAgIGlmICghYWNj
ZXNzQ2FzZSkKLSAgICAgICAgcmV0dXJuIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQ6Ok1hZGVOb0No
YW5nZXM7CisgICAgICAgIHJldHVybiBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0OjpHYXZlVXA7CiAg
ICAgCiAgICAgaWYgKGNhY2hlVHlwZSA9PSBDYWNoZVR5cGU6OlN0dWIpCiAgICAgICAgIHJldHVy
biB1LnN0dWItPnJlZ2VuZXJhdGVXaXRoQ2FzZSh2bSwgY29kZUJsb2NrLCAqdGhpcywgaWRlbnQs
IFdURk1vdmUoYWNjZXNzQ2FzZSkpOwo=
</data>
<flag name="review"
          id="300187"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>