<?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>99479</bug_id>
          
          <creation_ts>2012-10-16 10:58:17 -0700</creation_ts>
          <short_desc>[EFL][WK2] Add factory methods for refcounted Ewk types</short_desc>
          <delta_ts>2012-10-16 19:21:05 -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>99321</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>mikhail.pozdnyakov</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>743306</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-16 10:58:17 -0700</bug_when>
    <thetext>We should create factory methods for refcounted ewk types and get rid of private _new() functions. This makes the private API more C++ and promotes the use of smart pointers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743351</commentid>
    <comment_count>1</comment_count>
      <attachid>168987</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-16 11:34:28 -0700</bug_when>
    <thetext>Created attachment 168987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743792</commentid>
    <comment_count>2</comment_count>
      <attachid>168987</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-16 19:17:32 -0700</bug_when>
    <thetext>Comment on attachment 168987
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743793</commentid>
    <comment_count>3</comment_count>
      <attachid>168987</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 19:21:01 -0700</bug_when>
    <thetext>Comment on attachment 168987
Patch

Clearing flags on attachment: 168987

Committed r131546: &lt;http://trac.webkit.org/changeset/131546&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743794</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 19:21:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168987</attachid>
            <date>2012-10-16 11:34:28 -0700</date>
            <delta_ts>2012-10-16 19:21:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>99479_ewk_factory_methods.patch</filename>
            <type>text/plain</type>
            <size>34878</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2N2ZjYTAzLi4yYzM4NjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsOTEg
QEAKIDIwMTItMTAtMTYgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAorICAgICAgICBbRUZMXVtXSzJdIEFkZCBmYWN0b3J5IG1ldGhvZHMgZm9yIHJlZmNv
dW50ZWQgRXdrIHR5cGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05OTQ3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBmYWN0b3J5IG1ldGhvZHMgdG8gcmVmY291bnRlZCBFd2sgdHlwZXMgdGhhdCBy
ZXR1cm4KKyAgICAgICAgYSBQYXNzUmVmUHRyIGZvciByZWZjb3VudGVkIEV3ayB0eXBlcy4gVGhl
aXIgY29uc3RydWN0b3JzCisgICAgICAgIHdlcmUgbWFkZSBwcml2YXRlcyBhcyB3ZWxsLCBpbiBv
cmRlciB0byBwcm9tb3RlIHRoZSB1c2UKKyAgICAgICAgb2Ygc21hcnQgcG9pbnRlcnMgaW50ZXJu
YWxseS4KKworICAgICAgICBSZW1vdmUgX25ldygpIGZ1bmN0aW9ucyBmb3IgcmVmY291bnRlZCBF
d2sgdHlwZXMgYXMgdGhleQorICAgICAgICBhcmUgbm8gbG9uZ2VyIG5lZWRlZCBub3cgdGhhdCB0
aGUgY2xhc3NlcyBhcmUgZGVmaW5lZAorICAgICAgICBpbiB0aGUgcHJpdmF0ZSBoZWFkZXJzIGlu
c3RlYWQgb2YgdGhlIGNwcCBmaWxlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1Bh
Z2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmhhbmRs
ZURvd25sb2FkUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tf
Zm9yd2FyZF9saXN0LmNwcDoKKyAgICAgICAgKGFkZEl0ZW1Ub1dyYXBwZXJDYWNoZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwOgor
ICAgICAgICAoZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fb3JpZ2luYWxfdXJsX2dldCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcHJp
dmF0ZS5oOgorICAgICAgICAoX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKToKKyAgICAgICAg
KF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbTo6Y3JlYXRlKToKKyAgICAgICAgKF9Fd2tfQmFj
a19Gb3J3YXJkX0xpc3RfSXRlbTo6X0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwOgor
ICAgICAgICAoZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHA6CisgICAgICAgIChkaWROYXZpZ2F0ZVdp
dGhOYXZpZ2F0aW9uRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25s
b2FkX2pvYi5jcHA6CisgICAgICAgIChld2tfZG93bmxvYWRfam9iX3JlcXVlc3RfZ2V0KToKKyAg
ICAgICAgKGV3a19kb3dubG9hZF9qb2Jfc3RhdGVfc2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfZG93bmxvYWRfam9iX3ByaXZhdGUuaDoKKyAgICAgICAgKF9Fd2tfRG93bmxv
YWRfSm9iKToKKyAgICAgICAgKF9Fd2tfRG93bmxvYWRfSm9iOjpjcmVhdGUpOgorICAgICAgICAo
X0V3a19Eb3dubG9hZF9Kb2I6Ol9Fd2tfRG93bmxvYWRfSm9iKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcDoKKyAgICAgICAgKGV3a19pbnRlbnRfZXh0cmFfbmFt
ZXNfZ2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3ByaXZhdGUu
aDoKKyAgICAgICAgKF9Fd2tfSW50ZW50KToKKyAgICAgICAgKF9Fd2tfSW50ZW50OjpjcmVhdGUp
OgorICAgICAgICAoX0V3a19JbnRlbnQ6Ol9Fd2tfSW50ZW50KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwOgorICAgICAgICAoZXdrX2ludGVudF9z
ZXJ2aWNlX2Rpc3Bvc2l0aW9uX2dldCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2ludGVudF9zZXJ2aWNlX3ByaXZhdGUuaDoKKyAgICAgICAgKF9Fd2tfSW50ZW50X1NlcnZpY2Up
OgorICAgICAgICAoX0V3a19JbnRlbnRfU2VydmljZTo6Y3JlYXRlKToKKyAgICAgICAgKF9Fd2tf
SW50ZW50X1NlcnZpY2U6Ol9Fd2tfSW50ZW50X1NlcnZpY2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuY3BwOgorICAgICAgICAoZXdrX25hdmlnYXRp
b25fZGF0YV91cmxfZ2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdh
dGlvbl9kYXRhX3ByaXZhdGUuaDoKKyAgICAgICAgKF9Fd2tfTmF2aWdhdGlvbl9EYXRhKToKKyAg
ICAgICAgKF9Fd2tfTmF2aWdhdGlvbl9EYXRhOjpjcmVhdGUpOgorICAgICAgICAoX0V3a19OYXZp
Z2F0aW9uX0RhdGE6Ol9Fd2tfTmF2aWdhdGlvbl9EYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uY3BwOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9wcml2YXRlLmg6
CisgICAgICAgIChfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKToKKyAgICAgICAgKF9F
d2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb246On5fRXdrX05hdmlnYXRpb25fUG9saWN5X0Rl
Y2lzaW9uKToKKyAgICAgICAgKF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb246OmNyZWF0
ZSk6CisgICAgICAgIChfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpfRXdrX05hdmln
YXRpb25fUG9saWN5X0RlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dXJsX3JlcXVlc3QuY3BwOgorICAgICAgICAoZXdrX3VybF9yZXF1ZXN0X2h0dHBfbWV0aG9kX2dl
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUu
aDoKKyAgICAgICAgKF9Fd2tfVXJsX1JlcXVlc3QpOgorICAgICAgICAoX0V3a19VcmxfUmVxdWVz
dDo6Y3JlYXRlKToKKyAgICAgICAgKF9Fd2tfVXJsX1JlcXVlc3Q6Ol9Fd2tfVXJsX1JlcXVlc3Qp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2UuY3BwOgorICAg
ICAgICAoZXdrX3VybF9yZXNwb25zZV9jb250ZW50X2xlbmd0aF9nZXQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oOgorICAgICAgICAoX0V3
a19VcmxfUmVzcG9uc2UpOgorICAgICAgICAoX0V3a19VcmxfUmVzcG9uc2U6OmNyZWF0ZSk6Cisg
ICAgICAgIChfRXdrX1VybF9SZXNwb25zZTo6X0V3a19VcmxfUmVzcG9uc2UpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2ludGVu
dF9kZWxpdmVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJf
Y2xpZW50LmNwcDoKKyAgICAgICAgKGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSk6CisgICAgICAg
IChyZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHA6CisgICAgICAgIChkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcmVzb3VyY2VfbG9h
ZF9jbGllbnQuY3BwOgorICAgICAgICAoZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UpOgorICAg
ICAgICAoZGlkU2VuZFJlcXVlc3RGb3JSZXNvdXJjZSk6CisgICAgICAgIChkaWRSZWNlaXZlUmVz
cG9uc2VGb3JSZXNvdXJjZSk6CisKKzIwMTItMTAtMTYgIENocmlzdG9waGUgRHVtZXogIDxjaHJp
c3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKwogICAgICAgICBbRUZMXVtXSzJdIEhhdmUgaW50ZW50
IGNsYXNzZXMgc3ViY2xhc3MgUmVmQ291bnRlZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk0NjcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDg4Y2VmMWMuLjBjYTc1Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50
SW1wbC5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpjb3VudFN0
cmluZ01hdGNoZXNJbkN1c3RvbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYsIEZpbgogCiB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSog
ZG93bmxvYWQpCiB7Ci0gICAgUmVmUHRyPEV3a19Eb3dubG9hZF9Kb2I+IGV3a0Rvd25sb2FkID0g
YWRvcHRSZWYoZXdrX2Rvd25sb2FkX2pvYl9uZXcoZG93bmxvYWQsIG1fdmlld1dpZGdldCkpOwor
ICAgIFJlZlB0cjxFd2tfRG93bmxvYWRfSm9iPiBld2tEb3dubG9hZCA9IEV3a19Eb3dubG9hZF9K
b2I6OmNyZWF0ZShkb3dubG9hZCwgbV92aWV3V2lkZ2V0KTsKICAgICBld2tfY29udGV4dF9kb3du
bG9hZF9qb2JfYWRkKGV3a192aWV3X2NvbnRleHRfZ2V0KG1fdmlld1dpZGdldCksIGV3a0Rvd25s
b2FkLmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdC5jcHAKaW5kZXggOTIwMzU2My4uZDdkODhl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tf
Zm9yd2FyZF9saXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfYmFja19mb3J3YXJkX2xpc3QuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyBpbmxpbmUg
RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGFkZEl0ZW1Ub1dyYXBwZXJDYWNoZShjb25zdCBF
d2tfQmFja19GCiAKICAgICBSZWZQdHI8RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0+IGl0ZW0g
PSBsaXN0LT53cmFwcGVyQ2FjaGUuZ2V0KHdrSXRlbSk7CiAgICAgaWYgKCFpdGVtKSB7Ci0gICAg
ICAgIGl0ZW0gPSBhZG9wdFJlZihld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9uZXcod2tJdGVt
KSk7CisgICAgICAgIGl0ZW0gPSBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbTo6Y3JlYXRlKHdr
SXRlbSk7CiAgICAgICAgIGxpc3QtPndyYXBwZXJDYWNoZS5zZXQod2tJdGVtLCBpdGVtKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19i
YWNrX2ZvcndhcmRfbGlzdF9pdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtLmNwcAppbmRleCA4YjU2ZmY4Li44Y2ExZTBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19m
b3J3YXJkX2xpc3RfaXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwCkBAIC04NCwxMCArODQsMyBAQCBjb25z
dCBjaGFyKiBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9vcmlnaW5hbF91cmxfZ2V0KGNvbnN0
IEV3a19CYWNrX0ZvcndhcmRfTAogCiAgICAgcmV0dXJuIGl0ZW0tPm9yaWdpbmFsVVJMOwogfQot
Ci1Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1f
bmV3KFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBiYWNrRm9yd2FyZExpc3RJdGVtRGF0YSkKLXsK
LSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoYmFja0ZvcndhcmRMaXN0SXRlbURh
dGEsIDApOwotCi0gICAgcmV0dXJuIG5ldyBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbShiYWNr
Rm9yd2FyZExpc3RJdGVtRGF0YSk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9wcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9w
cml2YXRlLmgKaW5kZXggM2EzN2I0Ni4uNWY1ZDUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRf
bGlzdF9pdGVtX3ByaXZhdGUuaApAQCAtMjgsMjIgKzI4LDMwIEBACiAKICNpbmNsdWRlICJXS0Vp
bmFTaGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAKIC8qKgogICogXHN0cnVjdCAgX0V3a19CYWNrX0ZvcndhcmRf
TGlzdAogICogQGJyaWVmICAgQ29udGFpbnMgdGhlIEJhY2sgRm9yd2FyZCBMaXN0IGRhdGEuCiAg
Ki8KLXN0cnVjdCBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0gOiBwdWJsaWMgUmVmQ291bnRl
ZDxfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0+IHsKK2NsYXNzIF9Fd2tfQmFja19Gb3J3YXJk
X0xpc3RfSXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRl
bT4geworcHVibGljOgogICAgIFdLUmV0YWluUHRyPFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZj4g
d2tJdGVtOwogICAgIG11dGFibGUgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKICAgICBtdXRhYmxl
IFdLRWluYVNoYXJlZFN0cmluZyB0aXRsZTsKICAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmlu
ZyBvcmlnaW5hbFVSTDsKIAotICAgIF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbShXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1SZWYgaXRlbVJlZikgOiB3a0l0ZW0oaXRlbVJlZikgeyB9CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8X0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtPiBjcmVhdGUoV0tCYWNr
Rm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbShpdGVtUmVmKSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbShXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1SZWYgaXRlbVJlZikKKyAgICAgICAgOiB3a0l0ZW0oaXRlbVJlZikKKyAg
ICB7IH0KIH07CiAKIHR5cGVkZWYgc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSBF
d2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbTsKIAotRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0q
IGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX25ldyhXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYg
d2tCYWNrRm9yd2FyZExpc3RJdGVtUmVmKTsKLQogI2VuZGlmIC8vIGV3a19iYWNrX2ZvcndhcmRf
bGlzdF9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnQuY3BwCmluZGV4IDczMjBk
N2YuLmE0NjFiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNwcApAQCAtNjgsNyAr
NjgsNyBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV0tDb250ZXh0UmVmLCBXS0Rv
d25sb2FkUmVmIHdrRG93bmxvYWQsIFdLVVJMUmVzcAogewogICAgIEV3a19Eb3dubG9hZF9Kb2Iq
IGRvd25sb2FkID0gZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX2dldCh0b0V3a0NvbnRleHQoY2xp
ZW50SW5mbyksIHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxvYWRJRCgpKTsKICAgICBBU1NFUlQo
ZG93bmxvYWQpOwotICAgIFJlZlB0cjxFd2tfVXJsX1Jlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0
UmVmKGV3a191cmxfcmVzcG9uc2VfbmV3KHRvSW1wbCh3a1Jlc3BvbnNlKS0+cmVzb3VyY2VSZXNw
b25zZSgpKSk7CisgICAgUmVmUHRyPEV3a19VcmxfUmVzcG9uc2U+IHJlc3BvbnNlID0gRXdrX1Vy
bF9SZXNwb25zZTo6Y3JlYXRlKHdrUmVzcG9uc2UpOwogICAgIGV3a19kb3dubG9hZF9qb2JfcmVz
cG9uc2Vfc2V0KGRvd25sb2FkLCByZXNwb25zZS5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2hpc3Rv
cnlfY2xpZW50LmNwcAppbmRleCBmZDFiODNhLi4xMDM4YjRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfaGlzdG9y
eV9jbGllbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHN0YXRpYyB2b2lkIGRpZE5hdmlnYXRlV2l0
aE5hdmlnYXRpb25EYXRhKFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdhCiAg
ICAgaWYgKCFoaXN0b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9EYXRhPiBuYXZpZ2F0aW9uRGF0YUV3ayA9IGFk
b3B0UmVmKGV3a19uYXZpZ2F0aW9uX2RhdGFfbmV3KG5hdmlnYXRpb25EYXRhKSk7CisgICAgUmVm
UHRyPEV3a19OYXZpZ2F0aW9uX0RhdGE+IG5hdmlnYXRpb25EYXRhRXdrID0gRXdrX05hdmlnYXRp
b25fRGF0YTo6Y3JlYXRlKG5hdmlnYXRpb25EYXRhKTsKICAgICBoaXN0b3J5RGVsZWdhdGUtPm5h
dmlnYXRlX2Z1bmMoZXdrX3ZpZXdfZnJvbV9wYWdlX2dldCh0b0ltcGwocGFnZSkpLCBuYXZpZ2F0
aW9uRGF0YUV3ay5nZXQoKSwgaGlzdG9yeURlbGVnYXRlLT51c2VyX2RhdGEpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9i
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2Iu
Y3BwCmluZGV4IDhkNzE2MzYuLmRlOGY1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2IuY3BwCkBAIC04OSw3ICs4OSw3IEBA
IEV3a19VcmxfUmVxdWVzdCogZXdrX2Rvd25sb2FkX2pvYl9yZXF1ZXN0X2dldChjb25zdCBFd2tf
RG93bmxvYWRfSm9iKiBkb3dubG9hZCkKICAgICBpZiAoIWRvd25sb2FkLT5yZXF1ZXN0KSB7CiAg
ICAgICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChkb3dubG9hZC0+ZG93bmxvYWRQ
cm94eSwgMCk7CiAgICAgICAgIFdLUmV0YWluUHRyPFdLVVJMUmVxdWVzdFJlZj4gd2tVUkxSZXF1
ZXN0KEFkb3B0V0ssIHRvQVBJKFdlYlVSTFJlcXVlc3Q6OmNyZWF0ZShkb3dubG9hZC0+ZG93bmxv
YWRQcm94eS0+cmVxdWVzdCgpKS5sZWFrUmVmKCkpKTsKLSAgICAgICAgY29uc3RfY2FzdDxFd2tf
RG93bmxvYWRfSm9iKj4oZG93bmxvYWQpLT5yZXF1ZXN0ID0gYWRvcHRSZWYoZXdrX3VybF9yZXF1
ZXN0X25ldyh3a1VSTFJlcXVlc3QuZ2V0KCkpKTsKKyAgICAgICAgY29uc3RfY2FzdDxFd2tfRG93
bmxvYWRfSm9iKj4oZG93bmxvYWQpLT5yZXF1ZXN0ID0gRXdrX1VybF9SZXF1ZXN0OjpjcmVhdGUo
d2tVUkxSZXF1ZXN0LmdldCgpKTsKICAgICB9CiAKICAgICByZXR1cm4gZG93bmxvYWQtPnJlcXVl
c3QuZ2V0KCk7CkBAIC0yMjIsMTUgKzIyMiwzIEBAIHZvaWQgZXdrX2Rvd25sb2FkX2pvYl9zdGF0
ZV9zZXQoRXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQsIEV3a19Eb3dubG9hZF9Kb2JfU3RhCiAg
ICAgICAgIHx8IHN0YXRlID09IEVXS19ET1dOTE9BRF9KT0JfU1RBVEVfRklOSVNIRUQpCiAgICAg
ICAgIGRvd25sb2FkLT5lbmRUaW1lID0gZWNvcmVfdGltZV9nZXQoKTsKIH0KLQotLyoqCi0gKiBA
aW50ZXJuYWwKLSAqIENvbnN0cnVjdHMgYSBFd2tfRG93bmxvYWRfSm9iIGZyb20gYSBEb3dubG9h
ZFByb3h5LgotICovCi1Fd2tfRG93bmxvYWRfSm9iKiBld2tfZG93bmxvYWRfam9iX25ldyhEb3du
bG9hZFByb3h5KiBkb3dubG9hZCwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCi17Ci0gICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGRvd25sb2FkLCAwKTsKLSAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoZXdrVmlldywgMCk7Ci0KLSAgICByZXR1cm4gbmV3IF9Fd2tfRG93
bmxvYWRfSm9iKGRvd25sb2FkLCBld2tWaWV3KTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2JfcHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgKaW5k
ZXggMzAxYzQ3MC4uYTRhNDBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3
a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPEV2YXMuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIERvd25sb2FkUHJv
eHk7CkBAIC00MCw3ICs0MSw4IEBAIGNsYXNzIERvd25sb2FkUHJveHk7CiAgKiBcc3RydWN0ICBf
RXdrX0Rvd25sb2FkX0pvYgogICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGRvd25sb2FkIGRhdGEu
CiAgKi8KLXN0cnVjdCBfRXdrX0Rvd25sb2FkX0pvYiA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tf
RG93bmxvYWRfSm9iPiB7CitjbGFzcyBfRXdrX0Rvd25sb2FkX0pvYiA6IHB1YmxpYyBSZWZDb3Vu
dGVkPF9Fd2tfRG93bmxvYWRfSm9iPiB7CitwdWJsaWM6CiAgICAgV2ViS2l0OjpEb3dubG9hZFBy
b3h5KiBkb3dubG9hZFByb3h5OwogICAgIEV2YXNfT2JqZWN0KiB2aWV3OwogICAgIEV3a19Eb3du
bG9hZF9Kb2JfU3RhdGUgc3RhdGU7CkBAIC01MiwxMSArNTQsMTYgQEAgc3RydWN0IF9Fd2tfRG93
bmxvYWRfSm9iIDogcHVibGljIFJlZkNvdW50ZWQ8X0V3a19Eb3dubG9hZF9Kb2I+IHsKICAgICBX
S0VpbmFTaGFyZWRTdHJpbmcgZGVzdGluYXRpb247CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHN1
Z2dlc3RlZEZpbGVuYW1lOwogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8X0V3a19Eb3dubG9hZF9K
b2I+IGNyZWF0ZShXZWJLaXQ6OkRvd25sb2FkUHJveHkqIGRvd25sb2FkLCBFdmFzX09iamVjdCog
ZXdrVmlldykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgX0V3a19Eb3dubG9h
ZF9Kb2IoZG93bmxvYWQsIGV3a1ZpZXcpKTsKKyAgICB9CisKK3ByaXZhdGU6CiAgICAgX0V3a19E
b3dubG9hZF9Kb2IoV2ViS2l0OjpEb3dubG9hZFByb3h5KiBkb3dubG9hZCwgRXZhc19PYmplY3Qq
IGV3a1ZpZXcpCiAgICAgICAgIDogZG93bmxvYWRQcm94eShkb3dubG9hZCkKICAgICAgICAgLCB2
aWV3KGV3a1ZpZXcpCiAgICAgICAgICwgc3RhdGUoRVdLX0RPV05MT0FEX0pPQl9TVEFURV9OT1Rf
U1RBUlRFRCkKLSAgICAgICAgLCByZXNwb25zZSgwKQogICAgICAgICAsIHN0YXJ0VGltZSgtMSkK
ICAgICAgICAgLCBlbmRUaW1lKC0xKQogICAgICAgICAsIGRvd25sb2FkZWQoMCkKQEAgLTY2LDcg
KzczLDYgQEAgc3RydWN0IF9Fd2tfRG93bmxvYWRfSm9iIDogcHVibGljIFJlZkNvdW50ZWQ8X0V3
a19Eb3dubG9hZF9Kb2I+IHsKIHR5cGVkZWYgc3RydWN0IF9Fd2tfRG93bmxvYWRfSm9iIEV3a19E
b3dubG9hZF9Kb2I7CiB0eXBlZGVmIHN0cnVjdCBfRXdrX0Vycm9yIEV3a19FcnJvcjsKIAotRXdr
X0Rvd25sb2FkX0pvYiogZXdrX2Rvd25sb2FkX2pvYl9uZXcoV2ViS2l0OjpEb3dubG9hZFByb3h5
KiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpOwogdWludDY0X3QgZXdrX2Rvd25sb2FkX2pvYl9pZF9n
ZXQoY29uc3QgRXdrX0Rvd25sb2FkX0pvYiopOwogRXZhc19PYmplY3QqIGV3a19kb3dubG9hZF9q
b2Jfdmlld19nZXQoY29uc3QgRXdrX0Rvd25sb2FkX0pvYiopOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuY3BwCmluZGV4IDk4ZDk3YWMuLjdlNWI5
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQu
Y3BwCkBAIC0xNDMsMTggKzE0MywzIEBAIEVpbmFfTGlzdCogZXdrX2ludGVudF9leHRyYV9uYW1l
c19nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQogICAgIHJldHVybiAwOwogI2VuZGlmCiB9
Ci0KLSNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi1Fd2tfSW50ZW50KiBld2tfaW50ZW50X25ldyhX
S0ludGVudERhdGFSZWYgaW50ZW50RGF0YSkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoaW50ZW50RGF0YSwgMCk7Ci0KLSAgICByZXR1cm4gbmV3IEV3a19JbnRlbnQoaW50
ZW50RGF0YSk7Ci19Ci0KLVdLSW50ZW50RGF0YVJlZiBld2tfaW50ZW50X1dLSW50ZW50RGF0YVJl
Zl9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQotewotICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChpbnRlbnQsIDApOwotICAgIHJldHVybiBpbnRlbnQtPndrSW50ZW50Lmdl
dCgpOwotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfaW50ZW50X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19pbnRlbnRfcHJpdmF0ZS5oCmluZGV4IGVhZTBmZDIuLjk1ZmZiYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfcHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfcHJpdmF0
ZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV0tJbnRlbnREYXRhLmgiCiAjaW5jbHVk
ZSAiV0tSZXRhaW5QdHIuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogdHlwZWRl
ZiBzdHJ1Y3QgX0V3a19JbnRlbnQgRXdrX0ludGVudDsKQEAgLTQwLDEzICs0MSwyMCBAQCB0eXBl
ZGVmIHN0cnVjdCBfRXdrX0ludGVudCBFd2tfSW50ZW50OwogICogXHN0cnVjdCAgX0V3a19JbnRl
bnQKICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBpbnRlbnQgZGF0YS4KICAqLwotc3RydWN0IF9F
d2tfSW50ZW50IDogcHVibGljIFJlZkNvdW50ZWQ8X0V3a19JbnRlbnQ+IHsKK2NsYXNzIF9Fd2tf
SW50ZW50IDogcHVibGljIFJlZkNvdW50ZWQ8X0V3a19JbnRlbnQ+IHsKK3B1YmxpYzoKICAgICBX
S1JldGFpblB0cjxXS0ludGVudERhdGFSZWY+IHdrSW50ZW50OwogICAgIFdLRWluYVNoYXJlZFN0
cmluZyBhY3Rpb247CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHR5cGU7CiAgICAgV0tFaW5hU2hh
cmVkU3RyaW5nIHNlcnZpY2U7CiAKLSAgICBfRXdrX0ludGVudChXS0ludGVudERhdGFSZWYgaW50
ZW50UmVmKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPF9Fd2tfSW50ZW50PiBjcmVhdGUoV0tJbnRl
bnREYXRhUmVmIGludGVudFJlZikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
X0V3a19JbnRlbnQoaW50ZW50UmVmKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IF9Fd2tfSW50ZW50KFdLSW50ZW50RGF0YVJlZiBpbnRlbnRSZWYpCiAgICAgICAgIDogd2tJbnRl
bnQoaW50ZW50UmVmKQogICAgICAgICAsIGFjdGlvbihBZG9wdFdLLCBXS0ludGVudERhdGFDb3B5
QWN0aW9uKGludGVudFJlZikpCiAgICAgICAgICwgdHlwZShBZG9wdFdLLCBXS0ludGVudERhdGFD
b3B5VHlwZShpbnRlbnRSZWYpKQpAQCAtNTQsOSArNjIsNiBAQCBzdHJ1Y3QgX0V3a19JbnRlbnQg
OiBwdWJsaWMgUmVmQ291bnRlZDxfRXdrX0ludGVudD4gewogICAgIHsgfQogfTsKIAotRXdrX0lu
dGVudCogZXdrX2ludGVudF9uZXcoV0tJbnRlbnREYXRhUmVmIGludGVudERhdGEpOwotV0tJbnRl
bnREYXRhUmVmIGV3a19pbnRlbnRfV0tJbnRlbnREYXRhUmVmX2dldChjb25zdCBFd2tfSW50ZW50
KiBpbnRlbnQpOwotCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9JTlRFTlRTKQogCiAjZW5kaWYgLy8g
ZXdrX2ludGVudF9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwCmluZGV4IGM3M2E3OWQuLjk3MDI4MzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRf
c2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2lu
dGVudF9zZXJ2aWNlLmNwcApAQCAtODgsMTIgKzg4LDMgQEAgY29uc3QgY2hhciogZXdrX2ludGVu
dF9zZXJ2aWNlX2Rpc3Bvc2l0aW9uX2dldChjb25zdCBFd2tfSW50ZW50X1NlcnZpY2UqIHNlcnZp
Y2UKIAogICAgIHJldHVybiBzZXJ2aWNlLT5kaXNwb3NpdGlvbjsKIH0KLQotI2lmIEVOQUJMRShX
RUJfSU5URU5UU19UQUcpCi1Fd2tfSW50ZW50X1NlcnZpY2UqIGV3a19pbnRlbnRfc2VydmljZV9u
ZXcoV0tJbnRlbnRTZXJ2aWNlSW5mb1JlZiB3a1NlcnZpY2UpCi17Ci0gICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHdrU2VydmljZSwgMCk7Ci0KLSAgICByZXR1cm4gbmV3IEV3a19J
bnRlbnRfU2VydmljZSh3a1NlcnZpY2UpOwotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZh
dGUuaAppbmRleCBmZTQ1YWRmLi5jYTU2MWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZV9wcml2YXRlLmgK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNs
dWRlICJXS0ludGVudFNlcnZpY2VJbmZvLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAKIHR5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50X1NlcnZpY2UgRXdrX0ludGVudF9TZXJ2aWNl
OwpAQCAtMzksMTQgKzQwLDIxIEBAIHR5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50X1NlcnZpY2Ug
RXdrX0ludGVudF9TZXJ2aWNlOwogICogXHN0cnVjdCBfRXdrX0ludGVudF9TZXJ2aWNlCiAgKiBA
YnJpZWYgQ29udGFpbnMgdGhlIGludGVudCBzZXJ2aWNlIGRhdGEuCiAgKi8KLXN0cnVjdCBfRXdr
X0ludGVudF9TZXJ2aWNlIDogcHVibGljIFJlZkNvdW50ZWQ8X0V3a19JbnRlbnRfU2VydmljZT4g
eworY2xhc3MgX0V3a19JbnRlbnRfU2VydmljZSA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfSW50
ZW50X1NlcnZpY2U+IHsKK3B1YmxpYzoKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgYWN0aW9uOwog
ICAgIFdLRWluYVNoYXJlZFN0cmluZyB0eXBlOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBocmVm
OwogICAgIFdLRWluYVNoYXJlZFN0cmluZyB0aXRsZTsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcg
ZGlzcG9zaXRpb247CiAKLSAgICBfRXdrX0ludGVudF9TZXJ2aWNlKFdLSW50ZW50U2VydmljZUlu
Zm9SZWYgc2VydmljZVJlZikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxfRXdrX0ludGVudF9TZXJ2
aWNlPiBjcmVhdGUoV0tJbnRlbnRTZXJ2aWNlSW5mb1JlZiBzZXJ2aWNlUmVmKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBfRXdrX0ludGVudF9TZXJ2aWNlKHNlcnZpY2VSZWYp
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgX0V3a19JbnRlbnRfU2VydmljZShX
S0ludGVudFNlcnZpY2VJbmZvUmVmIHNlcnZpY2VSZWYpCiAgICAgICAgIDogYWN0aW9uKEFkb3B0
V0ssIFdLSW50ZW50U2VydmljZUluZm9Db3B5QWN0aW9uKHNlcnZpY2VSZWYpKQogICAgICAgICAs
IHR5cGUoQWRvcHRXSywgV0tJbnRlbnRTZXJ2aWNlSW5mb0NvcHlUeXBlKHNlcnZpY2VSZWYpKQog
ICAgICAgICAsIGhyZWYoQWRvcHRXSywgV0tJbnRlbnRTZXJ2aWNlSW5mb0NvcHlIcmVmKHNlcnZp
Y2VSZWYpKQpAQCAtNTUsOCArNjMsNiBAQCBzdHJ1Y3QgX0V3a19JbnRlbnRfU2VydmljZSA6IHB1
YmxpYyBSZWZDb3VudGVkPF9Fd2tfSW50ZW50X1NlcnZpY2U+IHsKICAgICB7IH0KIH07CiAKLUV3
a19JbnRlbnRfU2VydmljZSogZXdrX2ludGVudF9zZXJ2aWNlX25ldyhXS0ludGVudFNlcnZpY2VJ
bmZvUmVmIHdrU2VydmljZSk7Ci0KICNlbmRpZiAvLyBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQog
CiAjZW5kaWYgLy8gZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhLmNwcApp
bmRleCAyN2E1MWYwLi5hNTg0NTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhLmNwcApAQCAtNjYsMTEgKzY2LDMg
QEAgY29uc3QgY2hhciogZXdrX25hdmlnYXRpb25fZGF0YV91cmxfZ2V0KGNvbnN0IEV3a19OYXZp
Z2F0aW9uX0RhdGEqIGRhdGEpCiAKICAgICByZXR1cm4gZGF0YS0+dXJsOwogfQotCi1Fd2tfTmF2
aWdhdGlvbl9EYXRhKiBld2tfbmF2aWdhdGlvbl9kYXRhX25ldyhXS05hdmlnYXRpb25EYXRhUmVm
IGRhdGFSZWYpCi17Ci0gICAgQVNTRVJUKGRhdGFSZWYpOwotICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChkYXRhUmVmLCAwKTsKLQotICAgIHJldHVybiBuZXcgRXdrX05hdmlnYXRp
b25fRGF0YShkYXRhUmVmKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YV9wcml2YXRlLmgKaW5kZXggMzdk
OGUwNS4uMDhhZDBjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX25hdmlnYXRpb25fZGF0YV9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YV9wcml2YXRlLmgKQEAgLTMyLDI4ICsz
MiwzMiBAQAogI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUu
aCIKICNpbmNsdWRlICJld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogLyoqCiAgKiBcc3Ry
dWN0ICBfRXdrX05hdmlnYXRpb25fRGF0YQogICogQGJyaWVmICAgQ29udGFpbnMgdGhlIG5hdmln
YXRpb24gZGF0YSBkZXRhaWxzLgogICovCi1zdHJ1Y3QgX0V3a19OYXZpZ2F0aW9uX0RhdGEgOiBw
dWJsaWMgUmVmQ291bnRlZDxfRXdrX05hdmlnYXRpb25fRGF0YT4geworY2xhc3MgX0V3a19OYXZp
Z2F0aW9uX0RhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxfRXdrX05hdmlnYXRpb25fRGF0YT4gewor
cHVibGljOgorICAgIFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3Q7CiAgICAgV0tFaW5h
U2hhcmVkU3RyaW5nIHRpdGxlOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7Ci0gICAgUmVm
UHRyPEV3a19VcmxfUmVxdWVzdD4gcmVxdWVzdDsKIAotICAgIF9Fd2tfTmF2aWdhdGlvbl9EYXRh
KFdLTmF2aWdhdGlvbkRhdGFSZWYgZGF0YVJlZikKLSAgICAgICAgOiB0aXRsZShBZG9wdFdLLCBX
S05hdmlnYXRpb25EYXRhQ29weVRpdGxlKGRhdGFSZWYpKQotICAgICAgICAsIHVybChBZG9wdFdL
LCBXS05hdmlnYXRpb25EYXRhQ29weVVSTChkYXRhUmVmKSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxfRXdrX05hdmlnYXRpb25fRGF0YT4gY3JlYXRlKFdLTmF2aWdhdGlvbkRhdGFSZWYgZGF0YVJl
ZikKICAgICB7Ci0gICAgICAgIFdLUmV0YWluUHRyPFdLVVJMUmVxdWVzdFJlZj4gcmVxdWVzdFdL
KEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5T3JpZ2luYWxSZXF1ZXN0KGRhdGFSZWYpKTsK
LSAgICAgICAgcmVxdWVzdCA9IGFkb3B0UmVmKGV3a191cmxfcmVxdWVzdF9uZXcocmVxdWVzdFdL
LmdldCgpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgX0V3a19OYXZpZ2F0aW9uX0Rh
dGEoZGF0YVJlZikpOwogICAgIH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBfRXdrX05hdmln
YXRpb25fRGF0YShXS05hdmlnYXRpb25EYXRhUmVmIGRhdGFSZWYpCisgICAgICAgIDogcmVxdWVz
dChFd2tfVXJsX1JlcXVlc3Q6OmNyZWF0ZShhZG9wdFdLKFdLTmF2aWdhdGlvbkRhdGFDb3B5T3Jp
Z2luYWxSZXF1ZXN0KGRhdGFSZWYpKS5nZXQoKSkpCisgICAgICAgICwgdGl0bGUoQWRvcHRXSywg
V0tOYXZpZ2F0aW9uRGF0YUNvcHlUaXRsZShkYXRhUmVmKSkKKyAgICAgICAgLCB1cmwoQWRvcHRX
SywgV0tOYXZpZ2F0aW9uRGF0YUNvcHlVUkwoZGF0YVJlZikpCisgICAgeyB9CiB9OwogCiB0eXBl
ZGVmIHN0cnVjdCBfRXdrX05hdmlnYXRpb25fRGF0YSBFd2tfTmF2aWdhdGlvbl9EYXRhOwogCi1F
d2tfTmF2aWdhdGlvbl9EYXRhKiBld2tfbmF2aWdhdGlvbl9kYXRhX25ldyhXS05hdmlnYXRpb25E
YXRhUmVmIGRhdGFSZWYpOwotCiAjZW5kaWYgLy8gZXdrX25hdmlnYXRpb25fZGF0YV9wcml2YXRl
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZp
Z2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uY3BwCmluZGV4IGEwMWIzMjUuLmQz
NWMwN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19u
YXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmNwcApAQCAtMTI2LDEz
ICsxMjYsMyBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKEVWRU5UX01PRElGSUVSX0tF
WV9TSElGVCwga1dLRXZlbnRNb2RpZmllcnNTaGlmdEtleQogQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShFVkVOVF9NT0RJRklFUl9LRVlfQ1RSTCwga1dLRXZlbnRNb2RpZmllcnNDb250cm9s
S2V5KTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRVZFTlRfTU9ESUZJRVJfS0VZX0FM
VCwga1dLRXZlbnRNb2RpZmllcnNBbHRLZXkpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShFVkVOVF9NT0RJRklFUl9LRVlfTUVUQSwga1dLRXZlbnRNb2RpZmllcnNNZXRhS2V5KTsKLQot
RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKiBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVj
aXNpb25fbmV3KFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1v
dXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tVUkxS
ZXF1ZXN0UmVmIHJlcXVlc3QsIGNvbnN0IGNoYXIqIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxp
c3RlbmVyUmVmIGxpc3RlbmVyKQotewotICAgIHJldHVybiBuZXcgRXdrX05hdmlnYXRpb25fUG9s
aWN5X0RlY2lzaW9uKGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRpY19jYXN0PEV3a19OYXZpZ2F0aW9uX1R5cGU+KG5hdmlnYXRpb25U
eXBlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxFdmVudF9Nb3VzZV9CdXR0b24+KG1vdXNlQnV0dG9uKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxFdmVudF9Nb2RpZmll
cl9LZXlzPihtb2RpZmllcnMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFkb3B0UmVmKGV3a191cmxfcmVxdWVzdF9uZXcocmVxdWVzdCkpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lTmFtZSk7Ci19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlv
bl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUuaAppbmRleCBhNzFi
NzdlLi5iZTFhOGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9w
cml2YXRlLmgKQEAgLTM0LDEyICszNCwxNCBAQAogI2luY2x1ZGUgIldLUGFnZUxvYWRUeXBlcy5o
IgogI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0X3By
aXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiAvKioKICAqIFxzdHJ1Y3Qg
IF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24KICAqIEBicmllZiAgIENvbnRhaW5zIHRo
ZSBuYXZpZ2F0aW9uIHBvbGljeSBkZWNpc2lvbiBkYXRhLgogICovCi1zdHJ1Y3QgX0V3a19OYXZp
Z2F0aW9uX1BvbGljeV9EZWNpc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfTmF2aWdhdGlv
bl9Qb2xpY3lfRGVjaXNpb24+IHsKK2NsYXNzIF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNp
b24gOiBwdWJsaWMgUmVmQ291bnRlZDxfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uPiB7
CitwdWJsaWM6CiAgICAgV0tSZXRhaW5QdHI8V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmPiBsaXN0
ZW5lcjsKICAgICBib29sIGFjdGVkVXBvbkJ5Q2xpZW50OwogICAgIEV3a19OYXZpZ2F0aW9uX1R5
cGUgbmF2aWdhdGlvblR5cGU7CkBAIC00OCw2ICs1MCwyMCBAQCBzdHJ1Y3QgX0V3a19OYXZpZ2F0
aW9uX1BvbGljeV9EZWNpc2lvbiA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfTmF2aWdhdGlvbl9Q
b2xpYwogICAgIFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3Q7CiAgICAgV0tFaW5hU2hh
cmVkU3RyaW5nIGZyYW1lTmFtZTsKIAorICAgIH5fRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lz
aW9uKCkKKyAgICB7CisgICAgICAgIC8vIFRoaXMgaXMgdGhlIGRlZmF1bHQgY2hvaWNlIGZvciBh
bGwgcG9saWN5IGRlY2lzaW9ucyBpbiBXZWJQYWdlUHJveHkuY3BwLgorICAgICAgICBpZiAoIWFj
dGVkVXBvbkJ5Q2xpZW50KQorICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxp
c3RlbmVyLmdldCgpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxfRXdrX05hdmln
YXRpb25fUG9saWN5X0RlY2lzaW9uPiBjcmVhdGUoV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmln
YXRpb25UeXBlLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLRXZlbnRNb2RpZmll
cnMgbW9kaWZpZXJzLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdFJlZiwgY29uc3QgY2hhciogZnJh
bWVOYW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIpCisgICAgeworICAgICAg
ICBSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiByZXF1ZXN0ID0gRXdrX1VybF9SZXF1ZXN0OjpjcmVh
dGUocmVxdWVzdFJlZik7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgX0V3a19OYXZpZ2F0
aW9uX1BvbGljeV9EZWNpc2lvbihsaXN0ZW5lciwgc3RhdGljX2Nhc3Q8RXdrX05hdmlnYXRpb25f
VHlwZT4obmF2aWdhdGlvblR5cGUpLCBzdGF0aWNfY2FzdDxFdmVudF9Nb3VzZV9CdXR0b24+KG1v
dXNlQnV0dG9uKSwgc3RhdGljX2Nhc3Q8RXZlbnRfTW9kaWZpZXJfS2V5cz4obW9kaWZpZXJzKSwg
cmVxdWVzdC5yZWxlYXNlKCksIGZyYW1lTmFtZSkpOworICAgIH0KKworcHJpdmF0ZToKICAgICBf
RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBs
aXN0ZW5lciwgRXdrX05hdmlnYXRpb25fVHlwZSBuYXZpZ2F0aW9uVHlwZSwgRXZlbnRfTW91c2Vf
QnV0dG9uIG1vdXNlQnV0dG9uLCBFdmVudF9Nb2RpZmllcl9LZXlzIG1vZGlmaWVycywgUGFzc1Jl
ZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3QsIGNvbnN0IGNoYXIqIGZyYW1lTmFtZSkKICAg
ICAgICAgOiBsaXN0ZW5lcihsaXN0ZW5lcikKICAgICAgICAgLCBhY3RlZFVwb25CeUNsaWVudChm
YWxzZSkKQEAgLTU3LDE3ICs3Myw4IEBAIHN0cnVjdCBfRXdrX05hdmlnYXRpb25fUG9saWN5X0Rl
Y2lzaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8X0V3a19OYXZpZ2F0aW9uX1BvbGljCiAgICAgICAg
ICwgcmVxdWVzdChyZXF1ZXN0KQogICAgICAgICAsIGZyYW1lTmFtZShmcmFtZU5hbWUpCiAgICAg
eyB9Ci0KLSAgICB+X0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbigpCi0gICAgewotICAg
ICAgICAvLyBUaGlzIGlzIHRoZSBkZWZhdWx0IGNob2ljZSBmb3IgYWxsIHBvbGljeSBkZWNpc2lv
bnMgaW4gV2ViUGFnZVByb3h5LmNwcC4KLSAgICAgICAgaWYgKCFhY3RlZFVwb25CeUNsaWVudCkK
LSAgICAgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lci5nZXQoKSk7Ci0g
ICAgfQogfTsKIAogdHlwZWRlZiBzdHJ1Y3QgX0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lv
biBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb247CiAKLUV3a19OYXZpZ2F0aW9uX1BvbGlj
eV9EZWNpc2lvbiogZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX25ldyhXS0ZyYW1lTmF2
aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRv
biwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBj
b25zdCBjaGFyKiBmcmFtZU5hbWUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lcik7
Ci0KICNlbmRpZiAvLyBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVl
c3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0
LmNwcAppbmRleCBiMWM5NGFkLi5hYjU2OWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5jcHAKQEAgLTY1LDE0ICs2NSwzIEBA
IGNvbnN0IGNoYXIqIGV3a191cmxfcmVxdWVzdF9odHRwX21ldGhvZF9nZXQoY29uc3QgRXdrX1Vy
bF9SZXF1ZXN0KiByZXF1ZXN0KQogCiAgICAgcmV0dXJuIHJlcXVlc3QtPmh0dHBNZXRob2Q7CiB9
Ci0KLS8qKgotICogQGludGVybmFsCi0gKiBDb25zdHJ1Y3RzIGEgRXdrX1VybF9SZXF1ZXN0IGZy
b20gYSBXS1VSTFJlcXVlc3QuCi0gKi8KLUV3a19VcmxfUmVxdWVzdCogZXdrX3VybF9yZXF1ZXN0
X25ldyhXS1VSTFJlcXVlc3RSZWYgd2tVcmxSZXF1ZXN0KQotewotICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTCh3a1VybFJlcXVlc3QsIDApOwotCi0gICAgcmV0dXJuIG5ldyBFd2tf
VXJsX1JlcXVlc3Qod2tVcmxSZXF1ZXN0KTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oCmluZGV4IGFj
YmM5ODQuLmIxYmMxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaApAQCAtMzAsMTcgKzMwLDI1IEBA
CiAjaW5jbHVkZSAiV0tVUkwuaCIKICNpbmNsdWRlICJXS1VSTFJlcXVlc3QuaCIKICNpbmNsdWRl
ICJXZWJVUkxSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogLyoqCiAg
KiBcc3RydWN0ICBfRXdrX1VybF9SZXF1ZXN0CiAgKiBAYnJpZWYgICBDb250YWlucyB0aGUgVVJM
IHJlcXVlc3QgZGF0YS4KICAqLwotc3RydWN0IF9Fd2tfVXJsX1JlcXVlc3QgOiBwdWJsaWMgUmVm
Q291bnRlZDxfRXdrX1VybF9SZXF1ZXN0PiB7CitjbGFzcyBfRXdrX1VybF9SZXF1ZXN0IDogcHVi
bGljIFJlZkNvdW50ZWQ8X0V3a19VcmxfUmVxdWVzdD4geworcHVibGljOgogICAgIFdLRWluYVNo
YXJlZFN0cmluZyB1cmw7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIGZpcnN0UGFydHk7CiAgICAg
V0tFaW5hU2hhcmVkU3RyaW5nIGh0dHBNZXRob2Q7CiAKLSAgICBfRXdrX1VybF9SZXF1ZXN0KFdL
VVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPF9Fd2tfVXJs
X1JlcXVlc3Q+IGNyZWF0ZShXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdFJlZikKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgX0V3a19VcmxfUmVxdWVzdChyZXF1ZXN0UmVmKSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IF9Fd2tfVXJsX1JlcXVlc3QoV0tVUkxSZXF1
ZXN0UmVmIHJlcXVlc3RSZWYpCiAgICAgICAgIDogdXJsKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENv
cHlVUkwocmVxdWVzdFJlZikpCiAgICAgICAgICwgZmlyc3RQYXJ0eShBZG9wdFdLLCBXS1VSTFJl
cXVlc3RDb3B5Rmlyc3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdFJlZikpCiAgICAgICAgICwgaHR0
cE1ldGhvZChBZG9wdFdLLCBXS1VSTFJlcXVlc3RDb3B5SFRUUE1ldGhvZChyZXF1ZXN0UmVmKSkK
QEAgLTQ5LDYgKzU3LDQgQEAgc3RydWN0IF9Fd2tfVXJsX1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291
bnRlZDxfRXdrX1VybF9SZXF1ZXN0PiB7CiAKIHR5cGVkZWYgc3RydWN0IF9Fd2tfVXJsX1JlcXVl
c3QgRXdrX1VybF9SZXF1ZXN0OwogCi1Fd2tfVXJsX1JlcXVlc3QqIGV3a191cmxfcmVxdWVzdF9u
ZXcoV0tVUkxSZXF1ZXN0UmVmKTsKLQogI2VuZGlmIC8vIGV3a191cmxfcmVxdWVzdF9wcml2YXRl
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxf
cmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9y
ZXNwb25zZS5jcHAKaW5kZXggYTgyZjRkNS4uMTcyMjMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5jcHAKQEAgLTczLDEy
ICs3MywzIEBAIHVuc2lnbmVkIGxvbmcgZXdrX3VybF9yZXNwb25zZV9jb250ZW50X2xlbmd0aF9n
ZXQoY29uc3QgRXdrX1VybF9SZXNwb25zZSogcmVzcG9uCiAKICAgICByZXR1cm4gcmVzcG9uc2Ut
PmNvcmVSZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKTsKIH0KLQotLyoqCi0gKiBAaW50
ZXJuYWwKLSAqIENvbnN0cnVjdHMgYSBFd2tfVXJsX1Jlc3BvbnNlIGZyb20gYSBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlLgotICovCi1Fd2tfVXJsX1Jlc3BvbnNlKiBld2tfdXJsX3Jlc3BvbnNl
X25ldyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiBjb3JlUmVzcG9uc2UpCi17Ci0g
ICAgcmV0dXJuIG5ldyBFd2tfVXJsX1Jlc3BvbnNlKGNvcmVSZXNwb25zZSk7Ci19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9u
c2VfcHJpdmF0ZS5oCmluZGV4IDhkNDNjZGMuLjg4NWQzMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2VfcHJpdmF0
ZS5oCkBAIC0zMCwxNiArMzAsMjggQEAKICNpbmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIK
ICNpbmNsdWRlICJXS1VSTFJlc3BvbnNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
c3BvbnNlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKwogLyoqCiAgKiBcc3RydWN0
ICBfRXdrX1VybF9SZXNwb25zZQogICogQGJyaWVmICAgQ29udGFpbnMgdGhlIFVSTCByZXNwb25z
ZSBkYXRhLgogICovCi1zdHJ1Y3QgX0V3a19VcmxfUmVzcG9uc2UgOiBwdWJsaWMgUmVmQ291bnRl
ZDxfRXdrX1VybF9SZXNwb25zZT4geworY2xhc3MgX0V3a19VcmxfUmVzcG9uc2UgOiBwdWJsaWMg
UmVmQ291bnRlZDxfRXdrX1VybF9SZXNwb25zZT4geworcHVibGljOgogICAgIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgY29yZVJlc3BvbnNlOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7
CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIG1pbWVUeXBlOwogCi0gICAgX0V3a19VcmxfUmVzcG9u
c2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgX2NvcmVSZXNwb25zZSkKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxfRXdrX1VybF9SZXNwb25zZT4gY3JlYXRlKFdLVVJMUmVzcG9uc2VS
ZWYgd2tSZXNwb25zZSkKKyAgICB7CisgICAgICAgIGlmICghd2tSZXNwb25zZSkKKyAgICAgICAg
ICAgIHJldHVybiAwOworCisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgX0V3a19VcmxfUmVz
cG9uc2UoV2ViS2l0Ojp0b0ltcGwod2tSZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2UoKSkpOwor
ICAgIH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBfRXdrX1VybF9SZXNwb25zZShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiBfY29yZVJlc3BvbnNlKQogICAgICAgICA6IGNvcmVS
ZXNwb25zZShfY29yZVJlc3BvbnNlKQogICAgICAgICAsIHVybChBZG9wdFdLLCBXS1VSTFJlc3Bv
bnNlQ29weVVSTChXZWJLaXQ6OnRvQVBJKGNvcmVSZXNwb25zZSkpKQogICAgICAgICAsIG1pbWVU
eXBlKEFkb3B0V0ssIFdLVVJMUmVzcG9uc2VDb3B5TUlNRVR5cGUoV2ViS2l0Ojp0b0FQSShjb3Jl
UmVzcG9uc2UpKSkKQEAgLTQ4LDYgKzYwLDQgQEAgc3RydWN0IF9Fd2tfVXJsX1Jlc3BvbnNlIDog
cHVibGljIFJlZkNvdW50ZWQ8X0V3a19VcmxfUmVzcG9uc2U+IHsKIAogdHlwZWRlZiBzdHJ1Y3Qg
X0V3a19VcmxfUmVzcG9uc2UgRXdrX1VybF9SZXNwb25zZTsKIAotRXdrX1VybF9SZXNwb25zZSog
ZXdrX3VybF9yZXNwb25zZV9uZXcoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
b3VyY2VSZXNwb25zZSk7Ci0KICNlbmRpZiAvLyBld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGVfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGMy
MGM2YmMuLjRlMDczOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHAKQEAgLTE0NDgsNyArMTQ0OCw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19pbnRl
bnRfZGVsaXZlcihFdmFzX09iamVjdCogZXdrVmlldywgRXdrX0ludGVudCogaW50ZW50KQogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChpbnRlbnQsIGZhbHNlKTsKIAogICAgIFdl
YlBhZ2VQcm94eSogcGFnZSA9IHByaXYtPnBhZ2VQcm94eS5nZXQoKTsKLSAgICBwYWdlLT5kZWxp
dmVySW50ZW50VG9GcmFtZShwYWdlLT5tYWluRnJhbWUoKSwgdG9JbXBsKGV3a19pbnRlbnRfV0tJ
bnRlbnREYXRhUmVmX2dldChpbnRlbnQpKSk7CisgICAgcGFnZS0+ZGVsaXZlckludGVudFRvRnJh
bWUocGFnZS0+bWFpbkZyYW1lKCksIHRvSW1wbChpbnRlbnQtPndrSW50ZW50LmdldCgpKSk7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCmluZGV4IGZhMjJm
YTcuLjkxZDhhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCkBAIC01Miw3ICs1Miw3IEBAIHN0
YXRpYyB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYg
dGl0bGUsIFdLRnJhbWVSZWYgZnJhCiBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlSW50ZW50Rm9yRnJh
bWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ludGVudERhdGFSZWYgaW50ZW50LCBXS1R5cGVS
ZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgRXZhc19PYmplY3QqIGV3a1ZpZXcg
PSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KTsKLSAgICBSZWZQdHI8RXdrX0ludGVudD4gZXdrSW50ZW50ID0gYWRvcHRSZWYoZXdrX2ludGVu
dF9uZXcoaW50ZW50KSk7CisgICAgUmVmUHRyPEV3a19JbnRlbnQ+IGV3a0ludGVudCA9IEV3a19J
bnRlbnQ6OmNyZWF0ZShpbnRlbnQpOwogICAgIGV3a192aWV3X2ludGVudF9yZXF1ZXN0X25ldyhl
d2tWaWV3LCBld2tJbnRlbnQuZ2V0KCkpOwogfQogI2VuZGlmCkBAIC02MSw3ICs2MSw3IEBAIHN0
YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYs
IFdLSW50ZW50RGF0YVJlZiBpbnRlCiBzdGF0aWMgdm9pZCByZWdpc3RlckludGVudFNlcnZpY2VG
b3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLSW50ZW50U2VydmljZUluZm9SZWYgc2Vy
dmljZUluZm8sIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBFdmFz
X09iamVjdCogZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpOwotICAgIFJlZlB0cjxFd2tfSW50ZW50X1NlcnZpY2U+IGV3a0lu
dGVudFNlcnZpY2UgPSBhZG9wdFJlZihld2tfaW50ZW50X3NlcnZpY2VfbmV3KHNlcnZpY2VJbmZv
KSk7CisgICAgUmVmUHRyPEV3a19JbnRlbnRfU2VydmljZT4gZXdrSW50ZW50U2VydmljZSA9IEV3
a19JbnRlbnRfU2VydmljZTo6Y3JlYXRlKHNlcnZpY2VJbmZvKTsKICAgICBld2tfdmlld19pbnRl
bnRfc2VydmljZV9yZWdpc3Rlcihld2tWaWV3LCBld2tJbnRlbnRTZXJ2aWNlLmdldCgpKTsKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXdfcG9saWN5X2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcAppbmRleCBiY2ZiNjA4Li5iZGVjOWY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lf
Y2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
d19wb2xpY3lfY2xpZW50LmNwcApAQCAtNDQsMTMgKzQ0LDEzIEBAIHN0YXRpYyBpbmxpbmUgRXZh
c19PYmplY3QqIHRvRXdrVmlldyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogCiBzdGF0aWMgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwg
V0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1v
ZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYg
cmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1
c2VyRGF0YSovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIFJlZlB0cjxFd2tfTmF2
aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IGRlY2lzaW9uID0gYWRvcHRSZWYoZXdrX25hdmlnYXRp
b25fcG9saWN5X2RlY2lzaW9uX25ldyhuYXZpZ2F0aW9uVHlwZSwgbW91c2VCdXR0b24sIG1vZGlm
aWVycywgcmVxdWVzdCwgMCwgbGlzdGVuZXIpKTsKKyAgICBSZWZQdHI8RXdrX05hdmlnYXRpb25f
UG9saWN5X0RlY2lzaW9uPiBkZWNpc2lvbiA9IEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lv
bjo6Y3JlYXRlKG5hdmlnYXRpb25UeXBlLCBtb3VzZUJ1dHRvbiwgbW9kaWZpZXJzLCByZXF1ZXN0
LCAwLCBsaXN0ZW5lcik7CiAgICAgZXdrX3ZpZXdfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24o
dG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lvbi5nZXQoKSk7CiB9CiAKIHN0YXRpYyB2b2lk
IGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdL
RnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2Rp
ZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJl
cXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxp
c3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
ewotICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IGRlY2lzaW9uID0g
YWRvcHRSZWYoZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX25ldyhuYXZpZ2F0aW9uVHlw
ZSwgbW91c2VCdXR0b24sIG1vZGlmaWVycywgcmVxdWVzdCwgdG9JbXBsKGZyYW1lTmFtZSktPnN0
cmluZygpLnV0ZjgoKS5kYXRhKCksIGxpc3RlbmVyKSk7CisgICAgUmVmUHRyPEV3a19OYXZpZ2F0
aW9uX1BvbGljeV9EZWNpc2lvbj4gZGVjaXNpb24gPSBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVj
aXNpb246OmNyZWF0ZShuYXZpZ2F0aW9uVHlwZSwgbW91c2VCdXR0b24sIG1vZGlmaWVycywgcmVx
dWVzdCwgdG9JbXBsKGZyYW1lTmFtZSktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxpc3RlbmVy
KTsKICAgICBld2tfdmlld19uZXdfd2luZG93X3BvbGljeV9kZWNpc2lvbih0b0V3a1ZpZXcoY2xp
ZW50SW5mbyksIGRlY2lzaW9uLmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9j
bGllbnQuY3BwCmluZGV4IDY2OTdmZDkuLmVhOTZkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19yZXNvdXJjZV9s
b2FkX2NsaWVudC5jcHAKQEAgLTU3LDIxICs1NywyMSBAQCBzdGF0aWMgdm9pZCBkaWRJbml0aWF0
ZUxvYWRGb3JSZXNvdXJjZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYgd2tGcmFtZSwgdWludDY0X3Qg
cgogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB3a1VybChBZG9wdFdLLCBXS1VSTFJlcXVlc3RD
b3B5VVJMKHdrUmVxdWVzdCkpOwogCiAgICAgRXdrX1Jlc291cmNlKiByZXNvdXJjZSA9IGV3a19y
ZXNvdXJjZV9uZXcodG9JbXBsKHdrVXJsLmdldCgpKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
aXNNYWluUmVzb3VyY2UpOwotICAgIFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3QgPSBh
ZG9wdFJlZihld2tfdXJsX3JlcXVlc3RfbmV3KHdrUmVxdWVzdCkpOworICAgIFJlZlB0cjxFd2tf
VXJsX1JlcXVlc3Q+IHJlcXVlc3QgPSBFd2tfVXJsX1JlcXVlc3Q6OmNyZWF0ZSh3a1JlcXVlc3Qp
OwogICAgIGV3a192aWV3X3Jlc291cmNlX2xvYWRfaW5pdGlhdGVkKHRvRXdrVmlldyhjbGllbnRJ
bmZvKSwgcmVzb3VyY2VJZGVudGlmaWVyLCByZXNvdXJjZSwgcmVxdWVzdC5nZXQoKSk7CiAgICAg
ZXdrX3Jlc291cmNlX3VucmVmKHJlc291cmNlKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkU2VuZFJl
cXVlc3RGb3JSZXNvdXJjZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIHVpbnQ2NF90IHJlc291cmNl
SWRlbnRpZmllciwgV0tVUkxSZXF1ZXN0UmVmIHdrUmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiB3
a1JlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgUmVmUHRy
PEV3a19VcmxfUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0UmVmKGV3a191cmxfcmVxdWVzdF9uZXco
d2tSZXF1ZXN0KSk7Ci0gICAgUmVmUHRyPEV3a19VcmxfUmVzcG9uc2U+IHJlZGlyZWN0UmVzcG9u
c2UgPSB3a1JlZGlyZWN0UmVzcG9uc2UgPyBhZG9wdFJlZihld2tfdXJsX3Jlc3BvbnNlX25ldyh0
b0ltcGwod2tSZWRpcmVjdFJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpKSkgOiAwOworICAg
IFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3QgPSBFd2tfVXJsX1JlcXVlc3Q6OmNyZWF0
ZSh3a1JlcXVlc3QpOworICAgIFJlZlB0cjxFd2tfVXJsX1Jlc3BvbnNlPiByZWRpcmVjdFJlc3Bv
bnNlID0gRXdrX1VybF9SZXNwb25zZTo6Y3JlYXRlKHdrUmVkaXJlY3RSZXNwb25zZSk7CiAgICAg
ZXdrX3ZpZXdfcmVzb3VyY2VfcmVxdWVzdF9zZW50KHRvRXdrVmlldyhjbGllbnRJbmZvKSwgcmVz
b3VyY2VJZGVudGlmaWVyLCByZXF1ZXN0LmdldCgpLCByZWRpcmVjdFJlc3BvbnNlLmdldCgpKTsK
IH0KIAogc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tQYWdlUmVm
LCBXS0ZyYW1lUmVmLCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIsIFdLVVJMUmVzcG9uc2VS
ZWYgd2tSZXNwb25zZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBSZWZQdHI8RXdr
X1VybF9SZXNwb25zZT4gcmVzcG9uc2UgPSBhZG9wdFJlZihld2tfdXJsX3Jlc3BvbnNlX25ldyh0
b0ltcGwod2tSZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2UoKSkpOworICAgIFJlZlB0cjxFd2tf
VXJsX1Jlc3BvbnNlPiByZXNwb25zZSA9IEV3a19VcmxfUmVzcG9uc2U6OmNyZWF0ZSh3a1Jlc3Bv
bnNlKTsKICAgICBld2tfdmlld19yZXNvdXJjZV9sb2FkX3Jlc3BvbnNlKHRvRXdrVmlldyhjbGll
bnRJbmZvKSwgcmVzb3VyY2VJZGVudGlmaWVyLCByZXNwb25zZS5nZXQoKSk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>