<?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>81307</bug_id>
          
          <creation_ts>2012-03-15 22:02:29 -0700</creation_ts>
          <short_desc>REGRESSION(r110941): the revert looks innocent. (Requested by morrita on #webkit).</short_desc>
          <delta_ts>2012-03-15 22:48:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>81306</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>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>580134</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 22:02:29 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/110941 broke the build:
the revert looks innocent. (Requested by morrita 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>580136</commentid>
    <comment_count>1</comment_count>
      <attachid>132196</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 22:02:59 -0700</bug_when>
    <thetext>Created attachment 132196
ROLLOUT of r110941

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

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580152</commentid>
    <comment_count>2</comment_count>
      <attachid>132196</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 22:48:01 -0700</bug_when>
    <thetext>Comment on attachment 132196
ROLLOUT of r110941

Clearing flags on attachment: 132196

Committed r110945: &lt;http://trac.webkit.org/changeset/110945&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580153</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 22:48:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132196</attachid>
            <date>2012-03-15 22:02:59 -0700</date>
            <delta_ts>2012-03-15 22:48:01 -0700</delta_ts>
            <desc>ROLLOUT of r110941</desc>
            <filename>bug-81307-20120316050531.patch</filename>
            <type>text/plain</type>
            <size>57036</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwOTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVkZjcyNzQ0ODBhNzE3
ZDdlYmRjMmMxM2M5ODA0YTkzNmNiZWI1NC4uYTUyMzc4MWJmNTJkNTk1NWY5M2VmN2ViODIwNTFi
ZmY4NzYwYjZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTAzLTE1ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTEwOTQxLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMTA5NDEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgxMzA3CisKKyAgICAgICAgdGhlIHJldmVydCBsb29rcyBpbm5vY2VudC4gKFJl
cXVlc3RlZCBieSBtb3JyaXRhIG9uICN3ZWJraXQpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhbnZhczJETGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJvbWl1bS5oOgor
ICAgICAgICAoQ2FudmFzMkRMYXllckNocm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50TGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudExheWVyQ2hyb21pdW06OmlkbGVQYWludENvbnRlbnRzSWZEaXJ0eSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21p
dW0uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29udGVudExheWVyQ2hyb21pdW0p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxheWVyQ2hyb21pdW06OnBhaW50Q29udGVu
dHNJZkRpcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxh
eWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW1hZ2VMYXllckNo
cm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9t
aXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpwYWludENvbnRlbnRzSWZE
aXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjppZGxlUGFpbnRDb250ZW50
c0lmRGlydHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21pdW06OnBy
ZXBhcmVUb1VwZGF0ZVRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1
bTo6cHJlcGFyZVRvVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1
bTo6cHJlcGFyZVRvVXBkYXRlSWRsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVGlsZWRMYXllckNocm9taXVtLmg6CisgICAgICAgIChUaWxlZExheWVyQ2hyb21pdW0p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTExheWVyQ2hyb21pdW06OnBhaW50Q29udGVu
dHNJZkRpcnR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExh
eWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkdMTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6cGFpbnRDb250ZW50c0lmRGlydHkpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpwYWludE1hc2tBbmRSZXBsaWNhRm9yUmVu
ZGVyU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TGF5
ZXJDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0Lmg6CisKIDIwMTItMDMtMTUgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3
QGdvb2dsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0gQVBJIChKU0VQKTogSW50cm9kdWNp
bmcgU2Vzc2lvbkRlc2NyaXB0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdhODM3
MjJhYWM3OGQ2ODFmMmY0YjQ3NzFjODAzNTU0NzdmZjA0NTQuLjI4YjJmZWZlZjQ5NWY0YmUwZWEz
ZjVjMTg2YzgyNWRhYjM5MzczNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsMjkgQEAKIDIwMTItMDMtMTUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21h
aWwuY29tPgogCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTA5NDEuCisgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzExMDk0MQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEzMDcKKworICAgICAgICB0aGUg
cmV2ZXJ0IGxvb2tzIGlubm9jZW50LiAoUmVxdWVzdGVkIGJ5IG1vcnJpdGEgb24gI3dlYmtpdCku
CisKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcDoKKyAgICAgICAgKFdU
Rjo6Q29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc6OnBhaW50Q29udGVudHNJ
ZkRpcnR5KToKKyAgICAgICAgKFdURjo6Q29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJh
Y2tpbmc6OmlkbGVQYWludENvbnRlbnRzSWZEaXJ0eSk6CisgICAgICAgIChXVEY6OlRlc3RMYXll
ckNocm9taXVtOjpwYWludENvbnRlbnRzSWZEaXJ0eSk6CisgICAgICAgICogdGVzdHMvQ2FudmFz
MkRMYXllckNocm9taXVtVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvVGlsZWRMYXllckNocm9t
aXVtVGVzdC5jcHA6CisgICAgICAgIChUZXN0Q0NPY2NsdXNpb25UcmFja2VyKToKKyAgICAgICAg
KFdURjo6VGVzdENDT2NjbHVzaW9uVHJhY2tlcjo6VGVzdENDT2NjbHVzaW9uVHJhY2tlcik6Cisg
ICAgICAgIChXVEY6OlRlc3RDQ09jY2x1c2lvblRyYWNrZXI6OnNldE9jY2x1c2lvbik6CisgICAg
ICAgIChXVEY6OlRlc3RDQ09jY2x1c2lvblRyYWNrZXI6OmxheWVyU2Npc3NvclJlY3RJblRhcmdl
dFN1cmZhY2UpOgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6RmFrZVRpbGVkTGF5ZXJD
aHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlKToKKyAgICAgICAgKFdURjo6RmFrZVRpbGVkTGF5ZXJD
aHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlSWRsZSk6CisgICAgICAgIChXVEY6OkZha2VUaWxlZExh
eWVyQ2hyb21pdW06OnBhaW50Q29udGVudHNJZkRpcnR5KToKKyAgICAgICAgKFdURjo6VEVTVCk6
CisKKzIwMTItMDMtMTUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgorCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTA5MjkuCiAgICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzExMDkyOQogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEzMDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExh
eWVyQ2hyb21pdW0uY3BwCmluZGV4IDNmYzYwMDJjOGEyMjA5ZTMzODQ0N2NkZTQyOTBmZTYwNzU5
MmEwMGEuLjVjMGFmMmNmYjkzZTRkMDBmN2I5MDZkNTRjYmYwYmMyN2I0YzU0MjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5
ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lkIENh
bnZhczJETGF5ZXJDaHJvbWl1bTo6c2V0Q2FudmFzKFNrQ2FudmFzKiBjYW52YXMpCiAgICAgbV9j
YW52YXMgPSBjYW52YXM7CiB9CiAKLXZvaWQgQ2FudmFzMkRMYXllckNocm9taXVtOjpwYWludENv
bnRlbnRzSWZEaXJ0eShjb25zdCBSZWdpb24mIC8qIG9jY2x1ZGVkU2NyZWVuU3BhY2UgKi8pCit2
b2lkIENhbnZhczJETGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgQ0NP
Y2NsdXNpb25UcmFja2VyKiAvKiBvY2NsdXNpb24gKi8pCiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNh
bnZhczJETGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkiLCB0aGlzLCAwKTsKICAg
ICBpZiAoIWRyYXdzQ29udGVudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQ2hyb21pdW0uaApp
bmRleCBjYmQ0YWRjOWI5YjVkMzc4NDRhZGU4MTExMzEyZmFmNjNmNmIzZTFhLi45MzAyMjQ2ODRi
YmU0ODBhYjg4NjQ1NGVjZDRhYWY1MGZiNTA3NzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQ2hyb21pdW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVy
Q2hyb21pdW0uaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzRGlzcGxheVJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wg
ZHJhd3NDb250ZW50KCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHNJZkRp
cnR5KGNvbnN0IFJlZ2lvbiYgb2NjbHVkZWRTY3JlZW5TcGFjZSk7CisgICAgdmlydHVhbCB2b2lk
IHBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciopOwogCiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0M0Qq
LCBDQ1RleHR1cmVVcGRhdGVyJik7CiAgICAgdmlydHVhbCB2b2lkIHB1c2hQcm9wZXJ0aWVzVG8o
Q0NMYXllckltcGwqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAppbmRleCA3
YTY2OTg0YmQ3NjJiMGNkOTgyOTU5YjYxNWQ3Mzg0NTkxZWIwZDQzLi5jMDA3MjE1Nzk3OWQ3OGI1
OWFiMzdlMGYyMmRiMjY1NjIyOWMwNDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21p
dW0uY3BwCkBAIC05Myw3ICs5Myw3IEBAIGJvb2wgQ29udGVudExheWVyQ2hyb21pdW06OmRyYXdz
Q29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIFRpbGVkTGF5ZXJDaHJvbWl1bTo6ZHJhd3NDb250
ZW50KCkgJiYgbV9kZWxlZ2F0ZTsKIH0KIAotdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6cGFp
bnRDb250ZW50c0lmRGlydHkoY29uc3QgUmVnaW9uJiBvY2NsdWRlZFNjcmVlblNwYWNlKQordm9p
ZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgQ0NPY2Ns
dXNpb25UcmFja2VyKiBvY2NsdXNpb24pCiB7CiAgICAgdXBkYXRlVGlsZVNpemVBbmRUaWxpbmdP
cHRpb24oKTsKICAgICBjcmVhdGVUZXh0dXJlVXBkYXRlcklmTmVlZGVkKCk7CkBAIC0xMDUsMTEg
KzEwNSwxMSBAQCB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjpwYWludENvbnRlbnRzSWZEaXJ0
eShjb25zdCBSZWdpb24mIG9jY2x1ZGVkU2NyZWVuU3BhYwogICAgIGlmIChkcmF3c0NvbnRlbnQo
KSkKICAgICAgICAgbGF5ZXJSZWN0ID0gdmlzaWJsZUxheWVyUmVjdCgpOwogCi0gICAgcHJlcGFy
ZVRvVXBkYXRlKGxheWVyUmVjdCwgb2NjbHVkZWRTY3JlZW5TcGFjZSk7CisgICAgcHJlcGFyZVRv
VXBkYXRlKGxheWVyUmVjdCwgb2NjbHVzaW9uKTsKICAgICBtX25lZWRzRGlzcGxheSA9IGZhbHNl
OwogfQogCi12b2lkIENvbnRlbnRMYXllckNocm9taXVtOjppZGxlUGFpbnRDb250ZW50c0lmRGly
dHkoY29uc3QgUmVnaW9uJiBvY2NsdWRlZFNjcmVlblNwYWNlKQordm9pZCBDb250ZW50TGF5ZXJD
aHJvbWl1bTo6aWRsZVBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IENDT2NjbHVzaW9uVHJhY2tl
ciogb2NjbHVzaW9uKQogewogICAgIGlmICghZHJhd3NDb250ZW50KCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjppZGxlUGFp
bnRDb250ZW50c0lmRGlydHkoY29uc3QgUmVnaW9uJiBvY2NsdWRlZFNjcmVlbgogICAgIGlmIChs
YXllclJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcmVwYXJlVG9VcGRh
dGVJZGxlKGxheWVyUmVjdCwgb2NjbHVkZWRTY3JlZW5TcGFjZSk7CisgICAgcHJlcGFyZVRvVXBk
YXRlSWRsZShsYXllclJlY3QsIG9jY2x1c2lvbik7CiAgICAgaWYgKG5lZWRzSWRsZVBhaW50KGxh
eWVyUmVjdCkpCiAgICAgICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1
bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExh
eWVyQ2hyb21pdW0uaAppbmRleCBmYTU5MDFlMmFkMmQ5NTAyNmE2MjAxOGM4Y2Q2MWU2ODRlNzQy
YWRkLi5lNjk5NGEyMWFlZmFjMjE0MDg4N2U1YmJkOGFiYjIwM2M5YWI4MTc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJD
aHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0NvbnRlbnRMYXllckNocm9taXVtLmgKQEAgLTQxLDcgKzQxLDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBMYXllclRpbGVyQ2hyb21pdW07CiBjbGFzcyBMYXllclRleHR1cmVVcGRh
dGVyOwotY2xhc3MgUmVnaW9uOwogCiBjbGFzcyBDb250ZW50TGF5ZXJEZWxlZ2F0ZSB7CiBwdWJs
aWM6CkBAIC01OSw4ICs1OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRGVsZWdhdGUoKSB7
IG1fZGVsZWdhdGUgPSAwOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29u
c3Q7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IFJlZ2lvbiYg
b2NjbHVkZWRTY3JlZW5TcGFjZSk7Ci0gICAgdmlydHVhbCB2b2lkIGlkbGVQYWludENvbnRlbnRz
SWZEaXJ0eShjb25zdCBSZWdpb24mIG9jY2x1ZGVkU2NyZWVuU3BhY2UpOworICAgIHZpcnR1YWwg
dm9pZCBwYWludENvbnRlbnRzSWZEaXJ0eShjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaWRsZVBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IENDT2NjbHVzaW9u
VHJhY2tlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE9wYXF1ZShib29sKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXll
ckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNjExYWIyYTZhNjU4MDUzOTU2ZThiOGVkMzI4
MGRmYjFiMDBkYjA1OS4uMzkzOTE1OGE4NWI1NzNmYjJkNGI1N2ZlMWE1ZWY2ZjJmYmYwZmYwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1h
Z2VMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgdm9p
ZCBJbWFnZUxheWVyQ2hyb21pdW06OnNldENvbnRlbnRzKEltYWdlKiBjb250ZW50cykKICAgICBz
ZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAotdm9pZCBJbWFnZUxheWVyQ2hyb21pdW06OnBhaW50Q29u
dGVudHNJZkRpcnR5KGNvbnN0IFJlZ2lvbiYgb2NjbHVkZWRTY3JlZW5TcGFjZSkKK3ZvaWQgSW1h
Z2VMYXllckNocm9taXVtOjpwYWludENvbnRlbnRzSWZEaXJ0eShjb25zdCBDQ09jY2x1c2lvblRy
YWNrZXIqIG9jY2x1c2lvbikKIHsKICAgICBjcmVhdGVUZXh0dXJlVXBkYXRlcklmTmVlZGVkKCk7
CiAgICAgaWYgKG1fbmVlZHNEaXNwbGF5KSB7CkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBJbWFn
ZUxheWVyQ2hyb21pdW06OnBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IFJlZ2lvbiYgb2NjbHVk
ZWRTY3JlZW5TcGFjZSkKICAgICAgICAgbV9uZWVkc0Rpc3BsYXkgPSBmYWxzZTsKICAgICB9CiAK
LSAgICBwcmVwYXJlVG9VcGRhdGUodmlzaWJsZUxheWVyUmVjdCgpLCBvY2NsdWRlZFNjcmVlblNw
YWNlKTsKKyAgICBwcmVwYXJlVG9VcGRhdGUodmlzaWJsZUxheWVyUmVjdCgpLCBvY2NsdXNpb24p
OwogfQogCiB2b2lkIEltYWdlTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlVGV4dHVyZVVwZGF0ZXJJZk5l
ZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGRlYWZkMzdlNzMzZWEzOGJj
NGRkNWJiZGYxMjM3ZTU4NGQ0YjA5OWUuLmIwMWVmMjlkYTEzZDBlMTExNWU4NDFhYzIwZjRlNjBl
OGFjMTY0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oCkBAIC00MSw3ICs0MSw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2U7CiBjbGFzcyBJbWFnZUxheWVyVGV4
dHVyZVVwZGF0ZXI7Ci1jbGFzcyBSZWdpb247CiAKIC8vIEEgTGF5ZXIgdGhhdCBjb250YWlucyBv
bmx5IGFuIEltYWdlIGVsZW1lbnQuCiBjbGFzcyBJbWFnZUxheWVyQ2hyb21pdW0gOiBwdWJsaWMg
VGlsZWRMYXllckNocm9taXVtIHsKQEAgLTUwLDcgKzQ5LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfkltYWdlTGF5ZXJDaHJvbWl1bSgpOwogCiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVu
dCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzSWZEaXJ0eShjb25zdCBS
ZWdpb24mIG9jY2x1ZGVkU2NyZWVuU3BhY2UpOworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRl
bnRzSWZEaXJ0eShjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqKTsKICAgICB2aXJ0dWFsIGJvb2wg
bmVlZHNDb250ZW50c1NjYWxlKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldENvbnRlbnRzKEltYWdl
KiBpbWFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKaW5kZXggODZmZGY5NTE1Njg4OTM3OGMzZDYyZDE5
MTlhNzk1YTJjZTEyNTE2YS4uZTUyZWM0OGM3ZDU3YzZjYWZhNDhmYWFlN2QwYzM2NWE1ZTRmOTM0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyQ2hyb21pdW0uaApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlJlbmRl
clN1cmZhY2VDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlNoYWRlckNocm9taXVtLmgiCiAjaW5jbHVk
ZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKKyNpbmNsdWRlICJjYy9DQ09jY2x1c2lvblRyYWNr
ZXIuaCIKIAogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgpAQCAtMTYxLDggKzE2Miw4IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZXNlIG1ldGhvZHMg
dHlwaWNhbGx5IG5lZWQgdG8gYmUgb3ZlcndyaXR0ZW4gYnkgZGVyaXZlZCBjbGFzc2VzLgogICAg
IHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2lzRHJhd2FibGU7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgUmVnaW9uJiAv
KiBvY2NsdWRlZFNjcmVlblNwYWNlICovKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaWRsZVBhaW50
Q29udGVudHNJZkRpcnR5KGNvbnN0IFJlZ2lvbiYgLyogb2NjbHVkZWRTY3JlZW5TcGFjZSAqLykg
eyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IENDT2NjbHVz
aW9uVHJhY2tlciogLyogb2NjbHVzaW9uICovKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaWRsZVBh
aW50Q29udGVudHNJZkRpcnR5KGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogLyogb2NjbHVzaW9u
ICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhHcmFw
aGljc0NvbnRleHQzRCosIENDVGV4dHVyZVVwZGF0ZXImKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0SXNNYXNrKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bnJlc2VydmVDb250ZW50c1Rl
eHR1cmUoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCmluZGV4IDAyNTlhMjNk
Mzg2ZGQzZDFhYzhhOThiYzI4NGUyMzgyYzU0YzYzZTEuLjg1M2Q2NzU0Y2FhNTliN2JlMjgxMzkz
Mjg5ZWQ3ZDAwY2QzNDkyNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcApAQCAt
Mzk3LDIzICszOTcsMTAgQEAgYm9vbCBUaWxlZExheWVyQ2hyb21pdW06OnRpbGVOZWVkc0J1ZmZl
cmVkVXBkYXRlKFVwZGF0YWJsZVRpbGUqIHRpbGUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLS8v
IEZJWE1FOiBUaGlzIGdldHMgcm9sbGVkIGludG8gQ0NPY2NsdXNpb25UcmFja2VyIHdoZW4gd2Ug
c3RvcCBwYXNzaW5nIGFyb3VuZCBSZWdpb24gb2JqZWN0cy4KLXN0YXRpYyBpbmxpbmUgVHJhbnNm
b3JtYXRpb25NYXRyaXggY29udGVudFRvTGF5ZXJUcmFuc2Zvcm0oY29uc3QgSW50U2l6ZSYgYm91
bmRzSW5MYXllclNwYWNlLCBjb25zdCBJbnRTaXplJiBib3VuZHNJbkNvbnRlbnRTcGFjZSkKLXsK
LSAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07Ci0gICAgLy8gU2NhbGUgZnJvbSBj
b250ZW50IHNwYWNlIHRvIGxheWVyIHNwYWNlCi0gICAgdHJhbnNmb3JtLnNjYWxlTm9uVW5pZm9y
bShib3VuZHNJbkxheWVyU3BhY2Uud2lkdGgoKSAvIHN0YXRpY19jYXN0PGRvdWJsZT4oYm91bmRz
SW5Db250ZW50U3BhY2Uud2lkdGgoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b3VuZHNJbkxheWVyU3BhY2UuaGVpZ2h0KCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+KGJvdW5kc0lu
Q29udGVudFNwYWNlLmhlaWdodCgpKSk7Ci0gICAgcmV0dXJuIHRyYW5zZm9ybTsKLX0KLQotdm9p
ZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50
IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSwgY29uc3QgUmVnaW9uJiBvY2Ns
dWRlZFNjcmVlblNwYWNlKQordm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0
ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRv
bSwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24pCiB7CiAgICAgY3JlYXRlVGV4
dHVyZVVwZGF0ZXJJZk5lZWRlZCgpOwogCi0gICAgLy8gVGlsZXMgYXJlIGluIHRoZSBsYXllcidz
IGNvbnRlbnQgc3BhY2UsIHRoZSBvY2NsdWRlZCByZWdpb24gaXMgaW4gc2NyZWVuIHNwYWNlLgot
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGNvbnRlbnRUb1NjcmVlblNwYWNlID0gc2NyZWVuU3Bh
Y2VUcmFuc2Zvcm0oKSAqIGNvbnRlbnRUb0xheWVyVHJhbnNmb3JtKGJvdW5kcygpLCBjb250ZW50
Qm91bmRzKCkpOwotCiAgICAgLy8gQ3JlYXRlIHRpbGVzIGFzIG5lZWRlZCwgZXhwYW5kaW5nIGEg
ZGlydHkgcmVjdCB0byBjb250YWluIGFsbAogICAgIC8vIHRoZSBkaXJ0eSByZWdpb25zIGN1cnJl
bnRseSBiZWluZyBkcmF3bi4gQWxsIGRpcnR5IHRpbGVzIHRoYXQgYXJlIHRvIGJlIHBhaW50ZWQK
ICAgICAvLyBnZXQgdGhlaXIgbV91cGRhdGVSZWN0IHNldCB0byBtX2RpcnR5UmVjdCBhbmQgbV9k
aXJ0eVJlY3QgY2xlYXJlZC4gVGhpcyB3YXkgaWYKQEAgLTQyOCw5ICs0MTUsOSBAQCB2b2lkIFRp
bGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVm
dCwgaW50IHRvcCwgaW50CiAgICAgICAgICAgICAvLyBXaGVuIG5vdCBpZGxlIHBhaW50aW5nLCBp
ZiB0aGUgdmlzaWJsZSByZWdpb24gb2YgdGhlIHRpbGUgaXMgb2NjbHVkZWQsIGRvbid0IHJlc2Vy
dmUgYSB0ZXh0dXJlIG9yIG1hcmsgaXQgZm9yIHVwZGF0ZS4KICAgICAgICAgICAgIC8vIElmIGFu
eSBwYXJ0IG9mIHRoZSB0aWxlIGlzIHZpc2libGUsIHRoZW4gd2UgbmVlZCB0byBwYWludCBpdCBz
byB0aGUgdGlsZSBpcyBwdXNoZWQgdG8gdGhlIGltcGwgdGhyZWFkLgogICAgICAgICAgICAgLy8g
VGhpcyB3aWxsIGFsc28gYXZvaWQgcGFpbnRpbmcgdGhlIHRpbGUgaW4gdGhlIG5leHQgbG9vcCwg
YmVsb3cuCi0gICAgICAgICAgICBpZiAoIWlkbGUpIHsKKyAgICAgICAgICAgIGlmICghaWRsZSAm
JiBvY2NsdXNpb24pIHsKICAgICAgICAgICAgICAgICBJbnRSZWN0IHZpc2libGVUaWxlUmVjdCA9
IGludGVyc2VjdGlvbihtX3RpbGVyLT50aWxlQm91bmRzKGksIGopLCB2aXNpYmxlTGF5ZXJSZWN0
KCkpOwotICAgICAgICAgICAgICAgIGlmIChvY2NsdWRlZFNjcmVlblNwYWNlLmNvbnRhaW5zKGNv
bnRlbnRUb1NjcmVlblNwYWNlLm1hcFJlY3QodmlzaWJsZVRpbGVSZWN0KSkpCisgICAgICAgICAg
ICAgICAgaWYgKG9jY2x1c2lvbi0+b2NjbHVkZWQodGhpcywgdmlzaWJsZVRpbGVSZWN0KSkKICAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKQEAgLTU3Miw3ICs1
NTksNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cmVzZXRVcGRhdGVTdGF0ZSgpCiAgICAg
fQogfQogCi12b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlKGNvbnN0IElu
dFJlY3QmIGxheWVyUmVjdCwgY29uc3QgUmVnaW9uJiBvY2NsdWRlZFNjcmVlblNwYWNlKQordm9p
ZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRSZWN0JiBsYXll
clJlY3QsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uKQogewogICAgIG1fc2tp
cHNEcmF3ID0gZmFsc2U7CiAgICAgbV9za2lwc0lkbGVQYWludCA9IGZhbHNlOwpAQCAtNTg5LDEw
ICs1NzYsMTAgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZShjb25z
dCBJbnRSZWN0JiBsYXllclJlY3QsIGNvbnN0IFJlZ2lvbiYKICAgICBpbnQgbGVmdCwgdG9wLCBy
aWdodCwgYm90dG9tOwogICAgIG1fdGlsZXItPmxheWVyUmVjdFRvVGlsZUluZGljZXMobGF5ZXJS
ZWN0LCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pOwogCi0gICAgcHJlcGFyZVRvVXBkYXRlVGls
ZXMoZmFsc2UsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSwgb2NjbHVkZWRTY3JlZW5TcGFjZSk7
CisgICAgcHJlcGFyZVRvVXBkYXRlVGlsZXMoZmFsc2UsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRv
bSwgb2NjbHVzaW9uKTsKIH0KIAotdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1Vw
ZGF0ZUlkbGUoY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0LCBjb25zdCBSZWdpb24mIG9jY2x1ZGVk
U2NyZWVuU3BhY2UpCit2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlSWRs
ZShjb25zdCBJbnRSZWN0JiBsYXllclJlY3QsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2Nj
bHVzaW9uKQogewogICAgIC8vIEFib3J0IGlmIHdlIGhhdmUgYWxyZWFkeSBwcmVwYXJlZCBhIHBh
aW50IG9yIHJ1biBvdXQgb2YgbWVtb3J5LgogICAgIGlmIChtX3NraXBzSWRsZVBhaW50IHx8ICFt
X3BhaW50UmVjdC5pc0VtcHR5KCkpCkBAIC02MTQsNyArNjAxLDcgQEAgdm9pZCBUaWxlZExheWVy
Q2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZUlkbGUoY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0LCBj
b25zdCBSZWcKICAgICBtX3RpbGVyLT5sYXllclJlY3RUb1RpbGVJbmRpY2VzKGxheWVyUmVjdCwg
bGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTsKIAogICAgIC8vIFByZXBhaW50IGFueXRoaW5nIHRo
YXQgd2FzIG9jY2x1ZGVkIGJ1dCBpbnNpZGUgdGhlIGxheWVyJ3MgdmlzaWJsZSByZWdpb24uCi0g
ICAgcHJlcGFyZVRvVXBkYXRlVGlsZXModHJ1ZSwgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tLCBv
Y2NsdWRlZFNjcmVlblNwYWNlKTsKKyAgICBwcmVwYXJlVG9VcGRhdGVUaWxlcyh0cnVlLCBsZWZ0
LCB0b3AsIHJpZ2h0LCBib3R0b20sIDApOwogICAgIGlmICghbV9wYWludFJlY3QuaXNFbXB0eSgp
IHx8IG1fc2tpcHNJZGxlUGFpbnQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjI0LDI1ICs2MTEs
MjUgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZUlkbGUoY29uc3Qg
SW50UmVjdCYgbGF5ZXJSZWN0LCBjb25zdCBSZWcKICAgICB3aGlsZSAoIW1fc2tpcHNJZGxlUGFp
bnQgJiYgKGxlZnQgPiBwcmVwYWludExlZnQgfHwgdG9wID4gcHJlcGFpbnRUb3AgfHwgcmlnaHQg
PCBwcmVwYWludFJpZ2h0IHx8IGJvdHRvbSA8IHByZXBhaW50Qm90dG9tKSkgewogICAgICAgICBp
ZiAoYm90dG9tIDwgcHJlcGFpbnRCb3R0b20pIHsKICAgICAgICAgICAgICsrYm90dG9tOwotICAg
ICAgICAgICAgcHJlcGFyZVRvVXBkYXRlVGlsZXModHJ1ZSwgbGVmdCwgYm90dG9tLCByaWdodCwg
Ym90dG9tLCBvY2NsdWRlZFNjcmVlblNwYWNlKTsKKyAgICAgICAgICAgIHByZXBhcmVUb1VwZGF0
ZVRpbGVzKHRydWUsIGxlZnQsIGJvdHRvbSwgcmlnaHQsIGJvdHRvbSwgMCk7CiAgICAgICAgICAg
ICBpZiAoIW1fcGFpbnRSZWN0LmlzRW1wdHkoKSB8fCBtX3NraXBzSWRsZVBhaW50KQogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGlmICh0b3AgPiBwcmVwYWludFRv
cCkgewogICAgICAgICAgICAgLS10b3A7Ci0gICAgICAgICAgICBwcmVwYXJlVG9VcGRhdGVUaWxl
cyh0cnVlLCBsZWZ0LCB0b3AsIHJpZ2h0LCB0b3AsIG9jY2x1ZGVkU2NyZWVuU3BhY2UpOworICAg
ICAgICAgICAgcHJlcGFyZVRvVXBkYXRlVGlsZXModHJ1ZSwgbGVmdCwgdG9wLCByaWdodCwgdG9w
LCAwKTsKICAgICAgICAgICAgIGlmICghbV9wYWludFJlY3QuaXNFbXB0eSgpIHx8IG1fc2tpcHNJ
ZGxlUGFpbnQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgaWYg
KGxlZnQgPiBwcmVwYWludExlZnQpIHsKICAgICAgICAgICAgIC0tbGVmdDsKLSAgICAgICAgICAg
IHByZXBhcmVUb1VwZGF0ZVRpbGVzKHRydWUsIGxlZnQsIHRvcCwgbGVmdCwgYm90dG9tLCBvY2Ns
dWRlZFNjcmVlblNwYWNlKTsKKyAgICAgICAgICAgIHByZXBhcmVUb1VwZGF0ZVRpbGVzKHRydWUs
IGxlZnQsIHRvcCwgbGVmdCwgYm90dG9tLCAwKTsKICAgICAgICAgICAgIGlmICghbV9wYWludFJl
Y3QuaXNFbXB0eSgpIHx8IG1fc2tpcHNJZGxlUGFpbnQpCiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgaWYgKHJpZ2h0IDwgcHJlcGFpbnRSaWdodCkgewogICAgICAg
ICAgICAgKytyaWdodDsKLSAgICAgICAgICAgIHByZXBhcmVUb1VwZGF0ZVRpbGVzKHRydWUsIHJp
Z2h0LCB0b3AsIHJpZ2h0LCBib3R0b20sIG9jY2x1ZGVkU2NyZWVuU3BhY2UpOworICAgICAgICAg
ICAgcHJlcGFyZVRvVXBkYXRlVGlsZXModHJ1ZSwgcmlnaHQsIHRvcCwgcmlnaHQsIGJvdHRvbSwg
MCk7CiAgICAgICAgICAgICBpZiAoIW1fcGFpbnRSZWN0LmlzRW1wdHkoKSB8fCBtX3NraXBzSWRs
ZVBhaW50KQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21p
dW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5
ZXJDaHJvbWl1bS5oCmluZGV4IDZmZjkwMWRmZGJmZjc2MmYwNDYzNjNiMzRhNDg0NTJjMDRkMTIx
MDAuLjY0M2Y2OTY0MDAyOTQxOGE0NzdjNmYyMTQzM2RkYTc4MzZjZDQ4YmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJv
bWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5oCkBAIC0zMyw5ICszMyw3IEBACiAjaW5jbHVkZSAiY2MvQ0NUaWxl
ZExheWVySW1wbC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0KIGNsYXNzIExheWVyVGV4dHVy
ZVVwZGF0ZXI7Ci1jbGFzcyBSZWdpb247CiBjbGFzcyBVcGRhdGFibGVUaWxlOwogCiBjbGFzcyBU
aWxlZExheWVyQ2hyb21pdW0gOiBwdWJsaWMgTGF5ZXJDaHJvbWl1bSB7CkBAIC05MCwxMCArODgs
MTAgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVzZXRVcGRhdGVTdGF0ZSgpOwogCiAgICAgLy8g
UHJlcGFyZSBkYXRhIG5lZWRlZCB0byB1cGRhdGUgdGV4dHVyZXMgdGhhdCBpbnRlcnNlY3Qgd2l0
aCBsYXllclJlY3QuCi0gICAgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgbGF5
ZXJSZWN0LCBjb25zdCBSZWdpb24mIG9jY2x1ZGVkVGFyZ2V0U3BhY2UpOworICAgIHZvaWQgcHJl
cGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmIGxheWVyUmVjdCwgY29uc3QgQ0NPY2NsdXNpb25U
cmFja2VyKik7CiAKICAgICAvLyBTYW1lIGFzIGFib3ZlLCBidXQgdGhpcyB3aWxsIHRyeSB0byBw
YWludCBhZGRpdGlvbmFsIHN1cnJvdW5kaW5nIGNvbnRlbnQgaWYgaWRsZS4KLSAgICB2b2lkIHBy
ZXBhcmVUb1VwZGF0ZUlkbGUoY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0LCBjb25zdCBSZWdpb24m
IG9jY2x1ZGVkVGFyZ2V0U3BhY2UpOworICAgIHZvaWQgcHJlcGFyZVRvVXBkYXRlSWRsZShjb25z
dCBJbnRSZWN0JiBsYXllclJlY3QsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciopOwogCiAgICAg
Ly8gQWZ0ZXIgcHJlcGFyaW5nIGFuIHVwZGF0ZSwgcmV0dXJucyB0cnVlIGlmIG1vcmUgcHJlLXBh
aW50aW5nIGlzIG5lZWRlZC4KICAgICBib29sIG5lZWRzSWRsZVBhaW50KGNvbnN0IEludFJlY3Qm
IGxheWVyUmVjdCk7CkBAIC0xMTMsNyArMTExLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHRpbGVP
bmx5TmVlZHNQYXJ0aWFsVXBkYXRlKFVwZGF0YWJsZVRpbGUqKTsKICAgICBib29sIHRpbGVOZWVk
c0J1ZmZlcmVkVXBkYXRlKFVwZGF0YWJsZVRpbGUqKTsKIAotICAgIHZvaWQgcHJlcGFyZVRvVXBk
YXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQgYm90
dG9tLCBjb25zdCBSZWdpb24mIG9jY2x1ZGVkVGFyZ2V0U3BhY2UpOworICAgIHZvaWQgcHJlcGFy
ZVRvVXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBp
bnQgYm90dG9tLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqKTsKICAgICBJbnRSZWN0IGlkbGVQ
YWludFJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZUxheWVyUmVjdCk7CiAKICAgICBVcGRhdGFi
bGVUaWxlKiB0aWxlQXQoaW50LCBpbnQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1
bS5jcHAKaW5kZXggZTNlMTllMjU4ZmFhNjA0YmM3ZjViYWIyOTI3MjIzNmMyYzE2N2QxNi4uODBk
MjNkMWE4ZTE5MGYyNmRlYmI2YWZlYjQ0NWM5MDdmM2FmM2Q0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExh
eWVyQ2hyb21pdW0uY3BwCkBAIC03MCw3ICs3MCw3IEBAIGJvb2wgV2ViR0xMYXllckNocm9taXVt
OjpkcmF3c0NvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBMYXllckNocm9taXVtOjpkcmF3c0Nv
bnRlbnQoKSAmJiAhbV9jb250ZXh0TG9zdDsKIH0KIAotdm9pZCBXZWJHTExheWVyQ2hyb21pdW06
OnBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IFJlZ2lvbiYpCit2b2lkIFdlYkdMTGF5ZXJDaHJv
bWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiAvKiBv
Y2NsdXNpb24gKi8pCiB7CiAgICAgaWYgKCFkcmF3c0NvbnRlbnQoKSB8fCAhbV9uZWVkc0Rpc3Bs
YXkgfHwgIW1fdGV4dHVyZVVwZGF0ZWQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1
bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXll
ckNocm9taXVtLmgKaW5kZXggYWYxMzhmYTFlMGYzYzk4NzQxZGFlMGU5YWI0ZmM1MDczNWE3ZDA3
OS4uNjUwOWZiMzU4ZDk1ZTliMGRmMTcxYWMwYjFjZGZjNWQ1MzU0MTYzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9t
aXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2Vi
R0xMYXllckNocm9taXVtLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
VGV4dHVyZUlkKHVuc2lnbmVkIHRleHR1cmVJZCkgeyBtX3RleHR1cmVJZCA9IHRleHR1cmVJZDsg
fQogCiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0OwotICAgIHZpcnR1YWwg
dm9pZCBwYWludENvbnRlbnRzSWZEaXJ0eShjb25zdCBSZWdpb24mKTsKKyAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKik7CiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0M0Qq
LCBDQ1RleHR1cmVVcGRhdGVyJik7CiAgICAgdmlydHVhbCB2b2lkIHB1c2hQcm9wZXJ0aWVzVG8o
Q0NMYXllckltcGwqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5UmVjdChjb25z
dCBGbG9hdFJlY3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDM0YmNl
MTE4MTAwZmE1ZmEzOGQ5MzUyODIwZDU3MDhlOWZlZGRjYTIuLjA2NTkwMmNlNWEzMTMyM2RmZmU5
MWM4ZTVhZWNmMDMxYzc1OTUwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApA
QCAtNDk5LDE0ICs0OTksMTQgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnJlc2VydmVUZXh0dXJl
cygpCiB9CiAKIC8vIHN0YXRpYwotdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnBhaW50Q29udGVudHNJ
ZkRpcnR5KExheWVyQ2hyb21pdW0qIGxheWVyLCBQYWludFR5cGUgcGFpbnRUeXBlLCBjb25zdCBS
ZWdpb24mIG9jY2x1ZGVkU2NyZWVuU3BhY2UpCit2b2lkIENDTGF5ZXJUcmVlSG9zdDo6cGFpbnRD
b250ZW50c0lmRGlydHkoTGF5ZXJDaHJvbWl1bSogbGF5ZXIsIFBhaW50VHlwZSBwYWludFR5cGUs
IGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uKQogewogICAgIEFTU0VSVChsYXll
cik7CiAgICAgQVNTRVJUKFBhaW50VmlzaWJsZSA9PSBwYWludFR5cGUgfHwgUGFpbnRJZGxlID09
IHBhaW50VHlwZSk7CiAgICAgaWYgKFBhaW50VmlzaWJsZSA9PSBwYWludFR5cGUpCi0gICAgICAg
IGxheWVyLT5wYWludENvbnRlbnRzSWZEaXJ0eShvY2NsdWRlZFNjcmVlblNwYWNlKTsKKyAgICAg
ICAgbGF5ZXItPnBhaW50Q29udGVudHNJZkRpcnR5KG9jY2x1c2lvbik7CiAgICAgZWxzZQotICAg
ICAgICBsYXllci0+aWRsZVBhaW50Q29udGVudHNJZkRpcnR5KG9jY2x1ZGVkU2NyZWVuU3BhY2Up
OworICAgICAgICBsYXllci0+aWRsZVBhaW50Q29udGVudHNJZkRpcnR5KG9jY2x1c2lvbik7CiB9
CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpwYWludE1hc2tBbmRSZXBsaWNhRm9yUmVuZGVyU3Vy
ZmFjZShMYXllckNocm9taXVtKiByZW5kZXJTdXJmYWNlTGF5ZXIsIFBhaW50VHlwZSBwYWludFR5
cGUpCkBAIC01MTYsMjAgKzUxNiwxOSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6cGFpbnRNYXNr
QW5kUmVwbGljYUZvclJlbmRlclN1cmZhY2UoTGF5ZXJDaHJvbWl1bSogcmVuZGVyUwogICAgIC8v
IG1hc2sgYW5kIHJlcGxpY2Egc2hvdWxkIGJlIHBhaW50ZWQuCiAKICAgICAvLyBGSVhNRTogSWYg
dGhlIHN1cmZhY2UgaGFzIGEgcmVwbGljYSwgaXQgc2hvdWxkIGJlIHBhaW50ZWQgd2l0aCBvY2Ns
dXNpb24gdGhhdCBleGNsdWRlcyB0aGUgY3VycmVudCB0YXJnZXQgc3VyZmFjZSBzdWJ0cmVlLgot
ICAgIFJlZ2lvbiBub09jY2x1c2lvbjsKIAogICAgIGlmIChyZW5kZXJTdXJmYWNlTGF5ZXItPm1h
c2tMYXllcigpKSB7CiAgICAgICAgIHJlbmRlclN1cmZhY2VMYXllci0+bWFza0xheWVyKCktPnNl
dFZpc2libGVMYXllclJlY3QoSW50UmVjdChJbnRQb2ludCgpLCByZW5kZXJTdXJmYWNlTGF5ZXIt
PmNvbnRlbnRCb3VuZHMoKSkpOwotICAgICAgICBwYWludENvbnRlbnRzSWZEaXJ0eShyZW5kZXJT
dXJmYWNlTGF5ZXItPm1hc2tMYXllcigpLCBwYWludFR5cGUsIG5vT2NjbHVzaW9uKTsKKyAgICAg
ICAgcGFpbnRDb250ZW50c0lmRGlydHkocmVuZGVyU3VyZmFjZUxheWVyLT5tYXNrTGF5ZXIoKSwg
cGFpbnRUeXBlLCAwKTsKICAgICB9CiAKICAgICBMYXllckNocm9taXVtKiByZXBsaWNhTGF5ZXIg
PSByZW5kZXJTdXJmYWNlTGF5ZXItPnJlcGxpY2FMYXllcigpOwogICAgIGlmIChyZXBsaWNhTGF5
ZXIpIHsKLSAgICAgICAgcGFpbnRDb250ZW50c0lmRGlydHkocmVwbGljYUxheWVyLCBwYWludFR5
cGUsIG5vT2NjbHVzaW9uKTsKKyAgICAgICAgcGFpbnRDb250ZW50c0lmRGlydHkocmVwbGljYUxh
eWVyLCBwYWludFR5cGUsIDApOwogCiAgICAgICAgIGlmIChyZXBsaWNhTGF5ZXItPm1hc2tMYXll
cigpKSB7CiAgICAgICAgICAgICByZXBsaWNhTGF5ZXItPm1hc2tMYXllcigpLT5zZXRWaXNpYmxl
TGF5ZXJSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgcmVwbGljYUxheWVyLT5tYXNrTGF5ZXIoKS0+
Y29udGVudEJvdW5kcygpKSk7Ci0gICAgICAgICAgICBwYWludENvbnRlbnRzSWZEaXJ0eShyZXBs
aWNhTGF5ZXItPm1hc2tMYXllcigpLCBwYWludFR5cGUsIG5vT2NjbHVzaW9uKTsKKyAgICAgICAg
ICAgIHBhaW50Q29udGVudHNJZkRpcnR5KHJlcGxpY2FMYXllci0+bWFza0xheWVyKCksIHBhaW50
VHlwZSwgMCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC01NTMsNyArNTUyLDcgQEAgdm9pZCBD
Q0xheWVyVHJlZUhvc3Q6OnBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBMYXllckxpc3QmIHJlbmRl
clN1cmZhY2VMYXllckxpc3QKICAgICAgICAgICAgIEFTU0VSVCghaXQtPmJvdW5kcygpLmlzRW1w
dHkoKSk7CiAKICAgICAgICAgICAgIG9jY2x1c2lvblRyYWNrZXIuZW50ZXJUYXJnZXRSZW5kZXJT
dXJmYWNlKGl0LT50YXJnZXRSZW5kZXJTdXJmYWNlKCkpOwotICAgICAgICAgICAgcGFpbnRDb250
ZW50c0lmRGlydHkoKml0LCBwYWludFR5cGUsIG9jY2x1c2lvblRyYWNrZXIuY3VycmVudE9jY2x1
c2lvbkluU2NyZWVuU3BhY2UoKSk7CisgICAgICAgICAgICBwYWludENvbnRlbnRzSWZEaXJ0eSgq
aXQsIHBhaW50VHlwZSwgJm9jY2x1c2lvblRyYWNrZXIpOwogICAgICAgICAgICAgb2NjbHVzaW9u
VHJhY2tlci5tYXJrT2NjbHVkZWRCZWhpbmRMYXllcigqaXQpOwogICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgIG9jY2x1c2lvblRyYWNrZXIubGVhdmVUb1RhcmdldFJlbmRlclN1cmZhY2UoaXQu
dGFyZ2V0UmVuZGVyU3VyZmFjZUxheWVyKCktPnJlbmRlclN1cmZhY2UoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5oCmluZGV4IGQ1MjYyMjYyZDRmMmNjYTU0NDk2Y2ZiYmE3YTU1MGRiOTMy
YmE0YWUuLjg5ZjFiZTMwN2VkZmM5MTZkNjA5ZTA4NWEzNTUyMjY3NzYyM2VjODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC0yMTYsNyArMjE2LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGluaXRpYWxpemVMYXllclJlbmRlcmVyKCk7CiAKICAgICBlbnVtIFBhaW50VHlwZSB7IFBh
aW50VmlzaWJsZSwgUGFpbnRJZGxlIH07Ci0gICAgc3RhdGljIHZvaWQgcGFpbnRDb250ZW50c0lm
RGlydHkoTGF5ZXJDaHJvbWl1bSosIFBhaW50VHlwZSwgY29uc3QgUmVnaW9uJiBvY2NsdWRlZFNj
cmVlblNwYWNlKTsKKyAgICBzdGF0aWMgdm9pZCBwYWludENvbnRlbnRzSWZEaXJ0eShMYXllckNo
cm9taXVtKiwgUGFpbnRUeXBlLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqKTsKICAgICB2b2lk
IHBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBMYXllckxpc3QmLCBQYWludFR5cGUpOwogICAgIHZv
aWQgcGFpbnRNYXNrQW5kUmVwbGljYUZvclJlbmRlclN1cmZhY2UoTGF5ZXJDaHJvbWl1bSosIFBh
aW50VHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NM
YXllclRyZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4IGZlNzg4ZmJhZWVlNzdlNzkzYTAwMzhlYzdhZjI5MjY1
NWZmYzc0NmIuLjcwNmI0ZDAwMjQwNjdmOWMyZDc4OTRlODgwNGQyMjVlMWM0OThiMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0
LmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRlICJMYXllckNocm9t
aXVtLmgiCi0jaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hbmFnZXIuaCIK
ICNpbmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCkBAIC0xMjcz
LDE1ICsxMjcyLDE1IEBAIHB1YmxpYzoKICAgICBpbnQgdXBkYXRlQ291bnQoKSB7IHJldHVybiBt
X3VwZGF0ZUNvdW50OyB9CiAgICAgdm9pZCByZXNldFVwZGF0ZUNvdW50KCkgeyBtX3VwZGF0ZUNv
dW50ID0gMDsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0
IFJlZ2lvbiYgb2NjbHVkZWRTY3JlZW5TcGFjZSkKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250
ZW50c0lmRGlydHkoY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24pCiAgICAgewot
ICAgICAgICBDb250ZW50TGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkob2NjbHVk
ZWRTY3JlZW5TcGFjZSk7CisgICAgICAgIENvbnRlbnRMYXllckNocm9taXVtOjpwYWludENvbnRl
bnRzSWZEaXJ0eShvY2NsdXNpb24pOwogICAgICAgICBtX3BhaW50Q29udGVudHNDb3VudCsrOwog
ICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBpZGxlUGFpbnRDb250ZW50c0lmRGlydHkoY29uc3Qg
UmVnaW9uJiBvY2NsdWRlZCkKKyAgICB2aXJ0dWFsIHZvaWQgaWRsZVBhaW50Q29udGVudHNJZkRp
cnR5KGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uKQogICAgIHsKLSAgICAgICAg
Q29udGVudExheWVyQ2hyb21pdW06OmlkbGVQYWludENvbnRlbnRzSWZEaXJ0eShvY2NsdWRlZCk7
CisgICAgICAgIENvbnRlbnRMYXllckNocm9taXVtOjppZGxlUGFpbnRDb250ZW50c0lmRGlydHko
b2NjbHVzaW9uKTsKICAgICAgICAgbV9pZGxlUGFpbnRDb250ZW50c0NvdW50Kys7CiAgICAgfQog
CkBAIC0xNjMzLDkgKzE2MzIsOSBAQCBjbGFzcyBUZXN0TGF5ZXJDaHJvbWl1bSA6IHB1YmxpYyBM
YXllckNocm9taXVtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXN0TGF5ZXJD
aHJvbWl1bT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFRlc3RMYXllckNocm9taXVt
KCkpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgUmVn
aW9uJiBvY2NsdWRlZFNjcmVlblNwYWNlKQorICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRz
SWZEaXJ0eShjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1c2lvbikKICAgICB7Ci0gICAg
ICAgIG1fb2NjbHVkZWRTY3JlZW5TcGFjZSA9IG9jY2x1ZGVkU2NyZWVuU3BhY2U7CisgICAgICAg
IG1fb2NjbHVkZWRTY3JlZW5TcGFjZSA9IG9jY2x1c2lvbiA/IG9jY2x1c2lvbi0+Y3VycmVudE9j
Y2x1c2lvbkluU2NyZWVuU3BhY2UoKSA6IFJlZ2lvbigpOwogICAgIH0KIAogICAgIHZpcnR1YWwg
Ym9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJDaHJvbWl1bVRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQ2hyb21pdW1UZXN0
LmNwcAppbmRleCA2YTNkYjAyYTdiNWJkYWFmY2FlZGMxYWQ2YmU4M2MyMGM3NDcwY2E1Li4wM2Fk
YjNjODg4YWJmZjg0MGZhMWU2MDk5N2Y2ZjAwNjUxNGZkYWU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckNocm9taXVtVGVzdC5j
cHAKQEAgLTE1Niw4ICsxNTYsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgY2FudmFzLT5zZXRO
ZWVkc0Rpc3BsYXkoKTsKICAgICAgICAgRVhQRUNUX1RSVUUoY2FudmFzLT5uZWVkc0Rpc3BsYXko
KSk7Ci0gICAgICAgIFJlZ2lvbiBvY2NsdWRlZFNjcmVlblNwYWNlOwotICAgICAgICBjYW52YXMt
PnBhaW50Q29udGVudHNJZkRpcnR5KG9jY2x1ZGVkU2NyZWVuU3BhY2UpOworICAgICAgICBjYW52
YXMtPnBhaW50Q29udGVudHNJZkRpcnR5KDApOwogICAgICAgICBFWFBFQ1RfRkFMU0UoY2FudmFz
LT5uZWVkc0Rpc3BsYXkoKSk7CiAgICAgICAgIHsKICAgICAgICAgICAgIERlYnVnU2NvcGVkU2V0
SW1wbFRocmVhZCBzY29wZWRJbXBsVGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggMjUyMzIzMGUw
MDVjYjkxZTE1NGQ5MTljYzdlOWM5NjVmMGY5NDEwMy4uMDdjZWFhZTg4ZDc1Nzc3YjYzNjNjN2E3
NGM5YmEwYzg5MzRiODBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC00OCw2ICs0OCwyNSBAQCB1c2lu
ZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgewogCitjbGFzcyBUZXN0Q0NPY2NsdXNpb25U
cmFja2VyIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlciB7CitwdWJsaWM6CisgICAgVGVzdEND
T2NjbHVzaW9uVHJhY2tlcigpCisgICAgICAgIDogQ0NPY2NsdXNpb25UcmFja2VyKEludFJlY3Qo
MCwgMCwgMTAwMCwgMTAwMCkpCisgICAgICAgICwgbV9zY2lzc29yUmVjdEluU2NyZWVuKEludFJl
Y3QoMCwgMCwgMTAwMCwgMTAwMCkpCisgICAgeworICAgICAgICAvLyBQcmV0ZW5kIHdlIGhhdmUg
dmlzaXRlZCBhIHJlbmRlciBzdXJmYWNlLgorICAgICAgICBtX3N0YWNrLmFwcGVuZChTdGFja09i
amVjdCgpKTsKKyAgICB9CisKKyAgICB2b2lkIHNldE9jY2x1c2lvbihjb25zdCBSZWdpb24mIG9j
Y2x1c2lvbikgeyBtX3N0YWNrLmxhc3QoKS5vY2NsdXNpb25JblNjcmVlbiA9IG9jY2x1c2lvbjsg
fQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBJbnRSZWN0IGxheWVyU2Npc3NvclJlY3RJblRh
cmdldFN1cmZhY2UoY29uc3QgTGF5ZXJDaHJvbWl1bSogbGF5ZXIpIGNvbnN0IHsgcmV0dXJuIG1f
c2Npc3NvclJlY3RJblNjcmVlbjsgfQorCitwcml2YXRlOgorICAgIEludFJlY3QgbV9zY2lzc29y
UmVjdEluU2NyZWVuOworfTsKKwogY2xhc3MgRmFrZVRleHR1cmVBbGxvY2F0b3IgOiBwdWJsaWMg
VGV4dHVyZUFsbG9jYXRvciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBjcmVhdGVU
ZXh0dXJlKGNvbnN0IEludFNpemUmLCBHQzNEZW51bSkgeyByZXR1cm4gMDsgfQpAQCAtMTUwLDE0
ICsxNjksMTQgQEAgcHVibGljOgogICAgICAgICBUaWxlZExheWVyQ2hyb21pdW06OmludmFsaWRh
dGVSZWN0KHJlY3QpOwogICAgIH0KIAotICAgIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IElu
dFJlY3QmIHJlY3QsIGNvbnN0IFJlZ2lvbiYgb2NjbHVkZWQpCisgICAgdm9pZCBwcmVwYXJlVG9V
cGRhdGUoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2Ns
dXNpb24pCiAgICAgewotICAgICAgICBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0
ZShyZWN0LCBvY2NsdWRlZCk7CisgICAgICAgIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRv
VXBkYXRlKHJlY3QsIG9jY2x1c2lvbik7CiAgICAgfQogCi0gICAgdm9pZCBwcmVwYXJlVG9VcGRh
dGVJZGxlKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFJlZ2lvbiYgb2NjbHVkZWQpCisgICAg
dm9pZCBwcmVwYXJlVG9VcGRhdGVJZGxlKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IENDT2Nj
bHVzaW9uVHJhY2tlciogb2NjbHVzaW9uKQogICAgIHsKLSAgICAgICAgVGlsZWRMYXllckNocm9t
aXVtOjpwcmVwYXJlVG9VcGRhdGVJZGxlKHJlY3QsIG9jY2x1ZGVkKTsKKyAgICAgICAgVGlsZWRM
YXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVJZGxlKHJlY3QsIG9jY2x1c2lvbik7CiAgICAg
fQogCiAgICAgYm9vbCBuZWVkc0lkbGVQYWludChjb25zdCBJbnRSZWN0JiByZWN0KQpAQCAtMTgy
LDkgKzIwMSw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVGV4dHVyZU1hbmFnZXIqIHRleHR1
cmVNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0dXJlTWFuYWdlcjsgfQogCi0gICAgdmly
dHVhbCB2b2lkIHBhaW50Q29udGVudHNJZkRpcnR5KGNvbnN0IFJlZ2lvbiYgb2NjbHVkZWRTY3Jl
ZW5TcGFjZSkKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoY29uc3QgQ0NP
Y2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24pCiAgICAgewotICAgICAgICBwcmVwYXJlVG9VcGRh
dGUodmlzaWJsZUxheWVyUmVjdCgpLCBvY2NsdWRlZFNjcmVlblNwYWNlKTsKKyAgICAgICAgcHJl
cGFyZVRvVXBkYXRlKHZpc2libGVMYXllclJlY3QoKSwgb2NjbHVzaW9uKTsKICAgICB9CiAKIHBy
aXZhdGU6CkBAIC0yNDAsNyArMjU5LDYgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBw
dXNoRGlydHlUaWxlcykKICAgICBSZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIg
PSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSh0ZXh0dXJlTWFuYWdlci5nZXQo
KSkpOwogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgIE93blB0
cjxGYWtlQ0NUaWxlZExheWVySW1wbD4gbGF5ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxl
ZExheWVySW1wbCgwKSkpOwotICAgIFJlZ2lvbiBub09jY2x1c2lvbjsKIAogICAgIEZha2VUZXh0
dXJlQWxsb2NhdG9yIHRleHR1cmVBbGxvY2F0b3I7CiAgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRh
dGVyKCZ0ZXh0dXJlQWxsb2NhdG9yKTsKQEAgLTI0OCw3ICsyNjYsNyBAQCBURVNUKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIHB1c2hEaXJ0eVRpbGVzKQogICAgIC8vIFRoZSB0aWxlIHNpemUgaXMg
MTAweDEwMCwgc28gdGhpcyBpbnZhbGlkYXRlcyBhbmQgdGhlbiBwYWludHMgdHdvIHRpbGVzLgog
ICAgIGxheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgxMDAsIDIwMCkpOwogICAgIGxheWVyLT5pbnZh
bGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVU
b1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2NsdXNpb24pOworICAgIGxheWVy
LT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDApOwogICAgIGxheWVy
LT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVyLT5wdXNo
UHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAKQEAgLTI2MSw3ICsyNzksNyBAQCBURVNU
KFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hEaXJ0eVRpbGVzKQogICAgIC8vIEludmFsaWRh
dGVzIGJvdGggdGlsZXMuLi4KICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAw
LCAxMDAsIDIwMCkpOwogICAgIC8vIC4uLi5idXQgdGhlbiBvbmx5IHVwZGF0ZSBvbmUgb2YgdGhl
bS4KLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBu
b09jY2x1c2lvbik7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEw
MCwgMTAwKSwgMCk7CiAgICAgbGF5ZXItPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBk
YXRlcik7CiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKIApA
QCAtMjc2LDE1ICsyOTQsMTcgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoT2Nj
bHVkZWREaXJ0eVRpbGVzKQogICAgIFJlZlB0cjxGYWtlVGlsZWRMYXllckNocm9taXVtPiBsYXll
ciA9IGFkb3B0UmVmKG5ldyBGYWtlVGlsZWRMYXllckNocm9taXVtKHRleHR1cmVNYW5hZ2VyLmdl
dCgpKSk7CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAgT3du
UHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRvcHRQdHIobmV3IEZha2VDQ1Rp
bGVkTGF5ZXJJbXBsKDApKSk7Ci0gICAgUmVnaW9uIG5vT2NjbHVzaW9uOworICAgIFRlc3RDQ09j
Y2x1c2lvblRyYWNrZXIgb2NjbHVkZWQ7CiAKICAgICBGYWtlVGV4dHVyZUFsbG9jYXRvciB0ZXh0
dXJlQWxsb2NhdG9yOwogICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcigmdGV4dHVyZUFsbG9j
YXRvcik7CiAKICAgICAvLyBUaGUgdGlsZSBzaXplIGlzIDEwMHgxMDAsIHNvIHRoaXMgaW52YWxp
ZGF0ZXMgYW5kIHRoZW4gcGFpbnRzIHR3byB0aWxlcy4KICAgICBsYXllci0+c2V0Qm91bmRzKElu
dFNpemUoMTAwLCAyMDApKTsKKyAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShUcmFuc2Zvcm1h
dGlvbk1hdHJpeCgxLCAwLCAwLCAxLCBsYXllci0+Ym91bmRzKCkud2lkdGgoKSAvIDIuMCwgbGF5
ZXItPmJvdW5kcygpLmhlaWdodCgpIC8gMi4wKSk7CisgICAgbGF5ZXItPnNldFZpc2libGVMYXll
clJlY3QoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVj
dChJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJ
bnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2NsdXNpb24pOworICAgIGxheWVyLT5wcmVwYXJl
VG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksICZvY2NsdWRlZCk7CiAgICAgbGF5ZXIt
PnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7CiAgICAgbGF5ZXItPnB1c2hQ
cm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKIApAQCAtMjk3LDggKzMxNyw4IEBAIFRFU1Qo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaE9jY2x1ZGVkRGlydHlUaWxlcykKICAgICAvLyBJ
bnZhbGlkYXRlcyBwYXJ0IG9mIHRoZSB0b3AgdGlsZS4uLgogICAgIGxheWVyLT5pbnZhbGlkYXRl
UmVjdChJbnRSZWN0KDAsIDAsIDUwLCA1MCkpOwogICAgIC8vIC4uLi5idXQgdGhlIGFyZWEgaXMg
b2NjbHVkZWQuCi0gICAgUmVnaW9uIG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDUwLCA1MCkpOwot
ICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9jY2x1
c2lvbik7CisgICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMCwgMCwgNTAsIDUwKSk7
CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgJm9j
Y2x1ZGVkKTsKICAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVy
KTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCkBAIC0z
MjEsMTMgKzM0MSwxMiBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hJZGxlUGFp
bnRUaWxlcykKICAgICBJbnRTaXplIGNvbnRlbnRCb3VuZHMoNTAwLCA1MDApOwogICAgIEludFJl
Y3QgY29udGVudFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgY29udGVudEJvdW5kcyk7CiAgICAgSW50
UmVjdCB2aXNpYmxlUmVjdCgyMDAsIDIwMCwgMTAwLCAxMDApOwotICAgIFJlZ2lvbiBub09jY2x1
c2lvbjsKIAogICAgIC8vIFRoaXMgaW52YWxpZGF0ZXMgMjUgdGlsZXMgYW5kIHRoZW4gcGFpbnRz
IG9uZSB2aXNpYmxlIHRpbGUuCiAgICAgbGF5ZXItPnNldEJvdW5kcyhjb250ZW50Qm91bmRzKTsK
ICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdCh2aXNpYmxlUmVjdCk7CiAgICAgbGF5ZXIt
PmludmFsaWRhdGVSZWN0KGNvbnRlbnRSZWN0KTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRl
KHZpc2libGVSZWN0LCBub09jY2x1c2lvbik7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZSh2
aXNpYmxlUmVjdCwgMCk7CiAKICAgICAvLyBXZSBzaG91bGQgbmVlZCBpZGxlLXBhaW50aW5nIGZv
ciAzeDMgdGlsZXMgaW4gdGhlIGNlbnRlci4KICAgICBFWFBFQ1RfVFJVRShsYXllci0+bmVlZHNJ
ZGxlUGFpbnQodmlzaWJsZVJlY3QpKTsKQEAgLTM0Miw5ICszNjEsOSBAQCBURVNUKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIHB1c2hJZGxlUGFpbnRUaWxlcykKIAogICAgIC8vIEZvciB0aGUgbmV4
dCBmb3VyIHVwZGF0ZXMsIHdlIHNob3VsZCBkZXRlY3Qgd2Ugc3RpbGwgbmVlZCBpZGxlIHBhaW50
aW5nLgogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7Ci0gICAgICAgIGxheWVyLT5w
cmVwYXJlVG9VcGRhdGUodmlzaWJsZVJlY3QsIG5vT2NjbHVzaW9uKTsKKyAgICAgICAgbGF5ZXIt
PnByZXBhcmVUb1VwZGF0ZSh2aXNpYmxlUmVjdCwgMCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKGxh
eWVyLT5uZWVkc0lkbGVQYWludCh2aXNpYmxlUmVjdCkpOwotICAgICAgICBsYXllci0+cHJlcGFy
ZVRvVXBkYXRlSWRsZSh2aXNpYmxlUmVjdCwgbm9PY2NsdXNpb24pOworICAgICAgICBsYXllci0+
cHJlcGFyZVRvVXBkYXRlSWRsZSh2aXNpYmxlUmVjdCwgMCk7CiAgICAgICAgIGxheWVyLT51cGRh
dGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgICAgICBsYXllci0+cHVzaFBy
b3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogICAgICAgICB0ZXh0dXJlTWFuYWdlci0+dW5w
cm90ZWN0QWxsVGV4dHVyZXMoKTsKQEAgLTM3NCw3ICszOTMsNiBAQCBURVNUKFRpbGVkTGF5ZXJD
aHJvbWl1bVRlc3QsIHB1c2hUaWxlc01hcmtlZERpcnR5RHVyaW5nUGFpbnQpCiAKICAgICBGYWtl
VGV4dHVyZUFsbG9jYXRvciB0ZXh0dXJlQWxsb2NhdG9yOwogICAgIENDVGV4dHVyZVVwZGF0ZXIg
dXBkYXRlcigmdGV4dHVyZUFsbG9jYXRvcik7Ci0gICAgUmVnaW9uIG5vT2NjbHVzaW9uOwogCiAg
ICAgLy8gVGhlIHRpbGUgc2l6ZSBpcyAxMDB4MTAwLCBzbyB0aGlzIGludmFsaWRhdGVzIGFuZCB0
aGVuIHBhaW50cyB0d28gdGlsZXMuCiAgICAgLy8gSG93ZXZlciwgZHVyaW5nIHRoZSBwYWludCwg
d2UgaW52YWxpZGF0ZSBvbmUgb2YgdGhlIHRpbGVzLiBUaGlzIHNob3VsZApAQCAtMzgyLDcgKzQw
MCw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzTWFya2VkRGlydHlE
dXJpbmdQYWludCkKICAgICBsYXllci0+c2V0Qm91bmRzKEludFNpemUoMTAwLCAyMDApKTsKICAg
ICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCkpOwogICAgIGxh
eWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRSZWN0VG9JbnZhbGlkYXRlKEludFJl
Y3QoMCwgNTAsIDEwMCwgNTApLCBsYXllci5nZXQoKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1Vw
ZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2NsdXNpb24pOworICAgIGxheWVyLT5w
cmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDApOwogICAgIGxheWVyLT51
cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVyLT5wdXNoUHJv
cGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAKQEAgLTQwMiwxOCArNDIwLDE3IEBAIFRFU1Qo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzTGF5ZXJNYXJrZWREaXJ0eUR1cmluZ1Bh
aW50T25OZXh0TGF5ZXIpCiAKICAgICBGYWtlVGV4dHVyZUFsbG9jYXRvciB0ZXh0dXJlQWxsb2Nh
dG9yOwogICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBkYXRlcigmdGV4dHVyZUFsbG9jYXRvcik7Ci0g
ICAgUmVnaW9uIG5vT2NjbHVzaW9uOwogCiAgICAgbGF5ZXIxLT5zZXRCb3VuZHMoSW50U2l6ZSgx
MDAsIDIwMCkpOwogICAgIGxheWVyMS0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCAxMDAs
IDIwMCkpOwogICAgIGxheWVyMi0+c2V0Qm91bmRzKEludFNpemUoMTAwLCAyMDApKTsKICAgICBs
YXllcjItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgMTAwLCAyMDApKTsKIAotICAgIGxh
eWVyMS0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBub09jY2x1c2lv
bik7CisgICAgbGF5ZXIxLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCks
IDApOwogCiAgICAgLy8gSW52YWxpZGF0ZSBhIHRpbGUgb24gbGF5ZXIxCiAgICAgbGF5ZXIyLT5m
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRSZWN0VG9JbnZhbGlkYXRlKEludFJlY3QoMCwg
NTAsIDEwMCwgNTApLCBsYXllcjEuZ2V0KCkpOwotICAgIGxheWVyMi0+cHJlcGFyZVRvVXBkYXRl
KEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBub09jY2x1c2lvbik7CisgICAgbGF5ZXIyLT5wcmVw
YXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDApOwogCiAgICAgbGF5ZXIxLT51
cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVyMi0+dXBkYXRl
Q29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKQEAgLTQzOSw3ICs0NTYsNiBAQCBURVNU
KFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hUaWxlc0xheWVyTWFya2VkRGlydHlEdXJpbmdQ
YWludE9uUHJldmlvdXNMYXllcgogCiAgICAgRmFrZVRleHR1cmVBbGxvY2F0b3IgdGV4dHVyZUFs
bG9jYXRvcjsKICAgICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXIoJnRleHR1cmVBbGxvY2F0b3Ip
OwotICAgIFJlZ2lvbiBub09jY2x1c2lvbjsKIAogICAgIGxheWVyMS0+c2V0Qm91bmRzKEludFNp
emUoMTAwLCAyMDApKTsKICAgICBsYXllcjEtPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwg
MTAwLCAyMDApKTsKQEAgLTQ0OCw5ICs0NjQsOSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRl
c3QsIHB1c2hUaWxlc0xheWVyTWFya2VkRGlydHlEdXJpbmdQYWludE9uUHJldmlvdXNMYXllcgog
CiAgICAgLy8gSW52YWxpZGF0ZSBhIHRpbGUgb24gbGF5ZXIyCiAgICAgbGF5ZXIxLT5mYWtlTGF5
ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRSZWN0VG9JbnZhbGlkYXRlKEludFJlY3QoMCwgNTAsIDEw
MCwgNTApLCBsYXllcjIuZ2V0KCkpOwotICAgIGxheWVyMS0+cHJlcGFyZVRvVXBkYXRlKEludFJl
Y3QoMCwgMCwgMTAwLCAyMDApLCBub09jY2x1c2lvbik7CisgICAgbGF5ZXIxLT5wcmVwYXJlVG9V
cGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDApOwogCi0gICAgbGF5ZXIyLT5wcmVwYXJl
VG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIG5vT2NjbHVzaW9uKTsKKyAgICBsYXll
cjItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCk7CiAKICAgICBs
YXllcjEtPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7CiAgICAgbGF5ZXIy
LT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwpAQCAtNDcxLDcgKzQ4Nyw2
IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaWRsZVBhaW50T3V0T2ZNZW1vcnkpCiAg
ICAgSW50U2l6ZSBjb250ZW50Qm91bmRzKDMwMCwgMzAwKTsKICAgICBJbnRSZWN0IGNvbnRlbnRS
ZWN0KEludFBvaW50Ojp6ZXJvKCksIGNvbnRlbnRCb3VuZHMpOwogICAgIEludFJlY3QgdmlzaWJs
ZVJlY3QoMTAwLCAxMDAsIDEwMCwgMTAwKTsKLSAgICBSZWdpb24gbm9PY2NsdXNpb247CiAKICAg
ICAvLyBXZSBoYXZlIGVub3VnaCBtZW1vcnkgZm9yIG9ubHkgdGhlIHZpc2libGUgcmVjdCwgc28g
d2Ugd2lsbCBydW4gb3V0IG9mIG1lbW9yeSBpbiBmaXJzdCBpZGxlIHBhaW50LgogICAgIGludCBt
ZW1vcnlMaW1pdCA9IDQgKiAxMDAgKiAxMDA7IC8vIDIgdGlsZXMsIDQgYnl0ZXMgcGVyIHBpeGVs
LgpAQCAtNDg4LDcgKzUwMyw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaWRsZVBh
aW50T3V0T2ZNZW1vcnkpCiAgICAgbGF5ZXItPnNldEJvdW5kcyhjb250ZW50Qm91bmRzKTsKICAg
ICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdCh2aXNpYmxlUmVjdCk7CiAgICAgbGF5ZXItPmlu
dmFsaWRhdGVSZWN0KGNvbnRlbnRSZWN0KTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKHZp
c2libGVSZWN0LCBub09jY2x1c2lvbik7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZSh2aXNp
YmxlUmVjdCwgMCk7CiAKICAgICAvLyBXZSBzaG91bGQgbmVlZCBpZGxlLXBhaW50aW5nIGZvciAz
eDMgdGlsZXMgc3Vyb3VuZGluZyB2aXNpYmxlIHRpbGUuCiAgICAgRVhQRUNUX1RSVUUobGF5ZXIt
Pm5lZWRzSWRsZVBhaW50KHZpc2libGVSZWN0KSk7CkBAIC01MDAsOCArNTE1LDggQEAgVEVTVChU
aWxlZExheWVyQ2hyb21pdW1UZXN0LCBpZGxlUGFpbnRPdXRPZk1lbW9yeSkKICAgICBFWFBFQ1Rf
VFJVRShsYXllckltcGwtPmhhc1RpbGVBdCgxLCAxKSk7CiAKICAgICB0ZXh0dXJlTWFuYWdlci0+
dW5wcm90ZWN0QWxsVGV4dHVyZXMoKTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKHZpc2li
bGVSZWN0LCBub09jY2x1c2lvbik7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZUlkbGUodmlz
aWJsZVJlY3QsIG5vT2NjbHVzaW9uKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKHZpc2li
bGVSZWN0LCAwKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlSWRsZSh2aXNpYmxlUmVjdCwg
MCk7CiAKICAgICAvLyBXZSBzaG91bGRuJ3Qgc2lnbmFsIHdlIG5lZWQgYW5vdGhlciBpZGxlIHBh
aW50IGFmdGVyIHdlIHJ1biBvdXQgb2YgbWVtb3J5LgogICAgIEVYUEVDVF9GQUxTRShsYXllci0+
bmVlZHNJZGxlUGFpbnQodmlzaWJsZVJlY3QpKTsKQEAgLTUxNiw3ICs1MzEsNiBAQCBURVNUKFRp
bGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGludmFsaWRhdGVGcm9tUHJlcGFyZSkKICAgICBSZWZQdHI8
RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5
ZXJDaHJvbWl1bSh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOwogICAgIERlYnVnU2NvcGVkU2V0SW1w
bFRocmVhZCBpbXBsVGhyZWFkOwogICAgIE93blB0cjxGYWtlQ0NUaWxlZExheWVySW1wbD4gbGF5
ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxlZExheWVySW1wbCgwKSkpOwotICAgIFJlZ2lv
biBub09jY2x1c2lvbjsKIAogICAgIEZha2VUZXh0dXJlQWxsb2NhdG9yIHRleHR1cmVBbGxvY2F0
b3I7CiAgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyKCZ0ZXh0dXJlQWxsb2NhdG9yKTsKQEAg
LTUyNCw3ICs1MzgsNyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGludmFsaWRhdGVG
cm9tUHJlcGFyZSkKICAgICAvLyBUaGUgdGlsZSBzaXplIGlzIDEwMHgxMDAsIHNvIHRoaXMgaW52
YWxpZGF0ZXMgYW5kIHRoZW4gcGFpbnRzIHR3byB0aWxlcy4KICAgICBsYXllci0+c2V0Qm91bmRz
KEludFNpemUoMTAwLCAyMDApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgw
LCAwLCAxMDAsIDIwMCkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAw
LCAxMDAsIDIwMCksIG5vT2NjbHVzaW9uKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKElu
dFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwKTsKICAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJl
c291cmNlcygwLCB1cGRhdGVyKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllcklt
cGwuZ2V0KCkpOwogCkBAIC01MzcsMTggKzU1MSwxOCBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIGludmFsaWRhdGVGcm9tUHJlcGFyZSkKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlQ291bnQoKTsKICAgICAvLyBJbnZva2UgcHJlcGFyZVRv
VXBkYXRlIGFnYWluLiBBcyB0aGUgbGF5ZXIgaXMgdmFsaWQgcHJlcGFyZVRvVXBkYXRlIHNob3Vs
ZG4ndCBiZSBpbnZva2VkIG9uCiAgICAgLy8gdGhlIExheWVyVGV4dHVyZVVwZGF0ZXIuCi0gICAg
bGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2NsdXNp
b24pOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCks
IDApOwogICAgIEVYUEVDVF9FUSgwLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+
cHJlcGFyZUNvdW50KCkpOwogCiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwg
MCwgNTAsIDUwKSk7CiAgICAgLy8gc2V0UmVjdFRvSW52YWxpZGF0ZSB0cmlnZ2VycyBpbnZhbGlk
YXRlUmVjdCgpIGJlaW5nIGludm9rZWQgZnJvbSBwcmVwYXJlVG9VcGRhdGUuCiAgICAgbGF5ZXIt
PmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldFJlY3RUb0ludmFsaWRhdGUoSW50UmVjdCgy
NSwgMjUsIDUwLCA1MCksIGxheWVyLmdldCgpKTsKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlQ291bnQoKTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBk
YXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBub09jY2x1c2lvbik7CisgICAgbGF5ZXItPnBy
ZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCk7CiAgICAgRVhQRUNUX0VR
KDEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlQ291bnQoKSk7CiAg
ICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZUNvdW50KCk7
CiAgICAgLy8gVGhlIGxheWVyIHNob3VsZCBzdGlsbCBiZSBpbnZhbGlkIGFzIHByZXBhcmVUb1Vw
ZGF0ZSBpbnZva2VkIGludmFsaWRhdGUuCi0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRS
ZWN0KDAsIDAsIDEwMCwgMjAwKSwgbm9PY2NsdXNpb24pOworICAgIGxheWVyLT5wcmVwYXJlVG9V
cGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDApOwogICAgIEVYUEVDVF9FUSgxLCBsYXll
ci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZUNvdW50KCkpOwogfQogCkBAIC01
NTksNyArNTczLDYgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2ZXJpZnlVcGRhdGVS
ZWN0V2hlbkNvbnRlbnRCb3VuZHNBcmVTY2FsZWQpCiAKICAgICBPd25QdHI8VGV4dHVyZU1hbmFn
ZXI+IHRleHR1cmVNYW5hZ2VyID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZSg0KjEwMjQqMTAyNCwg
MioxMDI0KjEwMjQsIDEwMjQpOwogICAgIFJlZlB0cjxGYWtlVGlsZWRMYXllcldpdGhTY2FsZWRC
b3VuZHM+IGxheWVyID0gYWRvcHRSZWYobmV3IEZha2VUaWxlZExheWVyV2l0aFNjYWxlZEJvdW5k
cyh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOwotICAgIFJlZ2lvbiBub09jY2x1c2lvbjsKIAogICAg
IEZha2VUZXh0dXJlQWxsb2NhdG9yIHRleHR1cmVBbGxvY2F0b3I7CiAgICAgQ0NUZXh0dXJlVXBk
YXRlciB1cGRhdGVyKCZ0ZXh0dXJlQWxsb2NhdG9yKTsKQEAgLTU3NCwyMCArNTg3LDIwIEBAIFRF
U1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmVyaWZ5VXBkYXRlUmVjdFdoZW5Db250ZW50Qm91
bmRzQXJlU2NhbGVkKQogICAgIC8vIE9uIGZpcnN0IHVwZGF0ZSwgdGhlIHVwZGF0ZVJlY3QgaW5j
bHVkZXMgYWxsIHRpbGVzLCBldmVuIGJleW9uZCB0aGUgYm91bmRhcmllcyBvZiB0aGUgbGF5ZXIu
CiAgICAgLy8gSG93ZXZlciwgaXQgc2hvdWxkIHN0aWxsIGJlIGluIGxheWVyIHNwYWNlLCBub3Qg
Y29udGVudCBzcGFjZS4KICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoY29udGVudEJvdW5kcyk7
Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCBub09jY2x1c2lvbik7
CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAwKTsKICAgICBsYXll
ci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKICAgICBFWFBFQ1RfRkxP
QVRfUkVDVF9FUShGbG9hdFJlY3QoMCwgMCwgMzAwLCAzMDAgKiAwLjgpLCBsYXllci0+dXBkYXRl
UmVjdCgpKTsKIAogICAgIC8vIEFmdGVyIHRoZSB0aWxlcyBhcmUgdXBkYXRlZCBvbmNlLCBhbm90
aGVyIGludmFsaWRhdGUgb25seSBuZWVkcyB0byB1cGRhdGUgdGhlIGJvdW5kcyBvZiB0aGUgbGF5
ZXIuCiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KGNvbnRlbnRCb3VuZHMpOwotICAgIGxheWVy
LT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgbm9PY2NsdXNpb24pOworICAgIGxheWVy
LT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgMCk7CiAgICAgbGF5ZXItPnVwZGF0ZUNv
bXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRlcik7CiAgICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEo
RmxvYXRSZWN0KGxheWVyQm91bmRzKSwgbGF5ZXItPnVwZGF0ZVJlY3QoKSk7CiAKICAgICAvLyBQ
YXJ0aWFsIHJlLXBhaW50IHNob3VsZCBhbHNvIGJlIHJlcHJlc2VudGVkIGJ5IHRoZSB1cGRhdGVS
ZWN0IGluIGxheWVyIHNwYWNlLCBub3QgY29udGVudCBzcGFjZS4KICAgICBJbnRSZWN0IHBhcnRp
YWxEYW1hZ2UoMzAsIDEwMCwgMTAsIDEwKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QocGFy
dGlhbERhbWFnZSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCBu
b09jY2x1c2lvbik7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAw
KTsKICAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKICAg
ICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoNDUsIDgwLCAxNSwgOCksIGxheWVyLT51
cGRhdGVSZWN0KCkpOwogfQpAQCAtNjAxLDcgKzYxNCw2IEBAIFRFU1QoVGlsZWRMYXllckNocm9t
aXVtVGVzdCwgdmVyaWZ5SW52YWxpZGF0aW9uV2hlbkNvbnRlbnRzU2NhbGVDaGFuZ2VzKQogCiAg
ICAgRmFrZVRleHR1cmVBbGxvY2F0b3IgdGV4dHVyZUFsbG9jYXRvcjsKICAgICBDQ1RleHR1cmVV
cGRhdGVyIHVwZGF0ZXIoJnRleHR1cmVBbGxvY2F0b3IpOwotICAgIFJlZ2lvbiBub09jY2x1c2lv
bjsKIAogICAgIC8vIENyZWF0ZSBhIGxheWVyIHdpdGggb25lIHRpbGUuCiAgICAgbGF5ZXItPnNl
dEJvdW5kcyhJbnRTaXplKDEwMCwgMTAwKSk7CkBAIC02MTEsNyArNjIzLDcgQEAgVEVTVChUaWxl
ZExheWVyQ2hyb21pdW1UZXN0LCB2ZXJpZnlJbnZhbGlkYXRpb25XaGVuQ29udGVudHNTY2FsZUNo
YW5nZXMpCiAgICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDAsIDAsIDEwMCwgMTAw
KSwgbGF5ZXItPmxhc3ROZWVkc0Rpc3BsYXlSZWN0KCkpOwogCiAgICAgLy8gUHVzaCB0aGUgdGls
ZXMgdG8gdGhlIGltcGwgc2lkZSBhbmQgY2hlY2sgdGhhdCB0aGVyZSBpcyBleGFjdGx5IG9uZS4K
LSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCBub09j
Y2x1c2lvbik7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwg
MTAwKSwgMCk7CiAgICAgbGF5ZXItPnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoMCwgdXBkYXRl
cik7CiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKICAgICBF
WFBFQ1RfVFJVRShsYXllckltcGwtPmhhc1RpbGVBdCgwLCAwKSk7CkBAIC02MjUsNyArNjM3LDcg
QEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2ZXJpZnlJbnZhbGlkYXRpb25XaGVuQ29u
dGVudHNTY2FsZUNoYW5nZXMpCiAgICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDAs
IDAsIDEwMCwgMTAwKSwgbGF5ZXItPmxhc3ROZWVkc0Rpc3BsYXlSZWN0KCkpOwogCiAgICAgLy8g
VGhlIGltcGwgc2lkZSBzaG91bGQgZ2V0IDJ4MiB0aWxlcyBub3cuCi0gICAgbGF5ZXItPnByZXBh
cmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSwgbm9PY2NsdXNpb24pOworICAgIGxh
eWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCAyMDAsIDIwMCksIDApOwogICAgIGxh
eWVyLT51cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKDAsIHVwZGF0ZXIpOwogICAgIGxheWVyLT5w
dXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXJJ
bXBsLT5oYXNUaWxlQXQoMCwgMCkpOwpAQCAtNjM2LDcgKzY0OCw3IEBAIFRFU1QoVGlsZWRMYXll
ckNocm9taXVtVGVzdCwgdmVyaWZ5SW52YWxpZGF0aW9uV2hlbkNvbnRlbnRzU2NhbGVDaGFuZ2Vz
KQogICAgIC8vIEludmFsaWRhdGUgdGhlIGVudGlyZSBsYXllciBhZ2FpbiwgYnV0IGRvIG5vdCBw
YWludC4gQWxsIHRpbGVzIHNob3VsZCBiZSBnb25lIG5vdyBmcm9tIHRoZQogICAgIC8vIGltcGwg
c2lkZS4KICAgICBsYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7Ci0gICAgbGF5ZXItPnByZXBhcmVU
b1VwZGF0ZShJbnRSZWN0KDAsIDAsIDAsIDApLCBub09jY2x1c2lvbik7CisgICAgbGF5ZXItPnBy
ZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDEsIDAsIDAsIDEpLCAwKTsKICAgICBsYXllci0+dXBkYXRl
Q29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRp
ZXNUbyhsYXllckltcGwuZ2V0KCkpOwogICAgIEVYUEVDVF9GQUxTRShsYXllckltcGwtPmhhc1Rp
bGVBdCgwLCAwKSk7CkBAIC03MDIsMTEgKzcxNCwxMCBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIHJlc2l6ZVRvU21hbGxlcikKIHsKICAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+IHRl
eHR1cmVNYW5hZ2VyID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZSg2MCoxMDI0KjEwMjQsIDYwKjEw
MjQqMTAyNCwgMTAyNCk7CiAgICAgUmVmUHRyPEZha2VUaWxlZExheWVyQ2hyb21pdW0+IGxheWVy
ID0gYWRvcHRSZWYobmV3IEZha2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIuZ2V0
KCkpKTsKLSAgICBSZWdpb24gbm9PY2NsdXNpb247CiAKICAgICBsYXllci0+c2V0Qm91bmRzKElu
dFNpemUoNzAwLCA3MDApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAw
LCA3MDAsIDcwMCkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA3
MDAsIDcwMCksIG5vT2NjbHVzaW9uKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJl
Y3QoMCwgMCwgNzAwLCA3MDApLCAwKTsKIAogICAgIGxheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgy
MDAsIDIwMCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDIwMCwg
MjAwKSk7CkBAIC03ODcsMTMgKzc5OCwxMiBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qs
IHRpbGVzUGFpbnRlZFdpdGhvdXRPY2NsdXNpb24pCiB7CiAgICAgT3duUHRyPFRleHR1cmVNYW5h
Z2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRleHR1cmVNYW5hZ2VyOjpjcmVhdGUoNCoxMDI0KjEwMjQs
IDIqMTAyNCoxMDI0LCAxMDI0KTsKICAgICBSZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4g
bGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSh0ZXh0dXJlTWFuYWdl
ci5nZXQoKSkpOwotICAgIFJlZ2lvbiBvY2NsdWRlZDsKIAogICAgIC8vIFRoZSB0aWxlIHNpemUg
aXMgMTAweDEwMCwgc28gdGhpcyBpbnZhbGlkYXRlcyBhbmQgdGhlbiBwYWludHMgdHdvIHRpbGVz
LgogICAgIGxheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgxMDAsIDIwMCkpOwogCiAgICAgbGF5ZXIt
PmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgMTAwLCAyMDApKTsKLSAgICBsYXllci0+cHJl
cGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCBvY2NsdWRlZCk7CisgICAgbGF5
ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCk7CiAgICAgRVhQ
RUNUX0VRKDIsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENv
dW50KCkpOwogfQogCkBAIC04MDEsMzAgKzgxMSwzMSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb24pCiB7CiAgICAgT3duUHRyPFRleHR1cmVN
YW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRleHR1cmVNYW5hZ2VyOjpjcmVhdGUoNCoxMDI0KjEw
MjQsIDIqMTAyNCoxMDI0LCAxMDI0KTsKICAgICBSZWZQdHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1
bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSh0ZXh0dXJlTWFu
YWdlci5nZXQoKSkpOwotICAgIFJlZ2lvbiBvY2NsdWRlZDsKKyAgICBUZXN0Q0NPY2NsdXNpb25U
cmFja2VyIG9jY2x1ZGVkOwogCiAgICAgLy8gVGhlIHRpbGUgc2l6ZSBpcyAxMDB4MTAwLgogCiAg
ICAgbGF5ZXItPnNldEJvdW5kcyhJbnRTaXplKDYwMCwgNjAwKSk7CisgICAgbGF5ZXItPnNldERy
YXdUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgoMSwgMCwgMCwgMSwgbGF5ZXItPmJvdW5k
cygpLndpZHRoKCkgLyAyLjAsIGxheWVyLT5ib3VuZHMoKS5oZWlnaHQoKSAvIDIuMCkpOwogCi0g
ICAgb2NjbHVkZWQgPSBJbnRSZWN0KDIwMCwgMjAwLCAzMDAsIDEwMCk7CisgICAgb2NjbHVkZWQu
c2V0T2NjbHVzaW9uKEludFJlY3QoMjAwLCAyMDAsIDMwMCwgMTAwKSk7CiAgICAgbGF5ZXItPnNl
dFZpc2libGVMYXllclJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBsYXllci0+Ym91bmRzKCkpKTsK
ICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAg
IGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksIG9jY2x1ZGVk
KTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAm
b2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgzNi0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0
dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291bnQoKTsKIAotICAgIG9jY2x1ZGVkID0g
SW50UmVjdCgyNTAsIDIwMCwgMzAwLCAxMDApOworICAgIG9jY2x1ZGVkLnNldE9jY2x1c2lvbihJ
bnRSZWN0KDI1MCwgMjAwLCAzMDAsIDEwMCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJ
bnRSZWN0KDAsIDAsIDYwMCwgNjAwKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRS
ZWN0KDAsIDAsIDYwMCwgNjAwKSwgb2NjbHVkZWQpOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRh
dGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgRVhQRUNUX0VRKDM2
LTIsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkp
OwogCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZVJl
Y3RDb3VudCgpOwogCi0gICAgb2NjbHVkZWQgPSBJbnRSZWN0KDI1MCwgMjUwLCAzMDAsIDEwMCk7
CisgICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMjUwLCAyNTAsIDMwMCwgMTAwKSk7
CiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgNjAwLCA2MDApKTsKLSAg
ICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCBvY2NsdWRl
ZCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwg
Jm9jY2x1ZGVkKTsKICAgICBFWFBFQ1RfRVEoMzYsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBk
YXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogfQogCkBAIC04MzIsNTggKzg0Myw2MCBAQCBU
RVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRW
aXNpYmxpdHlDb25zdHJhaW50cykKIHsKICAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+IHRleHR1
cmVNYW5hZ2VyID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZSg0KjEwMjQqMTAyNCwgMioxMDI0KjEw
MjQsIDEwMjQpOwogICAgIFJlZlB0cjxGYWtlVGlsZWRMYXllckNocm9taXVtPiBsYXllciA9IGFk
b3B0UmVmKG5ldyBGYWtlVGlsZWRMYXllckNocm9taXVtKHRleHR1cmVNYW5hZ2VyLmdldCgpKSk7
Ci0gICAgUmVnaW9uIG9jY2x1ZGVkOworICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXIgb2NjbHVk
ZWQ7CiAKICAgICAvLyBUaGUgdGlsZSBzaXplIGlzIDEwMHgxMDAuCiAKICAgICBsYXllci0+c2V0
Qm91bmRzKEludFNpemUoNjAwLCA2MDApKTsKKyAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCgxLCAwLCAwLCAxLCBsYXllci0+Ym91bmRzKCkud2lkdGgoKSAv
IDIuMCwgbGF5ZXItPmJvdW5kcygpLmhlaWdodCgpIC8gMi4wKSk7CiAKICAgICAvLyBUaGUgcGFy
dGlhbGx5IG9jY2x1ZGVkIHRpbGVzIChieSB0aGUgMTUwIG9jY2x1c2lvbiBoZWlnaHQpIGFyZSB2
aXNpYmxlIGJleW9uZCB0aGUgb2NjbHVzaW9uLCBzbyBub3QgY3VsbGVkLgotICAgIG9jY2x1ZGVk
ID0gSW50UmVjdCgyMDAsIDIwMCwgMzAwLCAxNTApOworICAgIG9jY2x1ZGVkLnNldE9jY2x1c2lv
bihJbnRSZWN0KDIwMCwgMjAwLCAzMDAsIDE1MCkpOwogICAgIGxheWVyLT5zZXRWaXNpYmxlTGF5
ZXJSZWN0KEludFJlY3QoMCwgMCwgNjAwLCAzNjApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJl
Y3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUo
SW50UmVjdCgwLCAwLCA2MDAsIDYwMCksIG9jY2x1ZGVkKTsKLSAgICBFWFBFQ1RfRVEoMzYtMywg
bGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7Cisg
ICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1
ZGVkKTsKKyAgICBFWFBFQ1RfRVEoMjQtMywgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVy
KCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAgICAvLyBOb3cgdGhlIHZpc2li
bGUgcmVnaW9uIHN0b3BzIGF0IHRoZSBlZGdlIG9mIHRoZSBvY2NsdXNpb24gc28gdGhlIHBhcnRs
eSB2aXNpYmxlIHRpbGVzIGJlY29tZSBmdWxseSBvY2NsdWRlZC4KLSAgICBvY2NsdWRlZCA9IElu
dFJlY3QoMjAwLCAyMDAsIDMwMCwgMTUwKTsKKyAgICBvY2NsdWRlZC5zZXRPY2NsdXNpb24oSW50
UmVjdCgyMDAsIDIwMCwgMzAwLCAxNTApKTsKICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVj
dChJbnRSZWN0KDAsIDAsIDYwMCwgMzUwKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KElu
dFJlY3QoMCwgMCwgNjAwLCA2MDApKTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJl
Y3QoMCwgMCwgNjAwLCA2MDApLCBvY2NsdWRlZCk7Ci0gICAgRVhQRUNUX0VRKDM2LTYsIGxheWVy
LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOworICAgIGxh
eWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7
CisgICAgRVhQRUNUX0VRKDI0LTYsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5w
cmVwYXJlUmVjdENvdW50KCkpOwogCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVy
KCktPmNsZWFyUHJlcGFyZVJlY3RDb3VudCgpOwogCiAgICAgLy8gTm93IHRoZSB2aXNpYmxlIHJl
Z2lvbiBpcyBldmVuIHNtYWxsZXIgdGhhbiB0aGUgb2NjbHVzaW9uLCBpdCBzaG91bGQgaGF2ZSB0
aGUgc2FtZSByZXN1bHQuCi0gICAgb2NjbHVkZWQgPSBJbnRSZWN0KDIwMCwgMjAwLCAzMDAsIDE1
MCk7CisgICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMjAwLCAyMDAsIDMwMCwgMTUw
KSk7CiAgICAgbGF5ZXItPnNldFZpc2libGVMYXllclJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDM0
MCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSk7
Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgb2Nj
bHVkZWQpOwotICAgIEVYUEVDVF9FUSgzNi02LCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0
ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKElu
dFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOworICAgIEVYUEVDVF9FUSgyNC02LCBs
YXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIH0K
IAogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc05vdFBhaW50ZWRXaXRob3V0SW52
YWxpZGF0aW9uKQogewogICAgIE93blB0cjxUZXh0dXJlTWFuYWdlcj4gdGV4dHVyZU1hbmFnZXIg
PSBUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDQqMTAyNCoxMDI0LCAyKjEwMjQqMTAyNCwgMTAyNCk7
CiAgICAgUmVmUHRyPEZha2VUaWxlZExheWVyQ2hyb21pdW0+IGxheWVyID0gYWRvcHRSZWYobmV3
IEZha2VUaWxlZExheWVyQ2hyb21pdW0odGV4dHVyZU1hbmFnZXIuZ2V0KCkpKTsKLSAgICBSZWdp
b24gb2NjbHVkZWQ7CisgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlciBvY2NsdWRlZDsKIAogICAg
IC8vIFRoZSB0aWxlIHNpemUgaXMgMTAweDEwMC4KIAogICAgIGxheWVyLT5zZXRCb3VuZHMoSW50
U2l6ZSg2MDAsIDYwMCkpOworICAgIGxheWVyLT5zZXREcmF3VHJhbnNmb3JtKFRyYW5zZm9ybWF0
aW9uTWF0cml4KDEsIDAsIDAsIDEsIGxheWVyLT5ib3VuZHMoKS53aWR0aCgpIC8gMi4wLCBsYXll
ci0+Ym91bmRzKCkuaGVpZ2h0KCkgLyAyLjApKTsKIAotICAgIG9jY2x1ZGVkID0gSW50UmVjdCgy
MDAsIDIwMCwgMzAwLCAxMDApOworICAgIG9jY2x1ZGVkLnNldE9jY2x1c2lvbihJbnRSZWN0KDIw
MCwgMjAwLCAzMDAsIDEwMCkpOwogICAgIGxheWVyLT5zZXRWaXNpYmxlTGF5ZXJSZWN0KEludFJl
Y3QoMCwgMCwgNjAwLCA2MDApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgw
LCAwLCA2MDAsIDYwMCkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAw
LCA2MDAsIDYwMCksIG9jY2x1ZGVkKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJl
Y3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQpOwogICAgIEVYUEVDVF9FUSgzNi0zLCBsYXll
ci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAg
IGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291bnQo
KTsKIAogICAgIC8vIFJlcGFpbnQgd2l0aG91dCBtYXJraW5nIGl0IGRpcnR5LgotICAgIGxheWVy
LT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksIG9jY2x1ZGVkKTsKKyAg
ICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVk
ZWQpOwogICAgIEVYUEVDVF9FUSgwLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+
cHJlcGFyZVJlY3RDb3VudCgpKTsKIH0KIApAQCAtODkxLDcgKzkwNCw3IEBAIFRFU1QoVGlsZWRM
YXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFRyYW5zZm9ybXMp
CiB7CiAgICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRleHR1cmVN
YW5hZ2VyOjpjcmVhdGUoNCoxMDI0KjEwMjQsIDIqMTAyNCoxMDI0LCAxMDI0KTsKICAgICBSZWZQ
dHI8RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVk
TGF5ZXJDaHJvbWl1bSh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOwotICAgIFJlZ2lvbiBvY2NsdWRl
ZDsKKyAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyIG9jY2x1ZGVkOwogCiAgICAgLy8gVGhlIHRp
bGUgc2l6ZSBpcyAxMDB4MTAwLgogCkBAIC05MDEsMTEgKzkxNCwxMiBAQCBURVNUKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRUcmFuc2Zvcm1zKQog
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHNjcmVlblRyYW5zZm9ybTsKICAgICBzY3JlZW5UcmFu
c2Zvcm0uc2NhbGUoMC41KTsKICAgICBsYXllci0+c2V0U2NyZWVuU3BhY2VUcmFuc2Zvcm0oc2Ny
ZWVuVHJhbnNmb3JtKTsKKyAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShzY3JlZW5UcmFuc2Zv
cm0gKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgxLCAwLCAwLCAxLCBsYXllci0+Ym91bmRzKCkud2lk
dGgoKSAvIDIuMCwgbGF5ZXItPmJvdW5kcygpLmhlaWdodCgpIC8gMi4wKSk7CiAKLSAgICBvY2Ns
dWRlZCA9IEludFJlY3QoMTAwLCAxMDAsIDE1MCwgNTApOworICAgIG9jY2x1ZGVkLnNldE9jY2x1
c2lvbihJbnRSZWN0KDEwMCwgMTAwLCAxNTAsIDUwKSk7CiAgICAgbGF5ZXItPnNldFZpc2libGVM
YXllclJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBsYXllci0+Ym91bmRzKCkpKTsKICAgICBsYXll
ci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAgIGxheWVyLT5w
cmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksIG9jY2x1ZGVkKTsKKyAgICBs
YXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQp
OwogICAgIEVYUEVDVF9FUSgzNi0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+
cHJlcGFyZVJlY3RDb3VudCgpKTsKIH0KIApAQCAtOTEzLDcgKzkyNyw3IEBAIFRFU1QoVGlsZWRM
YXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFNjYWxpbmcpCiB7
CiAgICAgT3duUHRyPFRleHR1cmVNYW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRleHR1cmVNYW5h
Z2VyOjpjcmVhdGUoNCoxMDI0KjEwMjQsIDIqMTAyNCoxMDI0LCAxMDI0KTsKICAgICBSZWZQdHI8
RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5
ZXJDaHJvbWl1bSh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOwotICAgIFJlZ2lvbiBvY2NsdWRlZDsK
KyAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyIG9jY2x1ZGVkOwogCiAgICAgLy8gVGhlIHRpbGUg
c2l6ZSBpcyAxMDB4MTAwLgogCkBAIC05MjIsMTEgKzkzNiwxMiBAQCBURVNUKFRpbGVkTGF5ZXJD
aHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRTY2FsaW5nKQogICAgIC8v
IHBpeGVscywgd2hpY2ggbWVhbnMgbm9uZSBzaG91bGQgYmUgb2NjbHVkZWQuCiAgICAgbGF5ZXIt
PnNldENvbnRlbnRzU2NhbGUoMC41KTsKICAgICBsYXllci0+c2V0Qm91bmRzKEludFNpemUoNjAw
LCA2MDApKTsKKyAgICBsYXllci0+c2V0RHJhd1RyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJp
eCgxLCAwLCAwLCAxLCBsYXllci0+Ym91bmRzKCkud2lkdGgoKSAvIDIuMCwgbGF5ZXItPmJvdW5k
cygpLmhlaWdodCgpIC8gMi4wKSk7CiAKLSAgICBvY2NsdWRlZCA9IEludFJlY3QoMjAwLCAyMDAs
IDMwMCwgMTAwKTsKKyAgICBvY2NsdWRlZC5zZXRPY2NsdXNpb24oSW50UmVjdCgyMDAsIDIwMCwg
MzAwLCAxMDApKTsKICAgICBsYXllci0+c2V0VmlzaWJsZUxheWVyUmVjdChJbnRSZWN0KEludFBv
aW50KCksIGxheWVyLT5ib3VuZHMoKSkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRS
ZWN0KDAsIDAsIDYwMCwgNjAwKSk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0
KDAsIDAsIDYwMCwgNjAwKSwgb2NjbHVkZWQpOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUo
SW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCk7CiAgICAgLy8gVGhlIGNvbnRlbnQg
aXMgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgbGF5ZXIgKHNvIHRoZSBudW1iZXIgb2YgdGlsZXMgaXMg
ZmV3ZXIpLgogICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIGNvbnRlbnQgaXMgMzAweDMwMCwgYW5k
IHNpbmNlIHRoZSB0aWxlIHNpemUgaXMgMTAwLCB0aGUKICAgICAvLyBudW1iZXIgb2YgdGlsZXMg
M3gzLgpAQCAtOTM3LDEwICs5NTIsMTAgQEAgVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0
aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kU2NhbGluZykKICAgICAvLyBUaGlzIG1ha2VzIHN1
cmUgdGhlIHBhaW50aW5nIHdvcmtzIHdoZW4gdGhlIGNvbnRlbnQgc3BhY2UgaXMgc2NhbGVkIHRv
CiAgICAgLy8gYSBkaWZmZXJlbnQgbGF5ZXIgc3BhY2UuIEluIHRoaXMgY2FzZSB0aGUgb2NjbHVk
ZWQgcmVnaW9uIGNhdGNoZXMgdGhlCiAgICAgLy8gYmxvd24gdXAgdGlsZXMuCi0gICAgb2NjbHVk
ZWQgPSBJbnRSZWN0KDIwMCwgMjAwLCAzMDAsIDIwMCk7CisgICAgb2NjbHVkZWQuc2V0T2NjbHVz
aW9uKEludFJlY3QoMjAwLCAyMDAsIDMwMCwgMjAwKSk7CiAgICAgbGF5ZXItPnNldFZpc2libGVM
YXllclJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBsYXllci0+Ym91bmRzKCkpKTsKICAgICBsYXll
ci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAgIGxheWVyLT5w
cmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksIG9jY2x1ZGVkKTsKKyAgICBs
YXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQp
OwogICAgIEVYUEVDVF9FUSg5LTEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5w
cmVwYXJlUmVjdENvdW50KCkpOwogCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVy
KCktPmNsZWFyUHJlcGFyZVJlY3RDb3VudCgpOwpAQCAtOTQ5LDExICs5NjQsMTIgQEAgVEVTVChU
aWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kU2NhbGlu
ZykKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBzY3JlZW5UcmFuc2Zvcm07CiAgICAgc2NyZWVu
VHJhbnNmb3JtLnNjYWxlKDAuNSk7CiAgICAgbGF5ZXItPnNldFNjcmVlblNwYWNlVHJhbnNmb3Jt
KHNjcmVlblRyYW5zZm9ybSk7CisgICAgbGF5ZXItPnNldERyYXdUcmFuc2Zvcm0oc2NyZWVuVHJh
bnNmb3JtICogVHJhbnNmb3JtYXRpb25NYXRyaXgoMSwgMCwgMCwgMSwgbGF5ZXItPmJvdW5kcygp
LndpZHRoKCkgLyAyLjAsIGxheWVyLT5ib3VuZHMoKS5oZWlnaHQoKSAvIDIuMCkpOwogCi0gICAg
b2NjbHVkZWQgPSBJbnRSZWN0KDEwMCwgMTAwLCAxNTAsIDEwMCk7CisgICAgb2NjbHVkZWQuc2V0
T2NjbHVzaW9uKEludFJlY3QoMTAwLCAxMDAsIDE1MCwgMTAwKSk7CiAgICAgbGF5ZXItPnNldFZp
c2libGVMYXllclJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBsYXllci0+Ym91bmRzKCkpKTsKICAg
ICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAgIGxh
eWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksIG9jY2x1ZGVkKTsK
KyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2Nj
bHVkZWQpOwogICAgIEVYUEVDVF9FUSg5LTEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRl
cigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogfQogCkBAIC05NjYsNyArOTgyLDYgQEAgVEVTVChU
aWxlZExheWVyQ2hyb21pdW1UZXN0LCBvcGFxdWVDb250ZW50c1JlZ2lvbikKIAogICAgIEludFJl
Y3Qgb3BhcXVlUGFpbnRSZWN0OwogICAgIFJlZ2lvbiBvcGFxdWVDb250ZW50czsKLSAgICBSZWdp
b24gbm9PY2NsdXNpb247CiAKICAgICBJbnRSZWN0IGNvbnRlbnRCb3VuZHMgPSBJbnRSZWN0KDAs
IDAsIDEwMCwgMjAwKTsKICAgICBJbnRSZWN0IHZpc2libGVCb3VuZHMgPSBJbnRSZWN0KDAsIDAs
IDEwMCwgMTUwKTsKQEAgLTk3OCw3ICs5OTMsNyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRl
c3QsIG9wYXF1ZUNvbnRlbnRzUmVnaW9uKQogICAgIC8vIElmIHRoZSBsYXllciBkb2Vzbid0IHBh
aW50IG9wYXF1ZSBjb250ZW50LCB0aGVuIHRoZSBvcGFxdWVDb250ZW50c1JlZ2lvbiBzaG91bGQg
YmUgZW1wdHkuCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldE9wYXF1
ZVBhaW50UmVjdChvcGFxdWVQYWludFJlY3QpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChj
b250ZW50Qm91bmRzKTsKLSAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMs
IG5vT2NjbHVzaW9uKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKGNvbnRlbnRCb3VuZHMs
IDApOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPm9wYXF1ZUNvbnRlbnRzUmVnaW9uKCk7
CiAgICAgRVhQRUNUX1RSVUUob3BhcXVlQ29udGVudHMuaXNFbXB0eSgpKTsKIApAQCAtOTg2LDE0
ICsxMDAxLDE0IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgb3BhcXVlQ29udGVudHNS
ZWdpb24pCiAgICAgb3BhcXVlUGFpbnRSZWN0ID0gSW50UmVjdCgxMCwgMTAsIDkwLCAxOTApOwog
ICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3Qo
b3BhcXVlUGFpbnRSZWN0KTsKICAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoY29udGVudEJvdW5k
cyk7Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCBub09jY2x1c2lv
bik7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAwKTsKICAgICBv
cGFxdWVDb250ZW50cyA9IGxheWVyLT5vcGFxdWVDb250ZW50c1JlZ2lvbigpOwogICAgIEVYUEVD
VF9FUV9SRUNUKGludGVyc2VjdGlvbihvcGFxdWVQYWludFJlY3QsIHZpc2libGVCb3VuZHMpLCBv
cGFxdWVDb250ZW50cy5ib3VuZHMoKSk7CiAgICAgRVhQRUNUX0VRKDF1LCBvcGFxdWVDb250ZW50
cy5yZWN0cygpLnNpemUoKSk7CiAKICAgICAvLyBJZiB3ZSBwYWludCBhZ2FpbiB3aXRob3V0IGlu
dmFsaWRhdGluZywgdGhlIHNhbWUgc3R1ZmYgc2hvdWxkIGJlIG9wYXF1ZS4KICAgICBsYXllci0+
ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJlY3QoKSk7
Ci0gICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCBub09jY2x1c2lvbik7
CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShjb250ZW50Qm91bmRzLCAwKTsKICAgICBvcGFx
dWVDb250ZW50cyA9IGxheWVyLT5vcGFxdWVDb250ZW50c1JlZ2lvbigpOwogICAgIEVYUEVDVF9F
UV9SRUNUKGludGVyc2VjdGlvbihvcGFxdWVQYWludFJlY3QsIHZpc2libGVCb3VuZHMpLCBvcGFx
dWVDb250ZW50cy5ib3VuZHMoKSk7CiAgICAgRVhQRUNUX0VRKDF1LCBvcGFxdWVDb250ZW50cy5y
ZWN0cygpLnNpemUoKSk7CkBAIC0xMDAyLDcgKzEwMTcsNyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJv
bWl1bVRlc3QsIG9wYXF1ZUNvbnRlbnRzUmVnaW9uKQogICAgIC8vIG5vdCBiZSBhZmZlY3RlZC4K
ICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0
KEludFJlY3QoKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgMSwg
MSkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgbm9PY2NsdXNp
b24pOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgMCk7CiAgICAg
b3BhcXVlQ29udGVudHMgPSBsYXllci0+b3BhcXVlQ29udGVudHNSZWdpb24oKTsKICAgICBFWFBF
Q1RfRVFfUkVDVChpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxlQm91bmRzKSwg
b3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwogICAgIEVYUEVDVF9FUSgxdSwgb3BhcXVlQ29udGVu
dHMucmVjdHMoKS5zaXplKCkpOwpAQCAtMTAxMSw3ICsxMDI2LDcgQEAgVEVTVChUaWxlZExheWVy
Q2hyb21pdW1UZXN0LCBvcGFxdWVDb250ZW50c1JlZ2lvbikKICAgICAvLyBub3QgYmUgYWZmZWN0
ZWQuCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldE9wYXF1ZVBhaW50
UmVjdChJbnRSZWN0KCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDEwLCAx
MCwgMSwgMSkpOwotICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgbm9P
Y2NsdXNpb24pOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoY29udGVudEJvdW5kcywgMCk7
CiAgICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+b3BhcXVlQ29udGVudHNSZWdpb24oKTsKICAg
ICBFWFBFQ1RfRVFfUkVDVChpbnRlcnNlY3Rpb24oSW50UmVjdCgxMCwgMTAwLCA5MCwgMTAwKSwg
dmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsKICAgICBFWFBFQ1RfRVEo
MXUsIG9wYXF1ZUNvbnRlbnRzLnJlY3RzKCkuc2l6ZSgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>