<?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>26766</bug_id>
          
          <creation_ts>2009-06-26 17:26:52 -0700</creation_ts>
          <short_desc>Use preferred type of vector enumeration in compositing code</short_desc>
          <delta_ts>2009-06-26 17:38:09 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>128600</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-26 17:26:52 -0700</bug_when>
    <thetext>Change compositing code to use loop indexes, rather than iterators for the z-order list vectors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128601</commentid>
    <comment_count>1</comment_count>
      <attachid>31961</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-26 17:30:02 -0700</bug_when>
    <thetext>Created attachment 31961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128602</commentid>
    <comment_count>2</comment_count>
      <attachid>31961</attachid>
    <who name="">mitz</who>
    <bug_when>2009-06-26 17:34:39 -0700</bug_when>
    <thetext>Comment on attachment 31961
Patch

r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128603</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-06-26 17:38:09 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/45297</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31961</attachid>
            <date>2009-06-26 17:30:02 -0700</date>
            <delta_ts>2009-06-26 17:34:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>26766_patch.txt</filename>
            <type>text/plain</type>
            <size>16894</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
M2ZiYjFkMS4uZWIxYjRhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0wNi0yNiAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjY3NjYKKworICAgICAgICBDaGFuZ2UgdG8gdXNlIGFycmF5IGluZGV4aW5nIHJhdGhlciB0
aGFuIFZlY3RvciBlbnVtZXJhdG9yczsgdGhlIGZvcm1lcgorICAgICAgICBhcmUgcHJlZmVycmVk
IHN0eWxlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6Omhhc05vbkNvbXBvc2l0aW5nQ29u
dGVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNhbGN1bGF0ZUNvbXBvc2l0
ZWRCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21w
dXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0NoaWxkcmVuR2Vv
bWV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWN1cnNp
dmVSZXBhaW50TGF5ZXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6bGF5ZXJIYXMzRENvbnRlbnQpOgorCiAyMDA5LTA2LTI2ICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggZGQ1ZmFmZC4uYWU1MTgx
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC01NDMsMjkg
KzU0MywyOSBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6aGFzTm9uQ29tcG9zaXRpbmdDb250
ZW50KCkgY29uc3QKICAgICAvLyBGSVhNRTogdGVzdCBmb3Igb3ZlcmZsb3cgY29udHJvbHMuCiAg
ICAgaWYgKG1fb3duaW5nTGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKICAgICAgICAgLy8g
VXNlIHRoZSBtX2hhc0NvbXBvc2l0aW5nRGVzY2VuZGFudCBiaXQgdG8gb3B0aW1pemU/Ci0gICAg
ICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0gbV9vd25pbmdMYXllci0+
bmVnWk9yZGVyTGlzdCgpOwotICAgICAgICBpZiAobmVnWk9yZGVyTGlzdCAmJiBuZWdaT3JkZXJM
aXN0LT5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICBmb3IgKFZlY3RvcjxSZW5kZXJMYXllcio+
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG5lZ1pPcmRlckxpc3QtPmJlZ2luKCk7IGl0ICE9IG5lZ1pP
cmRlckxpc3QtPmVuZCgpOyArK2l0KSB7Ci0gICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1
ckxheWVyID0gKCppdCk7CisgICAgICAgIGlmIChWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbmVnWk9y
ZGVyTGlzdCA9IG1fb3duaW5nTGF5ZXItPm5lZ1pPcmRlckxpc3QoKSkgeworICAgICAgICAgICAg
c2l6ZV90IGxpc3RTaXplID0gbmVnWk9yZGVyTGlzdC0+c2l6ZSgpOworICAgICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgUmVu
ZGVyTGF5ZXIqIGN1ckxheWVyID0gbmVnWk9yZGVyTGlzdC0+YXQoaSk7CiAgICAgICAgICAgICAg
ICAgaWYgKCFjdXJMYXllci0+aXNDb21wb3NpdGVkKCkpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgVmVjdG9yPFJl
bmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSBtX293bmluZ0xheWVyLT5wb3NaT3JkZXJMaXN0
KCk7Ci0gICAgICAgIGlmIChwb3NaT3JkZXJMaXN0ICYmIHBvc1pPcmRlckxpc3QtPnNpemUoKSA+
IDApIHsKLSAgICAgICAgICAgIGZvciAoVmVjdG9yPFJlbmRlckxheWVyKj46OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gcG9zWk9yZGVyTGlzdC0+YmVnaW4oKTsgaXQgIT0gcG9zWk9yZGVyTGlzdC0+ZW5k
KCk7ICsraXQpIHsKLSAgICAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSAoKml0
KTsKKyAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3NaT3JkZXJMaXN0ID0gbV9v
d25pbmdMYXllci0+cG9zWk9yZGVyTGlzdCgpKSB7CisgICAgICAgICAgICBzaXplX3QgbGlzdFNp
emUgPSBwb3NaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICBSZW5kZXJMYXllciogY3Vy
TGF5ZXIgPSBwb3NaT3JkZXJMaXN0LT5hdChpKTsKICAgICAgICAgICAgICAgICBpZiAoIWN1ckxh
eWVyLT5pc0NvbXBvc2l0ZWQoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBWZWN0b3I8UmVuZGVyTGF5ZXIq
Piogbm9ybWFsRmxvd0xpc3QgPSBtX293bmluZ0xheWVyLT5ub3JtYWxGbG93TGlzdCgpOwotICAg
IGlmIChub3JtYWxGbG93TGlzdCAmJiBub3JtYWxGbG93TGlzdC0+c2l6ZSgpID4gMCkgewotICAg
ICAgICBmb3IgKFZlY3RvcjxSZW5kZXJMYXllcio+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG5vcm1h
bEZsb3dMaXN0LT5iZWdpbigpOyBpdCAhPSBub3JtYWxGbG93TGlzdC0+ZW5kKCk7ICsraXQpIHsK
LSAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJMYXllciA9ICgqaXQpOworICAgIGlmIChWZWN0
b3I8UmVuZGVyTGF5ZXIqPiogbm9ybWFsRmxvd0xpc3QgPSBtX293bmluZ0xheWVyLT5ub3JtYWxG
bG93TGlzdCgpKSB7CisgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5vcm1hbEZsb3dMaXN0LT5z
aXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgewor
ICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1ckxheWVyID0gbm9ybWFsRmxvd0xpc3QtPmF0KGkp
OwogICAgICAgICAgICAgaWYgKCFjdXJMYXllci0+aXNDb21wb3NpdGVkKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDhiNzIwYTEuLmQ2MjU0ZjAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjY2LDEwICsyNjYsMTAgQEAg
SW50UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNhbGN1bGF0ZUNvbXBvc2l0ZWRCb3VuZHMo
Y29uc3QgUmVuZGVyTGF5ZXIqIGxheWUKICAgICAKICAgICBBU1NFUlQobGF5ZXItPmlzU3RhY2tp
bmdDb250ZXh0KCkgfHwgKCFsYXllci0+bV9wb3NaT3JkZXJMaXN0IHx8IGxheWVyLT5tX3Bvc1pP
cmRlckxpc3QtPnNpemUoKSA9PSAwKSk7CiAKLSAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbmVn
Wk9yZGVyTGlzdCA9IGxheWVyLT5uZWdaT3JkZXJMaXN0KCk7Ci0gICAgaWYgKG5lZ1pPcmRlckxp
c3QpIHsKLSAgICAgICAgZm9yIChWZWN0b3I8UmVuZGVyTGF5ZXIqPjo6aXRlcmF0b3IgaXQgPSBu
ZWdaT3JkZXJMaXN0LT5iZWdpbigpOyBpdCAhPSBuZWdaT3JkZXJMaXN0LT5lbmQoKTsgKytpdCkg
ewotICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1ckxheWVyID0gKCppdCk7CisgICAgaWYgKFZl
Y3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0gbGF5ZXItPm5lZ1pPcmRlckxpc3Qo
KSkgeworICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7Cisg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgeworICAgICAgICAg
ICAgUmVuZGVyTGF5ZXIqIGN1ckxheWVyID0gbmVnWk9yZGVyTGlzdC0+YXQoaSk7CiAgICAgICAg
ICAgICBpZiAoIWN1ckxheWVyLT5pc0NvbXBvc2l0ZWQoKSkgewogICAgICAgICAgICAgICAgIElu
dFJlY3QgY2hpbGRVbmlvbkJvdW5kcyA9IGNhbGN1bGF0ZUNvbXBvc2l0ZWRCb3VuZHMoY3VyTGF5
ZXIsIGxheWVyKTsKICAgICAgICAgICAgICAgICB1bmlvbkJvdW5kcy51bml0ZShjaGlsZFVuaW9u
Qm91bmRzKTsKQEAgLTI3NywxMCArMjc3LDEwIEBAIEludFJlY3QgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpjYWxjdWxhdGVDb21wb3NpdGVkQm91bmRzKGNvbnN0IFJlbmRlckxheWVyKiBsYXllCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlz
dCA9IGxheWVyLT5wb3NaT3JkZXJMaXN0KCk7Ci0gICAgaWYgKHBvc1pPcmRlckxpc3QpIHsKLSAg
ICAgICAgZm9yIChWZWN0b3I8UmVuZGVyTGF5ZXIqPjo6aXRlcmF0b3IgaXQgPSBwb3NaT3JkZXJM
aXN0LT5iZWdpbigpOyBpdCAhPSBwb3NaT3JkZXJMaXN0LT5lbmQoKTsgKytpdCkgewotICAgICAg
ICAgICAgUmVuZGVyTGF5ZXIqIGN1ckxheWVyID0gKCppdCk7CisgICAgaWYgKFZlY3RvcjxSZW5k
ZXJMYXllcio+KiBwb3NaT3JkZXJMaXN0ID0gbGF5ZXItPnBvc1pPcmRlckxpc3QoKSkgeworICAg
ICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgeworICAgICAgICAgICAgUmVuZGVy
TGF5ZXIqIGN1ckxheWVyID0gcG9zWk9yZGVyTGlzdC0+YXQoaSk7CiAgICAgICAgICAgICBpZiAo
IWN1ckxheWVyLT5pc0NvbXBvc2l0ZWQoKSkgewogICAgICAgICAgICAgICAgIEludFJlY3QgY2hp
bGRVbmlvbkJvdW5kcyA9IGNhbGN1bGF0ZUNvbXBvc2l0ZWRCb3VuZHMoY3VyTGF5ZXIsIGxheWVy
KTsKICAgICAgICAgICAgICAgICB1bmlvbkJvdW5kcy51bml0ZShjaGlsZFVuaW9uQm91bmRzKTsK
QEAgLTI4OCwxMCArMjg4LDEwIEBAIEludFJlY3QgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYWxj
dWxhdGVDb21wb3NpdGVkQm91bmRzKGNvbnN0IFJlbmRlckxheWVyKiBsYXllCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbm9ybWFsRmxvd0xpc3QgPSBsYXll
ci0+bm9ybWFsRmxvd0xpc3QoKTsKLSAgICBpZiAobm9ybWFsRmxvd0xpc3QpIHsKLSAgICAgICAg
Zm9yIChWZWN0b3I8UmVuZGVyTGF5ZXIqPjo6aXRlcmF0b3IgaXQgPSBub3JtYWxGbG93TGlzdC0+
YmVnaW4oKTsgaXQgIT0gbm9ybWFsRmxvd0xpc3QtPmVuZCgpOyArK2l0KSB7Ci0gICAgICAgICAg
ICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSAoKml0KTsKKyAgICBpZiAoVmVjdG9yPFJlbmRlckxh
eWVyKj4qIG5vcm1hbEZsb3dMaXN0ID0gbGF5ZXItPm5vcm1hbEZsb3dMaXN0KCkpIHsKKyAgICAg
ICAgc2l6ZV90IGxpc3RTaXplID0gbm9ybWFsRmxvd0xpc3QtPnNpemUoKTsKKyAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICBSZW5kZXJM
YXllciogY3VyTGF5ZXIgPSBub3JtYWxGbG93TGlzdC0+YXQoaSk7CiAgICAgICAgICAgICBpZiAo
IWN1ckxheWVyLT5pc0NvbXBvc2l0ZWQoKSkgewogICAgICAgICAgICAgICAgIEludFJlY3QgY3Vy
QWJzQm91bmRzID0gY2FsY3VsYXRlQ29tcG9zaXRlZEJvdW5kcyhjdXJMYXllciwgbGF5ZXIpOwog
ICAgICAgICAgICAgICAgIHVuaW9uQm91bmRzLnVuaXRlKGN1ckFic0JvdW5kcyk7CkBAIC0zOTks
MTYgKzM5OSwxNiBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUNvbXBvc2l0
aW5nUmVxdWlyZW1lbnRzKFJlbmRlckxheWVyKiBsYXllciwgcwogCiAgICAgaWYgKGxheWVyLT5p
c1N0YWNraW5nQ29udGV4dCgpKSB7CiAgICAgICAgIEFTU0VSVCghbGF5ZXItPm1fek9yZGVyTGlz
dHNEaXJ0eSk7Ci0gICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0g
bGF5ZXItPm5lZ1pPcmRlckxpc3QoKTsKLSAgICAgICAgaWYgKG5lZ1pPcmRlckxpc3QgJiYgbmVn
Wk9yZGVyTGlzdC0+c2l6ZSgpID4gMCkgewotICAgICAgICAgICAgZm9yIChWZWN0b3I8UmVuZGVy
TGF5ZXIqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBuZWdaT3JkZXJMaXN0LT5iZWdpbigpOyBpdCAh
PSBuZWdaT3JkZXJMaXN0LT5lbmQoKTsgKytpdCkgewotICAgICAgICAgICAgICAgIFJlbmRlckxh
eWVyKiBjdXJMYXllciA9ICgqaXQpOworICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4q
IG5lZ1pPcmRlckxpc3QgPSBsYXllci0+bmVnWk9yZGVyTGlzdCgpKSB7CisgICAgICAgICAgICBz
aXplX3QgbGlzdFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICBSZW5k
ZXJMYXllciogY3VyTGF5ZXIgPSBuZWdaT3JkZXJMaXN0LT5hdChpKTsKICAgICAgICAgICAgICAg
ICBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoY3VyTGF5ZXIsIGNoaWxkU3RhdGUpOwog
Ci0gICAgICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSB0byBtYWtlIGEgbGF5ZXIgZm9yIHRoaXMg
Y2hpbGQsIG1ha2Ugb25lIG5vdyBzbyB3ZSBjYW4gaGF2ZSBhIGNvbnRlbnRzIGxheWVyCi0gICAg
ICAgICAgICAgICAgLy8gKHNpbmNlIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIC12ZSB6LW9y
ZGVyIGNoaWxkIHJlbmRlcnMgdW5kZXJuZWF0aCBvdXIgY29udGVudHMpCisgICAgICAgICAgICAg
ICAgLy8gSWYgd2UgaGF2ZSB0byBtYWtlIGEgbGF5ZXIgZm9yIHRoaXMgY2hpbGQsIG1ha2Ugb25l
IG5vdyBzbyB3ZSBjYW4gaGF2ZSBhIGNvbnRlbnRzIGxheWVyCisgICAgICAgICAgICAgICAgLy8g
KHNpbmNlIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIC12ZSB6LW9yZGVyIGNoaWxkIHJlbmRl
cnMgdW5kZXJuZWF0aCBvdXIgY29udGVudHMpLgogICAgICAgICAgICAgICAgIGlmIChjaGlsZFN0
YXRlLm1fc3VidHJlZUlzQ29tcG9zaXRpbmcpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gbWFr
ZSB8dGhpc3wgY29tcG9zaXRpbmcKKyAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBsYXllciBj
b21wb3NpdGluZwogICAgICAgICAgICAgICAgICAgICBsYXllci0+c2V0TXVzdE92ZXJsYXlDb21w
b3NpdGVkTGF5ZXJzKHRydWUpOwogICAgICAgICAgICAgICAgICAgICBjaGlsZFN0YXRlLm1fY29t
cG9zaXRpbmdBbmNlc3RvciA9IGxheWVyOwogICAgICAgICAgICAgICAgIH0KQEAgLTQyNiwxMCAr
NDI2LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjb21wdXRlQ29tcG9zaXRpbmdS
ZXF1aXJlbWVudHMoUmVuZGVyTGF5ZXIqIGxheWVyLCBzCiAgICAgfQogCiAgICAgaWYgKGxheWVy
LT5pc1N0YWNraW5nQ29udGV4dCgpKSB7Ci0gICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBw
b3NaT3JkZXJMaXN0ID0gbGF5ZXItPnBvc1pPcmRlckxpc3QoKTsKLSAgICAgICAgaWYgKHBvc1pP
cmRlckxpc3QgJiYgcG9zWk9yZGVyTGlzdC0+c2l6ZSgpID4gMCkgewotICAgICAgICAgICAgZm9y
IChWZWN0b3I8UmVuZGVyTGF5ZXIqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBwb3NaT3JkZXJMaXN0
LT5iZWdpbigpOyBpdCAhPSBwb3NaT3JkZXJMaXN0LT5lbmQoKTsgKytpdCkgewotICAgICAgICAg
ICAgICAgIFJlbmRlckxheWVyKiBjdXJMYXllciA9ICgqaXQpOworICAgICAgICBpZiAoVmVjdG9y
PFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSBsYXllci0+cG9zWk9yZGVyTGlzdCgpKSB7
CisgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXplKCk7Cisg
ICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBwb3NaT3JkZXJMaXN0LT5hdChpKTsK
ICAgICAgICAgICAgICAgICBjb21wdXRlQ29tcG9zaXRpbmdSZXF1aXJlbWVudHMoY3VyTGF5ZXIs
IGNoaWxkU3RhdGUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC01NTEsMTAgKzU1MSwx
MCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJU
cmVlKFJlbmRlckxheWVyKiBsYXllciwgc3RydQogICAgIGlmIChsYXllci0+aXNTdGFja2luZ0Nv
bnRleHQoKSkgewogICAgICAgICBBU1NFUlQoIWxheWVyLT5tX3pPcmRlckxpc3RzRGlydHkpOwog
Ci0gICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0gbGF5ZXItPm5l
Z1pPcmRlckxpc3QoKTsKLSAgICAgICAgaWYgKG5lZ1pPcmRlckxpc3QgJiYgbmVnWk9yZGVyTGlz
dC0+c2l6ZSgpID4gMCkgewotICAgICAgICAgICAgZm9yIChWZWN0b3I8UmVuZGVyTGF5ZXIqPjo6
Y29uc3RfaXRlcmF0b3IgaXQgPSBuZWdaT3JkZXJMaXN0LT5iZWdpbigpOyBpdCAhPSBuZWdaT3Jk
ZXJMaXN0LT5lbmQoKTsgKytpdCkgewotICAgICAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJM
YXllciA9ICgqaXQpOworICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIG5lZ1pPcmRl
ckxpc3QgPSBsYXllci0+bmVnWk9yZGVyTGlzdCgpKSB7CisgICAgICAgICAgICBzaXplX3QgbGlz
dFNpemUgPSBuZWdaT3JkZXJMaXN0LT5zaXplKCk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICBSZW5kZXJMYXllciog
Y3VyTGF5ZXIgPSBuZWdaT3JkZXJMaXN0LT5hdChpKTsKICAgICAgICAgICAgICAgICByZWJ1aWxk
Q29tcG9zaXRpbmdMYXllclRyZWUoY3VyTGF5ZXIsIGNoaWxkU3RhdGUpOwogICAgICAgICAgICAg
ICAgIGlmIChjdXJMYXllci0+aXNDb21wb3NpdGVkKCkpCiAgICAgICAgICAgICAgICAgICAgIHNl
dENvbXBvc2l0aW5nUGFyZW50KGN1ckxheWVyLCBjaGlsZFN0YXRlLm1fY29tcG9zaXRpbmdBbmNl
c3Rvcik7CkBAIC01NzEsMTAgKzU3MSwxMCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXllciwgc3RydQogICAg
IH0KIAogICAgIEFTU0VSVCghbGF5ZXItPm1fbm9ybWFsRmxvd0xpc3REaXJ0eSk7Ci0gICAgVmVj
dG9yPFJlbmRlckxheWVyKj4qIG5vcm1hbEZsb3dMaXN0ID0gbGF5ZXItPm5vcm1hbEZsb3dMaXN0
KCk7Ci0gICAgaWYgKG5vcm1hbEZsb3dMaXN0ICYmIG5vcm1hbEZsb3dMaXN0LT5zaXplKCkgPiAw
KSB7Ci0gICAgICAgIGZvciAoVmVjdG9yPFJlbmRlckxheWVyKj46Oml0ZXJhdG9yIGl0ID0gbm9y
bWFsRmxvd0xpc3QtPmJlZ2luKCk7IGl0ICE9IG5vcm1hbEZsb3dMaXN0LT5lbmQoKTsgKytpdCkg
ewotICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1ckxheWVyID0gKCppdCk7CisgICAgaWYgKFZl
Y3RvcjxSZW5kZXJMYXllcio+KiBub3JtYWxGbG93TGlzdCA9IGxheWVyLT5ub3JtYWxGbG93TGlz
dCgpKSB7CisgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5vcm1hbEZsb3dMaXN0LT5zaXplKCk7
CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkgeworICAgICAg
ICAgICAgUmVuZGVyTGF5ZXIqIGN1ckxheWVyID0gbm9ybWFsRmxvd0xpc3QtPmF0KGkpOwogICAg
ICAgICAgICAgcmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKGN1ckxheWVyLCBjaGlsZFN0YXRl
KTsKICAgICAgICAgICAgIGlmIChjdXJMYXllci0+aXNDb21wb3NpdGVkKCkpCiAgICAgICAgICAg
ICAgICAgc2V0Q29tcG9zaXRpbmdQYXJlbnQoY3VyTGF5ZXIsIGNoaWxkU3RhdGUubV9jb21wb3Np
dGluZ0FuY2VzdG9yKTsKQEAgLTU4MiwxMCArNTgyLDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5ZXIqIGxheWVyLCBz
dHJ1CiAgICAgfQogICAgIAogICAgIGlmIChsYXllci0+aXNTdGFja2luZ0NvbnRleHQoKSkgewot
ICAgICAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlzdCA9IGxheWVyLT5wb3Na
T3JkZXJMaXN0KCk7Ci0gICAgICAgIGlmIChwb3NaT3JkZXJMaXN0ICYmIHBvc1pPcmRlckxpc3Qt
PnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIGZvciAoVmVjdG9yPFJlbmRlckxheWVyKj46OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gcG9zWk9yZGVyTGlzdC0+YmVnaW4oKTsgaXQgIT0gcG9zWk9yZGVy
TGlzdC0+ZW5kKCk7ICsraXQpIHsKLSAgICAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5
ZXIgPSAoKml0KTsKKyAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3NaT3JkZXJM
aXN0ID0gbGF5ZXItPnBvc1pPcmRlckxpc3QoKSkgeworICAgICAgICAgICAgc2l6ZV90IGxpc3RT
aXplID0gcG9zWk9yZGVyTGlzdC0+c2l6ZSgpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1
ckxheWVyID0gcG9zWk9yZGVyTGlzdC0+YXQoaSk7CiAgICAgICAgICAgICAgICAgcmVidWlsZENv
bXBvc2l0aW5nTGF5ZXJUcmVlKGN1ckxheWVyLCBjaGlsZFN0YXRlKTsKICAgICAgICAgICAgICAg
ICBpZiAoY3VyTGF5ZXItPmlzQ29tcG9zaXRlZCgpKQogICAgICAgICAgICAgICAgICAgICBzZXRD
b21wb3NpdGluZ1BhcmVudChjdXJMYXllciwgY2hpbGRTdGF0ZS5tX2NvbXBvc2l0aW5nQW5jZXN0
b3IpOwpAQCAtNjExLDE5ICs2MTEsMjIgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUNvbXBvc2l0aW5nQ2hpbGRyZW5HZW9tZXRyeShSZW5kZXJMYXllciogY29tcG8KICAgICAK
ICAgICBpZiAobGF5ZXItPmlzU3RhY2tpbmdDb250ZXh0KCkpIHsKICAgICAgICAgaWYgKFZlY3Rv
cjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0gbGF5ZXItPm5lZ1pPcmRlckxpc3QoKSkg
ewotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuZWdaT3JkZXJMaXN0LT5zaXpl
KCk7ICsraSkKKyAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5lZ1pPcmRlckxpc3QtPnNp
emUoKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdFNpemU7ICsraSkK
ICAgICAgICAgICAgICAgICB1cGRhdGVDb21wb3NpdGluZ0NoaWxkcmVuR2VvbWV0cnkoY29tcG9z
aXRpbmdBbmNlc3RvciwgbmVnWk9yZGVyTGlzdC0+YXQoaSkpOwogICAgICAgICB9CiAgICAgfQog
CiAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBub3JtYWxGbG93TGlzdCA9IGxheWVyLT5u
b3JtYWxGbG93TGlzdCgpKSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbm9ybWFs
Rmxvd0xpc3QtPnNpemUoKTsgKytpKQorICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBub3JtYWxG
bG93TGlzdC0+c2l6ZSgpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXpl
OyArK2kpCiAgICAgICAgICAgICB1cGRhdGVDb21wb3NpdGluZ0NoaWxkcmVuR2VvbWV0cnkoY29t
cG9zaXRpbmdBbmNlc3Rvciwgbm9ybWFsRmxvd0xpc3QtPmF0KGkpKTsKICAgICB9CiAgICAgCiAg
ICAgaWYgKGxheWVyLT5pc1N0YWNraW5nQ29udGV4dCgpKSB7CiAgICAgICAgIGlmIChWZWN0b3I8
UmVuZGVyTGF5ZXIqPiogcG9zWk9yZGVyTGlzdCA9IGxheWVyLT5wb3NaT3JkZXJMaXN0KCkpIHsK
LSAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9zWk9yZGVyTGlzdC0+c2l6ZSgp
OyArK2kpCisgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXpl
KCk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpCiAg
ICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9zaXRpbmdDaGlsZHJlbkdlb21ldHJ5KGNvbXBvc2l0
aW5nQW5jZXN0b3IsIHBvc1pPcmRlckxpc3QtPmF0KGkpKTsKICAgICAgICAgfQogICAgIH0KQEAg
LTY0MSwxMCArNjQ0LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWN1cnNpdmVS
ZXBhaW50TGF5ZXJSZWN0KFJlbmRlckxheWVyKiBsYXllciwgY29uc3QKICAgICAgICAgbGF5ZXIt
PnNldEJhY2tpbmdOZWVkc1JlcGFpbnRJblJlY3QocmVjdCk7CiAKICAgICBpZiAobGF5ZXItPmhh
c0NvbXBvc2l0aW5nRGVzY2VuZGFudCgpKSB7Ci0gICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+
KiBuZWdaT3JkZXJMaXN0ID0gbGF5ZXItPm5lZ1pPcmRlckxpc3QoKTsKLSAgICAgICAgaWYgKG5l
Z1pPcmRlckxpc3QpIHsKLSAgICAgICAgICAgIGZvciAoVmVjdG9yPFJlbmRlckxheWVyKj46Oml0
ZXJhdG9yIGl0ID0gbmVnWk9yZGVyTGlzdC0+YmVnaW4oKTsgaXQgIT0gbmVnWk9yZGVyTGlzdC0+
ZW5kKCk7ICsraXQpIHsKLSAgICAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSAo
Kml0KTsKKyAgICAgICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBuZWdaT3JkZXJMaXN0ID0g
bGF5ZXItPm5lZ1pPcmRlckxpc3QoKSkgeworICAgICAgICAgICAgc2l6ZV90IGxpc3RTaXplID0g
bmVnWk9yZGVyTGlzdC0+c2l6ZSgpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1ckxheWVy
ID0gbmVnWk9yZGVyTGlzdC0+YXQoaSk7CiAgICAgICAgICAgICAgICAgaW50IHggPSAwLCB5ID0g
MDsKICAgICAgICAgICAgICAgICBjdXJMYXllci0+Y29udmVydFRvTGF5ZXJDb29yZHMobGF5ZXIs
IHgsIHkpOwogICAgICAgICAgICAgICAgIEludFJlY3QgY2hpbGRSZWN0KHJlY3QpOwpAQCAtNjUz
LDEwICs2NTYsMTAgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlY3Vyc2l2ZVJlcGFp
bnRMYXllclJlY3QoUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdAogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAKLSAgICAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSBs
YXllci0+cG9zWk9yZGVyTGlzdCgpOwotICAgICAgICBpZiAocG9zWk9yZGVyTGlzdCkgewotICAg
ICAgICAgICAgZm9yIChWZWN0b3I8UmVuZGVyTGF5ZXIqPjo6aXRlcmF0b3IgaXQgPSBwb3NaT3Jk
ZXJMaXN0LT5iZWdpbigpOyBpdCAhPSBwb3NaT3JkZXJMaXN0LT5lbmQoKTsgKytpdCkgewotICAg
ICAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJMYXllciA9ICgqaXQpOworICAgICAgICBpZiAo
VmVjdG9yPFJlbmRlckxheWVyKj4qIHBvc1pPcmRlckxpc3QgPSBsYXllci0+cG9zWk9yZGVyTGlz
dCgpKSB7CisgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBwb3NaT3JkZXJMaXN0LT5zaXpl
KCk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsK
KyAgICAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBwb3NaT3JkZXJMaXN0LT5h
dChpKTsKICAgICAgICAgICAgICAgICBpbnQgeCA9IDAsIHkgPSAwOwogICAgICAgICAgICAgICAg
IGN1ckxheWVyLT5jb252ZXJ0VG9MYXllckNvb3JkcyhsYXllciwgeCwgeSk7CiAgICAgICAgICAg
ICAgICAgSW50UmVjdCBjaGlsZFJlY3QocmVjdCk7CkBAIC02NjUsMTAgKzY2OCwxMCBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVjdXJzaXZlUmVwYWludExheWVyUmVjdChSZW5kZXJM
YXllciogbGF5ZXIsIGNvbnN0CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCi0g
ICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBub3JtYWxGbG93TGlzdCA9IGxheWVyLT5ub3Jt
YWxGbG93TGlzdCgpOwotICAgICAgICBpZiAobm9ybWFsRmxvd0xpc3QpIHsKLSAgICAgICAgICAg
IGZvciAoVmVjdG9yPFJlbmRlckxheWVyKj46Oml0ZXJhdG9yIGl0ID0gbm9ybWFsRmxvd0xpc3Qt
PmJlZ2luKCk7IGl0ICE9IG5vcm1hbEZsb3dMaXN0LT5lbmQoKTsgKytpdCkgewotICAgICAgICAg
ICAgICAgIFJlbmRlckxheWVyKiBjdXJMYXllciA9ICgqaXQpOworICAgICAgICBpZiAoVmVjdG9y
PFJlbmRlckxheWVyKj4qIG5vcm1hbEZsb3dMaXN0ID0gbGF5ZXItPm5vcm1hbEZsb3dMaXN0KCkp
IHsKKyAgICAgICAgICAgIHNpemVfdCBsaXN0U2l6ZSA9IG5vcm1hbEZsb3dMaXN0LT5zaXplKCk7
CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RTaXplOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBub3JtYWxGbG93TGlzdC0+YXQo
aSk7CiAgICAgICAgICAgICAgICAgaW50IHggPSAwLCB5ID0gMDsKICAgICAgICAgICAgICAgICBj
dXJMYXllci0+Y29udmVydFRvTGF5ZXJDb29yZHMobGF5ZXIsIHgsIHkpOwogICAgICAgICAgICAg
ICAgIEludFJlY3QgY2hpbGRSZWN0KHJlY3QpOwpAQCAtOTA5LDI5ICs5MTIsMjkgQEAgYm9vbCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVySGFzM0RDb250ZW50KGNvbnN0IFJlbmRlckxheWVy
KiBsYXllcikgY29uc3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAobGF5ZXItPmlz
U3RhY2tpbmdDb250ZXh0KCkpIHsKLSAgICAgICAgVmVjdG9yPFJlbmRlckxheWVyKj4qIG5lZ1pP
cmRlckxpc3QgPSBsYXllci0+bmVnWk9yZGVyTGlzdCgpOwotICAgICAgICBpZiAobmVnWk9yZGVy
TGlzdCkgewotICAgICAgICAgICAgZm9yIChWZWN0b3I8UmVuZGVyTGF5ZXIqPjo6aXRlcmF0b3Ig
aXQgPSBuZWdaT3JkZXJMaXN0LT5iZWdpbigpOyBpdCAhPSBuZWdaT3JkZXJMaXN0LT5lbmQoKTsg
KytpdCkgewotICAgICAgICAgICAgICAgIFJlbmRlckxheWVyKiBjdXJMYXllciA9ICgqaXQpOwor
ICAgICAgICBpZiAoVmVjdG9yPFJlbmRlckxheWVyKj4qIG5lZ1pPcmRlckxpc3QgPSBsYXllci0+
bmVnWk9yZGVyTGlzdCgpKSB7CisgICAgICAgICAgICBzaXplX3QgbGlzdFNpemUgPSBuZWdaT3Jk
ZXJMaXN0LT5zaXplKCk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RT
aXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBuZWda
T3JkZXJMaXN0LT5hdChpKTsKICAgICAgICAgICAgICAgICBpZiAobGF5ZXJIYXMzRENvbnRlbnQo
Y3VyTGF5ZXIpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCi0gICAgICAgIFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3NaT3JkZXJM
aXN0ID0gbGF5ZXItPnBvc1pPcmRlckxpc3QoKTsKLSAgICAgICAgaWYgKHBvc1pPcmRlckxpc3Qp
IHsKLSAgICAgICAgICAgIGZvciAoVmVjdG9yPFJlbmRlckxheWVyKj46Oml0ZXJhdG9yIGl0ID0g
cG9zWk9yZGVyTGlzdC0+YmVnaW4oKTsgaXQgIT0gcG9zWk9yZGVyTGlzdC0+ZW5kKCk7ICsraXQp
IHsKLSAgICAgICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSAoKml0KTsKKyAgICAg
ICAgaWYgKFZlY3RvcjxSZW5kZXJMYXllcio+KiBwb3NaT3JkZXJMaXN0ID0gbGF5ZXItPnBvc1pP
cmRlckxpc3QoKSkgeworICAgICAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gcG9zWk9yZGVyTGlz
dC0+c2l6ZSgpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsg
KytpKSB7CisgICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGN1ckxheWVyID0gcG9zWk9yZGVy
TGlzdC0+YXQoaSk7CiAgICAgICAgICAgICAgICAgaWYgKGxheWVySGFzM0RDb250ZW50KGN1ckxh
eWVyKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBWZWN0b3I8UmVuZGVyTGF5ZXIqPiogbm9ybWFsRmxvd0xp
c3QgPSBsYXllci0+bm9ybWFsRmxvd0xpc3QoKTsKLSAgICBpZiAobm9ybWFsRmxvd0xpc3QpIHsK
LSAgICAgICAgZm9yIChWZWN0b3I8UmVuZGVyTGF5ZXIqPjo6aXRlcmF0b3IgaXQgPSBub3JtYWxG
bG93TGlzdC0+YmVnaW4oKTsgaXQgIT0gbm9ybWFsRmxvd0xpc3QtPmVuZCgpOyArK2l0KSB7Ci0g
ICAgICAgICAgICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSAoKml0KTsKKyAgICBpZiAoVmVjdG9y
PFJlbmRlckxheWVyKj4qIG5vcm1hbEZsb3dMaXN0ID0gbGF5ZXItPm5vcm1hbEZsb3dMaXN0KCkp
IHsKKyAgICAgICAgc2l6ZV90IGxpc3RTaXplID0gbm9ybWFsRmxvd0xpc3QtPnNpemUoKTsKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgKytpKSB7CisgICAgICAgICAg
ICBSZW5kZXJMYXllciogY3VyTGF5ZXIgPSBub3JtYWxGbG93TGlzdC0+YXQoaSk7CiAgICAgICAg
ICAgICBpZiAobGF5ZXJIYXMzRENvbnRlbnQoY3VyTGF5ZXIpKQogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9Cg==
</data>
<flag name="review"
          id="16506"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>