<?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>124733</bug_id>
          
          <creation_ts>2013-11-21 12:07:25 -0800</creation_ts>
          <short_desc>It should be possible for a LinkBuffer to outlive the MacroAssembler and still be useful</short_desc>
          <delta_ts>2014-07-13 19:13:59 -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>528+ (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>
          
          <blocked>112840</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>953216</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-21 12:07:25 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953220</commentid>
    <comment_count>1</comment_count>
      <attachid>217591</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-21 12:17:35 -0800</bug_when>
    <thetext>Created attachment 217591
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953239</commentid>
    <comment_count>2</comment_count>
      <attachid>217599</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-21 12:37:21 -0800</bug_when>
    <thetext>Created attachment 217599
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966110</commentid>
    <comment_count>3</comment_count>
      <attachid>220782</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-09 16:03:19 -0800</bug_when>
    <thetext>Created attachment 220782
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966112</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-09 16:06:57 -0800</bug_when>
    <thetext>Attachment 220782 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/assembler/ARM64Assembler.h&apos;, u&apos;Source/JavaScriptCore/assembler/ARMv7Assembler.h&apos;, u&apos;Source/JavaScriptCore/assembler/AssemblerBuffer.h&apos;, u&apos;Source/JavaScriptCore/assembler/LinkBuffer.h&apos;, u&apos;Source/JavaScriptCore/assembler/MacroAssemblerARM64.h&apos;, u&apos;Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/JavaScriptCore/assembler/AssemblerBuffer.h:65:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983481</commentid>
    <comment_count>5</comment_count>
      <attachid>224940</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-21 18:34:58 -0800</bug_when>
    <thetext>Created attachment 224940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983482</commentid>
    <comment_count>6</comment_count>
      <attachid>224941</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-21 18:36:00 -0800</bug_when>
    <thetext>Created attachment 224941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983483</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-21 18:37:39 -0800</bug_when>
    <thetext>Attachment 224941 did not pass style-queue:


ERROR: Source/JavaScriptCore/assembler/AssemblerBuffer.h:65:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983624</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-22 11:50:25 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/164548</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984673</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-26 00:42:54 -0800</bug_when>
    <thetext>Looks like this was 7-10% regression on Dromaeo/dom-query?

https://perf.webkit.org/#mode=charts&amp;chartList=%5B%5B%22mac-mavericks%22%2C%22Dromaeo%2Fdom-query%3ARuns%22%5D%2C%5B%22mac-mountainlion%22%2C%22Dromaeo%2Fdom-query%3ARuns%22%5D%5D&amp;days=63&amp;zoom=%5B1392794639427.6333%2C1393190255845.2073%5D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022148</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-13 19:13:59 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Looks like this was 7-10% regression on Dromaeo/dom-query?
&gt; 
&gt; https://perf.webkit.org/#mode=charts&amp;chartList=%5B%5B%22mac-mavericks%22%2C%22Dromaeo%2Fdom-query%3ARuns%22%5D%2C%5B%22mac-mountainlion%22%2C%22Dromaeo%2Fdom-query%3ARuns%22%5D%5D&amp;days=63&amp;zoom=%5B1392794639427.6333%2C1393190255845.2073%5D

I looked into this today, this regression is very bad for PLT on ARM.

I have started fixing in https://bugs.webkit.org/show_bug.cgi?id=134659. I&apos;ll finish that tomorrow when I have access to all the hardware.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217591</attachid>
            <date>2013-11-21 12:17:35 -0800</date>
            <delta_ts>2013-11-21 12:37:21 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>7480</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5NjQwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDEzLTExLTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SXQgc2hvdWxkIGJlIHBvc3NpYmxlIGZvciBhIExpbmtCdWZmZXIgdG8gb3V0bGl2ZSB0aGUgTWFj
cm9Bc3NlbWJsZXIgYW5kIHN0aWxsIGJlIHVzZWZ1bAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGFsc28gdGFrZXMgdGhlIG9wcG9y
dHVuaXR5IHRvIGRlLWR1cGxpY2F0ZSBzb21lIGJyYW5jaCBjb21wYWN0aW9uIGNvZGUuCisKKyAg
ICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIv
QVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmJ1ZmZlcik6
CisgICAgICAgICogYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpB
c3NlbWJsZXJEYXRhOjpBc3NlbWJsZXJEYXRhKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibGVyQnVm
ZmVyOjpBc3NlbWJsZXJCdWZmZXIpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6OnN0
b3JhZ2UpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6Omdyb3cpOgorICAgICAgICAq
IGFzc2VtYmxlci9MaW5rQnVmZmVyLmg6CisgICAgICAgIChKU0M6OkxpbmtCdWZmZXI6OkxpbmtC
dWZmZXIpOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpleGVjdXRhYmxlT2Zmc2V0Rm9yKToK
KyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6YXBwbHlPZmZzZXQpOgorICAgICAgICAqIGFzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNNjQ6OmxpbmspOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6
CisKIDIwMTMtMTEtMjEgIEJhbGF6cyBLaWx2YWR5ICA8a2lsdmFkeWJAaG9tZWppbm5pLmNvbT4K
IAogICAgICAgICBbTUlQU10gQnVpbGQgZmFpbHMgc2luY2UgcjE1OTU0NS4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgJKHJldmlz
aW9uIDE1OTU0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3Nl
bWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ5NCwxMyArMjQ5NCw2IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGIubV9vZmZzZXQgLSBhLm1fb2Zmc2V0OwogICAgIH0KIAotICAgIGludCBl
eGVjdXRhYmxlT2Zmc2V0Rm9yKGludCBsb2NhdGlvbikKLSAgICB7Ci0gICAgICAgIGlmICghbG9j
YXRpb24pCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGludDMyX3QqPihtX2J1ZmZlci5kYXRhKCkpW2xvY2F0aW9uIC8gc2l6ZW9mKGludDMyX3QpIC0g
MV07Ci0gICAgfQotCiAgICAgdm9pZCogdW5saW5rZWRDb2RlKCkgeyByZXR1cm4gbV9idWZmZXIu
ZGF0YSgpOyB9CiAgICAgc2l6ZV90IGNvZGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIu
Y29kZVNpemUoKTsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FS
TXY3QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BUk12N0Fzc2VtYmxlci5oCShyZXZpc2lvbiAxNTk1NDUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4
Miw2ICs1ODIsOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAorICAgIEFzc2VtYmxlckJ1ZmZl
ciYgYnVmZmVyKCkgeyByZXR1cm4gbV9mb3JtYXR0ZXIubV9idWZmZXI7IH0KKwogcHJpdmF0ZToK
IAogICAgIC8vIEFSTXY3LCBBcHB4LUEuNi4zCkBAIC0yMDM1LDEzICsyMDM3LDYgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYi5tX29mZnNldCAtIGEubV9vZmZzZXQ7CiAgICAgfQogCi0gICAg
aW50IGV4ZWN1dGFibGVPZmZzZXRGb3IoaW50IGxvY2F0aW9uKQotICAgIHsKLSAgICAgICAgaWYg
KCFsb2NhdGlvbikKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50MzJfdCo+KG1fZm9ybWF0dGVyLmRhdGEoKSlbbG9jYXRpb24gLyBzaXplb2YoaW50
MzJfdCkgLSAxXTsKLSAgICB9Ci0gICAgCiAgICAgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5cGUg
anVtcFR5cGUsIEp1bXBMaW5rVHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJuIEpVTVBfRU5VTV9T
SVpFKGp1bXBUeXBlKSAtIEpVTVBfRU5VTV9TSVpFKGp1bXBMaW5rVHlwZSk7IH0KICAgICAKICAg
ICAvLyBBc3NlbWJsZXIgYWRtaW4gbWV0aG9kczoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAkocmV2aXNpb24gMTU5NTQ1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNjAsMTMgKzYwLDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1
aW50MzJfdCBtX29mZnNldDsKICAgICB9OwogCi0gICAgY2xhc3MgQXNzZW1ibGVyQnVmZmVyIHsK
KyAgICBzdHJ1Y3QgQXNzZW1ibGVyRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEFzc2VtYmxlckRh
dGE+IHsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBpbmxpbmVDYXBhY2l0eSA9IDEyODsKKwor
ICAgICAgICBBc3NlbWJsZXJEYXRhKCkgOiBtX2RhdGEoaW5saW5lQ2FwYWNpdHkpIHsgfQorICAg
ICAgICAKKyAgICAgICAgdHlwZWRlZiBWZWN0b3I8Y2hhciwgaW5saW5lQ2FwYWNpdHksIFVuc2Fm
ZVZlY3Rvck92ZXJmbG93PiBEYXRhVmVjdG9yOworICAgICAgICBEYXRhVmVjdG9yIG1fZGF0YTsK
KyAgICB9OworCisgICAgY2xhc3MgQXNzZW1ibGVyQnVmZmVyIHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIEFzc2VtYmxlckJ1ZmZlcigpCi0gICAgICAgICAgICA6IG1fc3RvcmFnZShpbmxpbmVDYXBh
Y2l0eSkKLSAgICAgICAgICAgICwgbV9idWZmZXIobV9zdG9yYWdlLmJlZ2luKCkpCi0gICAgICAg
ICAgICAsIG1fY2FwYWNpdHkoaW5saW5lQ2FwYWNpdHkpCisgICAgICAgICAgICA6IG1fc3RvcmFn
ZShhZG9wdFJlZihuZXcgQXNzZW1ibGVyRGF0YSgpKSkKKyAgICAgICAgICAgICwgbV9idWZmZXIo
bV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKSkKKyAgICAgICAgICAgICwgbV9jYXBhY2l0eShBc3Nl
bWJsZXJEYXRhOjppbmxpbmVDYXBhY2l0eSkKICAgICAgICAgICAgICwgbV9pbmRleCgwKQogICAg
ICAgICB7CiAgICAgICAgIH0KQEAgLTEzMSw2ICsxMzksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgfQogCiAgICAgICAgIHVuc2lnbmVkIGRlYnVnT2Zmc2V0KCkgeyByZXR1cm4gbV9pbmRl
eDsgfQorICAgICAgICAKKyAgICAgICAgQXNzZW1ibGVyRGF0YSogc3RvcmFnZSgpIHsgcmV0dXJu
IG1fc3RvcmFnZS5nZXQoKTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGFwcGVu
ZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKQEAgLTE0NiwxMiArMTU2LDEyIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBtX2NhcGFjaXR5ICs9IG1fY2FwYWNp
dHkgLyAyICsgZXh0cmFDYXBhY2l0eTsKIAotICAgICAgICAgICAgbV9zdG9yYWdlLmdyb3cobV9j
YXBhY2l0eSk7Ci0gICAgICAgICAgICBtX2J1ZmZlciA9IG1fc3RvcmFnZS5iZWdpbigpOworICAg
ICAgICAgICAgbV9zdG9yYWdlLT5tX2RhdGEuZ3JvdyhtX2NhcGFjaXR5KTsKKyAgICAgICAgICAg
IG1fYnVmZmVyID0gbV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKTsKICAgICAgICAgfQogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgVmVjdG9yPGNoYXIsIGlubGluZUNhcGFjaXR5LCBVbnNhZmVWZWN0
b3JPdmVyZmxvdz4gbV9zdG9yYWdlOworICAgICAgICBSZWZQdHI8QXNzZW1ibGVyRGF0YT4gbV9z
dG9yYWdlOwogICAgICAgICBjaGFyKiBtX2J1ZmZlcjsKICAgICAgICAgaW50IG1fY2FwYWNpdHk7
CiAgICAgICAgIGludCBtX2luZGV4OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9MaW5rQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9MaW5rQnVmZmVyLmgJKHJldmlzaW9uIDE1OTU0NSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4
NSw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgICAgICAsIG1fZGlkQWxsb2NhdGUoZmFsc2UpCiAg
ICAgICAgICwgbV9jb2RlKDApCisgICAgICAgICwgbV9zdG9yYWdlKG1hc20tPm1fYXNzZW1ibGVy
LmJ1ZmZlcigpLnN0b3JhZ2UoKSkKICAgICAgICAgLCBtX2Fzc2VtYmxlcihtYXNtKQogICAgICAg
ICAsIG1fdm0oJnZtKQogI2lmbmRlZiBOREVCVUcKQEAgLTEwMSw2ICsxMDIsNyBAQCBwdWJsaWM6
CiAjZW5kaWYKICAgICAgICAgLCBtX2RpZEFsbG9jYXRlKGZhbHNlKQogICAgICAgICAsIG1fY29k
ZShjb2RlKQorICAgICAgICAsIG1fc3RvcmFnZShtYXNtLT5tX2Fzc2VtYmxlci5idWZmZXIoKS5z
dG9yYWdlKCkpCiAgICAgICAgICwgbV9hc3NlbWJsZXIobWFzbSkKICAgICAgICAgLCBtX3ZtKCZ2
bSkKICNpZm5kZWYgTkRFQlVHCkBAIC0yNTAsMTAgKzI1MiwxNyBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgorI2lmIEVOQUJMRShCUkFOQ0hfQ09NUEFDVElPTikKKyAgICBpbnQgZXhlY3V0
YWJsZU9mZnNldEZvcihpbnQgbG9jYXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50MzJfdCo+KG1fc3RvcmFnZS0+bV9kYXRhLmJlZ2luKCkpW2xvY2F0aW9uIC8gc2l6
ZW9mKGludDMyX3QpIC0gMV07CisgICAgfQorI2VuZGlmCisgICAgCiAgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IFQgYXBwbHlPZmZzZXQoVCBzcmMpCiAgICAgewogI2lmIEVOQUJMRShCUkFOQ0hf
Q09NUEFDVElPTikKLSAgICAgICAgc3JjLm1fb2Zmc2V0IC09IG1fYXNzZW1ibGVyLT5leGVjdXRh
YmxlT2Zmc2V0Rm9yKHNyYy5tX29mZnNldCk7CisgICAgICAgIHNyYy5tX29mZnNldCAtPSBleGVj
dXRhYmxlT2Zmc2V0Rm9yKHNyYy5tX29mZnNldCk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIHNy
YzsKICAgICB9CkBAIC0yOTAsNiArMjk5LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIGJvb2wg
bV9kaWRBbGxvY2F0ZTsKICAgICB2b2lkKiBtX2NvZGU7CisgICAgUmVmUHRyPEFzc2VtYmxlckRh
dGE+IG1fc3RvcmFnZTsKICAgICBNYWNyb0Fzc2VtYmxlciogbV9hc3NlbWJsZXI7CiAgICAgVk0q
IG1fdm07CiAjaWZuZGVmIE5ERUJVRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHJldmlzaW9uIDE1OTU0NSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5o
CSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlY29y
ZExpbmtPZmZzZXRzKGludDMyX3QgcmVnaW9uU3RhcnQsIGludDMyX3QgcmVnaW9uRW5kLCBpbnQz
Ml90IG9mZnNldCkge3JldHVybiBtX2Fzc2VtYmxlci5yZWNvcmRMaW5rT2Zmc2V0cyhyZWdpb25T
dGFydCwgcmVnaW9uRW5kLCBvZmZzZXQpOyB9CiAgICAgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5
cGUganVtcFR5cGUsIEp1bXBMaW5rVHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJuIG1fYXNzZW1i
bGVyLmp1bXBTaXplRGVsdGEoanVtcFR5cGUsIGp1bXBMaW5rVHlwZSk7IH0KICAgICB2b2lkIGxp
bmsoTGlua1JlY29yZCYgcmVjb3JkLCB1aW50OF90KiBmcm9tLCB1aW50OF90KiB0bykgeyByZXR1
cm4gbV9hc3NlbWJsZXIubGluayhyZWNvcmQsIGZyb20sIHRvKTsgfQotICAgIGludCBleGVjdXRh
YmxlT2Zmc2V0Rm9yKGludCBsb2NhdGlvbikgeyByZXR1cm4gbV9hc3NlbWJsZXIuZXhlY3V0YWJs
ZU9mZnNldEZvcihsb2NhdGlvbik7IH0KIAogICAgIHN0YXRpYyBjb25zdCBTY2FsZSBTY2FsZVB0
ciA9IFRpbWVzRWlnaHQ7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCShyZXZpc2lvbiAxNTk1NDUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29y
a2luZyBjb3B5KQpAQCAtMTc3NCwxMSArMTc3NCw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAK
LSAgICBpbnQgZXhlY3V0YWJsZU9mZnNldEZvcihpbnQgbG9jYXRpb24pCi0gICAgewotICAgICAg
ICByZXR1cm4gbV9hc3NlbWJsZXIuZXhlY3V0YWJsZU9mZnNldEZvcihsb2NhdGlvbik7Ci0gICAg
fQotCiAgICAgc3RhdGljIEZ1bmN0aW9uUHRyIHJlYWRDYWxsVGFyZ2V0KENvZGVMb2NhdGlvbkNh
bGwgY2FsbCkKICAgICB7CiAgICAgICAgIHJldHVybiBGdW5jdGlvblB0cihyZWludGVycHJldF9j
YXN0PHZvaWQoKikoKT4oQVJNdjdBc3NlbWJsZXI6OnJlYWRDYWxsVGFyZ2V0KGNhbGwuZGF0YUxv
Y2F0aW9uKCkpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217599</attachid>
            <date>2013-11-21 12:37:21 -0800</date>
            <delta_ts>2014-01-09 16:03:19 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>7527</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5NjQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDEzLTExLTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SXQgc2hvdWxkIGJlIHBvc3NpYmxlIGZvciBhIExpbmtCdWZmZXIgdG8gb3V0bGl2ZSB0aGUgTWFj
cm9Bc3NlbWJsZXIgYW5kIHN0aWxsIGJlIHVzZWZ1bAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGFsc28gdGFrZXMgdGhlIG9wcG9y
dHVuaXR5IHRvIGRlLWR1cGxpY2F0ZSBzb21lIGJyYW5jaCBjb21wYWN0aW9uIGNvZGUuCisKKyAg
ICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIv
QVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmJ1ZmZlcik6
CisgICAgICAgICogYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpB
c3NlbWJsZXJEYXRhOjpBc3NlbWJsZXJEYXRhKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibGVyQnVm
ZmVyOjpBc3NlbWJsZXJCdWZmZXIpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6OnN0
b3JhZ2UpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6Omdyb3cpOgorICAgICAgICAq
IGFzc2VtYmxlci9MaW5rQnVmZmVyLmg6CisgICAgICAgIChKU0M6OkxpbmtCdWZmZXI6OkxpbmtC
dWZmZXIpOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpleGVjdXRhYmxlT2Zmc2V0Rm9yKToK
KyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6YXBwbHlPZmZzZXQpOgorICAgICAgICAqIGFzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNNjQ6OmxpbmspOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6
CisKIDIwMTMtMTEtMjEgIEJhbGF6cyBLaWx2YWR5ICA8a2lsdmFkeWJAaG9tZWppbm5pLmNvbT4K
IAogICAgICAgICBbTUlQU10gQnVpbGQgZmFpbHMgc2luY2UgcjE1OTU0NS4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgJKHJldmlz
aW9uIDE1OTY0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3Nl
bWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ5NCwxMyArMjQ5NCw2IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGIubV9vZmZzZXQgLSBhLm1fb2Zmc2V0OwogICAgIH0KIAotICAgIGludCBl
eGVjdXRhYmxlT2Zmc2V0Rm9yKGludCBsb2NhdGlvbikKLSAgICB7Ci0gICAgICAgIGlmICghbG9j
YXRpb24pCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGludDMyX3QqPihtX2J1ZmZlci5kYXRhKCkpW2xvY2F0aW9uIC8gc2l6ZW9mKGludDMyX3QpIC0g
MV07Ci0gICAgfQotCiAgICAgdm9pZCogdW5saW5rZWRDb2RlKCkgeyByZXR1cm4gbV9idWZmZXIu
ZGF0YSgpOyB9CiAgICAgc2l6ZV90IGNvZGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIu
Y29kZVNpemUoKTsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FS
TXY3QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BUk12N0Fzc2VtYmxlci5oCShyZXZpc2lvbiAxNTk2NDEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4
Miw2ICs1ODIsOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAorICAgIEFzc2VtYmxlckJ1ZmZl
ciYgYnVmZmVyKCkgeyByZXR1cm4gbV9mb3JtYXR0ZXIubV9idWZmZXI7IH0KKwogcHJpdmF0ZToK
IAogICAgIC8vIEFSTXY3LCBBcHB4LUEuNi4zCkBAIC0yMDM1LDEzICsyMDM3LDYgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYi5tX29mZnNldCAtIGEubV9vZmZzZXQ7CiAgICAgfQogCi0gICAg
aW50IGV4ZWN1dGFibGVPZmZzZXRGb3IoaW50IGxvY2F0aW9uKQotICAgIHsKLSAgICAgICAgaWYg
KCFsb2NhdGlvbikKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50MzJfdCo+KG1fZm9ybWF0dGVyLmRhdGEoKSlbbG9jYXRpb24gLyBzaXplb2YoaW50
MzJfdCkgLSAxXTsKLSAgICB9Ci0gICAgCiAgICAgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5cGUg
anVtcFR5cGUsIEp1bXBMaW5rVHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJuIEpVTVBfRU5VTV9T
SVpFKGp1bXBUeXBlKSAtIEpVTVBfRU5VTV9TSVpFKGp1bXBMaW5rVHlwZSk7IH0KICAgICAKICAg
ICAvLyBBc3NlbWJsZXIgYWRtaW4gbWV0aG9kczoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAkocmV2aXNpb24gMTU5NjQxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNjAsMTMgKzYwLDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1
aW50MzJfdCBtX29mZnNldDsKICAgICB9OwogCi0gICAgY2xhc3MgQXNzZW1ibGVyQnVmZmVyIHsK
KyAgICBzdHJ1Y3QgQXNzZW1ibGVyRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEFzc2VtYmxlckRh
dGE+IHsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBpbmxpbmVDYXBhY2l0eSA9IDEyODsKKwor
ICAgICAgICBBc3NlbWJsZXJEYXRhKCkgOiBtX2RhdGEoaW5saW5lQ2FwYWNpdHkpIHsgfQorICAg
ICAgICAKKyAgICAgICAgdHlwZWRlZiBWZWN0b3I8Y2hhciwgaW5saW5lQ2FwYWNpdHksIFVuc2Fm
ZVZlY3Rvck92ZXJmbG93PiBEYXRhVmVjdG9yOworICAgICAgICBEYXRhVmVjdG9yIG1fZGF0YTsK
KyAgICB9OworCisgICAgY2xhc3MgQXNzZW1ibGVyQnVmZmVyIHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIEFzc2VtYmxlckJ1ZmZlcigpCi0gICAgICAgICAgICA6IG1fc3RvcmFnZShpbmxpbmVDYXBh
Y2l0eSkKLSAgICAgICAgICAgICwgbV9idWZmZXIobV9zdG9yYWdlLmJlZ2luKCkpCi0gICAgICAg
ICAgICAsIG1fY2FwYWNpdHkoaW5saW5lQ2FwYWNpdHkpCisgICAgICAgICAgICA6IG1fc3RvcmFn
ZShhZG9wdFJlZihuZXcgQXNzZW1ibGVyRGF0YSgpKSkKKyAgICAgICAgICAgICwgbV9idWZmZXIo
bV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKSkKKyAgICAgICAgICAgICwgbV9jYXBhY2l0eShBc3Nl
bWJsZXJEYXRhOjppbmxpbmVDYXBhY2l0eSkKICAgICAgICAgICAgICwgbV9pbmRleCgwKQogICAg
ICAgICB7CiAgICAgICAgIH0KQEAgLTEzMSw2ICsxMzksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgfQogCiAgICAgICAgIHVuc2lnbmVkIGRlYnVnT2Zmc2V0KCkgeyByZXR1cm4gbV9pbmRl
eDsgfQorICAgICAgICAKKyAgICAgICAgQXNzZW1ibGVyRGF0YSogc3RvcmFnZSgpIHsgcmV0dXJu
IG1fc3RvcmFnZS5nZXQoKTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGFwcGVu
ZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKQEAgLTE0NiwxMiArMTU2LDEyIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBtX2NhcGFjaXR5ICs9IG1fY2FwYWNp
dHkgLyAyICsgZXh0cmFDYXBhY2l0eTsKIAotICAgICAgICAgICAgbV9zdG9yYWdlLmdyb3cobV9j
YXBhY2l0eSk7Ci0gICAgICAgICAgICBtX2J1ZmZlciA9IG1fc3RvcmFnZS5iZWdpbigpOworICAg
ICAgICAgICAgbV9zdG9yYWdlLT5tX2RhdGEuZ3JvdyhtX2NhcGFjaXR5KTsKKyAgICAgICAgICAg
IG1fYnVmZmVyID0gbV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKTsKICAgICAgICAgfQogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgVmVjdG9yPGNoYXIsIGlubGluZUNhcGFjaXR5LCBVbnNhZmVWZWN0
b3JPdmVyZmxvdz4gbV9zdG9yYWdlOworICAgICAgICBSZWZQdHI8QXNzZW1ibGVyRGF0YT4gbV9z
dG9yYWdlOwogICAgICAgICBjaGFyKiBtX2J1ZmZlcjsKICAgICAgICAgaW50IG1fY2FwYWNpdHk7
CiAgICAgICAgIGludCBtX2luZGV4OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9MaW5rQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9MaW5rQnVmZmVyLmgJKHJldmlzaW9uIDE1OTY0MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4
NSw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgICAgICAsIG1fZGlkQWxsb2NhdGUoZmFsc2UpCiAg
ICAgICAgICwgbV9jb2RlKDApCisgICAgICAgICwgbV9zdG9yYWdlKG1hc20tPm1fYXNzZW1ibGVy
LmJ1ZmZlcigpLnN0b3JhZ2UoKSkKICAgICAgICAgLCBtX2Fzc2VtYmxlcihtYXNtKQogICAgICAg
ICAsIG1fdm0oJnZtKQogI2lmbmRlZiBOREVCVUcKQEAgLTEwMSw2ICsxMDIsNyBAQCBwdWJsaWM6
CiAjZW5kaWYKICAgICAgICAgLCBtX2RpZEFsbG9jYXRlKGZhbHNlKQogICAgICAgICAsIG1fY29k
ZShjb2RlKQorICAgICAgICAsIG1fc3RvcmFnZShtYXNtLT5tX2Fzc2VtYmxlci5idWZmZXIoKS5z
dG9yYWdlKCkpCiAgICAgICAgICwgbV9hc3NlbWJsZXIobWFzbSkKICAgICAgICAgLCBtX3ZtKCZ2
bSkKICNpZm5kZWYgTkRFQlVHCkBAIC0yNTAsMTAgKzI1MiwxOSBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgorI2lmIEVOQUJMRShCUkFOQ0hfQ09NUEFDVElPTikKKyAgICBpbnQgZXhlY3V0
YWJsZU9mZnNldEZvcihpbnQgbG9jYXRpb24pCisgICAgeworICAgICAgICBpZiAoIWxvY2F0aW9u
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQz
Ml90Kj4obV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKSlbbG9jYXRpb24gLyBzaXplb2YoaW50MzJf
dCkgLSAxXTsKKyAgICB9CisjZW5kaWYKKyAgICAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
VCBhcHBseU9mZnNldChUIHNyYykKICAgICB7CiAjaWYgRU5BQkxFKEJSQU5DSF9DT01QQUNUSU9O
KQotICAgICAgICBzcmMubV9vZmZzZXQgLT0gbV9hc3NlbWJsZXItPmV4ZWN1dGFibGVPZmZzZXRG
b3Ioc3JjLm1fb2Zmc2V0KTsKKyAgICAgICAgc3JjLm1fb2Zmc2V0IC09IGV4ZWN1dGFibGVPZmZz
ZXRGb3Ioc3JjLm1fb2Zmc2V0KTsKICNlbmRpZgogICAgICAgICByZXR1cm4gc3JjOwogICAgIH0K
QEAgLTI5MCw2ICszMDEsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgYm9vbCBtX2RpZEFsbG9j
YXRlOwogICAgIHZvaWQqIG1fY29kZTsKKyAgICBSZWZQdHI8QXNzZW1ibGVyRGF0YT4gbV9zdG9y
YWdlOwogICAgIE1hY3JvQXNzZW1ibGVyKiBtX2Fzc2VtYmxlcjsKICAgICBWTSogbV92bTsKICNp
Zm5kZWYgTkRFQlVHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNpb24gMTU5NjQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTcwLDcgKzcwLDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVjb3JkTGlua09mZnNl
dHMoaW50MzJfdCByZWdpb25TdGFydCwgaW50MzJfdCByZWdpb25FbmQsIGludDMyX3Qgb2Zmc2V0
KSB7cmV0dXJuIG1fYXNzZW1ibGVyLnJlY29yZExpbmtPZmZzZXRzKHJlZ2lvblN0YXJ0LCByZWdp
b25FbmQsIG9mZnNldCk7IH0KICAgICBpbnQganVtcFNpemVEZWx0YShKdW1wVHlwZSBqdW1wVHlw
ZSwgSnVtcExpbmtUeXBlIGp1bXBMaW5rVHlwZSkgeyByZXR1cm4gbV9hc3NlbWJsZXIuanVtcFNp
emVEZWx0YShqdW1wVHlwZSwganVtcExpbmtUeXBlKTsgfQogICAgIHZvaWQgbGluayhMaW5rUmVj
b3JkJiByZWNvcmQsIHVpbnQ4X3QqIGZyb20sIHVpbnQ4X3QqIHRvKSB7IHJldHVybiBtX2Fzc2Vt
Ymxlci5saW5rKHJlY29yZCwgZnJvbSwgdG8pOyB9Ci0gICAgaW50IGV4ZWN1dGFibGVPZmZzZXRG
b3IoaW50IGxvY2F0aW9uKSB7IHJldHVybiBtX2Fzc2VtYmxlci5leGVjdXRhYmxlT2Zmc2V0Rm9y
KGxvY2F0aW9uKTsgfQogCiAgICAgc3RhdGljIGNvbnN0IFNjYWxlIFNjYWxlUHRyID0gVGltZXNF
aWdodDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHJldmlzaW9uIDE1OTY0MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzc0LDExICsxNzc0LDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIAotICAgIGludCBl
eGVjdXRhYmxlT2Zmc2V0Rm9yKGludCBsb2NhdGlvbikKLSAgICB7Ci0gICAgICAgIHJldHVybiBt
X2Fzc2VtYmxlci5leGVjdXRhYmxlT2Zmc2V0Rm9yKGxvY2F0aW9uKTsKLSAgICB9Ci0KICAgICBz
dGF0aWMgRnVuY3Rpb25QdHIgcmVhZENhbGxUYXJnZXQoQ29kZUxvY2F0aW9uQ2FsbCBjYWxsKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCgq
KSgpPihBUk12N0Fzc2VtYmxlcjo6cmVhZENhbGxUYXJnZXQoY2FsbC5kYXRhTG9jYXRpb24oKSkp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220782</attachid>
            <date>2014-01-09 16:03:19 -0800</date>
            <delta_ts>2014-02-21 18:34:56 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>7527</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5NjQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDEzLTExLTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SXQgc2hvdWxkIGJlIHBvc3NpYmxlIGZvciBhIExpbmtCdWZmZXIgdG8gb3V0bGl2ZSB0aGUgTWFj
cm9Bc3NlbWJsZXIgYW5kIHN0aWxsIGJlIHVzZWZ1bAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGFsc28gdGFrZXMgdGhlIG9wcG9y
dHVuaXR5IHRvIGRlLWR1cGxpY2F0ZSBzb21lIGJyYW5jaCBjb21wYWN0aW9uIGNvZGUuCisKKyAg
ICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIv
QVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmJ1ZmZlcik6
CisgICAgICAgICogYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpB
c3NlbWJsZXJEYXRhOjpBc3NlbWJsZXJEYXRhKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibGVyQnVm
ZmVyOjpBc3NlbWJsZXJCdWZmZXIpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6OnN0
b3JhZ2UpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6Omdyb3cpOgorICAgICAgICAq
IGFzc2VtYmxlci9MaW5rQnVmZmVyLmg6CisgICAgICAgIChKU0M6OkxpbmtCdWZmZXI6OkxpbmtC
dWZmZXIpOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpleGVjdXRhYmxlT2Zmc2V0Rm9yKToK
KyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6YXBwbHlPZmZzZXQpOgorICAgICAgICAqIGFzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNNjQ6OmxpbmspOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6
CisKIDIwMTMtMTEtMjEgIEJhbGF6cyBLaWx2YWR5ICA8a2lsdmFkeWJAaG9tZWppbm5pLmNvbT4K
IAogICAgICAgICBbTUlQU10gQnVpbGQgZmFpbHMgc2luY2UgcjE1OTU0NS4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgJKHJldmlz
aW9uIDE1OTY0MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3Nl
bWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ5NCwxMyArMjQ5NCw2IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGIubV9vZmZzZXQgLSBhLm1fb2Zmc2V0OwogICAgIH0KIAotICAgIGludCBl
eGVjdXRhYmxlT2Zmc2V0Rm9yKGludCBsb2NhdGlvbikKLSAgICB7Ci0gICAgICAgIGlmICghbG9j
YXRpb24pCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGludDMyX3QqPihtX2J1ZmZlci5kYXRhKCkpW2xvY2F0aW9uIC8gc2l6ZW9mKGludDMyX3QpIC0g
MV07Ci0gICAgfQotCiAgICAgdm9pZCogdW5saW5rZWRDb2RlKCkgeyByZXR1cm4gbV9idWZmZXIu
ZGF0YSgpOyB9CiAgICAgc2l6ZV90IGNvZGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIu
Y29kZVNpemUoKTsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FS
TXY3QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BUk12N0Fzc2VtYmxlci5oCShyZXZpc2lvbiAxNTk2NDEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4
Miw2ICs1ODIsOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAorICAgIEFzc2VtYmxlckJ1ZmZl
ciYgYnVmZmVyKCkgeyByZXR1cm4gbV9mb3JtYXR0ZXIubV9idWZmZXI7IH0KKwogcHJpdmF0ZToK
IAogICAgIC8vIEFSTXY3LCBBcHB4LUEuNi4zCkBAIC0yMDM1LDEzICsyMDM3LDYgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gYi5tX29mZnNldCAtIGEubV9vZmZzZXQ7CiAgICAgfQogCi0gICAg
aW50IGV4ZWN1dGFibGVPZmZzZXRGb3IoaW50IGxvY2F0aW9uKQotICAgIHsKLSAgICAgICAgaWYg
KCFsb2NhdGlvbikKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50MzJfdCo+KG1fZm9ybWF0dGVyLmRhdGEoKSlbbG9jYXRpb24gLyBzaXplb2YoaW50
MzJfdCkgLSAxXTsKLSAgICB9Ci0gICAgCiAgICAgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5cGUg
anVtcFR5cGUsIEp1bXBMaW5rVHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJuIEpVTVBfRU5VTV9T
SVpFKGp1bXBUeXBlKSAtIEpVTVBfRU5VTV9TSVpFKGp1bXBMaW5rVHlwZSk7IH0KICAgICAKICAg
ICAvLyBBc3NlbWJsZXIgYWRtaW4gbWV0aG9kczoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAkocmV2aXNpb24gMTU5NjQxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNjAsMTMgKzYwLDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1
aW50MzJfdCBtX29mZnNldDsKICAgICB9OwogCi0gICAgY2xhc3MgQXNzZW1ibGVyQnVmZmVyIHsK
KyAgICBzdHJ1Y3QgQXNzZW1ibGVyRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEFzc2VtYmxlckRh
dGE+IHsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBpbmxpbmVDYXBhY2l0eSA9IDEyODsKKwor
ICAgICAgICBBc3NlbWJsZXJEYXRhKCkgOiBtX2RhdGEoaW5saW5lQ2FwYWNpdHkpIHsgfQorICAg
ICAgICAKKyAgICAgICAgdHlwZWRlZiBWZWN0b3I8Y2hhciwgaW5saW5lQ2FwYWNpdHksIFVuc2Fm
ZVZlY3Rvck92ZXJmbG93PiBEYXRhVmVjdG9yOworICAgICAgICBEYXRhVmVjdG9yIG1fZGF0YTsK
KyAgICB9OworCisgICAgY2xhc3MgQXNzZW1ibGVyQnVmZmVyIHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIEFzc2VtYmxlckJ1ZmZlcigpCi0gICAgICAgICAgICA6IG1fc3RvcmFnZShpbmxpbmVDYXBh
Y2l0eSkKLSAgICAgICAgICAgICwgbV9idWZmZXIobV9zdG9yYWdlLmJlZ2luKCkpCi0gICAgICAg
ICAgICAsIG1fY2FwYWNpdHkoaW5saW5lQ2FwYWNpdHkpCisgICAgICAgICAgICA6IG1fc3RvcmFn
ZShhZG9wdFJlZihuZXcgQXNzZW1ibGVyRGF0YSgpKSkKKyAgICAgICAgICAgICwgbV9idWZmZXIo
bV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKSkKKyAgICAgICAgICAgICwgbV9jYXBhY2l0eShBc3Nl
bWJsZXJEYXRhOjppbmxpbmVDYXBhY2l0eSkKICAgICAgICAgICAgICwgbV9pbmRleCgwKQogICAg
ICAgICB7CiAgICAgICAgIH0KQEAgLTEzMSw2ICsxMzksOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgfQogCiAgICAgICAgIHVuc2lnbmVkIGRlYnVnT2Zmc2V0KCkgeyByZXR1cm4gbV9pbmRl
eDsgfQorICAgICAgICAKKyAgICAgICAgQXNzZW1ibGVyRGF0YSogc3RvcmFnZSgpIHsgcmV0dXJu
IG1fc3RvcmFnZS5nZXQoKTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGFwcGVu
ZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKQEAgLTE0NiwxMiArMTU2LDEyIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBtX2NhcGFjaXR5ICs9IG1fY2FwYWNp
dHkgLyAyICsgZXh0cmFDYXBhY2l0eTsKIAotICAgICAgICAgICAgbV9zdG9yYWdlLmdyb3cobV9j
YXBhY2l0eSk7Ci0gICAgICAgICAgICBtX2J1ZmZlciA9IG1fc3RvcmFnZS5iZWdpbigpOworICAg
ICAgICAgICAgbV9zdG9yYWdlLT5tX2RhdGEuZ3JvdyhtX2NhcGFjaXR5KTsKKyAgICAgICAgICAg
IG1fYnVmZmVyID0gbV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKTsKICAgICAgICAgfQogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgVmVjdG9yPGNoYXIsIGlubGluZUNhcGFjaXR5LCBVbnNhZmVWZWN0
b3JPdmVyZmxvdz4gbV9zdG9yYWdlOworICAgICAgICBSZWZQdHI8QXNzZW1ibGVyRGF0YT4gbV9z
dG9yYWdlOwogICAgICAgICBjaGFyKiBtX2J1ZmZlcjsKICAgICAgICAgaW50IG1fY2FwYWNpdHk7
CiAgICAgICAgIGludCBtX2luZGV4OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9MaW5rQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9MaW5rQnVmZmVyLmgJKHJldmlzaW9uIDE1OTY0MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4
NSw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgICAgICAsIG1fZGlkQWxsb2NhdGUoZmFsc2UpCiAg
ICAgICAgICwgbV9jb2RlKDApCisgICAgICAgICwgbV9zdG9yYWdlKG1hc20tPm1fYXNzZW1ibGVy
LmJ1ZmZlcigpLnN0b3JhZ2UoKSkKICAgICAgICAgLCBtX2Fzc2VtYmxlcihtYXNtKQogICAgICAg
ICAsIG1fdm0oJnZtKQogI2lmbmRlZiBOREVCVUcKQEAgLTEwMSw2ICsxMDIsNyBAQCBwdWJsaWM6
CiAjZW5kaWYKICAgICAgICAgLCBtX2RpZEFsbG9jYXRlKGZhbHNlKQogICAgICAgICAsIG1fY29k
ZShjb2RlKQorICAgICAgICAsIG1fc3RvcmFnZShtYXNtLT5tX2Fzc2VtYmxlci5idWZmZXIoKS5z
dG9yYWdlKCkpCiAgICAgICAgICwgbV9hc3NlbWJsZXIobWFzbSkKICAgICAgICAgLCBtX3ZtKCZ2
bSkKICNpZm5kZWYgTkRFQlVHCkBAIC0yNTAsMTAgKzI1MiwxOSBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgorI2lmIEVOQUJMRShCUkFOQ0hfQ09NUEFDVElPTikKKyAgICBpbnQgZXhlY3V0
YWJsZU9mZnNldEZvcihpbnQgbG9jYXRpb24pCisgICAgeworICAgICAgICBpZiAoIWxvY2F0aW9u
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQz
Ml90Kj4obV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKSlbbG9jYXRpb24gLyBzaXplb2YoaW50MzJf
dCkgLSAxXTsKKyAgICB9CisjZW5kaWYKKyAgICAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
VCBhcHBseU9mZnNldChUIHNyYykKICAgICB7CiAjaWYgRU5BQkxFKEJSQU5DSF9DT01QQUNUSU9O
KQotICAgICAgICBzcmMubV9vZmZzZXQgLT0gbV9hc3NlbWJsZXItPmV4ZWN1dGFibGVPZmZzZXRG
b3Ioc3JjLm1fb2Zmc2V0KTsKKyAgICAgICAgc3JjLm1fb2Zmc2V0IC09IGV4ZWN1dGFibGVPZmZz
ZXRGb3Ioc3JjLm1fb2Zmc2V0KTsKICNlbmRpZgogICAgICAgICByZXR1cm4gc3JjOwogICAgIH0K
QEAgLTI5MCw2ICszMDEsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgYm9vbCBtX2RpZEFsbG9j
YXRlOwogICAgIHZvaWQqIG1fY29kZTsKKyAgICBSZWZQdHI8QXNzZW1ibGVyRGF0YT4gbV9zdG9y
YWdlOwogICAgIE1hY3JvQXNzZW1ibGVyKiBtX2Fzc2VtYmxlcjsKICAgICBWTSogbV92bTsKICNp
Zm5kZWYgTkRFQlVHCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNpb24gMTU5NjQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTcwLDcgKzcwLDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVjb3JkTGlua09mZnNl
dHMoaW50MzJfdCByZWdpb25TdGFydCwgaW50MzJfdCByZWdpb25FbmQsIGludDMyX3Qgb2Zmc2V0
KSB7cmV0dXJuIG1fYXNzZW1ibGVyLnJlY29yZExpbmtPZmZzZXRzKHJlZ2lvblN0YXJ0LCByZWdp
b25FbmQsIG9mZnNldCk7IH0KICAgICBpbnQganVtcFNpemVEZWx0YShKdW1wVHlwZSBqdW1wVHlw
ZSwgSnVtcExpbmtUeXBlIGp1bXBMaW5rVHlwZSkgeyByZXR1cm4gbV9hc3NlbWJsZXIuanVtcFNp
emVEZWx0YShqdW1wVHlwZSwganVtcExpbmtUeXBlKTsgfQogICAgIHZvaWQgbGluayhMaW5rUmVj
b3JkJiByZWNvcmQsIHVpbnQ4X3QqIGZyb20sIHVpbnQ4X3QqIHRvKSB7IHJldHVybiBtX2Fzc2Vt
Ymxlci5saW5rKHJlY29yZCwgZnJvbSwgdG8pOyB9Ci0gICAgaW50IGV4ZWN1dGFibGVPZmZzZXRG
b3IoaW50IGxvY2F0aW9uKSB7IHJldHVybiBtX2Fzc2VtYmxlci5leGVjdXRhYmxlT2Zmc2V0Rm9y
KGxvY2F0aW9uKTsgfQogCiAgICAgc3RhdGljIGNvbnN0IFNjYWxlIFNjYWxlUHRyID0gVGltZXNF
aWdodDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTXY3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHJldmlzaW9uIDE1OTY0MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzc0LDExICsxNzc0LDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIAotICAgIGludCBl
eGVjdXRhYmxlT2Zmc2V0Rm9yKGludCBsb2NhdGlvbikKLSAgICB7Ci0gICAgICAgIHJldHVybiBt
X2Fzc2VtYmxlci5leGVjdXRhYmxlT2Zmc2V0Rm9yKGxvY2F0aW9uKTsKLSAgICB9Ci0KICAgICBz
dGF0aWMgRnVuY3Rpb25QdHIgcmVhZENhbGxUYXJnZXQoQ29kZUxvY2F0aW9uQ2FsbCBjYWxsKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCgq
KSgpPihBUk12N0Fzc2VtYmxlcjo6cmVhZENhbGxUYXJnZXQoY2FsbC5kYXRhTG9jYXRpb24oKSkp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224940</attachid>
            <date>2014-02-21 18:34:58 -0800</date>
            <delta_ts>2014-02-21 18:35:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124733-20140221183456.patch</filename>
            <type>text/plain</type>
            <size>7567</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1i
bGVyLmgJKHJldmlzaW9uIDE2NDUxOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvQVJNNjRBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjU5MCwxMyArMjU5MCw2IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGIubV9vZmZzZXQgLSBhLm1fb2Zmc2V0OwogICAgIH0K
IAotICAgIGludCBleGVjdXRhYmxlT2Zmc2V0Rm9yKGludCBsb2NhdGlvbikKLSAgICB7Ci0gICAg
ICAgIGlmICghbG9jYXRpb24pCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGludDMyX3QqPihtX2J1ZmZlci5kYXRhKCkpW2xvY2F0aW9uIC8gc2l6ZW9m
KGludDMyX3QpIC0gMV07Ci0gICAgfQotCiAgICAgdm9pZCogdW5saW5rZWRDb2RlKCkgeyByZXR1
cm4gbV9idWZmZXIuZGF0YSgpOyB9CiAgICAgc2l6ZV90IGNvZGVTaXplKCkgY29uc3QgeyByZXR1
cm4gbV9idWZmZXIuY29kZVNpemUoKTsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCShyZXZpc2lvbiAxNjQ1MTgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU4Myw2ICs1ODMsOCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAorICAgIEFz
c2VtYmxlckJ1ZmZlciYgYnVmZmVyKCkgeyByZXR1cm4gbV9mb3JtYXR0ZXIubV9idWZmZXI7IH0K
KwogcHJpdmF0ZToKIAogICAgIC8vIEFSTXY3LCBBcHB4LUEuNi4zCkBAIC0yMDU5LDEzICsyMDYx
LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYi5tX29mZnNldCAtIGEubV9vZmZzZXQ7CiAg
ICAgfQogCi0gICAgaW50IGV4ZWN1dGFibGVPZmZzZXRGb3IoaW50IGxvY2F0aW9uKQotICAgIHsK
LSAgICAgICAgaWYgKCFsb2NhdGlvbikKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdCo+KG1fZm9ybWF0dGVyLmRhdGEoKSlbbG9jYXRpb24g
LyBzaXplb2YoaW50MzJfdCkgLSAxXTsKLSAgICB9Ci0gICAgCiAgICAgaW50IGp1bXBTaXplRGVs
dGEoSnVtcFR5cGUganVtcFR5cGUsIEp1bXBMaW5rVHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJu
IEpVTVBfRU5VTV9TSVpFKGp1bXBUeXBlKSAtIEpVTVBfRU5VTV9TSVpFKGp1bXBMaW5rVHlwZSk7
IH0KICAgICAKICAgICAvLyBBc3NlbWJsZXIgYWRtaW4gbWV0aG9kczoKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAkocmV2aXNp
b24gMTY0NTE4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJC
dWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTksMTMgKzU5LDIxIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB1aW50MzJfdCBtX29mZnNldDsKICAgICB9OwogCi0gICAgY2xhc3MgQXNzZW1i
bGVyQnVmZmVyIHsKKyAgICBzdHJ1Y3QgQXNzZW1ibGVyRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVk
PEFzc2VtYmxlckRhdGE+IHsKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBpbmxpbmVDYXBhY2l0
eSA9IDEyODsKKworICAgICAgICBBc3NlbWJsZXJEYXRhKCkgOiBtX2RhdGEoaW5saW5lQ2FwYWNp
dHkpIHsgfQorICAgICAgICAKKyAgICAgICAgdHlwZWRlZiBWZWN0b3I8Y2hhciwgaW5saW5lQ2Fw
YWNpdHksIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBEYXRhVmVjdG9yOworICAgICAgICBEYXRhVmVj
dG9yIG1fZGF0YTsKKyAgICB9OworCisgICAgY2xhc3MgQXNzZW1ibGVyQnVmZmVyIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIEFzc2VtYmxlckJ1ZmZlcigpCi0gICAgICAgICAgICA6IG1fc3RvcmFn
ZShpbmxpbmVDYXBhY2l0eSkKLSAgICAgICAgICAgICwgbV9idWZmZXIobV9zdG9yYWdlLmJlZ2lu
KCkpCi0gICAgICAgICAgICAsIG1fY2FwYWNpdHkoaW5saW5lQ2FwYWNpdHkpCisgICAgICAgICAg
ICA6IG1fc3RvcmFnZShhZG9wdFJlZihuZXcgQXNzZW1ibGVyRGF0YSgpKSkKKyAgICAgICAgICAg
ICwgbV9idWZmZXIobV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKSkKKyAgICAgICAgICAgICwgbV9j
YXBhY2l0eShBc3NlbWJsZXJEYXRhOjppbmxpbmVDYXBhY2l0eSkKICAgICAgICAgICAgICwgbV9p
bmRleCgwKQogICAgICAgICB7CiAgICAgICAgIH0KQEAgLTEzMCw2ICsxMzgsOCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgICAgIHVuc2lnbmVkIGRlYnVnT2Zmc2V0KCkgeyBy
ZXR1cm4gbV9pbmRleDsgfQorICAgICAgICAKKyAgICAgICAgQXNzZW1ibGVyRGF0YSogc3RvcmFn
ZSgpIHsgcmV0dXJuIG1fc3RvcmFnZS5nZXQoKTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAg
ICB2b2lkIGFwcGVuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKQEAgLTE0NSwxMiArMTU1
LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBtX2NhcGFjaXR5
ICs9IG1fY2FwYWNpdHkgLyAyICsgZXh0cmFDYXBhY2l0eTsKIAotICAgICAgICAgICAgbV9zdG9y
YWdlLmdyb3cobV9jYXBhY2l0eSk7Ci0gICAgICAgICAgICBtX2J1ZmZlciA9IG1fc3RvcmFnZS5i
ZWdpbigpOworICAgICAgICAgICAgbV9zdG9yYWdlLT5tX2RhdGEuZ3JvdyhtX2NhcGFjaXR5KTsK
KyAgICAgICAgICAgIG1fYnVmZmVyID0gbV9zdG9yYWdlLT5tX2RhdGEuYmVnaW4oKTsKICAgICAg
ICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgVmVjdG9yPGNoYXIsIGlubGluZUNhcGFjaXR5
LCBVbnNhZmVWZWN0b3JPdmVyZmxvdz4gbV9zdG9yYWdlOworICAgICAgICBSZWZQdHI8QXNzZW1i
bGVyRGF0YT4gbV9zdG9yYWdlOwogICAgICAgICBjaGFyKiBtX2J1ZmZlcjsKICAgICAgICAgaW50
IG1fY2FwYWNpdHk7CiAgICAgICAgIGludCBtX2luZGV4OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwCShyZXZpc2lvbiAxNjQ1MTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBMaW5rQnVmZmVyOjpjb3B5Q29tcGFjdEFu
ZExpbmtDb2RlKAogICAgICAgICBpZiAoanVtcHNUb0xpbmtbaV0udG8oKSA+PSBqdW1wc1RvTGlu
a1tpXS5mcm9tKCkpCiAgICAgICAgICAgICB0YXJnZXQgPSBvdXREYXRhICsganVtcHNUb0xpbmtb
aV0udG8oKSAtIG9mZnNldDsgLy8gQ29tcGVuc2F0ZSBmb3Igd2hhdCB3ZSBoYXZlIGNvbGxhcHNl
ZCBzbyBmYXIKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdGFyZ2V0ID0gb3V0RGF0YSArIGp1
bXBzVG9MaW5rW2ldLnRvKCkgLSBtX2Fzc2VtYmxlci0+ZXhlY3V0YWJsZU9mZnNldEZvcihqdW1w
c1RvTGlua1tpXS50bygpKTsKKyAgICAgICAgICAgIHRhcmdldCA9IG91dERhdGEgKyBqdW1wc1Rv
TGlua1tpXS50bygpIC0gZXhlY3V0YWJsZU9mZnNldEZvcihqdW1wc1RvTGlua1tpXS50bygpKTsK
ICAgICAgICAgICAgIAogICAgICAgICBKdW1wTGlua1R5cGUganVtcExpbmtUeXBlID0gbV9hc3Nl
bWJsZXItPmNvbXB1dGVKdW1wVHlwZShqdW1wc1RvTGlua1tpXSwgb3V0RGF0YSArIHdyaXRlUHRy
LCB0YXJnZXQpOwogICAgICAgICAvLyBDb21wYWN0IGJyYW5jaCBpZiB3ZSBjYW4uLi4KQEAgLTEz
Miw3ICsxMzIsNyBAQCB2b2lkIExpbmtCdWZmZXI6OmNvcHlDb21wYWN0QW5kTGlua0NvZGUoCiAg
ICAgICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBqdW1wQ291bnQ7ICsraSkgewog
ICAgICAgICB1aW50OF90KiBsb2NhdGlvbiA9IG91dERhdGEgKyBqdW1wc1RvTGlua1tpXS5mcm9t
KCk7Ci0gICAgICAgIHVpbnQ4X3QqIHRhcmdldCA9IG91dERhdGEgKyBqdW1wc1RvTGlua1tpXS50
bygpIC0gbV9hc3NlbWJsZXItPmV4ZWN1dGFibGVPZmZzZXRGb3IoanVtcHNUb0xpbmtbaV0udG8o
KSk7CisgICAgICAgIHVpbnQ4X3QqIHRhcmdldCA9IG91dERhdGEgKyBqdW1wc1RvTGlua1tpXS50
bygpIC0gZXhlY3V0YWJsZU9mZnNldEZvcihqdW1wc1RvTGlua1tpXS50bygpKTsKICAgICAgICAg
bV9hc3NlbWJsZXItPmxpbmsoanVtcHNUb0xpbmtbaV0sIGxvY2F0aW9uLCB0YXJnZXQpOwogICAg
IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVy
LmgJKHJldmlzaW9uIDE2NDUxOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TGlua0J1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw3IEBAIHB1YmxpYzoKICNl
bmRpZgogICAgICAgICAsIG1fZGlkQWxsb2NhdGUoZmFsc2UpCiAgICAgICAgICwgbV9jb2RlKDAp
CisgICAgICAgICwgbV9zdG9yYWdlKG1hc20tPm1fYXNzZW1ibGVyLmJ1ZmZlcigpLnN0b3JhZ2Uo
KSkKICAgICAgICAgLCBtX2Fzc2VtYmxlcihtYXNtKQogICAgICAgICAsIG1fdm0oJnZtKQogI2lm
bmRlZiBOREVCVUcKQEAgLTEwMyw2ICsxMDQsNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAgICAg
LCBtX2RpZEFsbG9jYXRlKGZhbHNlKQogICAgICAgICAsIG1fY29kZShjb2RlKQorICAgICAgICAs
IG1fc3RvcmFnZShtYXNtLT5tX2Fzc2VtYmxlci5idWZmZXIoKS5zdG9yYWdlKCkpCiAgICAgICAg
ICwgbV9hc3NlbWJsZXIobWFzbSkKICAgICAgICAgLCBtX3ZtKCZ2bSkKICNpZm5kZWYgTkRFQlVH
CkBAIC0yNTcsMTAgKzI1OSwxOSBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgorI2lmIEVO
QUJMRShCUkFOQ0hfQ09NUEFDVElPTikKKyAgICBpbnQgZXhlY3V0YWJsZU9mZnNldEZvcihpbnQg
bG9jYXRpb24pCisgICAgeworICAgICAgICBpZiAoIWxvY2F0aW9uKQorICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50MzJfdCo+KG1fc3RvcmFnZS0+
bV9kYXRhLmJlZ2luKCkpW2xvY2F0aW9uIC8gc2l6ZW9mKGludDMyX3QpIC0gMV07CisgICAgfQor
I2VuZGlmCisgICAgCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQgYXBwbHlPZmZzZXQoVCBz
cmMpCiAgICAgewogI2lmIEVOQUJMRShCUkFOQ0hfQ09NUEFDVElPTikKLSAgICAgICAgc3JjLm1f
b2Zmc2V0IC09IG1fYXNzZW1ibGVyLT5leGVjdXRhYmxlT2Zmc2V0Rm9yKHNyYy5tX29mZnNldCk7
CisgICAgICAgIHNyYy5tX29mZnNldCAtPSBleGVjdXRhYmxlT2Zmc2V0Rm9yKHNyYy5tX29mZnNl
dCk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIHNyYzsKICAgICB9CkBAIC0yOTcsNiArMzA4LDcg
QEAgcHJpdmF0ZToKICNlbmRpZgogICAgIGJvb2wgbV9kaWRBbGxvY2F0ZTsKICAgICB2b2lkKiBt
X2NvZGU7CisgICAgUmVmUHRyPEFzc2VtYmxlckRhdGE+IG1fc3RvcmFnZTsKICAgICBNYWNyb0Fz
c2VtYmxlciogbV9hc3NlbWJsZXI7CiAgICAgVk0qIG1fdm07CiAjaWZuZGVmIE5ERUJVRwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmgJKHJldmlzaW9uIDE2NDUxOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3
MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlY29yZExpbmtPZmZzZXRzKGludDMyX3QgcmVnaW9u
U3RhcnQsIGludDMyX3QgcmVnaW9uRW5kLCBpbnQzMl90IG9mZnNldCkge3JldHVybiBtX2Fzc2Vt
Ymxlci5yZWNvcmRMaW5rT2Zmc2V0cyhyZWdpb25TdGFydCwgcmVnaW9uRW5kLCBvZmZzZXQpOyB9
CiAgICAgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5cGUganVtcFR5cGUsIEp1bXBMaW5rVHlwZSBq
dW1wTGlua1R5cGUpIHsgcmV0dXJuIG1fYXNzZW1ibGVyLmp1bXBTaXplRGVsdGEoanVtcFR5cGUs
IGp1bXBMaW5rVHlwZSk7IH0KICAgICB2b2lkIGxpbmsoTGlua1JlY29yZCYgcmVjb3JkLCB1aW50
OF90KiBmcm9tLCB1aW50OF90KiB0bykgeyByZXR1cm4gbV9hc3NlbWJsZXIubGluayhyZWNvcmQs
IGZyb20sIHRvKTsgfQotICAgIGludCBleGVjdXRhYmxlT2Zmc2V0Rm9yKGludCBsb2NhdGlvbikg
eyByZXR1cm4gbV9hc3NlbWJsZXIuZXhlY3V0YWJsZU9mZnNldEZvcihsb2NhdGlvbik7IH0KIAog
ICAgIHN0YXRpYyBjb25zdCBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRWlnaHQ7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5oCShyZXZpc2lvbiAxNjQ1MTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29ya2luZyBjb3B5KQpAQCAtMTc5MCwxMSArMTc5
MCw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAKLSAgICBpbnQgZXhlY3V0YWJsZU9mZnNldEZv
cihpbnQgbG9jYXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4gbV9hc3NlbWJsZXIuZXhlY3V0
YWJsZU9mZnNldEZvcihsb2NhdGlvbik7Ci0gICAgfQotCiAgICAgc3RhdGljIEZ1bmN0aW9uUHRy
IHJlYWRDYWxsVGFyZ2V0KENvZGVMb2NhdGlvbkNhbGwgY2FsbCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBGdW5jdGlvblB0cihyZWludGVycHJldF9jYXN0PHZvaWQoKikoKT4oQVJNdjdBc3NlbWJs
ZXI6OnJlYWRDYWxsVGFyZ2V0KGNhbGwuZGF0YUxvY2F0aW9uKCkpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224941</attachid>
            <date>2014-02-21 18:36:00 -0800</date>
            <delta_ts>2014-02-21 20:41:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124733-20140221183559.patch</filename>
            <type>text/plain</type>
            <size>8905</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY0NTE4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDE0LTAyLTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SXQgc2hvdWxkIGJlIHBvc3NpYmxlIGZvciBhIExpbmtCdWZmZXIgdG8gb3V0bGl2ZSB0aGUgTWFj
cm9Bc3NlbWJsZXIgYW5kIHN0aWxsIGJlIHVzZWZ1bAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGFsc28gdGFrZXMgdGhlIG9wcG9y
dHVuaXR5IHRvIGRlLWR1cGxpY2F0ZSBzb21lIGJyYW5jaCBjb21wYWN0aW9uIGNvZGUuCisKKyAg
ICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIv
QVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmJ1ZmZlcik6
CisgICAgICAgICogYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpB
c3NlbWJsZXJEYXRhOjpBc3NlbWJsZXJEYXRhKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibGVyQnVm
ZmVyOjpBc3NlbWJsZXJCdWZmZXIpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6OnN0
b3JhZ2UpOgorICAgICAgICAoSlNDOjpBc3NlbWJsZXJCdWZmZXI6Omdyb3cpOgorICAgICAgICAq
IGFzc2VtYmxlci9MaW5rQnVmZmVyLmg6CisgICAgICAgIChKU0M6OkxpbmtCdWZmZXI6OkxpbmtC
dWZmZXIpOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpleGVjdXRhYmxlT2Zmc2V0Rm9yKToK
KyAgICAgICAgKEpTQzo6TGlua0J1ZmZlcjo6YXBwbHlPZmZzZXQpOgorICAgICAgICAqIGFzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNNjQ6OmxpbmspOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6
CisKIDIwMTQtMDItMjEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBKU0NvbnRleHQgaW5zcGVjdGlvbiBzaG91bGQgcmVwb3J0
IGV4Y2VwdGlvbnMgaW4gdGhlIGNvbnNvbGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgJKHJldmlzaW9uIDE2NDUxOCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMjU5MCwxMyArMjU5MCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGIubV9v
ZmZzZXQgLSBhLm1fb2Zmc2V0OwogICAgIH0KIAotICAgIGludCBleGVjdXRhYmxlT2Zmc2V0Rm9y
KGludCBsb2NhdGlvbikKLSAgICB7Ci0gICAgICAgIGlmICghbG9jYXRpb24pCi0gICAgICAgICAg
ICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3QqPihtX2J1ZmZl
ci5kYXRhKCkpW2xvY2F0aW9uIC8gc2l6ZW9mKGludDMyX3QpIC0gMV07Ci0gICAgfQotCiAgICAg
dm9pZCogdW5saW5rZWRDb2RlKCkgeyByZXR1cm4gbV9idWZmZXIuZGF0YSgpOyB9CiAgICAgc2l6
ZV90IGNvZGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIuY29kZVNpemUoKTsgfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxl
ci5oCShyZXZpc2lvbiAxNjQ1MTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0FSTXY3QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4Myw2ICs1ODMsOCBAQCBwdWJs
aWM6CiAgICAgewogICAgIH0KIAorICAgIEFzc2VtYmxlckJ1ZmZlciYgYnVmZmVyKCkgeyByZXR1
cm4gbV9mb3JtYXR0ZXIubV9idWZmZXI7IH0KKwogcHJpdmF0ZToKIAogICAgIC8vIEFSTXY3LCBB
cHB4LUEuNi4zCkBAIC0yMDU5LDEzICsyMDYxLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
Yi5tX29mZnNldCAtIGEubV9vZmZzZXQ7CiAgICAgfQogCi0gICAgaW50IGV4ZWN1dGFibGVPZmZz
ZXRGb3IoaW50IGxvY2F0aW9uKQotICAgIHsKLSAgICAgICAgaWYgKCFsb2NhdGlvbikKLSAgICAg
ICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdCo+KG1f
Zm9ybWF0dGVyLmRhdGEoKSlbbG9jYXRpb24gLyBzaXplb2YoaW50MzJfdCkgLSAxXTsKLSAgICB9
Ci0gICAgCiAgICAgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5cGUganVtcFR5cGUsIEp1bXBMaW5r
VHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJuIEpVTVBfRU5VTV9TSVpFKGp1bXBUeXBlKSAtIEpV
TVBfRU5VTV9TSVpFKGp1bXBMaW5rVHlwZSk7IH0KICAgICAKICAgICAvLyBBc3NlbWJsZXIgYWRt
aW4gbWV0aG9kczoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1i
bGVyQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9Bc3NlbWJsZXJCdWZmZXIuaAkocmV2aXNpb24gMTY0NTE4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTks
MTMgKzU5LDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1aW50MzJfdCBtX29mZnNldDsK
ICAgICB9OwogCi0gICAgY2xhc3MgQXNzZW1ibGVyQnVmZmVyIHsKKyAgICBzdHJ1Y3QgQXNzZW1i
bGVyRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEFzc2VtYmxlckRhdGE+IHsKICAgICAgICAgc3Rh
dGljIGNvbnN0IGludCBpbmxpbmVDYXBhY2l0eSA9IDEyODsKKworICAgICAgICBBc3NlbWJsZXJE
YXRhKCkgOiBtX2RhdGEoaW5saW5lQ2FwYWNpdHkpIHsgfQorICAgICAgICAKKyAgICAgICAgdHlw
ZWRlZiBWZWN0b3I8Y2hhciwgaW5saW5lQ2FwYWNpdHksIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBE
YXRhVmVjdG9yOworICAgICAgICBEYXRhVmVjdG9yIG1fZGF0YTsKKyAgICB9OworCisgICAgY2xh
c3MgQXNzZW1ibGVyQnVmZmVyIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEFzc2VtYmxlckJ1ZmZl
cigpCi0gICAgICAgICAgICA6IG1fc3RvcmFnZShpbmxpbmVDYXBhY2l0eSkKLSAgICAgICAgICAg
ICwgbV9idWZmZXIobV9zdG9yYWdlLmJlZ2luKCkpCi0gICAgICAgICAgICAsIG1fY2FwYWNpdHko
aW5saW5lQ2FwYWNpdHkpCisgICAgICAgICAgICA6IG1fc3RvcmFnZShhZG9wdFJlZihuZXcgQXNz
ZW1ibGVyRGF0YSgpKSkKKyAgICAgICAgICAgICwgbV9idWZmZXIobV9zdG9yYWdlLT5tX2RhdGEu
YmVnaW4oKSkKKyAgICAgICAgICAgICwgbV9jYXBhY2l0eShBc3NlbWJsZXJEYXRhOjppbmxpbmVD
YXBhY2l0eSkKICAgICAgICAgICAgICwgbV9pbmRleCgwKQogICAgICAgICB7CiAgICAgICAgIH0K
QEAgLTEzMCw2ICsxMzgsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgICAg
IHVuc2lnbmVkIGRlYnVnT2Zmc2V0KCkgeyByZXR1cm4gbV9pbmRleDsgfQorICAgICAgICAKKyAg
ICAgICAgQXNzZW1ibGVyRGF0YSogc3RvcmFnZSgpIHsgcmV0dXJuIG1fc3RvcmFnZS5nZXQoKTsg
fQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGFwcGVuZChjb25zdCBjaGFyKiBkYXRh
LCBpbnQgc2l6ZSkKQEAgLTE0NSwxMiArMTU1LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB7CiAgICAgICAgICAgICBtX2NhcGFjaXR5ICs9IG1fY2FwYWNpdHkgLyAyICsgZXh0cmFDYXBh
Y2l0eTsKIAotICAgICAgICAgICAgbV9zdG9yYWdlLmdyb3cobV9jYXBhY2l0eSk7Ci0gICAgICAg
ICAgICBtX2J1ZmZlciA9IG1fc3RvcmFnZS5iZWdpbigpOworICAgICAgICAgICAgbV9zdG9yYWdl
LT5tX2RhdGEuZ3JvdyhtX2NhcGFjaXR5KTsKKyAgICAgICAgICAgIG1fYnVmZmVyID0gbV9zdG9y
YWdlLT5tX2RhdGEuYmVnaW4oKTsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
VmVjdG9yPGNoYXIsIGlubGluZUNhcGFjaXR5LCBVbnNhZmVWZWN0b3JPdmVyZmxvdz4gbV9zdG9y
YWdlOworICAgICAgICBSZWZQdHI8QXNzZW1ibGVyRGF0YT4gbV9zdG9yYWdlOwogICAgICAgICBj
aGFyKiBtX2J1ZmZlcjsKICAgICAgICAgaW50IG1fY2FwYWNpdHk7CiAgICAgICAgIGludCBtX2lu
ZGV4OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZm
ZXIuY3BwCShyZXZpc2lvbiAxNjQ1MTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0xpbmtCdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9p
ZCBMaW5rQnVmZmVyOjpjb3B5Q29tcGFjdEFuZExpbmtDb2RlKAogICAgICAgICBpZiAoanVtcHNU
b0xpbmtbaV0udG8oKSA+PSBqdW1wc1RvTGlua1tpXS5mcm9tKCkpCiAgICAgICAgICAgICB0YXJn
ZXQgPSBvdXREYXRhICsganVtcHNUb0xpbmtbaV0udG8oKSAtIG9mZnNldDsgLy8gQ29tcGVuc2F0
ZSBmb3Igd2hhdCB3ZSBoYXZlIGNvbGxhcHNlZCBzbyBmYXIKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdGFyZ2V0ID0gb3V0RGF0YSArIGp1bXBzVG9MaW5rW2ldLnRvKCkgLSBtX2Fzc2VtYmxl
ci0+ZXhlY3V0YWJsZU9mZnNldEZvcihqdW1wc1RvTGlua1tpXS50bygpKTsKKyAgICAgICAgICAg
IHRhcmdldCA9IG91dERhdGEgKyBqdW1wc1RvTGlua1tpXS50bygpIC0gZXhlY3V0YWJsZU9mZnNl
dEZvcihqdW1wc1RvTGlua1tpXS50bygpKTsKICAgICAgICAgICAgIAogICAgICAgICBKdW1wTGlu
a1R5cGUganVtcExpbmtUeXBlID0gbV9hc3NlbWJsZXItPmNvbXB1dGVKdW1wVHlwZShqdW1wc1Rv
TGlua1tpXSwgb3V0RGF0YSArIHdyaXRlUHRyLCB0YXJnZXQpOwogICAgICAgICAvLyBDb21wYWN0
IGJyYW5jaCBpZiB3ZSBjYW4uLi4KQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIExpbmtCdWZmZXI6
OmNvcHlDb21wYWN0QW5kTGlua0NvZGUoCiAgICAgICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBqdW1wQ291bnQ7ICsraSkgewogICAgICAgICB1aW50OF90KiBsb2NhdGlvbiA9IG91
dERhdGEgKyBqdW1wc1RvTGlua1tpXS5mcm9tKCk7Ci0gICAgICAgIHVpbnQ4X3QqIHRhcmdldCA9
IG91dERhdGEgKyBqdW1wc1RvTGlua1tpXS50bygpIC0gbV9hc3NlbWJsZXItPmV4ZWN1dGFibGVP
ZmZzZXRGb3IoanVtcHNUb0xpbmtbaV0udG8oKSk7CisgICAgICAgIHVpbnQ4X3QqIHRhcmdldCA9
IG91dERhdGEgKyBqdW1wc1RvTGlua1tpXS50bygpIC0gZXhlY3V0YWJsZU9mZnNldEZvcihqdW1w
c1RvTGlua1tpXS50bygpKTsKICAgICAgICAgbV9hc3NlbWJsZXItPmxpbmsoanVtcHNUb0xpbmtb
aV0sIGxvY2F0aW9uLCB0YXJnZXQpOwogICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgJKHJldmlzaW9uIDE2NDUxOCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC04Nyw2ICs4Nyw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgICAgICAsIG1fZGlkQWxsb2NhdGUo
ZmFsc2UpCiAgICAgICAgICwgbV9jb2RlKDApCisgICAgICAgICwgbV9zdG9yYWdlKG1hc20tPm1f
YXNzZW1ibGVyLmJ1ZmZlcigpLnN0b3JhZ2UoKSkKICAgICAgICAgLCBtX2Fzc2VtYmxlcihtYXNt
KQogICAgICAgICAsIG1fdm0oJnZtKQogI2lmbmRlZiBOREVCVUcKQEAgLTEwMyw2ICsxMDQsNyBA
QCBwdWJsaWM6CiAjZW5kaWYKICAgICAgICAgLCBtX2RpZEFsbG9jYXRlKGZhbHNlKQogICAgICAg
ICAsIG1fY29kZShjb2RlKQorICAgICAgICAsIG1fc3RvcmFnZShtYXNtLT5tX2Fzc2VtYmxlci5i
dWZmZXIoKS5zdG9yYWdlKCkpCiAgICAgICAgICwgbV9hc3NlbWJsZXIobWFzbSkKICAgICAgICAg
LCBtX3ZtKCZ2bSkKICNpZm5kZWYgTkRFQlVHCkBAIC0yNTcsMTAgKzI1OSwxOSBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcml2YXRlOgorI2lmIEVOQUJMRShCUkFOQ0hfQ09NUEFDVElPTikKKyAgICBp
bnQgZXhlY3V0YWJsZU9mZnNldEZvcihpbnQgbG9jYXRpb24pCisgICAgeworICAgICAgICBpZiAo
IWxvY2F0aW9uKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBiaXR3aXNl
X2Nhc3Q8aW50MzJfdCo+KG1fc3RvcmFnZS0+bV9kYXRhLmJlZ2luKCkpW2xvY2F0aW9uIC8gc2l6
ZW9mKGludDMyX3QpIC0gMV07CisgICAgfQorI2VuZGlmCisgICAgCiAgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IFQgYXBwbHlPZmZzZXQoVCBzcmMpCiAgICAgewogI2lmIEVOQUJMRShCUkFOQ0hf
Q09NUEFDVElPTikKLSAgICAgICAgc3JjLm1fb2Zmc2V0IC09IG1fYXNzZW1ibGVyLT5leGVjdXRh
YmxlT2Zmc2V0Rm9yKHNyYy5tX29mZnNldCk7CisgICAgICAgIHNyYy5tX29mZnNldCAtPSBleGVj
dXRhYmxlT2Zmc2V0Rm9yKHNyYy5tX29mZnNldCk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIHNy
YzsKICAgICB9CkBAIC0yOTcsNiArMzA4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIGJvb2wg
bV9kaWRBbGxvY2F0ZTsKICAgICB2b2lkKiBtX2NvZGU7CisgICAgUmVmUHRyPEFzc2VtYmxlckRh
dGE+IG1fc3RvcmFnZTsKICAgICBNYWNyb0Fzc2VtYmxlciogbV9hc3NlbWJsZXI7CiAgICAgVk0q
IG1fdm07CiAjaWZuZGVmIE5ERUJVRwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHJldmlzaW9uIDE2NDUxOCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5o
CSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlY29y
ZExpbmtPZmZzZXRzKGludDMyX3QgcmVnaW9uU3RhcnQsIGludDMyX3QgcmVnaW9uRW5kLCBpbnQz
Ml90IG9mZnNldCkge3JldHVybiBtX2Fzc2VtYmxlci5yZWNvcmRMaW5rT2Zmc2V0cyhyZWdpb25T
dGFydCwgcmVnaW9uRW5kLCBvZmZzZXQpOyB9CiAgICAgaW50IGp1bXBTaXplRGVsdGEoSnVtcFR5
cGUganVtcFR5cGUsIEp1bXBMaW5rVHlwZSBqdW1wTGlua1R5cGUpIHsgcmV0dXJuIG1fYXNzZW1i
bGVyLmp1bXBTaXplRGVsdGEoanVtcFR5cGUsIGp1bXBMaW5rVHlwZSk7IH0KICAgICB2b2lkIGxp
bmsoTGlua1JlY29yZCYgcmVjb3JkLCB1aW50OF90KiBmcm9tLCB1aW50OF90KiB0bykgeyByZXR1
cm4gbV9hc3NlbWJsZXIubGluayhyZWNvcmQsIGZyb20sIHRvKTsgfQotICAgIGludCBleGVjdXRh
YmxlT2Zmc2V0Rm9yKGludCBsb2NhdGlvbikgeyByZXR1cm4gbV9hc3NlbWJsZXIuZXhlY3V0YWJs
ZU9mZnNldEZvcihsb2NhdGlvbik7IH0KIAogICAgIHN0YXRpYyBjb25zdCBTY2FsZSBTY2FsZVB0
ciA9IFRpbWVzRWlnaHQ7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCShyZXZpc2lvbiAxNjQ1MTgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29y
a2luZyBjb3B5KQpAQCAtMTc5MCwxMSArMTc5MCw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAK
LSAgICBpbnQgZXhlY3V0YWJsZU9mZnNldEZvcihpbnQgbG9jYXRpb24pCi0gICAgewotICAgICAg
ICByZXR1cm4gbV9hc3NlbWJsZXIuZXhlY3V0YWJsZU9mZnNldEZvcihsb2NhdGlvbik7Ci0gICAg
fQotCiAgICAgc3RhdGljIEZ1bmN0aW9uUHRyIHJlYWRDYWxsVGFyZ2V0KENvZGVMb2NhdGlvbkNh
bGwgY2FsbCkKICAgICB7CiAgICAgICAgIHJldHVybiBGdW5jdGlvblB0cihyZWludGVycHJldF9j
YXN0PHZvaWQoKikoKT4oQVJNdjdBc3NlbWJsZXI6OnJlYWRDYWxsVGFyZ2V0KGNhbGwuZGF0YUxv
Y2F0aW9uKCkpKSk7Cg==
</data>
<flag name="review"
          id="249057"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>