<?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>17165</bug_id>
          
          <creation_ts>2008-02-03 11:24:32 -0800</creation_ts>
          <short_desc>Widget needs to subclass wxWindow, not wxScrolledWindow</short_desc>
          <delta_ts>2008-02-03 13:12:22 -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>WebKit wx</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="Kevin Watters">kevinwatters</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>69258</commentid>
    <comment_count>0</comment_count>
    <who name="Kevin Watters">kevinwatters</who>
    <bug_when>2008-02-03 11:24:32 -0800</bug_when>
    <thetext>Widget (and therefore ScrollView) currently inherits from wxScrolledWindow, a class intended to be a simple container for a panel whose virtual area exceeds that of a window on screen.

Since WebKit provides Javascript with means to enable and disable scrollbars as well as scroll the page, Widget needs to perform scrolling at a lower level than wxScrolledWindow.

This results in scrollbars that can&apos;t be disabled and difficulty scrolling smoothly, among other issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69259</commentid>
    <comment_count>1</comment_count>
      <attachid>18886</attachid>
    <who name="Kevin Watters">kevinwatters</who>
    <bug_when>2008-02-03 11:25:18 -0800</bug_when>
    <thetext>Created attachment 18886
Widget subclasses wxWindow instead of wxScrolledWindow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69262</commentid>
    <comment_count>2</comment_count>
      <attachid>18886</attachid>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-02-03 13:09:01 -0800</bug_when>
    <thetext>Comment on attachment 18886
Widget subclasses wxWindow instead of wxScrolledWindow

This is a much needed fix that stops us from rendering areas outside of the page and works great in my testing. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69264</commentid>
    <comment_count>3</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-02-03 13:12:22 -0800</bug_when>
    <thetext>Landed in r29948. Thanks! :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18886</attachid>
            <date>2008-02-03 11:25:18 -0800</date>
            <delta_ts>2008-02-03 13:09:01 -0800</delta_ts>
            <desc>Widget subclasses wxWindow instead of wxScrolledWindow</desc>
            <filename>scrollbar.patch</filename>
            <type>text/plain</type>
            <size>17871</size>
            <attacher name="Kevin Watters">kevinwatters</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTk0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMDgtMDItMDMgIEtldmluIFdhdHRlcnMgIDxrZXZpbndhdHRlcnNA
Z21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAgICog
cGxhdGZvcm0vd3gvUmVuZGVyVGhlbWVXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZVd4OjpwYWludEJ1dHRvbik6CisgICAgICAgICogcGxhdGZvcm0vd3gvU2Nyb2xsVmlld1d4
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OlNjcm9sbFZpZXdQcml2YXRlOjpT
Y3JvbGxWaWV3UHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpTY3JvbGxW
aWV3UHJpdmF0ZTo6YmluZEV2ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpT
Y3JvbGxWaWV3UHJpdmF0ZTo6T25Nb3VzZVdoZWVsRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6OlNjcm9sbFZpZXdQcml2YXRlOjpPblNjcm9sbFdpbkV2ZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpTY3JvbGxWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6OnNldE5hdGl2ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3Ojp1cGRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp1cGRh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dmlzaWJsZVdpZHRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnZpc2libGVIZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsVmlldzo6c2V0Q29udGVudHNQb3MpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Vmlldzo6c2Nyb2xsQnkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cmVzaXplQ29u
dGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y29udGVudHNYKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmNvbnRlbnRzWSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxWaWV3Ojpjb250ZW50c1dpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6
OmNvbnRlbnRzSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OkFkanVzdFNj
cm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsYmFyc01v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0SFNjcm9sbGJhck1vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0VlNjcm9sbGJhck1vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c3VwcHJlc3NTY3JvbGxiYXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbFZpZXc6OmluV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZp
ZXc6OndoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6YWRkQ2hpbGQp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6Y2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Vmlldzo6c2Nyb2xsUmVjdEludG9WaWV3UmVjdXJzaXZlbHkpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsVmlldzo6c2Nyb2xsYmFyVW5kZXJNb3VzZSk6CisgICAgICAgICogcGxhdGZvcm0vd3gv
V2lkZ2V0V3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpXaWRnZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6V2lkZ2V0Ojp+V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6
bmF0aXZlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0TmF0aXZlV2luZG93
KToKKwogMjAwOC0wMi0wMiAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IGZvciBidWcgNTQ2OCwgc3VwcG9ydCBDU1MzIDpvbmx5LWNoaWxkIGFuZCA6b25seS1v
Zi10eXBlIHNlbGVjdG9ycy4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd3gvV2lkZ2V0V3guY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd3gvV2lkZ2V0V3guY3BwCShyZXZpc2lv
biAyOTk0NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vd3gvV2lkZ2V0V3guY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw3ICszOCw3IEBACiBjbGFzcyBXaWRnZXRQcml2YXRlCiB7CiBwdWJsaWM6Ci0g
ICAgd3hTY3JvbGxlZFdpbmRvdyogbmF0aXZlV2luZG93OworICAgIHd4V2luZG93KiBuYXRpdmVX
aW5kb3c7CiAgICAgRm9udCBmb250OwogICAgIFdpZGdldENsaWVudCogY2xpZW50OwogfTsKQEAg
LTUwLDIzICs1MCwyMyBAQAogICAgIGRhdGEtPmNsaWVudCA9IDA7CiB9CiAKLVdpZGdldDo6V2lk
Z2V0KHd4U2Nyb2xsZWRXaW5kb3cqIHdpbikKK1dpZGdldDo6V2lkZ2V0KHd4V2luZG93KiB3aW4p
CiAgICAgOiBkYXRhKG5ldyBXaWRnZXRQcml2YXRlKQogewotICAgIGRhdGEtPm5hdGl2ZVdpbmRv
dyA9IHdpbjsKKyAgICBzZXROYXRpdmVXaW5kb3cod2luKTsKIH0KIAotV2lkZ2V0Ojp+V2lkZ2V0
KCkgCitXaWRnZXQ6On5XaWRnZXQoKQogewogICAgIGRlbGV0ZSBkYXRhOwogfQogCi13eFNjcm9s
bGVkV2luZG93KiBXaWRnZXQ6Om5hdGl2ZVdpbmRvdygpIGNvbnN0Cit3eFdpbmRvdyogV2lkZ2V0
OjpuYXRpdmVXaW5kb3coKSBjb25zdAogewogICAgIHJldHVybiBkYXRhLT5uYXRpdmVXaW5kb3c7
CiB9CiAKLXZvaWQgV2lkZ2V0OjpzZXROYXRpdmVXaW5kb3cod3hTY3JvbGxlZFdpbmRvdyogd2lu
KQordm9pZCBXaWRnZXQ6OnNldE5hdGl2ZVdpbmRvdyh3eFdpbmRvdyogd2luKQogewogICAgIGRh
dGEtPm5hdGl2ZVdpbmRvdyA9IHdpbjsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd3gvU2Ny
b2xsVmlld1d4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3d4L1Njcm9sbFZp
ZXdXeC5jcHAJKHJldmlzaW9uIDI5OTQ3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93eC9TY3JvbGxW
aWV3V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwzOSArMjksMTA0IEBACiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCisjaW5jbHVkZSAiU2Nyb2xsQmFyLmgiCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAj
aW5jbHVkZSA8c3RkaW8uaD4KIAogI2luY2x1ZGUgPHd4L2RlZnMuaD4KICNpbmNsdWRlIDx3eC9z
Y3JvbHdpbi5oPgorI2luY2x1ZGUgPHd4L2V2ZW50Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU2Nyb2xsVmlldzo6U2Nyb2xsVmlld1By
aXZhdGUgeworY2xhc3MgU2Nyb2xsVmlldzo6U2Nyb2xsVmlld1ByaXZhdGUgOiBwdWJsaWMgd3hF
dnRIYW5kbGVyIHsKKwogcHVibGljOgotICAgIFNjcm9sbFZpZXdQcml2YXRlKCkKLSAgICAgICAg
OiBoYXNTdGF0aWNCYWNrZ3JvdW5kKGZhbHNlKQorICAgIFNjcm9sbFZpZXdQcml2YXRlKFNjcm9s
bFZpZXcqIHNjcm9sbFZpZXcpCisgICAgICAgIDogd3hFdnRIYW5kbGVyKCkKKyAgICAgICAgLCBt
X3Njcm9sbFZpZXcoc2Nyb2xsVmlldykKKyAgICAgICAgLCBoYXNTdGF0aWNCYWNrZ3JvdW5kKGZh
bHNlKQogICAgICAgICAsIHN1cHByZXNzU2Nyb2xsYmFycyhmYWxzZSkKICAgICAgICAgLCB2U2Ny
b2xsYmFyTW9kZShTY3JvbGxiYXJBdXRvKQogICAgICAgICAsIGhTY3JvbGxiYXJNb2RlKFNjcm9s
bGJhckF1dG8pCisgICAgICAgICwgdmlld1N0YXJ0KDAsIDApCiAgICAgewogICAgIH0KKworICAg
IHZvaWQgYmluZEV2ZW50cyh3eFdpbmRvdyogd2luKQorICAgIHsKKyAgICAgICAgLy8gVE9ETzog
aXMgdGhlcmUgYW4gZWFzaWVyIHdheSB0byBDb25uZWN0IHRvIGEgcmFuZ2Ugb2YgZXZlbnRzPyB0
aGVzZSBhcmUgY29udGlndW91cy4KKyAgICAgICAgd2luLT5Db25uZWN0KHd4RVZUX1NDUk9MTFdJ
Tl9UT1AsICAgICAgICAgIHd4U2Nyb2xsV2luRXZlbnRIYW5kbGVyKFNjcm9sbFZpZXdQcml2YXRl
OjpPblNjcm9sbFdpbkV2ZW50cyksIE5VTEwsIHRoaXMpOworICAgICAgICB3aW4tPkNvbm5lY3Qo
d3hFVlRfU0NST0xMV0lOX0JPVFRPTSwgICAgICAgd3hTY3JvbGxXaW5FdmVudEhhbmRsZXIoU2Ny
b2xsVmlld1ByaXZhdGU6Ok9uU2Nyb2xsV2luRXZlbnRzKSwgTlVMTCwgdGhpcyk7CisgICAgICAg
IHdpbi0+Q29ubmVjdCh3eEVWVF9TQ1JPTExXSU5fTElORVVQLCAgICAgICB3eFNjcm9sbFdpbkV2
ZW50SGFuZGxlcihTY3JvbGxWaWV3UHJpdmF0ZTo6T25TY3JvbGxXaW5FdmVudHMpLCBOVUxMLCB0
aGlzKTsKKyAgICAgICAgd2luLT5Db25uZWN0KHd4RVZUX1NDUk9MTFdJTl9MSU5FRE9XTiwgICAg
IHd4U2Nyb2xsV2luRXZlbnRIYW5kbGVyKFNjcm9sbFZpZXdQcml2YXRlOjpPblNjcm9sbFdpbkV2
ZW50cyksIE5VTEwsIHRoaXMpOworICAgICAgICB3aW4tPkNvbm5lY3Qod3hFVlRfU0NST0xMV0lO
X1BBR0VVUCwgICAgICAgd3hTY3JvbGxXaW5FdmVudEhhbmRsZXIoU2Nyb2xsVmlld1ByaXZhdGU6
Ok9uU2Nyb2xsV2luRXZlbnRzKSwgTlVMTCwgdGhpcyk7CisgICAgICAgIHdpbi0+Q29ubmVjdCh3
eEVWVF9TQ1JPTExXSU5fUEFHRURPV04sICAgICB3eFNjcm9sbFdpbkV2ZW50SGFuZGxlcihTY3Jv
bGxWaWV3UHJpdmF0ZTo6T25TY3JvbGxXaW5FdmVudHMpLCBOVUxMLCB0aGlzKTsKKyAgICAgICAg
d2luLT5Db25uZWN0KHd4RVZUX1NDUk9MTFdJTl9USFVNQlRSQUNLLCAgIHd4U2Nyb2xsV2luRXZl
bnRIYW5kbGVyKFNjcm9sbFZpZXdQcml2YXRlOjpPblNjcm9sbFdpbkV2ZW50cyksIE5VTEwsIHRo
aXMpOworICAgICAgICB3aW4tPkNvbm5lY3Qod3hFVlRfU0NST0xMV0lOX1RIVU1CUkVMRUFTRSwg
d3hTY3JvbGxXaW5FdmVudEhhbmRsZXIoU2Nyb2xsVmlld1ByaXZhdGU6Ok9uU2Nyb2xsV2luRXZl
bnRzKSwgTlVMTCwgdGhpcyk7CisgICAgICAgIHdpbi0+Q29ubmVjdCh3eEVWVF9TQ1JPTExXSU5f
VE9QLCAgICAgICAgICB3eFNjcm9sbFdpbkV2ZW50SGFuZGxlcihTY3JvbGxWaWV3UHJpdmF0ZTo6
T25TY3JvbGxXaW5FdmVudHMpLCBOVUxMLCB0aGlzKTsKKyAgICAgICAgd2luLT5Db25uZWN0KHd4
RVZUX01PVVNFV0hFRUwsICAgICAgICAgICAgIHd4TW91c2VFdmVudEhhbmRsZXIoU2Nyb2xsVmll
d1ByaXZhdGU6Ok9uTW91c2VXaGVlbEV2ZW50cyksIE5VTEwsIHRoaXMpOworICAgIH0KKyAgICAK
KyAgICB2b2lkIE9uTW91c2VXaGVlbEV2ZW50cyh3eE1vdXNlRXZlbnQmIGV2ZW50KQorICAgIHsK
KyAgICAgICAgLy8gVE9ETzogR2V0IHd4IHRvIHJlcG9ydCBYIGFuZCBZIHJvdGF0aW9uIHNvIHdl
IGNhbiBzdXBwb3J0IG1pZ2h0eSBtb3VzZSwgZXRjLgorICAgICAgICBtX3Njcm9sbFZpZXctPnNj
cm9sbEJ5KDAsIC1ldmVudC5HZXRXaGVlbFJvdGF0aW9uKCkgKiBMSU5FX1NURVApOworICAgIH0K
KworICAgIHZvaWQgT25TY3JvbGxXaW5FdmVudHMod3hTY3JvbGxXaW5FdmVudCYgZSkKKyAgICB7
CisgICAgICAgIHd4RXZlbnRUeXBlIHNjcm9sbFR5cGUoZS5HZXRFdmVudFR5cGUoKSk7CisgICAg
ICAgIGJvb2wgaG9yaXogPSBlLkdldE9yaWVudGF0aW9uKCkgPT0gd3hIT1JJWk9OVEFMOworCisg
ICAgICAgIHd4UG9pbnQgcG9zKHZpZXdTdGFydCk7CisgCisgICAgICAgIGlmIChzY3JvbGxUeXBl
ID09IHd4RVZUX1NDUk9MTFdJTl9USFVNQlRSQUNLIHx8IHNjcm9sbFR5cGUgPT0gd3hFVlRfU0NS
T0xMV0lOX1RIVU1CUkVMRUFTRSkgeworICAgICAgICAgICAgaWYgKGhvcml6KSBwb3MueCA9IGUu
R2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgIGVsc2UgICAgICAgcG9zLnkgPSBlLkdldFBvc2l0
aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIHNjcm9sbFR5cGUgPT0gd3hFVlRf
U0NST0xMV0lOX0xJTkVET1dOICkgeworICAgICAgICAgICAgaWYgKGhvcml6KSBwb3MueCArPSBM
SU5FX1NURVA7CisgICAgICAgICAgICBlbHNlICAgICAgIHBvcy55ICs9IExJTkVfU1RFUDsKKyAg
ICAgICAgfQorICAgICAgICBlbHNlIGlmICggc2Nyb2xsVHlwZSA9PSB3eEVWVF9TQ1JPTExXSU5f
TElORVVQICkgeworICAgICAgICAgICAgaWYgKGhvcml6KSBwb3MueCAtPSBMSU5FX1NURVA7Cisg
ICAgICAgICAgICBlbHNlICAgICAgIHBvcy55IC09IExJTkVfU1RFUDsKKyAgICAgICAgfQorICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBlLlNraXAoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIG1fc2Nyb2xsVmlldy0+c2V0Q29udGVudHNQb3MocG9zLngsIHBvcy55KTsKKyAgICAg
ICAgbV9zY3JvbGxWaWV3LT51cGRhdGUoKTsKKyAgICB9CisKKyAgICBTY3JvbGxWaWV3KiBtX3Nj
cm9sbFZpZXc7CisKICAgICBJbnRTaXplIHNjcm9sbE9mZnNldDsKICAgICBJbnRTaXplIGNvbnRl
bnRzU2l6ZTsKKyAgICBIYXNoU2V0PFdpZGdldCo+IG1fY2hpbGRyZW47CiAgICAgYm9vbCBoYXNT
dGF0aWNCYWNrZ3JvdW5kOwogICAgIGJvb2wgc3VwcHJlc3NTY3JvbGxiYXJzOwogICAgIFNjcm9s
bGJhck1vZGUgdlNjcm9sbGJhck1vZGU7CiAgICAgU2Nyb2xsYmFyTW9kZSBoU2Nyb2xsYmFyTW9k
ZTsKKyAgICB3eFBvaW50IHZpZXdTdGFydDsKIH07CiAKIFNjcm9sbFZpZXc6OlNjcm9sbFZpZXco
KQotICAgIDogbV9kYXRhKG5ldyBTY3JvbGxWaWV3UHJpdmF0ZSgpKQogeworICAgIG1fZGF0YSA9
IG5ldyBTY3JvbGxWaWV3UHJpdmF0ZSh0aGlzKTsKIH0KIAordm9pZCBTY3JvbGxWaWV3OjpzZXRO
YXRpdmVXaW5kb3cod3hXaW5kb3cqIHdpbikKK3sKKyAgICBXaWRnZXQ6OnNldE5hdGl2ZVdpbmRv
dyh3aW4pOworICAgIG1fZGF0YS0+YmluZEV2ZW50cyh3aW4pOworfQorCiBTY3JvbGxWaWV3Ojp+
U2Nyb2xsVmlldygpCiB7CiAgICAgZGVsZXRlIG1fZGF0YTsKQEAgLTcyLDcgKzEzNyw3IEBACiAg
ICAgLy8gd2UgbmVlZCB0byBjb252ZXJ0IGNvb3JkaW5hdGVzIHRvIHNjcm9sbGVkIHBvc2l0aW9u
CiAgICAgd3hSZWN0IGNvbnRlbnRzUmVjdCA9IHVwZGF0ZVJlY3Q7CiAgICAgY29udGVudHNSZWN0
Lk9mZnNldCgtY29udGVudHNYKCksIC1jb250ZW50c1koKSk7Ci0gICAgd3hTY3JvbGxlZFdpbmRv
dyogd2luID0gbmF0aXZlV2luZG93KCk7CisgICAgd3hXaW5kb3cqIHdpbiA9IG5hdGl2ZVdpbmRv
dygpOwogICAgIGlmICh3aW4pIHsKICAgICAgICAgd2luLT5SZWZyZXNoUmVjdChjb250ZW50c1Jl
Y3QsIHRydWUpOwogICAgICAgICBpZiAobm93KQpAQCAtODIsNyArMTQ3LDcgQEAKIAogdm9pZCBT
Y3JvbGxWaWV3Ojp1cGRhdGUoKQogewotICAgIHd4U2Nyb2xsZWRXaW5kb3cqIHdpbiA9IG5hdGl2
ZVdpbmRvdygpOworICAgIHd4V2luZG93KiB3aW4gPSBuYXRpdmVXaW5kb3coKTsKICAgICBpZiAo
d2luKSB7CiAgICAgICAgIHdpbi0+VXBkYXRlKCk7CiAgICAgfQpAQCAtOTEsNyArMTU2LDcgQEAK
IGludCBTY3JvbGxWaWV3Ojp2aXNpYmxlV2lkdGgoKSBjb25zdAogewogICAgIGludCB3aWR0aCA9
IDA7Ci0gICAgd3hTY3JvbGxlZFdpbmRvdyogd2luID0gbmF0aXZlV2luZG93KCk7CisgICAgd3hX
aW5kb3cqIHdpbiA9IG5hdGl2ZVdpbmRvdygpOwogICAgIGlmICh3aW4pCiAgICAgICAgIHdpbi0+
R2V0Q2xpZW50U2l6ZSgmd2lkdGgsIE5VTEwpOwogICAgIApAQCAtMTAxLDcgKzE2Niw3IEBACiBp
bnQgU2Nyb2xsVmlldzo6dmlzaWJsZUhlaWdodCgpIGNvbnN0CiB7CiAgICAgaW50IGhlaWdodCA9
IDA7Ci0gICAgd3hTY3JvbGxlZFdpbmRvdyogd2luID0gbmF0aXZlV2luZG93KCk7CisgICAgd3hX
aW5kb3cqIHdpbiA9IG5hdGl2ZVdpbmRvdygpOwogICAgIGlmICh3aW4pCiAgICAgICAgIHdpbi0+
R2V0Q2xpZW50U2l6ZShOVUxMLCAmaGVpZ2h0KTsKICAgICAKQEAgLTExNSw1NCArMTgwLDc0IEBA
CiAKIHZvaWQgU2Nyb2xsVmlldzo6c2V0Q29udGVudHNQb3MoaW50IG5ld1gsIGludCBuZXdZKQog
ewotICAgIHd4U2Nyb2xsZWRXaW5kb3cqIHdpbiA9IG5hdGl2ZVdpbmRvdygpOyAKLSAgICBpZiAo
d2luKSB7Ci0gICAgICAgIGludCBzVW5pdFggPSAxOyAKLSAgICAgICAgaW50IHNVbml0WSA9IDE7
IAotICAgICAgICB3aW4tPkdldFNjcm9sbFBpeGVsc1BlclVuaXQoJnNVbml0WCwgJnNVbml0WSk7
IAotICAgICAgICB3aW4tPlNjcm9sbChuZXdYIC8gc1VuaXRYLCBuZXdZIC8gc1VuaXRZKTsgCi0g
ICAgfSAKKyAgICBpbnQgZHggPSBuZXdYIC0gY29udGVudHNYKCk7CisgICAgaW50IGR5ID0gbmV3
WSAtIGNvbnRlbnRzWSgpOworICAgIHNjcm9sbEJ5KGR4LCBkeSk7CiB9CiAKK3ZvaWQgU2Nyb2xs
Vmlldzo6c2Nyb2xsQnkoaW50IGR4LCBpbnQgZHkpCit7CisgICAgd3hXaW5kb3cqIHdpbiA9IG5h
dGl2ZVdpbmRvdygpOworICAgIGlmICghd2luKQorICAgICAgICByZXR1cm47CisKKyAgICB3eFBv
aW50IHNjcm9sbE9mZnNldCAgICA9IG1fZGF0YS0+dmlld1N0YXJ0OworICAgIHd4UG9pbnQgb3Jp
ZyhzY3JvbGxPZmZzZXQpOworICAgIHd4UG9pbnQgbmV3U2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zm
c2V0ICsgd3hQb2ludChkeCwgZHkpOworCisgICAgd3hSZWN0IHZSZWN0KHdpbi0+R2V0VmlydHVh
bFNpemUoKSk7CisgICAgd3hSZWN0IGNSZWN0KHdpbi0+R2V0Q2xpZW50U2l6ZSgpKTsKKworICAg
IC8vIGNsYW1wIHRvIHNjcm9sbCBhcmVhCisgICAgaWYgKG5ld1Njcm9sbE9mZnNldC54IDwgMCkK
KyAgICAgICAgbmV3U2Nyb2xsT2Zmc2V0LnggPSAwOworICAgIGVsc2UgaWYgKG5ld1Njcm9sbE9m
ZnNldC54ICsgY1JlY3Qud2lkdGggPiB2UmVjdC53aWR0aCkKKyAgICAgICAgbmV3U2Nyb2xsT2Zm
c2V0LnggPSBtYXgoMCwgdlJlY3Qud2lkdGggLSBjUmVjdC53aWR0aCAtIDEpOworCisgICAgaWYg
KG5ld1Njcm9sbE9mZnNldC55IDwgMCkKKyAgICAgICAgbmV3U2Nyb2xsT2Zmc2V0LnkgPSAwOwor
ICAgIGVsc2UgaWYgKG5ld1Njcm9sbE9mZnNldC55ICsgY1JlY3QuaGVpZ2h0ID4gdlJlY3QuaGVp
Z2h0KQorICAgICAgICBuZXdTY3JvbGxPZmZzZXQueSA9IG1heCgwLCB2UmVjdC5oZWlnaHQgLSBj
UmVjdC5oZWlnaHQgLSAxKTsKKworICAgIGlmIChuZXdTY3JvbGxPZmZzZXQgPT0gc2Nyb2xsT2Zm
c2V0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RhdGEtPnZpZXdTdGFydCA9IG5ld1Njcm9s
bE9mZnNldDsKKworICAgIHd4UG9pbnQgZGVsdGEob3JpZyAtIG5ld1Njcm9sbE9mZnNldCk7CisK
KyAgICBpZiAobV9kYXRhLT5oYXNTdGF0aWNCYWNrZ3JvdW5kKSB7CisgICAgICAgIHdpbi0+UmVm
cmVzaCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHdpbi0+U2Nyb2xsV2luZG93KGRlbHRhLngs
IGRlbHRhLnkpOworICAgIH0KKworICAgIEFkanVzdFNjcm9sbGJhcnMoKTsKK30KKwogdm9pZCBT
Y3JvbGxWaWV3OjpyZXNpemVDb250ZW50cyhpbnQgdyxpbnQgaCkKIHsKLSAgICB3eFNjcm9sbGVk
V2luZG93KiB3aW4gPSBuYXRpdmVXaW5kb3coKTsKKyAgICB3eFdpbmRvdyogd2luID0gbmF0aXZl
V2luZG93KCk7CiAgICAgaWYgKHdpbikgewogICAgICAgICB3aW4tPlNldFZpcnR1YWxTaXplKHcs
IGgpOwotICAgICAgICB3aW4tPlNldFNjcm9sbFJhdGUoMjAsIDIwKTsKKyAgICAgICAgQWRqdXN0
U2Nyb2xsYmFycygpOwogICAgIH0KIH0KIAogaW50IFNjcm9sbFZpZXc6OmNvbnRlbnRzWCgpIGNv
bnN0CiB7Ci0gICAgaW50IHggPSAwOwotICAgIHd4U2Nyb2xsZWRXaW5kb3cqIHdpbiA9IG5hdGl2
ZVdpbmRvdygpOwotICAgIGlmICh3aW4pIHsKLSAgICAgICAgaW50IHNVbml0WCA9IDE7Ci0gICAg
ICAgIHdpbi0+R2V0Vmlld1N0YXJ0KCZ4LCBOVUxMKTsKLSAgICAgICAgd2luLT5HZXRTY3JvbGxQ
aXhlbHNQZXJVbml0KCZzVW5pdFgsIE5VTEwpOwotICAgICAgICB4ICo9IHNVbml0WDsKLSAgICB9
Ci0gICAgcmV0dXJuIHg7CisgICAgcmV0dXJuIG1fZGF0YS0+dmlld1N0YXJ0Lng7CiB9CiAKIGlu
dCBTY3JvbGxWaWV3Ojpjb250ZW50c1koKSBjb25zdAogewotICAgIGludCB5ID0gMDsKLSAgICB3
eFNjcm9sbGVkV2luZG93KiB3aW4gPSBuYXRpdmVXaW5kb3coKTsKLSAgICBpZiAod2luKSB7Ci0g
ICAgICAgIGludCBzVW5pdFkgPSAxOwotICAgICAgICB3aW4tPkdldFZpZXdTdGFydChOVUxMLCAm
eSk7Ci0gICAgICAgIHdpbi0+R2V0U2Nyb2xsUGl4ZWxzUGVyVW5pdCgmc1VuaXRZLCBOVUxMKTsK
LSAgICAgICAgeSAqPSBzVW5pdFk7Ci0gICAgfQotICAgIHJldHVybiB5OworICAgIHJldHVybiBt
X2RhdGEtPnZpZXdTdGFydC55OwogfQogCiBpbnQgU2Nyb2xsVmlldzo6Y29udGVudHNXaWR0aCgp
IGNvbnN0CiB7CiAgICAgaW50IHdpZHRoID0gMDsKLSAgICB3eFNjcm9sbGVkV2luZG93KiB3aW4g
PSBuYXRpdmVXaW5kb3coKTsKKyAgICB3eFdpbmRvdyogd2luID0gbmF0aXZlV2luZG93KCk7CiAg
ICAgaWYgKHdpbikKICAgICAgICAgd2luLT5HZXRWaXJ0dWFsU2l6ZSgmd2lkdGgsIE5VTEwpOwog
ICAgIHJldHVybiB3aWR0aDsKQEAgLTE3MSw3ICsyNTYsNyBAQAogaW50IFNjcm9sbFZpZXc6OmNv
bnRlbnRzSGVpZ2h0KCkgY29uc3QKIHsKICAgICBpbnQgaGVpZ2h0ID0gMDsKLSAgICB3eFNjcm9s
bGVkV2luZG93KiB3aW4gPSBuYXRpdmVXaW5kb3coKTsKKyAgICB3eFdpbmRvdyogd2luID0gbmF0
aXZlV2luZG93KCk7CiAgICAgaWYgKHdpbikKICAgICAgICAgd2luLT5HZXRWaXJ0dWFsU2l6ZShO
VUxMLCAmaGVpZ2h0KTsKICAgICByZXR1cm4gaGVpZ2h0OwpAQCAtMTg5LDE1ICsyNzQsNTcgQEAK
ICAgICByZXR1cm4gSW50U2l6ZShjb250ZW50c1goKSwgY29udGVudHNZKCkpOwogfQogCi12b2lk
IFNjcm9sbFZpZXc6OnNjcm9sbEJ5KGludCBkeCwgaW50IGR5KQordm9pZCBTY3JvbGxWaWV3OjpB
ZGp1c3RTY3JvbGxiYXJzKGludCB4LCBpbnQgeSwgYm9vbCByZWZyZXNoKQogewotICAgIHd4U2Ny
b2xsZWRXaW5kb3cqIHdpbiA9IG5hdGl2ZVdpbmRvdygpOwotICAgIGlmICh3aW4pIHsKLSAgICAg
ICAgaW50IHNVbml0WCA9IDE7IAotICAgICAgICBpbnQgc1VuaXRZID0gMTsgCi0gICAgICAgIHdp
bi0+R2V0U2Nyb2xsUGl4ZWxzUGVyVW5pdCgmc1VuaXRYLCAmc1VuaXRZKTsgCi0gICAgICAgIHdp
bi0+U2Nyb2xsKGNvbnRlbnRzWCgpICsgKGR4IC8gc1VuaXRYKSwgY29udGVudHNZKCkgKyAoZHkg
LyBzVW5pdFkpKTsgCi0gICAgfSAKKyAgICB3eFdpbmRvdyogd2luID0gbmF0aXZlV2luZG93KCk7
CisgICAgaWYgKCF3aW4pCisgICAgICAgIHJldHVybjsKKworICAgIHd4UmVjdCBjcmVjdCh3aW4t
PkdldENsaWVudFJlY3QoKSksIHZyZWN0KHdpbi0+R2V0VmlydHVhbFNpemUoKSk7CisKKyAgICBp
ZiAoeCA9PSAtMSkgeCA9IG1fZGF0YS0+dmlld1N0YXJ0Lng7CisgICAgaWYgKHkgPT0gLTEpIHkg
PSBtX2RhdGEtPnZpZXdTdGFydC55OworCisgICAgbG9uZyBzdHlsZSA9IHdpbi0+R2V0V2luZG93
U3R5bGUoKTsKKworICAgIC8vIGJ5IHNldHRpbmcgdGhlIHd4QUxXQVlTX1NIT1dfU0Igd3hXaW5k
b3cgZmxhZyBiZWZvcmUKKyAgICAvLyBlYWNoIFNldFNjcm9sbGJhciBjYWxsLCB3ZSBjYW4gY29u
dHJvbCB0aGUgc2Nyb2xsYmFycworICAgIC8vIHZpc2liaWxpdHkgaW5kaXZpZHVhbGx5LgorCisg
ICAgLy8gaG9yaXpvbnRhbCBzY3JvbGxiYXIKKyAgICBzd2l0Y2ggKG1fZGF0YS0+aFNjcm9sbGJh
ck1vZGUpIHsKKyAgICAgICAgY2FzZSBTY3JvbGxiYXJBbHdheXNPZmY6CisgICAgICAgICAgICB3
aW4tPlNldFdpbmRvd1N0eWxlRmxhZyhzdHlsZSAmIH53eEFMV0FZU19TSE9XX1NCKTsKKyAgICAg
ICAgICAgIHdpbi0+U2V0U2Nyb2xsYmFyKHd4SE9SSVpPTlRBTCwgMCwgMCwgMCwgcmVmcmVzaCk7
CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFNjcm9sbGJhckF1dG86CisgICAg
ICAgICAgICB3aW4tPlNldFdpbmRvd1N0eWxlRmxhZyhzdHlsZSAmIH53eEFMV0FZU19TSE9XX1NC
KTsKKyAgICAgICAgICAgIHdpbi0+U2V0U2Nyb2xsYmFyKHd4SE9SSVpPTlRBTCwgeCwgY3JlY3Qu
d2lkdGgsIHZyZWN0LndpZHRoLCByZWZyZXNoKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGRlZmF1bHQ6IC8vIFNjcm9sbGJhckFsd2F5c09uCisgICAgICAgICAgICB3aW4tPlNldFdp
bmRvd1N0eWxlRmxhZyhzdHlsZSB8IHd4QUxXQVlTX1NIT1dfU0IpOworICAgICAgICAgICAgd2lu
LT5TZXRTY3JvbGxiYXIod3hIT1JJWk9OVEFMLCB4LCBjcmVjdC53aWR0aCwgdnJlY3Qud2lkdGgs
IHJlZnJlc2gpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gdmVydGljYWwg
c2Nyb2xsYmFyCisgICAgc3dpdGNoIChtX2RhdGEtPnZTY3JvbGxiYXJNb2RlKSB7CisgICAgICAg
IGNhc2UgU2Nyb2xsYmFyQWx3YXlzT2ZmOgorICAgICAgICAgICAgd2luLT5TZXRXaW5kb3dTdHls
ZUZsYWcoc3R5bGUgJiB+d3hBTFdBWVNfU0hPV19TQik7CisgICAgICAgICAgICB3aW4tPlNldFNj
cm9sbGJhcih3eFZFUlRJQ0FMLCAwLCAwLCAwLCByZWZyZXNoKTsKKyAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgIGNhc2UgU2Nyb2xsYmFyQWx3YXlzT246CisgICAgICAgICAgICB3aW4tPlNl
dFdpbmRvd1N0eWxlRmxhZyhzdHlsZSB8IHd4QUxXQVlTX1NIT1dfU0IpOworICAgICAgICAgICAg
d2luLT5TZXRTY3JvbGxiYXIod3hWRVJUSUNBTCwgeSwgY3JlY3QuaGVpZ2h0LCB2cmVjdC5oZWln
aHQsIHJlZnJlc2gpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDogLy8g
Y2FzZSBTY3JvbGxiYXJBdXRvOgorICAgICAgICAgICAgd2luLT5TZXRXaW5kb3dTdHlsZUZsYWco
c3R5bGUgJiB+d3hBTFdBWVNfU0hPV19TQik7CisgICAgICAgICAgICB3aW4tPlNldFNjcm9sbGJh
cih3eFZFUlRJQ0FMLCB5LCBjcmVjdC5oZWlnaHQsIHZyZWN0LmhlaWdodCwgcmVmcmVzaCk7Cisg
ICAgfQogfQogCiBXZWJDb3JlOjpTY3JvbGxiYXJNb2RlIFNjcm9sbFZpZXc6OmhTY3JvbGxiYXJN
b2RlKCkgY29uc3QKQEAgLTIxMCwxNCArMzM3LDM5IEBACiAgICAgcmV0dXJuIG1fZGF0YS0+dlNj
cm9sbGJhck1vZGU7CiB9CiAKK3ZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsYmFyc01vZGUoU2Ny
b2xsYmFyTW9kZSBuZXdNb2RlKQoreworICAgIGJvb2wgbmVlZHNBZGp1c3QgPSBmYWxzZTsKKwor
ICAgIGlmIChtX2RhdGEtPmhTY3JvbGxiYXJNb2RlICE9IG5ld01vZGUpIHsKKyAgICAgICAgbV9k
YXRhLT5oU2Nyb2xsYmFyTW9kZSA9IG5ld01vZGU7CisgICAgICAgIG5lZWRzQWRqdXN0ID0gdHJ1
ZTsKKyAgICB9CisKKyAgICBpZiAobV9kYXRhLT52U2Nyb2xsYmFyTW9kZSAhPSBuZXdNb2RlKSB7
CisgICAgICAgIG1fZGF0YS0+dlNjcm9sbGJhck1vZGUgPSBuZXdNb2RlOworICAgICAgICBBZGp1
c3RTY3JvbGxiYXJzKCk7CisgICAgICAgIG5lZWRzQWRqdXN0ID0gdHJ1ZTsKKyAgICB9CisKKyAg
ICBpZiAobmVlZHNBZGp1c3QpCisgICAgICAgIEFkanVzdFNjcm9sbGJhcnMoKTsKK30KKwogdm9p
ZCBTY3JvbGxWaWV3OjpzZXRIU2Nyb2xsYmFyTW9kZShTY3JvbGxiYXJNb2RlIG5ld01vZGUpCiB7
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAobV9kYXRhLT5oU2Nyb2xsYmFyTW9kZSAh
PSBuZXdNb2RlKSB7CisgICAgICAgIG1fZGF0YS0+aFNjcm9sbGJhck1vZGUgPSBuZXdNb2RlOwor
ICAgICAgICBBZGp1c3RTY3JvbGxiYXJzKCk7CisgICAgfQogfQogCiB2b2lkIFNjcm9sbFZpZXc6
OnNldFZTY3JvbGxiYXJNb2RlKFNjcm9sbGJhck1vZGUgbmV3TW9kZSkKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIGlmIChtX2RhdGEtPnZTY3JvbGxiYXJNb2RlICE9IG5ld01vZGUpIHsK
KyAgICAgICAgbV9kYXRhLT52U2Nyb2xsYmFyTW9kZSA9IG5ld01vZGU7CisgICAgICAgIEFkanVz
dFNjcm9sbGJhcnMoKTsKKyAgICB9CiB9CiAKIHZvaWQgU2Nyb2xsVmlldzo6c2V0U3RhdGljQmFj
a2dyb3VuZChib29sIGZsYWcpCkBAIC0yMjcsMTQgKzM3OSwxMSBAQAogCiB2b2lkIFNjcm9sbFZp
ZXc6OnN1cHByZXNzU2Nyb2xsYmFycyhib29sIHN1cHByZXNzZWQsIGJvb2wgcmVwYWludE9uU3Vw
cHJlc3MpCiB7Ci0gICAgbV9kYXRhLT5zdXBwcmVzc1Njcm9sbGJhcnMgPSBzdXBwcmVzc2VkOwor
ICAgIGlmICggbV9kYXRhLT5zdXBwcmVzc1Njcm9sbGJhcnMgIT0gc3VwcHJlc3NlZCApIHsKKyAg
ICAgICAgbV9kYXRhLT5zdXBwcmVzc1Njcm9sbGJhcnMgPSBzdXBwcmVzc2VkOworICAgIH0KIH0K
IAotdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxiYXJzTW9kZShTY3JvbGxiYXJNb2RlIG5ld01v
ZGUpCi17Ci0gICAgbV9kYXRhLT5oU2Nyb2xsYmFyTW9kZSA9IG1fZGF0YS0+dlNjcm9sbGJhck1v
ZGUgPSBuZXdNb2RlOwotfQotCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojpjb250ZW50c1RvV2luZG93
KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAgICByZXR1cm4gcG9pbnQgLSBzY3Jv
bGxPZmZzZXQoKTsKQEAgLTI0NSw1NiArMzk0LDYwIEBACiAgICAgcmV0dXJuIHBvaW50ICsgc2Ny
b2xsT2Zmc2V0KCk7CiB9CiAKLWJvb2wgU2Nyb2xsVmlldzo6aW5XaW5kb3coKSBjb25zdCAKK2Jv
b2wgU2Nyb2xsVmlldzo6aW5XaW5kb3coKSBjb25zdAogewogICAgIC8vIE5COiBUaGlzIGlzIGNh
bGxlZCBmcm9tIFJlbmRlck9iamVjdDo6d2lsbFJlbmRlckltYWdlCiAgICAgLy8gYW5kIHJlYWxs
eSBzZWVtcyB0byBiZSBtb3JlIG9mIGEgImlzIHRoZSB3aW5kb3cgaW4gYSB2YWxpZCBzdGF0ZSIg
dGVzdCwKICAgICAvLyBkZXNwaXRlIHRoZSBBUEkgbmFtZS4KLSAgICByZXR1cm4gbmF0aXZlV2lu
ZG93KCkgIT0gTlVMTDsgCisgICAgcmV0dXJuIG5hdGl2ZVdpbmRvdygpICE9IE5VTEw7CiB9CiAK
IHZvaWQgU2Nyb2xsVmlldzo6d2hlZWxFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmKQoteyAKLSAg
ICAvLyBkbyBub3RoaW5nLCAKK3sKKyAgICAvLyBkbyBub3RoaW5nLAogICAgIC8vIEZJWE1FOiBu
b3Qgc3VyZSBpZiBhbnkgcG9ydHMgbmVlZCB0byBoYW5kbGUgdGhpcywgYWN0dWFsbHkuLi4KIH0K
IAogLy8gdXNlZCBmb3Igc3ViZnJhbWVzIHN1cHBvcnQKLXZvaWQgU2Nyb2xsVmlldzo6YWRkQ2hp
bGQoV2lkZ2V0KikgCit2b2lkIFNjcm9sbFZpZXc6OmFkZENoaWxkKFdpZGdldCogd2lkZ2V0KQog
eworICAgIG1fZGF0YS0+bV9jaGlsZHJlbi5hZGQod2lkZ2V0KTsKKwogICAgIC8vIE5COiBJbiBh
bGwgY2FzZXMgSSdtIGF3YXJlIG9mLAogICAgIC8vIGJ5IHRoZSB0aW1lIHRoaXMgaXMgY2FsbGVk
IHRoZSBTY3JvbGxWaWV3IGlzIGFscmVhZHkgYSBjaGlsZAogICAgIC8vIG9mIGl0cyBwYXJlbnQg
V2lkZ2V0IGJ5IHd4IHBvcnQgQVBJcywgc28gSSBkb24ndCB0aGluawogICAgIC8vIHdlIG5lZWQg
dG8gZG8gYW55dGhpbmcgaGVyZS4KIH0KIAotdm9pZCBTY3JvbGxWaWV3OjpyZW1vdmVDaGlsZChX
aWRnZXQqIHdpZGdldCkgCi17IAordm9pZCBTY3JvbGxWaWV3OjpyZW1vdmVDaGlsZChXaWRnZXQq
IHdpZGdldCkKK3sKKyAgICBtX2RhdGEtPm1fY2hpbGRyZW4ucmVtb3ZlKHdpZGdldCk7CisKICAg
ICBpZiAobmF0aXZlV2luZG93KCkgJiYgd2lkZ2V0LT5uYXRpdmVXaW5kb3coKSkgewogICAgICAg
ICBuYXRpdmVXaW5kb3coKS0+UmVtb3ZlQ2hpbGQod2lkZ2V0LT5uYXRpdmVXaW5kb3coKSk7Ci0g
ICAgICAgIC8vIEZJWE1FOiBJcyB0aGlzIHRoZSByaWdodCBwbGFjZSB0byBkbyBkZWxldGlvbj8g
SSBzZWUgCisgICAgICAgIC8vIEZJWE1FOiBJcyB0aGlzIHRoZSByaWdodCBwbGFjZSB0byBkbyBk
ZWxldGlvbj8gSSBzZWUKICAgICAgICAgLy8gZGV0YWNoRnJvbVBhcmVudDIvMy80LCBpbml0aWF0
ZWQgYnkgRnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQsCiAgICAgICAgIC8vIGJ1dCBJJ20g
bm90IHN1cmUgaWYgaXQncyBiZXR0ZXIgdG8gaGFuZGxlIHRoZXJlIG9yIG5vdC4KICAgICAgICAg
d2lkZ2V0LT5uYXRpdmVXaW5kb3coKS0+RGVzdHJveSgpOwogICAgIH0KIH0KIAotdm9pZCBTY3Jv
bGxWaWV3OjpzY3JvbGxSZWN0SW50b1ZpZXdSZWN1cnNpdmVseShjb25zdCBJbnRSZWN0JiByZWN0
KSAKLXsgCi0gICAgLy8gTkI6IFRoaXMgaXMgdXNlZCBieSBSZW5kZXJMYXllcjo6c2Nyb2xsUmVj
dFRvVmlzaWJsZSBhbmQgdGhlIGlkZWEKLSAgICAvLyBpcyB0aGF0IGlmIHRoaXMgcG9zaXRpb24g
aXMgbm90IHZpc2libGUgZHVlIHRvIHBhcmVudCBzY3JvbGwgdmlld3MsCi0gICAgLy8gdGhvc2Ug
cGFyZW50cyBhcmUgc2Nyb2xsZWQgYXMgd2VsbCB0byBtYWtlIGl0IHZpc2libGUuCi0gICAgCi0g
ICAgLy8gRm9yIG5vdywganVzdCBzY3JvbGwgdGhlIGN1cnJlbnQgd2luZG93LgorSGFzaFNldDxX
aWRnZXQqPiogU2Nyb2xsVmlldzo6Y2hpbGRyZW4oKQoreworICAgIHJldHVybiAmKG1fZGF0YS0+
bV9jaGlsZHJlbik7Cit9CisKK3ZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsUmVjdEludG9WaWV3UmVj
dXJzaXZlbHkoY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKICAgICBzZXRDb250ZW50c1BvcyhyZWN0
LngoKSwgcmVjdC55KCkpOwogfQogCiAKLVBsYXRmb3JtU2Nyb2xsYmFyKiBTY3JvbGxWaWV3Ojpz
Y3JvbGxiYXJVbmRlck1vdXNlKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCkg
CitQbGF0Zm9ybVNjcm9sbGJhciogU2Nyb2xsVmlldzo6c2Nyb2xsYmFyVW5kZXJNb3VzZShjb25z
dCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCiB7Ci0gICAgLy8gQUZBSUNUIHRoaXMg
aXMgb25seSB1c2VkIGZvciBwbGF0Zm9ybXMgdGhhdCBwcm92aWRlIAorICAgIC8vIEFGQUlDVCB0
aGlzIGlzIG9ubHkgdXNlZCBmb3IgcGxhdGZvcm1zIHRoYXQgcHJvdmlkZQogICAgIC8vIGZlZWRi
YWNrIHdoZW4gbW91c2UgaXMgaG92ZXJlZCBvdmVyLgotICAgIHJldHVybiAwOyAKKyAgICByZXR1
cm4gMDsKIH0KIAogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3d4L1JlbmRlclRoZW1lV3guY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd3gvUmVuZGVyVGhlbWVXeC5jcHAJKHJl
dmlzaW9uIDI5OTQ3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93eC9SZW5kZXJUaGVtZVd4LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTg4LDcgKzE4OCw3IEBACiAKIGJvb2wgUmVuZGVyVGhlbWVXeDo6
cGFpbnRCdXR0b24oUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5m
byYgaSwgY29uc3QgSW50UmVjdCYgcikKIHsKLSAgICB3eFNjcm9sbGVkV2luZG93KiB3aW5kb3cg
PSBvLT52aWV3KCktPmZyYW1lVmlldygpLT5uYXRpdmVXaW5kb3coKTsKKyAgICB3eFdpbmRvdyog
d2luZG93ID0gby0+dmlldygpLT5mcmFtZVZpZXcoKS0+bmF0aXZlV2luZG93KCk7CiAgICAgd3hE
QyogZGMgPSBzdGF0aWNfY2FzdDx3eERDKj4oaS5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSk7
CiAgICAgd3hBU1NFUlQoZGMtPklzT2soKSk7CiAK
</data>
<flag name="review"
          id="8246"
          type_id="1"
          status="+"
          setter="kevino"
    />
          </attachment>
      

    </bug>

</bugzilla>