<?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>64925</bug_id>
          
          <creation_ts>2011-07-20 22:52:51 -0700</creation_ts>
          <short_desc>REGRESSION(r91332): Crashes css3/images/optimize-contrast-canvas.html on safari-mac,chromium-mac (Requested by mikelawther on #webkit).</short_desc>
          <delta_ts>2011-07-20 22:57: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>
          
          <blocked>64535</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>mdelaney7</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>440280</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-20 22:52:51 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/91332 broke the build:
Crashes css3/images/optimize-contrast-canvas.html on safari-mac,chromium-mac (Requested by mikelawther on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440281</commentid>
    <comment_count>1</comment_count>
      <attachid>101558</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-20 22:53:16 -0700</bug_when>
    <thetext>Created attachment 101558
ROLLOUT of r91332

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440282</commentid>
    <comment_count>2</comment_count>
      <attachid>101558</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-20 22:56:55 -0700</bug_when>
    <thetext>Comment on attachment 101558
ROLLOUT of r91332

Clearing flags on attachment: 101558

Committed r91446: &lt;http://trac.webkit.org/changeset/91446&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440283</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-20 22:57:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101558</attachid>
            <date>2011-07-20 22:53:16 -0700</date>
            <delta_ts>2011-07-20 22:56:55 -0700</delta_ts>
            <desc>ROLLOUT of r91332</desc>
            <filename>bug-64925-20110721055202.patch</filename>
            <type>text/plain</type>
            <size>37740</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE0NDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlODMwMWU2ZTZiYWYwMDE5
NTI2Y2YxODc5OGIwOTY2YmU2NmFlMzQ3Li42OGVkNGU0Mjg0NjIzZDk1MGI5ZGQ0OTdjODZiYjdj
NTYwMmY4ZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMDctMjAgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI5MTMzMi4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvOTEzMzIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY0OTI1CisKKyAgICAgICAgQ3Jhc2hlcyBjc3MzL2ltYWdlcy9vcHRpbWl6ZS1jb250
cmFzdC1jYW52YXMuaHRtbCBvbiBzYWZhcmktCisgICAgICAgIG1hYyxjaHJvbWl1bS1tYWMgKFJl
cXVlc3RlZCBieSBtaWtlbGF3dGhlciBvbiAjd2Via2l0KS4KKworICAgICAgICAqIGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6
Om1ha2VQcmVzZW50YXRpb25Db3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVt
ZW50Ojpjb3BpZWRJbWFnZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmlk
ZW9GcmFtZVRvSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdl
QnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNvcHlJbWFn
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNvcHlJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpkcmF3KToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpkcmF3UGF0dGVybik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6Y2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6dG9E
YXRhVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmltYWdlV2l0aENvbG9yU3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6
Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6OmRyYXdQYXR0ZXJu
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGRVRpbGU6OmFwcGx5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9JbWFnZUJ1ZmZlclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpj
b3B5SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXcpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZUJ1ZmZlcjo6Y29weUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5j
ZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpj
b3B5SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXcpOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
QnVmZmVyOjpjb3B5SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXcp
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm46OmFwcGx5UmVzb3VyY2UpOgorICAgICAg
ICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUlt
YWdlRWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUp
OgorCiAyMDExLTA3LTIwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIENocm9taXVtIGJ1aWxkIGZpeCBhZnRlciByOTE0NDAuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGQxN2U5ZTM0OWVhMTE0MjNhOGNmYzM0OWUzMDk4
ZjYzYjlmODEwZDkuLjEwYTE2MGIwOTA1OGIwNDY1MzJiNDM5YWNjMmY3ZjY2MWZiMzAwZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0zMDksNyArMzA5
LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6bWFrZVByZXNlbnRhdGlvbkNvcHkoKQogewog
ICAgIGlmICghbV9wcmVzZW50ZWRJbWFnZSkgewogICAgICAgICAvLyBUaGUgYnVmZmVyIGNvbnRh
aW5zIHRoZSBsYXN0IHByZXNlbnRlZCBkYXRhLCBzbyBzYXZlIGEgY29weSBvZiBpdC4KLSAgICAg
ICAgbV9wcmVzZW50ZWRJbWFnZSA9IGJ1ZmZlcigpLT5jb3B5SW1hZ2UoQ29weUJhY2tpbmdTdG9y
ZSk7CisgICAgICAgIG1fcHJlc2VudGVkSW1hZ2UgPSBidWZmZXIoKS0+Y29weUltYWdlKCk7CiAg
ICAgfQogfQogCkBAIC00NzIsNyArNDcyLDcgQEAgSW1hZ2UqIEhUTUxDYW52YXNFbGVtZW50Ojpj
b3BpZWRJbWFnZSgpIGNvbnN0CiAgICAgaWYgKCFtX2NvcGllZEltYWdlICYmIGJ1ZmZlcigpKSB7
CiAgICAgICAgIGlmIChtX2NvbnRleHQpCiAgICAgICAgICAgICBtX2NvbnRleHQtPnBhaW50UmVu
ZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCk7Ci0gICAgICAgIG1fY29waWVkSW1hZ2UgPSBidWZmZXIo
KS0+Y29weUltYWdlKENvcHlCYWNraW5nU3RvcmUpOworICAgICAgICBtX2NvcGllZEltYWdlID0g
YnVmZmVyKCktPmNvcHlJbWFnZSgpOwogICAgIH0KICAgICByZXR1cm4gbV9jb3BpZWRJbWFnZS5n
ZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuY3BwCmluZGV4IDkzZmE0MjY2MTk0NzdjYzJiMWNhNDE0ZDUxMGM1N2VkNzMy
M2NkNjcuLjkwY2UwYTA3MWU1ZDY0MzlmYTQ1ZmM0NzQ4NWI3ZjA1Y2I3ZDgyZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cApAQCAtMzIxNCw3ICszMjE0LDcgQEAgUGFzc1JlZlB0cjxJbWFnZT4gV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp2aWRlb0ZyYW1lVG9JbWFnZShIVE1MVmlkZW9FbGVtZW50KiB2aWQKICAgICBJbnRS
ZWN0IGRlc3RSZWN0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7CiAgICAgLy8g
RklYTUU6IFR1cm4gdGhpcyBpbnRvIGEgR1BVLUdQVSB0ZXh0dXJlIGNvcHkgaW5zdGVhZCBvZiBD
UFUgcmVhZGJhY2suCiAgICAgdmlkZW8tPnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGJ1Zi0+
Y29udGV4dCgpLCBkZXN0UmVjdCk7Ci0gICAgcmV0dXJuIGJ1Zi0+Y29weUltYWdlKENvcHlCYWNr
aW5nU3RvcmUpOworICAgIHJldHVybiBidWYtPmNvcHlJbWFnZSgpOwogfQogCiB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6dGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2
ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggMDg3NTQ5YmFmNGY0NTJj
ZTgxODIyODdkNGYzYWNkNWJjOTUxMWQwNy4uYzk1NjZlNzcxMjU5YWE2ZjNiOGY2ZWY0NjhhMmY5
ODQ0ZDg0NWQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC0zNTEsNiArMzUxLDI2IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0OjpwYWludGluZ0Rpc2FibGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9zdGF0ZS5wYWlu
dGluZ0Rpc2FibGVkOwogfQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdl
KiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBwLCBD
b21wb3NpdGVPcGVyYXRvciBvcCkKK3sKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JT
cGFjZSwgcCwgSW50UmVjdCgwLCAwLCAtMSwgLTEpLCBvcCk7Cit9CisKK3ZvaWQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgY29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIGJvb2wgdXNlTG93UXVh
bGl0eVNjYWxlKQoreworICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCByLCBJ
bnRSZWN0KDAsIDAsIC0xLCAtMSksIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworfQorCit2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0
LCBDb21wb3NpdGVPcGVyYXRvciBvcCkKK3sKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29s
b3JTcGFjZSwgSW50UmVjdChkZXN0LCBzcmNSZWN0LnNpemUoKSksIHNyY1JlY3QsIG9wKTsKK30K
Kwordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBz
cmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCit7
CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChkZXN0KSwg
c3JjUmVjdCwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7Cit9CisKICNpZiAhT1MoV0lOQ0UpIHx8
IChQTEFURk9STShRVCkgJiYgIUhBVkUoUVJBV0ZPTlQpKQogdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdUZXh0KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQsIGludCBmcm9tLCBpbnQgdG8pCiB7CkBAIC00MTMsMjYgKzQzMyw2IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SGlnaGxpZ2h0Rm9yVGV4dChjb25zdCBGb250JiBm
b250LCBjb25zdCBUZXh0UnVuJiBydW4sCiAgICAgZmlsbFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0
Rm9yVGV4dChydW4sIHBvaW50LCBoLCBmcm9tLCB0byksIGJhY2tncm91bmRDb2xvciwgY29sb3JT
cGFjZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdl
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIHAsIENvbXBvc2l0
ZU9wZXJhdG9yIG9wKQotewotICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBw
LCBJbnRSZWN0KDAsIDAsIC0xLCAtMSksIG9wKTsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25z
dCBJbnRSZWN0JiByLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgYm9vbCB1c2VMb3dRdWFsaXR5U2Nh
bGUpCi17Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIHIsIEludFJlY3Qo
MCwgMCwgLTEsIC0xKSwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7Ci19Ci0KLXZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wKQotewotICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNl
LCBJbnRSZWN0KGRlc3QsIHNyY1JlY3Quc2l6ZSgpKSwgc3JjUmVjdCwgb3ApOwotfQotCi12b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3Qs
IENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKLXsKLSAgICBk
cmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KGRlc3QpLCBzcmNSZWN0
LCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKLX0KLQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBv
cCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQo
KSB8fCAhaW1hZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5oCmluZGV4IGNlMmU3OGUwYjNjMGM2MTkzYjA5MDg2Y2RiM2IwMzkzZmIy
ZDZmMWUuLjg5OWM2NTBlYjI4OWM5ZjJmMDFmMTU2MDI4M2RlNmIzMjAzZmQ5ZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBA
IC0yNjUsOCArMjY1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGFwcGx5
RmlsbFBhdHRlcm4oKTsKICAgICAgICAgdm9pZCBkcmF3UGF0aChjb25zdCBQYXRoJik7CiAgICAg
ICAgIAotICAgICAgICB2b2lkIGRyYXdOYXRpdmVJbWFnZShOYXRpdmVJbWFnZVB0ciwgY29uc3Qg
RmxvYXRTaXplJiBzZWxmU2l6ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3Bl
cmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyKTsKLQogICAgICAgICAvLyBBbGxvdyBmb250IHNt
b290aGluZyAoTENEIGFudGlhbGlhc2luZykuIE5vdCBwYXJ0IG9mIHRoZSBncmFwaGljcyBzdGF0
ZS4KICAgICAgICAgdm9pZCBzZXRBbGxvd3NGb250U21vb3RoaW5nKGJvb2wpOwogICAgICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCmluZGV4IDFmNjhkYTQzZGI0
OGJkNTZmN2E2ZmI1MjUzNTc0ZTg2ZDFlYmQxMzYuLjQ5NDY2ZjIxNzMyYzVjNmVlZDZjZDNjY2Yy
ZmM0ODY4ZWM0NjQ5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aApAQCAtMTQxLDcgKzE0MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIENHSW1hZ2VSZWYgZ2V0
Q0dJbWFnZVJlZigpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIENHSW1hZ2VSZWYgZ2V0Rmly
c3RDR0ltYWdlUmVmT2ZTaXplKGNvbnN0IEludFNpemUmKSB7IHJldHVybiAwOyB9CiAgICAgdmly
dHVhbCBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gZ2V0Q0dJbWFnZUFycmF5KCkgeyByZXR1cm4gMDsg
fQotICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2VXaXRoQ29sb3JTcGFjZShD
R0ltYWdlUmVmIG9yaWdpbmFsSW1hZ2UsIENvbG9yU3BhY2UpOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZm
ZXIuaAppbmRleCBkMDIzNGZjZGVmYjNjMDFkNjRhNzJlMWY1MWYzMjdjOTNjNzMyOTUzLi4xZTI4
NGNiODNkNDc1NmExNjI3Y2Q3OTU4Y2U3ZTcxZGFmNTA5MDg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKQEAgLTU4LDExICs1OCw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVW5hY2NlbGVyYXRlZCwKICAgICAgICAgQWNjZWxl
cmF0ZWQKICAgICB9OwotICAgIAotICAgIGVudW0gQmFja2luZ1N0b3JlQ29weSB7Ci0gICAgICAg
IENvcHlCYWNraW5nU3RvcmUsIC8vIEd1YXJhbnRlZSBzdWJzZXF1ZW50IGRyYXdzIGRvbid0IGFm
ZmVjdCB0aGUgY29weS4KLSAgICAgICAgRG9udENvcHlCYWNraW5nU3RvcmUgLy8gU3Vic2VxdWVu
dCBkcmF3cyBtYXkgYWZmZWN0IHRoZSBjb3B5LgotICAgIH07CiAKICAgICBjbGFzcyBJbWFnZUJ1
ZmZlciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEltYWdlQnVmZmVyKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CkBAIC04OCw3ICs4Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CiAKICAgICAgICAgYm9v
bCBpc0FjY2VsZXJhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlUmVuZGVyaW5nOyB9
Ci0gICAgICAgIFBhc3NSZWZQdHI8SW1hZ2U+IGNvcHlJbWFnZShCYWNraW5nU3RvcmVDb3B5IGNv
cHlQcmVmZXJlbmNlID0gQ29weUJhY2tpbmdTdG9yZSkgY29uc3Q7CisgICAgICAgIFBhc3NSZWZQ
dHI8SW1hZ2U+IGNvcHlJbWFnZSgpIGNvbnN0OyAvLyBSZXR1cm4gYSBuZXcgaW1hZ2UgdGhhdCBp
cyBhIGNvcHkgb2YgdGhlIGJ1ZmZlci4KIAogICAgICAgICBQYXNzUmVmUHRyPEJ5dGVBcnJheT4g
Z2V0VW5tdWx0aXBsaWVkSW1hZ2VEYXRhKGNvbnN0IEludFJlY3QmKSBjb25zdDsKICAgICAgICAg
UGFzc1JlZlB0cjxCeXRlQXJyYXk+IGdldFByZW11bHRpcGxpZWRJbWFnZURhdGEoY29uc3QgSW50
UmVjdCYpIGNvbnN0OwpAQCAtMTA4LDE1ICsxMDMsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
I2VuZGlmCiAKICAgICBwcml2YXRlOgotI2lmIFVTRShDRykKLSAgICAgICAgTmF0aXZlSW1hZ2VQ
dHIgY29weU5hdGl2ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgY29weVByZWZlcmVuY2UgPSBDb3B5
QmFja2luZ1N0b3JlKSBjb25zdDsKLSNlbmRpZgotCiAgICAgICAgIHZvaWQgY2xpcChHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKIAotICAgICAgICB2b2lkIGRyYXco
R3JhcGhpY3NDb250ZXh0KiwgQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSksIENvbXBv
c2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2Nh
bGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5U
cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOwotCisg
ICAgICAgIC8vIFRoZSBkcmF3IG1ldGhvZCBkcmF3cyB0aGUgY29udGVudHMgb2YgdGhlIGJ1ZmZl
ciB3aXRob3V0IGNvcHlpbmcgaXQuCisgICAgICAgIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQq
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291
cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CisgICAgICAgIHZvaWQg
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7CisgICAg
ICAgIAogICAgICAgICBpbmxpbmUgdm9pZCBnZW5lcmljQ29udmVydFRvTHVtaW5hbmNlTWFzaygp
OwogCiAgICAgICAgIGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fp
cm8uY3BwCmluZGV4IGZjODNmOGFhNzkyYWU4ZWFiNzgyYWZkMTIxNTAzZWNiM2E0NTgxMWIuLmYx
ZDcxNWRjMzRiMzkyNmZkYjEwNGM0ZTkwMTY1NTk0YTIwMDVhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fp
cm8uY3BwCkBAIC04Niw5ICs4Niw4IEBAIEdyYXBoaWNzQ29udGV4dCogSW1hZ2VCdWZmZXI6OmNv
bnRleHQoKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRleHQuZ2V0KCk7CiB9CiAKLVBhc3NSZWZQ
dHI8SW1hZ2U+IEltYWdlQnVmZmVyOjpjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29weSBjb3B5UHJl
ZmVyZW5jZSkgY29uc3QKK1Bhc3NSZWZQdHI8SW1hZ2U+IEltYWdlQnVmZmVyOjpjb3B5SW1hZ2Uo
KSBjb25zdAogewotICAgIEFTU0VSVChjb3B5UHJlZmVyZW5jZSA9PSBDb3B5QmFja2luZ1N0b3Jl
KTsKICAgICAvLyBCaXRtYXBJbWFnZSB3aWxsIHJlbGVhc2UgdGhlIHBhc3NlZCBpbiBzdXJmYWNl
IG9uIGRlc3RydWN0aW9uCiAgICAgcmV0dXJuIEJpdG1hcEltYWdlOjpjcmVhdGUoY29weUNhaXJv
SW1hZ2VTdXJmYWNlKG1fZGF0YS5tX3N1cmZhY2UpLmxlYWtSZWYoKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRD
Ry5jcHAKaW5kZXggMTNkZDlkYmZmMDAwNWQ4NTgzNzMzMjE3YjRlMzdlY2YyZjc2ZGExOC4uN2M3
MDk2ZjUwYzgwNjNkYTI2OGFjNWNiN2Y5MmI3YzQwZTBhNmFlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNw
cApAQCAtMTUyLDc5ICsxNTIsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cmVzdG9yZVBsYXRm
b3JtU3RhdGUoKQogICAgIG1fZGF0YS0+bV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJ
ZGVudGl0eSA9IGZhbHNlOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUlt
YWdlKE5hdGl2ZUltYWdlUHRyIGltYWdlUHRyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlU2l6ZSwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApCi17Ci0gICAgUmV0
YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlKGltYWdlUHRyKTsKLQotICAgIGZsb2F0IGN1cnJIZWln
aHQgPSBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgpKTsKLSAgICBpZiAoY3VyckhlaWdodCA8
PSBzcmNSZWN0LnkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ0dDb250ZXh0UmVmIGNvbnRl
eHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKLSAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQp
OwotCi0gICAgYm9vbCBzaG91bGRVc2VTdWJpbWFnZSA9IGZhbHNlOwotCi0gICAgLy8gSWYgdGhl
IHNvdXJjZSByZWN0IGlzIGEgc3VicG9ydGlvbiBvZiB0aGUgaW1hZ2UsIHRoZW4gd2UgY29tcHV0
ZSBhbiBpbmZsYXRlZCBkZXN0aW5hdGlvbiByZWN0IHRoYXQgd2lsbCBob2xkIHRoZSBlbnRpcmUg
aW1hZ2UKLSAgICAvLyBhbmQgdGhlbiBzZXQgYSBjbGlwIHRvIHRoZSBwb3J0aW9uIHRoYXQgd2Ug
d2FudCB0byBkaXNwbGF5LgotICAgIEZsb2F0UmVjdCBhZGp1c3RlZERlc3RSZWN0ID0gZGVzdFJl
Y3Q7Ci0KLSAgICBpZiAoc3JjUmVjdC5zaXplKCkgIT0gaW1hZ2VTaXplKSB7Ci0gICAgICAgIENH
SW50ZXJwb2xhdGlvblF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHkgPSBDR0NvbnRleHRHZXRJ
bnRlcnBvbGF0aW9uUXVhbGl0eShjb250ZXh0KTsKLSAgICAgICAgLy8gV2hlbiB0aGUgaW1hZ2Ug
aXMgc2NhbGVkIHVzaW5nIGhpZ2gtcXVhbGl0eSBpbnRlcnBvbGF0aW9uLCB3ZSBjcmVhdGUgYSB0
ZW1wb3JhcnkgQ0dJbWFnZQotICAgICAgICAvLyBjb250YWluaW5nIG9ubHkgdGhlIHBvcnRpb24g
d2Ugd2FudCB0byBkaXNwbGF5LiBXZSBuZWVkIHRvIGRvIHRoaXMgYmVjYXVzZSBoaWdoLXF1YWxp
dHkKLSAgICAgICAgLy8gaW50ZXJwb2xhdGlvbiBzbW9vdGhlcyBzaGFycCBlZGdlcywgY2F1c2lu
ZyBwaXhlbHMgZnJvbSBvdXRzaWRlIHRoZSBzb3VyY2UgcmVjdCB0byBibGVlZAotICAgICAgICAv
LyBpbnRvIHRoZSBkZXN0aW5hdGlvbiByZWN0LiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYxMTI5MDk+
LgotICAgICAgICBzaG91bGRVc2VTdWJpbWFnZSA9IChpbnRlcnBvbGF0aW9uUXVhbGl0eSAhPSBr
Q0dJbnRlcnBvbGF0aW9uTm9uZSkgJiYgKHNyY1JlY3Quc2l6ZSgpICE9IGRlc3RSZWN0LnNpemUo
KSB8fCAhZ2V0Q1RNKCkuaXNJZGVudGl0eU9yVHJhbnNsYXRpb25PckZsaXBwZWQoKSk7Ci0gICAg
ICAgIGZsb2F0IHhTY2FsZSA9IHNyY1JlY3Qud2lkdGgoKSAvIGRlc3RSZWN0LndpZHRoKCk7Ci0g
ICAgICAgIGZsb2F0IHlTY2FsZSA9IHNyY1JlY3QuaGVpZ2h0KCkgLyBkZXN0UmVjdC5oZWlnaHQo
KTsKLSAgICAgICAgaWYgKHNob3VsZFVzZVN1YmltYWdlKSB7Ci0gICAgICAgICAgICBGbG9hdFJl
Y3Qgc3ViaW1hZ2VSZWN0ID0gc3JjUmVjdDsKLSAgICAgICAgICAgIGZsb2F0IGxlZnRQYWRkaW5n
ID0gc3JjUmVjdC54KCkgLSBmbG9vcmYoc3JjUmVjdC54KCkpOwotICAgICAgICAgICAgZmxvYXQg
dG9wUGFkZGluZyA9IHNyY1JlY3QueSgpIC0gZmxvb3JmKHNyY1JlY3QueSgpKTsKLQotICAgICAg
ICAgICAgc3ViaW1hZ2VSZWN0Lm1vdmUoLWxlZnRQYWRkaW5nLCAtdG9wUGFkZGluZyk7Ci0gICAg
ICAgICAgICBhZGp1c3RlZERlc3RSZWN0Lm1vdmUoLWxlZnRQYWRkaW5nIC8geFNjYWxlLCAtdG9w
UGFkZGluZyAvIHlTY2FsZSk7Ci0KLSAgICAgICAgICAgIHN1YmltYWdlUmVjdC5zZXRXaWR0aChj
ZWlsZihzdWJpbWFnZVJlY3Qud2lkdGgoKSArIGxlZnRQYWRkaW5nKSk7Ci0gICAgICAgICAgICBh
ZGp1c3RlZERlc3RSZWN0LnNldFdpZHRoKHN1YmltYWdlUmVjdC53aWR0aCgpIC8geFNjYWxlKTsK
LQotICAgICAgICAgICAgc3ViaW1hZ2VSZWN0LnNldEhlaWdodChjZWlsZihzdWJpbWFnZVJlY3Qu
aGVpZ2h0KCkgKyB0b3BQYWRkaW5nKSk7Ci0gICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0LnNl
dEhlaWdodChzdWJpbWFnZVJlY3QuaGVpZ2h0KCkgLyB5U2NhbGUpOwotCi0gICAgICAgICAgICBp
bWFnZS5hZG9wdENGKENHSW1hZ2VDcmVhdGVXaXRoSW1hZ2VJblJlY3QoaW1hZ2UuZ2V0KCksIHN1
YmltYWdlUmVjdCkpOwotICAgICAgICAgICAgaWYgKGN1cnJIZWlnaHQgPCBzcmNSZWN0Lm1heFko
KSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgp
KSA9PSBjdXJySGVpZ2h0IC0gQ0dSZWN0SW50ZWdyYWwoc3JjUmVjdCkub3JpZ2luLnkpOwotICAg
ICAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0SGVpZ2h0KENHSW1hZ2VHZXRIZWlnaHQo
aW1hZ2UuZ2V0KCkpIC8geVNjYWxlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludChkZXN0
UmVjdC54KCkgLSBzcmNSZWN0LngoKSAvIHhTY2FsZSwgZGVzdFJlY3QueSgpIC0gc3JjUmVjdC55
KCkgLyB5U2NhbGUpKTsKLSAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0U2l6ZShGbG9h
dFNpemUoaW1hZ2VTaXplLndpZHRoKCkgLyB4U2NhbGUsIGltYWdlU2l6ZS5oZWlnaHQoKSAvIHlT
Y2FsZSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFkZXN0UmVjdC5jb250YWlucyhhZGp1
c3RlZERlc3RSZWN0KSkKLSAgICAgICAgICAgIENHQ29udGV4dENsaXBUb1JlY3QoY29udGV4dCwg
ZGVzdFJlY3QpOwotICAgIH0KLQotICAgIC8vIElmIHRoZSBpbWFnZSBpcyBvbmx5IHBhcnRpYWxs
eSBsb2FkZWQsIHRoZW4gc2hyaW5rIHRoZSBkZXN0aW5hdGlvbiByZWN0IHRoYXQgd2UncmUgZHJh
d2luZyBpbnRvIGFjY29yZGluZ2x5LgotICAgIGlmICghc2hvdWxkVXNlU3ViaW1hZ2UgJiYgY3Vy
ckhlaWdodCA8IGltYWdlU2l6ZS5oZWlnaHQoKSkKLSAgICAgICAgYWRqdXN0ZWREZXN0UmVjdC5z
ZXRIZWlnaHQoYWRqdXN0ZWREZXN0UmVjdC5oZWlnaHQoKSAqIGN1cnJIZWlnaHQgLyBpbWFnZVNp
emUuaGVpZ2h0KCkpOwotCi0gICAgc2V0UGxhdGZvcm1Db21wb3NpdGVPcGVyYXRpb24ob3ApOwot
Ci0gICAgLy8gRmxpcCB0aGUgY29vcmRzLgotICAgIENHQ29udGV4dFNjYWxlQ1RNKGNvbnRleHQs
IDEsIC0xKTsKLSAgICBhZGp1c3RlZERlc3RSZWN0LnNldFkoLWFkanVzdGVkRGVzdFJlY3QubWF4
WSgpKTsKLSAgICAKLSAgICAvLyBBZGp1c3QgdGhlIGNvbG9yIHNwYWNlLgotICAgIGltYWdlID0g
SW1hZ2U6OmltYWdlV2l0aENvbG9yU3BhY2UoaW1hZ2UuZ2V0KCksIHN0eWxlQ29sb3JTcGFjZSk7
Ci0KLSAgICAvLyBEcmF3IHRoZSBpbWFnZS4KLSAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4
dCwgYWRqdXN0ZWREZXN0UmVjdCwgaW1hZ2UuZ2V0KCkpOwotCi0gICAgQ0dDb250ZXh0UmVzdG9y
ZUdTdGF0ZShjb250ZXh0KTsKLX0KLQogLy8gRHJhd3MgYSBmaWxsZWQgcmVjdGFuZ2xlIHdpdGgg
YSBzdHJva2VkIGJvcmRlci4KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBJ
bnRSZWN0JiByZWN0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCBjMTgyNTVmY2UwMzY5MWY2OTMxOTFlODJi
Y2M5YjkxODNhOTAyODlmLi41MTNiNDY0YzkzOTJlNWQ2MzgyMmE3YTVlODMzN2Q0YjJkMDE1NDdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckNHLmNwcApAQCAtMTc3LDc0ICsxNzcsNzIgQEAgR3JhcGhpY3NDb250ZXh0KiBJbWFn
ZUJ1ZmZlcjo6Y29udGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsKIH0K
IAotUGFzc1JlZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXI6OmNvcHlJbWFnZShCYWNraW5nU3RvcmVD
b3B5IGNvcHlQcmVmZXJlbmNlKSBjb25zdAorUGFzc1JlZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXI6
OmNvcHlJbWFnZSgpIGNvbnN0CiB7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0g
Y29weU5hdGl2ZUltYWdlKGNvcHlQcmVmZXJlbmNlKTsKLQotICAgIGlmICghaW1hZ2UpCi0gICAg
ICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIEJpdG1hcEltYWdlOjpjcmVhdGUoaW1hZ2UuZ2V0
KCkpOwotfQotCi1OYXRpdmVJbWFnZVB0ciBJbWFnZUJ1ZmZlcjo6Y29weU5hdGl2ZUltYWdlKEJh
Y2tpbmdTdG9yZUNvcHkgY29weVByZWZlcmVuY2UpIGNvbnN0Ci17Ci0gICAgQ0dJbWFnZVJlZiBp
bWFnZSA9IDA7Ci0gICAgaWYgKCFtX2FjY2VsZXJhdGVSZW5kZXJpbmcpIHsKLSAgICAgICAgc3dp
dGNoIChjb3B5UHJlZmVyZW5jZSkgewotICAgICAgICBjYXNlIERvbnRDb3B5QmFja2luZ1N0b3Jl
OgotICAgICAgICAgICAgaW1hZ2UgPSBDR0ltYWdlQ3JlYXRlKG1fc2l6ZS53aWR0aCgpLCBtX3Np
emUuaGVpZ2h0KCksIDgsIDMyLCBtX2RhdGEubV9ieXRlc1BlclJvdywgbV9kYXRhLm1fY29sb3JT
cGFjZSwgbV9kYXRhLm1fYml0bWFwSW5mbywgbV9kYXRhLm1fZGF0YVByb3ZpZGVyLmdldCgpLCAw
LCB0cnVlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENvcHlCYWNraW5nU3RvcmU6Ci0gICAgICAgICAgICBpbWFnZSA9IENHQml0
bWFwQ29udGV4dENyZWF0ZUltYWdlKGNvbnRleHQoKS0+cGxhdGZvcm1Db250ZXh0KCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQorICAgIC8v
IEJpdG1hcEltYWdlIHdpbGwgcmVsZWFzZSB0aGUgcGFzc2VkIGluIENHSW1hZ2Ugb24gZGVzdHJ1
Y3Rpb24KKyAgICBDR0ltYWdlUmVmIGN0eEltYWdlID0gMDsKKyAgICBpZiAoIW1fYWNjZWxlcmF0
ZVJlbmRlcmluZykKKyAgICAgICAgY3R4SW1hZ2UgPSBDR0JpdG1hcENvbnRleHRDcmVhdGVJbWFn
ZShjb250ZXh0KCktPnBsYXRmb3JtQ29udGV4dCgpKTsKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZB
U19CQUNLSU5HX1NUT1JFKQogICAgIGVsc2UKLSAgICAgICAgaW1hZ2UgPSB3a0lPU3VyZmFjZUNv
bnRleHRDcmVhdGVJbWFnZShjb250ZXh0KCktPnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICAgICAg
Y3R4SW1hZ2UgPSB3a0lPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZShjb250ZXh0KCktPnBsYXRm
b3JtQ29udGV4dCgpKTsKICNlbmRpZgotCi0gICAgcmV0dXJuIGltYWdlOworICAgIHJldHVybiBC
aXRtYXBJbWFnZTo6Y3JlYXRlKGN0eEltYWdlKTsKIH0KIAotdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJh
dyhHcmFwaGljc0NvbnRleHQqIGRlc3RDb250ZXh0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBD
b21wb3NpdGVPcGVyYXRvciBvcCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCitzdGF0aWMgQ0dJ
bWFnZVJlZiBjZ0ltYWdlKGNvbnN0IEludFNpemUmIHNpemUsIGNvbnN0IEltYWdlQnVmZmVyRGF0
YSYgZGF0YSkKIHsKLSAgICBBU1NFUlRfVU5VU0VEKHVzZUxvd1F1YWxpdHlTY2FsZSwgIXVzZUxv
d1F1YWxpdHlTY2FsZSk7Ci0gICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gKGRlc3RDb250ZXh0
ID09IG1fY29udGV4dCkgPyBDb2xvclNwYWNlRGV2aWNlUkdCIDogc3R5bGVDb2xvclNwYWNlOwot
Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlOwotICAgIGlmIChkZXN0Q29udGV4dCA9
PSBtX2NvbnRleHQpCi0gICAgICAgIGltYWdlLmFkb3B0Q0YoY29weU5hdGl2ZUltYWdlKENvcHlC
YWNraW5nU3RvcmUpKTsgLy8gRHJhd2luZyBpbnRvIG91ciBvd24gYnVmZmVyLCBuZWVkIHRvIGRl
ZXAgY29weS4KLSAgICBlbHNlCi0gICAgICAgIGltYWdlLmFkb3B0Q0YoY29weU5hdGl2ZUltYWdl
KERvbnRDb3B5QmFja2luZ1N0b3JlKSk7CisgICAgcmV0dXJuIENHSW1hZ2VDcmVhdGUoc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpLCA4LCAzMiwgZGF0YS5tX2J5dGVzUGVyUm93LAorICAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGEubV9jb2xvclNwYWNlLCBkYXRhLm1fYml0bWFwSW5mbywg
ZGF0YS5tX2RhdGFQcm92aWRlci5nZXQoKSwgMCwgdHJ1ZSwga0NHUmVuZGVyaW5nSW50ZW50RGVm
YXVsdCk7Cit9CiAKLSAgICBkZXN0Q29udGV4dC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLmdldCgp
LCBtX3NpemUsIGNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCk7Cit2b2lkIEltYWdl
QnVmZmVyOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogZGVzdENvbnRleHQsIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsCisgICAgICAgICAgICAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBi
b29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKK3sKKyAgICBpZiAoIW1fYWNjZWxlcmF0ZVJlbmRlcmlu
ZykgeworICAgICAgICBpZiAoZGVzdENvbnRleHQgPT0gY29udGV4dCgpKSB7CisgICAgICAgICAg
ICAvLyBXZSdyZSBkcmF3aW5nIGludG8gb3VyIG93biBidWZmZXIuICBJbiBvcmRlciBmb3IgdGhp
cyB0byB3b3JrLCB3ZSBuZWVkIHRvIGNvcHkgdGhlIHNvdXJjZSBidWZmZXIgZmlyc3QuCisgICAg
ICAgICAgICBSZWZQdHI8SW1hZ2U+IGNvcHkgPSBjb3B5SW1hZ2UoKTsKKyAgICAgICAgICAgIGRl
c3RDb250ZXh0LT5kcmF3SW1hZ2UoY29weS5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVz
dFJlY3QsIHNyY1JlY3QsIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZUZvclJlbmRlcmluZyA9IEJpdG1hcElt
YWdlOjpjcmVhdGUoY2dJbWFnZShtX3NpemUsIG1fZGF0YSkpOworICAgICAgICAgICAgZGVzdENv
bnRleHQtPmRyYXdJbWFnZShpbWFnZUZvclJlbmRlcmluZy5nZXQoKSwgc3R5bGVDb2xvclNwYWNl
LCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIH0K
KyAgICB9IGVsc2UgeworICAgICAgICBSZWZQdHI8SW1hZ2U+IGNvcHkgPSBjb3B5SW1hZ2UoKTsK
KyAgICAgICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gKGRlc3RDb250ZXh0ID09IGNvbnRleHQo
KSkgPyBDb2xvclNwYWNlRGV2aWNlUkdCIDogc3R5bGVDb2xvclNwYWNlOworICAgICAgICBkZXN0
Q29udGV4dC0+ZHJhd0ltYWdlKGNvcHkuZ2V0KCksIGNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNS
ZWN0LCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICB9CiB9CiAKLXZvaWQgSW1hZ2VCdWZm
ZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRl
T3BlcmF0b3Igb3AsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpCit2b2lkIEltYWdlQnVmZmVy
OjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGRlc3RDb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QpCiB7CiAgICAgaWYgKCFtX2FjY2VsZXJhdGVSZW5kZXJpbmcpIHsKLSAg
ICAgICAgaWYgKGNvbnRleHQgPT0gbV9jb250ZXh0KSB7Ci0gICAgICAgICAgICBSZWZQdHI8SW1h
Z2U+IGNvcHkgPSBjb3B5SW1hZ2UoQ29weUJhY2tpbmdTdG9yZSk7IC8vIERyYXdpbmcgaW50byBv
dXIgb3duIGJ1ZmZlciwgbmVlZCB0byBkZWVwIGNvcHkuCi0gICAgICAgICAgICBjb3B5LT5kcmF3
UGF0dGVybihjb250ZXh0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVD
b2xvclNwYWNlLCBvcCwgZGVzdFJlY3QpOworICAgICAgICBpZiAoZGVzdENvbnRleHQgPT0gY29u
dGV4dCgpKSB7CisgICAgICAgICAgICAvLyBXZSdyZSBkcmF3aW5nIGludG8gb3VyIG93biBidWZm
ZXIuICBJbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLCB3ZSBuZWVkIHRvIGNvcHkgdGhlIHNvdXJj
ZSBidWZmZXIgZmlyc3QuCisgICAgICAgICAgICBSZWZQdHI8SW1hZ2U+IGNvcHkgPSBjb3B5SW1h
Z2UoKTsKKyAgICAgICAgICAgIGNvcHktPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBzcmNSZWN0
LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xvclNwYWNlLCBvcCwgZGVzdFJlY3Qp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZUZvclJl
bmRlcmluZyA9IGNvcHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSk7Ci0gICAgICAgICAgICBp
bWFnZUZvclJlbmRlcmluZy0+ZHJhd1BhdHRlcm4oY29udGV4dCwgc3JjUmVjdCwgcGF0dGVyblRy
YW5zZm9ybSwgcGhhc2UsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGRlc3RSZWN0KTsKKyAgICAgICAg
ICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2VGb3JSZW5kZXJpbmcgPSBCaXRtYXBJbWFnZTo6Y3JlYXRl
KGNnSW1hZ2UobV9zaXplLCBtX2RhdGEpKTsKKyAgICAgICAgICAgIGltYWdlRm9yUmVuZGVyaW5n
LT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhh
c2UsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGRlc3RSZWN0KTsKICAgICAgICAgfQogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIFJlZlB0cjxJbWFnZT4gY29weSA9IGNvcHlJbWFnZShDb3B5QmFja2luZ1N0
b3JlKTsKLSAgICAgICAgY29weS0+ZHJhd1BhdHRlcm4oY29udGV4dCwgc3JjUmVjdCwgcGF0dGVy
blRyYW5zZm9ybSwgcGhhc2UsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGRlc3RSZWN0KTsKKyAgICAg
ICAgUmVmUHRyPEltYWdlPiBjb3B5ID0gY29weUltYWdlKCk7CisgICAgICAgIGNvcHktPmRyYXdQ
YXR0ZXJuKGRlc3RDb250ZXh0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5
bGVDb2xvclNwYWNlLCBvcCwgZGVzdFJlY3QpOwogICAgIH0KIH0KIAogdm9pZCBJbWFnZUJ1ZmZl
cjo6Y2xpcChHcmFwaGljc0NvbnRleHQqIGNvbnRleHRUb0NsaXAsIGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCkgY29uc3QKIHsKICAgICBDR0NvbnRleHRSZWYgcGxhdGZvcm1Db250ZXh0VG9DbGlwID0g
Y29udGV4dFRvQ2xpcC0+cGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IGltYWdlKEFkb3B0Q0YsIGNvcHlOYXRpdmVJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSkp
OworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZTsKKyAgICBpZiAoIW1fYWNjZWxlcmF0
ZVJlbmRlcmluZykKKyAgICAgICAgaW1hZ2UuYWRvcHRDRihjZ0ltYWdlKG1fc2l6ZSwgbV9kYXRh
KSk7CisjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKKyAgICBlbHNlCisg
ICAgICAgIGltYWdlLmFkb3B0Q0Yod2tJT1N1cmZhY2VDb250ZXh0Q3JlYXRlSW1hZ2UoY29udGV4
dCgpLT5wbGF0Zm9ybUNvbnRleHQoKSkpOworI2VuZGlmCiAgICAgQ0dDb250ZXh0VHJhbnNsYXRl
Q1RNKHBsYXRmb3JtQ29udGV4dFRvQ2xpcCwgcmVjdC54KCksIHJlY3QueSgpICsgcmVjdC5oZWln
aHQoKSk7CiAgICAgQ0dDb250ZXh0U2NhbGVDVE0ocGxhdGZvcm1Db250ZXh0VG9DbGlwLCAxLCAt
MSk7CiAgICAgQ0dDb250ZXh0Q2xpcFRvTWFzayhwbGF0Zm9ybUNvbnRleHRUb0NsaXAsIEZsb2F0
UmVjdChGbG9hdFBvaW50KCksIHJlY3Quc2l6ZSgpKSwgaW1hZ2UuZ2V0KCkpOwpAQCAtMzQ4LDcg
KzM0NiwxMyBAQCBTdHJpbmcgSW1hZ2VCdWZmZXI6OnRvRGF0YVVSTChjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBjb25zdCBkb3VibGUqIHF1YWxpdHkpIGNvbgogewogICAgIEFTU0VSVChNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEltYWdlTUlNRVR5cGVGb3JFbmNvZGluZyhtaW1lVHlwZSkp
OwogCi0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlKEFkb3B0Q0YsIGNvcHlOYXRpdmVJ
bWFnZShDb3B5QmFja2luZ1N0b3JlKSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdl
OworICAgIGlmICghbV9hY2NlbGVyYXRlUmVuZGVyaW5nKQorICAgICAgICBpbWFnZS5hZG9wdENG
KENHQml0bWFwQ29udGV4dENyZWF0ZUltYWdlKGNvbnRleHQoKS0+cGxhdGZvcm1Db250ZXh0KCkp
KTsKKyNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKQorICAgIGVsc2UKKyAg
ICAgICAgaW1hZ2UuYWRvcHRDRih3a0lPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZShjb250ZXh0
KCktPnBsYXRmb3JtQ29udGV4dCgpKSk7CisjZW5kaWYKIAogICAgIGlmICghaW1hZ2UpCiAgICAg
ICAgIHJldHVybiAiZGF0YTosIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VDRy5jcHAKaW5kZXggYzc5MGY2ODFhN2IwOTJhMDA5NjA1YTE4Y2VhZGI2NmY0
MzY1YzZkMC4uYjVkMThjOGVhODAyZDVlNmU0NzQ5NzUyMjI4MzUwOTJmODIwZjg3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKQEAgLTEy
OCw3ICsxMjgsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpjaGVja0ZvclNvbGlkQ29sb3IoKQogICAg
IH0KIH0KIAotUmV0YWluUHRyPENHSW1hZ2VSZWY+IEltYWdlOjppbWFnZVdpdGhDb2xvclNwYWNl
KENHSW1hZ2VSZWYgb3JpZ2luYWxJbWFnZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQorc3RhdGlj
IFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZVdpdGhDb2xvclNwYWNlKENHSW1hZ2VSZWYgb3Jp
Z2luYWxJbWFnZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewogICAgIENHQ29sb3JTcGFjZVJl
ZiBvcmlnaW5hbENvbG9yU3BhY2UgPSBDR0ltYWdlR2V0Q29sb3JTcGFjZShvcmlnaW5hbEltYWdl
KTsKIApAQCAtMTk1LDkgKzE5NSw3MyBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNz
Q29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRgogICAgICAg
ICByZXR1cm47CiAgICAgfQogCisgICAgZmxvYXQgY3VyckhlaWdodCA9IENHSW1hZ2VHZXRIZWln
aHQoaW1hZ2UuZ2V0KCkpOworICAgIGlmIChjdXJySGVpZ2h0IDw9IHNyY1JlY3QueSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IGN0eHQtPnBsYXRmb3Jt
Q29udGV4dCgpOworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY3R4
dCk7CisKKyAgICBib29sIHNob3VsZFVzZVN1YmltYWdlID0gZmFsc2U7CisKKyAgICAvLyBJZiB0
aGUgc291cmNlIHJlY3QgaXMgYSBzdWJwb3J0aW9uIG9mIHRoZSBpbWFnZSwgdGhlbiB3ZSBjb21w
dXRlIGFuIGluZmxhdGVkIGRlc3RpbmF0aW9uIHJlY3QgdGhhdCB3aWxsIGhvbGQgdGhlIGVudGly
ZSBpbWFnZQorICAgIC8vIGFuZCB0aGVuIHNldCBhIGNsaXAgdG8gdGhlIHBvcnRpb24gdGhhdCB3
ZSB3YW50IHRvIGRpc3BsYXkuCisgICAgRmxvYXRSZWN0IGFkanVzdGVkRGVzdFJlY3QgPSBkZXN0
UmVjdDsKICAgICBGbG9hdFNpemUgc2VsZlNpemUgPSBjdXJyZW50RnJhbWVTaXplKCk7CisgICAg
aWYgKHNyY1JlY3Quc2l6ZSgpICE9IHNlbGZTaXplKSB7CisgICAgICAgIENHSW50ZXJwb2xhdGlv
blF1YWxpdHkgaW50ZXJwb2xhdGlvblF1YWxpdHkgPSBDR0NvbnRleHRHZXRJbnRlcnBvbGF0aW9u
UXVhbGl0eShjb250ZXh0KTsKKyAgICAgICAgLy8gV2hlbiB0aGUgaW1hZ2UgaXMgc2NhbGVkIHVz
aW5nIGhpZ2gtcXVhbGl0eSBpbnRlcnBvbGF0aW9uLCB3ZSBjcmVhdGUgYSB0ZW1wb3JhcnkgQ0dJ
bWFnZQorICAgICAgICAvLyBjb250YWluaW5nIG9ubHkgdGhlIHBvcnRpb24gd2Ugd2FudCB0byBk
aXNwbGF5LiBXZSBuZWVkIHRvIGRvIHRoaXMgYmVjYXVzZSBoaWdoLXF1YWxpdHkKKyAgICAgICAg
Ly8gaW50ZXJwb2xhdGlvbiBzbW9vdGhlcyBzaGFycCBlZGdlcywgY2F1c2luZyBwaXhlbHMgZnJv
bSBvdXRzaWRlIHRoZSBzb3VyY2UgcmVjdCB0byBibGVlZAorICAgICAgICAvLyBpbnRvIHRoZSBk
ZXN0aW5hdGlvbiByZWN0LiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzYxMTI5MDk+LgorICAgICAgICBz
aG91bGRVc2VTdWJpbWFnZSA9IChpbnRlcnBvbGF0aW9uUXVhbGl0eSAhPSBrQ0dJbnRlcnBvbGF0
aW9uTm9uZSkgJiYgKHNyY1JlY3Quc2l6ZSgpICE9IGRlc3RSZWN0LnNpemUoKSB8fCAhY3R4dC0+
Z2V0Q1RNKCkuaXNJZGVudGl0eU9yVHJhbnNsYXRpb25PckZsaXBwZWQoKSk7CisgICAgICAgIGZs
b2F0IHhTY2FsZSA9IHNyY1JlY3Qud2lkdGgoKSAvIGRlc3RSZWN0LndpZHRoKCk7CisgICAgICAg
IGZsb2F0IHlTY2FsZSA9IHNyY1JlY3QuaGVpZ2h0KCkgLyBkZXN0UmVjdC5oZWlnaHQoKTsKKyAg
ICAgICAgaWYgKHNob3VsZFVzZVN1YmltYWdlKSB7CisgICAgICAgICAgICBGbG9hdFJlY3Qgc3Vi
aW1hZ2VSZWN0ID0gc3JjUmVjdDsKKyAgICAgICAgICAgIGZsb2F0IGxlZnRQYWRkaW5nID0gc3Jj
UmVjdC54KCkgLSBmbG9vcmYoc3JjUmVjdC54KCkpOworICAgICAgICAgICAgZmxvYXQgdG9wUGFk
ZGluZyA9IHNyY1JlY3QueSgpIC0gZmxvb3JmKHNyY1JlY3QueSgpKTsKKworICAgICAgICAgICAg
c3ViaW1hZ2VSZWN0Lm1vdmUoLWxlZnRQYWRkaW5nLCAtdG9wUGFkZGluZyk7CisgICAgICAgICAg
ICBhZGp1c3RlZERlc3RSZWN0Lm1vdmUoLWxlZnRQYWRkaW5nIC8geFNjYWxlLCAtdG9wUGFkZGlu
ZyAvIHlTY2FsZSk7CisKKyAgICAgICAgICAgIHN1YmltYWdlUmVjdC5zZXRXaWR0aChjZWlsZihz
dWJpbWFnZVJlY3Qud2lkdGgoKSArIGxlZnRQYWRkaW5nKSk7CisgICAgICAgICAgICBhZGp1c3Rl
ZERlc3RSZWN0LnNldFdpZHRoKHN1YmltYWdlUmVjdC53aWR0aCgpIC8geFNjYWxlKTsKKworICAg
ICAgICAgICAgc3ViaW1hZ2VSZWN0LnNldEhlaWdodChjZWlsZihzdWJpbWFnZVJlY3QuaGVpZ2h0
KCkgKyB0b3BQYWRkaW5nKSk7CisgICAgICAgICAgICBhZGp1c3RlZERlc3RSZWN0LnNldEhlaWdo
dChzdWJpbWFnZVJlY3QuaGVpZ2h0KCkgLyB5U2NhbGUpOworCisgICAgICAgICAgICBpbWFnZS5h
ZG9wdENGKENHSW1hZ2VDcmVhdGVXaXRoSW1hZ2VJblJlY3QoaW1hZ2UuZ2V0KCksIHN1YmltYWdl
UmVjdCkpOworICAgICAgICAgICAgaWYgKGN1cnJIZWlnaHQgPCBzcmNSZWN0Lm1heFkoKSkgewor
ICAgICAgICAgICAgICAgIEFTU0VSVChDR0ltYWdlR2V0SGVpZ2h0KGltYWdlLmdldCgpKSA9PSBj
dXJySGVpZ2h0IC0gQ0dSZWN0SW50ZWdyYWwoc3JjUmVjdCkub3JpZ2luLnkpOworICAgICAgICAg
ICAgICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0SGVpZ2h0KENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2Uu
Z2V0KCkpIC8geVNjYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludChkZXN0UmVjdC54
KCkgLSBzcmNSZWN0LngoKSAvIHhTY2FsZSwgZGVzdFJlY3QueSgpIC0gc3JjUmVjdC55KCkgLyB5
U2NhbGUpKTsKKyAgICAgICAgICAgIGFkanVzdGVkRGVzdFJlY3Quc2V0U2l6ZShGbG9hdFNpemUo
c2VsZlNpemUud2lkdGgoKSAvIHhTY2FsZSwgc2VsZlNpemUuaGVpZ2h0KCkgLyB5U2NhbGUpKTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmICghZGVzdFJlY3QuY29udGFpbnMoYWRqdXN0ZWREZXN0
UmVjdCkpCisgICAgICAgICAgICBDR0NvbnRleHRDbGlwVG9SZWN0KGNvbnRleHQsIGRlc3RSZWN0
KTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGUgaW1hZ2UgaXMgb25seSBwYXJ0aWFsbHkgbG9hZGVk
LCB0aGVuIHNocmluayB0aGUgZGVzdGluYXRpb24gcmVjdCB0aGF0IHdlJ3JlIGRyYXdpbmcgaW50
byBhY2NvcmRpbmdseS4KKyAgICBpZiAoIXNob3VsZFVzZVN1YmltYWdlICYmIGN1cnJIZWlnaHQg
PCBzZWxmU2l6ZS5oZWlnaHQoKSkKKyAgICAgICAgYWRqdXN0ZWREZXN0UmVjdC5zZXRIZWlnaHQo
YWRqdXN0ZWREZXN0UmVjdC5oZWlnaHQoKSAqIGN1cnJIZWlnaHQgLyBzZWxmU2l6ZS5oZWlnaHQo
KSk7CiAKLSAgICBjdHh0LT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UuZ2V0KCksIHNlbGZTaXplLCBz
dHlsZUNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcCk7CisgICAgY3R4
dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKGNvbXBvc2l0ZU9wKTsKKworICAgIC8vIEZsaXAgdGhl
IGNvb3Jkcy4KKyAgICBDR0NvbnRleHRTY2FsZUNUTShjb250ZXh0LCAxLCAtMSk7CisgICAgYWRq
dXN0ZWREZXN0UmVjdC5zZXRZKC1hZGp1c3RlZERlc3RSZWN0Lm1heFkoKSk7CisKKyAgICAvLyBB
ZGp1c3QgdGhlIGNvbG9yIHNwYWNlLgorICAgIGltYWdlID0gaW1hZ2VXaXRoQ29sb3JTcGFjZShp
bWFnZS5nZXQoKSwgc3R5bGVDb2xvclNwYWNlKTsKKworICAgIC8vIERyYXcgdGhlIGltYWdlLgor
ICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LCBhZGp1c3RlZERlc3RSZWN0LCBpbWFnZS5n
ZXQoKSk7CisKKyAgICBzdGF0ZVNhdmVyLnJlc3RvcmUoKTsKIAogICAgIGlmIChpbWFnZU9ic2Vy
dmVyKCkpCiAgICAgICAgIGltYWdlT2JzZXJ2ZXIoKS0+ZGlkRHJhdyh0aGlzKTsKQEAgLTI0OSw3
ICszMTMsNyBAQCB2b2lkIEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGN0eHQs
IGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QsIGNvbnN0CiAgICAgfQogCiAgICAgLy8gQWRqdXN0
IHRoZSBjb2xvciBzcGFjZS4KLSAgICBzdWJJbWFnZSA9IEltYWdlOjppbWFnZVdpdGhDb2xvclNw
YWNlKHN1YkltYWdlLmdldCgpLCBzdHlsZUNvbG9yU3BhY2UpOworICAgIHN1YkltYWdlID0gaW1h
Z2VXaXRoQ29sb3JTcGFjZShzdWJJbWFnZS5nZXQoKSwgc3R5bGVDb2xvclNwYWNlKTsKICAgICAK
ICAgICAvLyBMZW9wYXJkIGhhcyBhbiBvcHRpbWl6ZWQgY2FsbCBmb3IgdGhlIHRpbGluZyBvZiBp
bWFnZSBwYXR0ZXJucywgYnV0IHdlIGNhbiBvbmx5IHVzZSBpdCBpZiB0aGUgaW1hZ2UgaGFzIGJl
ZW4gZGVjb2RlZCBlbm91Z2ggdGhhdAogICAgIC8vIGl0cyBidWZmZXIgaXMgdGhlIHNhbWUgc2l6
ZSBhcyB0aGUgb3ZlcmFsbCBpbWFnZS4gIEJlY2F1c2UgYSBwYXJ0aWFsbHkgZGVjb2RlZCBDR0lt
YWdlUmVmIHdpdGggYSBzbWFsbGVyIHdpZHRoIG9yIGhlaWdodCB0aGFuIHRoZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVRpbGUuY3BwCmluZGV4
IDJhOTc4YTMxMjgzYjQ5YTg5MTYxZjQ5NWE1OTA3NmVkMWRjMWFhN2EuLjFmY2I3MWI4Nzk1NmNl
ZWExZDljMTc5MWYzNjg4MjA3NzRjYTk3MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFVGlsZS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9p
ZCBGRVRpbGU6OmFwcGx5KCkKICAgICB0aWxlSW1hZ2VDb250ZXh0LT50cmFuc2xhdGUoLWluTWF4
RWZmZWN0TG9jYXRpb24ueCgpLCAtaW5NYXhFZmZlY3RMb2NhdGlvbi55KCkpOwogICAgIHRpbGVJ
bWFnZUNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbi0+YXNJbWFnZUJ1ZmZlcigpLCBDb2xvclNw
YWNlRGV2aWNlUkdCLCBpbi0+YWJzb2x1dGVQYWludFJlY3QoKS5sb2NhdGlvbigpKTsKIAotICAg
IFJlZlB0cjxQYXR0ZXJuPiBwYXR0ZXJuID0gUGF0dGVybjo6Y3JlYXRlKHRpbGVJbWFnZS0+Y29w
eUltYWdlKENvcHlCYWNraW5nU3RvcmUpLCB0cnVlLCB0cnVlKTsKKyAgICBSZWZQdHI8UGF0dGVy
bj4gcGF0dGVybiA9IFBhdHRlcm46OmNyZWF0ZSh0aWxlSW1hZ2UtPmNvcHlJbWFnZSgpLCB0cnVl
LCB0cnVlKTsKIAogICAgIEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJhbnNmb3JtOwogICAgIHBh
dHRlcm5UcmFuc2Zvcm0udHJhbnNsYXRlKGluTWF4RWZmZWN0TG9jYXRpb24ueCgpIC0gbWF4RWZm
ZWN0TG9jYXRpb24ueCgpLCBpbk1heEVmZmVjdExvY2F0aW9uLnkoKSAtIG1heEVmZmVjdExvY2F0
aW9uLnkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9JbWFnZUJ1ZmZlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ltYWdlQnVmZmVyUXQuY3BwCmluZGV4IGM5ZmRkZWFhMGQyZGM4ZGQzNzIyMTM0M2U1ODVmZDU4
NmY2OGYyYTguLmM3MmIxNjQxYjQ4NmJmZjUzY2EzMjk2NTBlYzQyZDkwZjRhM2E3NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVy
UXQuY3BwCkBAIC0xMjEsOSArMTIxLDggQEAgR3JhcGhpY3NDb250ZXh0KiBJbWFnZUJ1ZmZlcjo6
Y29udGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXI6OmNvcHlJbWFnZShCYWNraW5nU3RvcmVDb3B5IGNvcHlQ
cmVmZXJlbmNlKSBjb25zdAorUGFzc1JlZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXI6OmNvcHlJbWFn
ZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGNvcHlQcmVmZXJlbmNlID09IENvcHlCYWNraW5nU3Rv
cmUpOwogICAgIHJldHVybiBTdGlsbEltYWdlOjpjcmVhdGUobV9kYXRhLm1fcGl4bWFwKTsKIH0K
IApAQCAtMTMyLDcgKzEzMSw3IEBAIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXcoR3JhcGhpY3NDb250
ZXh0KiBkZXN0Q29udGV4dCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsCiB7CiAgICAgaWYg
KGRlc3RDb250ZXh0ID09IGNvbnRleHQoKSkgewogICAgICAgICAvLyBXZSdyZSBkcmF3aW5nIGlu
dG8gb3VyIG93biBidWZmZXIuICBJbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLCB3ZSBuZWVkIHRv
IGNvcHkgdGhlIHNvdXJjZSBidWZmZXIgZmlyc3QuCi0gICAgICAgIFJlZlB0cjxJbWFnZT4gY29w
eSA9IGNvcHlJbWFnZShDb3B5QmFja2luZ1N0b3JlKTsKKyAgICAgICAgUmVmUHRyPEltYWdlPiBj
b3B5ID0gY29weUltYWdlKCk7CiAgICAgICAgIGRlc3RDb250ZXh0LT5kcmF3SW1hZ2UoY29weS5n
ZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCB1c2VMb3dR
dWFsaXR5U2NhbGUpOwogICAgIH0gZWxzZQogICAgICAgICBkZXN0Q29udGV4dC0+ZHJhd0ltYWdl
KG1fZGF0YS5tX2ltYWdlLmdldCgpLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0
LCBvcCwgdXNlTG93UXVhbGl0eVNjYWxlKTsKQEAgLTE0Myw3ICsxNDIsNyBAQCB2b2lkIEltYWdl
QnVmZmVyOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGRlc3RDb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIHNyYwogewogICAgIGlmIChkZXN0Q29udGV4dCA9PSBjb250ZXh0KCkpIHsKICAg
ICAgICAgLy8gV2UncmUgZHJhd2luZyBpbnRvIG91ciBvd24gYnVmZmVyLiAgSW4gb3JkZXIgZm9y
IHRoaXMgdG8gd29yaywgd2UgbmVlZCB0byBjb3B5IHRoZSBzb3VyY2UgYnVmZmVyIGZpcnN0Lgot
ICAgICAgICBSZWZQdHI8SW1hZ2U+IGNvcHkgPSBjb3B5SW1hZ2UoQ29weUJhY2tpbmdTdG9yZSk7
CisgICAgICAgIFJlZlB0cjxJbWFnZT4gY29weSA9IGNvcHlJbWFnZSgpOwogICAgICAgICBjb3B5
LT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhh
c2UsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGRlc3RSZWN0KTsKICAgICB9IGVsc2UKICAgICAgICAg
bV9kYXRhLm1faW1hZ2UtPmRyYXdQYXR0ZXJuKGRlc3RDb250ZXh0LCBzcmNSZWN0LCBwYXR0ZXJu
VHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xvclNwYWNlLCBvcCwgZGVzdFJlY3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNr
aWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZl
clNraWEuY3BwCmluZGV4IGFmODIyYTQ4ZGFjZThhMDVkN2YwZTg4MGYzNGM2ZjhhN2Q4MjYzNTIu
LmNhNTI1ZTZiNTM1YzJkOTU4ODJmY2VjMDE5MTQwNGRkM2U5MWM0MjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tp
YS5jcHAKQEAgLTk3LDkgKzk3LDggQEAgc2l6ZV90IEltYWdlQnVmZmVyOjpkYXRhU2l6ZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fc2l6ZS53aWR0aCgpICogbV9zaXplLmhlaWdodCgpICogNDsKIH0K
IAotUGFzc1JlZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXI6OmNvcHlJbWFnZShCYWNraW5nU3RvcmVD
b3B5IGNvcHlQcmVmZXJlbmNlKSBjb25zdAorUGFzc1JlZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXI6
OmNvcHlJbWFnZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGNvcHlQcmVmZXJlbmNlID09IENvcHlC
YWNraW5nU3RvcmUpOwogICAgIG1fY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPm1ha2VHckNv
bnRleHRDdXJyZW50KCk7CiAgICAgcmV0dXJuIEJpdG1hcEltYWdlU2luZ2xlRnJhbWVTa2lhOjpj
cmVhdGUoKm1fZGF0YS5tX3BsYXRmb3JtQ29udGV4dC5iaXRtYXAoKSwgdHJ1ZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZl
cldpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdl
QnVmZmVyV2luQ0UuY3BwCmluZGV4IDBjYWZlZTZjMmYzNDIwMjljZTg2YzVlMDY5OTY5NTI1MzU5
M2JlZjEuLjljY2YzNDg2OGJmMDYyYWE4MjEyMTMyZTlhODgzZjc1NDlmNWE2MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2lu
Q0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdl
QnVmZmVyV2luQ0UuY3BwCkBAIC05OCw5ICs5OCw4IEBAIEdyYXBoaWNzQ29udGV4dCogSW1hZ2VC
dWZmZXI6OmNvbnRleHQoKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRleHQuZ2V0KCk7CiB9CiAK
LVBhc3NSZWZQdHI8SW1hZ2U+IEltYWdlQnVmZmVyOjpjb3B5SW1hZ2UoQmFja2luZ1N0b3JlQ29w
eSBjb3B5UHJlZmVyZW5jZSkgY29uc3QKK1Bhc3NSZWZQdHI8SW1hZ2U+IEltYWdlQnVmZmVyOjpj
b3B5SW1hZ2UoKSBjb25zdAogewotICAgIEFTU0VSVChjb3B5UHJlZmVyZW5jZSA9PSBDb3B5QmFj
a2luZ1N0b3JlKTsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJ1ZmZlcmVkSW1hZ2UoJm1fZGF0
YSkpOwogfQogCkBAIC0xMTIsMTQgKzExMSwxNCBAQCB2b2lkIEltYWdlQnVmZmVyOjpjbGlwKEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0CiB2b2lkIEltYWdlQnVmZmVy
OjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3Igb3AgLCBib29sIHVzZUxv
d1F1YWxpdHlTY2FsZSkKIHsKLSAgICBSZWZQdHI8SW1hZ2U+IGltYWdlQ29weSA9IGNvcHlJbWFn
ZShDb3B5QmFja2luZ1N0b3JlKTsKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlQ29weSA9IGNvcHlJ
bWFnZSgpOwogICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZUNvcHkuZ2V0KCksIHN0eWxlQ29s
b3JTcGFjZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQog
CiB2b2lkIEltYWdlQnVmZmVyOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2lu
dCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBv
cCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCkKIHsKLSAgICBSZWZQdHI8SW1hZ2U+IGltYWdl
Q29weSA9IGNvcHlJbWFnZShDb3B5QmFja2luZ1N0b3JlKTsKKyAgICBSZWZQdHI8SW1hZ2U+IGlt
YWdlQ29weSA9IGNvcHlJbWFnZSgpOwogICAgIGltYWdlQ29weS0+ZHJhd1BhdHRlcm4oY29udGV4
dCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHN0eWxlQ29sb3JTcGFjZSwgb3As
IGRlc3RSZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3gvSW1hZ2VCdWZmZXJXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcAppbmRleCA2NTU1Mjc0MjdiZTAzZmRiMDg5MzUxYTRj
Y2Q5YWM0MmEyNzQ5OGVmLi4yODExNTBlMWRmM2YwZTRiNDVmM2Y1NDE0NTljNGJmMTk0M2YwOTVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1
ZmZlcld4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9JbWFn
ZUJ1ZmZlcld4LmNwcApAQCAtODgsOSArODgsOCBAQCBTdHJpbmcgSW1hZ2VCdWZmZXI6OnRvRGF0
YVVSTChjb25zdCBTdHJpbmcmLCBjb25zdCBkb3VibGUqKSBjb25zdAogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAotUGFzc1JlZlB0cjxJbWFnZT4gSW1hZ2VCdWZmZXI6OmNvcHlJbWFnZShCYWNr
aW5nU3RvcmVDb3B5IGNvcHlQcmVmZXJlbmNlKSBjb25zdAorUGFzc1JlZlB0cjxJbWFnZT4gSW1h
Z2VCdWZmZXI6OmNvcHlJbWFnZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGNvcHlQcmVmZXJlbmNl
ID09IENvcHlCYWNraW5nU3RvcmUpOwogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJu
IDA7CiB9CkBAIC0xMDMsMTQgKzEwMiwxNCBAQCB2b2lkIEltYWdlQnVmZmVyOjpjbGlwKEdyYXBo
aWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0CiB2b2lkIEltYWdlQnVmZmVyOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwKICAg
ICAgICAgICAgICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIGJvb2wgdXNlTG93UXVh
bGl0eVNjYWxlKQogewotICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2VDb3B5ID0gY29weUltYWdlKENv
cHlCYWNraW5nU3RvcmUpOworICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2VDb3B5ID0gY29weUltYWdl
KCk7CiAgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlQ29weS5nZXQoKSwgc3R5bGVDb2xvclNw
YWNlLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZv
aWQgSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBw
aGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0KQogewotICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2VDb3B5
ID0gY29weUltYWdlKENvcHlCYWNraW5nU3RvcmUpOworICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2VD
b3B5ID0gY29weUltYWdlKCk7CiAgICAgaW1hZ2VDb3B5LT5kcmF3UGF0dGVybihjb250ZXh0LCBz
cmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3R5bGVDb2xvclNwYWNlLCBvcCwgZGVz
dFJlY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5jcHAKaW5kZXggOTgzMzg1NjQ1MDA1OGFkMWNlNjNm
Y2NlMTg4YWFmMWMwNGRlZjMwZC4uYjMzN2YwZmUzYjk4NzllNzI4MjkxMjNiODYxMzRiMzFjYmJl
YTYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZVBhdHRlcm4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIGJvb2wgUmVuZGVy
U1ZHUmVzb3VyY2VQYXR0ZXJuOjphcHBseVJlc291cmNlKFJlbmRlck9iamVjdCogb2JqZWN0LCBS
ZW5kZXJTdHlsZSoKICAgICAgICAgaWYgKCF0aWxlSW1hZ2UpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICAgICAgUmVmUHRyPEltYWdlPiBjb3BpZWRJbWFnZSA9IHRpbGVJbWFnZS0+
Y29weUltYWdlKENvcHlCYWNraW5nU3RvcmUpOworICAgICAgICBSZWZQdHI8SW1hZ2U+IGNvcGll
ZEltYWdlID0gdGlsZUltYWdlLT5jb3B5SW1hZ2UoKTsKICAgICAgICAgaWYgKCFjb3BpZWRJbWFn
ZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUlt
YWdlRWxlbWVudC5jcHAKaW5kZXggZmUyY2Q4MDJhOWJiYzRkMjAwNjFjZGM1MjlhYzkxZDQ3YWIw
MWYxMy4uNDY3ZTkyNmJkYmZiODEwMDQ4ODExYTUzODllNjg1ZGE4NzNlZTI0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgUGFz
c1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZChTVkdGaWx0ZXJC
dWlsZGVyKiwgRmlsdGVyKiBmaWwKICAgICAgICAgU1ZHSW1hZ2VCdWZmZXJUb29sczo6cmVuZGVy
U3VidHJlZVRvSW1hZ2VCdWZmZXIobV90YXJnZXRJbWFnZS5nZXQoKSwgcmVuZGVyZXIsIGNvbnRl
bnRUcmFuc2Zvcm1hdGlvbik7CiAgICAgfQogCi0gICAgcmV0dXJuIEZFSW1hZ2U6OmNyZWF0ZShm
aWx0ZXIsIG1fdGFyZ2V0SW1hZ2UgPyBtX3RhcmdldEltYWdlLT5jb3B5SW1hZ2UoQ29weUJhY2tp
bmdTdG9yZSkgOiBtX2NhY2hlZEltYWdlLT5pbWFnZSgpLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKCkp
OworICAgIHJldHVybiBGRUltYWdlOjpjcmVhdGUoZmlsdGVyLCBtX3RhcmdldEltYWdlID8gbV90
YXJnZXRJbWFnZS0+Y29weUltYWdlKCkgOiBtX2NhY2hlZEltYWdlLT5pbWFnZSgpLCBwcmVzZXJ2
ZUFzcGVjdFJhdGlvKCkpOwogfQogCiB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjphZGRTdWJyZXNv
dXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mIHVybHMpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCA0MGYxOTM1Mzc1YTE4ZWQ3MTli
YjczMDIzYzQ0ZmVjZjdhZWU1YzIzLi4yOTFhMWM3MmE4MzJmNDIwZTI0NjdmYTFlOGNlMTc3MmI3
ODJhZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTIy
Nyw3ICsyMjcsNyBAQCBOYXRpdmVJbWFnZVB0ciBTVkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJy
ZW50RnJhbWUoKQogICAgICAgICBpZiAoIWJ1ZmZlcikgLy8gZmFpbGVkIHRvIGFsbG9jYXRlIGlt
YWdlCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgZHJhdyhidWZmZXItPmNvbnRleHQo
KSwgcmVjdCgpLCByZWN0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIENvbXBvc2l0ZVNvdXJjZU92
ZXIpOwotICAgICAgICBtX2ZyYW1lQ2FjaGUgPSBidWZmZXItPmNvcHlJbWFnZShDb3B5QmFja2lu
Z1N0b3JlKTsKKyAgICAgICAgbV9mcmFtZUNhY2hlID0gYnVmZmVyLT5jb3B5SW1hZ2UoKTsKICAg
ICB9CiAgICAgcmV0dXJuIG1fZnJhbWVDYWNoZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUo
KTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>