<?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>60588</bug_id>
          
          <creation_ts>2011-05-10 15:05:10 -0700</creation_ts>
          <short_desc>[chromium] Use parent/child terms for compositor tree structures consistently instead of superlayer/sublayer</short_desc>
          <delta_ts>2011-05-10 15:58:01 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>kbr</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>401537</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-05-10 15:05:10 -0700</bug_when>
    <thetext>[chromium] Use parent/child terms for compositor tree structures consistently instead of superlayer/sublayer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401539</commentid>
    <comment_count>1</comment_count>
      <attachid>93018</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-05-10 15:07:41 -0700</bug_when>
    <thetext>Created attachment 93018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401548</commentid>
    <comment_count>2</comment_count>
      <attachid>93018</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-05-10 15:11:18 -0700</bug_when>
    <thetext>Comment on attachment 93018
Patch

Looks good.  Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401600</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-05-10 15:58:01 -0700</bug_when>
    <thetext>Committed r86189: &lt;http://trac.webkit.org/changeset/86189&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93018</attachid>
            <date>2011-05-10 15:07:41 -0700</date>
            <delta_ts>2011-05-10 15:35:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60588-20110510150740.patch</filename>
            <type>text/plain</type>
            <size>33686</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYxNzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMWQ4ZTFlNjFkN2FhMWE1
NzFiOTYyZThkYTNhM2I0NDQ5YTBjNzE2Li42MWUzZTgwMjQ5NWQ1MWVmNTQ2ZWY5MjcwM2Q2ZmJm
MDdlYjFjZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTEtMDUtMTAgIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIFVzZSBwYXJlbnQvY2hpbGQgdGVy
bXMgZm9yIGNvbXBvc2l0b3IgdHJlZSBzdHJ1Y3R1cmVzIGNvbnNpc3RlbnRseSBpbnN0ZWFkIG9m
IHN1cGVybGF5ZXIvc3VibGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYwNTg4CisKKyAgICAgICAgR3JhcGhpY3NMYXllciB1c2VzIHBhcmVudC9j
aGlsZCB0ZXJtaW5vbG9neSBmb3IgdHJlZSBzdHJ1Y3R1cmUsIGFzIGRvZXMgQ0NMYXllckltcGwu
ICBMYXllckNocm9taXVtIHdhcyB1c2luZworICAgICAgICBzdXBlcmxheWVyL3N1YmxheWVyIHRl
cm1zLCBpbmhlcml0ZWQgZnJvbSB0aGlzIGNvZGUncyBicmFuY2hpbmcgZnJvbSB0aGUgcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0NBQ0YgY29kZS4gIFRoZQorICAgICAgICBtaXhlZCB0ZXJtaW5vbG9n
eSBpcyBjb25mdXNpbmcgYW5kIHBhcmVudC9jaGlsZCBpcyBtb3JlIGNvbW1vbiwgc28gdGhpcyB1
bmlmaWVzIGV2ZXJ5dGhpbmcgdG8gdXNlIHBhcmVudC9jaGlsZC4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIHJlZmFjdG9yIG9ubHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNocm9taXVtOjpzZXRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ2hyb21pdW06OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6YWRkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGRCZWxvdyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ2hyb21pdW06OmFkZENoaWxkQWJvdmUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNocm9taXVtOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNocm9taXVtOjpyZW1vdmVGcm9tUGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNUb0NhbnZhcyk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENvbnRlbnRzVG9NZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06Omhvc3RMYXllckZvckNoaWxk
cmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6bGF5ZXJGb3JQ
YXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVD
aGlsZExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRh
dGVMYXllclByZXNlcnZlczNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJv
bWl1bTo6c2V0dXBDb250ZW50c0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
Q2hyb21pdW06OkxheWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1
bTo6fkxheWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6YWRk
Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6aW5zZXJ0Q2hpbGQpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6cmVtb3ZlRnJvbVBhcmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXllckNocm9taXVtOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
ZXJDaHJvbWl1bTo6aW5kZXhPZkNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21p
dW06OnJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpyZW1vdmVB
bGxDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpzZXRDaGlsZHJl
bik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpwYXJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6ZHVtcExheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXll
ckNocm9taXVtOjpjaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpz
ZXRQYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6bnVtQ2hpbGRyZW4p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnVwZGF0
ZVByb3BlcnRpZXNBbmRSZW5kZXJTdXJmYWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJl
bmRlcmVyQ2hyb21pdW06OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXNSZWN1cnNpdmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpkdW1wUmVuZGVyU3VyZmFjZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpwYXJlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllckltcGw6OmRlc2NlbmRhbnRzRHJhd3NDb250ZW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oOgorCiAyMDExLTA1LTEw
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmlu
ZGV4IGI0MzhkODBjOTE5NDcyY2I0Y2Q5MTQ0ZmFiMDAyNmNmZTY3ZDVlMDYuLjZmMTU4OTVhYjM1
ODcyNWQ3ZjEzODllZjFhYTU5ZjllMTc2MDg3ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXll
ckNocm9taXVtLmNwcApAQCAtMTMwLDEwICsxMzAsMTAgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hy
b21pdW06OnVwZGF0ZU5hbWVzKCkKIGJvb2wgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXRDaGls
ZHJlbihjb25zdCBWZWN0b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZHJlbikKIHsKICAgICBib29s
IGNoaWxkcmVuQ2hhbmdlZCA9IEdyYXBoaWNzTGF5ZXI6OnNldENoaWxkcmVuKGNoaWxkcmVuKTsK
LSAgICAvLyBGSVhNRTogR3JhcGhpY3NMYXllcjo6c2V0Q2hpbGRyZW4gY2FsbHMgYWRkQ2hpbGQo
KSBmb3IgZWFjaCBzdWJsYXllciwgd2hpY2gKLSAgICAvLyB3aWxsIGVuZCB1cCBjYWxsaW5nIHVw
ZGF0ZVN1YmxheWVyTGlzdCgpIE4gdGltZXMuCisgICAgLy8gRklYTUU6IEdyYXBoaWNzTGF5ZXI6
OnNldENoaWxkcmVuIGNhbGxzIGFkZENoaWxkKCkgZm9yIGVhY2ggY2hpbGQsIHdoaWNoCisgICAg
Ly8gd2lsbCBlbmQgdXAgY2FsbGluZyB1cGRhdGVDaGlsZExpc3QoKSBOIHRpbWVzLgogICAgIGlm
IChjaGlsZHJlbkNoYW5nZWQpCi0gICAgICAgIHVwZGF0ZVN1YmxheWVyTGlzdCgpOworICAgICAg
ICB1cGRhdGVDaGlsZExpc3QoKTsKIAogICAgIHJldHVybiBjaGlsZHJlbkNoYW5nZWQ7CiB9CkBA
IC0xNDEsMzEgKzE0MSwzMSBAQCBib29sIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q2hpbGRy
ZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYgY2hpbGRyZW4pCiB2b2lkIEdyYXBoaWNz
TGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGQoR3JhcGhpY3NMYXllciogY2hpbGRMYXllcikKIHsKICAg
ICBHcmFwaGljc0xheWVyOjphZGRDaGlsZChjaGlsZExheWVyKTsKLSAgICB1cGRhdGVTdWJsYXll
ckxpc3QoKTsKKyAgICB1cGRhdGVDaGlsZExpc3QoKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVy
Q2hyb21pdW06OmFkZENoaWxkQXRJbmRleChHcmFwaGljc0xheWVyKiBjaGlsZExheWVyLCBpbnQg
aW5kZXgpCiB7CiAgICAgR3JhcGhpY3NMYXllcjo6YWRkQ2hpbGRBdEluZGV4KGNoaWxkTGF5ZXIs
IGluZGV4KTsKLSAgICB1cGRhdGVTdWJsYXllckxpc3QoKTsKKyAgICB1cGRhdGVDaGlsZExpc3Qo
KTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmFkZENoaWxkQmVsb3coR3JhcGhp
Y3NMYXllciogY2hpbGRMYXllciwgR3JhcGhpY3NMYXllciogc2libGluZykKIHsKICAgICBHcmFw
aGljc0xheWVyOjphZGRDaGlsZEJlbG93KGNoaWxkTGF5ZXIsIHNpYmxpbmcpOwotICAgIHVwZGF0
ZVN1YmxheWVyTGlzdCgpOworICAgIHVwZGF0ZUNoaWxkTGlzdCgpOwogfQogCiB2b2lkIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6YWRkQ2hpbGRBYm92ZShHcmFwaGljc0xheWVyKiBjaGlsZExheWVy
LCBHcmFwaGljc0xheWVyICpzaWJsaW5nKQogewogICAgIEdyYXBoaWNzTGF5ZXI6OmFkZENoaWxk
QWJvdmUoY2hpbGRMYXllciwgc2libGluZyk7Ci0gICAgdXBkYXRlU3VibGF5ZXJMaXN0KCk7Cisg
ICAgdXBkYXRlQ2hpbGRMaXN0KCk7CiB9CiAKIGJvb2wgR3JhcGhpY3NMYXllckNocm9taXVtOjpy
ZXBsYWNlQ2hpbGQoR3JhcGhpY3NMYXllciogb2xkQ2hpbGQsIEdyYXBoaWNzTGF5ZXIqIG5ld0No
aWxkKQogewogICAgIGlmIChHcmFwaGljc0xheWVyOjpyZXBsYWNlQ2hpbGQob2xkQ2hpbGQsIG5l
d0NoaWxkKSkgewotICAgICAgICB1cGRhdGVTdWJsYXllckxpc3QoKTsKKyAgICAgICAgdXBkYXRl
Q2hpbGRMaXN0KCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFs
c2U7CkBAIC0xNzQsNyArMTc0LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnJlcGxh
Y2VDaGlsZChHcmFwaGljc0xheWVyKiBvbGRDaGlsZCwgR3JhcGhpY3NMYXllcioKIHZvaWQgR3Jh
cGhpY3NMYXllckNocm9taXVtOjpyZW1vdmVGcm9tUGFyZW50KCkKIHsKICAgICBHcmFwaGljc0xh
eWVyOjpyZW1vdmVGcm9tUGFyZW50KCk7Ci0gICAgbGF5ZXJGb3JTdXBlcmxheWVyKCktPnJlbW92
ZUZyb21TdXBlcmxheWVyKCk7CisgICAgbGF5ZXJGb3JQYXJlbnQoKS0+cmVtb3ZlRnJvbVBhcmVu
dCgpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0UG9zaXRpb24oY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQpCkBAIC0zNjIsMTMgKzM2MiwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkKICAgICAgICAgaWYg
KG1fY29udGVudHNMYXllcikgewogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkID0gdHJ1ZTsK
IAotICAgICAgICAgICAgLy8gVGhlIG9sZCBjb250ZW50cyBsYXllciB3aWxsIGJlIHJlbW92ZWQg
dmlhIHVwZGF0ZVN1YmxheWVyTGlzdC4KKyAgICAgICAgICAgIC8vIFRoZSBvbGQgY29udGVudHMg
bGF5ZXIgd2lsbCBiZSByZW1vdmVkIHZpYSB1cGRhdGVDaGlsZExpc3QuCiAgICAgICAgICAgICBt
X2NvbnRlbnRzTGF5ZXIgPSAwOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGNoaWxkcmVu
Q2hhbmdlZCkKLSAgICAgICAgdXBkYXRlU3VibGF5ZXJMaXN0KCk7CisgICAgICAgIHVwZGF0ZUNo
aWxkTGlzdCgpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNU
b0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKQpAQCAtMzg4LDEzICszODgsMTMg
QEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcikKICAgICAgICAgaWYgKG1fY29udGVudHNMYXllcikgewog
ICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkID0gdHJ1ZTsKIAotICAgICAgICAgICAgLy8gVGhl
IG9sZCBjb250ZW50cyBsYXllciB3aWxsIGJlIHJlbW92ZWQgdmlhIHVwZGF0ZVN1YmxheWVyTGlz
dC4KKyAgICAgICAgICAgIC8vIFRoZSBvbGQgY29udGVudHMgbGF5ZXIgd2lsbCBiZSByZW1vdmVk
IHZpYSB1cGRhdGVDaGlsZExpc3QuCiAgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSAwOwog
ICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGNoaWxkcmVuQ2hhbmdlZCkKLSAgICAgICAgdXBk
YXRlU3VibGF5ZXJMaXN0KCk7CisgICAgICAgIHVwZGF0ZUNoaWxkTGlzdCgpOwogfQogCiB2b2lk
IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5ZXIq
IGxheWVyKQpAQCAtNDE0LDIxICs0MTQsMjEgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06
OnNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKiBsYXllcikKICAgICAgICAgaWYgKG1f
Y29udGVudHNMYXllcikgewogICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2VkID0gdHJ1ZTsKICAg
Ci0gICAgICAgICAgICAvLyBUaGUgb2xkIGNvbnRlbnRzIGxheWVyIHdpbGwgYmUgcmVtb3ZlZCB2
aWEgdXBkYXRlU3VibGF5ZXJMaXN0LgorICAgICAgICAgICAgLy8gVGhlIG9sZCBjb250ZW50cyBs
YXllciB3aWxsIGJlIHJlbW92ZWQgdmlhIHVwZGF0ZUNoaWxkTGlzdC4KICAgICAgICAgICAgIG1f
Y29udGVudHNMYXllciA9IDA7CiAgICAgICAgIH0KICAgICB9CiAgIAogICAgIGlmIChjaGlsZHJl
bkNoYW5nZWQpCi0gICAgICAgIHVwZGF0ZVN1YmxheWVyTGlzdCgpOworICAgICAgICB1cGRhdGVD
aGlsZExpc3QoKTsKIH0KIAotUGxhdGZvcm1MYXllciogR3JhcGhpY3NMYXllckNocm9taXVtOjpo
b3N0TGF5ZXJGb3JTdWJsYXllcnMoKSBjb25zdAorUGxhdGZvcm1MYXllciogR3JhcGhpY3NMYXll
ckNocm9taXVtOjpob3N0TGF5ZXJGb3JDaGlsZHJlbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
dHJhbnNmb3JtTGF5ZXIgPyBtX3RyYW5zZm9ybUxheWVyLmdldCgpIDogbV9sYXllci5nZXQoKTsK
IH0KIAotUGxhdGZvcm1MYXllciogR3JhcGhpY3NMYXllckNocm9taXVtOjpsYXllckZvclN1cGVy
bGF5ZXIoKSBjb25zdAorUGxhdGZvcm1MYXllciogR3JhcGhpY3NMYXllckNocm9taXVtOjpsYXll
ckZvclBhcmVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fdHJhbnNmb3JtTGF5ZXIgPyBtX3Ry
YW5zZm9ybUxheWVyLmdldCgpIDogbV9sYXllci5nZXQoKTsKIH0KQEAgLTQ1NywxOCArNDU3LDE4
IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xv
ciYgY29sb3IsIGZsb2F0IGJvcmRlcldpZHRoCiAgICAgfQogfQogCi12b2lkIEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6dXBkYXRlU3VibGF5ZXJMaXN0KCkKK3ZvaWQgR3JhcGhpY3NMYXllckNocm9t
aXVtOjp1cGRhdGVDaGlsZExpc3QoKQogewotICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1
bT4gPiBuZXdTdWJsYXllcnM7CisgICAgVmVjdG9yPFJlZlB0cjxMYXllckNocm9taXVtPiA+IG5l
d0NoaWxkcmVuOwogCiAgICAgaWYgKG1fdHJhbnNmb3JtTGF5ZXIpIHsKICAgICAgICAgLy8gQWRk
IHRoZSBwcmltYXJ5IGxheWVyIGZpcnN0LiBFdmVuIGlmIHdlIGhhdmUgbmVnYXRpdmUgei1vcmRl
ciBjaGlsZHJlbiwgdGhlIHByaW1hcnkgbGF5ZXIgYWx3YXlzIGNvbWVzIGJlaGluZC4KLSAgICAg
ICAgbmV3U3VibGF5ZXJzLmFwcGVuZChtX2xheWVyLmdldCgpKTsKKyAgICAgICAgbmV3Q2hpbGRy
ZW4uYXBwZW5kKG1fbGF5ZXIuZ2V0KCkpOwogICAgIH0gZWxzZSBpZiAobV9jb250ZW50c0xheWVy
KSB7CiAgICAgICAgIC8vIEZJWE1FOiBhZGQgdGhlIGNvbnRlbnRzIGxheWVyIGluIHRoZSBjb3Jy
ZWN0IG9yZGVyIHdpdGggbmVnYXRpdmUgei1vcmRlciBjaGlsZHJlbi4KICAgICAgICAgLy8gVGhp
cyBkb2VzIG5vdCBjYXVzZSB2aXNpYmxlIHJlbmRlcmluZyBpc3N1ZXMgYmVjYXVzZSBjdXJyZW50
bHkgY29udGVudHMgbGF5ZXJzIGFyZSBvbmx5IHVzZWQKICAgICAgICAgLy8gZm9yIHJlcGxhY2Vk
IGVsZW1lbnRzIHRoYXQgZG9uJ3QgaGF2ZSBjaGlsZHJlbi4KLSAgICAgICAgbmV3U3VibGF5ZXJz
LmFwcGVuZChtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpOworICAgICAgICBuZXdDaGlsZHJlbi5hcHBl
bmQobV9jb250ZW50c0xheWVyLmdldCgpKTsKICAgICB9CiAKICAgICBjb25zdCBWZWN0b3I8R3Jh
cGhpY3NMYXllcio+JiBjaGlsZExheWVycyA9IGNoaWxkcmVuKCk7CkBAIC00NzYsMjQgKzQ3Niwy
NCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlU3VibGF5ZXJMaXN0KCkKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUNoaWxkcmVuOyArK2kpIHsKICAgICAgICAgR3Jh
cGhpY3NMYXllckNocm9taXVtKiBjdXJDaGlsZCA9IHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bSo+KGNoaWxkTGF5ZXJzW2ldKTsKIAotICAgICAgICBMYXllckNocm9taXVtKiBjaGls
ZExheWVyID0gY3VyQ2hpbGQtPmxheWVyRm9yU3VwZXJsYXllcigpOwotICAgICAgICBuZXdTdWJs
YXllcnMuYXBwZW5kKGNoaWxkTGF5ZXIpOworICAgICAgICBMYXllckNocm9taXVtKiBjaGlsZExh
eWVyID0gY3VyQ2hpbGQtPmxheWVyRm9yUGFyZW50KCk7CisgICAgICAgIG5ld0NoaWxkcmVuLmFw
cGVuZChjaGlsZExheWVyKTsKICAgICB9CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5l
d1N1YmxheWVycy5zaXplKCk7ICsraSkKLSAgICAgICAgbmV3U3VibGF5ZXJzW2ldLT5yZW1vdmVG
cm9tU3VwZXJsYXllcigpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmV3Q2hpbGRyZW4u
c2l6ZSgpOyArK2kpCisgICAgICAgIG5ld0NoaWxkcmVuW2ldLT5yZW1vdmVGcm9tUGFyZW50KCk7
CiAKICAgICBpZiAobV90cmFuc2Zvcm1MYXllcikgewotICAgICAgICBtX3RyYW5zZm9ybUxheWVy
LT5zZXRTdWJsYXllcnMobmV3U3VibGF5ZXJzKTsKKyAgICAgICAgbV90cmFuc2Zvcm1MYXllci0+
c2V0Q2hpbGRyZW4obmV3Q2hpbGRyZW4pOwogCiAgICAgICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIp
IHsKICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSB0cmFuc2Zvcm0gbGF5ZXIsIHRoZW4gdGhl
IGNvbnRlbnRzIGxheWVyIGlzIHBhcmVudGVkIGluIHRoZQogICAgICAgICAgICAgLy8gcHJpbWFy
eSBsYXllciAod2hpY2ggaXMgaXRzZWxmIGEgY2hpbGQgb2YgdGhlIHRyYW5zZm9ybSBsYXllciku
Ci0gICAgICAgICAgICBtX2xheWVyLT5yZW1vdmVBbGxTdWJsYXllcnMoKTsKLSAgICAgICAgICAg
IG1fbGF5ZXItPmFkZFN1YmxheWVyKG1fY29udGVudHNMYXllcik7CisgICAgICAgICAgICBtX2xh
eWVyLT5yZW1vdmVBbGxDaGlsZHJlbigpOworICAgICAgICAgICAgbV9sYXllci0+YWRkQ2hpbGQo
bV9jb250ZW50c0xheWVyKTsKICAgICAgICAgfQogICAgIH0gZWxzZQotICAgICAgICBtX2xheWVy
LT5zZXRTdWJsYXllcnMobmV3U3VibGF5ZXJzKTsKKyAgICAgICAgbV9sYXllci0+c2V0Q2hpbGRy
ZW4obmV3Q2hpbGRyZW4pOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRl
TGF5ZXJQb3NpdGlvbigpCkBAIC01ODEsMTYgKzU4MSwxNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6dXBkYXRlTGF5ZXJQcmVzZXJ2ZXMzRCgpCiAgICAgICAgIG1fbGF5ZXItPnNldE9w
YWNpdHkoMSk7CiAKICAgICAgICAgLy8gTW92ZSB0aGlzIGxheWVyIHRvIGJlIGEgY2hpbGQgb2Yg
dGhlIHRyYW5zZm9ybSBsYXllci4KLSAgICAgICAgaWYgKG1fbGF5ZXItPnN1cGVybGF5ZXIoKSkK
LSAgICAgICAgICAgIG1fbGF5ZXItPnN1cGVybGF5ZXIoKS0+cmVwbGFjZVN1YmxheWVyKG1fbGF5
ZXIuZ2V0KCksIG1fdHJhbnNmb3JtTGF5ZXIuZ2V0KCkpOwotICAgICAgICBtX3RyYW5zZm9ybUxh
eWVyLT5hZGRTdWJsYXllcihtX2xheWVyLmdldCgpKTsKKyAgICAgICAgaWYgKG1fbGF5ZXItPnBh
cmVudCgpKQorICAgICAgICAgICAgbV9sYXllci0+cGFyZW50KCktPnJlcGxhY2VDaGlsZChtX2xh
eWVyLmdldCgpLCBtX3RyYW5zZm9ybUxheWVyLmdldCgpKTsKKyAgICAgICAgbV90cmFuc2Zvcm1M
YXllci0+YWRkQ2hpbGQobV9sYXllci5nZXQoKSk7CiAKLSAgICAgICAgdXBkYXRlU3VibGF5ZXJM
aXN0KCk7CisgICAgICAgIHVwZGF0ZUNoaWxkTGlzdCgpOwogICAgIH0gZWxzZSBpZiAoIW1fcHJl
c2VydmVzM0QgJiYgbV90cmFuc2Zvcm1MYXllcikgewogICAgICAgICAvLyBSZWxhY2UgdGhlIHRy
YW5zZm9ybUxheWVyIGluIHRoZSBwYXJlbnQgd2l0aCB0aGlzIGxheWVyLgotICAgICAgICBtX2xh
eWVyLT5yZW1vdmVGcm9tU3VwZXJsYXllcigpOwotICAgICAgICBpZiAobV90cmFuc2Zvcm1MYXll
ci0+c3VwZXJsYXllcigpKQotICAgICAgICAgICAgbV90cmFuc2Zvcm1MYXllci0+c3VwZXJsYXll
cigpLT5yZXBsYWNlU3VibGF5ZXIobV90cmFuc2Zvcm1MYXllci5nZXQoKSwgbV9sYXllci5nZXQo
KSk7CisgICAgICAgIG1fbGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKKyAgICAgICAgaWYgKG1f
dHJhbnNmb3JtTGF5ZXItPnBhcmVudCgpKQorICAgICAgICAgICAgbV90cmFuc2Zvcm1MYXllci0+
cGFyZW50KCktPnJlcGxhY2VDaGlsZChtX3RyYW5zZm9ybUxheWVyLmdldCgpLCBtX2xheWVyLmdl
dCgpKTsKIAogICAgICAgICAvLyBSZWxlYXNlIHRoZSB0cmFuc2Zvcm0gbGF5ZXIuCiAgICAgICAg
IG1fdHJhbnNmb3JtTGF5ZXIgPSAwOwpAQCAtNjAxLDcgKzYwMSw3IEBAIHZvaWQgR3JhcGhpY3NM
YXllckNocm9taXVtOjp1cGRhdGVMYXllclByZXNlcnZlczNEKCkKICAgICAgICAgdXBkYXRlVHJh
bnNmb3JtKCk7CiAgICAgICAgIHVwZGF0ZUNoaWxkcmVuVHJhbnNmb3JtKCk7CiAKLSAgICAgICAg
dXBkYXRlU3VibGF5ZXJMaXN0KCk7CisgICAgICAgIHVwZGF0ZUNoaWxkTGlzdCgpOwogICAgIH0K
IAogICAgIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7CkBAIC02NDgsNyArNjQ4LDcgQEAgdm9pZCBH
cmFwaGljc0xheWVyQ2hyb21pdW06OnNldHVwQ29udGVudHNMYXllcihMYXllckNocm9taXVtKiBj
b250ZW50c0xheWVyKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9jb250ZW50c0xheWVy
KSB7Ci0gICAgICAgIG1fY29udGVudHNMYXllci0+cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKTsKKyAg
ICAgICAgbV9jb250ZW50c0xheWVyLT5yZW1vdmVGcm9tUGFyZW50KCk7CiAgICAgICAgIG1fY29u
dGVudHNMYXllciA9IDA7CiAgICAgfQogCkBAIC02NTksNyArNjU5LDcgQEAgdm9pZCBHcmFwaGlj
c0xheWVyQ2hyb21pdW06OnNldHVwQ29udGVudHNMYXllcihMYXllckNocm9taXVtKiBjb250ZW50
c0xheWVyKQogCiAgICAgICAgIC8vIEluc2VydCB0aGUgY29udGVudCBsYXllciBmaXJzdC4gVmlk
ZW8gZWxlbWVudHMgcmVxdWlyZSB0aGlzLCBiZWNhdXNlIHRoZXkgaGF2ZQogICAgICAgICAvLyBz
aGFkb3cgY29udGVudCB0aGF0IG11c3QgZGlzcGxheSBpbiBmcm9udCBvZiB0aGUgdmlkZW8uCi0g
ICAgICAgIG1fbGF5ZXItPmluc2VydFN1YmxheWVyKG1fY29udGVudHNMYXllci5nZXQoKSwgMCk7
CisgICAgICAgIG1fbGF5ZXItPmluc2VydENoaWxkKG1fY29udGVudHNMYXllci5nZXQoKSwgMCk7
CiAKICAgICAgICAgdXBkYXRlQ29udGVudHNSZWN0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXll
ckNocm9taXVtLmgKaW5kZXggZGI4YzZmN2VhZDAwNGIyNTg5ZmJiNWY1Y2NlYzdmODQ0MWVlNGNh
OC4uYWQxNDRjMzcyODE4MGQwZmE0MWE0YTc4ZTI1YTExOThiYTJhOWY4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNo
cm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
R3JhcGhpY3NMYXllckNocm9taXVtLmgKQEAgLTEwNCwxMSArMTA0LDExIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCB1cGRhdGVPcGFjaXR5T25MYXllcigpOwogCiAgICAgTGF5ZXJDaHJvbWl1bSogcHJp
bWFyeUxheWVyKCkgY29uc3QgIHsgcmV0dXJuIG1fdHJhbnNmb3JtTGF5ZXIuZ2V0KCkgPyBtX3Ry
YW5zZm9ybUxheWVyLmdldCgpIDogbV9sYXllci5nZXQoKTsgfQotICAgIExheWVyQ2hyb21pdW0q
IGhvc3RMYXllckZvclN1YmxheWVycygpIGNvbnN0OwotICAgIExheWVyQ2hyb21pdW0qIGxheWVy
Rm9yU3VwZXJsYXllcigpIGNvbnN0OworICAgIExheWVyQ2hyb21pdW0qIGhvc3RMYXllckZvckNo
aWxkcmVuKCkgY29uc3Q7CisgICAgTGF5ZXJDaHJvbWl1bSogbGF5ZXJGb3JQYXJlbnQoKSBjb25z
dDsKIAogICAgIHZvaWQgdXBkYXRlTmFtZXMoKTsKLSAgICB2b2lkIHVwZGF0ZVN1YmxheWVyTGlz
dCgpOworICAgIHZvaWQgdXBkYXRlQ2hpbGRMaXN0KCk7CiAgICAgdm9pZCB1cGRhdGVMYXllclBv
c2l0aW9uKCk7CiAgICAgdm9pZCB1cGRhdGVMYXllclNpemUoKTsKICAgICB2b2lkIHVwZGF0ZUFu
Y2hvclBvaW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IGFlZWZiNzhjMmNmNGY4ZTI2
Yzc0YWEzZDc3MDlmYjYyODI1NWFlMjguLmI2ODY5MmI1NTIwNmJhMGQ4NTk2Y2VjODM2ZWQ1ZjE5
NDQzYzBiYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCkBAIC02Myw3ICs2Myw3IEBAIExheWVy
Q2hyb21pdW06OkxheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcikKICAg
ICAsIG1fY29udGVudHNEaXJ0eShmYWxzZSkKICAgICAsIG1fbWFza0xheWVyKDApCiAgICAgLCBt
X2NjTGF5ZXJJbXBsKDApCi0gICAgLCBtX3N1cGVybGF5ZXIoMCkKKyAgICAsIG1fcGFyZW50KDAp
CiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9kZWJ1Z0lEKHNfbmV4dExheWVyRGVidWdJRCsrKQog
I2VuZGlmCkBAIC04NywxNSArODcsMTUgQEAgTGF5ZXJDaHJvbWl1bTo6TGF5ZXJDaHJvbWl1bShH
cmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVyKQogTGF5ZXJDaHJvbWl1bTo6fkxheWVyQ2hyb21p
dW0oKQogewogICAgIEFTU0VSVCghTGF5ZXJSZW5kZXJlckNocm9taXVtOjpzX2luUGFpbnRMYXll
ckNvbnRlbnRzKTsKLSAgICAvLyBPdXIgc3VwZXJsYXllciBzaG91bGQgYmUgaG9sZGluZyBhIHJl
ZmVyZW5jZSB0byB1cyBzbyB0aGVyZSBzaG91bGQgYmUgbm8KLSAgICAvLyB3YXkgZm9yIHVzIHRv
IGJlIGRlc3Ryb3llZCB3aGlsZSB3ZSBzdGlsbCBoYXZlIGEgc3VwZXJsYXllci4KLSAgICBBU1NF
UlQoIXN1cGVybGF5ZXIoKSk7CisgICAgLy8gT3VyIHBhcmVudCBzaG91bGQgYmUgaG9sZGluZyBh
IHJlZmVyZW5jZSB0byB1cyBzbyB0aGVyZSBzaG91bGQgYmUgbm8KKyAgICAvLyB3YXkgZm9yIHVz
IHRvIGJlIGRlc3Ryb3llZCB3aGlsZSB3ZSBzdGlsbCBoYXZlIGEgcGFyZW50LgorICAgIEFTU0VS
VCghcGFyZW50KCkpOwogCiAgICAgaWYgKG1fY2NMYXllckltcGwpCiAgICAgICAgIG1fY2NMYXll
ckltcGwtPnJlc2V0T3duZXIoKTsKIAotICAgIC8vIFJlbW92ZSB0aGUgc3VwZXJsYXllciByZWZl
cmVuY2UgZnJvbSBhbGwgc3VibGF5ZXJzLgotICAgIHJlbW92ZUFsbFN1YmxheWVycygpOworICAg
IC8vIFJlbW92ZSB0aGUgcGFyZW50IHJlZmVyZW5jZSBmcm9tIGFsbCBjaGlsZHJlbi4KKyAgICBy
ZW1vdmVBbGxDaGlsZHJlbigpOwogfQogCiB2b2lkIExheWVyQ2hyb21pdW06OmNsZWFudXBSZXNv
dXJjZXMoKQpAQCAtMTI1LDYzICsxMjUsNjMgQEAgdm9pZCBMYXllckNocm9taXVtOjpzZXROZWVk
c0NvbW1pdCgpCiAgICAgICAgIG1fb3duZXItPm5vdGlmeVN5bmNSZXF1aXJlZCgpOwogfQogCi12
b2lkIExheWVyQ2hyb21pdW06OmFkZFN1YmxheWVyKFBhc3NSZWZQdHI8TGF5ZXJDaHJvbWl1bT4g
c3VibGF5ZXIpCit2b2lkIExheWVyQ2hyb21pdW06OmFkZENoaWxkKFBhc3NSZWZQdHI8TGF5ZXJD
aHJvbWl1bT4gY2hpbGQpCiB7Ci0gICAgaW5zZXJ0U3VibGF5ZXIoc3VibGF5ZXIsIG51bVN1Ymxh
eWVycygpKTsKKyAgICBpbnNlcnRDaGlsZChjaGlsZCwgbnVtQ2hpbGRyZW4oKSk7CiB9CiAKLXZv
aWQgTGF5ZXJDaHJvbWl1bTo6aW5zZXJ0U3VibGF5ZXIoUGFzc1JlZlB0cjxMYXllckNocm9taXVt
PiBzdWJsYXllciwgc2l6ZV90IGluZGV4KQordm9pZCBMYXllckNocm9taXVtOjppbnNlcnRDaGls
ZChQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+IGNoaWxkLCBzaXplX3QgaW5kZXgpCiB7Ci0gICAg
aW5kZXggPSBtaW4oaW5kZXgsIG1fc3VibGF5ZXJzLnNpemUoKSk7Ci0gICAgc3VibGF5ZXItPnJl
bW92ZUZyb21TdXBlcmxheWVyKCk7Ci0gICAgc3VibGF5ZXItPnNldFN1cGVybGF5ZXIodGhpcyk7
Ci0gICAgbV9zdWJsYXllcnMuaW5zZXJ0KGluZGV4LCBzdWJsYXllcik7CisgICAgaW5kZXggPSBt
aW4oaW5kZXgsIG1fY2hpbGRyZW4uc2l6ZSgpKTsKKyAgICBjaGlsZC0+cmVtb3ZlRnJvbVBhcmVu
dCgpOworICAgIGNoaWxkLT5zZXRQYXJlbnQodGhpcyk7CisgICAgbV9jaGlsZHJlbi5pbnNlcnQo
aW5kZXgsIGNoaWxkKTsKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCi12b2lkIExheWVyQ2hy
b21pdW06OnJlbW92ZUZyb21TdXBlcmxheWVyKCkKK3ZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVtb3Zl
RnJvbVBhcmVudCgpCiB7Ci0gICAgaWYgKG1fc3VwZXJsYXllcikKLSAgICAgICAgbV9zdXBlcmxh
eWVyLT5yZW1vdmVTdWJsYXllcih0aGlzKTsKKyAgICBpZiAobV9wYXJlbnQpCisgICAgICAgIG1f
cGFyZW50LT5yZW1vdmVDaGlsZCh0aGlzKTsKIH0KIAotdm9pZCBMYXllckNocm9taXVtOjpyZW1v
dmVTdWJsYXllcihMYXllckNocm9taXVtKiBzdWJsYXllcikKK3ZvaWQgTGF5ZXJDaHJvbWl1bTo6
cmVtb3ZlQ2hpbGQoTGF5ZXJDaHJvbWl1bSogY2hpbGQpCiB7Ci0gICAgaW50IGZvdW5kSW5kZXgg
PSBpbmRleE9mU3VibGF5ZXIoc3VibGF5ZXIpOworICAgIGludCBmb3VuZEluZGV4ID0gaW5kZXhP
ZkNoaWxkKGNoaWxkKTsKICAgICBpZiAoZm91bmRJbmRleCA9PSAtMSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgc3VibGF5ZXItPnNldFN1cGVybGF5ZXIoMCk7Ci0gICAgbV9zdWJsYXllcnMucmVt
b3ZlKGZvdW5kSW5kZXgpOworICAgIGNoaWxkLT5zZXRQYXJlbnQoMCk7CisgICAgbV9jaGlsZHJl
bi5yZW1vdmUoZm91bmRJbmRleCk7CiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAotdm9pZCBM
YXllckNocm9taXVtOjpyZXBsYWNlU3VibGF5ZXIoTGF5ZXJDaHJvbWl1bSogcmVmZXJlbmNlLCBQ
YXNzUmVmUHRyPExheWVyQ2hyb21pdW0+IG5ld0xheWVyKQordm9pZCBMYXllckNocm9taXVtOjpy
ZXBsYWNlQ2hpbGQoTGF5ZXJDaHJvbWl1bSogcmVmZXJlbmNlLCBQYXNzUmVmUHRyPExheWVyQ2hy
b21pdW0+IG5ld0xheWVyKQogewogICAgIEFTU0VSVF9BUkcocmVmZXJlbmNlLCByZWZlcmVuY2Up
OwotICAgIEFTU0VSVF9BUkcocmVmZXJlbmNlLCByZWZlcmVuY2UtPnN1cGVybGF5ZXIoKSA9PSB0
aGlzKTsKKyAgICBBU1NFUlRfQVJHKHJlZmVyZW5jZSwgcmVmZXJlbmNlLT5wYXJlbnQoKSA9PSB0
aGlzKTsKIAogICAgIGlmIChyZWZlcmVuY2UgPT0gbmV3TGF5ZXIpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGludCByZWZlcmVuY2VJbmRleCA9IGluZGV4T2ZTdWJsYXllcihyZWZlcmVuY2UpOwor
ICAgIGludCByZWZlcmVuY2VJbmRleCA9IGluZGV4T2ZDaGlsZChyZWZlcmVuY2UpOwogICAgIGlm
IChyZWZlcmVuY2VJbmRleCA9PSAtMSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHJlZmVyZW5jZS0+cmVtb3ZlRnJvbVN1cGVy
bGF5ZXIoKTsKKyAgICByZWZlcmVuY2UtPnJlbW92ZUZyb21QYXJlbnQoKTsKIAogICAgIGlmIChu
ZXdMYXllcikgewotICAgICAgICBuZXdMYXllci0+cmVtb3ZlRnJvbVN1cGVybGF5ZXIoKTsKLSAg
ICAgICAgaW5zZXJ0U3VibGF5ZXIobmV3TGF5ZXIsIHJlZmVyZW5jZUluZGV4KTsKKyAgICAgICAg
bmV3TGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKKyAgICAgICAgaW5zZXJ0Q2hpbGQobmV3TGF5
ZXIsIHJlZmVyZW5jZUluZGV4KTsKICAgICB9CiB9CiAKLWludCBMYXllckNocm9taXVtOjppbmRl
eE9mU3VibGF5ZXIoY29uc3QgTGF5ZXJDaHJvbWl1bSogcmVmZXJlbmNlKQoraW50IExheWVyQ2hy
b21pdW06OmluZGV4T2ZDaGlsZChjb25zdCBMYXllckNocm9taXVtKiByZWZlcmVuY2UpCiB7Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3N1YmxheWVycy5zaXplKCk7IGkrKykgewotICAg
ICAgICBpZiAobV9zdWJsYXllcnNbaV0gPT0gcmVmZXJlbmNlKQorICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9jaGlsZHJlbi5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAobV9jaGlsZHJl
bltpXSA9PSByZWZlcmVuY2UpCiAgICAgICAgICAgICByZXR1cm4gaTsKICAgICB9CiAgICAgcmV0
dXJuIC0xOwpAQCAtMjE0LDMzICsyMTQsMzMgQEAgdm9pZCBMYXllckNocm9taXVtOjpzZXRGcmFt
ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiBjb25zdCBMYXllckNocm9taXVtKiBMYXllckNocm9t
aXVtOjpyb290TGF5ZXIoKSBjb25zdAogewogICAgIGNvbnN0IExheWVyQ2hyb21pdW0qIGxheWVy
ID0gdGhpczsKLSAgICBmb3IgKExheWVyQ2hyb21pdW0qIHN1cGVybGF5ZXIgPSBsYXllci0+c3Vw
ZXJsYXllcigpOyBzdXBlcmxheWVyOyBsYXllciA9IHN1cGVybGF5ZXIsIHN1cGVybGF5ZXIgPSBz
dXBlcmxheWVyLT5zdXBlcmxheWVyKCkpIHsgfQorICAgIGZvciAoTGF5ZXJDaHJvbWl1bSogcGFy
ZW50ID0gbGF5ZXItPnBhcmVudCgpOyBwYXJlbnQ7IGxheWVyID0gcGFyZW50LCBwYXJlbnQgPSBw
YXJlbnQtPnBhcmVudCgpKSB7IH0KICAgICByZXR1cm4gbGF5ZXI7CiB9CiAKLXZvaWQgTGF5ZXJD
aHJvbWl1bTo6cmVtb3ZlQWxsU3VibGF5ZXJzKCkKK3ZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVtb3Zl
QWxsQ2hpbGRyZW4oKQogewotICAgIHdoaWxlIChtX3N1YmxheWVycy5zaXplKCkpIHsKLSAgICAg
ICAgTGF5ZXJDaHJvbWl1bSogbGF5ZXIgPSBtX3N1YmxheWVyc1swXS5nZXQoKTsKLSAgICAgICAg
QVNTRVJUKGxheWVyLT5zdXBlcmxheWVyKCkpOwotICAgICAgICBsYXllci0+cmVtb3ZlRnJvbVN1
cGVybGF5ZXIoKTsKKyAgICB3aGlsZSAobV9jaGlsZHJlbi5zaXplKCkpIHsKKyAgICAgICAgTGF5
ZXJDaHJvbWl1bSogbGF5ZXIgPSBtX2NoaWxkcmVuWzBdLmdldCgpOworICAgICAgICBBU1NFUlQo
bGF5ZXItPnBhcmVudCgpKTsKKyAgICAgICAgbGF5ZXItPnJlbW92ZUZyb21QYXJlbnQoKTsKICAg
ICB9CiB9CiAKLXZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0U3VibGF5ZXJzKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiYgc3VibGF5ZXJzKQordm9pZCBMYXllckNocm9taXVtOjpz
ZXRDaGlsZHJlbihjb25zdCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4mIGNoaWxkcmVu
KQogewotICAgIGlmIChzdWJsYXllcnMgPT0gbV9zdWJsYXllcnMpCisgICAgaWYgKGNoaWxkcmVu
ID09IG1fY2hpbGRyZW4pCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlbW92ZUFsbFN1YmxheWVy
cygpOwotICAgIHNpemVfdCBsaXN0U2l6ZSA9IHN1YmxheWVycy5zaXplKCk7CisgICAgcmVtb3Zl
QWxsQ2hpbGRyZW4oKTsKKyAgICBzaXplX3QgbGlzdFNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0U2l6ZTsgaSsrKQotICAgICAgICBhZGRTdWJs
YXllcihzdWJsYXllcnNbaV0pOworICAgICAgICBhZGRDaGlsZChjaGlsZHJlbltpXSk7CiB9CiAK
LUxheWVyQ2hyb21pdW0qIExheWVyQ2hyb21pdW06OnN1cGVybGF5ZXIoKSBjb25zdAorTGF5ZXJD
aHJvbWl1bSogTGF5ZXJDaHJvbWl1bTo6cGFyZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9z
dXBlcmxheWVyOworICAgIHJldHVybiBtX3BhcmVudDsKIH0KIAogdm9pZCBMYXllckNocm9taXVt
OjpzZXROYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTM3NCw4ICszNzQsOCBAQCB2b2lkIExh
eWVyQ2hyb21pdW06OmR1bXBMYXllcihUZXh0U3RyZWFtJiB0cywgaW50IGluZGVudCkgY29uc3QK
ICAgICAgICAgdHMgPDwgIk1hc2s6XG4iOwogICAgICAgICBtX21hc2tMYXllci0+ZHVtcExheWVy
KHRzLCBpbmRlbnQrMyk7CiAgICAgfQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zdWJs
YXllcnMuc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fc3VibGF5ZXJzW2ldLT5kdW1wTGF5ZXIodHMs
IGluZGVudCsxKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2hpbGRyZW4uc2l6ZSgp
OyArK2kpCisgICAgICAgIG1fY2hpbGRyZW5baV0tPmR1bXBMYXllcih0cywgaW5kZW50KzEpOwog
fQogCiB2b2lkIExheWVyQ2hyb21pdW06OmR1bXBMYXllclByb3BlcnRpZXMoVGV4dFN0cmVhbSYg
dHMsIGludCBpbmRlbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKaW5kZXggNTU2NGY5MTZiYTVj
MGNmNzMyM2FiOTE5OGUwOGUyYTQ0YzM0ZmVmMS4uYjJlOWE4MDZlYjA2NDdiZDI3NDcyMzdlNjlj
ZTljOTdmNGJmNjU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaApAQCAtNjYsMTQgKzY2LDE0IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5MYXllckNocm9taXVtKCk7CiAKICAgICBjb25zdCBMYXllckNo
cm9taXVtKiByb290TGF5ZXIoKSBjb25zdDsKLSAgICBMYXllckNocm9taXVtKiBzdXBlcmxheWVy
KCkgY29uc3Q7Ci0gICAgdm9pZCBhZGRTdWJsYXllcihQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+
KTsKLSAgICB2b2lkIGluc2VydFN1YmxheWVyKFBhc3NSZWZQdHI8TGF5ZXJDaHJvbWl1bT4sIHNp
emVfdCBpbmRleCk7Ci0gICAgdm9pZCByZXBsYWNlU3VibGF5ZXIoTGF5ZXJDaHJvbWl1bSogcmVm
ZXJlbmNlLCBQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+IG5ld0xheWVyKTsKLSAgICB2b2lkIHJl
bW92ZUZyb21TdXBlcmxheWVyKCk7Ci0gICAgdm9pZCByZW1vdmVBbGxTdWJsYXllcnMoKTsKLSAg
ICB2b2lkIHNldFN1YmxheWVycyhjb25zdCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4m
KTsKLSAgICBjb25zdCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4mIGdldFN1YmxheWVy
cygpIGNvbnN0IHsgcmV0dXJuIG1fc3VibGF5ZXJzOyB9CisgICAgTGF5ZXJDaHJvbWl1bSogcGFy
ZW50KCkgY29uc3Q7CisgICAgdm9pZCBhZGRDaGlsZChQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+
KTsKKyAgICB2b2lkIGluc2VydENoaWxkKFBhc3NSZWZQdHI8TGF5ZXJDaHJvbWl1bT4sIHNpemVf
dCBpbmRleCk7CisgICAgdm9pZCByZXBsYWNlQ2hpbGQoTGF5ZXJDaHJvbWl1bSogcmVmZXJlbmNl
LCBQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+IG5ld0xheWVyKTsKKyAgICB2b2lkIHJlbW92ZUZy
b21QYXJlbnQoKTsKKyAgICB2b2lkIHJlbW92ZUFsbENoaWxkcmVuKCk7CisgICAgdm9pZCBzZXRD
aGlsZHJlbihjb25zdCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4mKTsKKyAgICBjb25z
dCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4mIGNoaWxkcmVuKCkgY29uc3QgeyByZXR1
cm4gbV9jaGlsZHJlbjsgfQogCiAgICAgdm9pZCBzZXRBbmNob3JQb2ludChjb25zdCBGbG9hdFBv
aW50JiBhbmNob3JQb2ludCkgeyBtX2FuY2hvclBvaW50ID0gYW5jaG9yUG9pbnQ7IHNldE5lZWRz
Q29tbWl0KCk7IH0KICAgICBGbG9hdFBvaW50IGFuY2hvclBvaW50KCkgY29uc3QgeyByZXR1cm4g
bV9hbmNob3JQb2ludDsgfQpAQCAtMjI0LDIxICsyMjQsMjEgQEAgcHJvdGVjdGVkOgogcHJpdmF0
ZToKICAgICB2b2lkIHNldE5lZWRzQ29tbWl0KCk7CiAKLSAgICB2b2lkIHNldFN1cGVybGF5ZXIo
TGF5ZXJDaHJvbWl1bSogc3VwZXJsYXllcikgeyBtX3N1cGVybGF5ZXIgPSBzdXBlcmxheWVyOyB9
CisgICAgdm9pZCBzZXRQYXJlbnQoTGF5ZXJDaHJvbWl1bSogcGFyZW50KSB7IG1fcGFyZW50ID0g
cGFyZW50OyB9CiAKLSAgICBzaXplX3QgbnVtU3VibGF5ZXJzKCkgY29uc3QKKyAgICBzaXplX3Qg
bnVtQ2hpbGRyZW4oKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc3VibGF5ZXJzLnNp
emUoKTsKKyAgICAgICAgcmV0dXJuIG1fY2hpbGRyZW4uc2l6ZSgpOwogICAgIH0KIAotICAgIC8v
IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBzdWJsYXllciBvciAtMSBpZiBub3QgZm91bmQuCi0g
ICAgaW50IGluZGV4T2ZTdWJsYXllcihjb25zdCBMYXllckNocm9taXVtKik7CisgICAgLy8gUmV0
dXJucyB0aGUgaW5kZXggb2YgdGhlIGNoaWxkIG9yIC0xIGlmIG5vdCBmb3VuZC4KKyAgICBpbnQg
aW5kZXhPZkNoaWxkKGNvbnN0IExheWVyQ2hyb21pdW0qKTsKIAotICAgIC8vIFRoaXMgc2hvdWxk
IG9ubHkgYmUgY2FsbGVkIGZyb20gcmVtb3ZlRnJvbVN1cGVybGF5ZXIuCi0gICAgdm9pZCByZW1v
dmVTdWJsYXllcihMYXllckNocm9taXVtKik7CisgICAgLy8gVGhpcyBzaG91bGQgb25seSBiZSBj
YWxsZWQgZnJvbSByZW1vdmVGcm9tUGFyZW50LgorICAgIHZvaWQgcmVtb3ZlQ2hpbGQoTGF5ZXJD
aHJvbWl1bSopOwogCi0gICAgVmVjdG9yPFJlZlB0cjxMYXllckNocm9taXVtPiA+IG1fc3VibGF5
ZXJzOwotICAgIExheWVyQ2hyb21pdW0qIG1fc3VwZXJsYXllcjsKKyAgICBWZWN0b3I8UmVmUHRy
PExheWVyQ2hyb21pdW0+ID4gbV9jaGlsZHJlbjsKKyAgICBMYXllckNocm9taXVtKiBtX3BhcmVu
dDsKIAogICAgIFJlZlB0cjxMYXllclJlbmRlcmVyQ2hyb21pdW0+IG1fbGF5ZXJSZW5kZXJlcjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggMDlkODM2MDE5NjE4
MGQyZjViMTQ4MWVmMzRiMDFkNWYzYWU3ZDkyNC4uYTBmZmMyYzlmMDdmOTYxYWQ3NTZjYzI1ODE0
M2Q3NmY2ZDZhN2ZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBA
IC01NjcsNyArNTY3LDcgQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OnVwZGF0ZVByb3Bl
cnRpZXNBbmRSZW5kZXJTdXJmYWNlcyhMYXllckNocm9taXVtKiBsYXkKICAgICBsYXllci0+cHVz
aFByb3BlcnRpZXNUbyhkcmF3TGF5ZXIpOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgbmV3IG1hdHJp
eCB0cmFuc2Zvcm1hdGlvbiB0aGF0IHdpbGwgYmUgYXBwbGllZCB0byB0aGlzIGxheWVyIGFuZAot
ICAgIC8vIGFsbCBpdHMgc3VibGF5ZXJzLiBJdCdzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGF0
IHRoZSBsYXllcidzIHBvc2l0aW9uCisgICAgLy8gYWxsIGl0cyBjaGlsZHJlbi4gSXQncyBpbXBv
cnRhbnQgdG8gcmVtZW1iZXIgdGhhdCB0aGUgbGF5ZXIncyBwb3NpdGlvbgogICAgIC8vIGlzIHRo
ZSBwb3NpdGlvbiBvZiB0aGUgbGF5ZXIncyBhbmNob3IgcG9pbnQuIEFsc28sIHRoZSBjb29yZGlu
YXRlIHN5c3RlbSB1c2VkCiAgICAgLy8gYXNzdW1lcyB0aGF0IHRoZSBvcmlnaW4gaXMgYXQgdGhl
IGxvd2VyIGxlZnQgZXZlbiB0aG91Z2ggdGhlIGNvb3JkaW5hdGVzIHRoZSBicm93c2VyCiAgICAg
Ly8gZ2l2ZXMgdXMgZm9yIHRoZSBsYXllcnMgYXJlIGZvciB0aGUgdXBwZXIgbGVmdCBjb3JuZXIu
IFRoZSBZIGZsaXAgaGFwcGVucyB2aWEKQEAgLTYyMCw3ICs2MjAsNyBAQCB2b2lkIExheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6dXBkYXRlUHJvcGVydGllc0FuZFJlbmRlclN1cmZhY2VzKExheWVyQ2hy
b21pdW0qIGxheQogICAgIGJvb2wgdXNlU3VyZmFjZUZvck9wYWNpdHkgPSBkcmF3TGF5ZXItPm9w
YWNpdHkoKSAhPSAxICYmICFkcmF3TGF5ZXItPnByZXNlcnZlczNEKCk7CiAgICAgYm9vbCB1c2VT
dXJmYWNlRm9yTWFza2luZyA9IGRyYXdMYXllci0+bWFza0xheWVyKCk7CiAgICAgYm9vbCB1c2VT
dXJmYWNlRm9yUmVmbGVjdGlvbiA9IGRyYXdMYXllci0+cmVwbGljYUxheWVyKCk7Ci0gICAgYm9v
bCB1c2VTdXJmYWNlRm9yRmxhdERlc2NlbmRhbnRzID0gKGRyYXdMYXllci0+c3VwZXJsYXllcigp
ICYmIGRyYXdMYXllci0+c3VwZXJsYXllcigpLT5wcmVzZXJ2ZXMzRCgpICYmICFkcmF3TGF5ZXIt
PnByZXNlcnZlczNEKCkgJiYgZHJhd0xheWVyLT5kZXNjZW5kYW50c0RyYXdzQ29udGVudCgpKTsK
KyAgICBib29sIHVzZVN1cmZhY2VGb3JGbGF0RGVzY2VuZGFudHMgPSAoZHJhd0xheWVyLT5wYXJl
bnQoKSAmJiBkcmF3TGF5ZXItPnBhcmVudCgpLT5wcmVzZXJ2ZXMzRCgpICYmICFkcmF3TGF5ZXIt
PnByZXNlcnZlczNEKCkgJiYgZHJhd0xheWVyLT5kZXNjZW5kYW50c0RyYXdzQ29udGVudCgpKTsK
ICAgICBpZiAodXNlU3VyZmFjZUZvck1hc2tpbmcgfHwgdXNlU3VyZmFjZUZvclJlZmxlY3Rpb24g
fHwgdXNlU3VyZmFjZUZvckZsYXREZXNjZW5kYW50cyB8fCAoKHVzZVN1cmZhY2VGb3JDbGlwcGlu
ZyB8fCB1c2VTdXJmYWNlRm9yT3BhY2l0eSkgJiYgZHJhd0xheWVyLT5kZXNjZW5kYW50c0RyYXdz
Q29udGVudCgpKSkgewogICAgICAgICBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIHJlbmRlclN1cmZh
Y2UgPSBkcmF3TGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKICAgICAgICAgaWYgKCFyZW5kZXJTdXJm
YWNlKQpAQCAtNjM1LDggKzYzNSw4IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjp1cGRh
dGVQcm9wZXJ0aWVzQW5kUmVuZGVyU3VyZmFjZXMoTGF5ZXJDaHJvbWl1bSogbGF5CiAKICAgICAg
ICAgLy8gTGF5ZXIncyBvcGFjaXR5IHdpbGwgYmUgYXBwbGllZCB3aGVuIGRyYXdpbmcgdGhlIHJl
bmRlciBzdXJmYWNlLgogICAgICAgICByZW5kZXJTdXJmYWNlLT5tX2RyYXdPcGFjaXR5ID0gZHJh
d0xheWVyLT5vcGFjaXR5KCk7Ci0gICAgICAgIGlmIChkcmF3TGF5ZXItPnN1cGVybGF5ZXIoKSAm
JiBkcmF3TGF5ZXItPnN1cGVybGF5ZXIoKS0+cHJlc2VydmVzM0QoKSkKLSAgICAgICAgICAgIHJl
bmRlclN1cmZhY2UtPm1fZHJhd09wYWNpdHkgKj0gZHJhd0xheWVyLT5zdXBlcmxheWVyKCktPmRy
YXdPcGFjaXR5KCk7CisgICAgICAgIGlmIChkcmF3TGF5ZXItPnBhcmVudCgpICYmIGRyYXdMYXll
ci0+cGFyZW50KCktPnByZXNlcnZlczNEKCkpCisgICAgICAgICAgICByZW5kZXJTdXJmYWNlLT5t
X2RyYXdPcGFjaXR5ICo9IGRyYXdMYXllci0+cGFyZW50KCktPmRyYXdPcGFjaXR5KCk7CiAgICAg
ICAgIGRyYXdMYXllci0+c2V0RHJhd09wYWNpdHkoMSk7CiAKICAgICAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggbGF5ZXJPcmlnaW5UcmFuc2Zvcm0gPSBjb21iaW5lZFRyYW5zZm9ybTsKQEAgLTY0
Niw4ICs2NDYsOCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6dXBkYXRlUHJvcGVydGll
c0FuZFJlbmRlclN1cmZhY2VzKExheWVyQ2hyb21pdW0qIGxheQogCiAgICAgICAgIC8vIFRoZSBy
ZW5kZXIgc3VyZmFjZSBzY2lzc29yIHJlY3QgaXMgdGhlIHNjaXNzb3IgcmVjdCB0aGF0IG5lZWRz
IHRvCiAgICAgICAgIC8vIGJlIGFwcGxpZWQgYmVmb3JlIGRyYXdpbmcgdGhlIHJlbmRlciBzdXJm
YWNlIG9udG8gaXRzIGNvbnRhaW5pbmcKLSAgICAgICAgLy8gc3VyZmFjZSBhbmQgaXMgdGhlcmVm
b3JlIGV4cHJlc3NlZCBpbiB0aGUgc3VwZXJsYXllcidzIGNvb3JkaW5hdGUgc3lzdGVtLgotICAg
ICAgICByZW5kZXJTdXJmYWNlLT5tX3NjaXNzb3JSZWN0ID0gZHJhd0xheWVyLT5zdXBlcmxheWVy
KCkgPyBkcmF3TGF5ZXItPnN1cGVybGF5ZXIoKS0+c2Npc3NvclJlY3QoKSA6IGRyYXdMYXllci0+
c2Npc3NvclJlY3QoKTsKKyAgICAgICAgLy8gc3VyZmFjZSBhbmQgaXMgdGhlcmVmb3JlIGV4cHJl
c3NlZCBpbiB0aGUgcGFyZW50J3MgY29vcmRpbmF0ZSBzeXN0ZW0uCisgICAgICAgIHJlbmRlclN1
cmZhY2UtPm1fc2Npc3NvclJlY3QgPSBkcmF3TGF5ZXItPnBhcmVudCgpID8gZHJhd0xheWVyLT5w
YXJlbnQoKS0+c2Npc3NvclJlY3QoKSA6IGRyYXdMYXllci0+c2Npc3NvclJlY3QoKTsKIAogICAg
ICAgICByZW5kZXJTdXJmYWNlLT5tX2xheWVyTGlzdC5jbGVhcigpOwogCkBAIC02NjgsMTQgKzY2
OCwxNCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6dXBkYXRlUHJvcGVydGllc0FuZFJl
bmRlclN1cmZhY2VzKExheWVyQ2hyb21pdW0qIGxheQogCiAgICAgICAgIGRyYXdMYXllci0+c2V0
RHJhd09wYWNpdHkoZHJhd0xheWVyLT5vcGFjaXR5KCkpOwogCi0gICAgICAgIGlmIChkcmF3TGF5
ZXItPnN1cGVybGF5ZXIoKSkgewotICAgICAgICAgICAgaWYgKGRyYXdMYXllci0+c3VwZXJsYXll
cigpLT5wcmVzZXJ2ZXMzRCgpKQotICAgICAgICAgICAgICAgZHJhd0xheWVyLT5zZXREcmF3T3Bh
Y2l0eShkcmF3TGF5ZXItPmRyYXdPcGFjaXR5KCkgKiBkcmF3TGF5ZXItPnN1cGVybGF5ZXIoKS0+
ZHJhd09wYWNpdHkoKSk7CisgICAgICAgIGlmIChkcmF3TGF5ZXItPnBhcmVudCgpKSB7CisgICAg
ICAgICAgICBpZiAoZHJhd0xheWVyLT5wYXJlbnQoKS0+cHJlc2VydmVzM0QoKSkKKyAgICAgICAg
ICAgICAgIGRyYXdMYXllci0+c2V0RHJhd09wYWNpdHkoZHJhd0xheWVyLT5kcmF3T3BhY2l0eSgp
ICogZHJhd0xheWVyLT5wYXJlbnQoKS0+ZHJhd09wYWNpdHkoKSk7CiAKLSAgICAgICAgICAgIC8v
IExheWVycyBpbmhlcml0IHRoZSBzY2lzc29yIHJlY3QgZnJvbSB0aGVpciBzdXBlcmxheWVyLgot
ICAgICAgICAgICAgZHJhd0xheWVyLT5zZXRTY2lzc29yUmVjdChkcmF3TGF5ZXItPnN1cGVybGF5
ZXIoKS0+c2Npc3NvclJlY3QoKSk7CisgICAgICAgICAgICAvLyBMYXllcnMgaW5oZXJpdCB0aGUg
c2Npc3NvciByZWN0IGZyb20gdGhlaXIgcGFyZW50LgorICAgICAgICAgICAgZHJhd0xheWVyLT5z
ZXRTY2lzc29yUmVjdChkcmF3TGF5ZXItPnBhcmVudCgpLT5zY2lzc29yUmVjdCgpKTsKIAotICAg
ICAgICAgICAgZHJhd0xheWVyLT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNlKGRyYXdMYXllci0+c3Vw
ZXJsYXllcigpLT50YXJnZXRSZW5kZXJTdXJmYWNlKCkpOworICAgICAgICAgICAgZHJhd0xheWVy
LT5zZXRUYXJnZXRSZW5kZXJTdXJmYWNlKGRyYXdMYXllci0+cGFyZW50KCktPnRhcmdldFJlbmRl
clN1cmZhY2UoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobGF5ZXIgIT0gbV9yb290TGF5
ZXIpCkBAIC02OTIsOCArNjkyLDggQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OnVwZGF0
ZVByb3BlcnRpZXNBbmRSZW5kZXJTdXJmYWNlcyhMYXllckNocm9taXVtKiBsYXkKICAgICBpZiAo
ZHJhd0xheWVyLT5yZW5kZXJTdXJmYWNlKCkpCiAgICAgICAgIGRyYXdMYXllci0+c2V0VGFyZ2V0
UmVuZGVyU3VyZmFjZShkcmF3TGF5ZXItPnJlbmRlclN1cmZhY2UoKSk7CiAgICAgZWxzZSB7Ci0g
ICAgICAgIEFTU0VSVChkcmF3TGF5ZXItPnN1cGVybGF5ZXIoKSk7Ci0gICAgICAgIGRyYXdMYXll
ci0+c2V0VGFyZ2V0UmVuZGVyU3VyZmFjZShkcmF3TGF5ZXItPnN1cGVybGF5ZXIoKS0+dGFyZ2V0
UmVuZGVyU3VyZmFjZSgpKTsKKyAgICAgICAgQVNTRVJUKGRyYXdMYXllci0+cGFyZW50KCkpOwor
ICAgICAgICBkcmF3TGF5ZXItPnNldFRhcmdldFJlbmRlclN1cmZhY2UoZHJhd0xheWVyLT5wYXJl
bnQoKS0+dGFyZ2V0UmVuZGVyU3VyZmFjZSgpKTsKICAgICB9CiAKICAgICAvLyBkcmF3YWJsZUNv
bnRlbnRSZWN0KCkgaXMgYWx3YXlzIHN0b3JlZCBpbiB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gb2Yg
dGhlCkBAIC03MTksOCArNzE5LDggQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OnVwZGF0
ZVByb3BlcnRpZXNBbmRSZW5kZXJTdXJmYWNlcyhMYXllckNocm9taXVtKiBsYXkKICAgICAvLyBB
cHBseSB0aGUgc3VibGF5ZXIgdHJhbnNmb3JtIGF0IHRoZSBjZW50ZXIgb2YgdGhlIGxheWVyLgog
ICAgIHN1YmxheWVyTWF0cml4Lm11bHRpcGx5KGRyYXdMYXllci0+c3VibGF5ZXJUcmFuc2Zvcm0o
KSk7CiAKLSAgICAvLyBUaGUgb3JpZ2luIG9mIHRoZSBzdWJsYXllcnMgaXMgdGhlIHRvcCBsZWZ0
IGNvcm5lciBvZiB0aGUgbGF5ZXIsIG5vdCB0aGUKLSAgICAvLyBjZW50ZXIuIFRoZSBtYXRyaXgg
cGFzc2VkIGRvd24gdG8gdGhlIHN1YmxheWVycyBpcyB0aGVyZWZvcmU6CisgICAgLy8gVGhlIG9y
aWdpbiBvZiB0aGUgY2hpbGRyZW4gaXMgdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUgbGF5ZXIs
IG5vdCB0aGUKKyAgICAvLyBjZW50ZXIuIFRoZSBtYXRyaXggcGFzc2VkIGRvd24gdG8gdGhlIGNo
aWxkcmVuIGlzIHRoZXJlZm9yZToKICAgICAvLyBNW3NdID0gTSAqIFRyWy1jZW50ZXJdCiAgICAg
c3VibGF5ZXJNYXRyaXgudHJhbnNsYXRlM2QoLWJvdW5kcy53aWR0aCgpICogMC41LCAtYm91bmRz
LmhlaWdodCgpICogMC41LCAwKTsKIApAQCAtNzI4LDIxICs3MjgsMjEgQEAgdm9pZCBMYXllclJl
bmRlcmVyQ2hyb21pdW06OnVwZGF0ZVByb3BlcnRpZXNBbmRSZW5kZXJTdXJmYWNlcyhMYXllckNo
cm9taXVtKiBsYXkKICAgICBkZXNjZW5kYW50cy5hcHBlbmQoZHJhd0xheWVyKTsKICAgICB1bnNp
Z25lZCB0aGlzTGF5ZXJJbmRleCA9IGRlc2NlbmRhbnRzLnNpemUoKSAtIDE7CiAKLSAgICBjb25z
dCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4mIHN1YmxheWVycyA9IGxheWVyLT5nZXRT
dWJsYXllcnMoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YmxheWVycy5zaXplKCk7
ICsraSkgewotICAgICAgICBzdWJsYXllcnNbaV0tPmNyZWF0ZUNDTGF5ZXJJbXBsSWZOZWVkZWQo
KTsKLSAgICAgICAgQ0NMYXllckltcGwqIHN1YmxheWVyID0gc3VibGF5ZXJzW2ldLT5jY0xheWVy
SW1wbCgpOwotICAgICAgICB1cGRhdGVQcm9wZXJ0aWVzQW5kUmVuZGVyU3VyZmFjZXMoc3VibGF5
ZXJzW2ldLmdldCgpLCBzdWJsYXllck1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgZGVz
Y2VuZGFudHMpOworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiYgY2hp
bGRyZW4gPSBsYXllci0+Y2hpbGRyZW4oKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNo
aWxkcmVuLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNoaWxkcmVuW2ldLT5jcmVhdGVDQ0xheWVy
SW1wbElmTmVlZGVkKCk7CisgICAgICAgIENDTGF5ZXJJbXBsKiBjaGlsZCA9IGNoaWxkcmVuW2ld
LT5jY0xheWVySW1wbCgpOworICAgICAgICB1cGRhdGVQcm9wZXJ0aWVzQW5kUmVuZGVyU3VyZmFj
ZXMoY2hpbGRyZW5baV0uZ2V0KCksIHN1YmxheWVyTWF0cml4LCByZW5kZXJTdXJmYWNlTGF5ZXJM
aXN0LCBkZXNjZW5kYW50cyk7CiAKLSAgICAgICAgaWYgKHN1YmxheWVyLT5yZW5kZXJTdXJmYWNl
KCkpIHsKLSAgICAgICAgICAgIFJlbmRlclN1cmZhY2VDaHJvbWl1bSogc3VibGF5ZXJSZW5kZXJT
dXJmYWNlID0gc3VibGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKKyAgICAgICAgaWYgKGNoaWxkLT5y
ZW5kZXJTdXJmYWNlKCkpIHsKKyAgICAgICAgICAgIFJlbmRlclN1cmZhY2VDaHJvbWl1bSogY2hp
bGRSZW5kZXJTdXJmYWNlID0gY2hpbGQtPnJlbmRlclN1cmZhY2UoKTsKICAgICAgICAgICAgIElu
dFJlY3QgZHJhd2FibGVDb250ZW50UmVjdCA9IGRyYXdMYXllci0+ZHJhd2FibGVDb250ZW50UmVj
dCgpOwotICAgICAgICAgICAgZHJhd2FibGVDb250ZW50UmVjdC51bml0ZShlbmNsb3NpbmdJbnRS
ZWN0KHN1YmxheWVyUmVuZGVyU3VyZmFjZS0+ZHJhd2FibGVDb250ZW50UmVjdCgpKSk7CisgICAg
ICAgICAgICBkcmF3YWJsZUNvbnRlbnRSZWN0LnVuaXRlKGVuY2xvc2luZ0ludFJlY3QoY2hpbGRS
ZW5kZXJTdXJmYWNlLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCkpKTsKICAgICAgICAgICAgIGRyYXdM
YXllci0+c2V0RHJhd2FibGVDb250ZW50UmVjdChkcmF3YWJsZUNvbnRlbnRSZWN0KTsKLSAgICAg
ICAgICAgIGRlc2NlbmRhbnRzLmFwcGVuZChzdWJsYXllcik7CisgICAgICAgICAgICBkZXNjZW5k
YW50cy5hcHBlbmQoY2hpbGQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgSW50UmVj
dCBkcmF3YWJsZUNvbnRlbnRSZWN0ID0gZHJhd0xheWVyLT5kcmF3YWJsZUNvbnRlbnRSZWN0KCk7
Ci0gICAgICAgICAgICBkcmF3YWJsZUNvbnRlbnRSZWN0LnVuaXRlKHN1YmxheWVyLT5kcmF3YWJs
ZUNvbnRlbnRSZWN0KCkpOworICAgICAgICAgICAgZHJhd2FibGVDb250ZW50UmVjdC51bml0ZShj
aGlsZC0+ZHJhd2FibGVDb250ZW50UmVjdCgpKTsKICAgICAgICAgICAgIGRyYXdMYXllci0+c2V0
RHJhd2FibGVDb250ZW50UmVjdChkcmF3YWJsZUNvbnRlbnRSZWN0KTsKICAgICAgICAgfQogICAg
IH0KQEAgLTc5NywxNyArNzk3LDE3IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjp1cGRh
dGVQcm9wZXJ0aWVzQW5kUmVuZGVyU3VyZmFjZXMoTGF5ZXJDaHJvbWl1bSogbGF5CiAgICAgfQog
CiAgICAgLy8gSWYgcHJlc2VydmVzLTNkIHRoZW4gc29ydCBhbGwgdGhlIGRlc2NlbmRhbnRzIGlu
IDNEIHNvIHRoYXQgdGhleSBjYW4gYmUgCi0gICAgLy8gZHJhd24gZnJvbSBiYWNrIHRvIGZyb250
LiBJZiB0aGUgcHJlc2VydmVzLTNkIHByb3BlcnR5IGlzIGFsc28gc2V0IG9uIHRoZSBzdXBlcmxh
eWVyIHRoZW4KLSAgICAvLyBza2lwIHRoZSBzb3J0aW5nIGFzIHRoZSBzdXBlcmxheWVyIHdpbGwg
c29ydCBhbGwgdGhlIGRlc2NlbmRhbnRzIGFueXdheS4KLSAgICBpZiAoZHJhd0xheWVyLT5wcmVz
ZXJ2ZXMzRCgpICYmICghZHJhd0xheWVyLT5zdXBlcmxheWVyKCkgfHwgIWRyYXdMYXllci0+c3Vw
ZXJsYXllcigpLT5wcmVzZXJ2ZXMzRCgpKSkKKyAgICAvLyBkcmF3biBmcm9tIGJhY2sgdG8gZnJv
bnQuIElmIHRoZSBwcmVzZXJ2ZXMtM2QgcHJvcGVydHkgaXMgYWxzbyBzZXQgb24gdGhlIHBhcmVu
dCB0aGVuCisgICAgLy8gc2tpcCB0aGUgc29ydGluZyBhcyB0aGUgcGFyZW50IHdpbGwgc29ydCBh
bGwgdGhlIGRlc2NlbmRhbnRzIGFueXdheS4KKyAgICBpZiAoZHJhd0xheWVyLT5wcmVzZXJ2ZXMz
RCgpICYmICghZHJhd0xheWVyLT5wYXJlbnQoKSB8fCAhZHJhd0xheWVyLT5wYXJlbnQoKS0+cHJl
c2VydmVzM0QoKSkpCiAgICAgICAgIG1fbGF5ZXJTb3J0ZXIuc29ydCgmZGVzY2VuZGFudHMuYXQo
dGhpc0xheWVySW5kZXgpLCBkZXNjZW5kYW50cy5lbmQoKSk7CiB9CiAKIHZvaWQgTGF5ZXJSZW5k
ZXJlckNocm9taXVtOjp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzUmVjdXJzaXZlKExheWVyQ2hy
b21pdW0qIGxheWVyKQogewotICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4g
PiYgc3VibGF5ZXJzID0gbGF5ZXItPmdldFN1YmxheWVycygpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgc3VibGF5ZXJzLnNpemUoKTsgKytpKQotICAgICAgICB1cGRhdGVDb21wb3NpdG9y
UmVzb3VyY2VzUmVjdXJzaXZlKHN1YmxheWVyc1tpXS5nZXQoKSk7CisgICAgY29uc3QgVmVjdG9y
PFJlZlB0cjxMYXllckNocm9taXVtPiA+JiBjaGlsZHJlbiA9IGxheWVyLT5jaGlsZHJlbigpOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4uc2l6ZSgpOyArK2kpCisgICAgICAg
IHVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXNSZWN1cnNpdmUoY2hpbGRyZW5baV0uZ2V0KCkpOwog
CiAgICAgaWYgKGxheWVyLT5ib3VuZHMoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAg
LTExMTgsOCArMTExOCw4IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpkdW1wUmVuZGVy
U3VyZmFjZXMoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQsIExheWVyCiAgICAgaWYgKGxheWVy
LT5jY0xheWVySW1wbCgpLT5yZW5kZXJTdXJmYWNlKCkpCiAgICAgICAgIGxheWVyLT5jY0xheWVy
SW1wbCgpLT5yZW5kZXJTdXJmYWNlKCktPmR1bXBTdXJmYWNlKHRzLCBpbmRlbnQpOwogCi0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllci0+Z2V0U3VibGF5ZXJzKCkuc2l6ZSgpOyArK2kp
Ci0gICAgICAgIGR1bXBSZW5kZXJTdXJmYWNlcyh0cywgaW5kZW50LCBsYXllci0+Z2V0U3VibGF5
ZXJzKClbaV0uZ2V0KCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXItPmNoaWxk
cmVuKCkuc2l6ZSgpOyArK2kpCisgICAgICAgIGR1bXBSZW5kZXJTdXJmYWNlcyh0cywgaW5kZW50
LCBsYXllci0+Y2hpbGRyZW4oKVtpXS5nZXQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcAppbmRleCBiOTU0M2IwYmM1NTY1NGY3NDQ3Y2I2NTA5
YzcxMmRiNjA1OWJhOTNhLi40ZWZiYjExZGJmZTE3YjY2NWVkN2ExNGJjMjE4YzI0NzRmMmMxY2Zj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCkBAIC04NSw5ICs4NSw5IEBAIENDTGF5ZXJJbXBs
Ojp+Q0NMYXllckltcGwoKQogfQogCiAvLyBUaGVzZSBhcmUgcHNldWRvLXN0cnVjdHVyYWwgaGFj
a3MgdW50aWwgd2UgZ2V0IHJlYWwgdHJlZSBzeW5jaW5nIHVwIGluIHRoaXMgcGllY2UuCi1DQ0xh
eWVySW1wbCogQ0NMYXllckltcGw6OnN1cGVybGF5ZXIoKSBjb25zdAorQ0NMYXllckltcGwqIEND
TGF5ZXJJbXBsOjpwYXJlbnQoKSBjb25zdAogewotICAgIHJldHVybiBtX293bmVyLT5zdXBlcmxh
eWVyKCkgPyBtX293bmVyLT5zdXBlcmxheWVyKCktPmNjTGF5ZXJJbXBsKCkgOiAwOworICAgIHJl
dHVybiBtX293bmVyLT5wYXJlbnQoKSA/IG1fb3duZXItPnBhcmVudCgpLT5jY0xheWVySW1wbCgp
IDogMDsKIH0KIAogQ0NMYXllckltcGwqIENDTGF5ZXJJbXBsOjptYXNrTGF5ZXIoKSBjb25zdApA
QCAtMTEzLDEwICsxMTMsMTAgQEAgUmVuZGVyU3VyZmFjZUNocm9taXVtKiBDQ0xheWVySW1wbDo6
Y3JlYXRlUmVuZGVyU3VyZmFjZSgpCiAKIGJvb2wgQ0NMYXllckltcGw6OmRlc2NlbmRhbnRzRHJh
d3NDb250ZW50KCkKIHsKLSAgICBjb25zdCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4m
IHN1YmxheWVycyA9IG1fb3duZXItPmdldFN1YmxheWVycygpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgc3VibGF5ZXJzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIHN1YmxheWVyc1tpXS0+
Y3JlYXRlQ0NMYXllckltcGxJZk5lZWRlZCgpOwotICAgICAgICBpZiAoc3VibGF5ZXJzW2ldLT5j
Y0xheWVySW1wbCgpLT5kcmF3c0NvbnRlbnQoKSB8fCBzdWJsYXllcnNbaV0tPmNjTGF5ZXJJbXBs
KCktPmRlc2NlbmRhbnRzRHJhd3NDb250ZW50KCkpCisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxM
YXllckNocm9taXVtPiA+JiBjaGlsZHJlbiA9IG1fb3duZXItPmNoaWxkcmVuKCk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbi5zaXplKCk7ICsraSkgeworICAgICAgICBjaGls
ZHJlbltpXS0+Y3JlYXRlQ0NMYXllckltcGxJZk5lZWRlZCgpOworICAgICAgICBpZiAoY2hpbGRy
ZW5baV0tPmNjTGF5ZXJJbXBsKCktPmRyYXdzQ29udGVudCgpIHx8IGNoaWxkcmVuW2ldLT5jY0xh
eWVySW1wbCgpLT5kZXNjZW5kYW50c0RyYXdzQ29udGVudCgpKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCmluZGV4
IGZkOGZkMDUzYjk0NjAzYjY4YjVkODNjMzRlNWI4Yjg0ZGVjODE2ZmMuLjllNjdmZDRmZWIxNzQ5
ZTE4YTQzZGMxODQ4NTM1YmIzNDljYzQzOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaApAQCAtNTcs
NyArNTcsNyBAQCBwdWJsaWM6CiAgICAgaW50IGRlYnVnSUQoKSBjb25zdCB7IHJldHVybiBtX2Rl
YnVnSUQ7IH0KICNlbmRpZgogCi0gICAgQ0NMYXllckltcGwqIHN1cGVybGF5ZXIoKSBjb25zdDsK
KyAgICBDQ0xheWVySW1wbCogcGFyZW50KCkgY29uc3Q7CiAgICAgQ0NMYXllckltcGwqIG1hc2tM
YXllcigpIGNvbnN0OwogICAgIENDTGF5ZXJJbXBsKiByZXBsaWNhTGF5ZXIoKSBjb25zdDsKIAo=
</data>
<flag name="review"
          id="86095"
          type_id="1"
          status="+"
          setter="japhet"
    />
          </attachment>
      

    </bug>

</bugzilla>