<?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>68914</bug_id>
          
          <creation_ts>2011-09-27 10:42:23 -0700</creation_ts>
          <short_desc>Clean up how FrameView accesses the RenderView</short_desc>
          <delta_ts>2011-09-27 10:54:12 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>hyatt</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>474061</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-27 10:42:23 -0700</bug_when>
    <thetext>FrameView uses several different ways to get at the frame&apos;s root RenderView, and some of the null-check, others do not. This can cause crashes (e.g. bug 68893).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474069</commentid>
    <comment_count>1</comment_count>
      <attachid>108868</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-27 10:50:10 -0700</bug_when>
    <thetext>Created attachment 108868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474073</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-27 10:54:12 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/96130</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108868</attachid>
            <date>2011-09-27 10:50:10 -0700</date>
            <delta_ts>2011-09-27 10:51:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68914-20110927105009.patch</filename>
            <type>text/plain</type>
            <size>19844</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYxMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ZjQ3N2Q3ZjM4NTMwMWI0
NmZmNTU4ZGUyZGE0Mzg1MTIzMjE5YjYyLi4zNTBiYTM0MjRmZjljNjY5MWZjN2RkNzRkNjhmZDAw
NWM1MmM4MmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTEtMDktMjcgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgaG93
IEZyYW1lVmlldyBhY2Nlc3NlcyB0aGUgUmVuZGVyVmlldworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5MTQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbiB1cCBob3cgRnJhbWVWaWV3IGFjY2Vzc2Vz
IHRoZSBjb250ZW50IHJlbmRlcmVyIG9mIGl0cworICAgICAgICBmcmFtZS4gUHJldmlvdXNseSwg
dGhpcyB3YXMgZG9uZSBpbiBzZXZlcmFsIGRpZmZlcmVudCB3YXlzLAorICAgICAgICBvbmx5IHNv
bWUgb2Ygd2hpY2ggZGlkIG51bGwtY2hlY2tpbmcuCisgICAgICAgIAorICAgICAgICBVc2UgYW4g
aW5saW5lIG1ldGhvZCB0byBhdm9pZCBoYXZpbmcgdG8gZXhwb3NlIEZyYW1lCisgICAgICAgIGlu
IHRoZSBoZWFkZXIuCisgICAgICAgIAorICAgICAgICBTdGFuZGFyZGl6ZSB0aGUgdGVybWlub2xv
Z3kgdG8gdXNlICdyb290JyBmb3IgdGhpcyBSZW5kZXJWaWV3LgorCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cm9vdFJlbmRlcmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0RnJhbWVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6YWRqdXN0Vmlld1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1
cGRhdGVDb21wb3NpdGluZ0xheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNs
ZWFyQmFja2luZ1N0b3Jlcyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJlc3RvcmVC
YWNraW5nU3RvcmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bGF5ZXJGb3JIb3Jp
em9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bGF5ZXJGb3JW
ZXJ0aWNhbFNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmxheWVyRm9y
U2Nyb2xsQ29ybmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bGF5ZXJGb3JPdmVy
aGFuZ0FyZWFzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c3luY0NvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpoYXNDb21w
b3NpdGVkQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmVudGVyQ29tcG9z
aXRpbmdNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aXNTb2Z0d2FyZVJlbmRl
cmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpkaWRNb3ZlT25zY3JlZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp3aWxsTW92ZU9mZnNjcmVlbik6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OmVtYmVkZGVkQ29udGVudEJveCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNv
bnRlbnRzSW5Db21wb3NpdGVkTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpz
Y3JvbGxDb250ZW50c0Zhc3RQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Ny
b2xsQ29udGVudHNTbG93UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Om1haW50
YWluU2Nyb2xsUG9zaXRpb25BdEFuY2hvcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJl
cGFpbnRGaXhlZEVsZW1lbnRzQWZ0ZXJTY3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3Ojp2aXNpYmxlQ29udGVudHNSZXNpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6c2NoZWR1bGVSZWxheW91dE9mU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6Om5lZWRzTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0TmVl
ZHNMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91
dFRhc2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlQ29udHJvbFRpbnRz
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cGFpbnRDb250ZW50cyk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmZvcmNlTGF5b3V0Rm9yUGFnaW5hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmFkanVzdFBhZ2VIZWlnaHREZXByZWNhdGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aXNWZXJ0aWNhbERvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6aXNGbGlwcGVkRG9jdW1lbnQpOgorCiAyMDExLTA5LTIzICBUb3Ig
QXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRd
IEZpeCBidWlsZCBhZ2FpbnN0IFF0NSBhZnRlciByZWZhY3RvciBvZiB3aWRnZXRzIG91dCBvZiBR
dEdVaQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGIyMjY0YTc4YzZkNmQwMzg1MmZi
NzYxNGU3NGIzYWZmZjFlZDYwNDkuLjY0NzQ0MDJkN2I4MTk3ZTM0YzRmZTE5YjRmN2VjMDRiMTJi
YmIxN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTEwOSw2ICsxMDksMTEgQEAg
ZG91YmxlIEZyYW1lVmlldzo6c19kZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xv
YWRpbmcgPSAwOwogLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIHVwZGF0ZVdpZGdldHMgaXRlcmF0
aW9ucyB0aGF0IHNob3VsZCBiZSBkb25lIGJlZm9yZSByZXR1cm5pbmcuCiBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbWF4VXBkYXRlV2lkZ2V0c0l0ZXJhdGlvbnMgPSAyOwogCitzdGF0aWMgaW5saW5l
IFJlbmRlclZpZXcqIHJvb3RSZW5kZXJlcihjb25zdCBGcmFtZVZpZXcqIHZpZXcpCit7CisgICAg
cmV0dXJuIHZpZXctPmZyYW1lKCkgPyB2aWV3LT5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKSA6
IDA7Cit9CisKIEZyYW1lVmlldzo6RnJhbWVWaWV3KEZyYW1lKiBmcmFtZSkKICAgICA6IG1fZnJh
bWUoZnJhbWUpCiAgICAgLCBtX2NhbkhhdmVTY3JvbGxiYXJzKHRydWUpCkBAIC0zOTgsNyArNDAz
LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiBuZXdSZWN0
KQogICAgIFNjcm9sbFZpZXc6OnNldEZyYW1lUmVjdChuZXdSZWN0KTsKIAogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAoUmVuZGVyVmlldyogcm9vdCA9IG1fZnJhbWUt
PmNvbnRlbnRSZW5kZXJlcigpKSB7CisgICAgaWYgKFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVu
ZGVyZXIodGhpcykpIHsKICAgICAgICAgaWYgKHJvb3QtPnVzZXNDb21wb3NpdGluZygpKQogICAg
ICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5mcmFtZVZpZXdEaWRDaGFuZ2VTaXplKCk7CiAg
ICAgfQpAQCAtNTA3LDExICs1MTIsMTIgQEAgdm9pZCBGcmFtZVZpZXc6OnNldENvbnRlbnRzU2l6
ZShjb25zdCBMYXlvdXRTaXplJiBzaXplKQogCiB2b2lkIEZyYW1lVmlldzo6YWRqdXN0Vmlld1Np
emUoKQogewotICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3KCkgPT0gdGhpcyk7Ci0gICAgUmVuZGVy
Vmlldyogcm9vdCA9IG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpOworICAgIFJlbmRlclZpZXcq
IHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7CiAgICAgaWYgKCFyb290KQogICAgICAgICByZXR1
cm47CiAKKyAgICBBU1NFUlQobV9mcmFtZS0+dmlldygpID09IHRoaXMpOworCiAgICAgY29uc3Qg
TGF5b3V0UmVjdCYgcmVjdCA9IHJvb3QtPmRvY3VtZW50UmVjdCgpOwogICAgIGNvbnN0IExheW91
dFNpemUmIHNpemUgPSByZWN0LnNpemUoKTsKICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxPcmln
aW4oTGF5b3V0UG9pbnQoLXJlY3QueCgpLCAtcmVjdC55KCkpLCAhbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+cHJpbnRpbmcoKSwgc2l6ZSA9PSBjb250ZW50c1NpemUoKSk7CkBAIC02MjUsMjQgKzYzMSwy
NCBAQCBzdGF0aWMgYm9vbCBpc0RvY3VtZW50UnVubmluZ0Z1bGxTY3JlZW5BbmltYXRpb24oRG9j
dW1lbnQqIGRvY3VtZW50KQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQg
RnJhbWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVycygpCiB7Ci0gICAgUmVuZGVyVmlldyog
dmlldyA9IG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpOwotICAgIGlmICghdmlldykKKyAgICBS
ZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpOworICAgIGlmICghcm9vdCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gVGhpcyBjYWxsIHdpbGwgbWFrZSBzdXJlIHRoZSBjYWNo
ZWQgaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyBpcyB1cGRhdGVkIGZyb20gdGhlIHByZWYKLSAg
ICB2aWV3LT5jb21wb3NpdG9yKCktPmNhY2hlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZsYWdzKCk7
Ci0gICAgdmlldy0+Y29tcG9zaXRvcigpLT51cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3Np
dGluZ1VwZGF0ZUFmdGVyTGF5b3V0T3JTdHlsZUNoYW5nZSk7CisgICAgcm9vdC0+Y29tcG9zaXRv
cigpLT5jYWNoZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGbGFncygpOworICAgIHJvb3QtPmNvbXBv
c2l0b3IoKS0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVBZnRlckxh
eW91dE9yU3R5bGVDaGFuZ2UpOwogICAgIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwogICAgIGlmIChpc0Rv
Y3VtZW50UnVubmluZ0Z1bGxTY3JlZW5BbmltYXRpb24oZG9jdW1lbnQpKQotICAgICAgICB2aWV3
LT5jb21wb3NpdG9yKCktPnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRl
QWZ0ZXJMYXlvdXRPclN0eWxlQ2hhbmdlLCBkb2N1bWVudC0+ZnVsbFNjcmVlblJlbmRlcmVyKCkt
PmxheWVyKCkpOworICAgICAgICByb290LT5jb21wb3NpdG9yKCktPnVwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlQWZ0ZXJMYXlvdXRPclN0eWxlQ2hhbmdlLCBkb2N1bWVu
dC0+ZnVsbFNjcmVlblJlbmRlcmVyKCktPmxheWVyKCkpOwogI2VuZGlmCiB9CiAKIHZvaWQgRnJh
bWVWaWV3OjpjbGVhckJhY2tpbmdTdG9yZXMoKQogewotICAgIFJlbmRlclZpZXcqIHJvb3QgPSBt
X2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKTsKKyAgICBSZW5kZXJWaWV3KiByb290ID0gcm9vdFJl
bmRlcmVyKHRoaXMpOwogICAgIGlmICghcm9vdCkKICAgICAgICAgcmV0dXJuOwogCkBAIC02NTQs
NyArNjYwLDcgQEAgdm9pZCBGcmFtZVZpZXc6OmNsZWFyQmFja2luZ1N0b3JlcygpCiAKIHZvaWQg
RnJhbWVWaWV3OjpyZXN0b3JlQmFja2luZ1N0b3JlcygpCiB7Ci0gICAgUmVuZGVyVmlldyogcm9v
dCA9IG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpOworICAgIFJlbmRlclZpZXcqIHJvb3QgPSBy
b290UmVuZGVyZXIodGhpcyk7CiAgICAgaWYgKCFyb290KQogICAgICAgICByZXR1cm47CiAKQEAg
LTY2NSwzMiArNjcxLDMyIEBAIHZvaWQgRnJhbWVWaWV3OjpyZXN0b3JlQmFja2luZ1N0b3Jlcygp
CiAKIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6bGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFy
KCkgY29uc3QKIHsKLSAgICBSZW5kZXJWaWV3KiB2aWV3ID0gbV9mcmFtZS0+Y29udGVudFJlbmRl
cmVyKCk7Ci0gICAgaWYgKCF2aWV3KQorICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVy
ZXIodGhpcyk7CisgICAgaWYgKCFyb290KQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4g
dmlldy0+Y29tcG9zaXRvcigpLT5sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKTsKKyAgICBy
ZXR1cm4gcm9vdC0+Y29tcG9zaXRvcigpLT5sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKTsK
IH0KIAogR3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFy
KCkgY29uc3QKIHsKLSAgICBSZW5kZXJWaWV3KiB2aWV3ID0gbV9mcmFtZS0+Y29udGVudFJlbmRl
cmVyKCk7Ci0gICAgaWYgKCF2aWV3KQorICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVy
ZXIodGhpcyk7CisgICAgaWYgKCFyb290KQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4g
dmlldy0+Y29tcG9zaXRvcigpLT5sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCk7CisgICAgcmV0
dXJuIHJvb3QtPmNvbXBvc2l0b3IoKS0+bGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpOwogfQog
CiBHcmFwaGljc0xheWVyKiBGcmFtZVZpZXc6OmxheWVyRm9yU2Nyb2xsQ29ybmVyKCkgY29uc3QK
IHsKLSAgICBSZW5kZXJWaWV3KiB2aWV3ID0gbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7Ci0g
ICAgaWYgKCF2aWV3KQorICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7
CisgICAgaWYgKCFyb290KQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gdmlldy0+Y29t
cG9zaXRvcigpLT5sYXllckZvclNjcm9sbENvcm5lcigpOworICAgIHJldHVybiByb290LT5jb21w
b3NpdG9yKCktPmxheWVyRm9yU2Nyb2xsQ29ybmVyKCk7CiB9CiAKICNpZiBQTEFURk9STShDSFJP
TUlVTSkgJiYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogR3JhcGhpY3NMYXllciogRnJhbWVWaWV3
OjpsYXllckZvck92ZXJoYW5nQXJlYXMoKSBjb25zdAogewotICAgIFJlbmRlclZpZXcqIHZpZXcg
PSBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKTsKKyAgICBSZW5kZXJWaWV3KiByb290ID0gcm9v
dFJlbmRlcmVyKHRoaXMpOwogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
cmV0dXJuIHZpZXctPmNvbXBvc2l0b3IoKS0+bGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKCk7CkBAIC02
OTksMTcgKzcwNSwxOCBAQCBHcmFwaGljc0xheWVyKiBGcmFtZVZpZXc6OmxheWVyRm9yT3Zlcmhh
bmdBcmVhcygpIGNvbnN0CiAKIGJvb2wgRnJhbWVWaWV3OjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUZv
clRoaXNGcmFtZShGcmFtZSogcm9vdEZyYW1lRm9yU3luYykKIHsKLSAgICBBU1NFUlQobV9mcmFt
ZS0+dmlldygpID09IHRoaXMpOwotICAgIFJlbmRlclZpZXcqIHZpZXcgPSBtX2ZyYW1lLT5jb250
ZW50UmVuZGVyZXIoKTsKLSAgICBpZiAoIXZpZXcpCisgICAgUmVuZGVyVmlldyogcm9vdCA9IHJv
b3RSZW5kZXJlcih0aGlzKTsKKyAgICBpZiAoIXJvb3QpCiAgICAgICAgIHJldHVybiB0cnVlOyAv
LyBXZSBkb24ndCB3YW50IHRvIGtlZXAgdHJ5aW5nIHRvIHVwZGF0ZSBsYXllcnMgaWYgd2UgaGF2
ZSBubyByZW5kZXJlci4KIAorICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3KCkgPT0gdGhpcyk7CisK
ICAgICAvLyBJZiB3ZSBzeW5jIGNvbXBvc2l0aW5nIGxheWVycyB3aGVuIGEgbGF5b3V0IGlzIHBl
bmRpbmcsIHdlIG1heSBjYXVzZSBwYWludGluZyBvZiBjb21wb3NpdGluZwogICAgIC8vIGxheWVy
IGNvbnRlbnQgdG8gb2NjdXIgYmVmb3JlIGxheW91dCBoYXMgaGFwcGVuZWQsIHdoaWNoIHdpbGwg
Y2F1c2UgcGFpbnRDb250ZW50cygpIHRvIGJhaWwuCiAgICAgaWYgKG5lZWRzTGF5b3V0KCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHZpZXctPmNvbXBvc2l0b3IoKS0+Zmx1c2hQZW5k
aW5nTGF5ZXJDaGFuZ2VzKHJvb3RGcmFtZUZvclN5bmMgPT0gbV9mcmFtZSk7CisgICAgcm9vdC0+
Y29tcG9zaXRvcigpLT5mbHVzaFBlbmRpbmdMYXllckNoYW5nZXMocm9vdEZyYW1lRm9yU3luYyA9
PSBtX2ZyYW1lKTsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAvLyBUaGUgZnVs
bFNjcmVlblJlbmRlcmVyJ3MgZ3JhcGhpY3NMYXllciAgaGFzIGJlZW4gcmUtcGFyZW50ZWQsIGFu
ZCB0aGUgYWJvdmUgcmVjdXJzaXZlIHN5bmNDb21wb3NpdGluZ1N0YXRlCkBAIC03NDAsOCArNzQ3
LDggQEAgdm9pZCBGcmFtZVZpZXc6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRp
b24oKQogYm9vbCBGcmFtZVZpZXc6Omhhc0NvbXBvc2l0ZWRDb250ZW50KCkgY29uc3QKIHsKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKFJlbmRlclZpZXcqIHZpZXcg
PSBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIHZpZXctPmNvbXBv
c2l0b3IoKS0+aW5Db21wb3NpdGluZ01vZGUoKTsKKyAgICBpZiAoUmVuZGVyVmlldyogcm9vdCA9
IHJvb3RSZW5kZXJlcih0aGlzKSkKKyAgICAgICAgcmV0dXJuIHJvb3QtPmNvbXBvc2l0b3IoKS0+
aW5Db21wb3NpdGluZ01vZGUoKTsKICNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTc4
MSwxMCArNzg4LDEwIEBAIGJvb2wgRnJhbWVWaWV3OjpoYXNDb21wb3NpdGluZ0FuY2VzdG9yKCkg
Y29uc3QKIHZvaWQgRnJhbWVWaWV3OjplbnRlckNvbXBvc2l0aW5nTW9kZSgpCiB7CiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmIChSZW5kZXJWaWV3KiB2aWV3ID0gbV9m
cmFtZS0+Y29udGVudFJlbmRlcmVyKCkpIHsKLSAgICAgICAgdmlldy0+Y29tcG9zaXRvcigpLT5l
bmFibGVDb21wb3NpdGluZ01vZGUoKTsKKyAgICBpZiAoUmVuZGVyVmlldyogcm9vdCA9IHJvb3RS
ZW5kZXJlcih0aGlzKSkgeworICAgICAgICByb290LT5jb21wb3NpdG9yKCktPmVuYWJsZUNvbXBv
c2l0aW5nTW9kZSgpOwogICAgICAgICBpZiAoIW5lZWRzTGF5b3V0KCkpCi0gICAgICAgICAgICB2
aWV3LT5jb21wb3NpdG9yKCktPnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclVwZGF0ZSgpOworICAg
ICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJVcGRh
dGUoKTsKICAgICB9CiAjZW5kaWYKIH0KQEAgLTgyMCwxMSArODI3LDExIEBAIGJvb2wgRnJhbWVW
aWV3OjpzeW5jQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpCiBib29sIEZyYW1l
Vmlldzo6aXNTb2Z0d2FyZVJlbmRlcmFibGUoKSBjb25zdAogewogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLSAgICBSZW5kZXJWaWV3KiB2aWV3ID0gbV9mcmFtZS0+Y29udGVudFJl
bmRlcmVyKCk7Ci0gICAgaWYgKCF2aWV3KQorICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVu
ZGVyZXIodGhpcyk7CisgICAgaWYgKCFyb290KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IHJldHVybiAhdmlldy0+Y29tcG9zaXRvcigpLT5oYXMzRENvbnRlbnQoKTsKKyAgICByZXR1cm4g
IXJvb3QtPmNvbXBvc2l0b3IoKS0+aGFzM0RDb250ZW50KCk7CiAjZWxzZQogICAgIHJldHVybiB0
cnVlOwogI2VuZGlmCkBAIC04MzIsMTcgKzgzOSwxNyBAQCBib29sIEZyYW1lVmlldzo6aXNTb2Z0
d2FyZVJlbmRlcmFibGUoKSBjb25zdAogCiB2b2lkIEZyYW1lVmlldzo6ZGlkTW92ZU9uc2NyZWVu
KCkKIHsKLSAgICBSZW5kZXJWaWV3KiB2aWV3ID0gbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7
Ci0gICAgaWYgKHZpZXcpCi0gICAgICAgIHZpZXctPmRpZE1vdmVPbnNjcmVlbigpOworICAgIFJl
bmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7CisgICAgaWYgKHJvb3QpCisgICAg
ICAgIHJvb3QtPmRpZE1vdmVPbnNjcmVlbigpOwogICAgIHNjcm9sbEFuaW1hdG9yKCktPmNvbnRl
bnRBcmVhRGlkU2hvdygpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6d2lsbE1vdmVPZmZzY3JlZW4o
KQogewotICAgIFJlbmRlclZpZXcqIHZpZXcgPSBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKTsK
LSAgICBpZiAodmlldykKLSAgICAgICAgdmlldy0+d2lsbE1vdmVPZmZzY3JlZW4oKTsKKyAgICBS
ZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpOworICAgIGlmIChyb290KQorICAg
ICAgICByb290LT53aWxsTW92ZU9mZnNjcmVlbigpOwogICAgIHNjcm9sbEFuaW1hdG9yKCktPmNv
bnRlbnRBcmVhRGlkSGlkZSgpOwogfQogCkBAIC0xMTM3LDkgKzExNDQsMTAgQEAgdm9pZCBGcmFt
ZVZpZXc6OmxheW91dChib29sIGFsbG93U3VidHJlZSkKIAogICAgIGlmICghbV9oYXNQZW5kaW5n
UG9zdExheW91dFRhc2tzKSB7CiAgICAgICAgIGlmICghbV9pblN5bmNocm9ub3VzUG9zdExheW91
dCkgewotICAgICAgICAgICAgaWYgKGluU3ViZnJhbWVMYXlvdXRXaXRoRnJhbWVGbGF0dGVuaW5n
KQotICAgICAgICAgICAgICAgIG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpLT51cGRhdGVXaWRn
ZXRQb3NpdGlvbnMoKTsKLSAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGluU3Vi
ZnJhbWVMYXlvdXRXaXRoRnJhbWVGbGF0dGVuaW5nKSB7CisgICAgICAgICAgICAgICAgaWYgKFJl
bmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcykpCisgICAgICAgICAgICAgICAgICAg
IHJvb3QtPnVwZGF0ZVdpZGdldFBvc2l0aW9ucygpOworICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICBtX2luU3luY2hyb25vdXNQb3N0TGF5b3V0ID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICAvLyBDYWxscyByZXN1bWVTY2hlZHVsZWRFdmVudHMoKQogICAgICAgICAgICAgICAg
IHBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKTsKQEAgLTExODAsMTEgKzExODgsMTEgQEAgdm9pZCBG
cmFtZVZpZXc6OmxheW91dChib29sIGFsbG93U3VidHJlZSkKIFJlbmRlckJveCogRnJhbWVWaWV3
OjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAogewogI2lmIEVOQUJMRShTVkcpCi0gICAgUmVu
ZGVyVmlldyogY29udGVudFJlbmRlcmVyID0gbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7Ci0g
ICAgaWYgKCFjb250ZW50UmVuZGVyZXIpCisgICAgUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5k
ZXJlcih0aGlzKTsKKyAgICBpZiAoIXJvb3QpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgUmVu
ZGVyT2JqZWN0KiByb290Q2hpbGQgPSBjb250ZW50UmVuZGVyZXItPmZpcnN0Q2hpbGQoKTsKKyAg
ICBSZW5kZXJPYmplY3QqIHJvb3RDaGlsZCA9IHJvb3QtPmZpcnN0Q2hpbGQoKTsKICAgICBpZiAo
IXJvb3RDaGlsZCB8fCAhcm9vdENoaWxkLT5pc0JveCgpKQogICAgICAgICByZXR1cm4gMDsKIApA
QCAtMTI4MCw3ICsxMjg4LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUNhbkJsaXRPblNjcm9s
bFJlY3Vyc2l2ZWx5KCkKIGJvb2wgRnJhbWVWaWV3Ojpjb250ZW50c0luQ29tcG9zaXRlZExheWVy
KCkgY29uc3QKIHsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgUmVuZGVy
Vmlldyogcm9vdCA9IG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpOworICAgIFJlbmRlclZpZXcq
IHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7CiAgICAgaWYgKHJvb3QgJiYgcm9vdC0+bGF5ZXIo
KS0+aXNDb21wb3NpdGVkKCkpIHsKICAgICAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIgPSByb290
LT5sYXllcigpLT5iYWNraW5nKCktPmdyYXBoaWNzTGF5ZXIoKTsKICAgICAgICAgaWYgKGxheWVy
ICYmIGxheWVyLT5kcmF3c0NvbnRlbnQoKSkKQEAgLTE0MDcsNyArMTQxNSw3IEBAIGJvb2wgRnJh
bWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRh
LCBjb25zdCBMYXlvdXRSCiAgICAgY29uc3Qgc2l6ZV90IGZpeGVkT2JqZWN0VGhyZXNob2xkID0g
NTsKIAogICAgIFJlbmRlckJsb2NrOjpQb3NpdGlvbmVkT2JqZWN0c0xpc3RIYXNoU2V0KiBwb3Np
dGlvbmVkT2JqZWN0cyA9IDA7Ci0gICAgaWYgKFJlbmRlclZpZXcqIHJvb3QgPSBtX2ZyYW1lLT5j
b250ZW50UmVuZGVyZXIoKSkKKyAgICBpZiAoUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJl
cih0aGlzKSkKICAgICAgICAgcG9zaXRpb25lZE9iamVjdHMgPSByb290LT5wb3NpdGlvbmVkT2Jq
ZWN0cygpOwogCiAgICAgaWYgKCFwb3NpdGlvbmVkT2JqZWN0cyB8fCBwb3NpdGlvbmVkT2JqZWN0
cy0+aXNFbXB0eSgpKSB7CkBAIC0xNDUzLDcgKzE0NjEsNyBAQCBib29sIEZyYW1lVmlldzo6c2Ny
b2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgTGF5
b3V0UgogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgICAgIGlmIChp
c0NvbXBvc2l0ZWRDb250ZW50TGF5ZXIpIHsKICAgICAgICAgICAgICAgICB1cGRhdGVSZWN0ID0g
d2luZG93VG9Db250ZW50cyh1cGRhdGVSZWN0KTsKLSAgICAgICAgICAgICAgICBSZW5kZXJWaWV3
KiByb290ID0gbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7CisgICAgICAgICAgICAgICAgUmVu
ZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKTsKICAgICAgICAgICAgICAgICBBU1NF
UlQocm9vdCk7CiAgICAgICAgICAgICAgICAgcm9vdC0+bGF5ZXIoKS0+c2V0QmFja2luZ05lZWRz
UmVwYWludEluUmVjdCh1cGRhdGVSZWN0KTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAg
LTE0NzQsNyArMTQ4Miw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c1Nsb3dQYXRo
KGNvbnN0IExheW91dFJlY3QmIHVwZGF0ZVJlY3QpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmIChjb250ZW50c0luQ29tcG9zaXRlZExheWVyKCkpIHsKLSAgICAg
ICAgUmVuZGVyVmlldyogcm9vdCA9IG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpOworICAgICAg
ICBSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpOwogICAgICAgICBBU1NFUlQo
cm9vdCk7CiAgICAgICAgIHJvb3QtPmxheWVyKCktPnNldEJhY2tpbmdOZWVkc1JlcGFpbnRJblJl
Y3QodmlzaWJsZUNvbnRlbnRSZWN0KCkpOwogICAgIH0KQEAgLTE2MTksNyArMTYyNyw4IEBAIHZv
aWQgRnJhbWVWaWV3OjptYWludGFpblNjcm9sbFBvc2l0aW9uQXRBbmNob3IoTm9kZSogYW5jaG9y
Tm9kZSkKICAgICAvLyByZWFsbHkgbWVzcyB0aGluZ3MgdXAgaWYgYW4gYW5jaG9yIHNjcm9sbCBj
b21lcyBhdCBhIGJhZCBtb21lbnQuCiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5
bGVJZk5lZWRlZCgpOwogICAgIC8vIE9ubHkgZG8gYSBsYXlvdXQgaWYgY2hhbmdlcyBoYXZlIG9j
Y3VycmVkIHRoYXQgbWFrZSBpdCBuZWNlc3NhcnkuCi0gICAgaWYgKG1fZnJhbWUtPmNvbnRlbnRS
ZW5kZXJlcigpICYmIG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpLT5uZWVkc0xheW91dCgpKQor
ICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7CisgICAgaWYgKHJvb3Qg
JiYgcm9vdC0+bmVlZHNMYXlvdXQoKSkKICAgICAgICAgbGF5b3V0KCk7CiAgICAgZWxzZQogICAg
ICAgICBzY3JvbGxUb0FuY2hvcigpOwpAQCAtMTY1NSw3ICsxNjY0LDcgQEAgdm9pZCBGcmFtZVZp
ZXc6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiAgICAgZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkt
PnNlbmRTY3JvbGxFdmVudCgpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
ICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpIHsK
KyAgICBpZiAoUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKSkgewogICAgICAg
ICBpZiAocm9vdC0+dXNlc0NvbXBvc2l0aW5nKCkpCiAgICAgICAgICAgICByb290LT5jb21wb3Np
dG9yKCktPmZyYW1lVmlld0RpZFNjcm9sbChzY3JvbGxQb3NpdGlvbigpKTsKICAgICB9CkBAIC0x
NjY3LDcgKzE2NzYsNyBAQCB2b2lkIEZyYW1lVmlldzo6cmVwYWludEZpeGVkRWxlbWVudHNBZnRl
clNjcm9sbGluZygpCiAgICAgLy8gRm9yIGZpeGVkIHBvc2l0aW9uIGVsZW1lbnRzLCB1cGRhdGUg
d2lkZ2V0IHBvc2l0aW9ucyBhbmQgY29tcG9zaXRpbmcgbGF5ZXJzIGFmdGVyIHNjcm9sbGluZywK
ICAgICAvLyBidXQgb25seSBpZiB3ZSdyZSBub3QgaW5zaWRlIG9mIGxheW91dC4KICAgICBpZiAo
IW1fbmVzdGVkTGF5b3V0Q291bnQgJiYgaGFzRml4ZWRPYmplY3RzKCkpIHsKLSAgICAgICAgaWYg
KFJlbmRlclZpZXcqIHJvb3QgPSBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkgeworICAgICAg
ICBpZiAoUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKSkgewogICAgICAgICAg
ICAgcm9vdC0+dXBkYXRlV2lkZ2V0UG9zaXRpb25zKCk7CiAgICAgICAgICAgICByb290LT5sYXll
cigpLT51cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsKCk7CiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQpAQCAtMTc2MSw3ICsxNzcwLDcgQEAgdm9pZCBGcmFtZVZpZXc6OnZp
c2libGVDb250ZW50c1Jlc2l6ZWQoKQogICAgICAgICBsYXlvdXQoKTsKIAogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAoUmVuZGVyVmlldyogcm9vdCA9IG1fZnJhbWUt
PmNvbnRlbnRSZW5kZXJlcigpKSB7CisgICAgaWYgKFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVu
ZGVyZXIodGhpcykpIHsKICAgICAgICAgaWYgKHJvb3QtPnVzZXNDb21wb3NpdGluZygpKQogICAg
ICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5mcmFtZVZpZXdEaWRDaGFuZ2VTaXplKCk7CiAg
ICAgfQpAQCAtMTkzOCw3ICsxOTQ3LDggQEAgdm9pZCBGcmFtZVZpZXc6OnNjaGVkdWxlUmVsYXlv
dXRPZlN1YnRyZWUoUmVuZGVyT2JqZWN0KiByZWxheW91dFJvb3QpCiB7CiAgICAgQVNTRVJUKG1f
ZnJhbWUtPnZpZXcoKSA9PSB0aGlzKTsKIAotICAgIGlmIChtX2ZyYW1lLT5jb250ZW50UmVuZGVy
ZXIoKSAmJiBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSkgeworICAg
IFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7CisgICAgaWYgKHJvb3QgJiYg
cm9vdC0+bmVlZHNMYXlvdXQoKSkgewogICAgICAgICBpZiAocmVsYXlvdXRSb290KQogICAgICAg
ICAgICAgcmVsYXlvdXRSb290LT5tYXJrQ29udGFpbmluZ0Jsb2Nrc0ZvckxheW91dChmYWxzZSk7
CiAgICAgICAgIHJldHVybjsKQEAgLTE5ODQsNyArMTk5NCw4IEBAIGJvb2wgRnJhbWVWaWV3Ojpu
ZWVkc0xheW91dCgpIGNvbnN0CiAgICAgLy8gbGF5b3V0IGluIHRoYXQgY2FzZS4KICAgICBpZiAo
IW1fZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBSZW5kZXJWaWV3KiByb290ID0g
bV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCk7CisKKyAgICBSZW5kZXJWaWV3KiByb290ID0gcm9v
dFJlbmRlcmVyKHRoaXMpOwogICAgIHJldHVybiBsYXlvdXRQZW5kaW5nKCkKICAgICAgICAgfHwg
KHJvb3QgJiYgcm9vdC0+bmVlZHNMYXlvdXQoKSkKICAgICAgICAgfHwgbV9sYXlvdXRSb290CkBA
IC0xOTk3LDggKzIwMDgsOCBAQCB2b2lkIEZyYW1lVmlldzo6c2V0TmVlZHNMYXlvdXQoKQogICAg
ICAgICBtX3NldE5lZWRzTGF5b3V0V2FzRGVmZXJyZWQgPSB0cnVlOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIFJlbmRlclZpZXcqIHJvb3QgPSBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIo
KTsKLSAgICBpZiAocm9vdCkKKworICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRl
cmVyKHRoaXMpKQogICAgICAgICByb290LT5zZXROZWVkc0xheW91dCh0cnVlKTsKIH0KIApAQCAt
MjIxMiw4ICsyMjIzLDcgQEAgdm9pZCBGcmFtZVZpZXc6OnBlcmZvcm1Qb3N0TGF5b3V0VGFza3Mo
KQogCiAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZExheW91dCgp
OwogCi0gICAgUmVuZGVyVmlldyogcm9vdCA9IG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpOwot
CisgICAgUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKTsKICAgICByb290LT51
cGRhdGVXaWRnZXRQb3NpdGlvbnMoKTsKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbWF4VXBkYXRlV2lkZ2V0c0l0ZXJhdGlvbnM7IGkrKykgewpAQCAtMjYxNyw3ICsyNjI3LDgg
QEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUNvbnRyb2xUaW50cygpCiAgICAgaWYgKCFtX2ZyYW1l
IHx8IG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKChtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSAmJiBtX2ZyYW1lLT5jb250
ZW50UmVuZGVyZXIoKS0+dGhlbWUoKS0+c3VwcG9ydHNDb250cm9sVGludHMoKSkgfHwgaGFzQ3Vz
dG9tU2Nyb2xsYmFycygpKQorICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhp
cyk7CisgICAgaWYgKChyb290ICYmIHJvb3QtPnRoZW1lKCktPnN1cHBvcnRzQ29udHJvbFRpbnRz
KCkpIHx8IGhhc0N1c3RvbVNjcm9sbGJhcnMoKSkKICAgICAgICAgcGFpbnRDb250cm9sVGludHMo
KTsKIH0KIApAQCAtMjY3OSw4ICsyNjkwLDggQEAgdm9pZCBGcmFtZVZpZXc6OnBhaW50Q29udGVu
dHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBMYXlvdXRSZWN0JiByZWN0KQogICAgIGlmIChp
c1RvcExldmVsUGFpbnRlcikKICAgICAgICAgc0N1cnJlbnRQYWludFRpbWVTdGFtcCA9IGN1cnJl
bnRUaW1lKCk7CiAgICAgCi0gICAgUmVuZGVyVmlldyogY29udGVudFJlbmRlcmVyID0gZnJhbWUo
KS0+Y29udGVudFJlbmRlcmVyKCk7Ci0gICAgaWYgKCFjb250ZW50UmVuZGVyZXIpIHsKKyAgICBS
ZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpOworICAgIGlmICghcm9vdCkgewog
ICAgICAgICBMT0dfRVJST1IoImNhbGxlZCBGcmFtZVZpZXc6OnBhaW50IHdpdGggbmlsIHJlbmRl
cmVyIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNzE5LDcgKzI3MzAsNyBAQCB2b2lk
IEZyYW1lVmlldzo6cGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQqIHAsIGNvbnN0IExheW91
dFJlY3QmIHJlY3QpCiAKICAgICAvLyBtX25vZGVUb0RyYXcgaXMgdXNlZCB0byBkcmF3IG9ubHkg
b25lIGVsZW1lbnQgKGFuZCBpdHMgZGVzY2VuZGFudHMpCiAgICAgUmVuZGVyT2JqZWN0KiBlbHRS
ZW5kZXJlciA9IG1fbm9kZVRvRHJhdyA/IG1fbm9kZVRvRHJhdy0+cmVuZGVyZXIoKSA6IDA7Ci0g
ICAgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciA9IGNvbnRlbnRSZW5kZXJlci0+bGF5ZXIoKTsKKyAg
ICBSZW5kZXJMYXllciogcm9vdExheWVyID0gcm9vdC0+bGF5ZXIoKTsKIAogICAgIHJvb3RMYXll
ci0+cGFpbnQocCwgcmVjdCwgbV9wYWludEJlaGF2aW9yLCBlbHRSZW5kZXJlcik7CiAKQEAgLTI4
MzEsOCArMjg0Miw3IEBAIHZvaWQgRnJhbWVWaWV3Ojpmb3JjZUxheW91dEZvclBhZ2luYXRpb24o
Y29uc3QgRmxvYXRTaXplJiBwYWdlU2l6ZSwgY29uc3QgRmxvYXRTCiB7CiAgICAgLy8gRHVtcGlu
ZyBleHRlcm5hbFJlcHJlc2VudGF0aW9uKG1fZnJhbWUtPnJlbmRlcmVyKCkpLmFzY2lpKCkgaXMg
YSBnb29kIHRyaWNrIHRvIHNlZQogICAgIC8vIHRoZSBzdGF0ZSBvZiB0aGluZ3MgYmVmb3JlIGFu
ZCBhZnRlciB0aGUgbGF5b3V0Ci0gICAgUmVuZGVyVmlldyAqcm9vdCA9IHRvUmVuZGVyVmlldyht
X2ZyYW1lLT5kb2N1bWVudCgpLT5yZW5kZXJlcigpKTsKLSAgICBpZiAocm9vdCkgeworICAgIGlm
IChSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpKSB7CiAgICAgICAgIGZsb2F0
IHBhZ2VMb2dpY2FsV2lkdGggPSByb290LT5zdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gcGFnZVNpemUud2lkdGgoKSA6IHBhZ2VTaXplLmhlaWdodCgpOwogICAgICAgICBmbG9h
dCBwYWdlTG9naWNhbEhlaWdodCA9IHJvb3QtPnN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKCkgPyBwYWdlU2l6ZS5oZWlnaHQoKSA6IHBhZ2VTaXplLndpZHRoKCk7CiAKQEAgLTI4ODYs
OCArMjg5Niw3IEBAIHZvaWQgRnJhbWVWaWV3Ojpmb3JjZUxheW91dEZvclBhZ2luYXRpb24oY29u
c3QgRmxvYXRTaXplJiBwYWdlU2l6ZSwgY29uc3QgRmxvYXRTCiAKIHZvaWQgRnJhbWVWaWV3Ojph
ZGp1c3RQYWdlSGVpZ2h0RGVwcmVjYXRlZChmbG9hdCAqbmV3Qm90dG9tLCBmbG9hdCBvbGRUb3As
IGZsb2F0IG9sZEJvdHRvbSwgZmxvYXQgLypib3R0b21MaW1pdCovKQogewotICAgIFJlbmRlclZp
ZXcqIHJvb3QgPSBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKTsKLSAgICBpZiAocm9vdCkgewor
ICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpKSB7CiAgICAgICAg
IC8vIFVzZSBhIGNvbnRleHQgd2l0aCBwYWludGluZyBkaXNhYmxlZC4KICAgICAgICAgR3JhcGhp
Y3NDb250ZXh0IGNvbnRleHQoKFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KikwKTsKICAgICAgICAg
cm9vdC0+c2V0VHJ1bmNhdGVkQXQoKGludClmbG9vcmYob2xkQm90dG9tKSk7CkBAIC0zMDc1LDI4
ICszMDg0LDIwIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRUcmFja3NSZXBhaW50cyhib29sIHRyYWNr
UmVwYWludHMpCiAKIGJvb2wgRnJhbWVWaWV3Ojppc1ZlcnRpY2FsRG9jdW1lbnQoKSBjb25zdAog
ewotICAgIGlmICghbV9mcmFtZSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgRG9jdW1lbnQq
IGRvYyA9IG1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2MpCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIFJlbmRlck9iamVjdCogcmVuZGVyVmlldyA9IGRvYy0+cmVuZGVyZXIoKTsK
LSAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJl
cih0aGlzKTsKKyAgICBpZiAoIXJvb3QpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVy
biByZW5kZXJWaWV3LT5zdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworCisgICAg
cmV0dXJuIHJvb3QtPnN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CiB9CiAKIGJv
b2wgRnJhbWVWaWV3Ojppc0ZsaXBwZWREb2N1bWVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2Zy
YW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgRG9jdW1lbnQqIGRvYyA9IG1fZnJhbWUt
PmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2MpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBS
ZW5kZXJPYmplY3QqIHJlbmRlclZpZXcgPSBkb2MtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFyZW5k
ZXJWaWV3KQorICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7CisgICAg
aWYgKCFyb290KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHJlbmRlclZpZXct
PnN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCk7CisKKyAgICByZXR1cm4gcm9v
dC0+c3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKTsKIH0KIAogdm9pZCBGcmFt
ZVZpZXc6Om5vdGlmeVdpZGdldHNJbkFsbEZyYW1lcyhXaWRnZXROb3RpZmljYXRpb24gbm90aWZp
Y2F0aW9uKQo=
</data>
<flag name="review"
          id="105941"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>