<?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>79902</bug_id>
          
          <creation_ts>2012-02-29 03:28:34 -0800</creation_ts>
          <short_desc>methods like firstRendererOf of NodeRenderingContext should be extracted.</short_desc>
          <delta_ts>2012-03-04 22:30:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>78596</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>567562</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-29 03:28:34 -0800</bug_when>
    <thetext>To make NodeRenderingContext InsertionPoint-aware, we would like to make NodeRenderingContext clear.
Especially, methods to take the first[last] renderer of Node should be extracted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568567</commentid>
    <comment_count>1</comment_count>
      <attachid>129680</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-01 04:55:13 -0800</bug_when>
    <thetext>Created attachment 129680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570376</commentid>
    <comment_count>2</comment_count>
      <attachid>129680</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-04 20:09:43 -0800</bug_when>
    <thetext>Comment on attachment 129680
Patch

could you make them inline?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570393</commentid>
    <comment_count>3</comment_count>
      <attachid>130052</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-03-04 20:34:50 -0800</bug_when>
    <thetext>Created attachment 130052
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570407</commentid>
    <comment_count>4</comment_count>
      <attachid>130052</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-04 22:30:40 -0800</bug_when>
    <thetext>Comment on attachment 130052
Patch for landing

Clearing flags on attachment: 130052

Committed r109704: &lt;http://trac.webkit.org/changeset/109704&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570408</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-04 22:30:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129680</attachid>
            <date>2012-03-01 04:55:13 -0800</date>
            <delta_ts>2012-03-04 20:34:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79902-20120301215512.patch</filename>
            <type>text/plain</type>
            <size>10543</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk5NDM5Y2U1ODRkNjkz
ZTQ1MTQyMzY2ZTc0MWQwNWM2ZTdjMGMxOS4uNTNmY2JlMmMxNjlhNjM4NzJhM2M3OTNmMThiZGI0
NzEwOTNkNDNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAzLTAxICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBNZXRob2RzIGxp
a2UgZmlyc3RSZW5kZXJlck9mIG9mIE5vZGVSZW5kZXJpbmdDb250ZXh0IHNob3VsZCBiZSBleHRy
YWN0ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
OTkwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGZp
cnN0UmVuZGVyZXJPZkluc2VydGlvblBvaW50IHNob3VsZCByZXR1cm4gdGhlIGZpcnN0IHJlbmRl
cmVyIG9mIGl0cyBjaGlsZCwgaG93ZXZlcgorICAgICAgICBpdCByZXR1cm5zIG5leHQgcmVuZGVy
ZXIgb2YgcGFyZW50LiBUaGUgc2FtZSB0aGluZyBoYXBwZW5zIGxhc3RSZW5kZXJlck9mSW5zZXJ0
aW9uUG9pbnQuCisKKyAgICAgICAgVGVzdDogY29udGVudC1lbGVtZW50LW1vdmUuaHRtbCBoYXMg
YW5vdGhlciB0ZXN0IGNhc2UuCisKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0UmVuZGVyZXJP
Zkluc2VydGlvblBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OnByZXZpb3VzUmVuZGVyZXJPZklu
c2VydGlvblBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OmZpcnN0UmVuZGVyZXJPZkluc2VydGlv
blBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6Omxhc3RSZW5kZXJlck9mSW5zZXJ0aW9uUG9pbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3RSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6
Omxhc3RSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0
OjpuZXh0UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6
OnByZXZpb3VzUmVuZGVyZXIpOgorCiAyMDEyLTAyLTI5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlu
eWFrQGNocm9taXVtLm9yZz4gCiAKICAgICAgICAgRmFsbGJhY2sgZWxlbWVudHMgaW4gbm9uLXlv
dW5nZXN0IHNoYWRvdyB0cmVlIHNob3VsZCBub3QgYmUgcmVuZGVyZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAwMWRhODZkNTQ3ZTg5NTUzMDE2
YWNjZGI4YWVkZGFmMThkMDIyYWM4Li43ODNjNGIxNjY5ZTJjNjJiMTVmY2E2MTgxZGZlMWE3Y2U2
OTYzMTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAK
QEAgLTQzLDYgKzQzLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgUmVuZGVy
T2JqZWN0KiBmaXJzdFJlbmRlcmVyT2YoTm9kZSopOworc3RhdGljIFJlbmRlck9iamVjdCogbGFz
dFJlbmRlcmVyT2YoTm9kZSopOworCiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmlu
Z0NvbnRleHQoTm9kZSogbm9kZSkKICAgICA6IG1fcGhhc2UoQXR0YWNoaW5nTm90SW5UcmVlKQog
ICAgICwgbV9ub2RlKG5vZGUpCkBAIC0xMzUsNyArMTM4LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnJlbGVhc2VTdHlsZSgpCiAgICAgcmV0dXJuIG1f
c3R5bGUucmVsZWFzZSgpOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXJP
ZihJbnNlcnRpb25Qb2ludCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJlbmRlck9i
amVjdCogbmV4dFJlbmRlcmVyT2ZJbnNlcnRpb25Qb2ludChJbnNlcnRpb25Qb2ludCogcGFyZW50
LCBOb2RlKiBjdXJyZW50KQogewogICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBjdXJyZW50U2Vs
ZWN0aW9uID0gcGFyZW50LT5zZWxlY3Rpb25zKCktPmZpbmQoY3VycmVudCk7CiAgICAgaWYgKCFj
dXJyZW50U2VsZWN0aW9uKQpAQCAtMTQ5LDcgKzE1Miw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3Qq
IG5leHRSZW5kZXJlck9mKEluc2VydGlvblBvaW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiAg
ICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXJP
ZihJbnNlcnRpb25Qb2ludCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJlbmRlck9i
amVjdCogcHJldmlvdXNSZW5kZXJlck9mSW5zZXJ0aW9uUG9pbnQoSW5zZXJ0aW9uUG9pbnQqIHBh
cmVudCwgTm9kZSogY3VycmVudCkKIHsKICAgICBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJlciA9
IDA7CiAKQEAgLTE2Myw3ICsxNjYsNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1Jl
bmRlcmVyT2YoSW5zZXJ0aW9uUG9pbnQqIHBhcmVudCwgTm9kZSogY3VycmVudCkKICAgICByZXR1
cm4gbGFzdFJlbmRlcmVyOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBmaXJzdFJlbmRlcmVy
T2YoSW5zZXJ0aW9uUG9pbnQqIHBhcmVudCkKK3N0YXRpYyBSZW5kZXJPYmplY3QqIGZpcnN0UmVu
ZGVyZXJPZkluc2VydGlvblBvaW50KEluc2VydGlvblBvaW50KiBwYXJlbnQpCiB7CiAgICAgaWYg
KHBhcmVudC0+aGFzU2VsZWN0aW9uKCkpIHsKICAgICAgICAgZm9yIChIVE1MQ29udGVudFNlbGVj
dGlvbiogc2VsZWN0aW9uID0gcGFyZW50LT5zZWxlY3Rpb25zKCktPmZpcnN0KCk7IHNlbGVjdGlv
bjsgc2VsZWN0aW9uID0gc2VsZWN0aW9uLT5uZXh0KCkpIHsKQEAgLTE3NCwxMCArMTc3LDEwIEBA
IHN0YXRpYyBSZW5kZXJPYmplY3QqIGZpcnN0UmVuZGVyZXJPZihJbnNlcnRpb25Qb2ludCogcGFy
ZW50KQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4gTm9kZVJlbmRlcmlu
Z0NvbnRleHQocGFyZW50KS5uZXh0UmVuZGVyZXIoKTsKKyAgICByZXR1cm4gZmlyc3RSZW5kZXJl
ck9mKHBhcmVudC0+Zmlyc3RDaGlsZCgpKTsKIH0KIAotc3RhdGljIFJlbmRlck9iamVjdCogbGFz
dFJlbmRlcmVyT2YoSW5zZXJ0aW9uUG9pbnQqIHBhcmVudCkKK3N0YXRpYyBSZW5kZXJPYmplY3Qq
IGxhc3RSZW5kZXJlck9mSW5zZXJ0aW9uUG9pbnQoSW5zZXJ0aW9uUG9pbnQqIHBhcmVudCkKIHsK
ICAgICBpZiAocGFyZW50LT5oYXNTZWxlY3Rpb24oKSkgewogICAgICAgICBmb3IgKEhUTUxDb250
ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBwYXJlbnQtPnNlbGVjdGlvbnMoKS0+bGFzdCgpOyBz
ZWxlY3Rpb247IHNlbGVjdGlvbiA9IHNlbGVjdGlvbi0+cHJldmlvdXMoKSkgewpAQCAtMTg4LDcg
KzE5MSw0NCBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihJbnNlcnRpb25Q
b2ludCogcGFyZW50KQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4gTm9k
ZVJlbmRlcmluZ0NvbnRleHQocGFyZW50KS5wcmV2aW91c1JlbmRlcmVyKCk7CisgICAgcmV0dXJu
IGxhc3RSZW5kZXJlck9mKHBhcmVudC0+bGFzdENoaWxkKCkpOworfQorCitzdGF0aWMgUmVuZGVy
T2JqZWN0KiBmaXJzdFJlbmRlcmVyT2YoTm9kZSogbm9kZSkKK3sKKyAgICBmb3IgKDsgbm9kZTsg
bm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKG5vZGUtPnJlbmRlcmVy
KCkpIHsKKyAgICAgICAgICAgIC8vIERvIG5vdCByZXR1cm4gZWxlbWVudHMgdGhhdCBhcmUgYXR0
YWNoZWQgdG8gYSBkaWZmZXJlbnQgZmxvdy10aHJlYWQuCisgICAgICAgICAgICBpZiAobm9kZS0+
cmVuZGVyZXIoKS0+c3R5bGUoKSAmJiAhbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+Zmxvd1Ro
cmVhZCgpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IHJldHVybiBub2RlLT5yZW5kZXJlcigpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzSW5z
ZXJ0aW9uUG9pbnQobm9kZSkpIHsKKyAgICAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGZpcnN0
ID0gZmlyc3RSZW5kZXJlck9mSW5zZXJ0aW9uUG9pbnQodG9JbnNlcnRpb25Qb2ludChub2RlKSkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0OworICAgICAgICB9CisgICAgfQorCisgICAg
cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJlck9mKE5vZGUq
IG5vZGUpCit7CisgICAgZm9yICg7IG5vZGU7IG5vZGUgPSBub2RlLT5wcmV2aW91c1NpYmxpbmco
KSkgeworICAgICAgICBpZiAobm9kZS0+cmVuZGVyZXIoKSkgeworICAgICAgICAgICAgLy8gRG8g
bm90IHJldHVybiBlbGVtZW50cyB0aGF0IGFyZSBhdHRhY2hlZCB0byBhIGRpZmZlcmVudCBmbG93
LXRocmVhZC4KKyAgICAgICAgICAgIGlmIChub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpICYmICFu
b2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5mbG93VGhyZWFkKCkuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzSW5zZXJ0aW9uUG9pbnQobm9kZSkpIHsKKyAgICAg
ICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGxhc3QgPSBsYXN0UmVuZGVyZXJPZkluc2VydGlvblBv
aW50KHRvSW5zZXJ0aW9uUG9pbnQobm9kZSkpKQorICAgICAgICAgICAgICAgIHJldHVybiBsYXN0
OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIDA7CiB9CiAKIFJlbmRlck9iamVjdCog
Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Om5leHRSZW5kZXJlcigpIGNvbnN0CkBAIC0yMDEsNyArMjQx
LDcgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6bmV4dFJlbmRlcmVyKCkg
Y29uc3QKICAgICAgICAgcmV0dXJuIG1fcGFyZW50Rmxvd1JlbmRlcmVyLT5uZXh0UmVuZGVyZXJG
b3JOb2RlKG1fbm9kZSk7CiAKICAgICBpZiAobV9waGFzZSA9PSBBdHRhY2hpbmdEaXN0cmlidXRl
ZCkgewotICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmb3VuZCA9IG5leHRSZW5kZXJlck9mKG1f
aW5zZXJ0aW9uUG9pbnQsIG1fbm9kZSkpCisgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGZvdW5k
ID0gbmV4dFJlbmRlcmVyT2ZJbnNlcnRpb25Qb2ludChtX2luc2VydGlvblBvaW50LCBtX25vZGUp
KQogICAgICAgICAgICAgcmV0dXJuIGZvdW5kOwogICAgICAgICByZXR1cm4gTm9kZVJlbmRlcmlu
Z0NvbnRleHQobV9pbnNlcnRpb25Qb2ludCkubmV4dFJlbmRlcmVyKCk7CiAgICAgfQpAQCAtMjEx
LDIxICsyNTEsNyBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVu
ZGVyZXIoKSBjb25zdAogICAgIGlmIChtX25vZGUtPnBhcmVudE9ySG9zdE5vZGUoKSAmJiAhbV9u
b2RlLT5wYXJlbnRPckhvc3ROb2RlKCktPmF0dGFjaGVkKCkpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgZm9yIChOb2RlKiBub2RlID0gbV9ub2RlLT5uZXh0U2libGluZygpOyBub2RlOyBub2Rl
ID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAobm9kZS0+cmVuZGVyZXIoKSkg
ewotICAgICAgICAgICAgLy8gRG8gbm90IHJldHVybiBlbGVtZW50cyB0aGF0IGFyZSBhdHRhY2hl
ZCB0byBhIGRpZmZlcmVudCBmbG93LXRocmVhZC4KLSAgICAgICAgICAgIGlmIChub2RlLT5yZW5k
ZXJlcigpLT5zdHlsZSgpICYmICFub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5mbG93VGhyZWFk
KCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcmV0
dXJuIG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoaXNJbnNlcnRp
b25Qb2ludChub2RlKSkgewotICAgICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogZmlyc3QgPSBm
aXJzdFJlbmRlcmVyT2YodG9JbnNlcnRpb25Qb2ludChub2RlKSkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGZpcnN0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIGZpcnN0UmVuZGVyZXJPZihtX25vZGUtPm5leHRTaWJsaW5nKCkpOwogfQogCiBSZW5kZXJP
YmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpwcmV2aW91c1JlbmRlcmVyKCkgY29uc3QKQEAg
LTIzOSwyNyArMjY1LDE0IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnBy
ZXZpb3VzUmVuZGVyZXIoKSBjb25zdAogICAgICAgICByZXR1cm4gbV9wYXJlbnRGbG93UmVuZGVy
ZXItPnByZXZpb3VzUmVuZGVyZXJGb3JOb2RlKG1fbm9kZSk7CiAKICAgICBpZiAobV9waGFzZSA9
PSBBdHRhY2hpbmdEaXN0cmlidXRlZCkgewotICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmb3Vu
ZCA9IHByZXZpb3VzUmVuZGVyZXJPZihtX2luc2VydGlvblBvaW50LCBtX25vZGUpKQorICAgICAg
ICBpZiAoUmVuZGVyT2JqZWN0KiBmb3VuZCA9IHByZXZpb3VzUmVuZGVyZXJPZkluc2VydGlvblBv
aW50KG1faW5zZXJ0aW9uUG9pbnQsIG1fbm9kZSkpCiAgICAgICAgICAgICByZXR1cm4gZm91bmQ7
CiAgICAgICAgIHJldHVybiBOb2RlUmVuZGVyaW5nQ29udGV4dChtX2luc2VydGlvblBvaW50KS5w
cmV2aW91c1JlbmRlcmVyKCk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBoYXZl
IHRoZSBzYW1lIE8oTl4yKSBhdm9pZGFuY2UgYXMgbmV4dFJlbmRlcmVyIGRvZXMKICAgICAvLyBo
b3dldmVyLCB3aGVuIEkgdHJpZWQgYWRkaW5nIGl0LCBzZXZlcmFsIHRlc3RzIGZhaWxlZC4KLSAg
ICBmb3IgKE5vZGUqIG5vZGUgPSBtX25vZGUtPnByZXZpb3VzU2libGluZygpOyBub2RlOyBub2Rl
ID0gbm9kZS0+cHJldmlvdXNTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKG5vZGUtPnJlbmRlcmVy
KCkpIHsKLSAgICAgICAgICAgIC8vIERvIG5vdCByZXR1cm4gZWxlbWVudHMgdGhhdCBhcmUgYXR0
YWNoZWQgdG8gYSBkaWZmZXJlbnQgZmxvdy10aHJlYWQuCi0gICAgICAgICAgICBpZiAobm9kZS0+
cmVuZGVyZXIoKS0+c3R5bGUoKSAmJiAhbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+Zmxvd1Ro
cmVhZCgpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
IHJldHVybiBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChpc0luc2Vy
dGlvblBvaW50KG5vZGUpKSB7Ci0gICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBsYXN0ID0g
bGFzdFJlbmRlcmVyT2YodG9JbnNlcnRpb25Qb2ludChub2RlKSkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGxhc3Q7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gbGFzdFJlbmRlcmVyT2YobV9ub2RlLT5wcmV2aW91c1NpYmxpbmcoKSk7CiB9CiAKIFJlbmRl
ck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnBhcmVudFJlbmRlcmVyKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1ZWMzMzFkM2IwYzRjNzMwMzk4ZGI0MWUzNjhiMTlmODRjODZlNjk2Li45OWEzYzI4MGI1
YzFhNTQyOWRlNjY0ZjMyOTExNzRlZDU0NWI5MzA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTItMDMtMDEgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJlZmFjdG9yaW5nOiBNZXRob2RzIGxpa2UgZmlyc3RSZW5kZXJlck9mIG9mIE5vZGVSZW5k
ZXJpbmdDb250ZXh0IHNob3VsZCBiZSBleHRyYWN0ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTkwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkZWQgYSBuZXcgdGVzdCBjYXNlLgor
CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRt
bDoKKwogMjAxMi0wMi0yOSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+
IAogCiAgICAgICAgIEZhbGxiYWNrIGVsZW1lbnRzIGluIG5vbi15b3VuZ2VzdCBzaGFkb3cgdHJl
ZSBzaG91bGQgbm90IGJlIHJlbmRlcmVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS1leHBlY3RlZC50eHQKaW5kZXgg
NDlmZWUxZDEwYmVjNzJmM2MyY2RlZTdlM2VkOGJjNzZkYTQ3NmE2NC4uMDRlZmI4YmVjMTBhZWRm
ZGY5ZDZkMDE3MzA3MjViYmIyZDUxYTZhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0CkBA
IC0yMCw1ICsyMCw3IEBAIHRlc3RDaGFuZ2VPcmRlck9mQ29udGVudAogUEFTUwogdGVzdE1vdmVM
aWdodENoaWxkT3V0CiBQQVNTCit0ZXN0SW5zZXJ0QmVmb3JlRmFsbGJhY2sKK1BBU1MKIFRFU1Qg
Q09NUExFVEVECiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LWVsZW1lbnQtbW92ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRl
bnQtZWxlbWVudC1tb3ZlLmh0bWwKaW5kZXggMmM2MTcwZTExOTJjMjg3NjFmODg4YjRkNTZlZTQx
NzQ0YzkwNTg0Yi4uMzBiOThiZjUwZmM2NmMzOTk1ODVlMmY5YzcyODQ5Nzg3NjhkZDhmYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3Zl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1t
b3ZlLmh0bWwKQEAgLTM1OCw2ICszNTgsMjkgQEAgZnVuY3Rpb24gdGVzdE1vdmVMaWdodENoaWxk
T3V0KGNhbGxJZkRvbmUpIHsKICAgICBzZXRUaW1lb3V0KGYsIDApOwogfQogCitmdW5jdGlvbiB0
ZXN0SW5zZXJ0QmVmb3JlRmFsbGJhY2soY2FsbElmRG9uZSkgeworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KKyAgICAgICAgIjxkaXY+
PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkhPR0U8L3NwYW4+PHNwYW4+RkFMTEJBQ0s8L3NwYW4+
PHNwYW4+QUZURVI8L3NwYW4+PC9kaXY+IjsKKworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFs
LWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7CisKKyAgICB2YXIgc3BhbjEgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgdmFyIHJvb3QgPSBuZXcgV2ViS2l0U2hh
ZG93Um9vdChzcGFuMSk7CisgICAgcm9vdC5pbm5lckhUTUwgPSAiPGNvbnRlbnQ+RkFMTEJBQ0s8
L2NvbnRlbnQ+IjsKKworICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQo
J0JFRk9SRScpKTsKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoc3BhbjEpOworICAgIHRhcmdldC5h
cHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSJykpOworCisgICAgdmFyIGYgPSAo
ZnVuY3Rpb24odGFyZ2V0LCBzcGFuMSwgY2FsbElmRG9uZSkgeyByZXR1cm4gZnVuY3Rpb24oKSB7
CisgICAgICAgIHRhcmdldC5pbnNlcnRCZWZvcmUoY3JlYXRlU3BhbldpdGhUZXh0KCdIT0dFJyks
IHNwYW4xKTsKKyAgICAgICAgY2FsbElmRG9uZSgpOworICAgIH07fSkodGFyZ2V0LCBzcGFuMSwg
Y2FsbElmRG9uZSk7CisKKyAgICBzZXRUaW1lb3V0KGYsIDApOworfQorCiB2YXIgdGVzdEZ1bmNz
ID0gWwogICAgIHRlc3RSZW1vdmVDb250ZW50LAogICAgIHRlc3RSZW1vdmVDb250ZW50VG9SZWNh
bGMxLApAQCAtMzY5LDcgKzM5Miw4IEBAIHZhciB0ZXN0RnVuY3MgPSBbCiAgICAgdGVzdEFwcGVu
ZENvbnRlbnQyLAogICAgIHRlc3RBcHBlbmRDb250ZW50MywKICAgICB0ZXN0Q2hhbmdlT3JkZXJP
ZkNvbnRlbnQsCi0gICAgdGVzdE1vdmVMaWdodENoaWxkT3V0CisgICAgdGVzdE1vdmVMaWdodENo
aWxkT3V0LAorICAgIHRlc3RJbnNlcnRCZWZvcmVGYWxsYmFjawogXTsKIAogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130052</attachid>
            <date>2012-03-04 20:34:50 -0800</date>
            <delta_ts>2012-03-04 22:30:40 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-79902-20120305133448.patch</filename>
            <type>text/plain</type>
            <size>10666</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5Njk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRlNzcwMzQ1ZTViMzZk
ZmJkYmI4ZDI4M2U2MWM4YzhmY2Q0YzczZC4uYzcwMDZhODk2MDllYTU5MjA5NjBmZDMxYmIyMDIx
NTVlM2RhOGZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAzLTAxICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBNZXRob2RzIGxp
a2UgZmlyc3RSZW5kZXJlck9mIG9mIE5vZGVSZW5kZXJpbmdDb250ZXh0IHNob3VsZCBiZSBleHRy
YWN0ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
OTkwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEhhamltZSBNb3JpdGEuCisKKyAgICAgICAgZmly
c3RSZW5kZXJlck9mSW5zZXJ0aW9uUG9pbnQgc2hvdWxkIHJldHVybiB0aGUgZmlyc3QgcmVuZGVy
ZXIgb2YgaXRzIGNoaWxkLCBob3dldmVyCisgICAgICAgIGl0IHJldHVybnMgbmV4dCByZW5kZXJl
ciBvZiBwYXJlbnQuIFRoZSBzYW1lIHRoaW5nIGhhcHBlbnMgbGFzdFJlbmRlcmVyT2ZJbnNlcnRp
b25Qb2ludC4KKworICAgICAgICBUZXN0OiBjb250ZW50LWVsZW1lbnQtbW92ZS5odG1sIGhhcyBh
bm90aGVyIHRlc3QgY2FzZS4KKworICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Om5leHRSZW5kZXJlck9m
SW5zZXJ0aW9uUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6cHJldmlvdXNSZW5kZXJlck9mSW5z
ZXJ0aW9uUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3RSZW5kZXJlck9mSW5zZXJ0aW9u
UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6bGFzdFJlbmRlcmVyT2ZJbnNlcnRpb25Qb2ludCk6
CisgICAgICAgIChXZWJDb3JlOjpmaXJzdFJlbmRlcmVyT2YpOgorICAgICAgICAoV2ViQ29yZTo6
bGFzdFJlbmRlcmVyT2YpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6
Om5leHRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6
cHJldmlvdXNSZW5kZXJlcik6CisKIDIwMTItMDMtMDQgIEx1a2UgTWFjcGhlcnNvbiAgIDxtYWNw
aGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBIYW5kbGUgQ1NTUHJvcGVydHlXZWJraXRD
b2x1bW5CcmVha0FmdGVyLCBDU1NQcm9wZXJ0eVdlYmtpdENvbHVtbkJyZWFrQmVmb3JlIGFuZCBD
U1NQcm9wZXJ0eVdlYmtpdENvbHVtbkJyZWFrSW5zaWRlIGluIENTU1N0eWxlQXBwbHlQcm9wZXJ0
eS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDAx
ZGE4NmQ1NDdlODk1NTMwMTZhY2NkYjhhZWRkYWYxOGQwMjJhYzguLmMwNjAzYzdhOWRmYmQ5Zjg0
Y2Y5YTZkZTllZjFiYWNmMGE4MTdiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5k
ZXJpbmdDb250ZXh0LmNwcApAQCAtNDMsNiArNDMsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK3N0YXRpYyBSZW5kZXJPYmplY3QqIGZpcnN0UmVuZGVyZXJPZihOb2RlKik7CitzdGF0aWMg
UmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihOb2RlKik7CisKIE5vZGVSZW5kZXJpbmdDb250
ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogICAgIDogbV9waGFzZShBdHRh
Y2hpbmdOb3RJblRyZWUpCiAgICAgLCBtX25vZGUobm9kZSkKQEAgLTEzNSw3ICsxMzgsNyBAQCBQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6cmVsZWFzZVN0eWxl
KCkKICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmpl
Y3QqIG5leHRSZW5kZXJlck9mKEluc2VydGlvblBvaW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQp
CitzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyT2ZJbnNlcnRpb25Qb2lu
dChJbnNlcnRpb25Qb2ludCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQogewogICAgIEhUTUxDb250
ZW50U2VsZWN0aW9uKiBjdXJyZW50U2VsZWN0aW9uID0gcGFyZW50LT5zZWxlY3Rpb25zKCktPmZp
bmQoY3VycmVudCk7CiAgICAgaWYgKCFjdXJyZW50U2VsZWN0aW9uKQpAQCAtMTQ5LDcgKzE1Miw3
IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlck9mKEluc2VydGlvblBvaW50KiBw
YXJlbnQsIE5vZGUqIGN1cnJlbnQpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBSZW5kZXJP
YmplY3QqIHByZXZpb3VzUmVuZGVyZXJPZihJbnNlcnRpb25Qb2ludCogcGFyZW50LCBOb2RlKiBj
dXJyZW50KQorc3RhdGljIGlubGluZSBSZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXJPZklu
c2VydGlvblBvaW50KEluc2VydGlvblBvaW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiB7CiAg
ICAgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXIgPSAwOwogCkBAIC0xNjMsNyArMTY2LDcgQEAg
c3RhdGljIFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9mKEluc2VydGlvblBvaW50KiBw
YXJlbnQsIE5vZGUqIGN1cnJlbnQpCiAgICAgcmV0dXJuIGxhc3RSZW5kZXJlcjsKIH0KIAotc3Rh
dGljIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9mKEluc2VydGlvblBvaW50KiBwYXJlbnQp
CitzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9mSW5zZXJ0aW9uUG9p
bnQoSW5zZXJ0aW9uUG9pbnQqIHBhcmVudCkKIHsKICAgICBpZiAocGFyZW50LT5oYXNTZWxlY3Rp
b24oKSkgewogICAgICAgICBmb3IgKEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBw
YXJlbnQtPnNlbGVjdGlvbnMoKS0+Zmlyc3QoKTsgc2VsZWN0aW9uOyBzZWxlY3Rpb24gPSBzZWxl
Y3Rpb24tPm5leHQoKSkgewpAQCAtMTc0LDEwICsxNzcsMTAgQEAgc3RhdGljIFJlbmRlck9iamVj
dCogZmlyc3RSZW5kZXJlck9mKEluc2VydGlvblBvaW50KiBwYXJlbnQpCiAgICAgICAgIHJldHVy
biAwOwogICAgIH0KIAotICAgIHJldHVybiBOb2RlUmVuZGVyaW5nQ29udGV4dChwYXJlbnQpLm5l
eHRSZW5kZXJlcigpOworICAgIHJldHVybiBmaXJzdFJlbmRlcmVyT2YocGFyZW50LT5maXJzdENo
aWxkKCkpOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihJbnNlcnRp
b25Qb2ludCogcGFyZW50KQorc3RhdGljIGlubGluZSBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJl
ck9mSW5zZXJ0aW9uUG9pbnQoSW5zZXJ0aW9uUG9pbnQqIHBhcmVudCkKIHsKICAgICBpZiAocGFy
ZW50LT5oYXNTZWxlY3Rpb24oKSkgewogICAgICAgICBmb3IgKEhUTUxDb250ZW50U2VsZWN0aW9u
KiBzZWxlY3Rpb24gPSBwYXJlbnQtPnNlbGVjdGlvbnMoKS0+bGFzdCgpOyBzZWxlY3Rpb247IHNl
bGVjdGlvbiA9IHNlbGVjdGlvbi0+cHJldmlvdXMoKSkgewpAQCAtMTg4LDcgKzE5MSw0NCBAQCBz
dGF0aWMgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihJbnNlcnRpb25Qb2ludCogcGFyZW50
KQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4gTm9kZVJlbmRlcmluZ0Nv
bnRleHQocGFyZW50KS5wcmV2aW91c1JlbmRlcmVyKCk7CisgICAgcmV0dXJuIGxhc3RSZW5kZXJl
ck9mKHBhcmVudC0+bGFzdENoaWxkKCkpOworfQorCitzdGF0aWMgaW5saW5lIFJlbmRlck9iamVj
dCogZmlyc3RSZW5kZXJlck9mKE5vZGUqIG5vZGUpCit7CisgICAgZm9yICg7IG5vZGU7IG5vZGUg
PSBub2RlLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmIChub2RlLT5yZW5kZXJlcigpKSB7
CisgICAgICAgICAgICAvLyBEbyBub3QgcmV0dXJuIGVsZW1lbnRzIHRoYXQgYXJlIGF0dGFjaGVk
IHRvIGEgZGlmZmVyZW50IGZsb3ctdGhyZWFkLgorICAgICAgICAgICAgaWYgKG5vZGUtPnJlbmRl
cmVyKCktPnN0eWxlKCkgJiYgIW5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCktPmZsb3dUaHJlYWQo
KS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICByZXR1
cm4gbm9kZS0+cmVuZGVyZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc0luc2VydGlv
blBvaW50KG5vZGUpKSB7CisgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmaXJzdCA9IGZp
cnN0UmVuZGVyZXJPZkluc2VydGlvblBvaW50KHRvSW5zZXJ0aW9uUG9pbnQobm9kZSkpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBmaXJzdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy
biAwOworfQorCitzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogbGFzdFJlbmRlcmVyT2YoTm9k
ZSogbm9kZSkKK3sKKyAgICBmb3IgKDsgbm9kZTsgbm9kZSA9IG5vZGUtPnByZXZpb3VzU2libGlu
ZygpKSB7CisgICAgICAgIGlmIChub2RlLT5yZW5kZXJlcigpKSB7CisgICAgICAgICAgICAvLyBE
byBub3QgcmV0dXJuIGVsZW1lbnRzIHRoYXQgYXJlIGF0dGFjaGVkIHRvIGEgZGlmZmVyZW50IGZs
b3ctdGhyZWFkLgorICAgICAgICAgICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCkgJiYg
IW5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCktPmZsb3dUaHJlYWQoKS5pc0VtcHR5KCkpCisgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICByZXR1cm4gbm9kZS0+cmVuZGVyZXIo
KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNJbnNlcnRpb25Qb2ludChub2RlKSkgeworICAg
ICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogbGFzdCA9IGxhc3RSZW5kZXJlck9mSW5zZXJ0aW9u
UG9pbnQodG9JbnNlcnRpb25Qb2ludChub2RlKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGxh
c3Q7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKIH0KIAogUmVuZGVyT2JqZWN0
KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6bmV4dFJlbmRlcmVyKCkgY29uc3QKQEAgLTIwMSw3ICsy
NDEsNyBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIo
KSBjb25zdAogICAgICAgICByZXR1cm4gbV9wYXJlbnRGbG93UmVuZGVyZXItPm5leHRSZW5kZXJl
ckZvck5vZGUobV9ub2RlKTsKIAogICAgIGlmIChtX3BoYXNlID09IEF0dGFjaGluZ0Rpc3RyaWJ1
dGVkKSB7Ci0gICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGZvdW5kID0gbmV4dFJlbmRlcmVyT2Yo
bV9pbnNlcnRpb25Qb2ludCwgbV9ub2RlKSkKKyAgICAgICAgaWYgKFJlbmRlck9iamVjdCogZm91
bmQgPSBuZXh0UmVuZGVyZXJPZkluc2VydGlvblBvaW50KG1faW5zZXJ0aW9uUG9pbnQsIG1fbm9k
ZSkpCiAgICAgICAgICAgICByZXR1cm4gZm91bmQ7CiAgICAgICAgIHJldHVybiBOb2RlUmVuZGVy
aW5nQ29udGV4dChtX2luc2VydGlvblBvaW50KS5uZXh0UmVuZGVyZXIoKTsKICAgICB9CkBAIC0y
MTEsMjEgKzI1MSw3IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om5leHRS
ZW5kZXJlcigpIGNvbnN0CiAgICAgaWYgKG1fbm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpICYmICFt
X25vZGUtPnBhcmVudE9ySG9zdE5vZGUoKS0+YXR0YWNoZWQoKSkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX25vZGUtPm5leHRTaWJsaW5nKCk7IG5vZGU7IG5v
ZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmIChub2RlLT5yZW5kZXJlcigp
KSB7Ci0gICAgICAgICAgICAvLyBEbyBub3QgcmV0dXJuIGVsZW1lbnRzIHRoYXQgYXJlIGF0dGFj
aGVkIHRvIGEgZGlmZmVyZW50IGZsb3ctdGhyZWFkLgotICAgICAgICAgICAgaWYgKG5vZGUtPnJl
bmRlcmVyKCktPnN0eWxlKCkgJiYgIW5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCktPmZsb3dUaHJl
YWQoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBy
ZXR1cm4gbm9kZS0+cmVuZGVyZXIoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpc0luc2Vy
dGlvblBvaW50KG5vZGUpKSB7Ci0gICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmaXJzdCA9
IGZpcnN0UmVuZGVyZXJPZih0b0luc2VydGlvblBvaW50KG5vZGUpKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gZmlyc3Q7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKKyAgICBy
ZXR1cm4gZmlyc3RSZW5kZXJlck9mKG1fbm9kZS0+bmV4dFNpYmxpbmcoKSk7CiB9CiAKIFJlbmRl
ck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIoKSBjb25zdApA
QCAtMjM5LDI3ICsyNjUsMTQgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6
cHJldmlvdXNSZW5kZXJlcigpIGNvbnN0CiAgICAgICAgIHJldHVybiBtX3BhcmVudEZsb3dSZW5k
ZXJlci0+cHJldmlvdXNSZW5kZXJlckZvck5vZGUobV9ub2RlKTsKIAogICAgIGlmIChtX3BoYXNl
ID09IEF0dGFjaGluZ0Rpc3RyaWJ1dGVkKSB7Ci0gICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGZv
dW5kID0gcHJldmlvdXNSZW5kZXJlck9mKG1faW5zZXJ0aW9uUG9pbnQsIG1fbm9kZSkpCisgICAg
ICAgIGlmIChSZW5kZXJPYmplY3QqIGZvdW5kID0gcHJldmlvdXNSZW5kZXJlck9mSW5zZXJ0aW9u
UG9pbnQobV9pbnNlcnRpb25Qb2ludCwgbV9ub2RlKSkKICAgICAgICAgICAgIHJldHVybiBmb3Vu
ZDsKICAgICAgICAgcmV0dXJuIE5vZGVSZW5kZXJpbmdDb250ZXh0KG1faW5zZXJ0aW9uUG9pbnQp
LnByZXZpb3VzUmVuZGVyZXIoKTsKICAgICB9CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGhh
dmUgdGhlIHNhbWUgTyhOXjIpIGF2b2lkYW5jZSBhcyBuZXh0UmVuZGVyZXIgZG9lcwogICAgIC8v
IGhvd2V2ZXIsIHdoZW4gSSB0cmllZCBhZGRpbmcgaXQsIHNldmVyYWwgdGVzdHMgZmFpbGVkLgot
ICAgIGZvciAoTm9kZSogbm9kZSA9IG1fbm9kZS0+cHJldmlvdXNTaWJsaW5nKCk7IG5vZGU7IG5v
ZGUgPSBub2RlLT5wcmV2aW91c1NpYmxpbmcoKSkgewotICAgICAgICBpZiAobm9kZS0+cmVuZGVy
ZXIoKSkgewotICAgICAgICAgICAgLy8gRG8gbm90IHJldHVybiBlbGVtZW50cyB0aGF0IGFyZSBh
dHRhY2hlZCB0byBhIGRpZmZlcmVudCBmbG93LXRocmVhZC4KLSAgICAgICAgICAgIGlmIChub2Rl
LT5yZW5kZXJlcigpLT5zdHlsZSgpICYmICFub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5mbG93
VGhyZWFkKCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGlzSW5z
ZXJ0aW9uUG9pbnQobm9kZSkpIHsKLSAgICAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIGxhc3Qg
PSBsYXN0UmVuZGVyZXJPZih0b0luc2VydGlvblBvaW50KG5vZGUpKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gbGFzdDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAwOworICAgIHJl
dHVybiBsYXN0UmVuZGVyZXJPZihtX25vZGUtPnByZXZpb3VzU2libGluZygpKTsKIH0KIAogUmVu
ZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6cGFyZW50UmVuZGVyZXIoKSBjb25zdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDE0YTQ2NDEyOGU0MGI0NjUwNzJmYjRkZGJhNGU0YjY2N2E2NGNiYWQuLjJiZDBhYzM2
MDQ4ZTg5NjYyMTliODc0MDUzMmFhYTdhYTNkMzllODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMi0wMy0wMSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmVmYWN0b3Jpbmc6IE1ldGhvZHMgbGlrZSBmaXJzdFJlbmRlcmVyT2Ygb2YgTm9kZVJl
bmRlcmluZ0NvbnRleHQgc2hvdWxkIGJlIGV4dHJhY3RlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5OTAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
SGFqaW1lIE1vcml0YS4KKworICAgICAgICBBZGRlZCBhIG5ldyB0ZXN0IGNhc2UuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS5odG1sOgorCiAy
MDEyLTAzLTA0ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
Q2hyb21pdW1dIFdlIHNob3VsZCByZXNldCBtb3VzZSBwb3NpdGlvbiBiZWZvcmUgY2FsbGluZyBl
dmVudFNlbmRlci5tb3VzZU1vdmUgaW4gTGF5b3V0VGVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS1leHBlY3RlZC50
eHQKaW5kZXggNDlmZWUxZDEwYmVjNzJmM2MyY2RlZTdlM2VkOGJjNzZkYTQ3NmE2NC4uMDRlZmI4
YmVjMTBhZWRmZGY5ZDZkMDE3MzA3MjViYmIyZDUxYTZhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUtZXhwZWN0
ZWQudHh0CkBAIC0yMCw1ICsyMCw3IEBAIHRlc3RDaGFuZ2VPcmRlck9mQ29udGVudAogUEFTUwog
dGVzdE1vdmVMaWdodENoaWxkT3V0CiBQQVNTCit0ZXN0SW5zZXJ0QmVmb3JlRmFsbGJhY2sKK1BB
U1MKIFRFU1QgQ09NUExFVEVECiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLmh0bWwKaW5kZXggMmM2MTcwZTExOTJjMjg3NjFmODg4
YjRkNTZlZTQxNzQ0YzkwNTg0Yi4uMzBiOThiZjUwZmM2NmMzOTk1ODVlMmY5YzcyODQ5Nzg3Njhk
ZDhmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxl
bWVudC1tb3ZlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQt
ZWxlbWVudC1tb3ZlLmh0bWwKQEAgLTM1OCw2ICszNTgsMjkgQEAgZnVuY3Rpb24gdGVzdE1vdmVM
aWdodENoaWxkT3V0KGNhbGxJZkRvbmUpIHsKICAgICBzZXRUaW1lb3V0KGYsIDApOwogfQogCitm
dW5jdGlvbiB0ZXN0SW5zZXJ0QmVmb3JlRmFsbGJhY2soY2FsbElmRG9uZSkgeworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KKyAgICAg
ICAgIjxkaXY+PHNwYW4+QkVGT1JFPC9zcGFuPjxzcGFuPkhPR0U8L3NwYW4+PHNwYW4+RkFMTEJB
Q0s8L3NwYW4+PHNwYW4+QUZURVI8L3NwYW4+PC9kaXY+IjsKKworICAgIHZhciB0YXJnZXQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7CisKKyAgICB2YXIgc3Bh
bjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgdmFyIHJvb3QgPSBuZXcg
V2ViS2l0U2hhZG93Um9vdChzcGFuMSk7CisgICAgcm9vdC5pbm5lckhUTUwgPSAiPGNvbnRlbnQ+
RkFMTEJBQ0s8L2NvbnRlbnQ+IjsKKworICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ0JFRk9SRScpKTsKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoc3BhbjEpOworICAg
IHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ0FGVEVSJykpOworCisgICAg
dmFyIGYgPSAoZnVuY3Rpb24odGFyZ2V0LCBzcGFuMSwgY2FsbElmRG9uZSkgeyByZXR1cm4gZnVu
Y3Rpb24oKSB7CisgICAgICAgIHRhcmdldC5pbnNlcnRCZWZvcmUoY3JlYXRlU3BhbldpdGhUZXh0
KCdIT0dFJyksIHNwYW4xKTsKKyAgICAgICAgY2FsbElmRG9uZSgpOworICAgIH07fSkodGFyZ2V0
LCBzcGFuMSwgY2FsbElmRG9uZSk7CisKKyAgICBzZXRUaW1lb3V0KGYsIDApOworfQorCiB2YXIg
dGVzdEZ1bmNzID0gWwogICAgIHRlc3RSZW1vdmVDb250ZW50LAogICAgIHRlc3RSZW1vdmVDb250
ZW50VG9SZWNhbGMxLApAQCAtMzY5LDcgKzM5Miw4IEBAIHZhciB0ZXN0RnVuY3MgPSBbCiAgICAg
dGVzdEFwcGVuZENvbnRlbnQyLAogICAgIHRlc3RBcHBlbmRDb250ZW50MywKICAgICB0ZXN0Q2hh
bmdlT3JkZXJPZkNvbnRlbnQsCi0gICAgdGVzdE1vdmVMaWdodENoaWxkT3V0CisgICAgdGVzdE1v
dmVMaWdodENoaWxkT3V0LAorICAgIHRlc3RJbnNlcnRCZWZvcmVGYWxsYmFjawogXTsKIAogPC9z
Y3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>