<?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>63565</bug_id>
          
          <creation_ts>2011-06-28 14:42:24 -0700</creation_ts>
          <short_desc>DFG non-speculative JIT does not reuse registers when compiling comparisons</short_desc>
          <delta_ts>2011-06-30 18:05:11 -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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>429155</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-06-28 14:42:24 -0700</bug_when>
    <thetext>The DFG JIT generally attempts to reuse argument registers for temporaries and results, particularly when there are obvious opportunities to do so.  The DFG non-speculative JIT fails to reuse registers when emitting code for comparisons.  Moreover, when it does reuse registers, it emits spurious and unnecessary zero-extend sequences even though the subsequent operation will perform zero-extension automatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429161</commentid>
    <comment_count>1</comment_count>
      <attachid>98975</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-06-28 14:46:30 -0700</bug_when>
    <thetext>Created attachment 98975
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429173</commentid>
    <comment_count>2</comment_count>
      <attachid>98975</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-06-28 15:07:19 -0700</bug_when>
    <thetext>Comment on attachment 98975
the patch

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

r- based on above comments, I think we can simplify further by switching to the 3-op branchAdd32 etc calls.

In basicArithOp we&apos;re also retagging arg2 in the case of overflow (&amp; a register has been reused), which I think we can remove if we stop zero-extending the operands.

&gt; Source/JavaScriptCore/dfg/DFGNonSpeculativeJIT.cpp:-176
&gt; -        

Actually, I think we can just remove this - the macro assembler has a 3-op form:
branchAdd32(ResultCondition cond, RegisterID src, TrustedImm32 imm, RegisterID dest) (&amp; branchSub32).
These should be more helpful for platforms with 3-op instructions, like arm.

BTW, if we didn&apos;t have the 3-op branchAdd32, then I don&apos;t think you need zero extension here (since 32bit ops ignore the high bits coming in, and always set high bits to zero), so I think you could just use a move.  And the macro assembler will automatically elide moves to the same register, so you wouldn&apos;t need the if check.

&gt; Source/JavaScriptCore/dfg/DFGNonSpeculativeJIT.cpp:291
&gt;      m_jit.zeroExtend32ToPtr(arg1GPR, resultGPR);

Looking over this, again, I don&apos;t think we need the zero extends here, and as such, I don&apos;t think we need use to use a temporary, at minimum in the case of no overflow.  Again, there are 3-op branchAdd/Sub/Mul calls, which should allow us to plant this in a single instruction on arm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429348</commentid>
    <comment_count>3</comment_count>
      <attachid>99019</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-06-28 18:24:16 -0700</bug_when>
    <thetext>Created attachment 99019
the patch (fix review)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430896</commentid>
    <comment_count>4</comment_count>
      <attachid>99019</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-30 18:05:06 -0700</bug_when>
    <thetext>Comment on attachment 99019
the patch (fix review)

Clearing flags on attachment: 99019

Committed r90189: &lt;http://trac.webkit.org/changeset/90189&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430897</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-30 18:05:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98975</attachid>
            <date>2011-06-28 14:46:30 -0700</date>
            <delta_ts>2011-06-28 18:24:16 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>reusereg_patch_1.diff</filename>
            <type>text/plain</type>
            <size>2692</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODk5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTEtMDYtMjggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBERkcgbm9uLXNwZWN1bGF0aXZl
IEpJVCBkb2VzIG5vdCByZXVzZSByZWdpc3RlcnMgd2hlbiBjb21waWxpbmcgY29tcGFyaXNvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzU2NQor
CisgICAgICAgICogZGZnL0RGR05vblNwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpOb25TcGVjdWxhdGl2ZUpJVDo6a25vd25Db25zdGFudEFyaXRoT3ApOgorICAgICAgICAo
SlNDOjpERkc6Ok5vblNwZWN1bGF0aXZlSklUOjpiYXNpY0FyaXRoT3ApOgorICAgICAgICAoSlND
OjpERkc6Ok5vblNwZWN1bGF0aXZlSklUOjpjb21wYXJlKToKKwogMjAxMS0wNi0yOCAgR2F2aW4g
QmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgT2xpdmVyIEh1bnQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vblNw
ZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vblNwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gODk4OTcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vblNwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTczLDggKzE3Myw5IEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6Omtub3duQ29uc3RhbnRB
cmkKICAgICAgICAgCiAgICAgaWYgKCFpc0tub3duSW50ZWdlcihyZWdDaGlsZCkpCiAgICAgICAg
IG5vdEludCA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIHJlZ0FyZ0dQ
UiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKLSAgICAgICAgCi0gICAgbV9qaXQu
emVyb0V4dGVuZDMyVG9QdHIocmVnQXJnR1BSLCByZXN1bHRHUFIpOyAKKyAgICAKKyAgICBpZiAo
cmVnQXJnR1BSICE9IHJlc3VsdEdQUikKKyAgICAgICAgbV9qaXQuemVyb0V4dGVuZDMyVG9QdHIo
cmVnQXJnR1BSLCByZXN1bHRHUFIpOyAKICAgICAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1bXAg
b3ZlcmZsb3c7CiAgICAgCkBAIC0yODgsNyArMjg5LDggQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJ
VDo6YmFzaWNBcml0aE9wKE5vZAogICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNo
UHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJl
clJlZ2lzdGVyKSk7CiAgICAgCiAgICAgbV9qaXQuemVyb0V4dGVuZDMyVG9QdHIoYXJnMUdQUiwg
cmVzdWx0R1BSKTsKLSAgICBtX2ppdC56ZXJvRXh0ZW5kMzJUb1B0cihhcmcyR1BSLCB0ZW1wR1BS
KTsKKyAgICBpZiAoYXJnMkdQUiAhPSB0ZW1wR1BSKQorICAgICAgICBtX2ppdC56ZXJvRXh0ZW5k
MzJUb1B0cihhcmcyR1BSLCB0ZW1wR1BSKTsKICAgICAKICAgICBzd2l0Y2ggKG9wKSB7CiAgICAg
Y2FzZSBWYWx1ZUFkZDoKQEAgLTM2NCwxMCArMzY2LDggQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJ
VDo6Y29tcGFyZShOb2RlJiBubwogICAgIEdQUlJlZyBhcmcxR1BSID0gYXJnMS5ncHIoKTsKICAg
ICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAgICAgCi0gICAgR1BSVGVtcG9yYXJ5IHJl
c3VsdCh0aGlzKTsKLSAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKKyAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMsIGFyZzIpOwogICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3By
KCk7Ci0gICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOwogICAgIAogICAgIEpJVENvbXBp
bGVyOjpKdW1wTGlzdCBzbG93UGF0aDsKICAgICAKQEAgLTM3NiwxMCArMzc2LDcgQEAgdm9pZCBO
b25TcGVjdWxhdGl2ZUpJVDo6Y29tcGFyZShOb2RlJiBubwogICAgIGlmICghaXNLbm93bkludGVn
ZXIobm9kZS5jaGlsZDIpKQogICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRy
KE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgYXJnMkdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJl
Z2lzdGVyKSk7CiAgICAgCi0gICAgbV9qaXQuemVyb0V4dGVuZDMyVG9QdHIoYXJnMUdQUiwgdGVt
cEdQUik7Ci0gICAgbV9qaXQuemVyb0V4dGVuZDMyVG9QdHIoYXJnMkdQUiwgcmVzdWx0R1BSKTsK
LSAgICAKLSAgICBtX2ppdC5jb21wYXJlMzIoY29uZCwgdGVtcEdQUiwgcmVzdWx0R1BSLCByZXN1
bHRHUFIpOworICAgIG1faml0LmNvbXBhcmUzMihjb25kLCBhcmcxR1BSLCBhcmcyR1BSLCByZXN1
bHRHUFIpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpKdW1wIGhhdmVSZXN1bHQgPSBtX2ppdC5q
dW1wKCk7CiAgICAgCg==
</data>
<flag name="review"
          id="93348"
          type_id="1"
          status="-"
          setter="barraclough"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99019</attachid>
            <date>2011-06-28 18:24:16 -0700</date>
            <delta_ts>2011-06-30 18:05:06 -0700</delta_ts>
            <desc>the patch (fix review)</desc>
            <filename>reusereg_patch_2.diff</filename>
            <type>text/plain</type>
            <size>4826</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODk5NjEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTEtMDYtMjggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBERkcgbm9uLXNwZWN1bGF0aXZl
IEpJVCBkb2VzIG5vdCByZXVzZSByZWdpc3RlcnMgd2hlbiBjb21waWxpbmcgY29tcGFyaXNvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzU2NQor
CisgICAgICAgICogZGZnL0RGR05vblNwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpOb25TcGVjdWxhdGl2ZUpJVDo6a25vd25Db25zdGFudEFyaXRoT3ApOgorICAgICAgICAo
SlNDOjpERkc6Ok5vblNwZWN1bGF0aXZlSklUOjpiYXNpY0FyaXRoT3ApOgorICAgICAgICAoSlND
OjpERkc6Ok5vblNwZWN1bGF0aXZlSklUOjpjb21wYXJlKToKKwogMjAxMS0wNi0yOCAgR2F2aW4g
QmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgT2xpdmVyIEh1bnQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vblNw
ZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vblNwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gODk4OTcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vblNwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTczLDIwICsxNzMsMTggQEAgdm9pZCBOb25TcGVjdWxhdGl2ZUpJVDo6a25vd25Db25zdGFu
dEFyaQogICAgICAgICAKICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKHJlZ0NoaWxkKSkKICAgICAg
ICAgbm90SW50ID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvdywgcmVnQXJn
R1BSLCBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwotICAgICAgICAKLSAgICBtX2pp
dC56ZXJvRXh0ZW5kMzJUb1B0cihyZWdBcmdHUFIsIHJlc3VsdEdQUik7IAotICAgICAgICAKKyAg
ICAKICAgICBKSVRDb21waWxlcjo6SnVtcCBvdmVyZmxvdzsKICAgICAKICAgICBzd2l0Y2ggKG9w
KSB7CiAgICAgY2FzZSBWYWx1ZUFkZDoKICAgICBjYXNlIEFyaXRoQWRkOiB7Ci0gICAgICAgIG92
ZXJmbG93ID0gbV9qaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCBJbW0z
MihpbW0pLCByZXN1bHRHUFIpOworICAgICAgICBvdmVyZmxvdyA9IG1faml0LmJyYW5jaEFkZDMy
KE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgcmVnQXJnR1BSLCBJbW0zMihpbW0pLCByZXN1bHRH
UFIpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgICAgIAogICAgIGNhc2UgQXJpdGhTdWI6
IHsKLSAgICAgICAgb3ZlcmZsb3cgPSBtX2ppdC5icmFuY2hTdWIzMihNYWNyb0Fzc2VtYmxlcjo6
T3ZlcmZsb3csIEltbTMyKGltbSksIHJlc3VsdEdQUik7CisgICAgICAgIG92ZXJmbG93ID0gbV9q
aXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCByZWdBcmdHUFIsIEltbTMy
KGltbSksIHJlc3VsdEdQUik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCkBAIC0y
NzMsMzggKzI3MSwzMiBAQCB2b2lkIE5vblNwZWN1bGF0aXZlSklUOjpiYXNpY0FyaXRoT3AoTm9k
CiAgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdwcigpOwogICAgIEdQUlJlZyBhcmcyR1BSID0g
YXJnMi5ncHIoKTsKICAgICAKLSAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzLCBhcmcyKTsKICAg
ICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogCi0gICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1w
LmdwcigpOwogICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgCiAgICAg
SklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dQYXRoOwotICAgIEpJVENvbXBpbGVyOjpKdW1wTGlz
dCBvdmVyZmxvd1Nsb3dQYXRoOwogICAgIAogICAgIGlmICghaXNLbm93bkludGVnZXIobm9kZS5j
aGlsZDEpKQogICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNz
ZW1ibGVyOjpCZWxvdywgYXJnMUdQUiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7
CiAgICAgaWYgKCFpc0tub3duSW50ZWdlcihub2RlLmNoaWxkMikpCiAgICAgICAgIHNsb3dQYXRo
LmFwcGVuZChtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93LCBhcmcyR1BSLCBH
UFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKICAgICAKLSAgICBtX2ppdC56ZXJvRXh0
ZW5kMzJUb1B0cihhcmcxR1BSLCByZXN1bHRHUFIpOwotICAgIG1faml0Lnplcm9FeHRlbmQzMlRv
UHRyKGFyZzJHUFIsIHRlbXBHUFIpOwotICAgIAogICAgIHN3aXRjaCAob3ApIHsKICAgICBjYXNl
IFZhbHVlQWRkOgogICAgIGNhc2UgQXJpdGhBZGQ6IHsKLSAgICAgICAgb3ZlcmZsb3dTbG93UGF0
aC5hcHBlbmQobV9qaXQuYnJhbmNoQWRkMzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCB0ZW1w
R1BSLCByZXN1bHRHUFIpKTsKKyAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaEFk
ZDMyKE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgYXJnMUdQUiwgYXJnMkdQUiwgcmVzdWx0R1BS
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBBcml0aFN1Yjog
ewotICAgICAgICBvdmVyZmxvd1Nsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFuY2hTdWIzMihNYWNy
b0Fzc2VtYmxlcjo6T3ZlcmZsb3csIHRlbXBHUFIsIHJlc3VsdEdQUikpOworICAgICAgICBzbG93
UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoU3ViMzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCBh
cmcxR1BSLCBhcmcyR1BSLCByZXN1bHRHUFIpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
ICAgICAKICAgICBjYXNlIEFyaXRoTXVsOiB7Ci0gICAgICAgIG92ZXJmbG93U2xvd1BhdGguYXBw
ZW5kKG1faml0LmJyYW5jaE11bDMyKE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgdGVtcEdQUiwg
cmVzdWx0R1BSKSk7Ci0gICAgICAgIG92ZXJmbG93U2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5j
aFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgcmVzdWx0R1BSKSk7CisgICAgICAgIHNsb3dQ
YXRoLmFwcGVuZChtX2ppdC5icmFuY2hNdWwzMihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIGFy
ZzFHUFIsIGFyZzJHUFIsIHJlc3VsdEdQUikpOworICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9q
aXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCByZXN1bHRHUFIpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgICAgICAKQEAgLTMxNiwxMSArMzA4LDYgQEAgdm9pZCBOb25T
cGVjdWxhdGl2ZUpJVDo6YmFzaWNBcml0aE9wKE5vZAogICAgICAgICAKICAgICBKSVRDb21waWxl
cjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOwogICAgIAotICAgIG92ZXJmbG93U2xvd1BhdGgu
bGluaygmbV9qaXQpOwotICAgIAotICAgIGlmIChhcmcyR1BSID09IHRlbXBHUFIpCi0gICAgICAg
IG1faml0Lm9yUHRyKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgYXJnMkdQUik7Ci0g
ICAgCiAgICAgc2xvd1BhdGgubGluaygmbV9qaXQpOwogICAgIAogICAgIHNpbGVudFNwaWxsQWxs
UmVnaXN0ZXJzKHJlc3VsdEdQUiwgYXJnMUdQUiwgYXJnMkdQUik7CkBAIC0zNjQsMTAgKzM1MSw4
IEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6OmNvbXBhcmUoTm9kZSYgbm8KICAgICBHUFJSZWcg
YXJnMUdQUiA9IGFyZzEuZ3ByKCk7CiAgICAgR1BSUmVnIGFyZzJHUFIgPSBhcmcyLmdwcigpOwog
ICAgIAotICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7Ci0gICAgR1BSVGVtcG9yYXJ5IHRl
bXAodGhpcyk7CisgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBhcmcyKTsKICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwotICAgIEdQUlJlZyB0ZW1wR1BSID0gdGVtcC5n
cHIoKTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd1BhdGg7CiAgICAgCkBA
IC0zNzYsMTAgKzM2MSw3IEBAIHZvaWQgTm9uU3BlY3VsYXRpdmVKSVQ6OmNvbXBhcmUoTm9kZSYg
bm8KICAgICBpZiAoIWlzS25vd25JbnRlZ2VyKG5vZGUuY2hpbGQyKSkKICAgICAgICAgc2xvd1Bh
dGguYXBwZW5kKG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3csIGFyZzJHUFIs
IEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOwogICAgIAotICAgIG1faml0Lnplcm9F
eHRlbmQzMlRvUHRyKGFyZzFHUFIsIHRlbXBHUFIpOwotICAgIG1faml0Lnplcm9FeHRlbmQzMlRv
UHRyKGFyZzJHUFIsIHJlc3VsdEdQUik7Ci0gICAgCi0gICAgbV9qaXQuY29tcGFyZTMyKGNvbmQs
IHRlbXBHUFIsIHJlc3VsdEdQUiwgcmVzdWx0R1BSKTsKKyAgICBtX2ppdC5jb21wYXJlMzIoY29u
ZCwgYXJnMUdQUiwgYXJnMkdQUiwgcmVzdWx0R1BSKTsKICAgICAKICAgICBKSVRDb21waWxlcjo6
SnVtcCBoYXZlUmVzdWx0ID0gbV9qaXQuanVtcCgpOwogICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>