<?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>99929</bug_id>
          
          <creation_ts>2012-10-21 04:22:11 -0700</creation_ts>
          <short_desc>[EFL][WK2] Make Ewk back / forward list classes members private and remove private C functions</short_desc>
          <delta_ts>2012-10-21 09:13:26 -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>99696</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>747077</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-21 04:22:11 -0700</bug_when>
    <thetext>As part of Bug 99696, this bug is for making the Ewk back/forward classes members private and remove the private C functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747079</commentid>
    <comment_count>1</comment_count>
      <attachid>169794</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-21 05:11:13 -0700</bug_when>
    <thetext>Created attachment 169794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747080</commentid>
    <comment_count>2</comment_count>
      <attachid>169795</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-21 05:13:22 -0700</bug_when>
    <thetext>Created attachment 169795
Patch

Fix bug title</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747108</commentid>
    <comment_count>3</comment_count>
      <attachid>169795</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-21 09:13:22 -0700</bug_when>
    <thetext>Comment on attachment 169795
Patch

Clearing flags on attachment: 169795

Committed r132003: &lt;http://trac.webkit.org/changeset/132003&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747109</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-21 09:13:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169794</attachid>
            <date>2012-10-21 05:11:13 -0700</date>
            <delta_ts>2012-10-21 05:13:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>99929_backforward_list_cpp.patch</filename>
            <type>text/plain</type>
            <size>18002</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3M2NjMmNlLi5kMzliYzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDkg
QEAKIDIwMTItMTAtMjEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAorICAgICAgICBbRUZMXVtXSzJdIE1ha2UgRXdrIGJhY2sgLyBmb3J3YXJkIGNsYXNz
ZXMgbWVtYmVycyBwcml2YXRlIGFuZCByZW1vdmUgcHJpdmF0ZSBDIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk5MjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEV3a19CYWNrX0Zv
cndhcmRfTGlzdCBhbmQgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0gbWVtYmVycworICAgICAg
ICBwcml2YXRlIGFuZCByZW1vdmUgcHJpdmF0ZSBDIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdC5jcHA6CisgICAgICAgIChFd2tf
QmFja19Gb3J3YXJkX0xpc3Q6OkV3a19CYWNrX0ZvcndhcmRfTGlzdCk6CisgICAgICAgIChFd2tf
QmFja19Gb3J3YXJkX0xpc3Q6Om5leHRJdGVtKToKKyAgICAgICAgKEV3a19CYWNrX0ZvcndhcmRf
TGlzdDo6cHJldmlvdXNJdGVtKToKKyAgICAgICAgKEV3a19CYWNrX0ZvcndhcmRfTGlzdDo6Y3Vy
cmVudEl0ZW0pOgorICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0OjppdGVtQXQpOgorICAg
ICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0OjpzaXplKToKKyAgICAgICAgKEV3a19CYWNrX0Zv
cndhcmRfTGlzdDo6YmFja0xpc3QpOgorICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0Ojpm
b3J3YXJkTGlzdCk6CisgICAgICAgIChFd2tfQmFja19Gb3J3YXJkX0xpc3Q6OmdldEZyb21DYWNo
ZU9yQ3JlYXRlKToKKyAgICAgICAgKEV3a19CYWNrX0ZvcndhcmRfTGlzdDo6Y3JlYXRlRWluYUxp
c3QpOgorICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0Ojp1cGRhdGUpOgorICAgICAgICAo
ZXdrX2JhY2tfZm9yd2FyZF9saXN0X2N1cnJlbnRfaXRlbV9nZXQpOgorICAgICAgICAoZXdrX2Jh
Y2tfZm9yd2FyZF9saXN0X3ByZXZpb3VzX2l0ZW1fZ2V0KToKKyAgICAgICAgKGV3a19iYWNrX2Zv
cndhcmRfbGlzdF9uZXh0X2l0ZW1fZ2V0KToKKyAgICAgICAgKGV3a19iYWNrX2ZvcndhcmRfbGlz
dF9pdGVtX2F0X2luZGV4X2dldCk6CisgICAgICAgIChld2tfYmFja19mb3J3YXJkX2xpc3RfY291
bnQpOgorICAgICAgICAoZXdrX2JhY2tfZm9yd2FyZF9saXN0X25fYmFja19pdGVtc19jb3B5KToK
KyAgICAgICAgKGV3a19iYWNrX2ZvcndhcmRfbGlzdF9uX2ZvcndhcmRfaXRlbXNfY29weSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uY3Bw
OgorICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW06OkV3a19CYWNrX0ZvcndhcmRf
TGlzdF9JdGVtKToKKyAgICAgICAgKEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtOjp1cmwpOgor
ICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW06OnRpdGxlKToKKyAgICAgICAgKEV3
a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtOjpvcmlnaW5hbFVSTCk6CisgICAgICAgIChld2tfYmFj
a19mb3J3YXJkX2xpc3RfaXRlbV91cmxfZ2V0KToKKyAgICAgICAgKGV3a19iYWNrX2ZvcndhcmRf
bGlzdF9pdGVtX3RpdGxlX2dldCk6CisgICAgICAgIChld2tfYmFja19mb3J3YXJkX2xpc3RfaXRl
bV9vcmlnaW5hbF91cmxfZ2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFj
a19mb3J3YXJkX2xpc3RfaXRlbV9wcml2YXRlLmg6CisgICAgICAgIChFd2tfQmFja19Gb3J3YXJk
X0xpc3RfSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19CYWNrX0ZvcndhcmRfTGlzdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHA6CisgICAg
ICAgIChkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QpOgorCisyMDEyLTEwLTIxICBDaHJpc3RvcGhl
IER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKICAgICAgICAgW0VGTF1bV0sy
XSBNYWtlIEV3ayBpbnRlbnQgY2xhc3NlcyBtZW1iZXJzIHByaXZhdGUKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5ODMyCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3Qu
Y3BwCmluZGV4IDYzNDA4ZDAuLjEyZGJiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0LmNwcApAQCAtMzQs
MzMgKzM0LDcwIEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLSNkZWZpbmUgRVdLX0JB
Q0tfRk9SV0FSRF9MSVNUX1dLX0dFVF9PUl9SRVRVUk4obGlzdCwgd2tMaXN0XywgLi4uKSAgXAot
ICAgIGlmICghKGxpc3QpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgICBFSU5BX0xPR19DUklUKCJsaXN0IGlzIE5VTEwuIik7ICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGlmICghKGxpc3QpLT53a0xp
c3QpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBFSU5B
X0xPR19DUklUKCJsaXN0LT53a0xpc3QgaXMgTlVMTC4iKTsgICAgICAgICAgICAgICAgXAotICAg
ICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIFdLQmFja0ZvcndhcmRMaXN0UmVmIHdrTGlzdF8gPSAobGlzdCkt
PndrTGlzdC5nZXQoKQorRXdrX0JhY2tfRm9yd2FyZF9MaXN0OjpFd2tfQmFja19Gb3J3YXJkX0xp
c3QoV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlzdFJlZikKKyAgICA6IG1fd2tMaXN0KGxpc3RSZWYp
Cit7IH0KIAorRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIEV3a19CYWNrX0ZvcndhcmRfTGlz
dDo6bmV4dEl0ZW0oKSBjb25zdAoreworICAgIHJldHVybiBnZXRGcm9tQ2FjaGVPckNyZWF0ZShX
S0JhY2tGb3J3YXJkTGlzdEdldEZvcndhcmRJdGVtKG1fd2tMaXN0LmdldCgpKSk7Cit9CiAKLXN0
YXRpYyBpbmxpbmUgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGFkZEl0ZW1Ub1dyYXBwZXJD
YWNoZShjb25zdCBFd2tfQmFja19Gb3J3YXJkX0xpc3QqIGxpc3QsIFdLQmFja0ZvcndhcmRMaXN0
SXRlbVJlZiB3a0l0ZW0pCitFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogRXdrX0JhY2tfRm9y
d2FyZF9MaXN0OjpwcmV2aW91c0l0ZW0oKSBjb25zdAogewotICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChsaXN0LCAwKTsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwod2tJdGVtLCAwKTsKKyAgICByZXR1cm4gZ2V0RnJvbUNhY2hlT3JDcmVhdGUoV0tCYWNrRm9y
d2FyZExpc3RHZXRCYWNrSXRlbShtX3drTGlzdC5nZXQoKSkpOworfQorCitFd2tfQmFja19Gb3J3
YXJkX0xpc3RfSXRlbSogRXdrX0JhY2tfRm9yd2FyZF9MaXN0OjpjdXJyZW50SXRlbSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGdldEZyb21DYWNoZU9yQ3JlYXRlKFdLQmFja0ZvcndhcmRMaXN0R2V0
Q3VycmVudEl0ZW0obV93a0xpc3QuZ2V0KCkpKTsKK30KKworRXdrX0JhY2tfRm9yd2FyZF9MaXN0
X0l0ZW0qIEV3a19CYWNrX0ZvcndhcmRfTGlzdDo6aXRlbUF0KGludCBpbmRleCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZ2V0RnJvbUNhY2hlT3JDcmVhdGUoV0tCYWNrRm9yd2FyZExpc3RHZXRJdGVt
QXRJbmRleChtX3drTGlzdC5nZXQoKSwgaW5kZXgpKTsKK30KKwordW5zaWduZWQgRXdrX0JhY2tf
Rm9yd2FyZF9MaXN0OjpzaXplKCkgY29uc3QKK3sKKyAgICBjb25zdCB1bnNpZ25lZCBjdXJyZW50
SXRlbSA9IFdLQmFja0ZvcndhcmRMaXN0R2V0Q3VycmVudEl0ZW0obV93a0xpc3QuZ2V0KCkpID8g
MSA6IDA7CisKKyAgICByZXR1cm4gV0tCYWNrRm9yd2FyZExpc3RHZXRCYWNrTGlzdENvdW50KG1f
d2tMaXN0LmdldCgpKSArIFdLQmFja0ZvcndhcmRMaXN0R2V0Rm9yd2FyZExpc3RDb3VudChtX3dr
TGlzdC5nZXQoKSkgKyBjdXJyZW50SXRlbTsKK30KKworV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4g
RXdrX0JhY2tfRm9yd2FyZF9MaXN0OjpiYWNrTGlzdChpbnQgbGltaXQpIGNvbnN0Cit7CisgICAg
aWYgKGxpbWl0ID09IC0xKQorICAgICAgICBsaW1pdCA9IFdLQmFja0ZvcndhcmRMaXN0R2V0QmFj
a0xpc3RDb3VudChtX3drTGlzdC5nZXQoKSk7CisgICAgQVNTRVJUKGxpbWl0ID49IDApOworCisg
ICAgcmV0dXJuIGFkb3B0V0soV0tCYWNrRm9yd2FyZExpc3RDb3B5QmFja0xpc3RXaXRoTGltaXQo
bV93a0xpc3QuZ2V0KCksIGxpbWl0KSk7Cit9CisKK1dLUmV0YWluUHRyPFdLQXJyYXlSZWY+IEV3
a19CYWNrX0ZvcndhcmRfTGlzdDo6Zm9yd2FyZExpc3QoaW50IGxpbWl0KSBjb25zdAoreworICAg
IGlmIChsaW1pdCA9PSAtMSkKKyAgICAgICAgbGltaXQgPSBXS0JhY2tGb3J3YXJkTGlzdEdldEZv
cndhcmRMaXN0Q291bnQobV93a0xpc3QuZ2V0KCkpOworICAgIEFTU0VSVChsaW1pdCA+PSAwKTsK
KworICAgIHJldHVybiBhZG9wdFdLKFdLQmFja0ZvcndhcmRMaXN0Q29weUZvcndhcmRMaXN0V2l0
aExpbWl0KG1fd2tMaXN0LmdldCgpLCBsaW1pdCkpOworfQogCi0gICAgUmVmUHRyPEV3a19CYWNr
X0ZvcndhcmRfTGlzdF9JdGVtPiBpdGVtID0gbGlzdC0+d3JhcHBlckNhY2hlLmdldCh3a0l0ZW0p
OworRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIEV3a19CYWNrX0ZvcndhcmRfTGlzdDo6Z2V0
RnJvbUNhY2hlT3JDcmVhdGUoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrSXRlbSkgY29uc3QK
K3sKKyAgICBpZiAoIXdrSXRlbSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8RXdr
X0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0+IGl0ZW0gPSBtX3dyYXBwZXJDYWNoZS5nZXQod2tJdGVt
KTsKICAgICBpZiAoIWl0ZW0pIHsKICAgICAgICAgaXRlbSA9IEV3a19CYWNrX0ZvcndhcmRfTGlz
dF9JdGVtOjpjcmVhdGUod2tJdGVtKTsKLSAgICAgICAgbGlzdC0+d3JhcHBlckNhY2hlLnNldCh3
a0l0ZW0sIGl0ZW0pOworICAgICAgICBtX3dyYXBwZXJDYWNoZS5zZXQod2tJdGVtLCBpdGVtKTsK
ICAgICB9CiAKICAgICByZXR1cm4gaXRlbS5nZXQoKTsKIH0KIAotc3RhdGljIGlubGluZSBFaW5h
X0xpc3QqIGNyZWF0ZUVpbmFMaXN0KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdCogbGlzdCwg
V0tBcnJheVJlZiB3a0xpc3QpCitFaW5hX0xpc3QqIEV3a19CYWNrX0ZvcndhcmRfTGlzdDo6Y3Jl
YXRlRWluYUxpc3QoV0tBcnJheVJlZiB3a0xpc3QpIGNvbnN0CiB7CiAgICAgaWYgKCF3a0xpc3Qp
CiAgICAgICAgIHJldHVybiAwOwpAQCAtNzAsODYgKzEwNyw4MCBAQCBzdGF0aWMgaW5saW5lIEVp
bmFfTGlzdCogY3JlYXRlRWluYUxpc3QoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBsaXN0
LCBXS0FycgogICAgIGNvbnN0IHNpemVfdCBjb3VudCA9IFdLQXJyYXlHZXRTaXplKHdrTGlzdCk7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIFdLQmFj
a0ZvcndhcmRMaXN0SXRlbVJlZiB3a0l0ZW0gPSBzdGF0aWNfY2FzdDxXS0JhY2tGb3J3YXJkTGlz
dEl0ZW1SZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleCh3a0xpc3QsIGkpKTsKLSAgICAgICAgRXdr
X0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0gPSBhZGRJdGVtVG9XcmFwcGVyQ2FjaGUobGlz
dCwgd2tJdGVtKTsKKyAgICAgICAgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0gPSBn
ZXRGcm9tQ2FjaGVPckNyZWF0ZSh3a0l0ZW0pOwogICAgICAgICByZXN1bHQgPSBlaW5hX2xpc3Rf
YXBwZW5kKHJlc3VsdCwgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcmVmKGl0ZW0pKTsKICAg
ICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICogVXBk
YXRlcyBpdGVtcyBjYWNoZS4KKyAqLwordm9pZCBFd2tfQmFja19Gb3J3YXJkX0xpc3Q6OnVwZGF0
ZShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgd2tBZGRlZEl0ZW0sIFdLQXJyYXlSZWYgd2tSZW1v
dmVkSXRlbXMpCit7CisgICAgaWYgKHdrQWRkZWRJdGVtKSAvLyBDaGVja2luZyBhbHNvIGhlcmUg
dG8gYXZvaWQgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMIHdhcm5pbmdzLgorICAgICAg
ICBnZXRGcm9tQ2FjaGVPckNyZWF0ZSh3a0FkZGVkSXRlbSk7IC8vIFB1dHMgbmV3IGl0ZW0gdG8g
dGhlIGNhY2hlLgorCisgICAgY29uc3Qgc2l6ZV90IHJlbW92ZWRJdGVtc1NpemUgPSB3a1JlbW92
ZWRJdGVtcyA/IFdLQXJyYXlHZXRTaXplKHdrUmVtb3ZlZEl0ZW1zKSA6IDA7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCByZW1vdmVkSXRlbXNTaXplOyArK2kpIHsKKyAgICAgICAgV0tCYWNr
Rm9yd2FyZExpc3RJdGVtUmVmIHdrSXRlbSA9IHN0YXRpY19jYXN0PFdLQmFja0ZvcndhcmRMaXN0
SXRlbVJlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdrUmVtb3ZlZEl0ZW1zLCBpKSk7CisgICAg
ICAgIG1fd3JhcHBlckNhY2hlLnJlbW92ZSh3a0l0ZW0pOworICAgIH0KK30KKwogRXdrX0JhY2tf
Rm9yd2FyZF9MaXN0X0l0ZW0qIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9jdXJyZW50X2l0ZW1fZ2V0
KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdCogbGlzdCkKIHsKLSAgICBFV0tfQkFDS19GT1JX
QVJEX0xJU1RfV0tfR0VUX09SX1JFVFVSTihsaXN0LCB3a0xpc3QsIDApOworICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChsaXN0LCAwKTsKIAotICAgIHJldHVybiBhZGRJdGVtVG9X
cmFwcGVyQ2FjaGUobGlzdCwgV0tCYWNrRm9yd2FyZExpc3RHZXRDdXJyZW50SXRlbSh3a0xpc3Qp
KTsKKyAgICByZXR1cm4gbGlzdC0+Y3VycmVudEl0ZW0oKTsKIH0KIAogRXdrX0JhY2tfRm9yd2Fy
ZF9MaXN0X0l0ZW0qIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9wcmV2aW91c19pdGVtX2dldChjb25z
dCBFd2tfQmFja19Gb3J3YXJkX0xpc3QqIGxpc3QpCiB7Ci0gICAgRVdLX0JBQ0tfRk9SV0FSRF9M
SVNUX1dLX0dFVF9PUl9SRVRVUk4obGlzdCwgd2tMaXN0LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwobGlzdCwgMCk7CiAKLSAgICByZXR1cm4gYWRkSXRlbVRvV3JhcHBl
ckNhY2hlKGxpc3QsIFdLQmFja0ZvcndhcmRMaXN0R2V0QmFja0l0ZW0od2tMaXN0KSk7CisgICAg
cmV0dXJuIGxpc3QtPnByZXZpb3VzSXRlbSgpOwogfQogCiBFd2tfQmFja19Gb3J3YXJkX0xpc3Rf
SXRlbSogZXdrX2JhY2tfZm9yd2FyZF9saXN0X25leHRfaXRlbV9nZXQoY29uc3QgRXdrX0JhY2tf
Rm9yd2FyZF9MaXN0KiBsaXN0KQogewotICAgIEVXS19CQUNLX0ZPUldBUkRfTElTVF9XS19HRVRf
T1JfUkVUVVJOKGxpc3QsIHdrTGlzdCwgMCk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKGxpc3QsIDApOwogCi0gICAgcmV0dXJuIGFkZEl0ZW1Ub1dyYXBwZXJDYWNoZShsaXN0
LCBXS0JhY2tGb3J3YXJkTGlzdEdldEZvcndhcmRJdGVtKHdrTGlzdCkpOworICAgIHJldHVybiBs
aXN0LT5uZXh0SXRlbSgpOwogfQogCiBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogZXdrX2Jh
Y2tfZm9yd2FyZF9saXN0X2l0ZW1fYXRfaW5kZXhfZ2V0KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRf
TGlzdCogbGlzdCwgaW50IGluZGV4KQogewotICAgIEVXS19CQUNLX0ZPUldBUkRfTElTVF9XS19H
RVRfT1JfUkVUVVJOKGxpc3QsIHdrTGlzdCwgMCk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKGxpc3QsIDApOwogCi0gICAgcmV0dXJuIGFkZEl0ZW1Ub1dyYXBwZXJDYWNoZShs
aXN0LCBXS0JhY2tGb3J3YXJkTGlzdEdldEl0ZW1BdEluZGV4KHdrTGlzdCwgaW5kZXgpKTsKKyAg
ICByZXR1cm4gbGlzdC0+aXRlbUF0KGluZGV4KTsKIH0KIAogdW5zaWduZWQgZXdrX2JhY2tfZm9y
d2FyZF9saXN0X2NvdW50KEV3a19CYWNrX0ZvcndhcmRfTGlzdCogbGlzdCkKIHsKLSAgICBFV0tf
QkFDS19GT1JXQVJEX0xJU1RfV0tfR0VUX09SX1JFVFVSTihsaXN0LCB3a0xpc3QsIDApOwotCi0g
ICAgY29uc3QgdW5zaWduZWQgY3VycmVudEl0ZW0gPSBld2tfYmFja19mb3J3YXJkX2xpc3RfY3Vy
cmVudF9pdGVtX2dldChsaXN0KSA/IDEgOiAwOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChsaXN0LCAwKTsKIAotICAgIHJldHVybiBXS0JhY2tGb3J3YXJkTGlzdEdldEJhY2tM
aXN0Q291bnQod2tMaXN0KSArIFdLQmFja0ZvcndhcmRMaXN0R2V0Rm9yd2FyZExpc3RDb3VudCh3
a0xpc3QpICsgY3VycmVudEl0ZW07CisgICAgcmV0dXJuIGxpc3QtPnNpemUoKTsKIH0KIAogRWlu
YV9MaXN0KiBld2tfYmFja19mb3J3YXJkX2xpc3Rfbl9iYWNrX2l0ZW1zX2NvcHkoY29uc3QgRXdr
X0JhY2tfRm9yd2FyZF9MaXN0KiBsaXN0LCBpbnQgbGltaXQpCiB7Ci0gICAgRVdLX0JBQ0tfRk9S
V0FSRF9MSVNUX1dLX0dFVF9PUl9SRVRVUk4obGlzdCwgd2tMaXN0LCAwKTsKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobGlzdCwgMCk7CisgICAgRUlOQV9TQUZFVFlfT05fRkFM
U0VfUkVUVVJOX1ZBTChsaW1pdCA9PSAtMSB8fCBsaW1pdCA+IDAsIDApOwogCi0gICAgaWYgKGxp
bWl0ID09IC0xKQotICAgICAgICBsaW1pdCA9IFdLQmFja0ZvcndhcmRMaXN0R2V0QmFja0xpc3RD
b3VudCh3a0xpc3QpOwotICAgIEVJTkFfU0FGRVRZX09OX0ZBTFNFX1JFVFVSTl9WQUwobGltaXQg
Pj0gMCwgMCk7Ci0gICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gYmFja0xpc3QoQWRvcHRXSywg
V0tCYWNrRm9yd2FyZExpc3RDb3B5QmFja0xpc3RXaXRoTGltaXQod2tMaXN0LCBsaW1pdCkpOwor
ICAgIFdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IGJhY2tMaXN0ID0gbGlzdC0+YmFja0xpc3QobGlt
aXQpOwogCi0gICAgcmV0dXJuIGNyZWF0ZUVpbmFMaXN0KGxpc3QsIGJhY2tMaXN0LmdldCgpKTsK
KyAgICByZXR1cm4gbGlzdC0+Y3JlYXRlRWluYUxpc3QoYmFja0xpc3QuZ2V0KCkpOwogfQogCiBF
aW5hX0xpc3QqIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9uX2ZvcndhcmRfaXRlbXNfY29weShjb25z
dCBFd2tfQmFja19Gb3J3YXJkX0xpc3QqIGxpc3QsIGludCBsaW1pdCkKIHsKLSAgICBFV0tfQkFD
S19GT1JXQVJEX0xJU1RfV0tfR0VUX09SX1JFVFVSTihsaXN0LCB3a0xpc3QsIDApOwotCi0gICAg
aWYgKGxpbWl0ID09IC0xKQotICAgICAgICBsaW1pdCA9IFdLQmFja0ZvcndhcmRMaXN0R2V0Rm9y
d2FyZExpc3RDb3VudCh3a0xpc3QpOwotICAgIEVJTkFfU0FGRVRZX09OX0ZBTFNFX1JFVFVSTl9W
QUwobGltaXQgPj0gMCwgMCk7Ci0gICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gZm9yd2FyZExp
c3QoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RDb3B5Rm9yd2FyZExpc3RXaXRoTGltaXQod2tM
aXN0LCBsaW1pdCkpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChsaXN0LCAw
KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9GQUxTRV9SRVRVUk5fVkFMKGxpbWl0ID09IC0xIHx8IGxp
bWl0ID4gMCwgMCk7CiAKLSAgICByZXR1cm4gY3JlYXRlRWluYUxpc3QobGlzdCwgZm9yd2FyZExp
c3QuZ2V0KCkpOwotfQorICAgIFdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IGZvcndhcmRMaXN0ID0g
bGlzdC0+Zm9yd2FyZExpc3QobGltaXQpOwogCi0vKioKLSAqIEBpbnRlcm5hbAotICogVXBkYXRl
cyBpdGVtcyBjYWNoZS4KLSAqLwotdm9pZCBld2tfYmFja19mb3J3YXJkX2xpc3RfY2hhbmdlZChF
d2tfQmFja19Gb3J3YXJkX0xpc3QqIGxpc3QsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiB3a0Fk
ZGVkSXRlbSwgV0tBcnJheVJlZiB3a1JlbW92ZWRJdGVtcykKLXsKLSAgICBpZiAod2tBZGRlZEl0
ZW0pIC8vIENoZWNraW5nIGFsc28gaGVyZSB0byBhdm9pZCBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwgd2FybmluZ3MuCi0gICAgICAgIGFkZEl0ZW1Ub1dyYXBwZXJDYWNoZShsaXN0LCB3
a0FkZGVkSXRlbSk7IC8vIFB1dHMgbmV3IGl0ZW0gdG8gdGhlIGNhY2hlLgotCi0gICAgY29uc3Qg
c2l6ZV90IHJlbW92ZWRJdGVtc1NpemUgPSB3a1JlbW92ZWRJdGVtcyA/IFdLQXJyYXlHZXRTaXpl
KHdrUmVtb3ZlZEl0ZW1zKSA6IDA7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZW1vdmVk
SXRlbXNTaXplOyArK2kpIHsKLSAgICAgICAgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrSXRl
bSA9IHN0YXRpY19jYXN0PFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZj4oV0tBcnJheUdldEl0ZW1B
dEluZGV4KHdrUmVtb3ZlZEl0ZW1zLCBpKSk7Ci0gICAgICAgIGxpc3QtPndyYXBwZXJDYWNoZS5y
ZW1vdmUod2tJdGVtKTsKLSAgICB9CisgICAgcmV0dXJuIGxpc3QtPmNyZWF0ZUVpbmFMaXN0KGZv
cndhcmRMaXN0LmdldCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtLmNwcAppbmRleCA4
Y2ExZTBkLi41ZWMyMzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwCkBAIC0zMiwx
NiArMzIsMzAgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI2RlZmluZSBFV0tfQkFD
S19GT1JXQVJEX0xJU1RfSVRFTV9XS19HRVRfT1JfUkVUVVJOKGl0ZW0sIHdrSXRlbV8sIC4uLikg
ICAgXAotICAgIGlmICghKGl0ZW0pKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBFSU5BX0xPR19DUklUKCJpdGVtIGlz
IE5VTEwuIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBy
ZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGlmICghKGl0ZW0pLT53a0l0ZW0p
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
ICAgICBFSU5BX0xPR19DUklUKCJpdGVtLT53a0l0ZW0gaXMgTlVMTC4iKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiB3a0l0ZW1fID0gKGl0ZW0pLT53a0l0ZW0u
Z2V0KCkKK0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtOjpFd2tfQmFja19Gb3J3YXJkX0xpc3Rf
SXRlbShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbVJlZikKKyAgICA6IG1fd2tJdGVtKGl0
ZW1SZWYpCit7IH0KKworY29uc3QgY2hhciogRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW06OnVy
bCgpIGNvbnN0Cit7CisgICAgbV91cmwgPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRXSywgV0tC
YWNrRm9yd2FyZExpc3RJdGVtQ29weVVSTChtX3drSXRlbS5nZXQoKSkpOworCisgICAgcmV0dXJu
IG1fdXJsOworfQorCitjb25zdCBjaGFyKiBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbTo6dGl0
bGUoKSBjb25zdAoreworICAgIG1fdGl0bGUgPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRXSywg
V0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weVRpdGxlKG1fd2tJdGVtLmdldCgpKSk7CisKKyAgICBy
ZXR1cm4gbV90aXRsZTsKK30KKworY29uc3QgY2hhciogRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0
ZW06Om9yaWdpbmFsVVJMKCkgY29uc3QKK3sKKyAgICBtX29yaWdpbmFsVVJMID0gV0tFaW5hU2hh
cmVkU3RyaW5nKEFkb3B0V0ssIFdLQmFja0ZvcndhcmRMaXN0SXRlbUNvcHlPcmlnaW5hbFVSTCht
X3drSXRlbS5nZXQoKSkpOworCisgICAgcmV0dXJuIG1fb3JpZ2luYWxVUkw7Cit9CiAKIEV3a19C
YWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9yZWYoRXdr
X0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0pCiB7CkBAIC02MCwyNyArNzQsMjEgQEAgdm9p
ZCBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV91bnJlZihFd2tfQmFja19Gb3J3YXJkX0xpc3Rf
SXRlbSogaXRlbSkKIAogY29uc3QgY2hhciogZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fdXJs
X2dldChjb25zdCBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogaXRlbSkKIHsKLSAgICBFV0tf
QkFDS19GT1JXQVJEX0xJU1RfSVRFTV9XS19HRVRfT1JfUkVUVVJOKGl0ZW0sIHdrSXRlbSwgMCk7
Ci0KLSAgICBpdGVtLT51cmwgPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRXSywgV0tCYWNrRm9y
d2FyZExpc3RJdGVtQ29weVVSTCh3a0l0ZW0pKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoaXRlbSwgMCk7CiAKLSAgICByZXR1cm4gaXRlbS0+dXJsOworICAgIHJldHVybiBp
dGVtLT51cmwoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1f
dGl0bGVfZ2V0KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQogewotICAg
IEVXS19CQUNLX0ZPUldBUkRfTElTVF9JVEVNX1dLX0dFVF9PUl9SRVRVUk4oaXRlbSwgd2tJdGVt
LCAwKTsKLQotICAgIGl0ZW0tPnRpdGxlID0gV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdL
QmFja0ZvcndhcmRMaXN0SXRlbUNvcHlUaXRsZSh3a0l0ZW0pKTsKKyAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoaXRlbSwgMCk7CiAKLSAgICByZXR1cm4gaXRlbS0+dGl0bGU7Cisg
ICAgcmV0dXJuIGl0ZW0tPnRpdGxlKCk7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19iYWNrX2Zvcndh
cmRfbGlzdF9pdGVtX29yaWdpbmFsX3VybF9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0
X0l0ZW0qIGl0ZW0pCiB7Ci0gICAgRVdLX0JBQ0tfRk9SV0FSRF9MSVNUX0lURU1fV0tfR0VUX09S
X1JFVFVSTihpdGVtLCB3a0l0ZW0sIDApOwotCi0gICAgaXRlbS0+b3JpZ2luYWxVUkwgPSBXS0Vp
bmFTaGFyZWRTdHJpbmcoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weU9yaWdpbmFs
VVJMKHdrSXRlbSkpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChpdGVtLCAw
KTsKIAotICAgIHJldHVybiBpdGVtLT5vcmlnaW5hbFVSTDsKKyAgICByZXR1cm4gaXRlbS0+b3Jp
Z2luYWxVUkwoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGUuaApp
bmRleCBhMzAwYTMwNS4uNTA3MThiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVt
X3ByaXZhdGUuaApAQCAtMzcsMjAgKzM3LDIyIEBACiAgKi8KIGNsYXNzIEV3a19CYWNrX0Zvcndh
cmRfTGlzdF9JdGVtIDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0
ZW0+IHsKIHB1YmxpYzoKLSAgICBXS1JldGFpblB0cjxXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY+
IHdrSXRlbTsKLSAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7Ci0gICAgbXV0YWJs
ZSBXS0VpbmFTaGFyZWRTdHJpbmcgdGl0bGU7Ci0gICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJp
bmcgb3JpZ2luYWxVUkw7Ci0KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tfQmFja19Gb3J3YXJk
X0xpc3RfSXRlbT4gY3JlYXRlKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRl
bShpdGVtUmVmKSk7CiAgICAgfQogCisgICAgY29uc3QgY2hhciogdXJsKCkgY29uc3Q7CisgICAg
Y29uc3QgY2hhciogdGl0bGUoKSBjb25zdDsKKyAgICBjb25zdCBjaGFyKiBvcmlnaW5hbFVSTCgp
IGNvbnN0OworCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEV3a19CYWNrX0ZvcndhcmRfTGlzdF9J
dGVtKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKQotICAgICAgICA6IHdrSXRlbShp
dGVtUmVmKQotICAgIHsgfQorICAgIGV4cGxpY2l0IEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVt
KFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKTsKKworICAgIFdLUmV0YWluUHRyPFdL
QmFja0ZvcndhcmRMaXN0SXRlbVJlZj4gbV93a0l0ZW07CisgICAgbXV0YWJsZSBXS0VpbmFTaGFy
ZWRTdHJpbmcgbV91cmw7CisgICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJpbmcgbV90aXRsZTsK
KyAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyBtX29yaWdpbmFsVVJMOwogfTsKIAogI2Vu
ZGlmIC8vIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xp
c3RfcHJpdmF0ZS5oCmluZGV4IGZjZjI1ZjYuLjdhYWQ0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9s
aXN0X3ByaXZhdGUuaApAQCAtMzYsMjAgKzM2LDMwIEBAIHR5cGVkZWYgSGFzaE1hcDxXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1SZWYsIFJlZlB0cjxFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbT4gPiBJ
CiAKIGNsYXNzIEV3a19CYWNrX0ZvcndhcmRfTGlzdCB7CiBwdWJsaWM6Ci0gICAgV0tSZXRhaW5Q
dHI8V0tCYWNrRm9yd2FyZExpc3RSZWY+IHdrTGlzdDsKLSAgICBtdXRhYmxlIEl0ZW1zTWFwIHdy
YXBwZXJDYWNoZTsKLQogICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3a19CYWNrX0ZvcndhcmRfTGlz
dD4gY3JlYXRlKFdLQmFja0ZvcndhcmRMaXN0UmVmIGxpc3RSZWYpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEV3a19CYWNrX0ZvcndhcmRfTGlzdChsaXN0UmVmKSk7CiAgICAg
fQogCisgICAgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIHByZXZpb3VzSXRlbSgpIGNvbnN0
OworICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBjdXJyZW50SXRlbSgpIGNvbnN0Owor
ICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBuZXh0SXRlbSgpIGNvbnN0OworICAgIEV3
a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtQXQoaW50IGluZGV4KSBjb25zdDsKKworICAg
IFdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IGJhY2tMaXN0KGludCBsaW1pdCA9IC0xKSBjb25zdDsK
KyAgICBXS1JldGFpblB0cjxXS0FycmF5UmVmPiBmb3J3YXJkTGlzdChpbnQgbGltaXQgPSAtMSkg
Y29uc3Q7CisgICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0OworCisgICAgdm9pZCB1cGRhdGUoV0tC
YWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrQWRkZWRJdGVtLCBXS0FycmF5UmVmIHdrUmVtb3ZlZEl0
ZW1zKTsKKyAgICBFaW5hX0xpc3QqIGNyZWF0ZUVpbmFMaXN0KFdLQXJyYXlSZWYgd2tMaXN0KSBj
b25zdDsKKwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBFd2tfQmFja19Gb3J3YXJkX0xpc3QoV0tC
YWNrRm9yd2FyZExpc3RSZWYgbGlzdFJlZikKLSAgICAgICAgOiB3a0xpc3QobGlzdFJlZikKLSAg
ICB7IH0KLX07CisgICAgZXhwbGljaXQgRXdrX0JhY2tfRm9yd2FyZF9MaXN0KFdLQmFja0Zvcndh
cmRMaXN0UmVmIGxpc3RSZWYpOworCisgICAgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGdl
dEZyb21DYWNoZU9yQ3JlYXRlKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiB3a0l0ZW0pIGNvbnN0
OwogCi12b2lkIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9jaGFuZ2VkKEV3a19CYWNrX0ZvcndhcmRf
TGlzdCosIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiB3a0FkZGVkSXRlbSwgV0tBcnJheVJlZiB3
a1JlbW92ZWRJdGVtcyk7CisgICAgV0tSZXRhaW5QdHI8V0tCYWNrRm9yd2FyZExpc3RSZWY+IG1f
d2tMaXN0OworICAgIG11dGFibGUgSXRlbXNNYXAgbV93cmFwcGVyQ2FjaGU7Cit9OwogCiAjZW5k
aWYgLy8gZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNw
cAppbmRleCA4YzdhMDY0Li4wZDZkNWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcApAQCAtMTI2
LDcgKzEyNiwxMCBAQCBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV0tQYWdl
UmVmLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgYWRkZWRJdAogICAgIEV2YXNfT2JqZWN0KiBl
d2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSk7CiAgICAgQVNTRVJUKGV3a1ZpZXcpOwogCi0gICAgZXdrX2JhY2tfZm9yd2FyZF9s
aXN0X2NoYW5nZWQoZXdrX3ZpZXdfYmFja19mb3J3YXJkX2xpc3RfZ2V0KGV3a1ZpZXcpLCBhZGRl
ZEl0ZW0sIHJlbW92ZWRJdGVtcyk7CisgICAgRXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBsaXN0ID0g
ZXdrX3ZpZXdfYmFja19mb3J3YXJkX2xpc3RfZ2V0KGV3a1ZpZXcpOworICAgIEFTU0VSVChsaXN0
KTsKKyAgICBsaXN0LT51cGRhdGUoYWRkZWRJdGVtLCByZW1vdmVkSXRlbXMpOworCiAgICAgZXdr
X3ZpZXdfYmFja19mb3J3YXJkX2xpc3RfY2hhbmdlZChld2tWaWV3KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169795</attachid>
            <date>2012-10-21 05:13:22 -0700</date>
            <delta_ts>2012-10-21 09:13:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>99929_backforward_list_cpp.patch</filename>
            <type>text/plain</type>
            <size>18007</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3M2NjMmNlLi4wMTlkZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDkg
QEAKIDIwMTItMTAtMjEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAorICAgICAgICBbRUZMXVtXSzJdIE1ha2UgRXdrIGJhY2sgLyBmb3J3YXJkIGxpc3Qg
Y2xhc3NlcyBtZW1iZXJzIHByaXZhdGUgYW5kIHJlbW92ZSBwcml2YXRlIEMgZnVuY3Rpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTkyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgRXdrX0Jh
Y2tfRm9yd2FyZF9MaXN0IGFuZCBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSBtZW1iZXJzCisg
ICAgICAgIHByaXZhdGUgYW5kIHJlbW92ZSBwcml2YXRlIEMgZnVuY3Rpb25zLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0LmNwcDoKKyAgICAgICAg
KEV3a19CYWNrX0ZvcndhcmRfTGlzdDo6RXdrX0JhY2tfRm9yd2FyZF9MaXN0KToKKyAgICAgICAg
KEV3a19CYWNrX0ZvcndhcmRfTGlzdDo6bmV4dEl0ZW0pOgorICAgICAgICAoRXdrX0JhY2tfRm9y
d2FyZF9MaXN0OjpwcmV2aW91c0l0ZW0pOgorICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0
OjpjdXJyZW50SXRlbSk6CisgICAgICAgIChFd2tfQmFja19Gb3J3YXJkX0xpc3Q6Oml0ZW1BdCk6
CisgICAgICAgIChFd2tfQmFja19Gb3J3YXJkX0xpc3Q6OnNpemUpOgorICAgICAgICAoRXdrX0Jh
Y2tfRm9yd2FyZF9MaXN0OjpiYWNrTGlzdCk6CisgICAgICAgIChFd2tfQmFja19Gb3J3YXJkX0xp
c3Q6OmZvcndhcmRMaXN0KToKKyAgICAgICAgKEV3a19CYWNrX0ZvcndhcmRfTGlzdDo6Z2V0RnJv
bUNhY2hlT3JDcmVhdGUpOgorICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0OjpjcmVhdGVF
aW5hTGlzdCk6CisgICAgICAgIChFd2tfQmFja19Gb3J3YXJkX0xpc3Q6OnVwZGF0ZSk6CisgICAg
ICAgIChld2tfYmFja19mb3J3YXJkX2xpc3RfY3VycmVudF9pdGVtX2dldCk6CisgICAgICAgIChl
d2tfYmFja19mb3J3YXJkX2xpc3RfcHJldmlvdXNfaXRlbV9nZXQpOgorICAgICAgICAoZXdrX2Jh
Y2tfZm9yd2FyZF9saXN0X25leHRfaXRlbV9nZXQpOgorICAgICAgICAoZXdrX2JhY2tfZm9yd2Fy
ZF9saXN0X2l0ZW1fYXRfaW5kZXhfZ2V0KToKKyAgICAgICAgKGV3a19iYWNrX2ZvcndhcmRfbGlz
dF9jb3VudCk6CisgICAgICAgIChld2tfYmFja19mb3J3YXJkX2xpc3Rfbl9iYWNrX2l0ZW1zX2Nv
cHkpOgorICAgICAgICAoZXdrX2JhY2tfZm9yd2FyZF9saXN0X25fZm9yd2FyZF9pdGVtc19jb3B5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRl
bS5jcHA6CisgICAgICAgIChFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbTo6RXdrX0JhY2tfRm9y
d2FyZF9MaXN0X0l0ZW0pOgorICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW06OnVy
bCk6CisgICAgICAgIChFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbTo6dGl0bGUpOgorICAgICAg
ICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW06Om9yaWdpbmFsVVJMKToKKyAgICAgICAgKGV3
a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3VybF9nZXQpOgorICAgICAgICAoZXdrX2JhY2tfZm9y
d2FyZF9saXN0X2l0ZW1fdGl0bGVfZ2V0KToKKyAgICAgICAgKGV3a19iYWNrX2ZvcndhcmRfbGlz
dF9pdGVtX29yaWdpbmFsX3VybF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3
a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19CYWNrX0Zv
cndhcmRfTGlzdF9JdGVtKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19m
b3J3YXJkX2xpc3RfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcDoK
KyAgICAgICAgKGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCk6CisKKzIwMTItMTAtMjEgIENocmlz
dG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKwogICAgICAgICBbRUZM
XVtXSzJdIE1ha2UgRXdrIGludGVudCBjbGFzc2VzIG1lbWJlcnMgcHJpdmF0ZQogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk4MzIKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRf
bGlzdC5jcHAKaW5kZXggNjM0MDhkMC4uMTJkYmI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3QuY3BwCkBA
IC0zNCwzMyArMzQsNzAgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI2RlZmluZSBF
V0tfQkFDS19GT1JXQVJEX0xJU1RfV0tfR0VUX09SX1JFVFVSTihsaXN0LCB3a0xpc3RfLCAuLi4p
ICBcCi0gICAgaWYgKCEobGlzdCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgIEVJTkFfTE9HX0NSSVQoImxpc3QgaXMgTlVMTC4iKTsgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgaWYgKCEobGlzdCkt
PndrTGlzdCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
IEVJTkFfTE9HX0NSSVQoImxpc3QtPndrTGlzdCBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICBc
Ci0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgV0tCYWNrRm9yd2FyZExpc3RSZWYgd2tMaXN0XyA9IChs
aXN0KS0+d2tMaXN0LmdldCgpCitFd2tfQmFja19Gb3J3YXJkX0xpc3Q6OkV3a19CYWNrX0Zvcndh
cmRfTGlzdChXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0UmVmKQorICAgIDogbV93a0xpc3QobGlz
dFJlZikKK3sgfQogCitFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogRXdrX0JhY2tfRm9yd2Fy
ZF9MaXN0OjpuZXh0SXRlbSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldEZyb21DYWNoZU9yQ3Jl
YXRlKFdLQmFja0ZvcndhcmRMaXN0R2V0Rm9yd2FyZEl0ZW0obV93a0xpc3QuZ2V0KCkpKTsKK30K
IAotc3RhdGljIGlubGluZSBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogYWRkSXRlbVRvV3Jh
cHBlckNhY2hlKGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdCogbGlzdCwgV0tCYWNrRm9yd2Fy
ZExpc3RJdGVtUmVmIHdrSXRlbSkKK0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBFd2tfQmFj
a19Gb3J3YXJkX0xpc3Q6OnByZXZpb3VzSXRlbSgpIGNvbnN0CiB7Ci0gICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKGxpc3QsIDApOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTCh3a0l0ZW0sIDApOworICAgIHJldHVybiBnZXRGcm9tQ2FjaGVPckNyZWF0ZShXS0Jh
Y2tGb3J3YXJkTGlzdEdldEJhY2tJdGVtKG1fd2tMaXN0LmdldCgpKSk7Cit9CisKK0V3a19CYWNr
X0ZvcndhcmRfTGlzdF9JdGVtKiBFd2tfQmFja19Gb3J3YXJkX0xpc3Q6OmN1cnJlbnRJdGVtKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZ2V0RnJvbUNhY2hlT3JDcmVhdGUoV0tCYWNrRm9yd2FyZExp
c3RHZXRDdXJyZW50SXRlbShtX3drTGlzdC5nZXQoKSkpOworfQorCitFd2tfQmFja19Gb3J3YXJk
X0xpc3RfSXRlbSogRXdrX0JhY2tfRm9yd2FyZF9MaXN0OjppdGVtQXQoaW50IGluZGV4KSBjb25z
dAoreworICAgIHJldHVybiBnZXRGcm9tQ2FjaGVPckNyZWF0ZShXS0JhY2tGb3J3YXJkTGlzdEdl
dEl0ZW1BdEluZGV4KG1fd2tMaXN0LmdldCgpLCBpbmRleCkpOworfQorCit1bnNpZ25lZCBFd2tf
QmFja19Gb3J3YXJkX0xpc3Q6OnNpemUoKSBjb25zdAoreworICAgIGNvbnN0IHVuc2lnbmVkIGN1
cnJlbnRJdGVtID0gV0tCYWNrRm9yd2FyZExpc3RHZXRDdXJyZW50SXRlbShtX3drTGlzdC5nZXQo
KSkgPyAxIDogMDsKKworICAgIHJldHVybiBXS0JhY2tGb3J3YXJkTGlzdEdldEJhY2tMaXN0Q291
bnQobV93a0xpc3QuZ2V0KCkpICsgV0tCYWNrRm9yd2FyZExpc3RHZXRGb3J3YXJkTGlzdENvdW50
KG1fd2tMaXN0LmdldCgpKSArIGN1cnJlbnRJdGVtOworfQorCitXS1JldGFpblB0cjxXS0FycmF5
UmVmPiBFd2tfQmFja19Gb3J3YXJkX0xpc3Q6OmJhY2tMaXN0KGludCBsaW1pdCkgY29uc3QKK3sK
KyAgICBpZiAobGltaXQgPT0gLTEpCisgICAgICAgIGxpbWl0ID0gV0tCYWNrRm9yd2FyZExpc3RH
ZXRCYWNrTGlzdENvdW50KG1fd2tMaXN0LmdldCgpKTsKKyAgICBBU1NFUlQobGltaXQgPj0gMCk7
CisKKyAgICByZXR1cm4gYWRvcHRXSyhXS0JhY2tGb3J3YXJkTGlzdENvcHlCYWNrTGlzdFdpdGhM
aW1pdChtX3drTGlzdC5nZXQoKSwgbGltaXQpKTsKK30KKworV0tSZXRhaW5QdHI8V0tBcnJheVJl
Zj4gRXdrX0JhY2tfRm9yd2FyZF9MaXN0Ojpmb3J3YXJkTGlzdChpbnQgbGltaXQpIGNvbnN0Cit7
CisgICAgaWYgKGxpbWl0ID09IC0xKQorICAgICAgICBsaW1pdCA9IFdLQmFja0ZvcndhcmRMaXN0
R2V0Rm9yd2FyZExpc3RDb3VudChtX3drTGlzdC5nZXQoKSk7CisgICAgQVNTRVJUKGxpbWl0ID49
IDApOworCisgICAgcmV0dXJuIGFkb3B0V0soV0tCYWNrRm9yd2FyZExpc3RDb3B5Rm9yd2FyZExp
c3RXaXRoTGltaXQobV93a0xpc3QuZ2V0KCksIGxpbWl0KSk7Cit9CiAKLSAgICBSZWZQdHI8RXdr
X0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0+IGl0ZW0gPSBsaXN0LT53cmFwcGVyQ2FjaGUuZ2V0KHdr
SXRlbSk7CitFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogRXdrX0JhY2tfRm9yd2FyZF9MaXN0
OjpnZXRGcm9tQ2FjaGVPckNyZWF0ZShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgd2tJdGVtKSBj
b25zdAoreworICAgIGlmICghd2tJdGVtKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0
cjxFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbT4gaXRlbSA9IG1fd3JhcHBlckNhY2hlLmdldCh3
a0l0ZW0pOwogICAgIGlmICghaXRlbSkgewogICAgICAgICBpdGVtID0gRXdrX0JhY2tfRm9yd2Fy
ZF9MaXN0X0l0ZW06OmNyZWF0ZSh3a0l0ZW0pOwotICAgICAgICBsaXN0LT53cmFwcGVyQ2FjaGUu
c2V0KHdrSXRlbSwgaXRlbSk7CisgICAgICAgIG1fd3JhcHBlckNhY2hlLnNldCh3a0l0ZW0sIGl0
ZW0pOwogICAgIH0KIAogICAgIHJldHVybiBpdGVtLmdldCgpOwogfQogCi1zdGF0aWMgaW5saW5l
IEVpbmFfTGlzdCogY3JlYXRlRWluYUxpc3QoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBs
aXN0LCBXS0FycmF5UmVmIHdrTGlzdCkKK0VpbmFfTGlzdCogRXdrX0JhY2tfRm9yd2FyZF9MaXN0
OjpjcmVhdGVFaW5hTGlzdChXS0FycmF5UmVmIHdrTGlzdCkgY29uc3QKIHsKICAgICBpZiAoIXdr
TGlzdCkKICAgICAgICAgcmV0dXJuIDA7CkBAIC03MCw4NiArMTA3LDgwIEBAIHN0YXRpYyBpbmxp
bmUgRWluYV9MaXN0KiBjcmVhdGVFaW5hTGlzdChjb25zdCBFd2tfQmFja19Gb3J3YXJkX0xpc3Qq
IGxpc3QsIFdLQXJyCiAgICAgY29uc3Qgc2l6ZV90IGNvdW50ID0gV0tBcnJheUdldFNpemUod2tM
aXN0KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAg
V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrSXRlbSA9IHN0YXRpY19jYXN0PFdLQmFja0Zvcndh
cmRMaXN0SXRlbVJlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdrTGlzdCwgaSkpOwotICAgICAg
ICBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogaXRlbSA9IGFkZEl0ZW1Ub1dyYXBwZXJDYWNo
ZShsaXN0LCB3a0l0ZW0pOworICAgICAgICBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogaXRl
bSA9IGdldEZyb21DYWNoZU9yQ3JlYXRlKHdrSXRlbSk7CiAgICAgICAgIHJlc3VsdCA9IGVpbmFf
bGlzdF9hcHBlbmQocmVzdWx0LCBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9yZWYoaXRlbSkp
OwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKy8qKgorICogQGludGVybmFsCisg
KiBVcGRhdGVzIGl0ZW1zIGNhY2hlLgorICovCit2b2lkIEV3a19CYWNrX0ZvcndhcmRfTGlzdDo6
dXBkYXRlKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiB3a0FkZGVkSXRlbSwgV0tBcnJheVJlZiB3
a1JlbW92ZWRJdGVtcykKK3sKKyAgICBpZiAod2tBZGRlZEl0ZW0pIC8vIENoZWNraW5nIGFsc28g
aGVyZSB0byBhdm9pZCBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwgd2FybmluZ3MuCisg
ICAgICAgIGdldEZyb21DYWNoZU9yQ3JlYXRlKHdrQWRkZWRJdGVtKTsgLy8gUHV0cyBuZXcgaXRl
bSB0byB0aGUgY2FjaGUuCisKKyAgICBjb25zdCBzaXplX3QgcmVtb3ZlZEl0ZW1zU2l6ZSA9IHdr
UmVtb3ZlZEl0ZW1zID8gV0tBcnJheUdldFNpemUod2tSZW1vdmVkSXRlbXMpIDogMDsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHJlbW92ZWRJdGVtc1NpemU7ICsraSkgeworICAgICAgICBX
S0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgd2tJdGVtID0gc3RhdGljX2Nhc3Q8V0tCYWNrRm9yd2Fy
ZExpc3RJdGVtUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgod2tSZW1vdmVkSXRlbXMsIGkpKTsK
KyAgICAgICAgbV93cmFwcGVyQ2FjaGUucmVtb3ZlKHdrSXRlbSk7CisgICAgfQorfQorCiBFd2tf
QmFja19Gb3J3YXJkX0xpc3RfSXRlbSogZXdrX2JhY2tfZm9yd2FyZF9saXN0X2N1cnJlbnRfaXRl
bV9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBsaXN0KQogewotICAgIEVXS19CQUNL
X0ZPUldBUkRfTElTVF9XS19HRVRfT1JfUkVUVVJOKGxpc3QsIHdrTGlzdCwgMCk7CisgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGxpc3QsIDApOwogCi0gICAgcmV0dXJuIGFkZEl0
ZW1Ub1dyYXBwZXJDYWNoZShsaXN0LCBXS0JhY2tGb3J3YXJkTGlzdEdldEN1cnJlbnRJdGVtKHdr
TGlzdCkpOworICAgIHJldHVybiBsaXN0LT5jdXJyZW50SXRlbSgpOwogfQogCiBFd2tfQmFja19G
b3J3YXJkX0xpc3RfSXRlbSogZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByZXZpb3VzX2l0ZW1fZ2V0
KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdCogbGlzdCkKIHsKLSAgICBFV0tfQkFDS19GT1JX
QVJEX0xJU1RfV0tfR0VUX09SX1JFVFVSTihsaXN0LCB3a0xpc3QsIDApOworICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChsaXN0LCAwKTsKIAotICAgIHJldHVybiBhZGRJdGVtVG9X
cmFwcGVyQ2FjaGUobGlzdCwgV0tCYWNrRm9yd2FyZExpc3RHZXRCYWNrSXRlbSh3a0xpc3QpKTsK
KyAgICByZXR1cm4gbGlzdC0+cHJldmlvdXNJdGVtKCk7CiB9CiAKIEV3a19CYWNrX0ZvcndhcmRf
TGlzdF9JdGVtKiBld2tfYmFja19mb3J3YXJkX2xpc3RfbmV4dF9pdGVtX2dldChjb25zdCBFd2tf
QmFja19Gb3J3YXJkX0xpc3QqIGxpc3QpCiB7Ci0gICAgRVdLX0JBQ0tfRk9SV0FSRF9MSVNUX1dL
X0dFVF9PUl9SRVRVUk4obGlzdCwgd2tMaXN0LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwobGlzdCwgMCk7CiAKLSAgICByZXR1cm4gYWRkSXRlbVRvV3JhcHBlckNhY2hl
KGxpc3QsIFdLQmFja0ZvcndhcmRMaXN0R2V0Rm9yd2FyZEl0ZW0od2tMaXN0KSk7CisgICAgcmV0
dXJuIGxpc3QtPm5leHRJdGVtKCk7CiB9CiAKIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBl
d2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9hdF9pbmRleF9nZXQoY29uc3QgRXdrX0JhY2tfRm9y
d2FyZF9MaXN0KiBsaXN0LCBpbnQgaW5kZXgpCiB7Ci0gICAgRVdLX0JBQ0tfRk9SV0FSRF9MSVNU
X1dLX0dFVF9PUl9SRVRVUk4obGlzdCwgd2tMaXN0LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwobGlzdCwgMCk7CiAKLSAgICByZXR1cm4gYWRkSXRlbVRvV3JhcHBlckNh
Y2hlKGxpc3QsIFdLQmFja0ZvcndhcmRMaXN0R2V0SXRlbUF0SW5kZXgod2tMaXN0LCBpbmRleCkp
OworICAgIHJldHVybiBsaXN0LT5pdGVtQXQoaW5kZXgpOwogfQogCiB1bnNpZ25lZCBld2tfYmFj
a19mb3J3YXJkX2xpc3RfY291bnQoRXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBsaXN0KQogewotICAg
IEVXS19CQUNLX0ZPUldBUkRfTElTVF9XS19HRVRfT1JfUkVUVVJOKGxpc3QsIHdrTGlzdCwgMCk7
Ci0KLSAgICBjb25zdCB1bnNpZ25lZCBjdXJyZW50SXRlbSA9IGV3a19iYWNrX2ZvcndhcmRfbGlz
dF9jdXJyZW50X2l0ZW1fZ2V0KGxpc3QpID8gMSA6IDA7CisgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKGxpc3QsIDApOwogCi0gICAgcmV0dXJuIFdLQmFja0ZvcndhcmRMaXN0R2V0
QmFja0xpc3RDb3VudCh3a0xpc3QpICsgV0tCYWNrRm9yd2FyZExpc3RHZXRGb3J3YXJkTGlzdENv
dW50KHdrTGlzdCkgKyBjdXJyZW50SXRlbTsKKyAgICByZXR1cm4gbGlzdC0+c2l6ZSgpOwogfQog
CiBFaW5hX0xpc3QqIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9uX2JhY2tfaXRlbXNfY29weShjb25z
dCBFd2tfQmFja19Gb3J3YXJkX0xpc3QqIGxpc3QsIGludCBsaW1pdCkKIHsKLSAgICBFV0tfQkFD
S19GT1JXQVJEX0xJU1RfV0tfR0VUX09SX1JFVFVSTihsaXN0LCB3a0xpc3QsIDApOworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChsaXN0LCAwKTsKKyAgICBFSU5BX1NBRkVUWV9P
Tl9GQUxTRV9SRVRVUk5fVkFMKGxpbWl0ID09IC0xIHx8IGxpbWl0ID4gMCwgMCk7CiAKLSAgICBp
ZiAobGltaXQgPT0gLTEpCi0gICAgICAgIGxpbWl0ID0gV0tCYWNrRm9yd2FyZExpc3RHZXRCYWNr
TGlzdENvdW50KHdrTGlzdCk7Ci0gICAgRUlOQV9TQUZFVFlfT05fRkFMU0VfUkVUVVJOX1ZBTChs
aW1pdCA+PSAwLCAwKTsKLSAgICBXS1JldGFpblB0cjxXS0FycmF5UmVmPiBiYWNrTGlzdChBZG9w
dFdLLCBXS0JhY2tGb3J3YXJkTGlzdENvcHlCYWNrTGlzdFdpdGhMaW1pdCh3a0xpc3QsIGxpbWl0
KSk7CisgICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gYmFja0xpc3QgPSBsaXN0LT5iYWNrTGlz
dChsaW1pdCk7CiAKLSAgICByZXR1cm4gY3JlYXRlRWluYUxpc3QobGlzdCwgYmFja0xpc3QuZ2V0
KCkpOworICAgIHJldHVybiBsaXN0LT5jcmVhdGVFaW5hTGlzdChiYWNrTGlzdC5nZXQoKSk7CiB9
CiAKIEVpbmFfTGlzdCogZXdrX2JhY2tfZm9yd2FyZF9saXN0X25fZm9yd2FyZF9pdGVtc19jb3B5
KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdCogbGlzdCwgaW50IGxpbWl0KQogewotICAgIEVX
S19CQUNLX0ZPUldBUkRfTElTVF9XS19HRVRfT1JfUkVUVVJOKGxpc3QsIHdrTGlzdCwgMCk7Ci0K
LSAgICBpZiAobGltaXQgPT0gLTEpCi0gICAgICAgIGxpbWl0ID0gV0tCYWNrRm9yd2FyZExpc3RH
ZXRGb3J3YXJkTGlzdENvdW50KHdrTGlzdCk7Ci0gICAgRUlOQV9TQUZFVFlfT05fRkFMU0VfUkVU
VVJOX1ZBTChsaW1pdCA+PSAwLCAwKTsKLSAgICBXS1JldGFpblB0cjxXS0FycmF5UmVmPiBmb3J3
YXJkTGlzdChBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdENvcHlGb3J3YXJkTGlzdFdpdGhMaW1p
dCh3a0xpc3QsIGxpbWl0KSk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGxp
c3QsIDApOworICAgIEVJTkFfU0FGRVRZX09OX0ZBTFNFX1JFVFVSTl9WQUwobGltaXQgPT0gLTEg
fHwgbGltaXQgPiAwLCAwKTsKIAotICAgIHJldHVybiBjcmVhdGVFaW5hTGlzdChsaXN0LCBmb3J3
YXJkTGlzdC5nZXQoKSk7Ci19CisgICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gZm9yd2FyZExp
c3QgPSBsaXN0LT5mb3J3YXJkTGlzdChsaW1pdCk7CiAKLS8qKgotICogQGludGVybmFsCi0gKiBV
cGRhdGVzIGl0ZW1zIGNhY2hlLgotICovCi12b2lkIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9jaGFu
Z2VkKEV3a19CYWNrX0ZvcndhcmRfTGlzdCogbGlzdCwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVm
IHdrQWRkZWRJdGVtLCBXS0FycmF5UmVmIHdrUmVtb3ZlZEl0ZW1zKQotewotICAgIGlmICh3a0Fk
ZGVkSXRlbSkgLy8gQ2hlY2tpbmcgYWxzbyBoZXJlIHRvIGF2b2lkIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTCB3YXJuaW5ncy4KLSAgICAgICAgYWRkSXRlbVRvV3JhcHBlckNhY2hlKGxp
c3QsIHdrQWRkZWRJdGVtKTsgLy8gUHV0cyBuZXcgaXRlbSB0byB0aGUgY2FjaGUuCi0KLSAgICBj
b25zdCBzaXplX3QgcmVtb3ZlZEl0ZW1zU2l6ZSA9IHdrUmVtb3ZlZEl0ZW1zID8gV0tBcnJheUdl
dFNpemUod2tSZW1vdmVkSXRlbXMpIDogMDsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJl
bW92ZWRJdGVtc1NpemU7ICsraSkgewotICAgICAgICBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYg
d2tJdGVtID0gc3RhdGljX2Nhc3Q8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmPihXS0FycmF5R2V0
SXRlbUF0SW5kZXgod2tSZW1vdmVkSXRlbXMsIGkpKTsKLSAgICAgICAgbGlzdC0+d3JhcHBlckNh
Y2hlLnJlbW92ZSh3a0l0ZW0pOwotICAgIH0KKyAgICByZXR1cm4gbGlzdC0+Y3JlYXRlRWluYUxp
c3QoZm9yd2FyZExpc3QuZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uY3BwCmlu
ZGV4IDhjYTFlMGQuLjVlYzIzNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5jcHAKQEAg
LTMyLDE2ICszMiwzMCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0jZGVmaW5lIEVX
S19CQUNLX0ZPUldBUkRfTElTVF9JVEVNX1dLX0dFVF9PUl9SRVRVUk4oaXRlbSwgd2tJdGVtXywg
Li4uKSAgICBcCi0gICAgaWYgKCEoaXRlbSkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIEVJTkFfTE9HX0NSSVQoIml0
ZW0gaXMgTlVMTC4iKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgaWYgKCEoaXRlbSktPndr
SXRlbSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICAgIEVJTkFfTE9HX0NSSVQoIml0ZW0tPndrSXRlbSBpcyBOVUxMLiIpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrSXRlbV8gPSAoaXRlbSktPndr
SXRlbS5nZXQoKQorRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW06OkV3a19CYWNrX0ZvcndhcmRf
TGlzdF9JdGVtKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKQorICAgIDogbV93a0l0
ZW0oaXRlbVJlZikKK3sgfQorCitjb25zdCBjaGFyKiBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRl
bTo6dXJsKCkgY29uc3QKK3sKKyAgICBtX3VybCA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdL
LCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VVJMKG1fd2tJdGVtLmdldCgpKSk7CisKKyAgICBy
ZXR1cm4gbV91cmw7Cit9CisKK2NvbnN0IGNoYXIqIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVt
Ojp0aXRsZSgpIGNvbnN0Cit7CisgICAgbV90aXRsZSA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9w
dFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGl0bGUobV93a0l0ZW0uZ2V0KCkpKTsKKwor
ICAgIHJldHVybiBtX3RpdGxlOworfQorCitjb25zdCBjaGFyKiBFd2tfQmFja19Gb3J3YXJkX0xp
c3RfSXRlbTo6b3JpZ2luYWxVUkwoKSBjb25zdAoreworICAgIG1fb3JpZ2luYWxVUkwgPSBXS0Vp
bmFTaGFyZWRTdHJpbmcoQWRvcHRXSywgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weU9yaWdpbmFs
VVJMKG1fd2tJdGVtLmdldCgpKSk7CisKKyAgICByZXR1cm4gbV9vcmlnaW5hbFVSTDsKK30KIAog
RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3Jl
ZihFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogaXRlbSkKIHsKQEAgLTYwLDI3ICs3NCwyMSBA
QCB2b2lkIGV3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3VucmVmKEV3a19CYWNrX0ZvcndhcmRf
TGlzdF9JdGVtKiBpdGVtKQogCiBjb25zdCBjaGFyKiBld2tfYmFja19mb3J3YXJkX2xpc3RfaXRl
bV91cmxfZ2V0KGNvbnN0IEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKiBpdGVtKQogewotICAg
IEVXS19CQUNLX0ZPUldBUkRfTElTVF9JVEVNX1dLX0dFVF9PUl9SRVRVUk4oaXRlbSwgd2tJdGVt
LCAwKTsKLQotICAgIGl0ZW0tPnVybCA9IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1Db3B5VVJMKHdrSXRlbSkpOworICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChpdGVtLCAwKTsKIAotICAgIHJldHVybiBpdGVtLT51cmw7CisgICAgcmV0
dXJuIGl0ZW0tPnVybCgpOwogfQogCiBjb25zdCBjaGFyKiBld2tfYmFja19mb3J3YXJkX2xpc3Rf
aXRlbV90aXRsZV9nZXQoY29uc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW0pCiB7
Ci0gICAgRVdLX0JBQ0tfRk9SV0FSRF9MSVNUX0lURU1fV0tfR0VUX09SX1JFVFVSTihpdGVtLCB3
a0l0ZW0sIDApOwotCi0gICAgaXRlbS0+dGl0bGUgPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRX
SywgV0tCYWNrRm9yd2FyZExpc3RJdGVtQ29weVRpdGxlKHdrSXRlbSkpOworICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChpdGVtLCAwKTsKIAotICAgIHJldHVybiBpdGVtLT50aXRs
ZTsKKyAgICByZXR1cm4gaXRlbS0+dGl0bGUoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX2JhY2tf
Zm9yd2FyZF9saXN0X2l0ZW1fb3JpZ2luYWxfdXJsX2dldChjb25zdCBFd2tfQmFja19Gb3J3YXJk
X0xpc3RfSXRlbSogaXRlbSkKIHsKLSAgICBFV0tfQkFDS19GT1JXQVJEX0xJU1RfSVRFTV9XS19H
RVRfT1JfUkVUVVJOKGl0ZW0sIHdrSXRlbSwgMCk7Ci0KLSAgICBpdGVtLT5vcmlnaW5hbFVSTCA9
IFdLRWluYVNoYXJlZFN0cmluZyhBZG9wdFdLLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5T3Jp
Z2luYWxVUkwod2tJdGVtKSk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGl0
ZW0sIDApOwogCi0gICAgcmV0dXJuIGl0ZW0tPm9yaWdpbmFsVVJMOworICAgIHJldHVybiBpdGVt
LT5vcmlnaW5hbFVSTCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcHJpdmF0
ZS5oCmluZGV4IGEzMDBhMzA1Li41MDcxOGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0
X2l0ZW1fcHJpdmF0ZS5oCkBAIC0zNywyMCArMzcsMjIgQEAKICAqLwogY2xhc3MgRXdrX0JhY2tf
Rm9yd2FyZF9MaXN0X0l0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxFd2tfQmFja19Gb3J3YXJkX0xp
c3RfSXRlbT4gewogcHVibGljOgotICAgIFdLUmV0YWluUHRyPFdLQmFja0ZvcndhcmRMaXN0SXRl
bVJlZj4gd2tJdGVtOwotICAgIG11dGFibGUgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKLSAgICBt
dXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyB0aXRsZTsKLSAgICBtdXRhYmxlIFdLRWluYVNoYXJl
ZFN0cmluZyBvcmlnaW5hbFVSTDsKLQogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19CYWNrX0Zv
cndhcmRfTGlzdF9JdGVtPiBjcmVhdGUoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19CYWNrX0ZvcndhcmRfTGlz
dF9JdGVtKGl0ZW1SZWYpKTsKICAgICB9CiAKKyAgICBjb25zdCBjaGFyKiB1cmwoKSBjb25zdDsK
KyAgICBjb25zdCBjaGFyKiB0aXRsZSgpIGNvbnN0OworICAgIGNvbnN0IGNoYXIqIG9yaWdpbmFs
VVJMKCkgY29uc3Q7CisKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRXdrX0JhY2tfRm9yd2FyZF9M
aXN0X0l0ZW0oV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCi0gICAgICAgIDogd2tJ
dGVtKGl0ZW1SZWYpCi0gICAgeyB9CisgICAgZXhwbGljaXQgRXdrX0JhY2tfRm9yd2FyZF9MaXN0
X0l0ZW0oV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpOworCisgICAgV0tSZXRhaW5Q
dHI8V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmPiBtX3drSXRlbTsKKyAgICBtdXRhYmxlIFdLRWlu
YVNoYXJlZFN0cmluZyBtX3VybDsKKyAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyBtX3Rp
dGxlOworICAgIG11dGFibGUgV0tFaW5hU2hhcmVkU3RyaW5nIG1fb3JpZ2luYWxVUkw7CiB9Owog
CiAjZW5kaWYgLy8gZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2Zvcndh
cmRfbGlzdF9wcml2YXRlLmgKaW5kZXggZmNmMjVmNi4uN2FhZDQ2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3
YXJkX2xpc3RfcHJpdmF0ZS5oCkBAIC0zNiwyMCArMzYsMzAgQEAgdHlwZWRlZiBIYXNoTWFwPFdL
QmFja0ZvcndhcmRMaXN0SXRlbVJlZiwgUmVmUHRyPEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVt
PiA+IEkKIAogY2xhc3MgRXdrX0JhY2tfRm9yd2FyZF9MaXN0IHsKIHB1YmxpYzoKLSAgICBXS1Jl
dGFpblB0cjxXS0JhY2tGb3J3YXJkTGlzdFJlZj4gd2tMaXN0OwotICAgIG11dGFibGUgSXRlbXNN
YXAgd3JhcHBlckNhY2hlOwotCiAgICAgc3RhdGljIFBhc3NPd25QdHI8RXdrX0JhY2tfRm9yd2Fy
ZF9MaXN0PiBjcmVhdGUoV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlzdFJlZikKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrX0JhY2tfRm9yd2FyZF9MaXN0KGxpc3RSZWYpKTsK
ICAgICB9CiAKKyAgICBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSogcHJldmlvdXNJdGVtKCkg
Y29uc3Q7CisgICAgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGN1cnJlbnRJdGVtKCkgY29u
c3Q7CisgICAgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIG5leHRJdGVtKCkgY29uc3Q7Cisg
ICAgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0qIGl0ZW1BdChpbnQgaW5kZXgpIGNvbnN0Owor
CisgICAgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gYmFja0xpc3QoaW50IGxpbWl0ID0gLTEpIGNv
bnN0OworICAgIFdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IGZvcndhcmRMaXN0KGludCBsaW1pdCA9
IC0xKSBjb25zdDsKKyAgICB1bnNpZ25lZCBzaXplKCkgY29uc3Q7CisKKyAgICB2b2lkIHVwZGF0
ZShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgd2tBZGRlZEl0ZW0sIFdLQXJyYXlSZWYgd2tSZW1v
dmVkSXRlbXMpOworICAgIEVpbmFfTGlzdCogY3JlYXRlRWluYUxpc3QoV0tBcnJheVJlZiB3a0xp
c3QpIGNvbnN0OworCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEV3a19CYWNrX0ZvcndhcmRfTGlz
dChXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0UmVmKQotICAgICAgICA6IHdrTGlzdChsaXN0UmVm
KQotICAgIHsgfQotfTsKKyAgICBleHBsaWNpdCBFd2tfQmFja19Gb3J3YXJkX0xpc3QoV0tCYWNr
Rm9yd2FyZExpc3RSZWYgbGlzdFJlZik7CisKKyAgICBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRl
bSogZ2V0RnJvbUNhY2hlT3JDcmVhdGUoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrSXRlbSkg
Y29uc3Q7CiAKLXZvaWQgZXdrX2JhY2tfZm9yd2FyZF9saXN0X2NoYW5nZWQoRXdrX0JhY2tfRm9y
d2FyZF9MaXN0KiwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIHdrQWRkZWRJdGVtLCBXS0FycmF5
UmVmIHdrUmVtb3ZlZEl0ZW1zKTsKKyAgICBXS1JldGFpblB0cjxXS0JhY2tGb3J3YXJkTGlzdFJl
Zj4gbV93a0xpc3Q7CisgICAgbXV0YWJsZSBJdGVtc01hcCBtX3dyYXBwZXJDYWNoZTsKK307CiAK
ICNlbmRpZiAvLyBld2tfYmFja19mb3J3YXJkX2xpc3RfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGll
bnQuY3BwCmluZGV4IDhjN2EwNjQuLjBkNmQ1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCkBA
IC0xMjYsNyArMTI2LDEwIEBAIHN0YXRpYyB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChX
S1BhZ2VSZWYsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBhZGRlZEl0CiAgICAgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+
KGNsaWVudEluZm8pKTsKICAgICBBU1NFUlQoZXdrVmlldyk7CiAKLSAgICBld2tfYmFja19mb3J3
YXJkX2xpc3RfY2hhbmdlZChld2tfdmlld19iYWNrX2ZvcndhcmRfbGlzdF9nZXQoZXdrVmlldyks
IGFkZGVkSXRlbSwgcmVtb3ZlZEl0ZW1zKTsKKyAgICBFd2tfQmFja19Gb3J3YXJkX0xpc3QqIGxp
c3QgPSBld2tfdmlld19iYWNrX2ZvcndhcmRfbGlzdF9nZXQoZXdrVmlldyk7CisgICAgQVNTRVJU
KGxpc3QpOworICAgIGxpc3QtPnVwZGF0ZShhZGRlZEl0ZW0sIHJlbW92ZWRJdGVtcyk7CisKICAg
ICBld2tfdmlld19iYWNrX2ZvcndhcmRfbGlzdF9jaGFuZ2VkKGV3a1ZpZXcpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>