<?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>27811</bug_id>
          
          <creation_ts>2009-07-29 13:18:09 -0700</creation_ts>
          <short_desc>Inset box shadows are incorrectly accounted for in visual overflow computations</short_desc>
          <delta_ts>2009-07-29 13:40:23 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>135661</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-07-29 13:18:09 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135670</commentid>
    <comment_count>1</comment_count>
      <attachid>33739</attachid>
    <who name="">mitz</who>
    <bug_when>2009-07-29 13:28:14 -0700</bug_when>
    <thetext>Created attachment 33739
Refactor some of box-shadow extent computations, make all such computations exclude inset shadows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135675</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2009-07-29 13:40:23 -0700</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/changeset/46553&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33739</attachid>
            <date>2009-07-29 13:28:14 -0700</date>
            <delta_ts>2009-07-29 13:30:58 -0700</delta_ts>
            <desc>Refactor some of box-shadow extent computations, make all such computations exclude inset shadows</desc>
            <filename>27811_r1.diff</filename>
            <type>text/plain</type>
            <size>20943</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjU1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMDktMDctMjkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnNl
dCBib3ggc2hhZG93cyBhcmUgaW5jb3JyZWN0bHkgYWNjb3VudGVkIGZvciBpbiB2aXN1YWwgb3Zl
cmZsb3cKKyAgICAgICAgY29tcHV0YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNzgxMQorCisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZs
b3dCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0hv
cml6b250YWxseSk6IFVzZQorICAgICAgICAgICAgZ2V0Qm94U2hhZG93SG9yaXpvbnRhbEV4dGVu
dCgpLgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc1ZlcnRpY2Fs
bHkpOiBVc2UKKyAgICAgICAgICAgIGdldEJveFNoYWRvd1ZlcnRpY2FsRXh0ZW50KCkuIFJlbW92
ZWQgZHVwbGljYXRlIGNvZGUgdG8gZ2V0IHRoZQorICAgICAgICAgICAgdGV4dC1zaGFkb3cgb3Zl
cmZsb3cuCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94OjpwYWludCk6IFVzZSBnZXRC
b3hTaGFkb3dIb3Jpem9udGFsRXh0ZW50KCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpvdmVyZmxvd0hlaWdodCk6
IFVzZQorICAgICAgICAgICAgZ2V0Qm94U2hhZG93VmVydGljYWxFeHRlbnQoKS4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpvdmVyZmxvd1dpZHRoKTogVXNlCisgICAgICAgICAgICBn
ZXRCb3hTaGFkb3dIb3Jpem9udGFsRXh0ZW50KCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6b3ZlcmZsb3dMZWZ0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6b3ZlcmZsb3dUb3ApOiBVc2UgZ2V0Qm94U2hhZG93VmVydGljYWxFeHRlbnQoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpvdmVyZmxvd1JlY3QpOiBVc2UgZ2V0Qm94U2hhZG93
RXh0ZW50KCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2spOiBE
aXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKTogRGl0dG8uCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpjYWxjdWxhdGVSZWN0cyk6IEV4Y2x1ZGUgaW5zZXQgc2hhZG93cy4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6cmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQpOiBVc2UKKyAgICAgICAgICAgIGdldEJv
eFNoYWRvd0hvcml6b250YWxFeHRlbnQoKSBhbmQgZ2V0Qm94U2hhZG93VmVydGljYWxFeHRlbnQo
KS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YWRqdXN0UmVjdEZvck91dGxpbmVB
bmRTaGFkb3cpOiBFeGNsdWRlIGluc2V0CisgICAgICAgICAgICBzaGFkb3dzLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJS
ZXBsYWNlZDo6YWRqdXN0T3ZlcmZsb3dGb3JCb3hTaGFkb3dBbmRSZWZsZWN0KTogRGl0dG8uCisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjpzZXRUZXh0U2hhZG93KTogQWxzbyBhc3NlcnQgdGhhdCB0ZXh0LXNo
YWRvd3MgYXJlCisgICAgICAgICAgICBub3QgaW5zZXQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6Z2V0Qm94U2hhZG93RXh0ZW50KTogQWRkZWQuIEV4Y2x1ZGVzIGluc2V0CisgICAg
ICAgICAgICBzaGFkb3dzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmdldEJveFNo
YWRvd0hvcml6b250YWxFeHRlbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpnZXRCb3hTaGFkb3dWZXJ0aWNhbEV4dGVudCk6IERpdHRvLgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorCiAyMDA5LTA3LTI5ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3Rl
aW4uCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24gNDY1NDUp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjUzLDEyICsyNTMsMTAgQEAgaW50IElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNIb3Jpem9u
dGFsbAogICAgIC8vIFNldCBvdXIgeCBwb3NpdGlvbi4KICAgICBzZXRYKHhQb3MpOwogCi0gICAg
aW50IGJveFNoYWRvd0xlZnQgPSAwOwotICAgIGludCBib3hTaGFkb3dSaWdodCA9IDA7Ci0gICAg
Zm9yIChTaGFkb3dEYXRhKiBib3hTaGFkb3cgPSByZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGlu
ZSktPmJveFNoYWRvdygpOyBib3hTaGFkb3c7IGJveFNoYWRvdyA9IGJveFNoYWRvdy0+bmV4dCkg
ewotICAgICAgICBib3hTaGFkb3dMZWZ0ID0gbWluKGJveFNoYWRvdy0+eCAtIGJveFNoYWRvdy0+
Ymx1ciAtIGJveFNoYWRvdy0+c3ByZWFkLCBib3hTaGFkb3dMZWZ0KTsKLSAgICAgICAgYm94U2hh
ZG93UmlnaHQgPSBtYXgoYm94U2hhZG93LT54ICsgYm94U2hhZG93LT5ibHVyICsgYm94U2hhZG93
LT5zcHJlYWQsIGJveFNoYWRvd1JpZ2h0KTsKLSAgICB9CisgICAgaW50IGJveFNoYWRvd0xlZnQ7
CisgICAgaW50IGJveFNoYWRvd1JpZ2h0OworICAgIHJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RM
aW5lKS0+Z2V0Qm94U2hhZG93SG9yaXpvbnRhbEV4dGVudChib3hTaGFkb3dMZWZ0LCBib3hTaGFk
b3dSaWdodCk7CisKICAgICBsZWZ0UG9zaXRpb24gPSBtaW4oeFBvcyArIGJveFNoYWRvd0xlZnQs
IGxlZnRQb3NpdGlvbik7CiAKICAgICBpbnQgc3RhcnRYID0geFBvczsKQEAgLTUyMywxNSArNTIx
LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzVmVydGljYWxseQogICAgICAgICAg
ICAgY29uc3QgRm9udCYgZm9udCA9IGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5l
KS0+Zm9udCgpOwogICAgICAgICAgICAgbmV3WSArPSBjdXJyLT5iYXNlbGluZVBvc2l0aW9uKGZh
bHNlKSAtIGZvbnQuYXNjZW50KCk7CiAKLSAgICAgICAgICAgIGZvciAoU2hhZG93RGF0YSogc2hh
ZG93ID0gY3Vyci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+dGV4dFNoYWRvdygpOyBzaGFkb3c7IHNo
YWRvdyA9IHNoYWRvdy0+bmV4dCkgewotICAgICAgICAgICAgICAgIG92ZXJmbG93VG9wID0gbWlu
KG92ZXJmbG93VG9wLCBzaGFkb3ctPnkgLSBzaGFkb3ctPmJsdXIpOwotICAgICAgICAgICAgICAg
IG92ZXJmbG93Qm90dG9tID0gbWF4KG92ZXJmbG93Qm90dG9tLCBzaGFkb3ctPnkgKyBzaGFkb3ct
PmJsdXIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmb3IgKFNoYWRvd0RhdGEqIGJv
eFNoYWRvdyA9IGN1cnItPnJlbmRlcmVyKCktPnN0eWxlKG1fZmlyc3RMaW5lKS0+Ym94U2hhZG93
KCk7IGJveFNoYWRvdzsgYm94U2hhZG93ID0gYm94U2hhZG93LT5uZXh0KSB7Ci0gICAgICAgICAg
ICAgICAgb3ZlcmZsb3dUb3AgPSBtaW4ob3ZlcmZsb3dUb3AsIGJveFNoYWRvdy0+eSAtIGJveFNo
YWRvdy0+Ymx1ciAtIGJveFNoYWRvdy0+c3ByZWFkKTsKLSAgICAgICAgICAgICAgICBvdmVyZmxv
d0JvdHRvbSA9IG1heChvdmVyZmxvd0JvdHRvbSwgYm94U2hhZG93LT55ICsgYm94U2hhZG93LT5i
bHVyICsgYm94U2hhZG93LT5zcHJlYWQpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgY3Vy
ci0+cmVuZGVyZXIoKS0+c3R5bGUobV9maXJzdExpbmUpLT5nZXRCb3hTaGFkb3dWZXJ0aWNhbEV4
dGVudChvdmVyZmxvd1RvcCwgb3ZlcmZsb3dCb3R0b20pOwogCiAgICAgICAgICAgICBmb3IgKFNo
YWRvd0RhdGEqIHRleHRTaGFkb3cgPSBjdXJyLT5yZW5kZXJlcigpLT5zdHlsZShtX2ZpcnN0TGlu
ZSktPnRleHRTaGFkb3coKTsgdGV4dFNoYWRvdzsgdGV4dFNoYWRvdyA9IHRleHRTaGFkb3ctPm5l
eHQpIHsKICAgICAgICAgICAgICAgICBvdmVyZmxvd1RvcCA9IG1pbihvdmVyZmxvd1RvcCwgdGV4
dFNoYWRvdy0+eSAtIHRleHRTaGFkb3ctPmJsdXIpOwpAQCAtNTk4LDE2ICs1ODgsMTYgQEAgdm9p
ZCBJbmxpbmVGbG93Qm94OjpwYWludChSZW5kZXJPYmplY3Q6OgogewogICAgIGludCB4UG9zID0g
dHggKyBtX3ggLSByZW5kZXJlcigpLT5tYXhpbWFsT3V0bGluZVNpemUocGFpbnRJbmZvLnBoYXNl
KTsKICAgICBpbnQgdyA9IHdpZHRoKCkgKyAyICogcmVuZGVyZXIoKS0+bWF4aW1hbE91dGxpbmVT
aXplKHBhaW50SW5mby5waGFzZSk7Ci0gICAgaW50IHNoYWRvd0xlZnQgPSAwOwotICAgIGludCBz
aGFkb3dSaWdodCA9IDA7Ci0gICAgZm9yIChTaGFkb3dEYXRhKiBib3hTaGFkb3cgPSByZW5kZXJl
cigpLT5zdHlsZShtX2ZpcnN0TGluZSktPmJveFNoYWRvdygpOyBib3hTaGFkb3c7IGJveFNoYWRv
dyA9IGJveFNoYWRvdy0+bmV4dCkgewotICAgICAgICBzaGFkb3dMZWZ0ID0gbWluKGJveFNoYWRv
dy0+eCAtIGJveFNoYWRvdy0+Ymx1ciAtIGJveFNoYWRvdy0+c3ByZWFkLCBzaGFkb3dMZWZ0KTsK
LSAgICAgICAgc2hhZG93UmlnaHQgPSBtYXgoYm94U2hhZG93LT54ICsgYm94U2hhZG93LT5ibHVy
ICsgYm94U2hhZG93LT5zcHJlYWQsIHNoYWRvd1JpZ2h0KTsKLSAgICB9CisgICAgaW50IHNoYWRv
d0xlZnQ7CisgICAgaW50IHNoYWRvd1JpZ2h0OworCisgICAgcmVuZGVyZXIoKS0+c3R5bGUobV9m
aXJzdExpbmUpLT5nZXRCb3hTaGFkb3dIb3Jpem9udGFsRXh0ZW50KHNoYWRvd0xlZnQsIHNoYWRv
d1JpZ2h0KTsKKwogICAgIGZvciAoU2hhZG93RGF0YSogdGV4dFNoYWRvdyA9IHJlbmRlcmVyKCkt
PnN0eWxlKG1fZmlyc3RMaW5lKS0+dGV4dFNoYWRvdygpOyB0ZXh0U2hhZG93OyB0ZXh0U2hhZG93
ID0gdGV4dFNoYWRvdy0+bmV4dCkgewogICAgICAgICBzaGFkb3dMZWZ0ID0gbWluKHRleHRTaGFk
b3ctPnggLSB0ZXh0U2hhZG93LT5ibHVyLCBzaGFkb3dMZWZ0KTsKICAgICAgICAgc2hhZG93Umln
aHQgPSBtYXgodGV4dFNoYWRvdy0+eCArIHRleHRTaGFkb3ctPmJsdXIsIHNoYWRvd1JpZ2h0KTsK
ICAgICB9CisKICAgICB4UG9zICs9IHNoYWRvd0xlZnQ7CiAgICAgdyArPSAtc2hhZG93TGVmdCAr
IHNoYWRvd1JpZ2h0OwogICAgIGJvb2wgaW50ZXJzZWN0c0RhbWFnZVJlY3QgPSB4UG9zIDwgcGFp
bnRJbmZvLnJlY3QucmlnaHQoKSAmJiB4UG9zICsgdyA+IHBhaW50SW5mby5yZWN0LngoKTsKSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDQ2NTQ1KQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTMsMTAgKzU1
MywxMSBAQCB2b2lkIFJlbmRlckJsb2NrOjpyZW1vdmVDaGlsZChSZW5kZXJPYmplCiBpbnQgUmVu
ZGVyQmxvY2s6Om92ZXJmbG93SGVpZ2h0KGJvb2wgaW5jbHVkZUludGVyaW9yKSBjb25zdAogewog
ICAgIGlmICghaW5jbHVkZUludGVyaW9yICYmIGhhc092ZXJmbG93Q2xpcCgpKSB7Ci0gICAgICAg
IGludCBzaGFkb3dIZWlnaHQgPSAwOwotICAgICAgICBmb3IgKFNoYWRvd0RhdGEqIGJveFNoYWRv
dyA9IHN0eWxlKCktPmJveFNoYWRvdygpOyBib3hTaGFkb3c7IGJveFNoYWRvdyA9IGJveFNoYWRv
dy0+bmV4dCkKLSAgICAgICAgICAgIHNoYWRvd0hlaWdodCA9IG1heChib3hTaGFkb3ctPnkgKyBi
b3hTaGFkb3ctPmJsdXIgKyBib3hTaGFkb3ctPnNwcmVhZCwgc2hhZG93SGVpZ2h0KTsKLSAgICAg
ICAgaW50IGluZmxhdGVkSGVpZ2h0ID0gaGVpZ2h0KCkgKyBzaGFkb3dIZWlnaHQ7CisgICAgICAg
IGludCBzaGFkb3dUb3A7CisgICAgICAgIGludCBzaGFkb3dCb3R0b207CisgICAgICAgIHN0eWxl
KCktPmdldEJveFNoYWRvd1ZlcnRpY2FsRXh0ZW50KHNoYWRvd1RvcCwgc2hhZG93Qm90dG9tKTsK
KworICAgICAgICBpbnQgaW5mbGF0ZWRIZWlnaHQgPSBoZWlnaHQoKSArIHNoYWRvd0JvdHRvbTsK
ICAgICAgICAgaWYgKGhhc1JlZmxlY3Rpb24oKSkKICAgICAgICAgICAgIGluZmxhdGVkSGVpZ2h0
ID0gbWF4KGluZmxhdGVkSGVpZ2h0LCByZWZsZWN0aW9uQm94KCkuYm90dG9tKCkpOwogICAgICAg
ICByZXR1cm4gaW5mbGF0ZWRIZWlnaHQ7CkBAIC01NjcsMTAgKzU2OCwxMSBAQCBpbnQgUmVuZGVy
QmxvY2s6Om92ZXJmbG93SGVpZ2h0KGJvb2wgaW5jCiBpbnQgUmVuZGVyQmxvY2s6Om92ZXJmbG93
V2lkdGgoYm9vbCBpbmNsdWRlSW50ZXJpb3IpIGNvbnN0CiB7CiAgICAgaWYgKCFpbmNsdWRlSW50
ZXJpb3IgJiYgaGFzT3ZlcmZsb3dDbGlwKCkpIHsKLSAgICAgICAgaW50IHNoYWRvd1dpZHRoID0g
MDsKLSAgICAgICAgZm9yIChTaGFkb3dEYXRhKiBib3hTaGFkb3cgPSBzdHlsZSgpLT5ib3hTaGFk
b3coKTsgYm94U2hhZG93OyBib3hTaGFkb3cgPSBib3hTaGFkb3ctPm5leHQpCi0gICAgICAgICAg
ICBzaGFkb3dXaWR0aCA9IG1heChib3hTaGFkb3ctPnggKyBib3hTaGFkb3ctPmJsdXIgKyBib3hT
aGFkb3ctPnNwcmVhZCwgc2hhZG93V2lkdGgpOwotICAgICAgICBpbnQgaW5mbGF0ZWRXaWR0aCA9
IHdpZHRoKCkgKyBzaGFkb3dXaWR0aDsKKyAgICAgICAgaW50IHNoYWRvd0xlZnQ7CisgICAgICAg
IGludCBzaGFkb3dSaWdodDsKKyAgICAgICAgc3R5bGUoKS0+Z2V0Qm94U2hhZG93SG9yaXpvbnRh
bEV4dGVudChzaGFkb3dMZWZ0LCBzaGFkb3dSaWdodCk7CisKKyAgICAgICAgaW50IGluZmxhdGVk
V2lkdGggPSB3aWR0aCgpICsgc2hhZG93UmlnaHQ7CiAgICAgICAgIGlmIChoYXNSZWZsZWN0aW9u
KCkpCiAgICAgICAgICAgICBpbmZsYXRlZFdpZHRoID0gbWF4KGluZmxhdGVkV2lkdGgsIHJlZmxl
Y3Rpb25Cb3goKS5yaWdodCgpKTsKICAgICAgICAgcmV0dXJuIGluZmxhdGVkV2lkdGg7CkBAIC01
ODEsOSArNTgzLDEwIEBAIGludCBSZW5kZXJCbG9jazo6b3ZlcmZsb3dXaWR0aChib29sIGluY2wK
IGludCBSZW5kZXJCbG9jazo6b3ZlcmZsb3dMZWZ0KGJvb2wgaW5jbHVkZUludGVyaW9yKSBjb25z
dAogewogICAgIGlmICghaW5jbHVkZUludGVyaW9yICYmIGhhc092ZXJmbG93Q2xpcCgpKSB7Ci0g
ICAgICAgIGludCBzaGFkb3dMZWZ0ID0gMDsKLSAgICAgICAgZm9yIChTaGFkb3dEYXRhKiBib3hT
aGFkb3cgPSBzdHlsZSgpLT5ib3hTaGFkb3coKTsgYm94U2hhZG93OyBib3hTaGFkb3cgPSBib3hT
aGFkb3ctPm5leHQpCi0gICAgICAgICAgICBzaGFkb3dMZWZ0ID0gbWluKGJveFNoYWRvdy0+eCAt
IGJveFNoYWRvdy0+Ymx1ciAtIGJveFNoYWRvdy0+c3ByZWFkLCBzaGFkb3dMZWZ0KTsKKyAgICAg
ICAgaW50IHNoYWRvd0xlZnQ7CisgICAgICAgIGludCBzaGFkb3dSaWdodDsKKyAgICAgICAgc3R5
bGUoKS0+Z2V0Qm94U2hhZG93SG9yaXpvbnRhbEV4dGVudChzaGFkb3dMZWZ0LCBzaGFkb3dSaWdo
dCk7CisKICAgICAgICAgaW50IGxlZnQgPSBzaGFkb3dMZWZ0OwogICAgICAgICBpZiAoaGFzUmVm
bGVjdGlvbigpKQogICAgICAgICAgICAgbGVmdCA9IG1pbihsZWZ0LCByZWZsZWN0aW9uQm94KCku
eCgpKTsKQEAgLTU5NSw5ICs1OTgsMTAgQEAgaW50IFJlbmRlckJsb2NrOjpvdmVyZmxvd0xlZnQo
Ym9vbCBpbmNsdQogaW50IFJlbmRlckJsb2NrOjpvdmVyZmxvd1RvcChib29sIGluY2x1ZGVJbnRl
cmlvcikgY29uc3QKIHsKICAgICBpZiAoIWluY2x1ZGVJbnRlcmlvciAmJiBoYXNPdmVyZmxvd0Ns
aXAoKSkgewotICAgICAgICBpbnQgc2hhZG93VG9wID0gMDsKLSAgICAgICAgZm9yIChTaGFkb3dE
YXRhKiBib3hTaGFkb3cgPSBzdHlsZSgpLT5ib3hTaGFkb3coKTsgYm94U2hhZG93OyBib3hTaGFk
b3cgPSBib3hTaGFkb3ctPm5leHQpCi0gICAgICAgICAgICBzaGFkb3dUb3AgPSBtaW4oYm94U2hh
ZG93LT55IC0gYm94U2hhZG93LT5ibHVyIC0gYm94U2hhZG93LT5zcHJlYWQsIHNoYWRvd1RvcCk7
CisgICAgICAgIGludCBzaGFkb3dUb3A7CisgICAgICAgIGludCBzaGFkb3dCb3R0b207CisgICAg
ICAgIHN0eWxlKCktPmdldEJveFNoYWRvd1ZlcnRpY2FsRXh0ZW50KHNoYWRvd1RvcCwgc2hhZG93
Qm90dG9tKTsKKwogICAgICAgICBpbnQgdG9wID0gc2hhZG93VG9wOwogICAgICAgICBpZiAoaGFz
UmVmbGVjdGlvbigpKQogICAgICAgICAgICAgdG9wID0gbWluKHRvcCwgcmVmbGVjdGlvbkJveCgp
LnkoKSk7CkBAIC02MTAsMTcgKzYxNCwxMiBAQCBJbnRSZWN0IFJlbmRlckJsb2NrOjpvdmVyZmxv
d1JlY3QoYm9vbCBpCiB7CiAgICAgaWYgKCFpbmNsdWRlSW50ZXJpb3IgJiYgaGFzT3ZlcmZsb3dD
bGlwKCkpIHsKICAgICAgICAgSW50UmVjdCBib3ggPSBib3JkZXJCb3hSZWN0KCk7Ci0gICAgICAg
IGludCBzaGFkb3dMZWZ0ID0gMDsKLSAgICAgICAgaW50IHNoYWRvd1JpZ2h0ID0gMDsKLSAgICAg
ICAgaW50IHNoYWRvd1RvcCA9IDA7Ci0gICAgICAgIGludCBzaGFkb3dCb3R0b20gPSAwOwotCi0g
ICAgICAgIGZvciAoU2hhZG93RGF0YSogYm94U2hhZG93ID0gc3R5bGUoKS0+Ym94U2hhZG93KCk7
IGJveFNoYWRvdzsgYm94U2hhZG93ID0gYm94U2hhZG93LT5uZXh0KSB7Ci0gICAgICAgICAgICBz
aGFkb3dMZWZ0ID0gbWluKGJveFNoYWRvdy0+eCAtIGJveFNoYWRvdy0+Ymx1ciAtIGJveFNoYWRv
dy0+c3ByZWFkLCBzaGFkb3dMZWZ0KTsKLSAgICAgICAgICAgIHNoYWRvd1JpZ2h0ID0gbWF4KGJv
eFNoYWRvdy0+eCArIGJveFNoYWRvdy0+Ymx1ciArIGJveFNoYWRvdy0+c3ByZWFkLCBzaGFkb3dS
aWdodCk7Ci0gICAgICAgICAgICBzaGFkb3dUb3AgPSBtaW4oYm94U2hhZG93LT55IC0gYm94U2hh
ZG93LT5ibHVyIC0gYm94U2hhZG93LT5zcHJlYWQsIHNoYWRvd1RvcCk7Ci0gICAgICAgICAgICBz
aGFkb3dCb3R0b20gPSBtYXgoYm94U2hhZG93LT55ICsgYm94U2hhZG93LT5ibHVyICsgYm94U2hh
ZG93LT5zcHJlYWQsIHNoYWRvd0JvdHRvbSk7Ci0gICAgICAgIH0KKworICAgICAgICBpbnQgc2hh
ZG93TGVmdDsKKyAgICAgICAgaW50IHNoYWRvd1JpZ2h0OworICAgICAgICBpbnQgc2hhZG93VG9w
OworICAgICAgICBpbnQgc2hhZG93Qm90dG9tOworICAgICAgICBzdHlsZSgpLT5nZXRCb3hTaGFk
b3dFeHRlbnQoc2hhZG93VG9wLCBzaGFkb3dSaWdodCwgc2hhZG93Qm90dG9tLCBzaGFkb3dMZWZ0
KTsKIAogICAgICAgICBib3gubW92ZShzaGFkb3dMZWZ0LCBzaGFkb3dUb3ApOwogICAgICAgICBi
b3guc2V0V2lkdGgoYm94LndpZHRoKCkgLSBzaGFkb3dMZWZ0ICsgc2hhZG93UmlnaHQpOwpAQCAt
ODcwLDEzICs4NjksMTcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxh
eQogICAgIG1fb3ZlcmZsb3dIZWlnaHQgPSBtYXgobV9vdmVyZmxvd0hlaWdodCwgaGVpZ2h0KCkp
OwogCiAgICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAoKSkgewotICAgICAgICBmb3IgKFNoYWRvd0Rh
dGEqIGJveFNoYWRvdyA9IHN0eWxlKCktPmJveFNoYWRvdygpOyBib3hTaGFkb3c7IGJveFNoYWRv
dyA9IGJveFNoYWRvdy0+bmV4dCkgewotICAgICAgICAgICAgbV9vdmVyZmxvd0xlZnQgPSBtaW4o
bV9vdmVyZmxvd0xlZnQsIGJveFNoYWRvdy0+eCAtIGJveFNoYWRvdy0+Ymx1ciAtIGJveFNoYWRv
dy0+c3ByZWFkKTsKLSAgICAgICAgICAgIG1fb3ZlcmZsb3dXaWR0aCA9IG1heChtX292ZXJmbG93
V2lkdGgsIHdpZHRoKCkgKyBib3hTaGFkb3ctPnggKyBib3hTaGFkb3ctPmJsdXIgKyBib3hTaGFk
b3ctPnNwcmVhZCk7Ci0gICAgICAgICAgICBtX292ZXJmbG93VG9wID0gbWluKG1fb3ZlcmZsb3dU
b3AsIGJveFNoYWRvdy0+eSAtIGJveFNoYWRvdy0+Ymx1ciAtIGJveFNoYWRvdy0+c3ByZWFkKTsK
LSAgICAgICAgICAgIG1fb3ZlcmZsb3dIZWlnaHQgPSBtYXgobV9vdmVyZmxvd0hlaWdodCwgaGVp
Z2h0KCkgKyBib3hTaGFkb3ctPnkgKyBib3hTaGFkb3ctPmJsdXIgKyBib3hTaGFkb3ctPnNwcmVh
ZCk7Ci0gICAgICAgIH0KLSAgICAgICAgCisgICAgICAgIGludCBzaGFkb3dMZWZ0OworICAgICAg
ICBpbnQgc2hhZG93UmlnaHQ7CisgICAgICAgIGludCBzaGFkb3dUb3A7CisgICAgICAgIGludCBz
aGFkb3dCb3R0b207CisgICAgICAgIHN0eWxlKCktPmdldEJveFNoYWRvd0V4dGVudChzaGFkb3dU
b3AsIHNoYWRvd1JpZ2h0LCBzaGFkb3dCb3R0b20sIHNoYWRvd0xlZnQpOworCisgICAgICAgIG1f
b3ZlcmZsb3dMZWZ0ID0gbWluKG1fb3ZlcmZsb3dMZWZ0LCBzaGFkb3dMZWZ0KTsKKyAgICAgICAg
bV9vdmVyZmxvd1dpZHRoID0gbWF4KG1fb3ZlcmZsb3dXaWR0aCwgd2lkdGgoKSArIHNoYWRvd1Jp
Z2h0KTsKKyAgICAgICAgbV9vdmVyZmxvd1RvcCA9IG1pbihtX292ZXJmbG93VG9wLCBzaGFkb3dU
b3ApOworICAgICAgICBtX292ZXJmbG93SGVpZ2h0ID0gbWF4KG1fb3ZlcmZsb3dIZWlnaHQsIGhl
aWdodCgpICsgc2hhZG93Qm90dG9tKTsKKwogICAgICAgICBpZiAoaGFzUmVmbGVjdGlvbigpKSB7
CiAgICAgICAgICAgICBtX292ZXJmbG93VG9wID0gbWluKG1fb3ZlcmZsb3dUb3AsIHJlZmxlY3Rp
b25Cb3goKS55KCkpOwogICAgICAgICAgICAgbV9vdmVyZmxvd0hlaWdodCA9IG1heChtX292ZXJm
bG93SGVpZ2h0LCByZWZsZWN0aW9uQm94KCkuYm90dG9tKCkpOwpJbmRleDogV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAkocmV2aXNpb24gNDY1NDUpCisrKyBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3OSwxMyAr
Mjc5LDE3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wKICAgICAg
ICAgbV9vdmVyZmxvd1dpZHRoID0gd2lkdGgoKTsKIAogICAgIGlmICghaGFzT3ZlcmZsb3dDbGlw
KCkpIHsKLSAgICAgICAgZm9yIChTaGFkb3dEYXRhKiBib3hTaGFkb3cgPSBzdHlsZSgpLT5ib3hT
aGFkb3coKTsgYm94U2hhZG93OyBib3hTaGFkb3cgPSBib3hTaGFkb3ctPm5leHQpIHsKLSAgICAg
ICAgICAgIG1fb3ZlcmZsb3dMZWZ0ID0gbWluKG1fb3ZlcmZsb3dMZWZ0LCBib3hTaGFkb3ctPngg
LSBib3hTaGFkb3ctPmJsdXIgLSBib3hTaGFkb3ctPnNwcmVhZCk7Ci0gICAgICAgICAgICBtX292
ZXJmbG93V2lkdGggPSBtYXgobV9vdmVyZmxvd1dpZHRoLCB3aWR0aCgpICsgYm94U2hhZG93LT54
ICsgYm94U2hhZG93LT5ibHVyICsgYm94U2hhZG93LT5zcHJlYWQpOwotICAgICAgICAgICAgbV9v
dmVyZmxvd1RvcCA9IG1pbihtX292ZXJmbG93VG9wLCBib3hTaGFkb3ctPnkgLSBib3hTaGFkb3ct
PmJsdXIgLSBib3hTaGFkb3ctPnNwcmVhZCk7Ci0gICAgICAgICAgICBtX292ZXJmbG93SGVpZ2h0
ID0gbWF4KG1fb3ZlcmZsb3dIZWlnaHQsIGhlaWdodCgpICsgYm94U2hhZG93LT55ICsgYm94U2hh
ZG93LT5ibHVyICsgYm94U2hhZG93LT5zcHJlYWQpOwotICAgICAgICB9Ci0gICAgICAgIAorICAg
ICAgICBpbnQgc2hhZG93TGVmdDsKKyAgICAgICAgaW50IHNoYWRvd1JpZ2h0OworICAgICAgICBp
bnQgc2hhZG93VG9wOworICAgICAgICBpbnQgc2hhZG93Qm90dG9tOworICAgICAgICBzdHlsZSgp
LT5nZXRCb3hTaGFkb3dFeHRlbnQoc2hhZG93VG9wLCBzaGFkb3dSaWdodCwgc2hhZG93Qm90dG9t
LCBzaGFkb3dMZWZ0KTsKKworICAgICAgICBtX292ZXJmbG93TGVmdCA9IG1pbihtX292ZXJmbG93
TGVmdCwgc2hhZG93TGVmdCk7CisgICAgICAgIG1fb3ZlcmZsb3dXaWR0aCA9IG1heChtX292ZXJm
bG93V2lkdGgsIHdpZHRoKCkgKyBzaGFkb3dSaWdodCk7CisgICAgICAgIG1fb3ZlcmZsb3dUb3Ag
PSBtaW4obV9vdmVyZmxvd1RvcCwgc2hhZG93VG9wKTsKKyAgICAgICAgbV9vdmVyZmxvd0hlaWdo
dCA9IG1heChtX292ZXJmbG93SGVpZ2h0LCBoZWlnaHQoKSArIHNoYWRvd0JvdHRvbSk7CisKICAg
ICAgICAgaWYgKGhhc1JlZmxlY3Rpb24oKSkgewogICAgICAgICAgICAgSW50UmVjdCByZWZsZWN0
aW9uKHJlZmxlY3Rpb25Cb3goKSk7CiAgICAgICAgICAgICBtX292ZXJmbG93VG9wID0gbWluKG1f
b3ZlcmZsb3dUb3AsIHJlZmxlY3Rpb24ueSgpKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAJKHJldmlzaW9uIDQ2NTQ1KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzA3LDEwICsyNzA3LDEzIEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OmNhbGN1bGF0ZVJlY3RzKGNvbnN0IFIKICAgICAgICAgaWYgKFNoYWRvd0RhdGEqIGJveFNo
YWRvdyA9IHJlbmRlcmVyKCktPnN0eWxlKCktPmJveFNoYWRvdygpKSB7CiAgICAgICAgICAgICBJ
bnRSZWN0IG92ZXJmbG93ID0gbGF5ZXJCb3VuZHM7CiAgICAgICAgICAgICBkbyB7Ci0gICAgICAg
ICAgICAgICAgSW50UmVjdCBzaGFkb3dSZWN0ID0gbGF5ZXJCb3VuZHM7Ci0gICAgICAgICAgICAg
ICAgc2hhZG93UmVjdC5tb3ZlKGJveFNoYWRvdy0+eCwgYm94U2hhZG93LT55KTsKLSAgICAgICAg
ICAgICAgICBzaGFkb3dSZWN0LmluZmxhdGUoYm94U2hhZG93LT5ibHVyICsgYm94U2hhZG93LT5z
cHJlYWQpOwotICAgICAgICAgICAgICAgIG92ZXJmbG93LnVuaXRlKHNoYWRvd1JlY3QpOworICAg
ICAgICAgICAgICAgIGlmIChib3hTaGFkb3ctPnN0eWxlID09IE5vcm1hbCkgeworICAgICAgICAg
ICAgICAgICAgICBJbnRSZWN0IHNoYWRvd1JlY3QgPSBsYXllckJvdW5kczsKKyAgICAgICAgICAg
ICAgICAgICAgc2hhZG93UmVjdC5tb3ZlKGJveFNoYWRvdy0+eCwgYm94U2hhZG93LT55KTsKKyAg
ICAgICAgICAgICAgICAgICAgc2hhZG93UmVjdC5pbmZsYXRlKGJveFNoYWRvdy0+Ymx1ciArIGJv
eFNoYWRvdy0+c3ByZWFkKTsKKyAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3cudW5pdGUoc2hh
ZG93UmVjdCk7CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgYm94U2hhZG93
ID0gYm94U2hhZG93LT5uZXh0OwogICAgICAgICAgICAgfSB3aGlsZSAoYm94U2hhZG93KTsKICAg
ICAgICAgICAgIGJhY2tncm91bmRSZWN0LmludGVyc2VjdChvdmVyZmxvdyk7CkluZGV4OiBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDQ2NTQ1KQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIxMywxMiArMTIxMywx
MSBAQCBib29sIFJlbmRlck9iamVjdDo6cmVwYWludEFmdGVyTGF5b3V0SWZOCiAgICAgLy8gdHdv
IHJlY3RhbmdsZXMgKGJ1dCB0eXBpY2FsbHkgb25seSBvbmUpLgogICAgIFJlbmRlclN0eWxlKiBv
dXRsaW5lU3R5bGUgPSBvdXRsaW5lU3R5bGVGb3JSZXBhaW50KCk7CiAgICAgaW50IG93ID0gb3V0
bGluZVN0eWxlLT5vdXRsaW5lU2l6ZSgpOwotICAgIFNoYWRvd0RhdGEqIGJveFNoYWRvdyA9IHN0
eWxlKCktPmJveFNoYWRvdygpOwogICAgIGludCB3aWR0aCA9IGFicyhuZXdPdXRsaW5lQm94Lndp
ZHRoKCkgLSBvbGRPdXRsaW5lQm94LndpZHRoKCkpOwogICAgIGlmICh3aWR0aCkgewotICAgICAg
ICBpbnQgc2hhZG93UmlnaHQgPSAwOwotICAgICAgICBmb3IgKFNoYWRvd0RhdGEqIHNoYWRvdyA9
IGJveFNoYWRvdzsgc2hhZG93OyBzaGFkb3cgPSBzaGFkb3ctPm5leHQpCi0gICAgICAgICAgICBz
aGFkb3dSaWdodCA9IG1heChzaGFkb3ctPnggKyBzaGFkb3ctPmJsdXIgKyBzaGFkb3ctPnNwcmVh
ZCwgc2hhZG93UmlnaHQpOworICAgICAgICBpbnQgc2hhZG93TGVmdDsKKyAgICAgICAgaW50IHNo
YWRvd1JpZ2h0OworICAgICAgICBzdHlsZSgpLT5nZXRCb3hTaGFkb3dIb3Jpem9udGFsRXh0ZW50
KHNoYWRvd0xlZnQsIHNoYWRvd1JpZ2h0KTsKIAogICAgICAgICBpbnQgYm9yZGVyUmlnaHQgPSBp
c0JveCgpID8gdG9SZW5kZXJCb3godGhpcyktPmJvcmRlclJpZ2h0KCkgOiAwOwogICAgICAgICBp
bnQgYm9yZGVyV2lkdGggPSBtYXgoLW91dGxpbmVTdHlsZS0+b3V0bGluZU9mZnNldCgpLCBtYXgo
Ym9yZGVyUmlnaHQsIG1heChzdHlsZSgpLT5ib3JkZXJUb3BSaWdodFJhZGl1cygpLndpZHRoKCks
IHN0eWxlKCktPmJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzKCkud2lkdGgoKSkpKSArIG1heChvdywg
c2hhZG93UmlnaHQpOwpAQCAtMTIzNCw5ICsxMjMzLDkgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OnJl
cGFpbnRBZnRlckxheW91dElmTgogICAgIH0KICAgICBpbnQgaGVpZ2h0ID0gYWJzKG5ld091dGxp
bmVCb3guaGVpZ2h0KCkgLSBvbGRPdXRsaW5lQm94LmhlaWdodCgpKTsKICAgICBpZiAoaGVpZ2h0
KSB7Ci0gICAgICAgIGludCBzaGFkb3dCb3R0b20gPSAwOwotICAgICAgICBmb3IgKFNoYWRvd0Rh
dGEqIHNoYWRvdyA9IGJveFNoYWRvdzsgc2hhZG93OyBzaGFkb3cgPSBzaGFkb3ctPm5leHQpCi0g
ICAgICAgICAgICBzaGFkb3dCb3R0b20gPSBtYXgoc2hhZG93LT55ICsgc2hhZG93LT5ibHVyICsg
c2hhZG93LT5zcHJlYWQsIHNoYWRvd0JvdHRvbSk7CisgICAgICAgIGludCBzaGFkb3dUb3A7Cisg
ICAgICAgIGludCBzaGFkb3dCb3R0b207CisgICAgICAgIHN0eWxlKCktPmdldEJveFNoYWRvd1Zl
cnRpY2FsRXh0ZW50KHNoYWRvd1RvcCwgc2hhZG93Qm90dG9tKTsKIAogICAgICAgICBpbnQgYm9y
ZGVyQm90dG9tID0gaXNCb3goKSA/IHRvUmVuZGVyQm94KHRoaXMpLT5ib3JkZXJCb3R0b20oKSA6
IDA7CiAgICAgICAgIGludCBib3JkZXJIZWlnaHQgPSBtYXgoLW91dGxpbmVTdHlsZS0+b3V0bGlu
ZU9mZnNldCgpLCBtYXgoYm9yZGVyQm90dG9tLCBtYXgoc3R5bGUoKS0+Ym9yZGVyQm90dG9tTGVm
dFJhZGl1cygpLmhlaWdodCgpLCBzdHlsZSgpLT5ib3JkZXJCb3R0b21SaWdodFJhZGl1cygpLmhl
aWdodCgpKSkpICsgbWF4KG93LCBzaGFkb3dCb3R0b20pOwpAQCAtMjI0MCwxMCArMjIzOSwxMiBA
QCB2b2lkIFJlbmRlck9iamVjdDo6YWRqdXN0UmVjdEZvck91dGxpbmVBCiAgICAgICAgIGludCBz
aGFkb3dCb3R0b20gPSAwOwogCiAgICAgICAgIGRvIHsKLSAgICAgICAgICAgIHNoYWRvd0xlZnQg
PSBtaW4oYm94U2hhZG93LT54IC0gYm94U2hhZG93LT5ibHVyIC0gYm94U2hhZG93LT5zcHJlYWQg
LSBvdXRsaW5lU2l6ZSwgc2hhZG93TGVmdCk7Ci0gICAgICAgICAgICBzaGFkb3dSaWdodCA9IG1h
eChib3hTaGFkb3ctPnggKyBib3hTaGFkb3ctPmJsdXIgKyBib3hTaGFkb3ctPnNwcmVhZCArIG91
dGxpbmVTaXplLCBzaGFkb3dSaWdodCk7Ci0gICAgICAgICAgICBzaGFkb3dUb3AgPSBtaW4oYm94
U2hhZG93LT55IC0gYm94U2hhZG93LT5ibHVyIC0gYm94U2hhZG93LT5zcHJlYWQgLSBvdXRsaW5l
U2l6ZSwgc2hhZG93VG9wKTsKLSAgICAgICAgICAgIHNoYWRvd0JvdHRvbSA9IG1heChib3hTaGFk
b3ctPnkgKyBib3hTaGFkb3ctPmJsdXIgKyBib3hTaGFkb3ctPnNwcmVhZCArIG91dGxpbmVTaXpl
LCBzaGFkb3dCb3R0b20pOworICAgICAgICAgICAgaWYgKGJveFNoYWRvdy0+c3R5bGUgPT0gTm9y
bWFsKSB7CisgICAgICAgICAgICAgICAgc2hhZG93TGVmdCA9IG1pbihib3hTaGFkb3ctPnggLSBi
b3hTaGFkb3ctPmJsdXIgLSBib3hTaGFkb3ctPnNwcmVhZCAtIG91dGxpbmVTaXplLCBzaGFkb3dM
ZWZ0KTsKKyAgICAgICAgICAgICAgICBzaGFkb3dSaWdodCA9IG1heChib3hTaGFkb3ctPnggKyBi
b3hTaGFkb3ctPmJsdXIgKyBib3hTaGFkb3ctPnNwcmVhZCArIG91dGxpbmVTaXplLCBzaGFkb3dS
aWdodCk7CisgICAgICAgICAgICAgICAgc2hhZG93VG9wID0gbWluKGJveFNoYWRvdy0+eSAtIGJv
eFNoYWRvdy0+Ymx1ciAtIGJveFNoYWRvdy0+c3ByZWFkIC0gb3V0bGluZVNpemUsIHNoYWRvd1Rv
cCk7CisgICAgICAgICAgICAgICAgc2hhZG93Qm90dG9tID0gbWF4KGJveFNoYWRvdy0+eSArIGJv
eFNoYWRvdy0+Ymx1ciArIGJveFNoYWRvdy0+c3ByZWFkICsgb3V0bGluZVNpemUsIHNoYWRvd0Jv
dHRvbSk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGJveFNoYWRvdyA9IGJveFNoYWRv
dy0+bmV4dDsKICAgICAgICAgfSB3aGlsZSAoYm94U2hhZG93KTsKSW5kZXg6IFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZXBsYWNlZC5jcHAJKHJldmlzaW9uIDQ2NTQ1KQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzEsNiArMzMxLDggQEAg
dm9pZCBSZW5kZXJSZXBsYWNlZDo6YWRqdXN0T3ZlcmZsb3dGb3JCbwogewogICAgIEludFJlY3Qg
b3ZlcmZsb3c7CiAgICAgZm9yIChTaGFkb3dEYXRhKiBib3hTaGFkb3cgPSBzdHlsZSgpLT5ib3hT
aGFkb3coKTsgYm94U2hhZG93OyBib3hTaGFkb3cgPSBib3hTaGFkb3ctPm5leHQpIHsKKyAgICAg
ICAgaWYgKGJveFNoYWRvdy0+c3R5bGUgPT0gSW5zZXQpCisgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgSW50UmVjdCBzaGFkb3cgPSBib3JkZXJCb3hSZWN0KCk7CiAgICAgICAgIHNoYWRv
dy5tb3ZlKGJveFNoYWRvdy0+eCwgYm94U2hhZG93LT55KTsKICAgICAgICAgc2hhZG93LmluZmxh
dGUoYm94U2hhZG93LT5ibHVyICsgYm94U2hhZG93LT5zcHJlYWQpOwpJbmRleDogV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAkocmV2aXNpb24gNDY1NDUpCisrKyBXZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5NSw3
ICs2OTUsNyBAQCB2b2lkIFJlbmRlclN0eWxlOjphZGRCaW5kaW5nVVJJKFN0cmluZ0ltCiAKIHZv
aWQgUmVuZGVyU3R5bGU6OnNldFRleHRTaGFkb3coU2hhZG93RGF0YSogdmFsLCBib29sIGFkZCkK
IHsKLSAgICBBU1NFUlQoIXZhbCB8fCAhdmFsLT5zcHJlYWQpOworICAgIEFTU0VSVCghdmFsIHx8
ICF2YWwtPnNwcmVhZCAmJiB2YWwtPnN0eWxlID09IE5vcm1hbCk7CiAKICAgICBTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhKiByYXJlRGF0YSA9IHJhcmVJbmhlcml0ZWREYXRhLmFjY2VzcygpOwogICAg
IGlmICghYWRkKSB7CkBAIC05MDYsNCArOTA2LDUzIEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldEJs
ZW5kZWRGb250U2l6ZShpbnQKICAgICBmb250KCkudXBkYXRlKGZvbnQoKS5mb250U2VsZWN0b3Io
KSk7CiB9CiAKK3ZvaWQgUmVuZGVyU3R5bGU6OmdldEJveFNoYWRvd0V4dGVudChpbnQgJnRvcCwg
aW50ICZyaWdodCwgaW50ICZib3R0b20sIGludCAmbGVmdCkgY29uc3QKK3sKKyAgICB0b3AgPSAw
OworICAgIHJpZ2h0ID0gMDsKKyAgICBib3R0b20gPSAwOworICAgIGxlZnQgPSAwOworCisgICAg
Zm9yIChTaGFkb3dEYXRhKiBib3hTaGFkb3cgPSB0aGlzLT5ib3hTaGFkb3coKTsgYm94U2hhZG93
OyBib3hTaGFkb3cgPSBib3hTaGFkb3ctPm5leHQpIHsKKyAgICAgICAgaWYgKGJveFNoYWRvdy0+
c3R5bGUgPT0gSW5zZXQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaW50IGJsdXJB
bmRTcHJlYWQgPSBib3hTaGFkb3ctPmJsdXIgKyBib3hTaGFkb3ctPnNwcmVhZDsKKworICAgICAg
ICB0b3AgPSBtaW4odG9wLCBib3hTaGFkb3ctPnkgLSBibHVyQW5kU3ByZWFkKTsKKyAgICAgICAg
cmlnaHQgPSBtYXgocmlnaHQsIGJveFNoYWRvdy0+eCArIGJsdXJBbmRTcHJlYWQpOworICAgICAg
ICBib3R0b20gPSBtYXgoYm90dG9tLCBib3hTaGFkb3ctPnkgKyBibHVyQW5kU3ByZWFkKTsKKyAg
ICAgICAgbGVmdCA9IG1pbihsZWZ0LCBib3hTaGFkb3ctPnggLSBibHVyQW5kU3ByZWFkKTsKKyAg
ICB9Cit9CisKK3ZvaWQgUmVuZGVyU3R5bGU6OmdldEJveFNoYWRvd0hvcml6b250YWxFeHRlbnQo
aW50ICZsZWZ0LCBpbnQgJnJpZ2h0KSBjb25zdAoreworICAgIGxlZnQgPSAwOworICAgIHJpZ2h0
ID0gMDsKKworICAgIGZvciAoU2hhZG93RGF0YSogYm94U2hhZG93ID0gdGhpcy0+Ym94U2hhZG93
KCk7IGJveFNoYWRvdzsgYm94U2hhZG93ID0gYm94U2hhZG93LT5uZXh0KSB7CisgICAgICAgIGlm
IChib3hTaGFkb3ctPnN0eWxlID09IEluc2V0KQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIGludCBibHVyQW5kU3ByZWFkID0gYm94U2hhZG93LT5ibHVyICsgYm94U2hhZG93LT5zcHJl
YWQ7CisKKyAgICAgICAgbGVmdCA9IG1pbihsZWZ0LCBib3hTaGFkb3ctPnggLSBibHVyQW5kU3By
ZWFkKTsKKyAgICAgICAgcmlnaHQgPSBtYXgocmlnaHQsIGJveFNoYWRvdy0+eCArIGJsdXJBbmRT
cHJlYWQpOworICAgIH0KK30KKwordm9pZCBSZW5kZXJTdHlsZTo6Z2V0Qm94U2hhZG93VmVydGlj
YWxFeHRlbnQoaW50ICZ0b3AsIGludCAmYm90dG9tKSBjb25zdAoreworICAgIHRvcCA9IDA7Cisg
ICAgYm90dG9tID0gMDsKKworICAgIGZvciAoU2hhZG93RGF0YSogYm94U2hhZG93ID0gdGhpcy0+
Ym94U2hhZG93KCk7IGJveFNoYWRvdzsgYm94U2hhZG93ID0gYm94U2hhZG93LT5uZXh0KSB7Cisg
ICAgICAgIGlmIChib3hTaGFkb3ctPnN0eWxlID09IEluc2V0KQorICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIGludCBibHVyQW5kU3ByZWFkID0gYm94U2hhZG93LT5ibHVyICsgYm94U2hh
ZG93LT5zcHJlYWQ7CisKKyAgICAgICAgdG9wID0gbWluKHRvcCwgYm94U2hhZG93LT55IC0gYmx1
ckFuZFNwcmVhZCk7CisgICAgICAgIGJvdHRvbSA9IG1heChib3R0b20sIGJveFNoYWRvdy0+eSAr
IGJsdXJBbmRTcHJlYWQpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCShyZXZpc2lvbiA0NjU0NSkKKysr
IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYwNiw3ICs2MDYsMTIgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGludCBib3hPcmRpbmFsR3Jv
dXAoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+ZmxleGlibGVCb3gtPm9y
ZGluYWxfZ3JvdXA7IH0KICAgICBFQm94T3JpZW50IGJveE9yaWVudCgpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PEVCb3hPcmllbnQ+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5mbGV4aWJsZUJv
eC0+b3JpZW50KTsgfQogICAgIEVCb3hBbGlnbm1lbnQgYm94UGFjaygpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PEVCb3hBbGlnbm1lbnQ+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5mbGV4aWJs
ZUJveC0+cGFjayk7IH0KKwogICAgIFNoYWRvd0RhdGEqIGJveFNoYWRvdygpIGNvbnN0IHsgcmV0
dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2JveFNoYWRvdy5nZXQoKTsgfQorICAgIHZvaWQg
Z2V0Qm94U2hhZG93RXh0ZW50KGludCAmdG9wLCBpbnQgJnJpZ2h0LCBpbnQgJmJvdHRvbSwgaW50
ICZsZWZ0KSBjb25zdDsKKyAgICB2b2lkIGdldEJveFNoYWRvd0hvcml6b250YWxFeHRlbnQoaW50
ICZsZWZ0LCBpbnQgJnJpZ2h0KSBjb25zdDsKKyAgICB2b2lkIGdldEJveFNoYWRvd1ZlcnRpY2Fs
RXh0ZW50KGludCAmdG9wLCBpbnQgJmJvdHRvbSkgY29uc3Q7CisKICAgICBTdHlsZVJlZmxlY3Rp
b24qIGJveFJlZmxlY3QoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9i
b3hSZWZsZWN0LmdldCgpOyB9CiAgICAgRUJveFNpemluZyBib3hTaXppbmcoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxFQm94U2l6aW5nPihib3gtPmJveFNpemluZyk7IH0KICAgICBMZW5n
dGggbWFycXVlZUluY3JlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tYXJxdWVlLT5pbmNyZW1lbnQ7IH0K
</data>
<flag name="review"
          id="17946"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>