<?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>109510</bug_id>
          
          <creation_ts>2013-02-11 16:10:03 -0800</creation_ts>
          <short_desc>rootRenderer in FrameView is really RenderView</short_desc>
          <delta_ts>2013-02-12 11:36:43 -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>New Bugs</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="Elliott Sprehn">esprehn</reporter>
          <assigned_to name="Elliott Sprehn">esprehn</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>830280</commentid>
    <comment_count>0</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-11 16:10:03 -0800</bug_when>
    <thetext>rootRenderer in FrameView is really RenderView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830286</commentid>
    <comment_count>1</comment_count>
      <attachid>187709</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-11 16:15:58 -0800</bug_when>
    <thetext>Created attachment 187709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831103</commentid>
    <comment_count>2</comment_count>
      <attachid>187709</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-12 11:15:29 -0800</bug_when>
    <thetext>Comment on attachment 187709
Patch

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831119</commentid>
    <comment_count>3</comment_count>
      <attachid>187709</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-12 11:36:40 -0800</bug_when>
    <thetext>Comment on attachment 187709
Patch

Clearing flags on attachment: 187709

Committed r142647: &lt;http://trac.webkit.org/changeset/142647&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831120</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-12 11:36:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187709</attachid>
            <date>2013-02-11 16:15:58 -0800</date>
            <delta_ts>2013-02-12 11:36:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109510-20130211161229.patch</filename>
            <type>text/plain</type>
            <size>32046</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk0OTM2MGNlYzM4MTNm
OGNkNmVmYzI3Njg3Y2RmYWI0NzlhNzkyZC4uZjkyNWE4MjdjMzgwZjM1ZTRlYzc4ZDEzYTEyMjE2
ODhhNDc5NDIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEzLTAyLTExICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIHJvb3RSZW5kZXJl
ciBpbiBGcmFtZVZpZXcgaXMgcmVhbGx5IFJlbmRlclZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTUxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBnbG9iYWwgZnVuY3Rpb24gcm9vdFJlbmRl
cmVyKEZyYW1lVmlldyopIGlzIHJlYWxseSBqdXN0IGEgd2F5CisgICAgICAgIHRvIGdldCB0aGUg
UmVuZGVyVmlldyBmcm9tIHRoZSBGcmFtZSBzbyByZXBsYWNlIGl0IHdpdGggYSByZW5kZXJWaWV3
KCkKKyAgICAgICAgbWV0aG9kIGFuZCByZXBsYWNlIHVzYWdlIG9mIHRoZSB3b3JkICJyb290IiB3
aXRoIHJlbmRlclZpZXcgc28gaXQncworICAgICAgICBvYnZpb3VzIHRoZSByb290IHdlJ3JlIHRh
bGtpbmcgYWJvdXQgaXMgdGhlIHJlbmRlclZpZXcuIFRoaXMgaXMgYW4KKyAgICAgICAgaW1wb3J0
YW50IGRpc3RpbmN0aW9uIHRvIG1ha2Ugc2luY2Ugd2UgYWxzbyBoYXZlIHJvb3RSZW5kZXJlciBp
biB0aGUgY29kZQorICAgICAgICBmb3IgdGhlIGRvY3VtZW50RWxlbWVudCgpJ3MgcmVuZGVyZXIg
YW5kIHdlIGFsc28gaGF2ZSBhICJsYXlvdXQgcm9vdCIgd2hpY2gKKyAgICAgICAgaXMgZW50aXJl
bHkgZGlmZmVyZW50LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCByZWZhY3RvcmluZy4K
KworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6cm9vdFJlbmRlcmVyKTogUmVtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6c2V0RnJhbWVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6YWRqdXN0Vmll
d1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xh
eWVyc0FmdGVyU3R5bGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRh
dGVDb21wb3NpdGluZ0xheWVyc0FmdGVyTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6Y2xlYXJCYWNraW5nU3RvcmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
cmVzdG9yZUJhY2tpbmdTdG9yZXMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1c2Vz
Q29tcG9zaXRlZFNjcm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmxheWVy
Rm9ySG9yaXpvbnRhbFNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Omxh
eWVyRm9yVmVydGljYWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojps
YXllckZvclNjcm9sbENvcm5lcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnRpbGVk
QmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbExheWVySUQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXllckZvck92ZXJoYW5nQXJlYXMpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpoYXNDb21wb3NpdGVkQ29udGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmVudGVyQ29tcG9zaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aXNTb2Z0d2FyZVJlbmRlcmFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpkaWRNb3ZlT25zY3JlZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3Ojp3aWxsTW92ZU9mZnNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmVtYmVkZGVkQ29u
dGVudEJveCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNvbnRlbnRzSW5Db21wb3Np
dGVkTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zh
c3RQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNTbG93
UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Om1haW50YWluU2Nyb2xsUG9zaXRp
b25BdEFuY2hvcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9u
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJlcGFpbnRGaXhlZEVsZW1l
bnRzQWZ0ZXJTY3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVG
aXhlZEVsZW1lbnRzQWZ0ZXJTY3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
Ojp2aXNpYmxlQ29udGVudHNSZXNpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2NoZWR1bGVSZWxheW91dE9mU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
Om5lZWRzTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0TmVlZHNMYXlv
dXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tz
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlQ29udHJvbFRpbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmZvcmNlTGF5b3V0Rm9yUGFnaW5hdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmFkanVzdFBhZ2VIZWlnaHREZXByZWNhdGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6cmVzZXRUcmFja2VkUmVwYWludHMpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3Ojppc1ZlcnRpY2FsRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3Ojppc0ZsaXBwZWREb2N1bWVudCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVuZGVyVmlldyk6IEFkZGVkLgorCiAyMDEz
LTAyLTExICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogVGltZWxpbmU6IGludmFsaWRhdGUgYW5kIGZvcmNlIGxvY2F0aW9ucyBh
cmUgc2FtZSBmb3IgTGF5b3V0IHJlY29yZHMgY2F1c2VkIGJ5IHN0eWxlIHJlY2FsY3VsYWl0b24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAzM2NjZWE2MGZjNTVkYzE1OThlYTlhYWM2
YjQ2NjkwNmJlYTdmZjliLi43YWMzNzZlZjNhM2Y5MWE0NTY0MWMyZDgwNzkxMzFkZWQyOGY2MjE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xMjQsMTEgKzEyNCw2IEBAIGRvdWJs
ZSBGcmFtZVZpZXc6OnNfZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5n
ID0gMDsKIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiB1cGRhdGVXaWRnZXRzIGl0ZXJhdGlvbnMg
dGhhdCBzaG91bGQgYmUgZG9uZSBiZWZvcmUgcmV0dXJuaW5nLgogc3RhdGljIGNvbnN0IHVuc2ln
bmVkIG1heFVwZGF0ZVdpZGdldHNJdGVyYXRpb25zID0gMjsKIAotc3RhdGljIGlubGluZSBSZW5k
ZXJWaWV3KiByb290UmVuZGVyZXIoY29uc3QgRnJhbWVWaWV3KiB2aWV3KQotewotICAgIHJldHVy
biB2aWV3LT5mcmFtZSgpID8gdmlldy0+ZnJhbWUoKS0+Y29udGVudFJlbmRlcmVyKCkgOiAwOwot
fQotCiBzdGF0aWMgUmVuZGVyTGF5ZXI6OlVwZGF0ZUxheWVyUG9zaXRpb25zRmxhZ3MgdXBkYXRl
TGF5ZXJQb3NpdGlvbkZsYWdzKFJlbmRlckxheWVyKiBsYXllciwgYm9vbCBpc1JlbGF5b3V0aW5n
U3VidHJlZSwgYm9vbCBkaWRGdWxsUmVwYWludCkKIHsKICAgICBSZW5kZXJMYXllcjo6VXBkYXRl
TGF5ZXJQb3NpdGlvbnNGbGFncyBmbGFncyA9IFJlbmRlckxheWVyOjpkZWZhdWx0RmxhZ3M7CkBA
IC00NTQsOSArNDQ5LDkgQEAgdm9pZCBGcmFtZVZpZXc6OnNldEZyYW1lUmVjdChjb25zdCBJbnRS
ZWN0JiBuZXdSZWN0KQogICAgIHVwZGF0ZVNjcm9sbGFibGVBcmVhU2V0KCk7CiAKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKFJlbmRlclZpZXcqIHJvb3QgPSByb290
UmVuZGVyZXIodGhpcykpIHsKLSAgICAgICAgaWYgKHJvb3QtPnVzZXNDb21wb3NpdGluZygpKQot
ICAgICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5mcmFtZVZpZXdEaWRDaGFuZ2VTaXplKCk7
CisgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpIHsK
KyAgICAgICAgaWYgKHJlbmRlclZpZXctPnVzZXNDb21wb3NpdGluZygpKQorICAgICAgICAgICAg
cmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT5mcmFtZVZpZXdEaWRDaGFuZ2VTaXplKCk7CiAgICAg
fQogI2VuZGlmCiB9CkBAIC01NzMsMTMgKzU2OCwxMyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Q29u
dGVudHNTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAKIHZvaWQgRnJhbWVWaWV3OjphZGp1c3RW
aWV3U2l6ZSgpCiB7Ci0gICAgUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKTsK
LSAgICBpZiAoIXJvb3QpCisgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRl
clZpZXcoKTsKKyAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFT
U0VSVChtX2ZyYW1lLT52aWV3KCkgPT0gdGhpcyk7CiAKLSAgICBjb25zdCBJbnRSZWN0IHJlY3Qg
PSByb290LT5kb2N1bWVudFJlY3QoKTsKKyAgICBjb25zdCBJbnRSZWN0IHJlY3QgPSByZW5kZXJW
aWV3LT5kb2N1bWVudFJlY3QoKTsKICAgICBjb25zdCBJbnRTaXplJiBzaXplID0gcmVjdC5zaXpl
KCk7CiAgICAgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsT3JpZ2luKEludFBvaW50KC1yZWN0LngoKSwg
LXJlY3QueSgpKSwgIW1fZnJhbWUtPmRvY3VtZW50KCktPnByaW50aW5nKCksIHNpemUgPT0gY29u
dGVudHNTaXplKCkpOwogICAgIApAQCAtNzI0LDM3ICs3MTksMzcgQEAgdm9pZCBGcmFtZVZpZXc6
OmNhbGN1bGF0ZVNjcm9sbGJhck1vZGVzRm9yTGF5b3V0KFNjcm9sbGJhck1vZGUmIGhNb2RlLCBT
Y3JvbGxiYXIKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiB2b2lkIEZyYW1lVmll
dzo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclN0eWxlQ2hhbmdlKCkKIHsKLSAgICBSZW5k
ZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpOwotICAgIGlmICghcm9vdCkKKyAgICBS
ZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOworICAgIGlmICghcmVu
ZGVyVmlldykKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgd2UgZXhwZWN0IHRvIHVwZGF0
ZSBjb21wb3NpdGluZyBhZnRlciBhbiBpbmNpcGllbnQgbGF5b3V0LCBkb24ndCBkbyBzbyBoZXJl
LgotICAgIGlmIChtX2RvaW5nUHJlTGF5b3V0U3R5bGVVcGRhdGUgfHwgbGF5b3V0UGVuZGluZygp
IHx8IHJvb3QtPm5lZWRzTGF5b3V0KCkpCisgICAgaWYgKG1fZG9pbmdQcmVMYXlvdXRTdHlsZVVw
ZGF0ZSB8fCBsYXlvdXRQZW5kaW5nKCkgfHwgcmVuZGVyVmlldy0+bmVlZHNMYXlvdXQoKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gVGhpcyBjYWxsIHdpbGwgbWFrZSBzdXJlIHRoZSBjYWNo
ZWQgaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyBpcyB1cGRhdGVkIGZyb20gdGhlIHByZWYKLSAg
ICByb290LT5jb21wb3NpdG9yKCktPmNhY2hlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZsYWdzKCk7
Ci0gICAgcm9vdC0+Y29tcG9zaXRvcigpLT51cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3Np
dGluZ1VwZGF0ZUFmdGVyU3R5bGVDaGFuZ2UpOworICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3Io
KS0+Y2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nRmxhZ3MoKTsKKyAgICByZW5kZXJWaWV3LT5j
b21wb3NpdG9yKCktPnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlQWZ0
ZXJTdHlsZUNoYW5nZSk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xh
eWVyc0FmdGVyTGF5b3V0KCkKIHsKLSAgICBSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVy
KHRoaXMpOwotICAgIGlmICghcm9vdCkKKyAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhp
cy0+cmVuZGVyVmlldygpOworICAgIGlmICghcmVuZGVyVmlldykKICAgICAgICAgcmV0dXJuOwog
CiAgICAgLy8gVGhpcyBjYWxsIHdpbGwgbWFrZSBzdXJlIHRoZSBjYWNoZWQgaGFzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZyBpcyB1cGRhdGVkIGZyb20gdGhlIHByZWYKLSAgICByb290LT5jb21wb3Np
dG9yKCktPmNhY2hlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZsYWdzKCk7Ci0gICAgcm9vdC0+Y29t
cG9zaXRvcigpLT51cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZUFmdGVy
TGF5b3V0KTsKKyAgICByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCktPmNhY2hlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZsYWdzKCk7CisgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT51cGRhdGVD
b21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZUFmdGVyTGF5b3V0KTsKIH0KIAogdm9p
ZCBGcmFtZVZpZXc6OmNsZWFyQmFja2luZ1N0b3JlcygpCiB7Ci0gICAgUmVuZGVyVmlldyogcm9v
dCA9IHJvb3RSZW5kZXJlcih0aGlzKTsKLSAgICBpZiAoIXJvb3QpCisgICAgUmVuZGVyVmlldyog
cmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKKyAgICBpZiAoIXJlbmRlclZpZXcpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciogY29tcG9zaXRvciA9
IHJvb3QtPmNvbXBvc2l0b3IoKTsKKyAgICBSZW5kZXJMYXllckNvbXBvc2l0b3IqIGNvbXBvc2l0
b3IgPSByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCk7CiAgICAgQVNTRVJUKGNvbXBvc2l0b3ItPmlu
Q29tcG9zaXRpbmdNb2RlKCkpOwogICAgIGNvbXBvc2l0b3ItPmVuYWJsZUNvbXBvc2l0aW5nTW9k
ZShmYWxzZSk7CiAgICAgY29tcG9zaXRvci0+Y2xlYXJCYWNraW5nRm9yQWxsTGF5ZXJzKCk7CkBA
IC03NjIsNTUgKzc1Nyw1NiBAQCB2b2lkIEZyYW1lVmlldzo6Y2xlYXJCYWNraW5nU3RvcmVzKCkK
IAogdm9pZCBGcmFtZVZpZXc6OnJlc3RvcmVCYWNraW5nU3RvcmVzKCkKIHsKLSAgICBSZW5kZXJW
aWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpOwotICAgIGlmICghcm9vdCkKKyAgICBSZW5k
ZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOworICAgIGlmICghcmVuZGVy
VmlldykKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBjb21w
b3NpdG9yID0gcm9vdC0+Y29tcG9zaXRvcigpOworICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciog
Y29tcG9zaXRvciA9IHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKTsKICAgICBjb21wb3NpdG9yLT5l
bmFibGVDb21wb3NpdGluZ01vZGUodHJ1ZSk7CiAgICAgY29tcG9zaXRvci0+dXBkYXRlQ29tcG9z
aXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVBZnRlckxheW91dCk7CiB9CiAKIGJvb2wgRnJh
bWVWaWV3Ojp1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0CiB7Ci0gICAgaWYgKG1fZnJh
bWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+Y29tcG9zaXRlZFNjcm9sbGlu
Z0ZvckZyYW1lc0VuYWJsZWQoKSkgewotICAgICAgICBSZW5kZXJWaWV3KiByb290ID0gcm9vdFJl
bmRlcmVyKHRoaXMpOwotICAgICAgICByZXR1cm4gcm9vdCAmJiByb290LT5jb21wb3NpdG9yKCkt
PmluRm9yY2VkQ29tcG9zaXRpbmdNb2RlKCk7Ci0gICAgfQorICAgIFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7CisgICAgaWYgKCFyZW5kZXJWaWV3KQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG1fZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+
c2V0dGluZ3MoKS0+Y29tcG9zaXRlZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+aW5Gb3JjZWRDb21wb3NpdGluZ01v
ZGUoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6
bGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QKIHsKLSAgICBSZW5kZXJWaWV3KiBy
b290ID0gcm9vdFJlbmRlcmVyKHRoaXMpOwotICAgIGlmICghcm9vdCkKKyAgICBSZW5kZXJWaWV3
KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOworICAgIGlmICghcmVuZGVyVmlldykK
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHJvb3QtPmNvbXBvc2l0b3IoKS0+bGF5ZXJG
b3JIb3Jpem9udGFsU2Nyb2xsYmFyKCk7CisgICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0
b3IoKS0+bGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCk7CiB9CiAKIEdyYXBoaWNzTGF5ZXIq
IEZyYW1lVmlldzo6bGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0CiB7Ci0gICAgUmVu
ZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKTsKLSAgICBpZiAoIXJvb3QpCisgICAg
UmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKKyAgICBpZiAoIXJl
bmRlclZpZXcpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiByb290LT5jb21wb3NpdG9y
KCktPmxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKTsKKyAgICByZXR1cm4gcmVuZGVyVmlldy0+
Y29tcG9zaXRvcigpLT5sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCk7CiB9CiAKIEdyYXBoaWNz
TGF5ZXIqIEZyYW1lVmlldzo6bGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25zdAogewotICAgIFJl
bmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7Ci0gICAgaWYgKCFyb290KQorICAg
IFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7CisgICAgaWYgKCFy
ZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gcm9vdC0+Y29tcG9zaXRv
cigpLT5sYXllckZvclNjcm9sbENvcm5lcigpOworICAgIHJldHVybiByZW5kZXJWaWV3LT5jb21w
b3NpdG9yKCktPmxheWVyRm9yU2Nyb2xsQ29ybmVyKCk7CiB9CiAKIFRpbGVkQmFja2luZyogRnJh
bWVWaWV3Ojp0aWxlZEJhY2tpbmcoKQogewotICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVu
ZGVyZXIodGhpcyk7Ci0gICAgaWYgKCFyb290KQorICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcg
PSB0aGlzLT5yZW5kZXJWaWV3KCk7CisgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIFJlbmRlckxheWVyQmFja2luZyogYmFja2luZyA9IHJvb3QtPmxheWVyKCkt
PmJhY2tpbmcoKTsKKyAgICBSZW5kZXJMYXllckJhY2tpbmcqIGJhY2tpbmcgPSByZW5kZXJWaWV3
LT5sYXllcigpLT5iYWNraW5nKCk7CiAgICAgaWYgKCFiYWNraW5nKQogICAgICAgICByZXR1cm4g
MDsKIApAQCAtODE5LDExICs4MTUsMTEgQEAgVGlsZWRCYWNraW5nKiBGcmFtZVZpZXc6OnRpbGVk
QmFja2luZygpCiAKIHVpbnQ2NF90IEZyYW1lVmlldzo6c2Nyb2xsTGF5ZXJJRCgpIGNvbnN0CiB7
Ci0gICAgUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKTsKLSAgICBpZiAoIXJv
b3QpCisgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKKyAg
ICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgUmVuZGVyTGF5ZXJC
YWNraW5nKiBiYWNraW5nID0gcm9vdC0+bGF5ZXIoKS0+YmFja2luZygpOworICAgIFJlbmRlckxh
eWVyQmFja2luZyogYmFja2luZyA9IHJlbmRlclZpZXctPmxheWVyKCktPmJhY2tpbmcoKTsKICAg
ICBpZiAoIWJhY2tpbmcpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC04MzMsMTcgKzgyOSwxNyBA
QCB1aW50NjRfdCBGcmFtZVZpZXc6OnNjcm9sbExheWVySUQoKSBjb25zdAogI2lmIEVOQUJMRShS
VUJCRVJfQkFORElORykKIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6bGF5ZXJGb3JPdmVyaGFu
Z0FyZWFzKCkgY29uc3QKIHsKLSAgICBSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRo
aXMpOwotICAgIGlmICghcm9vdCkKKyAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+
cmVuZGVyVmlldygpOworICAgIGlmICghcmVuZGVyVmlldykKICAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgcmV0dXJuIHJvb3QtPmNvbXBvc2l0b3IoKS0+bGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKCk7Cisg
ICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+bGF5ZXJGb3JPdmVyaGFuZ0FyZWFz
KCk7CiB9CiAjZW5kaWYKIAogYm9vbCBGcmFtZVZpZXc6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZv
clRoaXNGcmFtZShGcmFtZSogcm9vdEZyYW1lRm9yRmx1c2gpCiB7Ci0gICAgUmVuZGVyVmlldyog
cm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKTsKLSAgICBpZiAoIXJvb3QpCisgICAgUmVuZGVyVmll
dyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKKyAgICBpZiAoIXJlbmRlclZpZXcp
CiAgICAgICAgIHJldHVybiB0cnVlOyAvLyBXZSBkb24ndCB3YW50IHRvIGtlZXAgdHJ5aW5nIHRv
IHVwZGF0ZSBsYXllcnMgaWYgd2UgaGF2ZSBubyByZW5kZXJlci4KIAogICAgIEFTU0VSVChtX2Zy
YW1lLT52aWV3KCkgPT0gdGhpcyk7CkBAIC04NTcsNyArODUzLDcgQEAgYm9vbCBGcmFtZVZpZXc6
OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNGcmFtZShGcmFtZSogcm9vdEZyYW1lRm9yRmx1
c2gpCiAgICAgLy8gdmlzaWJsZSBmbGFzaCB0byBvY2N1ci4gSW5zdGVhZCwgc3RvcCB0aGUgZGVm
ZXJyZWQgcmVwYWludCB0aW1lciBhbmQgcmVwYWludCBpbW1lZGlhdGVseS4KICAgICBmbHVzaERl
ZmVycmVkUmVwYWludHMoKTsKIAotICAgIHJvb3QtPmNvbXBvc2l0b3IoKS0+Zmx1c2hQZW5kaW5n
TGF5ZXJDaGFuZ2VzKHJvb3RGcmFtZUZvckZsdXNoID09IG1fZnJhbWUpOworICAgIHJlbmRlclZp
ZXctPmNvbXBvc2l0b3IoKS0+Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKHJvb3RGcmFtZUZvckZs
dXNoID09IG1fZnJhbWUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC04NzQsOCArODcwLDgg
QEAgdm9pZCBGcmFtZVZpZXc6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24o
KQogYm9vbCBGcmFtZVZpZXc6Omhhc0NvbXBvc2l0ZWRDb250ZW50KCkgY29uc3QKIHsKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKFJlbmRlclZpZXcqIHJvb3QgPSBy
b290UmVuZGVyZXIodGhpcykpCi0gICAgICAgIHJldHVybiByb290LT5jb21wb3NpdG9yKCktPmlu
Q29tcG9zaXRpbmdNb2RlKCk7CisgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlz
LT5yZW5kZXJWaWV3KCkpCisgICAgICAgIHJldHVybiByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCkt
PmluQ29tcG9zaXRpbmdNb2RlKCk7CiAjZW5kaWYKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC05
MTUsMTAgKzkxMSwxMCBAQCBib29sIEZyYW1lVmlldzo6aGFzQ29tcG9zaXRpbmdBbmNlc3Rvcigp
IGNvbnN0CiB2b2lkIEZyYW1lVmlldzo6ZW50ZXJDb21wb3NpdGluZ01vZGUoKQogewogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAoUmVuZGVyVmlldyogcm9vdCA9IHJv
b3RSZW5kZXJlcih0aGlzKSkgewotICAgICAgICByb290LT5jb21wb3NpdG9yKCktPmVuYWJsZUNv
bXBvc2l0aW5nTW9kZSgpOworICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+
cmVuZGVyVmlldygpKSB7CisgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+ZW5hYmxl
Q29tcG9zaXRpbmdNb2RlKCk7CiAgICAgICAgIGlmICghbmVlZHNMYXlvdXQoKSkKLSAgICAgICAg
ICAgIHJvb3QtPmNvbXBvc2l0b3IoKS0+c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyVXBkYXRlKCk7
CisgICAgICAgICAgICByZW5kZXJWaWV3LT5jb21wb3NpdG9yKCktPnNjaGVkdWxlQ29tcG9zaXRp
bmdMYXllclVwZGF0ZSgpOwogICAgIH0KICNlbmRpZgogfQpAQCAtOTU0LDExICs5NTAsOCBAQCBi
b29sIEZyYW1lVmlldzo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCkK
IGJvb2wgRnJhbWVWaWV3Ojppc1NvZnR3YXJlUmVuZGVyYWJsZSgpIGNvbnN0CiB7CiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVu
ZGVyZXIodGhpcyk7Ci0gICAgaWYgKCFyb290KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAg
IHJldHVybiAhcm9vdC0+Y29tcG9zaXRvcigpLT5oYXMzRENvbnRlbnQoKTsKKyAgICBSZW5kZXJW
aWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOworICAgIHJldHVybiAhcmVuZGVy
VmlldyB8fCAhcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT5oYXMzRENvbnRlbnQoKTsKICNlbHNl
CiAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKQEAgLTk2NiwxNSArOTU5LDE1IEBAIGJvb2wgRnJh
bWVWaWV3Ojppc1NvZnR3YXJlUmVuZGVyYWJsZSgpIGNvbnN0CiAKIHZvaWQgRnJhbWVWaWV3Ojpk
aWRNb3ZlT25zY3JlZW4oKQogewotICAgIGlmIChSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRl
cmVyKHRoaXMpKQotICAgICAgICByb290LT5kaWRNb3ZlT25zY3JlZW4oKTsKKyAgICBpZiAoUmVu
ZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkKKyAgICAgICAgcmVuZGVy
Vmlldy0+ZGlkTW92ZU9uc2NyZWVuKCk7CiAgICAgY29udGVudEFyZWFEaWRTaG93KCk7CiB9CiAK
IHZvaWQgRnJhbWVWaWV3Ojp3aWxsTW92ZU9mZnNjcmVlbigpCiB7Ci0gICAgaWYgKFJlbmRlclZp
ZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcykpCi0gICAgICAgIHJvb3QtPndpbGxNb3ZlT2Zm
c2NyZWVuKCk7CisgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJW
aWV3KCkpCisgICAgICAgIHJlbmRlclZpZXctPndpbGxNb3ZlT2Zmc2NyZWVuKCk7CiAgICAgY29u
dGVudEFyZWFEaWRIaWRlKCk7CiB9CiAKQEAgLTEyNDUsNyArMTIzOCw3IEBAIHZvaWQgRnJhbWVW
aWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgIHJvb3QtPnZpZXcoKS0+cmVw
YWludCgpOyAvLyBGSVhNRTogVGhpcyBpc24ndCByZWFsbHkgcmlnaHQsIHNpbmNlIHRoZSBSZW5k
ZXJWaWV3IGRvZXNuJ3QgZnVsbHkgZW5jb21wYXNzIHRoZSB2aXNpYmxlQ29udGVudFJlY3QoKS4g
SXQganVzdCBoYXBwZW5zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byB3
b3JrIG91dCBtb3N0IG9mIHRoZSB0aW1lLCBzaW5jZSBmaXJzdCBsYXlvdXRzIGFuZCBwcmludGlu
ZyBkb24ndCBoYXZlIHlvdSBzY3JvbGxlZCBhbnl3aGVyZS4KIAotICAgIGxheWVyLT51cGRhdGVM
YXllclBvc2l0aW9uc0FmdGVyTGF5b3V0KHJvb3RSZW5kZXJlcih0aGlzKS0+bGF5ZXIoKSwgdXBk
YXRlTGF5ZXJQb3NpdGlvbkZsYWdzKGxheWVyLCBzdWJ0cmVlLCBtX2RvRnVsbFJlcGFpbnQpKTsK
KyAgICBsYXllci0+dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dChyZW5kZXJWaWV3KCkt
PmxheWVyKCksIHVwZGF0ZUxheWVyUG9zaXRpb25GbGFncyhsYXllciwgc3VidHJlZSwgbV9kb0Z1
bGxSZXBhaW50KSk7CiAKICAgICBlbmREZWZlcnJlZFJlcGFpbnRzKCk7CiAKQEAgLTEyNzQsOCAr
MTI2Nyw4IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAg
aWYgKCFtX3Bvc3RMYXlvdXRUYXNrc1RpbWVyLmlzQWN0aXZlKCkpIHsKICAgICAgICAgaWYgKCFt
X2luU3luY2hyb25vdXNQb3N0TGF5b3V0KSB7CiAgICAgICAgICAgICBpZiAoaW5DaGlsZEZyYW1l
TGF5b3V0V2l0aEZyYW1lRmxhdHRlbmluZykgewotICAgICAgICAgICAgICAgIGlmIChSZW5kZXJW
aWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpKQotICAgICAgICAgICAgICAgICAgICByb290
LT51cGRhdGVXaWRnZXRQb3NpdGlvbnMoKTsKKyAgICAgICAgICAgICAgICBpZiAoUmVuZGVyVmll
dyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkKKyAgICAgICAgICAgICAgICAgICAg
cmVuZGVyVmlldy0+dXBkYXRlV2lkZ2V0UG9zaXRpb25zKCk7CiAgICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICAgIG1faW5TeW5jaHJvbm91c1Bvc3RMYXlvdXQgPSB0cnVlOwogICAg
ICAgICAgICAgICAgIC8vIENhbGxzIHJlc3VtZVNjaGVkdWxlZEV2ZW50cygpCkBAIC0xMzE1LDE3
ICsxMzA4LDE3IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiBS
ZW5kZXJCb3gqIEZyYW1lVmlldzo6ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QKIHsKICNpZiBF
TkFCTEUoU1ZHKQotICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7Ci0g
ICAgaWYgKCFyb290KQorICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJW
aWV3KCk7CisgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJl
bmRlck9iamVjdCogcm9vdENoaWxkID0gcm9vdC0+Zmlyc3RDaGlsZCgpOwotICAgIGlmICghcm9v
dENoaWxkIHx8ICFyb290Q2hpbGQtPmlzQm94KCkpCisgICAgUmVuZGVyT2JqZWN0KiBmaXJzdENo
aWxkID0gcmVuZGVyVmlldy0+Zmlyc3RDaGlsZCgpOworICAgIGlmICghZmlyc3RDaGlsZCB8fCAh
Zmlyc3RDaGlsZC0+aXNCb3goKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBDdXJlbnRs
eSBvbmx5IGVtYmVkZGVkIFNWRyBkb2N1bWVudHMgcGFydGljaXBhdGUgaW4gdGhlIHNpemUtbmVn
b3RpYXRpb24gbG9naWMuCi0gICAgaWYgKHJvb3RDaGlsZC0+aXNTVkdSb290KCkpCi0gICAgICAg
IHJldHVybiB0b1JlbmRlckJveChyb290Q2hpbGQpOworICAgIGlmIChmaXJzdENoaWxkLT5pc1NW
R1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIHRvUmVuZGVyQm94KGZpcnN0Q2hpbGQpOwogI2VuZGlm
CiAKICAgICByZXR1cm4gMDsKQEAgLTE0MjcsOSArMTQyMCw5IEBAIHZvaWQgRnJhbWVWaWV3Ojp1
cGRhdGVDYW5CbGl0T25TY3JvbGxSZWN1cnNpdmVseSgpCiBib29sIEZyYW1lVmlldzo6Y29udGVu
dHNJbkNvbXBvc2l0ZWRMYXllcigpIGNvbnN0CiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7Ci0gICAg
aWYgKHJvb3QgJiYgcm9vdC0+aXNDb21wb3NpdGVkKCkpIHsKLSAgICAgICAgR3JhcGhpY3NMYXll
ciogbGF5ZXIgPSByb290LT5sYXllcigpLT5iYWNraW5nKCktPmdyYXBoaWNzTGF5ZXIoKTsKKyAg
ICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOworICAgIGlmIChy
ZW5kZXJWaWV3ICYmIHJlbmRlclZpZXctPmlzQ29tcG9zaXRlZCgpKSB7CisgICAgICAgIEdyYXBo
aWNzTGF5ZXIqIGxheWVyID0gcmVuZGVyVmlldy0+bGF5ZXIoKS0+YmFja2luZygpLT5ncmFwaGlj
c0xheWVyKCk7CiAgICAgICAgIGlmIChsYXllciAmJiBsYXllci0+ZHJhd3NDb250ZW50KCkpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0xNTg2LDkgKzE1NzksOCBAQCBib29s
IEZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxE
ZWx0YSwgY29uc3QgSW50UmVjdAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAg
ICAgICAgaWYgKGlzQ29tcG9zaXRlZENvbnRlbnRMYXllcikgewogICAgICAgICAgICAgdXBkYXRl
UmVjdCA9IHJvb3RWaWV3VG9Db250ZW50cyh1cGRhdGVSZWN0KTsKLSAgICAgICAgICAgIFJlbmRl
clZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7Ci0gICAgICAgICAgICBBU1NFUlQocm9v
dCk7Ci0gICAgICAgICAgICByb290LT5sYXllcigpLT5zZXRCYWNraW5nTmVlZHNSZXBhaW50SW5S
ZWN0KHVwZGF0ZVJlY3QpOworICAgICAgICAgICAgQVNTRVJUKHJlbmRlclZpZXcoKSk7CisgICAg
ICAgICAgICByZW5kZXJWaWV3KCktPmxheWVyKCktPnNldEJhY2tpbmdOZWVkc1JlcGFpbnRJblJl
Y3QodXBkYXRlUmVjdCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlm
CkBAIC0xNjA0LDE2ICsxNTk2LDE0IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c1Ns
b3dQYXRoKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogICAgIGlmIChjb250ZW50c0luQ29tcG9zaXRlZExheWVyKCkpIHsKLSAg
ICAgICAgUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKTsKLSAgICAgICAgQVNT
RVJUKHJvb3QpOwotCiAgICAgICAgIEludFJlY3QgdXBkYXRlUmVjdCA9IHZpc2libGVDb250ZW50
UmVjdCgpOwogCiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0byAiYXBwbHkiIHRoZSBzY2FsZSBmYWN0
b3IgaGVyZSBzaW5jZSB3ZSdyZSBjb252ZXJ0aW5nIGZyb20gZnJhbWUgdmlldwogICAgICAgICAv
LyBjb29yZGluYXRlcyB0byBsYXllciBiYWNraW5nIGNvb3JkaW5hdGVzLgogICAgICAgICB1cGRh
dGVSZWN0LnNjYWxlKDEgLyBtX2ZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpOwogCi0gICAgICAg
IHJvb3QtPmxheWVyKCktPnNldEJhY2tpbmdOZWVkc1JlcGFpbnRJblJlY3QodXBkYXRlUmVjdCk7
CisgICAgICAgIEFTU0VSVChyZW5kZXJWaWV3KCkpOworICAgICAgICByZW5kZXJWaWV3KCktPmxh
eWVyKCktPnNldEJhY2tpbmdOZWVkc1JlcGFpbnRJblJlY3QodXBkYXRlUmVjdCk7CiAgICAgfQog
ICAgIGlmIChSZW5kZXJQYXJ0KiBmcmFtZVJlbmRlcmVyID0gbV9mcmFtZS0+b3duZXJSZW5kZXJl
cigpKSB7CiAgICAgICAgIGlmIChpc0VuY2xvc2VkSW5Db21wb3NpdGluZ0xheWVyKCkpIHsKQEAg
LTE3NTYsOCArMTc0Niw4IEBAIHZvaWQgRnJhbWVWaWV3OjptYWludGFpblNjcm9sbFBvc2l0aW9u
QXRBbmNob3IoTm9kZSogYW5jaG9yTm9kZSkKICAgICAvLyByZWFsbHkgbWVzcyB0aGluZ3MgdXAg
aWYgYW4gYW5jaG9yIHNjcm9sbCBjb21lcyBhdCBhIGJhZCBtb21lbnQuCiAgICAgbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogICAgIC8vIE9ubHkgZG8gYSBsYXlv
dXQgaWYgY2hhbmdlcyBoYXZlIG9jY3VycmVkIHRoYXQgbWFrZSBpdCBuZWNlc3NhcnkuCi0gICAg
UmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKTsKLSAgICBpZiAocm9vdCAmJiBy
b290LT5uZWVkc0xheW91dCgpKQorICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5y
ZW5kZXJWaWV3KCk7CisgICAgaWYgKHJlbmRlclZpZXcgJiYgcmVuZGVyVmlldy0+bmVlZHNMYXlv
dXQoKSkKICAgICAgICAgbGF5b3V0KCk7CiAgICAgZWxzZQogICAgICAgICBzY3JvbGxUb0FuY2hv
cigpOwpAQCAtMTg0NSw5ICsxODM1LDkgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9sbFBvc2l0aW9u
Q2hhbmdlZCgpCiAgICAgZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmRpc3BhdGNoRmFrZU1vdXNl
TW92ZUV2ZW50U29vbigpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAg
IGlmIChSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpKSB7Ci0gICAgICAgIGlm
IChyb290LT51c2VzQ29tcG9zaXRpbmcoKSkKLSAgICAgICAgICAgIHJvb3QtPmNvbXBvc2l0b3Io
KS0+ZnJhbWVWaWV3RGlkU2Nyb2xsKCk7CisgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcg
PSB0aGlzLT5yZW5kZXJWaWV3KCkpIHsKKyAgICAgICAgaWYgKHJlbmRlclZpZXctPnVzZXNDb21w
b3NpdGluZygpKQorICAgICAgICAgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT5mcmFtZVZp
ZXdEaWRTY3JvbGwoKTsKICAgICB9CiAjZW5kaWYKIH0KQEAgLTE4NTcsOSArMTg0Nyw5IEBAIHZv
aWQgRnJhbWVWaWV3OjpyZXBhaW50Rml4ZWRFbGVtZW50c0FmdGVyU2Nyb2xsaW5nKCkKICAgICAv
LyBGb3IgZml4ZWQgcG9zaXRpb24gZWxlbWVudHMsIHVwZGF0ZSB3aWRnZXQgcG9zaXRpb25zIGFu
ZCBjb21wb3NpdGluZyBsYXllcnMgYWZ0ZXIgc2Nyb2xsaW5nLAogICAgIC8vIGJ1dCBvbmx5IGlm
IHdlJ3JlIG5vdCBpbnNpZGUgb2YgbGF5b3V0LgogICAgIGlmICghbV9uZXN0ZWRMYXlvdXRDb3Vu
dCAmJiBoYXNWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cygpKSB7Ci0gICAgICAgIGlmIChSZW5k
ZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpKSB7Ci0gICAgICAgICAgICByb290LT51
cGRhdGVXaWRnZXRQb3NpdGlvbnMoKTsKLSAgICAgICAgICAgIHJvb3QtPmxheWVyKCktPnVwZGF0
ZUxheWVyUG9zaXRpb25zQWZ0ZXJEb2N1bWVudFNjcm9sbCgpOworICAgICAgICBpZiAoUmVuZGVy
VmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkgeworICAgICAgICAgICAgcmVu
ZGVyVmlldy0+dXBkYXRlV2lkZ2V0UG9zaXRpb25zKCk7CisgICAgICAgICAgICByZW5kZXJWaWV3
LT5sYXllcigpLT51cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyRG9jdW1lbnRTY3JvbGwoKTsKICAg
ICAgICAgfQogICAgIH0KIH0KQEAgLTE5MDAsOCArMTg5MCw4IEBAIHZvaWQgRnJhbWVWaWV3Ojp1
cGRhdGVGaXhlZEVsZW1lbnRzQWZ0ZXJTY3JvbGxpbmcoKQogICAgICAgICByZXR1cm47CiAKICAg
ICBpZiAobV9uZXN0ZWRMYXlvdXRDb3VudCA8PSAxICYmIGhhc1ZpZXdwb3J0Q29uc3RyYWluZWRP
YmplY3RzKCkpIHsKLSAgICAgICAgaWYgKFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIo
dGhpcykpCi0gICAgICAgICAgICByb290LT5jb21wb3NpdG9yKCktPnVwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlT25TY3JvbGwpOworICAgICAgICBpZiAoUmVuZGVyVmll
dyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkKKyAgICAgICAgICAgIHJlbmRlclZp
ZXctPmNvbXBvc2l0b3IoKS0+dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRh
dGVPblNjcm9sbCk7CiAgICAgfQogI2VuZGlmCiB9CkBAIC0yMDMzLDkgKzIwMjMsOSBAQCB2b2lk
IEZyYW1lVmlldzo6dmlzaWJsZUNvbnRlbnRzUmVzaXplZCgpCiAgICAgICAgIGxheW91dCgpOwog
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmIChSZW5kZXJWaWV3KiBy
b290ID0gcm9vdFJlbmRlcmVyKHRoaXMpKSB7Ci0gICAgICAgIGlmIChyb290LT51c2VzQ29tcG9z
aXRpbmcoKSkKLSAgICAgICAgICAgIHJvb3QtPmNvbXBvc2l0b3IoKS0+ZnJhbWVWaWV3RGlkQ2hh
bmdlU2l6ZSgpOworICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVy
VmlldygpKSB7CisgICAgICAgIGlmIChyZW5kZXJWaWV3LT51c2VzQ29tcG9zaXRpbmcoKSkKKyAg
ICAgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+ZnJhbWVWaWV3RGlkQ2hhbmdlU2l6
ZSgpOwogICAgIH0KICNlbmRpZgogfQpAQCAtMjI1Miw4ICsyMjQyLDggQEAgdm9pZCBGcmFtZVZp
ZXc6OnNjaGVkdWxlUmVsYXlvdXRPZlN1YnRyZWUoUmVuZGVyT2JqZWN0KiByZWxheW91dFJvb3Qp
CiB7CiAgICAgQVNTRVJUKG1fZnJhbWUtPnZpZXcoKSA9PSB0aGlzKTsKIAotICAgIFJlbmRlclZp
ZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7Ci0gICAgaWYgKHJvb3QgJiYgcm9vdC0+bmVl
ZHNMYXlvdXQoKSkgeworICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJW
aWV3KCk7CisgICAgaWYgKHJlbmRlclZpZXcgJiYgcmVuZGVyVmlldy0+bmVlZHNMYXlvdXQoKSkg
ewogICAgICAgICBpZiAocmVsYXlvdXRSb290KQogICAgICAgICAgICAgcmVsYXlvdXRSb290LT5t
YXJrQ29udGFpbmluZ0Jsb2Nrc0ZvckxheW91dChmYWxzZSk7CiAgICAgICAgIHJldHVybjsKQEAg
LTIzMDMsOSArMjI5Myw5IEBAIGJvb2wgRnJhbWVWaWV3OjpuZWVkc0xheW91dCgpIGNvbnN0CiAg
ICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBSZW5kZXJWaWV3
KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpOworICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcg
PSB0aGlzLT5yZW5kZXJWaWV3KCk7CiAgICAgcmV0dXJuIGxheW91dFBlbmRpbmcoKQotICAgICAg
ICB8fCAocm9vdCAmJiByb290LT5uZWVkc0xheW91dCgpKQorICAgICAgICB8fCAocmVuZGVyVmll
dyAmJiByZW5kZXJWaWV3LT5uZWVkc0xheW91dCgpKQogICAgICAgICB8fCBtX2xheW91dFJvb3QK
ICAgICAgICAgfHwgKG1fZGVmZXJTZXROZWVkc0xheW91dHMgJiYgbV9zZXROZWVkc0xheW91dFdh
c0RlZmVycmVkKTsKIH0KQEAgLTIzMTcsOCArMjMwNyw4IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRO
ZWVkc0xheW91dCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoUmVuZGVyVmll
dyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKSkKLSAgICAgICAgcm9vdC0+c2V0TmVlZHNMYXlv
dXQodHJ1ZSk7CisgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJW
aWV3KCkpCisgICAgICAgIHJlbmRlclZpZXctPnNldE5lZWRzTGF5b3V0KHRydWUpOwogfQogCiB2
b2lkIEZyYW1lVmlldzo6dW5zY2hlZHVsZVJlbGF5b3V0KCkKQEAgLTI1NjIsOSArMjU1Miw5IEBA
IHZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkKICAgICAvLyB3aXRoIGRp
ZExheW91dChMYXlvdXRNaWxlc3RvbmVzKS4KICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50
KCktPmRpc3BhdGNoRGlkTGF5b3V0KCk7CiAKLSAgICBSZW5kZXJWaWV3KiByb290ID0gcm9vdFJl
bmRlcmVyKHRoaXMpOwotICAgIGlmIChyb290KQotICAgICAgICByb290LT51cGRhdGVXaWRnZXRQ
b3NpdGlvbnMoKTsKKyAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmll
dygpOworICAgIGlmIChyZW5kZXJWaWV3KQorICAgICAgICByZW5kZXJWaWV3LT51cGRhdGVXaWRn
ZXRQb3NpdGlvbnMoKTsKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbWF4VXBk
YXRlV2lkZ2V0c0l0ZXJhdGlvbnM7IGkrKykgewogICAgICAgICBpZiAodXBkYXRlV2lkZ2V0cygp
KQpAQCAtMjU3NywyMyArMjU2NywyMSBAQCB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlv
dXRUYXNrcygpCiAgICAgfQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAg
IGlmIChSZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpKSB7Ci0gICAgICAgIGlm
IChyb290LT51c2VzQ29tcG9zaXRpbmcoKSkKLSAgICAgICAgICAgIHJvb3QtPmNvbXBvc2l0b3Io
KS0+ZnJhbWVWaWV3RGlkTGF5b3V0KCk7Ci0gICAgfQorICAgIGlmIChyZW5kZXJWaWV3ICYmIHJl
bmRlclZpZXctPnVzZXNDb21wb3NpdGluZygpKQorICAgICAgICByZW5kZXJWaWV3LT5jb21wb3Np
dG9yKCktPmZyYW1lVmlld0RpZExheW91dCgpOwogI2VuZGlmCiAKICAgICBzY3JvbGxUb0FuY2hv
cigpOwogCiAgICAgbV9hY3Rpb25TY2hlZHVsZXItPnJlc3VtZSgpOwogCi0gICAgaWYgKHJvb3Qg
JiYgIXJvb3QtPnByaW50aW5nKCkpIHsKKyAgICBpZiAocmVuZGVyVmlldyAmJiAhcmVuZGVyVmll
dy0+cHJpbnRpbmcoKSkgewogICAgICAgICBJbnRTaXplIGN1cnJlbnRTaXplOwogICAgICAgICBp
ZiAodXNlRml4ZWRMYXlvdXQoKSAmJiAhZml4ZWRMYXlvdXRTaXplKCkuaXNFbXB0eSgpICYmIGRl
bGVnYXRlc1Njcm9sbGluZygpKQogICAgICAgICAgICAgY3VycmVudFNpemUgPSBmaXhlZExheW91
dFNpemUoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY3VycmVudFNpemUgPSB2aXNpYmxl
Q29udGVudFJlY3QodHJ1ZSAvKmluY2x1ZGVTY3JvbGxiYXJzKi8pLnNpemUoKTsKLSAgICAgICAg
ZmxvYXQgY3VycmVudFpvb21GYWN0b3IgPSByb290LT5zdHlsZSgpLT56b29tKCk7CisgICAgICAg
IGZsb2F0IGN1cnJlbnRab29tRmFjdG9yID0gcmVuZGVyVmlldy0+c3R5bGUoKS0+em9vbSgpOwog
ICAgICAgICBib29sIHJlc2l6ZWQgPSAhbV9maXJzdExheW91dCAmJiAoY3VycmVudFNpemUgIT0g
bV9sYXN0Vmlld3BvcnRTaXplIHx8IGN1cnJlbnRab29tRmFjdG9yICE9IG1fbGFzdFpvb21GYWN0
b3IpOwogICAgICAgICBtX2xhc3RWaWV3cG9ydFNpemUgPSBjdXJyZW50U2l6ZTsKICAgICAgICAg
bV9sYXN0Wm9vbUZhY3RvciA9IGN1cnJlbnRab29tRmFjdG9yOwpAQCAtMzIzNCw4ICszMjIyLDgg
QEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUNvbnRyb2xUaW50cygpCiAgICAgaWYgKCFtX2ZyYW1l
IHx8IG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKTsKLSAgICBpZiAo
KHJvb3QgJiYgcm9vdC0+dGhlbWUoKS0+c3VwcG9ydHNDb250cm9sVGludHMoKSkgfHwgaGFzQ3Vz
dG9tU2Nyb2xsYmFycygpKQorICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5k
ZXJWaWV3KCk7CisgICAgaWYgKChyZW5kZXJWaWV3ICYmIHJlbmRlclZpZXctPnRoZW1lKCktPnN1
cHBvcnRzQ29udHJvbFRpbnRzKCkpIHx8IGhhc0N1c3RvbVNjcm9sbGJhcnMoKSkKICAgICAgICAg
cGFpbnRDb250cm9sVGludHMoKTsKIH0KIApAQCAtMzI5Myw4ICszMjgxLDggQEAgdm9pZCBGcmFt
ZVZpZXc6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogICAgICAgICBwLT5maWxsUmVjdChyZWN0LCBDb2xvcigweEZGLCAwLCAwKSwgQ29sb3JT
cGFjZURldmljZVJHQik7CiAjZW5kaWYKIAotICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVu
ZGVyZXIodGhpcyk7Ci0gICAgaWYgKCFyb290KSB7CisgICAgUmVuZGVyVmlldyogcmVuZGVyVmll
dyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKKyAgICBpZiAoIXJlbmRlclZpZXcpIHsKICAgICAgICAg
TE9HX0VSUk9SKCJjYWxsZWQgRnJhbWVWaWV3OjpwYWludCB3aXRoIG5pbCByZW5kZXJlciIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzMzNyw3ICszMzI1LDcgQEAgdm9pZCBGcmFtZVZp
ZXc6OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiByZWN0
KQogCiAgICAgLy8gbV9ub2RlVG9EcmF3IGlzIHVzZWQgdG8gZHJhdyBvbmx5IG9uZSBlbGVtZW50
IChhbmQgaXRzIGRlc2NlbmRhbnRzKQogICAgIFJlbmRlck9iamVjdCogZWx0UmVuZGVyZXIgPSBt
X25vZGVUb0RyYXcgPyBtX25vZGVUb0RyYXctPnJlbmRlcmVyKCkgOiAwOwotICAgIFJlbmRlckxh
eWVyKiByb290TGF5ZXIgPSByb290LT5sYXllcigpOworICAgIFJlbmRlckxheWVyKiByb290TGF5
ZXIgPSByZW5kZXJWaWV3LT5sYXllcigpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIFJlbmRlck9i
amVjdDo6U2V0TGF5b3V0TmVlZGVkRm9yYmlkZGVuU2NvcGUgZm9yYmlkU2V0TmVlZHNMYXlvdXQo
cm9vdExheWVyLT5yZW5kZXJlcigpKTsKQEAgLTM1MTEsMjMgKzM0OTksMjMgQEAgdm9pZCBGcmFt
ZVZpZXc6OmZvcmNlTGF5b3V0Rm9yUGFnaW5hdGlvbihjb25zdCBGbG9hdFNpemUmIHBhZ2VTaXpl
LCBjb25zdCBGbG9hdFMKIHsKICAgICAvLyBEdW1waW5nIGV4dGVybmFsUmVwcmVzZW50YXRpb24o
bV9mcmFtZS0+cmVuZGVyZXIoKSkuYXNjaWkoKSBpcyBhIGdvb2QgdHJpY2sgdG8gc2VlCiAgICAg
Ly8gdGhlIHN0YXRlIG9mIHRoaW5ncyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBsYXlvdXQKLSAgICBp
ZiAoUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKSkgewotICAgICAgICBmbG9h
dCBwYWdlTG9naWNhbFdpZHRoID0gcm9vdC0+c3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSA/IHBhZ2VTaXplLndpZHRoKCkgOiBwYWdlU2l6ZS5oZWlnaHQoKTsKLSAgICAgICAgZmxv
YXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSByb290LT5zdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5n
TW9kZSgpID8gcGFnZVNpemUuaGVpZ2h0KCkgOiBwYWdlU2l6ZS53aWR0aCgpOworICAgIGlmIChS
ZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKSB7CisgICAgICAgIGZs
b2F0IHBhZ2VMb2dpY2FsV2lkdGggPSByZW5kZXJWaWV3LT5zdHlsZSgpLT5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gcGFnZVNpemUud2lkdGgoKSA6IHBhZ2VTaXplLmhlaWdodCgpOworICAg
ICAgICBmbG9hdCBwYWdlTG9naWNhbEhlaWdodCA9IHJlbmRlclZpZXctPnN0eWxlKCktPmlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBwYWdlU2l6ZS5oZWlnaHQoKSA6IHBhZ2VTaXplLndpZHRo
KCk7CiAKICAgICAgICAgTGF5b3V0VW5pdCBmbG9vcmVkUGFnZUxvZ2ljYWxXaWR0aCA9IHN0YXRp
Y19jYXN0PExheW91dFVuaXQ+KHBhZ2VMb2dpY2FsV2lkdGgpOwogICAgICAgICBMYXlvdXRVbml0
IGZsb29yZWRQYWdlTG9naWNhbEhlaWdodCA9IHN0YXRpY19jYXN0PExheW91dFVuaXQ+KHBhZ2VM
b2dpY2FsSGVpZ2h0KTsKLSAgICAgICAgcm9vdC0+c2V0TG9naWNhbFdpZHRoKGZsb29yZWRQYWdl
TG9naWNhbFdpZHRoKTsKLSAgICAgICAgcm9vdC0+c2V0UGFnZUxvZ2ljYWxIZWlnaHQoZmxvb3Jl
ZFBhZ2VMb2dpY2FsSGVpZ2h0KTsKLSAgICAgICAgcm9vdC0+c2V0TmVlZHNMYXlvdXRBbmRQcmVm
V2lkdGhzUmVjYWxjKCk7CisgICAgICAgIHJlbmRlclZpZXctPnNldExvZ2ljYWxXaWR0aChmbG9v
cmVkUGFnZUxvZ2ljYWxXaWR0aCk7CisgICAgICAgIHJlbmRlclZpZXctPnNldFBhZ2VMb2dpY2Fs
SGVpZ2h0KGZsb29yZWRQYWdlTG9naWNhbEhlaWdodCk7CisgICAgICAgIHJlbmRlclZpZXctPnNl
dE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogICAgICAgICBmb3JjZUxheW91dCgp
OwogCiAgICAgICAgIC8vIElmIHdlIGRvbid0IGZpdCBpbiB0aGUgZ2l2ZW4gcGFnZSB3aWR0aCwg
d2UnbGwgbGF5IG91dCBhZ2Fpbi4gSWYgd2UgZG9uJ3QgZml0IGluIHRoZQogICAgICAgICAvLyBw
YWdlIHdpZHRoIHdoZW4gc2hydW5rLCB3ZSB3aWxsIGxheSBvdXQgYXQgbWF4aW11bSBzaHJpbmsg
YW5kIGNsaXAgZXh0cmEgY29udGVudC4KICAgICAgICAgLy8gRklYTUU6IFdlIGFyZSBhc3N1bWlu
ZyBhIHNocmluay10by1maXQgcHJpbnRpbmcgaW1wbGVtZW50YXRpb24uICBBIGNyb3BwaW5nCiAg
ICAgICAgIC8vIGltcGxlbWVudGF0aW9uIHNob3VsZCBub3QgZG8gdGhpcyEKLSAgICAgICAgYm9v
bCBob3Jpem9udGFsV3JpdGluZ01vZGUgPSByb290LT5zdHlsZSgpLT5pc0hvcml6b250YWxXcml0
aW5nTW9kZSgpOwotICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiBkb2N1bWVudFJlY3QgPSByb290
LT5kb2N1bWVudFJlY3QoKTsKKyAgICAgICAgYm9vbCBob3Jpem9udGFsV3JpdGluZ01vZGUgPSBy
ZW5kZXJWaWV3LT5zdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworICAgICAgICBj
b25zdCBMYXlvdXRSZWN0JiBkb2N1bWVudFJlY3QgPSByZW5kZXJWaWV3LT5kb2N1bWVudFJlY3Qo
KTsKICAgICAgICAgTGF5b3V0VW5pdCBkb2NMb2dpY2FsV2lkdGggPSBob3Jpem9udGFsV3JpdGlu
Z01vZGUgPyBkb2N1bWVudFJlY3Qud2lkdGgoKSA6IGRvY3VtZW50UmVjdC5oZWlnaHQoKTsKICAg
ICAgICAgaWYgKGRvY0xvZ2ljYWxXaWR0aCA+IHBhZ2VMb2dpY2FsV2lkdGgpIHsKICAgICAgICAg
ICAgIGludCBleHBlY3RlZFBhZ2VXaWR0aCA9IHN0ZDo6bWluPGZsb2F0Pihkb2N1bWVudFJlY3Qu
d2lkdGgoKSwgcGFnZVNpemUud2lkdGgoKSAqIG1heGltdW1TaHJpbmtGYWN0b3IpOwpAQCAtMzUz
OCwyNCArMzUyNiwyNCBAQCB2b2lkIEZyYW1lVmlldzo6Zm9yY2VMYXlvdXRGb3JQYWdpbmF0aW9u
KGNvbnN0IEZsb2F0U2l6ZSYgcGFnZVNpemUsIGNvbnN0IEZsb2F0UwogCiAgICAgICAgICAgICBm
bG9vcmVkUGFnZUxvZ2ljYWxXaWR0aCA9IHN0YXRpY19jYXN0PExheW91dFVuaXQ+KHBhZ2VMb2dp
Y2FsV2lkdGgpOwogICAgICAgICAgICAgZmxvb3JlZFBhZ2VMb2dpY2FsSGVpZ2h0ID0gc3RhdGlj
X2Nhc3Q8TGF5b3V0VW5pdD4ocGFnZUxvZ2ljYWxIZWlnaHQpOwotICAgICAgICAgICAgcm9vdC0+
c2V0TG9naWNhbFdpZHRoKGZsb29yZWRQYWdlTG9naWNhbFdpZHRoKTsKLSAgICAgICAgICAgIHJv
b3QtPnNldFBhZ2VMb2dpY2FsSGVpZ2h0KGZsb29yZWRQYWdlTG9naWNhbEhlaWdodCk7Ci0gICAg
ICAgICAgICByb290LT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKKyAgICAg
ICAgICAgIHJlbmRlclZpZXctPnNldExvZ2ljYWxXaWR0aChmbG9vcmVkUGFnZUxvZ2ljYWxXaWR0
aCk7CisgICAgICAgICAgICByZW5kZXJWaWV3LT5zZXRQYWdlTG9naWNhbEhlaWdodChmbG9vcmVk
UGFnZUxvZ2ljYWxIZWlnaHQpOworICAgICAgICAgICAgcmVuZGVyVmlldy0+c2V0TmVlZHNMYXlv
dXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiAgICAgICAgICAgICBmb3JjZUxheW91dCgpOwogCi0g
ICAgICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiB1cGRhdGVkRG9jdW1lbnRSZWN0ID0gcm9vdC0+
ZG9jdW1lbnRSZWN0KCk7CisgICAgICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiB1cGRhdGVkRG9j
dW1lbnRSZWN0ID0gcmVuZGVyVmlldy0+ZG9jdW1lbnRSZWN0KCk7CiAgICAgICAgICAgICBMYXlv
dXRVbml0IGRvY0xvZ2ljYWxIZWlnaHQgPSBob3Jpem9udGFsV3JpdGluZ01vZGUgPyB1cGRhdGVk
RG9jdW1lbnRSZWN0LmhlaWdodCgpIDogdXBkYXRlZERvY3VtZW50UmVjdC53aWR0aCgpOwogICAg
ICAgICAgICAgTGF5b3V0VW5pdCBkb2NMb2dpY2FsVG9wID0gaG9yaXpvbnRhbFdyaXRpbmdNb2Rl
ID8gdXBkYXRlZERvY3VtZW50UmVjdC55KCkgOiB1cGRhdGVkRG9jdW1lbnRSZWN0LngoKTsKICAg
ICAgICAgICAgIExheW91dFVuaXQgZG9jTG9naWNhbFJpZ2h0ID0gaG9yaXpvbnRhbFdyaXRpbmdN
b2RlID8gdXBkYXRlZERvY3VtZW50UmVjdC5tYXhYKCkgOiB1cGRhdGVkRG9jdW1lbnRSZWN0Lm1h
eFkoKTsKICAgICAgICAgICAgIExheW91dFVuaXQgY2xpcHBlZExvZ2ljYWxMZWZ0ID0gMDsKLSAg
ICAgICAgICAgIGlmICghcm9vdC0+c3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQor
ICAgICAgICAgICAgaWYgKCFyZW5kZXJWaWV3LT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKCkpCiAgICAgICAgICAgICAgICAgY2xpcHBlZExvZ2ljYWxMZWZ0ID0gZG9jTG9naWNhbFJp
Z2h0IC0gcGFnZUxvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgIExheW91dFJlY3Qgb3ZlcmZsb3co
Y2xpcHBlZExvZ2ljYWxMZWZ0LCBkb2NMb2dpY2FsVG9wLCBwYWdlTG9naWNhbFdpZHRoLCBkb2NM
b2dpY2FsSGVpZ2h0KTsKIAogICAgICAgICAgICAgaWYgKCFob3Jpem9udGFsV3JpdGluZ01vZGUp
CiAgICAgICAgICAgICAgICAgb3ZlcmZsb3cgPSBvdmVyZmxvdy50cmFuc3Bvc2VkUmVjdCgpOwot
ICAgICAgICAgICAgcm9vdC0+Y2xlYXJMYXlvdXRPdmVyZmxvdygpOwotICAgICAgICAgICAgcm9v
dC0+YWRkTGF5b3V0T3ZlcmZsb3cob3ZlcmZsb3cpOyAvLyBUaGlzIGlzIGhvdyB3ZSBjbGlwIGlu
IGNhc2Ugd2Ugb3ZlcmZsb3cgYWdhaW4uCisgICAgICAgICAgICByZW5kZXJWaWV3LT5jbGVhckxh
eW91dE92ZXJmbG93KCk7CisgICAgICAgICAgICByZW5kZXJWaWV3LT5hZGRMYXlvdXRPdmVyZmxv
dyhvdmVyZmxvdyk7IC8vIFRoaXMgaXMgaG93IHdlIGNsaXAgaW4gY2FzZSB3ZSBvdmVyZmxvdyBh
Z2Fpbi4KICAgICAgICAgfQogICAgIH0KIApAQCAtMzU2NSwxOSArMzU1MywyMiBAQCB2b2lkIEZy
YW1lVmlldzo6Zm9yY2VMYXlvdXRGb3JQYWdpbmF0aW9uKGNvbnN0IEZsb2F0U2l6ZSYgcGFnZVNp
emUsIGNvbnN0IEZsb2F0UwogCiB2b2lkIEZyYW1lVmlldzo6YWRqdXN0UGFnZUhlaWdodERlcHJl
Y2F0ZWQoZmxvYXQgKm5ld0JvdHRvbSwgZmxvYXQgb2xkVG9wLCBmbG9hdCBvbGRCb3R0b20sIGZs
b2F0IC8qYm90dG9tTGltaXQqLykKIHsKLSAgICBpZiAoUmVuZGVyVmlldyogcm9vdCA9IHJvb3RS
ZW5kZXJlcih0aGlzKSkgewotICAgICAgICAvLyBVc2UgYSBjb250ZXh0IHdpdGggcGFpbnRpbmcg
ZGlzYWJsZWQuCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KChQbGF0Zm9ybUdyYXBo
aWNzQ29udGV4dCopMCk7Ci0gICAgICAgIHJvb3QtPnNldFRydW5jYXRlZEF0KHN0YXRpY19jYXN0
PGludD4oZmxvb3JmKG9sZEJvdHRvbSkpKTsKLSAgICAgICAgSW50UmVjdCBkaXJ0eVJlY3QoMCwg
c3RhdGljX2Nhc3Q8aW50PihmbG9vcmYob2xkVG9wKSksIHJvb3QtPmxheW91dE92ZXJmbG93UmVj
dCgpLm1heFgoKSwgc3RhdGljX2Nhc3Q8aW50PihjZWlsZihvbGRCb3R0b20gLSBvbGRUb3ApKSk7
Ci0gICAgICAgIHJvb3QtPnNldFByaW50UmVjdChkaXJ0eVJlY3QpOwotICAgICAgICByb290LT5s
YXllcigpLT5wYWludCgmY29udGV4dCwgZGlydHlSZWN0KTsKLSAgICAgICAgKm5ld0JvdHRvbSA9
IHJvb3QtPmJlc3RUcnVuY2F0ZWRBdCgpOwotICAgICAgICBpZiAoKm5ld0JvdHRvbSA9PSAwKQot
ICAgICAgICAgICAgKm5ld0JvdHRvbSA9IG9sZEJvdHRvbTsKLSAgICAgICAgcm9vdC0+c2V0UHJp
bnRSZWN0KEludFJlY3QoKSk7Ci0gICAgfSBlbHNlCisgICAgUmVuZGVyVmlldyogcmVuZGVyVmll
dyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKKyAgICBpZiAoIXJlbmRlclZpZXcpIHsKICAgICAgICAg
Km5ld0JvdHRvbSA9IG9sZEJvdHRvbTsKKyAgICAgICAgcmV0dXJuOworCisgICAgfQorICAgIC8v
IFVzZSBhIGNvbnRleHQgd2l0aCBwYWludGluZyBkaXNhYmxlZC4KKyAgICBHcmFwaGljc0NvbnRl
eHQgY29udGV4dCgoUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqKTApOworICAgIHJlbmRlclZpZXct
PnNldFRydW5jYXRlZEF0KHN0YXRpY19jYXN0PGludD4oZmxvb3JmKG9sZEJvdHRvbSkpKTsKKyAg
ICBJbnRSZWN0IGRpcnR5UmVjdCgwLCBzdGF0aWNfY2FzdDxpbnQ+KGZsb29yZihvbGRUb3ApKSwg
cmVuZGVyVmlldy0+bGF5b3V0T3ZlcmZsb3dSZWN0KCkubWF4WCgpLCBzdGF0aWNfY2FzdDxpbnQ+
KGNlaWxmKG9sZEJvdHRvbSAtIG9sZFRvcCkpKTsKKyAgICByZW5kZXJWaWV3LT5zZXRQcmludFJl
Y3QoZGlydHlSZWN0KTsKKyAgICByZW5kZXJWaWV3LT5sYXllcigpLT5wYWludCgmY29udGV4dCwg
ZGlydHlSZWN0KTsKKyAgICAqbmV3Qm90dG9tID0gcmVuZGVyVmlldy0+YmVzdFRydW5jYXRlZEF0
KCk7CisgICAgaWYgKCEqbmV3Qm90dG9tKQorICAgICAgICAqbmV3Qm90dG9tID0gb2xkQm90dG9t
OworICAgIHJlbmRlclZpZXctPnNldFByaW50UmVjdChJbnRSZWN0KCkpOwogfQogCiBJbnRSZWN0
IEZyYW1lVmlldzo6Y29udmVydEZyb21SZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRl
cmVyLCBjb25zdCBJbnRSZWN0JiByZW5kZXJlclJlY3QpIGNvbnN0CkBAIC0zNzY2LDEwICszNzU3
LDggQEAgdm9pZCBGcmFtZVZpZXc6OnJlc2V0VHJhY2tlZFJlcGFpbnRzKCkKIHsKICAgICBtX3Ry
YWNrZWRSZXBhaW50UmVjdHMuY2xlYXIoKTsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCi0gICAgaWYgKFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcykpIHsKLSAg
ICAgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBjb21wb3NpdG9yID0gcm9vdC0+Y29tcG9zaXRv
cigpOwotICAgICAgICBjb21wb3NpdG9yLT5yZXNldFRyYWNrZWRSZXBhaW50UmVjdHMoKTsKLSAg
ICB9CisgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkp
CisgICAgICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+cmVzZXRUcmFja2VkUmVwYWludFJl
Y3RzKCk7CiAjZW5kaWYKIH0KIApAQCAtMzg2NCwyMCArMzg1MywyMCBAQCBib29sIEZyYW1lVmll
dzo6d2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAKIGJv
b2wgRnJhbWVWaWV3Ojppc1ZlcnRpY2FsRG9jdW1lbnQoKSBjb25zdAogewotICAgIFJlbmRlclZp
ZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7Ci0gICAgaWYgKCFyb290KQorICAgIFJlbmRl
clZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7CisgICAgaWYgKCFyZW5kZXJW
aWV3KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiByb290LT5zdHlsZSgpLT5p
c0hvcml6b250YWxXcml0aW5nTW9kZSgpOworICAgIHJldHVybiByZW5kZXJWaWV3LT5zdHlsZSgp
LT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwogfQogCiBib29sIEZyYW1lVmlldzo6aXNGbGlw
cGVkRG9jdW1lbnQoKSBjb25zdAogewotICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVy
ZXIodGhpcyk7Ci0gICAgaWYgKCFyb290KQorICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0
aGlzLT5yZW5kZXJWaWV3KCk7CisgICAgaWYgKCFyZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICByZXR1cm4gcm9vdC0+c3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tzV3JpdGlu
Z01vZGUoKTsKKyAgICByZXR1cm4gcmVuZGVyVmlldy0+c3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tz
V3JpdGluZ01vZGUoKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6Om5vdGlmeVdpZGdldHNJbkFsbEZy
YW1lcyhXaWRnZXROb3RpZmljYXRpb24gbm90aWZpY2F0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKaW5kZXggZDEzYTc2NzkwODNlZDRmZWY2OTVmOWIwZTMwMzhhYzc0ZGNiZjgzNy4uZjEwOWM1
ZjhlZTZmM2MwZmZjMjExODM3YTNkNTc5OGMyNmQxOWYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCkBAIC0zOCwxMSArMzgsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENv
bG9yOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRmxvYXRTaXplOwotY2xh
c3MgRnJhbWU7CiBjbGFzcyBGcmFtZUFjdGlvblNjaGVkdWxlcjsKIGNsYXNzIEtVUkw7CiBjbGFz
cyBOb2RlOwpAQCAtNzksNiArNzcsOCBAQCBwdWJsaWM6CiAgICAgRnJhbWUqIGZyYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9mcmFtZS5nZXQoKTsgfQogICAgIHZvaWQgY2xlYXJGcmFtZSgpOwogCisg
ICAgUmVuZGVyVmlldyogcmVuZGVyVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWUgPyBtX2Zy
YW1lLT5jb250ZW50UmVuZGVyZXIoKSA6IDA7IH0KKwogICAgIGludCBtYXBGcm9tTGF5b3V0VG9D
U1NVbml0cyhMYXlvdXRVbml0KTsKICAgICBMYXlvdXRVbml0IG1hcEZyb21DU1NUb0xheW91dFVu
aXRzKGludCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>