<?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>78293</bug_id>
          
          <creation_ts>2012-02-09 16:16:13 -0800</creation_ts>
          <short_desc>Support cross-fade() of generated images (gradients, canvas, etc.)</short_desc>
          <delta_ts>2023-05-28 23:38:53 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>adele</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>japhet</cc>
    
    <cc>lea</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>sam</cc>
    
    <cc>sebastianzartner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>woodlxf00</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>553600</commentid>
    <comment_count>0</comment_count>
      <attachid>126400</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-02-09 16:16:13 -0800</bug_when>
    <thetext>Created attachment 126400
extremely preliminary patch

We should support things like this:

background: -webkit-cross-fade(-webkit-cross-fade(-webkit-canvas(squares), -webkit-canvas(thirdsquares), 0.5), -webkit-canvas(othersquares), 0.5);

or this:

background: -webkit-cross-fade(-webkit-linear-gradient(red, blue), url(&quot;apple.gif&quot;), 0.5);

&lt;rdar://problem/10459872&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553601</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-02-09 16:18:10 -0800</bug_when>
    <thetext>I want to do some additional reorganization of CSSImageValue and co. to make this patch much smaller. Also, it still does some things I don&apos;t like. Still, it&apos;s a start! Also, it fixes animated-GIF-in-cross-fade, but I&apos;ll be splitting that out and attaching the (tiny) patch required to that bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553684</commentid>
    <comment_count>2</comment_count>
      <attachid>126400</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-09 18:13:09 -0800</bug_when>
    <thetext>Comment on attachment 126400
extremely preliminary patch

Attachment 126400 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11486469

New failing tests:
css3/images/cross-fade-tiled.html
animations/cross-fade-border-image-source.html
transitions/cross-fade-border-image.html
css3/images/cross-fade-simple.html
css3/images/cross-fade-invalidation.html
transitions/cross-fade-background-image.html
animations/cross-fade-list-style-image.html
animations/cross-fade-webkit-mask-image.html
css3/images/cross-fade-blending.html
css3/images/cross-fade-overflow-position.html
animations/cross-fade-webkit-mask-box-image.html
animations/cross-fade-background-image.html
css3/images/cross-fade-sizing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568231</commentid>
    <comment_count>3</comment_count>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2012-02-29 19:28:18 -0800</bug_when>
    <thetext>*** Bug 79772 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840254</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-22 19:10:45 -0800</bug_when>
    <thetext>*** Bug 90828 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1907553</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-10-22 10:36:38 -0700</bug_when>
    <thetext>Once https://bugs.webkit.org/show_bug.cgi?id=246594 lands, this should be relatively straightforward to do. Taking this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126400</attachid>
            <date>2012-02-09 16:16:13 -0800</date>
            <delta_ts>2012-02-09 18:13:09 -0800</delta_ts>
            <desc>extremely preliminary patch</desc>
            <filename>crossfade.patch</filename>
            <type>text/plain</type>
            <size>30904</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ2FudmFzVmFsdWUuY3BwCmluZGV4IDc4M2NlZWYuLjYyNWMyOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmNwcApAQCAtNDcsMTYgKzQ3LDE2IEBA
IFN0cmluZyBDU1NDYW52YXNWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiB2b2lkIENTU0Nh
bnZhc1ZhbHVlOjpjYW52YXNDaGFuZ2VkKEhUTUxDYW52YXNFbGVtZW50KiwgY29uc3QgRmxvYXRS
ZWN0JiBjaGFuZ2VkUmVjdCkKIHsKICAgICBJbnRSZWN0IGltYWdlQ2hhbmdlUmVjdCA9IGVuY2xv
c2luZ0ludFJlY3QoY2hhbmdlZFJlY3QpOwotICAgIFJlbmRlck9iamVjdFNpemVDb3VudE1hcDo6
Y29uc3RfaXRlcmF0b3IgZW5kID0gY2xpZW50cygpLmVuZCgpOwotICAgIGZvciAoUmVuZGVyT2Jq
ZWN0U2l6ZUNvdW50TWFwOjpjb25zdF9pdGVyYXRvciBjdXJyID0gY2xpZW50cygpLmJlZ2luKCk7
IGN1cnIgIT0gZW5kOyArK2N1cnIpCi0gICAgICAgIGNvbnN0X2Nhc3Q8UmVuZGVyT2JqZWN0Kj4o
Y3Vyci0+Zmlyc3QpLT5pbWFnZUNoYW5nZWQoc3RhdGljX2Nhc3Q8V3JhcHBlZEltYWdlUHRyPih0
aGlzKSwgJmltYWdlQ2hhbmdlUmVjdCk7CisgICAgQ2FjaGVkSW1hZ2VDbGllbnRTaXplQ291bnRN
YXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNsaWVudHMoKS5lbmQoKTsKKyAgICBmb3IgKENhY2hl
ZEltYWdlQ2xpZW50U2l6ZUNvdW50TWFwOjpjb25zdF9pdGVyYXRvciBjdXJyID0gY2xpZW50cygp
LmJlZ2luKCk7IGN1cnIgIT0gZW5kOyArK2N1cnIpCisgICAgICAgIGNvbnN0X2Nhc3Q8Q2FjaGVk
SW1hZ2VDbGllbnQqPihjdXJyLT5maXJzdCktPmltYWdlQ2hhbmdlZChzdGF0aWNfY2FzdDxXcmFw
cGVkSW1hZ2VQdHI+KHRoaXMpLCAmaW1hZ2VDaGFuZ2VSZWN0KTsKIH0KIAogdm9pZCBDU1NDYW52
YXNWYWx1ZTo6Y2FudmFzUmVzaXplZChIVE1MQ2FudmFzRWxlbWVudCopCiB7Ci0gICAgUmVuZGVy
T2JqZWN0U2l6ZUNvdW50TWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjbGllbnRzKCkuZW5kKCk7
Ci0gICAgZm9yIChSZW5kZXJPYmplY3RTaXplQ291bnRNYXA6OmNvbnN0X2l0ZXJhdG9yIGN1cnIg
PSBjbGllbnRzKCkuYmVnaW4oKTsgY3VyciAhPSBlbmQ7ICsrY3VycikKLSAgICAgICAgY29uc3Rf
Y2FzdDxSZW5kZXJPYmplY3QqPihjdXJyLT5maXJzdCktPmltYWdlQ2hhbmdlZChzdGF0aWNfY2Fz
dDxXcmFwcGVkSW1hZ2VQdHI+KHRoaXMpKTsKKyAgICBDYWNoZWRJbWFnZUNsaWVudFNpemVDb3Vu
dE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY2xpZW50cygpLmVuZCgpOworICAgIGZvciAoQ2Fj
aGVkSW1hZ2VDbGllbnRTaXplQ291bnRNYXA6OmNvbnN0X2l0ZXJhdG9yIGN1cnIgPSBjbGllbnRz
KCkuYmVnaW4oKTsgY3VyciAhPSBlbmQ7ICsrY3VycikKKyAgICAgICAgY29uc3RfY2FzdDxDYWNo
ZWRJbWFnZUNsaWVudCo+KGN1cnItPmZpcnN0KS0+aW1hZ2VDaGFuZ2VkKHN0YXRpY19jYXN0PFdy
YXBwZWRJbWFnZVB0cj4odGhpcykpOwogfQogCiB2b2lkIENTU0NhbnZhc1ZhbHVlOjpjYW52YXNE
ZXN0cm95ZWQoSFRNTENhbnZhc0VsZW1lbnQqIGVsZW1lbnQpCkBAIC04NSw3ICs4NSw2IEBAIEhU
TUxDYW52YXNFbGVtZW50KiBDU1NDYW52YXNWYWx1ZTo6ZWxlbWVudChEb2N1bWVudCogZG9jdW1l
bnQpCiAKIFBhc3NSZWZQdHI8SW1hZ2U+IENTU0NhbnZhc1ZhbHVlOjppbWFnZShSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiAvKnNpemUqLykKIHsKLSAgICBBU1NFUlQoY2xp
ZW50cygpLmNvbnRhaW5zKHJlbmRlcmVyKSk7CiAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGVsdCA9
IGVsZW1lbnQocmVuZGVyZXItPmRvY3VtZW50KCkpOwogICAgIGlmICghZWx0IHx8ICFlbHQtPmJ1
ZmZlcigpKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jvc3NmYWRl
VmFsdWUuY3BwCmluZGV4IDRmZjA4YWYuLmIzN2QwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0Nyb3NzZmFkZVZhbHVlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMSwgMjAxMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBib29sIHN1YmltYWdl
SXNQZW5kaW5nKENTU1ZhbHVlKiB2YWx1ZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRp
YyBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIENh
Y2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKK3N0YXRpYyBQYXNzUmVm
UHRyPEltYWdlPiBpbWFnZUZvckNTU1ZhbHVlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIENTU1Zh
bHVlKiB2YWx1ZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNh
Y2hlZFJlc291cmNlTG9hZGVyKQogewogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiAw
OwpAQCAtNjAsMTMgKzYwLDE4IEBAIHN0YXRpYyBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2VGb3JD
U1NWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIENhY2hlZFJlc291cmNlTG9hZGVyCiAgICAgICAgIGlm
ICghc3R5bGVDYWNoZWRJbWFnZSkKICAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgIHJl
dHVybiBzdHlsZUNhY2hlZEltYWdlLT5jYWNoZWRJbWFnZSgpOworICAgICAgICBDYWNoZWRJbWFn
ZSogY2FjaGVkSW1hZ2UgPSBzdHlsZUNhY2hlZEltYWdlLT5jYWNoZWRJbWFnZSgpOworICAgICAg
ICByZXR1cm4gY2FjaGVkSW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVuZGVyZXIpOwogICAgIH0K
ICAgICAKICAgICBpZiAodmFsdWUtPmlzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpKSB7Ci0gICAgICAg
IHN0YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPih2YWx1ZSktPmxvYWRTdWJpbWFn
ZXMoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOwotICAgICAgICAvLyBGSVhNRTogSGFuZGxlIENTU0lt
YWdlR2VuZXJhdG9yVmFsdWUgKGFuZCB0aHVzIGNyb3NzLWZhZGVzIHdpdGggZ3JhZGllbnRzIGFu
ZCBjYW52YXMpLgotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgQ1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZSogaW1hZ2VHZW5lcmF0b3IgPSBzdGF0aWNfY2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVl
Kj4odmFsdWUpOworICAgICAgICBpZiAoIWltYWdlR2VuZXJhdG9yKQorICAgICAgICAgICAgcmV0
dXJuIDA7CisKKyAgICAgICAgaW1hZ2VHZW5lcmF0b3ItPmxvYWRTdWJpbWFnZXMoY2FjaGVkUmVz
b3VyY2VMb2FkZXIpOworICAgICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gaW1hZ2VHZW5lcmF0
b3ItPmltYWdlKHJlbmRlcmVyLCBzaXplKTsKKyAgICAgICAgcmV0dXJuIGltYWdlOwogICAgIH0K
ICAgICAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTc0LDEyICs3OSwxNTcgQEAgc3Rh
dGljIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZUZvckNTU1ZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwg
Q2FjaGVkUmVzb3VyY2VMb2FkZXIKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgbG9h
ZENTU1ZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJl
c291cmNlTG9hZGVyKQoreworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmICh2YWx1ZS0+aXNJbWFnZVZhbHVlKCkpIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTSW1h
Z2VWYWx1ZSo+KHZhbHVlKS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHZhbHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFs
dWUoKSkgeworICAgICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKiBpbWFnZUdlbmVyYXRvciA9
IHN0YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPih2YWx1ZSk7CisgICAgICAgIGlm
ICghaW1hZ2VHZW5lcmF0b3IpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaW1hZ2VH
ZW5lcmF0b3ItPmxvYWRTdWJpbWFnZXMoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisgICAgCitzdGF0
aWMgYm9vbCBpc0ZpeGVkU2l6ZUZvckNTU1ZhbHVlKENTU1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBp
ZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKHZhbHVlLT5p
c0ltYWdlVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisgICAgaWYgKHZhbHVl
LT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkgeworICAgICAgICBDU1NJbWFnZUdlbmVyYXRvclZh
bHVlKiBpbWFnZUdlbmVyYXRvciA9IHN0YXRpY19jYXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUq
Pih2YWx1ZSk7CisgICAgICAgIGlmICghaW1hZ2VHZW5lcmF0b3IpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaW1hZ2VHZW5lcmF0b3ItPmlzRml4
ZWRTaXplKCk7CisgICAgfQorICAgIAorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIAor
ICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgZml4ZWRTaXplRm9yQ1NTVmFsdWUo
Y29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgQ1NTVmFsdWUqIHZhbHVlLCBJbnRTaXplJiBz
aXplLCBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIpCit7CisgICAg
aWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKHZhbHVlLT5pc0lt
YWdlVmFsdWUoKSkgeworICAgICAgICBTdHlsZUNhY2hlZEltYWdlKiBzdHlsZUNhY2hlZEltYWdl
ID0gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KHZhbHVlKS0+Y2FjaGVkSW1hZ2UoY2FjaGVk
UmVzb3VyY2VMb2FkZXIpOworICAgICAgICBpZiAoIXN0eWxlQ2FjaGVkSW1hZ2UpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlID0g
c3R5bGVDYWNoZWRJbWFnZS0+Y2FjaGVkSW1hZ2UoKTsKKyAgICAgICAgc2l6ZSA9IGNhY2hlZElt
YWdlLT5pbWFnZUZvclJlbmRlcmVyKHJlbmRlcmVyKS0+c2l6ZSgpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICBpZiAodmFsdWUtPmlzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpKSB7
CisgICAgICAgIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqIGltYWdlR2VuZXJhdG9yID0gc3RhdGlj
X2Nhc3Q8Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSo+KHZhbHVlKTsKKyAgICAgICAgaWYgKCFpbWFn
ZUdlbmVyYXRvcikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoaW1h
Z2VHZW5lcmF0b3ItPmlzRml4ZWRTaXplKCkpIHsKKyAgICAgICAgICAgIHNpemUgPSBpbWFnZUdl
bmVyYXRvci0+Zml4ZWRTaXplKHJlbmRlcmVyKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorICAgIAorc3RhdGljIEludFNp
emUgYmxlbmRTaXplcyhJbnRTaXplIGZyb20sIEludFNpemUgdG8sIGZsb2F0IHBlcmNlbnRhZ2Up
Cit7CisgICAgZmxvYXQgaW52ZXJzZVBlcmNlbnRhZ2UgPSAxIC0gcGVyY2VudGFnZTsKKyAgICAK
KyAgICByZXR1cm4gSW50U2l6ZShmcm9tLndpZHRoKCkgKiBpbnZlcnNlUGVyY2VudGFnZSArIHRv
LndpZHRoKCkgKiBwZXJjZW50YWdlLAorICAgICAgICAgICAgICAgICAgIGZyb20uaGVpZ2h0KCkg
KiBpbnZlcnNlUGVyY2VudGFnZSArIHRvLmhlaWdodCgpICogcGVyY2VudGFnZSk7Cit9CisKK3Zv
aWQgQ1NTQ3Jvc3NmYWRlVmFsdWU6OnJlZ2lzdGVyRm9ySW1hZ2VDaGFuZ2VkTm90aWZpY2F0aW9u
cyhDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IEludFNpemUmIHNpemUsIENhY2hlZFJlc291cmNlTG9h
ZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciwgQ1NTQ3Jvc3NmYWRlVmFsdWU6OkNyb3NzZmFkZVN1
YmltYWdlT2JzZXJ2ZXJQcm94eSogb2JzZXJ2ZXIpCit7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKHZhbHVlLT5pc0ltYWdlVmFsdWUoKSkgeworICAgICAgICBT
dHlsZUNhY2hlZEltYWdlKiBzdHlsZUNhY2hlZEltYWdlID0gc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VW
YWx1ZSo+KHZhbHVlKS0+Y2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2VMb2FkZXIpOworICAgICAg
ICBpZiAoIXN0eWxlQ2FjaGVkSW1hZ2UpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
Q2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlID0gc3R5bGVDYWNoZWRJbWFnZS0+Y2FjaGVkSW1hZ2Uo
KTsKKworICAgICAgICBjYWNoZWRJbWFnZS0+YWRkQ2xpZW50KG9ic2VydmVyKTsKKyAgICAgICAg
bV9yZWdpc3RlcmVkU3ViaW1hZ2VzLmFkZCh2YWx1ZSwgY2FjaGVkSW1hZ2UpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKHZhbHVlLT5pc0ltYWdlR2VuZXJhdG9yVmFsdWUoKSkg
eworICAgICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlKiBpbWFnZUdlbmVyYXRvciA9IHN0YXRp
Y19jYXN0PENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqPih2YWx1ZSk7CisgICAgICAgIGlmICghaW1h
Z2VHZW5lcmF0b3IpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaW1hZ2VHZW5lcmF0
b3ItPmFkZENsaWVudChvYnNlcnZlciwgc2l6ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKworICAgIHJldHVybjsKK30KKwordm9pZCBDU1ND
cm9zc2ZhZGVWYWx1ZTo6dW5yZWdpc3RlckZvckltYWdlQ2hhbmdlZE5vdGlmaWNhdGlvbnMoQ1NT
VmFsdWUqIHZhbHVlLCBDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZl
clByb3h5KiBvYnNlcnZlcikKK3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAodmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKSB7CisgICAgICAgIENTU1ZhbHVlQ2FjaGVk
SW1hZ2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZWdpc3RlcmVkU3ViaW1hZ2VzLmZpbmQodmFsdWUp
OworCisgICAgICAgIGlmIChpdCAhPSBtX3JlZ2lzdGVyZWRTdWJpbWFnZXMuZW5kKCkpCisgICAg
ICAgICAgICBpdC0+c2Vjb25kLT5yZW1vdmVDbGllbnQob2JzZXJ2ZXIpOworCisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAodmFsdWUtPmlzSW1hZ2VHZW5lcmF0b3JWYWx1ZSgpKSB7
CisgICAgICAgIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqIGltYWdlR2VuZXJhdG9yID0gc3RhdGlj
X2Nhc3Q8Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSo+KHZhbHVlKTsKKyAgICAgICAgaWYgKCFpbWFn
ZUdlbmVyYXRvcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpbWFnZUdlbmVyYXRv
ci0+cmVtb3ZlQ2xpZW50KG9ic2VydmVyKTsKKworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisKKyAgICByZXR1cm47Cit9CisKIENTU0Nyb3NzZmFk
ZVZhbHVlOjp+Q1NTQ3Jvc3NmYWRlVmFsdWUoKQogewotICAgIGlmIChtX2NhY2hlZEZyb21JbWFn
ZSkKLSAgICAgICAgbV9jYWNoZWRGcm9tSW1hZ2UtPnJlbW92ZUNsaWVudCgmbV9jcm9zc2ZhZGVT
dWJpbWFnZU9ic2VydmVyKTsKLSAgICBpZiAobV9jYWNoZWRUb0ltYWdlKQotICAgICAgICBtX2Nh
Y2hlZFRvSW1hZ2UtPnJlbW92ZUNsaWVudCgmbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKTsK
KyAgICBpZiAobV9kaWRSZWdpc3RlckZvckltYWdlQ2hhbmdlZE5vdGlmaWNhdGlvbnMpIHsKKyAg
ICAgICAgdW5yZWdpc3RlckZvckltYWdlQ2hhbmdlZE5vdGlmaWNhdGlvbnMobV9mcm9tVmFsdWUu
Z2V0KCksICZtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXIpOworICAgICAgICBpZiAobV90b1Zh
bHVlLmdldCgpICE9IG1fZnJvbVZhbHVlLmdldCgpKQorICAgICAgICAgICAgdW5yZWdpc3RlckZv
ckltYWdlQ2hhbmdlZE5vdGlmaWNhdGlvbnMobV90b1ZhbHVlLmdldCgpLCAmbV9jcm9zc2ZhZGVT
dWJpbWFnZU9ic2VydmVyKTsKKyAgICB9CiB9CiAKIFN0cmluZyBDU1NDcm9zc2ZhZGVWYWx1ZTo6
Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CkBAIC05MSwyOSArMjQxLDM4IEBAIFN0cmluZyBDU1NDcm9z
c2ZhZGVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiAgICAgcmVzdWx0ICs9ICIpIjsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQorICAgIAorYm9vbCBDU1NDcm9zc2ZhZGVWYWx1ZTo6aXNGaXhl
ZFNpemUoKSBjb25zdAoreworICAgIGJvb2wgZnJvbUlzRml4ZWRTaXplID0gaXNGaXhlZFNpemVG
b3JDU1NWYWx1ZShtX2Zyb21WYWx1ZS5nZXQoKSk7CisgICAgYm9vbCB0b0lzRml4ZWRTaXplID0g
aXNGaXhlZFNpemVGb3JDU1NWYWx1ZShtX3RvVmFsdWUuZ2V0KCkpOworICAgIAorICAgIC8vIFRP
RE86IFN1cHBvcnQgY3Jvc3NmYWRlIGJldHdlZW4gbm9uLWZpeGVkIGFuZCBmaXhlZCBjaGlsZHJl
bgorICAgIAorICAgIHJldHVybiBmcm9tSXNGaXhlZFNpemUgJiYgdG9Jc0ZpeGVkU2l6ZTsKK30K
IAogSW50U2l6ZSBDU1NDcm9zc2ZhZGVWYWx1ZTo6Zml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVj
dCogcmVuZGVyZXIpCiB7Ci0gICAgZmxvYXQgcGVyY2VudGFnZSA9IG1fcGVyY2VudGFnZVZhbHVl
LT5nZXRGbG9hdFZhbHVlKCk7Ci0gICAgZmxvYXQgaW52ZXJzZVBlcmNlbnRhZ2UgPSAxIC0gcGVy
Y2VudGFnZTsKLQogICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRl
ciA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOwotICAgIENh
Y2hlZEltYWdlKiBjYWNoZWRGcm9tSW1hZ2UgPSBjYWNoZWRJbWFnZUZvckNTU1ZhbHVlKG1fZnJv
bVZhbHVlLmdldCgpLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7Ci0gICAgQ2FjaGVkSW1hZ2UqIGNh
Y2hlZFRvSW1hZ2UgPSBjYWNoZWRJbWFnZUZvckNTU1ZhbHVlKG1fdG9WYWx1ZS5nZXQoKSwgY2Fj
aGVkUmVzb3VyY2VMb2FkZXIpOwogCi0gICAgaWYgKCFjYWNoZWRGcm9tSW1hZ2UgfHwgIWNhY2hl
ZFRvSW1hZ2UpCi0gICAgICAgIHJldHVybiBJbnRTaXplKCk7CisgICAgSW50U2l6ZSBmcm9tSW1h
Z2VTaXplOworICAgIEludFNpemUgdG9JbWFnZVNpemU7CiAKLSAgICBJbnRTaXplIGZyb21JbWFn
ZVNpemUgPSBjYWNoZWRGcm9tSW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVuZGVyZXIpLT5zaXpl
KCk7Ci0gICAgSW50U2l6ZSB0b0ltYWdlU2l6ZSA9IGNhY2hlZFRvSW1hZ2UtPmltYWdlRm9yUmVu
ZGVyZXIocmVuZGVyZXIpLT5zaXplKCk7CisgICAgYm9vbCBmcm9tSXNGaXhlZFNpemUgPSBmaXhl
ZFNpemVGb3JDU1NWYWx1ZShyZW5kZXJlciwgbV9mcm9tVmFsdWUuZ2V0KCksIGZyb21JbWFnZVNp
emUsIGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICBib29sIHRvSXNGaXhlZFNpemUgPSBmaXhl
ZFNpemVGb3JDU1NWYWx1ZShyZW5kZXJlciwgbV90b1ZhbHVlLmdldCgpLCB0b0ltYWdlU2l6ZSwg
Y2FjaGVkUmVzb3VyY2VMb2FkZXIpOwogCiAgICAgLy8gUm91bmRpbmcgaXNzdWVzIGNhbiBjYXVz
ZSB0cmFuc2l0aW9ucyBiZXR3ZWVuIGltYWdlcyBvZiBlcXVhbCBzaXplIHRvIHJldHVybgogICAg
IC8vIGEgZGlmZmVyZW50IGZpeGVkIHNpemU7IGF2b2lkIHBlcmZvcm1pbmcgdGhlIGludGVycG9s
YXRpb24gaWYgdGhlIGltYWdlcyBhcmUgdGhlIHNhbWUgc2l6ZS4KICAgICBpZiAoZnJvbUltYWdl
U2l6ZSA9PSB0b0ltYWdlU2l6ZSkKICAgICAgICAgcmV0dXJuIGZyb21JbWFnZVNpemU7CiAKLSAg
ICByZXR1cm4gSW50U2l6ZShmcm9tSW1hZ2VTaXplLndpZHRoKCkgKiBpbnZlcnNlUGVyY2VudGFn
ZSArIHRvSW1hZ2VTaXplLndpZHRoKCkgKiBwZXJjZW50YWdlLAotICAgICAgICBmcm9tSW1hZ2VT
aXplLmhlaWdodCgpICogaW52ZXJzZVBlcmNlbnRhZ2UgKyB0b0ltYWdlU2l6ZS5oZWlnaHQoKSAq
IHBlcmNlbnRhZ2UpOworICAgIGlmICghZnJvbUlzRml4ZWRTaXplIHx8ICF0b0lzRml4ZWRTaXpl
KSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gSW50U2l6
ZSgpOworICAgIH0KKworICAgIHJldHVybiBibGVuZFNpemVzKGZyb21JbWFnZVNpemUsIHRvSW1h
Z2VTaXplLCBtX3BlcmNlbnRhZ2VWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpKTsKIH0KIAogYm9vbCBD
U1NDcm9zc2ZhZGVWYWx1ZTo6aXNQZW5kaW5nKCkgY29uc3QKQEAgLTEyMywxNSArMjgyLDggQEAg
Ym9vbCBDU1NDcm9zc2ZhZGVWYWx1ZTo6aXNQZW5kaW5nKCkgY29uc3QKIAogdm9pZCBDU1NDcm9z
c2ZhZGVWYWx1ZTo6bG9hZFN1YmltYWdlcyhDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVz
b3VyY2VMb2FkZXIpCiB7Ci0gICAgbV9jYWNoZWRGcm9tSW1hZ2UgPSBjYWNoZWRJbWFnZUZvckNT
U1ZhbHVlKG1fZnJvbVZhbHVlLmdldCgpLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7Ci0gICAgbV9j
YWNoZWRUb0ltYWdlID0gY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZShtX3RvVmFsdWUuZ2V0KCksIGNh
Y2hlZFJlc291cmNlTG9hZGVyKTsKLQotICAgIGlmIChtX2NhY2hlZEZyb21JbWFnZSkKLSAgICAg
ICAgbV9jYWNoZWRGcm9tSW1hZ2UtPmFkZENsaWVudCgmbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2Vy
dmVyKTsKLSAgICBpZiAobV9jYWNoZWRUb0ltYWdlKQotICAgICAgICBtX2NhY2hlZFRvSW1hZ2Ut
PmFkZENsaWVudCgmbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKTsKLQotICAgIG1fY3Jvc3Nm
YWRlU3ViaW1hZ2VPYnNlcnZlci5zZXRSZWFkeSh0cnVlKTsKKyAgICBsb2FkQ1NTVmFsdWUobV9m
cm9tVmFsdWUuZ2V0KCksIGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICBsb2FkQ1NTVmFsdWUo
bV90b1ZhbHVlLmdldCgpLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7CiB9CiAKIFBhc3NSZWZQdHI8
SW1hZ2U+IENTU0Nyb3NzZmFkZVZhbHVlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBj
b25zdCBJbnRTaXplJiBzaXplKQpAQCAtMTQwLDI4ICsyOTIsNDcgQEAgUGFzc1JlZlB0cjxJbWFn
ZT4gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0
IEludFNpemUKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciog
Y2FjaGVkUmVzb3VyY2VMb2FkZXIgPSByZW5kZXJlci0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKTsKLSAgICBDYWNoZWRJbWFnZSogY2FjaGVkRnJvbUltYWdlID0gY2FjaGVkSW1h
Z2VGb3JDU1NWYWx1ZShtX2Zyb21WYWx1ZS5nZXQoKSwgY2FjaGVkUmVzb3VyY2VMb2FkZXIpOwot
ICAgIENhY2hlZEltYWdlKiBjYWNoZWRUb0ltYWdlID0gY2FjaGVkSW1hZ2VGb3JDU1NWYWx1ZSht
X3RvVmFsdWUuZ2V0KCksIGNhY2hlZFJlc291cmNlTG9hZGVyKTsKIAotICAgIGlmICghY2FjaGVk
RnJvbUltYWdlIHx8ICFjYWNoZWRUb0ltYWdlKQotICAgICAgICByZXR1cm4gSW1hZ2U6Om51bGxJ
bWFnZSgpOworICAgIEludFNpemUgdGFyZ2V0U2l6ZSA9IHNpemU7CisgICAgSW50U2l6ZSBmcm9t
SW1hZ2VTaXplID0gc2l6ZTsKKyAgICBJbnRTaXplIHRvSW1hZ2VTaXplID0gc2l6ZTsKKyAgICAK
KyAgICBpZiAoIWlzRml4ZWRTaXplKCkpIHsKKyAgICAgICAgYm9vbCBmcm9tSXNGaXhlZFNpemUg
PSBmaXhlZFNpemVGb3JDU1NWYWx1ZShyZW5kZXJlciwgbV9mcm9tVmFsdWUuZ2V0KCksIGZyb21J
bWFnZVNpemUsIGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgYm9vbCB0b0lzRml4ZWRT
aXplID0gZml4ZWRTaXplRm9yQ1NTVmFsdWUocmVuZGVyZXIsIG1fdG9WYWx1ZS5nZXQoKSwgdG9J
bWFnZVNpemUsIGNhY2hlZFJlc291cmNlTG9hZGVyKTsKKyAgICAgICAgCisgICAgICAgIGlmICgh
ZnJvbUlzRml4ZWRTaXplKQorICAgICAgICAgICAgZnJvbUltYWdlU2l6ZSA9IHNpemU7CisgICAg
ICAgIGlmICghdG9Jc0ZpeGVkU2l6ZSkKKyAgICAgICAgICAgIHRvSW1hZ2VTaXplID0gc2l6ZTsK
KyAgICAgICAgCisgICAgICAgIHRhcmdldFNpemUgPSBibGVuZFNpemVzKGZyb21JbWFnZVNpemUs
IHRvSW1hZ2VTaXplLCBtX3BlcmNlbnRhZ2VWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpKTsKKyAgICB9
CisgICAgCisgICAgaWYgKCFtX2RpZFJlZ2lzdGVyRm9ySW1hZ2VDaGFuZ2VkTm90aWZpY2F0aW9u
cykgeworICAgICAgICByZWdpc3RlckZvckltYWdlQ2hhbmdlZE5vdGlmaWNhdGlvbnMobV9mcm9t
VmFsdWUuZ2V0KCksIHRhcmdldFNpemUsIGNhY2hlZFJlc291cmNlTG9hZGVyLCAmbV9jcm9zc2Zh
ZGVTdWJpbWFnZU9ic2VydmVyKTsKKyAgICAgICAgaWYgKG1fdG9WYWx1ZS5nZXQoKSAhPSBtX2Zy
b21WYWx1ZS5nZXQoKSkKKyAgICAgICAgICAgIHJlZ2lzdGVyRm9ySW1hZ2VDaGFuZ2VkTm90aWZp
Y2F0aW9ucyhtX3RvVmFsdWUuZ2V0KCksIHRhcmdldFNpemUsIGNhY2hlZFJlc291cmNlTG9hZGVy
LCAmbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKTsKKyAgICAgICAgbV9jcm9zc2ZhZGVTdWJp
bWFnZU9ic2VydmVyLnNldFJlYWR5KHRydWUpOworICAgICAgICBtX2RpZFJlZ2lzdGVyRm9ySW1h
Z2VDaGFuZ2VkTm90aWZpY2F0aW9ucyA9IHRydWU7CisgICAgfQogCi0gICAgSW1hZ2UqIGZyb21J
bWFnZSA9IGNhY2hlZEZyb21JbWFnZS0+aW1hZ2VGb3JSZW5kZXJlcihyZW5kZXJlcik7Ci0gICAg
SW1hZ2UqIHRvSW1hZ2UgPSBjYWNoZWRUb0ltYWdlLT5pbWFnZUZvclJlbmRlcmVyKHJlbmRlcmVy
KTsKKyAgICBSZWZQdHI8SW1hZ2U+IGZyb21JbWFnZSA9IGltYWdlRm9yQ1NTVmFsdWUocmVuZGVy
ZXIsIG1fZnJvbVZhbHVlLmdldCgpLCB0YXJnZXRTaXplLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7
CisgICAgUmVmUHRyPEltYWdlPiB0b0ltYWdlID0gaW1hZ2VGb3JDU1NWYWx1ZShyZW5kZXJlciwg
bV90b1ZhbHVlLmdldCgpLCB0YXJnZXRTaXplLCBjYWNoZWRSZXNvdXJjZUxvYWRlcik7CiAKICAg
ICBpZiAoIWZyb21JbWFnZSB8fCAhdG9JbWFnZSkKICAgICAgICAgcmV0dXJuIEltYWdlOjpudWxs
SW1hZ2UoKTsKIAotICAgIG1fZ2VuZXJhdGVkSW1hZ2UgPSBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZTo6Y3JlYXRlKGZyb21JbWFnZSwgdG9JbWFnZSwgbV9wZXJjZW50YWdlVmFsdWUtPmdldEZsb2F0
VmFsdWUoKSwgZml4ZWRTaXplKHJlbmRlcmVyKSwgc2l6ZSk7CisgICAgbV9nZW5lcmF0ZWRJbWFn
ZSA9IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUoZnJvbUltYWdlLCB0b0ltYWdlLCBt
X3BlcmNlbnRhZ2VWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpLCB0YXJnZXRTaXplLCBzaXplKTsKIAog
ICAgIHJldHVybiBtX2dlbmVyYXRlZEltYWdlLnJlbGVhc2UoKTsKIH0KIAogdm9pZCBDU1NDcm9z
c2ZhZGVWYWx1ZTo6Y3Jvc3NmYWRlQ2hhbmdlZChjb25zdCBJbnRSZWN0JikKIHsKLSAgICBSZW5k
ZXJPYmplY3RTaXplQ291bnRNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNsaWVudHMoKS5lbmQo
KTsKLSAgICBmb3IgKFJlbmRlck9iamVjdFNpemVDb3VudE1hcDo6Y29uc3RfaXRlcmF0b3IgY3Vy
ciA9IGNsaWVudHMoKS5iZWdpbigpOyBjdXJyICE9IGVuZDsgKytjdXJyKSB7Ci0gICAgICAgIFJl
bmRlck9iamVjdCogY2xpZW50ID0gY29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPihjdXJyLT5maXJz
dCk7CisgICAgQ2FjaGVkSW1hZ2VDbGllbnRTaXplQ291bnRNYXA6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IGNsaWVudHMoKS5lbmQoKTsKKyAgICBmb3IgKENhY2hlZEltYWdlQ2xpZW50U2l6ZUNvdW50
TWFwOjpjb25zdF9pdGVyYXRvciBjdXJyID0gY2xpZW50cygpLmJlZ2luKCk7IGN1cnIgIT0gZW5k
OyArK2N1cnIpIHsKKyAgICAgICAgQ2FjaGVkSW1hZ2VDbGllbnQqIGNsaWVudCA9IGNvbnN0X2Nh
c3Q8Q2FjaGVkSW1hZ2VDbGllbnQqPihjdXJyLT5maXJzdCk7CiAgICAgICAgIGNsaWVudC0+aW1h
Z2VDaGFuZ2VkKHN0YXRpY19jYXN0PFdyYXBwZWRJbWFnZVB0cj4odGhpcykpOwogICAgIH0KIH0K
QEAgLTE3Miw0ICszNDMsMTAgQEAgdm9pZCBDU1NDcm9zc2ZhZGVWYWx1ZTo6Q3Jvc3NmYWRlU3Vi
aW1hZ2VPYnNlcnZlclByb3h5OjppbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UKICAgICAgICAgbV9v
d25lclZhbHVlLT5jcm9zc2ZhZGVDaGFuZ2VkKCpyZWN0KTsKIH0KIAordm9pZCBDU1NDcm9zc2Zh
ZGVWYWx1ZTo6Q3Jvc3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OjppbWFnZUNoYW5nZWQoV3Jh
cHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiByZWN0KQoreworICAgIGlmIChtX3JlYWR5KQor
ICAgICAgICBtX293bmVyVmFsdWUtPmNyb3NzZmFkZUNoYW5nZWQoKnJlY3QpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Jv
c3NmYWRlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oCmlu
ZGV4IGJlNjA2NjAuLjRjZDljYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
cm9zc2ZhZGVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1
ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNs
dWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkltYWdlT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJTdHls
ZUltYWdlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzksNiArNDAsOCBAQCBjbGFz
cyBDcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHk7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBj
bGFzcyBEb2N1bWVudDsKIAordHlwZWRlZiBIYXNoTWFwPGNvbnN0IENTU1ZhbHVlKiwgQ2FjaGVk
SW1hZ2UqPiBDU1NWYWx1ZUNhY2hlZEltYWdlTWFwOworCiBjbGFzcyBDU1NDcm9zc2ZhZGVWYWx1
ZSA6IHB1YmxpYyBDU1NJbWFnZUdlbmVyYXRvclZhbHVlIHsKICAgICBmcmllbmQgY2xhc3MgQ3Jv
c3NmYWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5OwogcHVibGljOgpAQCAtNTIsNyArNTUsNyBAQCBw
dWJsaWM6CiAgICAgU3RyaW5nIGN1c3RvbUNzc1RleHQoKSBjb25zdDsKIAogICAgIFBhc3NSZWZQ
dHI8SW1hZ2U+IGltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKTsKLSAgICBib29s
IGlzRml4ZWRTaXplKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgaXNGaXhlZFNp
emUoKSBjb25zdDsKICAgICBJbnRTaXplIGZpeGVkU2l6ZShjb25zdCBSZW5kZXJPYmplY3QqKTsK
IAogICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3Q7CkBAIC02MCwxNSArNjMsNiBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldFBlcmNlbnRhZ2UoUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
cGVyY2VudGFnZVZhbHVlKSB7IG1fcGVyY2VudGFnZVZhbHVlID0gcGVyY2VudGFnZVZhbHVlOyB9
CiAKLXByaXZhdGU6Ci0gICAgQ1NTQ3Jvc3NmYWRlVmFsdWUoUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
ZnJvbVZhbHVlLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiB0b1ZhbHVlKQotICAgICAgICA6IENTU0lt
YWdlR2VuZXJhdG9yVmFsdWUoQ3Jvc3NmYWRlQ2xhc3MpCi0gICAgICAgICwgbV9mcm9tVmFsdWUo
ZnJvbVZhbHVlKQotICAgICAgICAsIG1fdG9WYWx1ZSh0b1ZhbHVlKQotICAgICAgICAsIG1fY2Fj
aGVkRnJvbUltYWdlKDApCi0gICAgICAgICwgbV9jYWNoZWRUb0ltYWdlKDApCi0gICAgICAgICwg
bV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKHRoaXMpIHsgfQotCiAgICAgY2xhc3MgQ3Jvc3Nm
YWRlU3ViaW1hZ2VPYnNlcnZlclByb3h5IDogcHVibGljIENhY2hlZEltYWdlQ2xpZW50IHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIENyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eShDU1NDcm9z
c2ZhZGVWYWx1ZSogb3duZXJWYWx1ZSkKQEAgLTc3LDI0ICs3MSwzOSBAQCBwcml2YXRlOgogCiAg
ICAgICAgIHZpcnR1YWwgfkNyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSgpIHsgfQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVj
dCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChXcmFw
cGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCkgT1ZFUlJJREU7CiAgICAgICAgIHZvaWQg
c2V0UmVhZHkoYm9vbCByZWFkeSkgeyBtX3JlYWR5ID0gcmVhZHk7IH0KKyAgICAgICAgdmlydHVh
bCBib29sIHdpbGxSZW5kZXJJbWFnZShDYWNoZWRJbWFnZSopIHsgcmV0dXJuIHRydWU7IH0KICAg
ICBwcml2YXRlOgogICAgICAgICBDU1NDcm9zc2ZhZGVWYWx1ZSogbV9vd25lclZhbHVlOwogICAg
ICAgICBib29sIG1fcmVhZHk7CiAgICAgfTsKIAorcHJpdmF0ZToKKyAgICBDU1NDcm9zc2ZhZGVW
YWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBmcm9tVmFsdWUsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IHRvVmFsdWUpCisgICAgICAgIDogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZShDcm9zc2ZhZGVDbGFz
cykKKyAgICAgICAgLCBtX2Zyb21WYWx1ZShmcm9tVmFsdWUpCisgICAgICAgICwgbV90b1ZhbHVl
KHRvVmFsdWUpCisgICAgICAgICwgbV9kaWRSZWdpc3RlckZvckltYWdlQ2hhbmdlZE5vdGlmaWNh
dGlvbnMoZmFsc2UpCisgICAgICAgICwgbV9jcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyKHRoaXMp
IHsgfQorCiAgICAgdm9pZCBjcm9zc2ZhZGVDaGFuZ2VkKGNvbnN0IEludFJlY3QmKTsKIAorICAg
IHZvaWQgcmVnaXN0ZXJGb3JJbWFnZUNoYW5nZWROb3RpZmljYXRpb25zKENTU1ZhbHVlKiwgY29u
c3QgSW50U2l6ZSYsIENhY2hlZFJlc291cmNlTG9hZGVyKiwgQ1NTQ3Jvc3NmYWRlVmFsdWU6OkNy
b3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXJQcm94eSopOworCisgICAgdm9pZCB1bnJlZ2lzdGVyRm9y
SW1hZ2VDaGFuZ2VkTm90aWZpY2F0aW9ucyhDU1NWYWx1ZSosIENTU0Nyb3NzZmFkZVZhbHVlOjpD
cm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkqKTsKKwogICAgIFJlZlB0cjxDU1NWYWx1ZT4g
bV9mcm9tVmFsdWU7CiAgICAgUmVmUHRyPENTU1ZhbHVlPiBtX3RvVmFsdWU7CiAgICAgUmVmUHRy
PENTU1ByaW1pdGl2ZVZhbHVlPiBtX3BlcmNlbnRhZ2VWYWx1ZTsKIAotICAgIENhY2hlZEltYWdl
KiBtX2NhY2hlZEZyb21JbWFnZTsKLSAgICBDYWNoZWRJbWFnZSogbV9jYWNoZWRUb0ltYWdlOwot
CiAgICAgUmVmUHRyPEltYWdlPiBtX2dlbmVyYXRlZEltYWdlOwogCisgICAgYm9vbCBtX2RpZFJl
Z2lzdGVyRm9ySW1hZ2VDaGFuZ2VkTm90aWZpY2F0aW9uczsKKwogICAgIENyb3NzZmFkZVN1Ymlt
YWdlT2JzZXJ2ZXJQcm94eSBtX2Nyb3NzZmFkZVN1YmltYWdlT2JzZXJ2ZXI7CisKKyAgICBDU1NW
YWx1ZUNhY2hlZEltYWdlTWFwIG1fcmVnaXN0ZXJlZFN1YmltYWdlczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVu
dFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRl
eCBkOGQ3MjUzLi5jNTQwNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUu
Y3BwCkBAIC00NywxMCArNDcsNyBAQCBQYXNzUmVmUHRyPEltYWdlPiBDU1NHcmFkaWVudFZhbHVl
OjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJgogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIGJvb2wgY2FjaGVhYmxlID0gaXNDYWNoZWFibGUoKTsKLSAgICBpZiAo
Y2FjaGVhYmxlKSB7Ci0gICAgICAgIGlmICghY2xpZW50cygpLmNvbnRhaW5zKHJlbmRlcmVyKSkK
LSAgICAgICAgICAgIHJldHVybiAwOwotCisgICAgaWYgKGNhY2hlYWJsZSAmJiBjbGllbnRzKCku
Y29udGFpbnMocmVuZGVyZXIpKSB7CiAgICAgICAgIC8vIE5lZWQgdG8gbG9vayB1cCBvdXIgc2l6
ZS4gIENyZWF0ZSBhIHN0cmluZyBvZiB3aWR0aCpoZWlnaHQgdG8gdXNlIGFzIGEgaGFzaCBrZXku
CiAgICAgICAgIEltYWdlKiByZXN1bHQgPSBnZXRJbWFnZShyZW5kZXJlciwgc2l6ZSk7CiAgICAg
ICAgIGlmIChyZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VH
ZW5lcmF0b3JWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JW
YWx1ZS5jcHAKaW5kZXggOWJlNDQ2Yi4uNDg2NGY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcApAQCAtNDQsMjcgKzQ0LDI3IEBAIENTU0ltYWdl
R2VuZXJhdG9yVmFsdWU6On5DU1NJbWFnZUdlbmVyYXRvclZhbHVlKCkKIHsKIH0KIAotdm9pZCBD
U1NJbWFnZUdlbmVyYXRvclZhbHVlOjphZGRDbGllbnQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKK3ZvaWQgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6YWRkQ2xp
ZW50KENhY2hlZEltYWdlQ2xpZW50KiBjbGllbnQsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAg
ICAgcmVmKCk7CiAKLSAgICBBU1NFUlQocmVuZGVyZXIpOworICAgIEFTU0VSVChjbGllbnQpOwog
ICAgIGlmICghc2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIG1fc2l6ZXMuYWRkKHNpemUpOwogCi0g
ICAgUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwOjppdGVyYXRvciBpdCA9IG1fY2xpZW50cy5maW5k
KHJlbmRlcmVyKTsKKyAgICBDYWNoZWRJbWFnZUNsaWVudFNpemVDb3VudE1hcDo6aXRlcmF0b3Ig
aXQgPSBtX2NsaWVudHMuZmluZChjbGllbnQpOwogICAgIGlmIChpdCA9PSBtX2NsaWVudHMuZW5k
KCkpCi0gICAgICAgIG1fY2xpZW50cy5hZGQocmVuZGVyZXIsIFNpemVBbmRDb3VudChzaXplLCAx
KSk7CisgICAgICAgIG1fY2xpZW50cy5hZGQoY2xpZW50LCBTaXplQW5kQ291bnQoc2l6ZSwgMSkp
OwogICAgIGVsc2UgewogICAgICAgICBTaXplQW5kQ291bnQmIHNpemVDb3VudCA9IGl0LT5zZWNv
bmQ7CiAgICAgICAgICsrc2l6ZUNvdW50LmNvdW50OwogICAgIH0KIH0KIAotdm9pZCBDU1NJbWFn
ZUdlbmVyYXRvclZhbHVlOjpyZW1vdmVDbGllbnQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK3Zv
aWQgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6cmVtb3ZlQ2xpZW50KENhY2hlZEltYWdlQ2xpZW50
KiBjbGllbnQpCiB7Ci0gICAgQVNTRVJUKHJlbmRlcmVyKTsKLSAgICBSZW5kZXJPYmplY3RTaXpl
Q291bnRNYXA6Oml0ZXJhdG9yIGl0ID0gbV9jbGllbnRzLmZpbmQocmVuZGVyZXIpOworICAgIEFT
U0VSVChjbGllbnQpOworICAgIENhY2hlZEltYWdlQ2xpZW50U2l6ZUNvdW50TWFwOjppdGVyYXRv
ciBpdCA9IG1fY2xpZW50cy5maW5kKGNsaWVudCk7CiAgICAgQVNTRVJUKGl0ICE9IG1fY2xpZW50
cy5lbmQoKSk7CiAKICAgICBJbnRTaXplIHJlbW92ZWRJbWFnZVNpemU7CkBAIC03NywxNCArNzcs
MTQgQEAgdm9pZCBDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpyZW1vdmVDbGllbnQoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKICAgICB9CiAKICAgICBpZiAoIS0tc2l6ZUNvdW50LmNvdW50KQotICAg
ICAgICBtX2NsaWVudHMucmVtb3ZlKHJlbmRlcmVyKTsKKyAgICAgICAgbV9jbGllbnRzLnJlbW92
ZShjbGllbnQpOwogCiAgICAgZGVyZWYoKTsKIH0KIAogSW1hZ2UqIENTU0ltYWdlR2VuZXJhdG9y
VmFsdWU6OmdldEltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmIHNp
emUpCiB7Ci0gICAgUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwOjppdGVyYXRvciBpdCA9IG1fY2xp
ZW50cy5maW5kKHJlbmRlcmVyKTsKKyAgICBDYWNoZWRJbWFnZUNsaWVudFNpemVDb3VudE1hcDo6
aXRlcmF0b3IgaXQgPSBtX2NsaWVudHMuZmluZChzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZUNsaWVu
dCo+KHJlbmRlcmVyKSk7CiAgICAgaWYgKGl0ICE9IG1fY2xpZW50cy5lbmQoKSkgewogICAgICAg
ICBTaXplQW5kQ291bnQmIHNpemVDb3VudCA9IGl0LT5zZWNvbmQ7CiAgICAgICAgIEludFNpemUg
b2xkU2l6ZSA9IHNpemVDb3VudC5zaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdl
bmVyYXRvclZhbHVlLmgKaW5kZXggODc3OTY5YS4uOGI5NTQzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oCkBAIC0zMyw2ICszMyw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkSW1hZ2VDbGllbnQ7CiBjbGFzcyBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjsKIGNsYXNzIEltYWdlOwogY2xhc3MgUmVuZGVyT2JqZWN0OwpAQCAtNDgs
MTQgKzQ5LDE0IEBAIHN0cnVjdCBTaXplQW5kQ291bnQgewogICAgIGludCBjb3VudDsKIH07CiAK
LXR5cGVkZWYgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBTaXplQW5kQ291bnQ+IFJlbmRl
ck9iamVjdFNpemVDb3VudE1hcDsKK3R5cGVkZWYgSGFzaE1hcDxjb25zdCBDYWNoZWRJbWFnZUNs
aWVudCosIFNpemVBbmRDb3VudD4gQ2FjaGVkSW1hZ2VDbGllbnRTaXplQ291bnRNYXA7CiAKIGNs
YXNzIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgog
ICAgIH5DU1NJbWFnZUdlbmVyYXRvclZhbHVlKCk7CiAKLSAgICB2b2lkIGFkZENsaWVudChSZW5k
ZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJik7Ci0gICAgdm9pZCByZW1vdmVDbGllbnQoUmVuZGVy
T2JqZWN0Kik7CisgICAgdm9pZCBhZGRDbGllbnQoQ2FjaGVkSW1hZ2VDbGllbnQqLCBjb25zdCBJ
bnRTaXplJik7CisgICAgdm9pZCByZW1vdmVDbGllbnQoQ2FjaGVkSW1hZ2VDbGllbnQqKTsKICAg
ICBQYXNzUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJik7
CiAKICAgICBib29sIGlzRml4ZWRTaXplKCkgY29uc3Q7CkBAIC03MCwxMCArNzEsMTAgQEAgcHJv
dGVjdGVkOgogCiAgICAgSW1hZ2UqIGdldEltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNp
emUmKTsKICAgICB2b2lkIHB1dEltYWdlKGNvbnN0IEludFNpemUmLCBQYXNzUmVmUHRyPEltYWdl
Pik7Ci0gICAgY29uc3QgUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwJiBjbGllbnRzKCkgY29uc3Qg
eyByZXR1cm4gbV9jbGllbnRzOyB9CisgICAgY29uc3QgQ2FjaGVkSW1hZ2VDbGllbnRTaXplQ291
bnRNYXAmIGNsaWVudHMoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudHM7IH0KIAogICAgIEhhc2hD
b3VudGVkU2V0PEludFNpemU+IG1fc2l6ZXM7IC8vIEEgY291bnQgb2YgaG93IG1hbnkgdGltZXMg
YSBnaXZlbiBpbWFnZSBzaXplIGlzIGluIHVzZS4KLSAgICBSZW5kZXJPYmplY3RTaXplQ291bnRN
YXAgbV9jbGllbnRzOyAvLyBBIG1hcCBmcm9tIFJlbmRlck9iamVjdHMgKHdpdGggZW50cnkgY291
bnQpIHRvIGltYWdlIHNpemVzLgorICAgIENhY2hlZEltYWdlQ2xpZW50U2l6ZUNvdW50TWFwIG1f
Y2xpZW50czsgLy8gQSBtYXAgZnJvbSBDYWNoZWRJbWFnZUNsaWVudHMgKHdpdGggZW50cnkgY291
bnQpIHRvIGltYWdlIHNpemVzLgogICAgIEhhc2hNYXA8SW50U2l6ZSwgUmVmUHRyPEltYWdlPiA+
IG1faW1hZ2VzOyAvLyBBIGNhY2hlIG9mIEltYWdlIG9iamVjdHMgYnkgaW1hZ2Ugc2l6ZS4KIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXggZTcxODRl
MS4uYzFhOWZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJTVkdJbWFnZUNhY2hlLmgiCiAjaW5jbHVkZSAi
SW1hZ2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJTdHlsZUlt
YWdlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAg
LTEyMiw2ICsxMjMsNyBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIHdoZW5ldmVyIGEgZnJhbWUg
b2YgYW4gaW1hZ2UgY2hhbmdlcywgZWl0aGVyIGJlY2F1c2Ugd2UgZ290IG1vcmUgZGF0YSBmcm9t
IHRoZSBuZXR3b3JrIG9yCiAgICAgLy8gYmVjYXVzZSB3ZSBhcmUgYW5pbWF0aW5nLiBJZiBub3Qg
bnVsbCwgdGhlIEludFJlY3QgaXMgdGhlIGNoYW5nZWQgcmVjdCBvZiB0aGUgaW1hZ2UuCiAgICAg
dmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqID0g
MCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIsIGNv
bnN0IEludFJlY3QqID0gMCkgeyB9CiAKICAgICAvLyBDYWxsZWQgdG8gZmluZCBvdXQgaWYgdGhp
cyBjbGllbnQgd2FudHMgdG8gYWN0dWFsbHkgZGlzcGxheSB0aGUgaW1hZ2UuIFVzZWQgdG8gdGVs
bCB3aGVuIHdlCiAgICAgLy8gY2FuIGhhbHQgYW5pbWF0aW9uLiBDb250ZW50IG5vZGVzIHRoYXQg
aG9sZCBpbWFnZSByZWZzIGZvciBleGFtcGxlIHdvdWxkIG5vdCByZW5kZXIgdGhlIGltYWdlLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAppbmRl
eCBlM2FkOTJmLi5mOGQ3MzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmNwcApAQCAtMjU1LDM4ICsyNTUsNDMgQEAgc3RhdGljIGlubGluZSBT
VkdMZW5ndGggYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBjb25zdCBTVkdMZW5ndGgm
IGZyb20sIGMKIH0KICNlbmRpZgogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFn
ZT4gY3Jvc3NmYWRlQmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSosIFN0eWxlQ2FjaGVkSW1hZ2Uq
IGZyb21TdHlsZUltYWdlLCBTdHlsZUNhY2hlZEltYWdlKiB0b1N0eWxlSW1hZ2UsIGRvdWJsZSBw
cm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gY3NzVmFsdWVGb3JT
dHlsZUltYWdlKFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UpCiB7Ci0gICAgLy8gSWYgcHJvZ3Jlc3Mg
aXMgYXQgb25lIG9mIHRoZSBleHRyZW1lcywgd2Ugd2FudCBnZXRDb21wdXRlZFN0eWxlIHRvIHNo
b3cgdGhlIGltYWdlLAotICAgIC8vIG5vdCBhIGNvbXBsZXRlZCBjcm9zcy1mYWRlLCBzbyB3ZSBo
YW5kIGJhY2sgb25lIG9mIHRoZSBleGlzdGluZyBpbWFnZXMuCi0gICAgaWYgKCFwcm9ncmVzcykK
LSAgICAgICAgcmV0dXJuIGZyb21TdHlsZUltYWdlOwotICAgIGlmIChwcm9ncmVzcyA9PSAxKQot
ICAgICAgICByZXR1cm4gdG9TdHlsZUltYWdlOwotCi0gICAgQ2FjaGVkSW1hZ2UqIGZyb21DYWNo
ZWRJbWFnZSA9IHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4oZnJvbVN0eWxlSW1hZ2UtPmRhdGEo
KSk7Ci0gICAgQ2FjaGVkSW1hZ2UqIHRvQ2FjaGVkSW1hZ2UgPSBzdGF0aWNfY2FzdDxDYWNoZWRJ
bWFnZSo+KHRvU3R5bGVJbWFnZS0+ZGF0YSgpKTsKKyAgICBpZiAoc3R5bGVJbWFnZS0+aXNDYWNo
ZWRJbWFnZSgpKSB7CisgICAgICAgIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSA9IHN0YXRpY19j
YXN0PENhY2hlZEltYWdlKj4oc3R5bGVJbWFnZS0+ZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIENT
U0ltYWdlVmFsdWU6OmNyZWF0ZShjYWNoZWRJbWFnZS0+dXJsKCksIHN0eWxlSW1hZ2UpOworICAg
IH0KIAotICAgIFJlZlB0cjxDU1NJbWFnZVZhbHVlPiBmcm9tSW1hZ2VWYWx1ZSA9IENTU0ltYWdl
VmFsdWU6OmNyZWF0ZShmcm9tQ2FjaGVkSW1hZ2UtPnVybCgpLCBmcm9tU3R5bGVJbWFnZSk7Ci0g
ICAgUmVmUHRyPENTU0ltYWdlVmFsdWU+IHRvSW1hZ2VWYWx1ZSA9IENTU0ltYWdlVmFsdWU6OmNy
ZWF0ZSh0b0NhY2hlZEltYWdlLT51cmwoKSwgdG9TdHlsZUltYWdlKTsKLSAgICBSZWZQdHI8Q1NT
Q3Jvc3NmYWRlVmFsdWU+IGNyb3NzZmFkZVZhbHVlID0gQ1NTQ3Jvc3NmYWRlVmFsdWU6OmNyZWF0
ZShmcm9tSW1hZ2VWYWx1ZSwgdG9JbWFnZVZhbHVlKTsKKyAgICBpZiAoc3R5bGVJbWFnZS0+aXNH
ZW5lcmF0ZWRJbWFnZSgpKSB7CisgICAgICAgIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUqIGltYWdl
R2VuZXJhdG9yVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NJbWFnZUdlbmVyYXRvclZhbHVlKj4oc3R5
bGVJbWFnZS0+ZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIGltYWdlR2VuZXJhdG9yVmFsdWU7Cisg
ICAgfQogCi0gICAgY3Jvc3NmYWRlVmFsdWUtPnNldFBlcmNlbnRhZ2UoQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZShwcm9ncmVzcywgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpKTsKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAotICAgIHJldHVybiBTdHlsZUdlbmVyYXRlZEltYWdl
OjpjcmVhdGUoY3Jvc3NmYWRlVmFsdWUuZ2V0KCkpOworICAgIHJldHVybiBDU1NJbWFnZVZhbHVl
OjpjcmVhdGUoKTsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGJs
ZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBTdHlsZUltYWdlKiBmcm9tLCBTdHls
ZUltYWdlKiB0bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0
eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgU3R5bGVJbWFnZSogZnJv
bSwgU3R5bGVJbWFnZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoIWZyb20gfHwg
IXRvKQogICAgICAgICByZXR1cm4gdG87CiAKLSAgICBpZiAoZnJvbS0+aXNDYWNoZWRJbWFnZSgp
ICYmIHRvLT5pc0NhY2hlZEltYWdlKCkpCi0gICAgICAgIHJldHVybiBjcm9zc2ZhZGVCbGVuZChh
bmltLCBzdGF0aWNfY2FzdDxTdHlsZUNhY2hlZEltYWdlKj4oZnJvbSksIHN0YXRpY19jYXN0PFN0
eWxlQ2FjaGVkSW1hZ2UqPih0byksIHByb2dyZXNzKTsKLQotICAgIC8vIEZJWE1FOiBTdXBwb3J0
IHRyYW5zaXRpb25pbmcgZ2VuZXJhdGVkIGltYWdlcyBhcyB3ZWxsLiAoZ3JhZGllbnRzLCBldGMu
KQorICAgIC8vIElmIHByb2dyZXNzIGlzIGF0IG9uZSBvZiB0aGUgZXh0cmVtZXMsIHdlIHdhbnQg
Z2V0Q29tcHV0ZWRTdHlsZSB0byBzaG93IHRoZSBpbWFnZSwKKyAgICAvLyBub3QgYSBjb21wbGV0
ZWQgY3Jvc3MtZmFkZSwgc28gd2UgaGFuZCBiYWNrIG9uZSBvZiB0aGUgZXhpc3RpbmcgaW1hZ2Vz
LgorICAgIGlmICghcHJvZ3Jlc3MpCisgICAgICAgIHJldHVybiBmcm9tOworICAgIGlmIChwcm9n
cmVzcyA9PSAxKQorICAgICAgICByZXR1cm4gdG87CiAKLSAgICByZXR1cm4gdG87CisgICAgUmVm
UHRyPENTU1ZhbHVlPiBmcm9tVmFsdWUgPSBjc3NWYWx1ZUZvclN0eWxlSW1hZ2UoZnJvbSk7Cisg
ICAgUmVmUHRyPENTU1ZhbHVlPiB0b1ZhbHVlID0gY3NzVmFsdWVGb3JTdHlsZUltYWdlKHRvKTsK
KyAgICAKKyAgICBSZWZQdHI8Q1NTQ3Jvc3NmYWRlVmFsdWU+IGNyb3NzZmFkZVZhbHVlID0gQ1NT
Q3Jvc3NmYWRlVmFsdWU6OmNyZWF0ZShmcm9tVmFsdWUsIHRvVmFsdWUpOworICAgIAorICAgIGNy
b3NzZmFkZVZhbHVlLT5zZXRQZXJjZW50YWdlKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUocHJv
Z3Jlc3MsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSk7CisgICAgCisgICAgcmV0dXJu
IFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShjcm9zc2ZhZGVWYWx1ZS5nZXQoKSk7CiB9CiAK
IHN0YXRpYyBpbmxpbmUgTmluZVBpZWNlSW1hZ2UgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJh
c2UqIGFuaW0sIGNvbnN0IE5pbmVQaWVjZUltYWdlJiBmcm9tLCBjb25zdCBOaW5lUGllY2VJbWFn
ZSYgdG8sIGRvdWJsZSBwcm9ncmVzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcAppbmRleCAwMzUw
ZGEwLi45OGE2MGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCkBAIC0zNCw3ICszNCw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2U6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlKEltYWdlKiBmcm9tSW1hZ2Us
IEltYWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBJbnRTaXplIGNyb3NzZmFkZVNpemUs
IGNvbnN0IEludFNpemUmIHNpemUpCitDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZTo6Q3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UoUGFzc1JlZlB0cjxJbWFnZT4gZnJvbUltYWdlLCBQYXNzUmVmUHRyPElt
YWdlPiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdlLCBJbnRTaXplIGNyb3NzZmFkZVNpemUsIGNv
bnN0IEludFNpemUmIHNpemUpCiAgICAgOiBtX2Zyb21JbWFnZShmcm9tSW1hZ2UpCiAgICAgLCBt
X3RvSW1hZ2UodG9JbWFnZSkKICAgICAsIG1fcGVyY2VudGFnZShwZXJjZW50YWdlKQpAQCAtNjEs
MjAgKzYxLDIyIEBAIHZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdDcm9zc2ZhZGUo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQogICAgIAogICAgIC8vIERyYXcgdGhlIGltYWdlIHdl
J3JlIGZhZGluZyBhd2F5IGZyb20uCiAgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGNvbnRleHQt
PmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIoaW52ZXJzZVBlcmNlbnRhZ2UpOwogICAgIGlmIChtX2Ny
b3NzZmFkZVNpemUgIT0gZnJvbUltYWdlU2l6ZSkKICAgICAgICAgY29udGV4dC0+c2NhbGUoRmxv
YXRTaXplKHN0YXRpY19jYXN0PGZsb2F0PihtX2Nyb3NzZmFkZVNpemUud2lkdGgoKSkgLyBmcm9t
SW1hZ2VTaXplLndpZHRoKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxmbG9hdD4obV9jcm9zc2ZhZGVTaXplLmhlaWdodCgpKSAvIGZyb21JbWFnZVNpemUu
aGVpZ2h0KCkpKTsKLSAgICBjb250ZXh0LT5zZXRBbHBoYShpbnZlcnNlUGVyY2VudGFnZSk7Ci0g
ICAgY29udGV4dC0+ZHJhd0ltYWdlKG1fZnJvbUltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJ
bnRQb2ludCgpKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UobV9mcm9tSW1hZ2UuZ2V0KCksIENv
bG9yU3BhY2VEZXZpY2VSR0IsIEludFBvaW50KCkpOworICAgIGNvbnRleHQtPmVuZFRyYW5zcGFy
ZW5jeUxheWVyKCk7CiAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogCiAgICAgLy8gRHJhdyB0aGUg
aW1hZ2Ugd2UncmUgZmFkaW5nIHRvd2FyZHMuCiAgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGNv
bnRleHQtPmJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIobV9wZXJjZW50YWdlKTsKICAgICBpZiAobV9j
cm9zc2ZhZGVTaXplICE9IHRvSW1hZ2VTaXplKQogICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9h
dFNpemUoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fY3Jvc3NmYWRlU2l6ZS53aWR0aCgpKSAvIHRvSW1h
Z2VTaXplLndpZHRoKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxmbG9hdD4obV9jcm9zc2ZhZGVTaXplLmhlaWdodCgpKSAvIHRvSW1hZ2VTaXplLmhlaWdo
dCgpKSk7Ci0gICAgY29udGV4dC0+c2V0QWxwaGEobV9wZXJjZW50YWdlKTsKLSAgICBjb250ZXh0
LT5kcmF3SW1hZ2UobV90b0ltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgpLCBD
b21wb3NpdGVQbHVzTGlnaHRlcik7CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1fdG9JbWFnZS5n
ZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQoKSwgQ29tcG9zaXRlUGx1c0xpZ2h0
ZXIpOworICAgIGNvbnRleHQtPmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgY29udGV4dC0+
cmVzdG9yZSgpOwogCiAgICAgY29udGV4dC0+ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5l
cmF0ZWRJbWFnZS5oCmluZGV4IGViMDZiNmQuLjdiYjQ5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2Uu
aApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBDU1NDcm9zc2ZhZGVWYWx1ZTsKIAogY2xhc3MgQ3Jv
c3NmYWRlR2VuZXJhdGVkSW1hZ2UgOiBwdWJsaWMgR2VuZXJhdGVkSW1hZ2UgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPENyb3NzZmFkZUdlbmVyYXRlZEltYWdlPiBjcmVhdGUoSW1h
Z2UqIGZyb21JbWFnZSwgSW1hZ2UqIHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2UsIEludFNpemUg
Y3Jvc3NmYWRlU2l6ZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZT4gY3JlYXRlKFBhc3NSZWZQdHI8SW1hZ2U+IGZyb21J
bWFnZSwgUGFzc1JlZlB0cjxJbWFnZT4gdG9JbWFnZSwgZmxvYXQgcGVyY2VudGFnZSwgSW50U2l6
ZSBjcm9zc2ZhZGVTaXplLCBjb25zdCBJbnRTaXplJiBzaXplKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShmcm9tSW1hZ2UsIHRvSW1h
Z2UsIHBlcmNlbnRhZ2UsIGNyb3NzZmFkZVNpemUsIHNpemUpKTsKICAgICB9CkBAIC01NCwxMyAr
NTQsMTMgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBD
b2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpOwogICAgIHZpcnR1
YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxv
YXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0KTsKIAotICAgIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlKEltYWdlKiBmcm9tSW1hZ2UsIEltYWdlKiB0b0ltYWdlLCBmbG9hdCBwZXJjZW50YWdl
LCBJbnRTaXplIGNyb3NzZmFkZVNpemUsIGNvbnN0IEludFNpemUmKTsKKyAgICBDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZShQYXNzUmVmUHRyPEltYWdlPiBmcm9tSW1hZ2UsIFBhc3NSZWZQdHI8SW1h
Z2U+IHRvSW1hZ2UsIGZsb2F0IHBlcmNlbnRhZ2UsIEludFNpemUgY3Jvc3NmYWRlU2l6ZSwgY29u
c3QgSW50U2l6ZSYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgZHJhd0Nyb3NzZmFkZShHcmFwaGlj
c0NvbnRleHQqKTsKIAotICAgIEltYWdlKiBtX2Zyb21JbWFnZTsKLSAgICBJbWFnZSogbV90b0lt
YWdlOworICAgIFJlZlB0cjxJbWFnZT4gbV9mcm9tSW1hZ2U7CisgICAgUmVmUHRyPEltYWdlPiBt
X3RvSW1hZ2U7CiAKICAgICBmbG9hdCBtX3BlcmNlbnRhZ2U7CiAgICAgSW50U2l6ZSBtX2Nyb3Nz
ZmFkZVNpemU7Cg==
</data>
<flag name="commit-queue"
          id="128231"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>