<?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>100081</bug_id>
          
          <creation_ts>2012-10-22 23:38:27 -0700</creation_ts>
          <short_desc>[EFL][WK2] Make page load client a C++ class</short_desc>
          <delta_ts>2012-10-23 08:39:49 -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>WebKit EFL</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>
          
          <blocked>99992</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>748309</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-22 23:38:27 -0700</bug_when>
    <thetext>Move page load client to UIProcess/efl instead of UIProcess/API/efl and port it to C++ style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748333</commentid>
    <comment_count>1</comment_count>
      <attachid>170074</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-23 00:38:19 -0700</bug_when>
    <thetext>Created attachment 170074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748356</commentid>
    <comment_count>2</comment_count>
      <attachid>170074</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 01:12:06 -0700</bug_when>
    <thetext>Comment on attachment 170074
Patch

Clearing flags on attachment: 170074

Committed r132189: &lt;http://trac.webkit.org/changeset/132189&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748357</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 01:12:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748674</commentid>
    <comment_count>4</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-10-23 08:39:49 -0700</bug_when>
    <thetext>*** Bug 100035 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170074</attachid>
            <date>2012-10-23 00:38:19 -0700</date>
            <delta_ts>2012-10-23 01:12:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>100081_pageLoadClient_cpp.patch</filename>
            <type>text/plain</type>
            <size>25084</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2ZGM3YjRkLi41OGUxYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTItMTAtMjMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIE1ha2UgcGFnZSBsb2FkIGNsaWVudCBhIEMrKyBj
bGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAw
MDgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFr
ZSBwYWdlIGxvYWQgY2xpZW50IGEgQysrIGNsYXNzIGFuZCBtb3ZlIGl0CisgICAgICAgIHVwIHRv
IFVJUHJvY2Vzcy9lZmwgc2luY2UgaXQgaXMgbm90IHJlYWxseSBwYXJ0CisgICAgICAgIG9mIHRo
ZSBwdWJsaWMgQVBJLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwOgorICAgICAgICAoRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19pbml0aWFsaXplKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50X3ByaXZhdGUuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VMb2FkQ2xpZW50RWZsLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGll
bnQuY3BwLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6dG9QYWdlTG9hZENs
aWVudEVmbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VMb2FkQ2xpZW50RWZsOjpkaWRSZWNlaXZl
VGl0bGVGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VMb2FkQ2xpZW50RWZsOjpkaWRS
ZWNlaXZlSW50ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlTG9hZENsaWVudEVm
bDo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdl
TG9hZENsaWVudEVmbDo6ZGlkQ2hhbmdlUHJvZ3Jlc3MpOgorICAgICAgICAoV2ViS2l0OjpQYWdl
TG9hZENsaWVudEVmbDo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUxvYWRDbGllbnRFZmw6OmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlTG9hZENsaWVudEVmbDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VMb2FkQ2xpZW50RWZsOjpkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VMb2FkQ2xpZW50RWZsOjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlTG9hZENsaWVudEVmbDo6ZGlkQ2hhbmdlQmFja0Zv
cndhcmRMaXN0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUxvYWRDbGllbnRFZmw6OmRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VMb2FkQ2xp
ZW50RWZsOjpQYWdlTG9hZENsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdl
TG9hZENsaWVudEVmbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChQYWdl
TG9hZENsaWVudEVmbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VMb2FkQ2xpZW50RWZsOjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlTG9hZENsaWVudEVmbDo6dmlldyk6CisKIDIwMTIt
MTAtMjIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBI
YW5kbGUgQXJndW1lbnRDb2RlciB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbnMgdGhhdCB0YWtlIHRo
ZSBBcmd1bWVudEVuY29kZXIgYXMgYSByZWZlcmVuY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UK
aW5kZXggMTYzODU3Zi4uM2IwNjJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTcz
LDEyICs3MywxMiBAQCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19maW5k
X2NsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19mb3JtX2NsaWVudC5j
cHAKLSAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfdWlfY2xpZW50LmNwcAogCiAgICAgVUlQcm9jZXNzL2NhaXJv
L0JhY2tpbmdTdG9yZUNhaXJvLmNwcAogCisgICAgVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVu
dEVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1Jlc291cmNlTG9hZENsaWVudEVmbC5jcHAKICAg
ICBVSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvV2Vi
Q29udGV4dEVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3LmNwcAppbmRleCAxYWI4OWFmLi5mYzk1NWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAi
TmF0aXZlV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIK
ICNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUgIlBhZ2VMb2FkQ2xpZW50RWZs
LmgiCiAjaW5jbHVkZSAiUmVmUHRyRWZsLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkQ2xpZW50
RWZsLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCkBAIC01Miw3ICs1Myw2IEBACiAjaW5jbHVk
ZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19maW5kX2NsaWVu
dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfZm9ybV9jbGllbnRfcHJpdmF0ZS5oIgot
I2luY2x1ZGUgImV3a192aWV3X2xvYWRlcl9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3
a192aWV3X3BvbGljeV9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3ByaXZh
dGUuaCIKICNpbmNsdWRlICJld2tfdmlld191aV9jbGllbnRfcHJpdmF0ZS5oIgpAQCAtMTE4LDYg
KzExOCw3IEBAIHN0cnVjdCBFd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIE93blB0cjxQYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsPiBwYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
OwogI2VuZGlmCiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gcGFnZVByb3h5OworICAgIE93blB0
cjxQYWdlTG9hZENsaWVudEVmbD4gcGFnZUxvYWRDbGllbnQ7CiAgICAgT3duUHRyPFJlc291cmNl
TG9hZENsaWVudEVmbD4gcmVzb3VyY2VMb2FkQ2xpZW50OwogCiAgICAgV0tFaW5hU2hhcmVkU3Ry
aW5nIHVybDsKQEAgLTgzMSwxMyArODMyLDEzIEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0
aWFsaXplKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfQ29udGV4dCogY29udGV4dCwgV0tQCiAg
ICAgV0tQYWdlUmVmIHdrUGFnZSA9IHRvQVBJKHByaXYtPnBhZ2VQcm94eS5nZXQoKSk7CiAgICAg
ZXdrX3ZpZXdfZmluZF9jbGllbnRfYXR0YWNoKHdrUGFnZSwgZXdrVmlldyk7CiAgICAgZXdrX3Zp
ZXdfZm9ybV9jbGllbnRfYXR0YWNoKHdrUGFnZSwgZXdrVmlldyk7Ci0gICAgZXdrX3ZpZXdfbG9h
ZGVyX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICAgICBld2tfdmlld19wb2xpY3lf
Y2xpZW50X2F0dGFjaCh3a1BhZ2UsIGV3a1ZpZXcpOwogICAgIGV3a192aWV3X3VpX2NsaWVudF9h
dHRhY2god2tQYWdlLCBld2tWaWV3KTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAg
cHJpdi0+cGFnZVByb3h5LT5mdWxsU2NyZWVuTWFuYWdlcigpLT5zZXRXZWJWaWV3KGV3a1ZpZXcp
OwogICAgIGV3a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KHByaXYtPnNldHRpbmdz
LmdldCgpLCB0cnVlKTsKICNlbmRpZgorICAgIHByaXYtPnBhZ2VMb2FkQ2xpZW50ID0gUGFnZUxv
YWRDbGllbnRFZmw6OmNyZWF0ZShld2tWaWV3KTsKICAgICBwcml2LT5yZXNvdXJjZUxvYWRDbGll
bnQgPSBSZXNvdXJjZUxvYWRDbGllbnRFZmw6OmNyZWF0ZShld2tWaWV3KTsKIAogICAgIC8qIExp
c3RlbiBmb3IgZmF2aWNvbiBjaGFuZ2VzICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDZkNWEzLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTY5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJld2tfdmlldy5oIgotCi0jaW5jbHVkZSAiV0tGcmFtZS5oIgot
I2luY2x1ZGUgImV3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRlLmgiCi0jaW5jbHVkZSAiZXdr
X2Vycm9yX3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tfaW50ZW50LmgiCi0jaW5jbHVkZSAiZXdr
X2ludGVudF9wcml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX2ludGVudF9zZXJ2aWNlLmgiCi0jaW5j
bHVkZSAiZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tfdmlld19s
b2FkZXJfY2xpZW50X3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCi0j
aW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQot
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tU
eXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIGlmICghV0tGcmFtZUlzTWFp
bkZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRXZhc19PYmplY3QqIGV3a1Zp
ZXcgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudElu
Zm8pKTsKLSAgICBld2tfdmlld190aXRsZV9jaGFuZ2VkKGV3a1ZpZXcsIHRvSW1wbCh0aXRsZSkt
PnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotfQotCi0jaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQot
c3RhdGljIHZvaWQgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJl
ZiwgV0tJbnRlbnREYXRhUmVmIGludGVudCwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQotewotICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmpl
Y3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Ci0gICAgUmVmUHRyPEV3a19JbnRl
bnQ+IGV3a0ludGVudCA9IEV3a19JbnRlbnQ6OmNyZWF0ZShpbnRlbnQpOwotICAgIGV3a192aWV3
X2ludGVudF9yZXF1ZXN0X25ldyhld2tWaWV3LCBld2tJbnRlbnQuZ2V0KCkpOwotfQotI2VuZGlm
Ci0KLSNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQotc3RhdGljIHZvaWQgcmVnaXN0ZXJJbnRl
bnRTZXJ2aWNlRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ludGVudFNlcnZpY2VJ
bmZvUmVmIHNlcnZpY2VJbmZvLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17
Ci0gICAgRXZhc19PYmplY3QqIGV3a1ZpZXcgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKLSAgICBSZWZQdHI8RXdrX0ludGVudF9TZXJ2
aWNlPiBld2tJbnRlbnRTZXJ2aWNlID0gRXdrX0ludGVudF9TZXJ2aWNlOjpjcmVhdGUoc2Vydmlj
ZUluZm8pOwotICAgIGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lzdGVyKGV3a1ZpZXcsIGV3
a0ludGVudFNlcnZpY2UuZ2V0KCkpOwotfQotI2VuZGlmCi0KLXN0YXRpYyB2b2lkIGRpZENoYW5n
ZVByb2dyZXNzKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAg
IEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9j
YXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Ci0gICAgZXdrX3ZpZXdfbG9hZF9wcm9ncmVzc19jaGFu
Z2VkKGV3a1ZpZXcsIFdLUGFnZUdldEVzdGltYXRlZFByb2dyZXNzKHBhZ2UpKTsKLX0KLQotc3Rh
dGljIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKLXsKLSAg
ICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9j
YXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Ci0gICAgZXdrX3ZpZXdfbG9hZF9maW5pc2hlZChld2tW
aWV3KTsKLX0KLQotc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3IsIFdLVHlwZVJlZiwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKLXsKLSAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFt
ZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGlj
X2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Ci0gICAg
T3duUHRyPEV3a19FcnJvcj4gZXdrRXJyb3IgPSBFd2tfRXJyb3I6OmNyZWF0ZShlcnJvcik7Ci0g
ICAgZXdrX3ZpZXdfbG9hZF9lcnJvcihld2tWaWV3LCBld2tFcnJvci5nZXQoKSk7Ci0gICAgZXdr
X3ZpZXdfbG9hZF9maW5pc2hlZChld2tWaWV3KTsKLX0KLQotc3RhdGljIHZvaWQgZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlw
ZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgaWYgKCFX
S0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBFdmFzX09i
amVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpOwotICAgIGV3a192aWV3X2xvYWRfcHJvdmlzaW9uYWxfc3RhcnRlZChl
d2tWaWV3KTsKLX0KLQotc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVS
ZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIGlmICghV0tG
cmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+
KGNsaWVudEluZm8pKTsKLSAgICBld2tfdmlld19sb2FkX3Byb3Zpc2lvbmFsX3JlZGlyZWN0KGV3
a1ZpZXcpOwotfQotCi1zdGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVycm9yLCBX
S1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgaWYgKCFXS0ZyYW1lSXNN
YWluRnJhbWUoZnJhbWUpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBFdmFzX09iamVjdCogZXdr
VmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpOwotICAgIE93blB0cjxFd2tfRXJyb3I+IGV3a0Vycm9yID0gRXdrX0Vycm9yOjpjcmVh
dGUoZXJyb3IpOwotICAgIGV3a192aWV3X2xvYWRfcHJvdmlzaW9uYWxfZmFpbGVkKGV3a1ZpZXcs
IGV3a0Vycm9yLmdldCgpKTsKLX0KLQotc3RhdGljIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRM
aXN0KFdLUGFnZVJlZiwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGFkZGVkSXRlbSwgV0tBcnJh
eVJlZiByZW1vdmVkSXRlbXMsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgRXZhc19P
YmplY3QqIGV3a1ZpZXcgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9p
ZCo+KGNsaWVudEluZm8pKTsKLSAgICBBU1NFUlQoZXdrVmlldyk7Ci0KLSAgICBFd2tfQmFja19G
b3J3YXJkX0xpc3QqIGxpc3QgPSBld2tfdmlld19iYWNrX2ZvcndhcmRfbGlzdF9nZXQoZXdrVmll
dyk7Ci0gICAgQVNTRVJUKGxpc3QpOwotICAgIGxpc3QtPnVwZGF0ZShhZGRlZEl0ZW0sIHJlbW92
ZWRJdGVtcyk7Ci0KLSAgICBld2tfdmlld19iYWNrX2ZvcndhcmRfbGlzdF9jaGFuZ2VkKGV3a1Zp
ZXcpOwotfQotCi1zdGF0aWMgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUo
V0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBl
LCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgaWYgKCFXS0ZyYW1l
SXNNYWluRnJhbWUoZnJhbWUpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBFdmFzX09iamVjdCog
ZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xp
ZW50SW5mbykpOwotICAgIGV3a192aWV3X3VybF91cGRhdGUoZXdrVmlldyk7Ci19Ci0KLXZvaWQg
ZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2goV0tQYWdlUmVmIHBhZ2VSZWYsIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3KQotewotICAgIFdLUGFnZUxvYWRlckNsaWVudCBsb2FkQ2xpZW50OwotICAg
IG1lbXNldCgmbG9hZENsaWVudCwgMCwgc2l6ZW9mKFdLUGFnZUxvYWRlckNsaWVudCkpOwotICAg
IGxvYWRDbGllbnQudmVyc2lvbiA9IGtXS1BhZ2VMb2FkZXJDbGllbnRDdXJyZW50VmVyc2lvbjsK
LSAgICBsb2FkQ2xpZW50LmNsaWVudEluZm8gPSBld2tWaWV3OwotICAgIGxvYWRDbGllbnQuZGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWUgPSBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZTsKLSNpZiBFTkFC
TEUoV0VCX0lOVEVOVFMpCi0gICAgbG9hZENsaWVudC5kaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUg
PSBkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWU7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoV0VCX0lOVEVO
VFNfVEFHKQotICAgIGxvYWRDbGllbnQucmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUgPSBy
ZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZTsKLSNlbmRpZgotICAgIGxvYWRDbGllbnQuZGlk
U3RhcnRQcm9ncmVzcyA9IGRpZENoYW5nZVByb2dyZXNzOwotICAgIGxvYWRDbGllbnQuZGlkQ2hh
bmdlUHJvZ3Jlc3MgPSBkaWRDaGFuZ2VQcm9ncmVzczsKLSAgICBsb2FkQ2xpZW50LmRpZEZpbmlz
aFByb2dyZXNzID0gZGlkQ2hhbmdlUHJvZ3Jlc3M7Ci0gICAgbG9hZENsaWVudC5kaWRGaW5pc2hM
b2FkRm9yRnJhbWUgPSBkaWRGaW5pc2hMb2FkRm9yRnJhbWU7Ci0gICAgbG9hZENsaWVudC5kaWRG
YWlsTG9hZFdpdGhFcnJvckZvckZyYW1lID0gZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZTsK
LSAgICBsb2FkQ2xpZW50LmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgPSBkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOwotICAgIGxvYWRDbGllbnQuZGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgPSBkaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZTsKLSAgICBsb2FkQ2xpZW50LmRpZEZhaWxQ
cm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSA9IGRpZEZhaWxQcm92aXNpb25hbExvYWRX
aXRoRXJyb3JGb3JGcmFtZTsKLSAgICBsb2FkQ2xpZW50LmRpZENoYW5nZUJhY2tGb3J3YXJkTGlz
dCA9IGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdDsKLSAgICBsb2FkQ2xpZW50LmRpZFNhbWVEb2N1
bWVudE5hdmlnYXRpb25Gb3JGcmFtZSA9IGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZTsKLSAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHBhZ2VSZWYsICZsb2FkQ2xpZW50KTsK
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
X2xvYWRlcl9jbGllbnRfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9wcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDYxNWMwMTkuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9wcml2YXRlLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIGV3a192aWV3X2xv
YWRlcl9jbGllbnRfcHJpdmF0ZV9oCi0jZGVmaW5lIGV3a192aWV3X2xvYWRlcl9jbGllbnRfcHJp
dmF0ZV9oCi0KLSNpbmNsdWRlIDxFdmFzLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4K
LQotdm9pZCBld2tfdmlld19sb2FkZXJfY2xpZW50X2F0dGFjaChXS1BhZ2VSZWYgcGFnZVJlZiwg
RXZhc19PYmplY3QqIGV3a1ZpZXcpOwotCi0jZW5kaWYgLy8gZXdrX3ZpZXdfbG9hZGVyX2NsaWVu
dF9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFn
ZUxvYWRDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlTG9h
ZENsaWVudEVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQyNWIx
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUxv
YWRDbGllbnRFZmwuY3BwCkBAIC0wLDAgKzEsMTc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFnZUxvYWRDbGllbnRFZmwuaCIKKworI2lu
Y2x1ZGUgIldLRnJhbWUuaCIKKyNpbmNsdWRlICJXS1BhZ2UuaCIKKyNpbmNsdWRlICJld2tfYmFj
a19mb3J3YXJkX2xpc3RfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a19lcnJvcl9wcml2YXRlLmgi
CisjaW5jbHVkZSAiZXdrX2ludGVudF9wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudF9z
ZXJ2aWNlX3ByaXZhdGUuaCIKKyNpbmNsdWRlICJld2tfdmlldy5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworc3RhdGljIGlubGluZSBQYWdlTG9hZENsaWVudEVmbCogdG9QYWdlTG9hZENsaWVu
dEVmbChjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxQ
YWdlTG9hZENsaWVudEVmbCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKK30KKwor
dm9pZCBQYWdlTG9hZENsaWVudEVmbDo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tQYWdlUmVm
LCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKQoreworICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgRXZhc19PYmplY3QqIGV3a1ZpZXcgPSB0b1BhZ2VMb2Fk
Q2xpZW50RWZsKGNsaWVudEluZm8pLT52aWV3KCk7CisgICAgZXdrX3ZpZXdfdGl0bGVfY2hhbmdl
ZChld2tWaWV3LCB0b0ltcGwodGl0bGUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKK30KKwor
I2lmIEVOQUJMRShXRUJfSU5URU5UUykKK3ZvaWQgUGFnZUxvYWRDbGllbnRFZmw6OmRpZFJlY2Vp
dmVJbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLSW50ZW50RGF0YVJlZiBp
bnRlbnQsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBFdmFzX09i
amVjdCogZXdrVmlldyA9IHRvUGFnZUxvYWRDbGllbnRFZmwoY2xpZW50SW5mbyktPnZpZXcoKTsK
KyAgICBSZWZQdHI8RXdrX0ludGVudD4gZXdrSW50ZW50ID0gRXdrX0ludGVudDo6Y3JlYXRlKGlu
dGVudCk7CisgICAgZXdrX3ZpZXdfaW50ZW50X3JlcXVlc3RfbmV3KGV3a1ZpZXcsIGV3a0ludGVu
dC5nZXQoKSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCit2b2lk
IFBhZ2VMb2FkQ2xpZW50RWZsOjpyZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZShXS1BhZ2VS
ZWYsIFdLRnJhbWVSZWYsIFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZUluZm8sIFdLVHlw
ZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBFdmFzX09iamVjdCogZXdrVmll
dyA9IHRvUGFnZUxvYWRDbGllbnRFZmwoY2xpZW50SW5mbyktPnZpZXcoKTsKKyAgICBSZWZQdHI8
RXdrX0ludGVudF9TZXJ2aWNlPiBld2tJbnRlbnRTZXJ2aWNlID0gRXdrX0ludGVudF9TZXJ2aWNl
OjpjcmVhdGUoc2VydmljZUluZm8pOworICAgIGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lz
dGVyKGV3a1ZpZXcsIGV3a0ludGVudFNlcnZpY2UuZ2V0KCkpOworfQorI2VuZGlmCisKK3ZvaWQg
UGFnZUxvYWRDbGllbnRFZmw6OmRpZENoYW5nZVByb2dyZXNzKFdLUGFnZVJlZiBwYWdlLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gdG9QYWdl
TG9hZENsaWVudEVmbChjbGllbnRJbmZvKS0+dmlldygpOworICAgIGV3a192aWV3X2xvYWRfcHJv
Z3Jlc3NfY2hhbmdlZChld2tWaWV3LCBXS1BhZ2VHZXRFc3RpbWF0ZWRQcm9ncmVzcyhwYWdlKSk7
Cit9CisKK3ZvaWQgUGFnZUxvYWRDbGllbnRFZmw6OmRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCit7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHRvUGFnZUxvYWRD
bGllbnRFZmwoY2xpZW50SW5mbyktPnZpZXcoKTsKKyAgICBld2tfdmlld19sb2FkX2ZpbmlzaGVk
KGV3a1ZpZXcpOworfQorCit2b2lkIFBhZ2VMb2FkQ2xpZW50RWZsOjpkaWRGYWlsTG9hZFdpdGhF
cnJvckZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJv
ciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGlmICghV0tGcmFt
ZUlzTWFpbkZyYW1lKGZyYW1lKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRXZhc19PYmplY3Qq
IGV3a1ZpZXcgPSB0b1BhZ2VMb2FkQ2xpZW50RWZsKGNsaWVudEluZm8pLT52aWV3KCk7CisgICAg
T3duUHRyPEV3a19FcnJvcj4gZXdrRXJyb3IgPSBFd2tfRXJyb3I6OmNyZWF0ZShlcnJvcik7Cisg
ICAgZXdrX3ZpZXdfbG9hZF9lcnJvcihld2tWaWV3LCBld2tFcnJvci5nZXQoKSk7CisgICAgZXdr
X3ZpZXdfbG9hZF9maW5pc2hlZChld2tWaWV3KTsKK30KKwordm9pZCBQYWdlTG9hZENsaWVudEVm
bDo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYg
ZnJhbWUsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7
CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICByZXR1cm47CisK
KyAgICBFdmFzX09iamVjdCogZXdrVmlldyA9IHRvUGFnZUxvYWRDbGllbnRFZmwoY2xpZW50SW5m
byktPnZpZXcoKTsKKyAgICBld2tfdmlld19sb2FkX3Byb3Zpc2lvbmFsX3N0YXJ0ZWQoZXdrVmll
dyk7Cit9CisKK3ZvaWQgUGFnZUxvYWRDbGllbnRFZmw6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBp
ZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIEV2
YXNfT2JqZWN0KiBld2tWaWV3ID0gdG9QYWdlTG9hZENsaWVudEVmbChjbGllbnRJbmZvKS0+dmll
dygpOworICAgIGV3a192aWV3X2xvYWRfcHJvdmlzaW9uYWxfcmVkaXJlY3QoZXdrVmlldyk7Cit9
CisKK3ZvaWQgUGFnZUxvYWRDbGllbnRFZmw6OmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJy
b3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3Is
IFdLVHlwZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBpZiAoIVdLRnJhbWVJ
c01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIEV2YXNfT2JqZWN0KiBl
d2tWaWV3ID0gdG9QYWdlTG9hZENsaWVudEVmbChjbGllbnRJbmZvKS0+dmlldygpOworICAgIE93
blB0cjxFd2tfRXJyb3I+IGV3a0Vycm9yID0gRXdrX0Vycm9yOjpjcmVhdGUoZXJyb3IpOworICAg
IGV3a192aWV3X2xvYWRfcHJvdmlzaW9uYWxfZmFpbGVkKGV3a1ZpZXcsIGV3a0Vycm9yLmdldCgp
KTsKK30KKwordm9pZCBQYWdlTG9hZENsaWVudEVmbDo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0
KFdLUGFnZVJlZiwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGFkZGVkSXRlbSwgV0tBcnJheVJl
ZiByZW1vdmVkSXRlbXMsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcgPSB0b1BhZ2VMb2FkQ2xpZW50RWZsKGNsaWVudEluZm8pLT52aWV3KCk7Cisg
ICAgQVNTRVJUKGV3a1ZpZXcpOworCisgICAgRXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBsaXN0ID0g
ZXdrX3ZpZXdfYmFja19mb3J3YXJkX2xpc3RfZ2V0KGV3a1ZpZXcpOworICAgIEFTU0VSVChsaXN0
KTsKKyAgICBsaXN0LT51cGRhdGUoYWRkZWRJdGVtLCByZW1vdmVkSXRlbXMpOworCisgICAgZXdr
X3ZpZXdfYmFja19mb3J3YXJkX2xpc3RfY2hhbmdlZChld2tWaWV3KTsKK30KKwordm9pZCBQYWdl
TG9hZENsaWVudEVmbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgV0tUeXBl
UmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGlmICghV0tGcmFtZUlzTWFpbkZy
YW1lKGZyYW1lKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRXZhc19PYmplY3QqIGV3a1ZpZXcg
PSB0b1BhZ2VMb2FkQ2xpZW50RWZsKGNsaWVudEluZm8pLT52aWV3KCk7CisgICAgZXdrX3ZpZXdf
dXJsX3VwZGF0ZShld2tWaWV3KTsKK30KKworUGFnZUxvYWRDbGllbnRFZmw6OlBhZ2VMb2FkQ2xp
ZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcpCit7CisgICAgV0tQ
YWdlUmVmIHBhZ2VSZWYgPSBld2tfdmlld193a3BhZ2VfZ2V0KG1fdmlldyk7CisgICAgQVNTRVJU
KHBhZ2VSZWYpOworCisgICAgV0tQYWdlTG9hZGVyQ2xpZW50IGxvYWRDbGllbnQ7CisgICAgbWVt
c2V0KCZsb2FkQ2xpZW50LCAwLCBzaXplb2YoV0tQYWdlTG9hZGVyQ2xpZW50KSk7CisgICAgbG9h
ZENsaWVudC52ZXJzaW9uID0ga1dLUGFnZUxvYWRlckNsaWVudEN1cnJlbnRWZXJzaW9uOworICAg
IGxvYWRDbGllbnQuY2xpZW50SW5mbyA9IHRoaXM7CisgICAgbG9hZENsaWVudC5kaWRSZWNlaXZl
VGl0bGVGb3JGcmFtZSA9IGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lOworI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKKyAgICBsb2FkQ2xpZW50LmRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSA9IGRpZFJl
Y2VpdmVJbnRlbnRGb3JGcmFtZTsKKyNlbmRpZgorI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcp
CisgICAgbG9hZENsaWVudC5yZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZSA9IHJlZ2lzdGVy
SW50ZW50U2VydmljZUZvckZyYW1lOworI2VuZGlmCisgICAgbG9hZENsaWVudC5kaWRTdGFydFBy
b2dyZXNzID0gZGlkQ2hhbmdlUHJvZ3Jlc3M7CisgICAgbG9hZENsaWVudC5kaWRDaGFuZ2VQcm9n
cmVzcyA9IGRpZENoYW5nZVByb2dyZXNzOworICAgIGxvYWRDbGllbnQuZGlkRmluaXNoUHJvZ3Jl
c3MgPSBkaWRDaGFuZ2VQcm9ncmVzczsKKyAgICBsb2FkQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JG
cmFtZSA9IGRpZEZpbmlzaExvYWRGb3JGcmFtZTsKKyAgICBsb2FkQ2xpZW50LmRpZEZhaWxMb2Fk
V2l0aEVycm9yRm9yRnJhbWUgPSBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lOworICAgIGxv
YWRDbGllbnQuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSA9IGRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWU7CisgICAgbG9hZENsaWVudC5kaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSA9IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOworICAgIGxvYWRDbGllbnQuZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZFdpdGhFcnJvckZvckZyYW1lID0gZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJv
ckZvckZyYW1lOworICAgIGxvYWRDbGllbnQuZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0ID0gZGlk
Q2hhbmdlQmFja0ZvcndhcmRMaXN0OworICAgIGxvYWRDbGllbnQuZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvckZyYW1lID0gZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOworICAg
IFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQocGFnZVJlZiwgJmxvYWRDbGllbnQpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUGFnZUxvYWRDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
UGFnZUxvYWRDbGllbnRFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
OGNjMTdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Q
YWdlTG9hZENsaWVudEVmbC5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUGFnZUxvYWRDbGllbnRFZmxfaAorI2RlZmluZSBQYWdlTG9hZENsaWVudEVmbF9o
CisKKyNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBhZ2VMb2FkQ2xpZW50RWZsIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxQYWdlTG9hZENsaWVudEVmbD4gY3JlYXRl
KEV2YXNfT2JqZWN0KiB2aWV3KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQ
YWdlTG9hZENsaWVudEVmbCh2aWV3KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IFBhZ2VMb2FkQ2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KTsKKworICAgIGlubGluZSBFdmFz
X09iamVjdCogdmlldygpIGNvbnN0IHsgcmV0dXJuIG1fdmlldzsgfQorCisgICAgc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwg
V0tGcmFtZVJlZiwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyNpZiBFTkFC
TEUoV0VCX0lOVEVOVFMpCisgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUludGVudEZvckZyYW1l
KFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tJbnRlbnREYXRhUmVmLCBXS1R5cGVSZWYsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOworI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykK
KyAgICBzdGF0aWMgdm9pZCByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZShXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYsIFdLSW50ZW50U2VydmljZUluZm9SZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CisjZW5kaWYKKyAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VQcm9ncmVz
cyhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVHlwZVJlZiB1c2Vy
RGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgZGlkRmFpbExv
YWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRXJyb3JSZWYsIFdL
VHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZv
aWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYs
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGlj
IHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJy
b3JGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRXJyb3JSZWYsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgZGlkQ2hh
bmdlQmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGFk
ZGVkSXRlbSwgV0tBcnJheVJlZiByZW1vdmVkSXRlbXMsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OworICAgIHN0YXRpYyB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYsIFdLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFdLVHlwZVJl
ZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKKyAgICBFdmFzX09iamVjdCogbV92aWV3Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQYWdlTG9hZENsaWVudEVm
bF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>