<?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>283395</bug_id>
          
          <creation_ts>2024-11-19 20:25:48 -0800</creation_ts>
          <short_desc>[Cleanup][content-visibility] RenderObject::isSkippedContentRoot has layout dependent state</short_desc>
          <delta_ts>2024-11-20 07:50:14 -0800</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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>283302</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2076319</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-11-19 20:25:48 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076321</commentid>
    <comment_count>1</comment_count>
      <attachid>473285</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-11-19 20:29:24 -0800</bug_when>
    <thetext>Created attachment 473285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076323</commentid>
    <comment_count>2</comment_count>
      <attachid>473286</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-11-19 20:32:45 -0800</bug_when>
    <thetext>Created attachment 473286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076413</commentid>
    <comment_count>3</comment_count>
      <attachid>473293</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-11-20 05:53:05 -0800</bug_when>
    <thetext>Created attachment 473293
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076426</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-11-20 07:49:38 -0800</bug_when>
    <thetext>Committed 286858@main (0fce63b81a5a): &lt;https://commits.webkit.org/286858@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 473293.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076427</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-11-20 07:50:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/140275977&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473285</attachid>
            <date>2024-11-19 20:29:24 -0800</date>
            <delta_ts>2024-11-19 20:32:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-283395-20241119202923.patch</filename>
            <type>text/plain</type>
            <size>30589</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA0ZWNkM2E4N2FiOTUwMDhkMmJiZGQ4Y2IzODczNTNmYWI2NWEwYjJkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMTkgTm92IDIwMjQgMjA6Mjc6NTAgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF1bY29udGVudC12aXNpYmlsaXR5XQogUmVuZGVyT2JqZWN0Ojppc1NraXBwZWRDb250ZW50Um9v
dCBoYXMgbGF5b3V0IGRlcGVuZGVudCBzdGF0ZQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI4MzM5NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpOZWVkcyBz
b21lIHdvcmRzLgoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6
Q2FsbGJhY2tGb3JDb250YWluSW50cmluc2ljU2l6ZSk6CihXZWJDb3JlOjpEb2N1bWVudDo6Y2Fy
ZXRQb3NpdGlvbkZyb21Qb2ludCk6CiogU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0
b3IuY3BwOgooV2ViQ29yZTo6VGV4dEl0ZXJhdG9yOjphZHZhbmNlKToKKiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0xvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHA6CihXZWJDb3JlOjpMb2NhbEZy
YW1lVmlld0xheW91dENvbnRleHQ6OmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQgY29uc3QpOgoo
V2ViQ29yZTo6TG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0Ojppc1NraXBwZWRDb250ZW50Um9v
dEZvckxheW91dCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlld0xh
eW91dENvbnRleHQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNpbXBsaWZpZWRMYXlvdXQpOgooV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxheW91dFBvc2l0aW9uZWRPYmplY3QpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnBhaW50Q29udGVudHMpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkanVzdEJvcmRlckJveFJl
Y3RGb3JQYWludGluZyk6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRSZWN0VG9DbGlwT3V0
RnJvbUJvcmRlcik6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRFeGNsdWRlZENoaWxkcmVu
SW5Cb3JkZXIpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3Bw
OgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja0NoaWxkcmVuKToKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRlckJveDo6
Zm9yZWdyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5SZWN0IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRl
ckJveDo6ZXhwbGljaXRJbnRyaW5zaWNJbm5lcldpZHRoIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRl
ckJveDo6ZXhwbGljaXRJbnRyaW5zaWNJbm5lckhlaWdodCBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6
c3R5bGVXaWxsQ2hhbmdlKToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmxheW91dElmTmVlZGVk
KToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmlzU2tpcHBlZENvbnRlbnRSb290IGNvbnN0KTog
RGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oOgooV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0Ojppc1NraXBwZWRDb250ZW50Um9vdCBjb25zdCk6IERlbGV0ZWQu
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnRJbmxpbmVzLmg6CihXZWJD
b3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVudCBjb25z
dCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCBj
b25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVPcklubGluZVNp
emVDb250YWlubWVudCBjb25zdCk6CihXZWJDb3JlOjppc1NraXBwZWRDb250ZW50Um9vdCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgooV2ViQ29yZTo6UmVuZGVy
R3JpZDo6bGF5b3V0UG9zaXRpb25lZE9iamVjdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzU2tpcHBlZENvbnRl
bnRGb3JMYXlvdXQgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0SW5s
aW5lcy5oOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpsYXlvdXRDb250ZXh0IGNvbnN0KToKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgooV2ViQ29yZTo6UmVu
ZGVyUmVwbGFjZWQ6OnBhaW50KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmNwcDoKKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6cGFpbnQpOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaDoKKFdlYkNvcmU6OmRvZXNTaXplQ29udGFpbm1l
bnRBcHBseUJ5U3R5bGUpOgooV2ViQ29yZTo6aXNTa2lwcGVkQ29udGVudFJvb3QpOiBEZWxldGVk
LgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5j
cHA6CihXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxlbWVudFJlbmRlcmVyKToK
KiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcDoKKFdlYkNvcmU6OlN0eWxl
OjpBZGp1c3Rlcjo6YWRqdXN0IGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwICAgICAgICAgICAgICAgfCAgNSArKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dEl0ZXJhdG9yLmNwcCAgICAgICB8ICA1ICsrLQogLi4uL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlv
dXRDb250ZXh0LmNwcCAgICAgIHwgMTcgKysrKysrKy0KIC4uLi9wYWdlL0xvY2FsRnJhbWVWaWV3
TGF5b3V0Q29udGV4dC5oICAgICAgICB8ICA2ICsrLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcCAgICAgIHwgMTIgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcCAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAgICAgICAgIHwgIDYgKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAgICAgfCAgOSArLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5oICAgICAgfCAxMCArLS0tLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnRJbmxpbmVzLmggIHwgMjAgKysrKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5jcHAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAgICAgIHwgIDUgLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmggICAgICAgfCAgNSArLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3RJbmxpbmVzLmggICB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyV2lkZ2V0LmNwcCAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmggIHwgIDMgKy0KIC4uLi9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJ
bmxpbmVzLmggICAgICB8IDQzICsrKysrKysrLS0tLS0tLS0tLS0KIC4uLi9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwICB8ICAzICstCiBTb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUFkanVzdGVyLmNwcCAgICAgICAgfCAgOCArKystCiAyMCBmaWxlcyBjaGFuZ2VkLCA5
MSBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApp
bmRleCA5MWE0ZGFkOGUwZWMuLmVjYTM4MWM3ODMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC0yMTYsNiArMjE2LDcgQEAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94SW5saW5lcy5oIgogI2luY2x1ZGUgIlJlbmRlckNoaWxk
SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUg
IlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxheW91dFN0YXRlLmgiCkBAIC00NDMsNyArNDQ0LDcgQEAgc3RhdGljIHZv
aWQgQ2FsbGJhY2tGb3JDb250YWluSW50cmluc2ljU2l6ZShjb25zdCBWZWN0b3I8UmVmPFJlc2l6
ZU9ic2VydmVyRW50cnkKICAgICAgICAgICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoKnRhcmdl
dCk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBBU1NFUlQoIWJveC0+aXNTa2lwcGVkQ29udGVudFJvb3QoKSk7CisgICAgICAgICAgICBBU1NF
UlQoIWlzU2tpcHBlZENvbnRlbnRSb290KCpib3gpKTsKICAgICAgICAgICAgIEFTU0VSVChib3gt
PnN0eWxlKCkuaGFzQXV0b0xlbmd0aENvbnRhaW5JbnRyaW5zaWNTaXplKCkpOwogCiAgICAgICAg
ICAgICBhdXRvIGNvbnRlbnRCb3hTaXplID0gZW50cnktPmNvbnRlbnRCb3hTaXplKCkuYXQoMCk7
CkBAIC0yMDc3LDcgKzIwNzgsNyBAQCBzdGQ6Om9wdGlvbmFsPEJvdW5kYXJ5UG9pbnQ+IERvY3Vt
ZW50OjpjYXJldFBvc2l0aW9uRnJvbVBvaW50KGNvbnN0IExheW91dFBvaW50JgogICAgIGlmICgh
cmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBpZiAocmVuZGVy
ZXItPmlzU2tpcHBlZENvbnRlbnRSb290KCkpCisgICAgaWYgKGF1dG8qIHJlbmRlckVsZW1lbnQg
PSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oKnJlbmRlcmVyKTsgcmVuZGVyRWxlbWVu
dCAmJiBpc1NraXBwZWRDb250ZW50Um9vdCgqcmVuZGVyRWxlbWVudCkpCiAgICAgICAgIHJldHVy
biB7IHsgKm5vZGUsIDAgfSB9OwogCiAgICAgYXV0byByYW5nZUNvbXBsaWFudFBvc2l0aW9uID0g
cmVuZGVyZXItPnBvc2l0aW9uRm9yUG9pbnQobG9jYWxQb2ludCwgc291cmNlKS5wYXJlbnRBbmNo
b3JlZEVxdWl2YWxlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApp
bmRleCA0ZWNlODBmMTJkMWMuLjIxMDI0Nzk3YWZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VGV4dEl0ZXJhdG9yLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIk5vZGVUcmF2ZXJz
YWwuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveElubGluZXMuaCIK
KyNpbmNsdWRlICJSZW5kZXJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdl
LmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNl
bGwuaCIKQEAgLTQ4OCw5ICs0ODksOSBAQCB2b2lkIFRleHRJdGVyYXRvcjo6YWR2YW5jZSgpCiAg
ICAgICAgICAgICBpZiAoIWlzUmVuZGVyZXJWaXNpYmxlKHJlbmRlcmVyLmdldCgpLCBtX2JlaGF2
aW9ycykpIHsKICAgICAgICAgICAgICAgICBtX2hhbmRsZWROb2RlID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICBtX2hhbmRsZWRDaGlsZHJlbiA9ICFoYXNEaXNwbGF5Q29udGVudHMoKnByb3RlY3Rl
ZEN1cnJlbnROb2RlKCkpICYmICFyZW5kZXJlcjsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoaXM8
RWxlbWVudD4obV9jdXJyZW50Tm9kZS5nZXQoKSkgJiYgcmVuZGVyZXItPmlzU2tpcHBlZENvbnRl
bnRSb290KCkpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXV0byogcmVuZGVyRWxlbWVudCA9
IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJFbGVtZW50PihyZW5kZXJlci5nZXQoKSk7IHJlbmRlckVs
ZW1lbnQgJiYgaXNTa2lwcGVkQ29udGVudFJvb3QoKnJlbmRlckVsZW1lbnQpKQogICAgICAgICAg
ICAgICAgIG1faGFuZGxlZENoaWxkcmVuID0gdHJ1ZTsKLSAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgY3VycmVudCBub2Rl
IGFjY29yZGluZyB0byBpdHMgdHlwZQogICAgICAgICAgICAgICAgIGlmIChyZW5kZXJlci0+aXNS
ZW5kZXJUZXh0KCkgJiYgbV9jdXJyZW50Tm9kZS0+aXNUZXh0Tm9kZSgpKQogICAgICAgICAgICAg
ICAgICAgICBtX2hhbmRsZWROb2RlID0gaGFuZGxlVGV4dE5vZGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcAppbmRleCA4ZmVj
MDI2MzI3MzYuLjI4NWE2NDcxM2QzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9M
b2NhbEZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIlF1aXJrcy5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5k
ZXJMYXlvdXRTdGF0ZS5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU3R5bGVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNj
cmlwdERpc2FsbG93ZWRTY29wZS5oIgpAQCAtNTc3LDcgKzU3OCwyMSBAQCB2b2lkIExvY2FsRnJh
bWVWaWV3TGF5b3V0Q29udGV4dDo6YWRkTGF5b3V0RGVsdGEoY29uc3QgTGF5b3V0U2l6ZSYgZGVs
dGEpCiAgICAgaWYgKGF1dG8qIGxheW91dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUoKSkKICAg
ICAgICAgbGF5b3V0U3RhdGUtPmFkZExheW91dERlbHRhKGRlbHRhKTsKIH0KLSAgICAKKworYm9v
bCBMb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQ6OmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQo
Y29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgaWYgKG5lZWRzU2tp
cHBlZENvbnRlbnRMYXlvdXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBy
ZW5kZXJlci5pc1NraXBwZWRDb250ZW50KCk7Cit9CisKK2Jvb2wgTG9jYWxGcmFtZVZpZXdMYXlv
dXRDb250ZXh0Ojppc1NraXBwZWRDb250ZW50Um9vdEZvckxheW91dChjb25zdCBSZW5kZXJFbGVt
ZW50JiByZW5kZXJlcikgY29uc3QKK3sKKyAgICBpZiAobmVlZHNTa2lwcGVkQ29udGVudExheW91
dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzU2tpcHBlZENvbnRlbnRS
b290KHJlbmRlcmVyKTsKK30KKwogI2lmIEFTU0VSVF9FTkFCTEVECiBib29sIExvY2FsRnJhbWVW
aWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0RGVsdGFNYXRjaGVzKGNvbnN0IExheW91dFNpemUmIGRl
bHRhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlld0xh
eW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlvdXRD
b250ZXh0LmgKaW5kZXggYjM5NjE0OGExMjgzLi4xMDU5NDA0OGFiNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQuaApAQCAtOTUsOSAr
OTUsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQoKSBjb25zdCB7
IHJldHVybiBsYXlvdXRQaGFzZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQ7
IH0KICAgICBib29sIGluUGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFz
ZSgpICE9IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0UGhhc2UoKSAh
PSBMYXlvdXRQaGFzZTo6SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2UoKSAhPSBMYXlv
dXRQaGFzZTo6SW5Qb3N0TGF5b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7IH0KIAotICAg
IGJvb2wgbmVlZHNTa2lwcGVkQ29udGVudExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNT
a2lwcGVkQ29udGVudExheW91dDsgfQogICAgIHZvaWQgc2V0TmVlZHNTa2lwcGVkQ29udGVudExh
eW91dChib29sIG5lZWRzU2tpcHBlZENvbnRlbnRMYXlvdXQpIHsgbV9uZWVkc1NraXBwZWRDb250
ZW50TGF5b3V0ID0gbmVlZHNTa2lwcGVkQ29udGVudExheW91dDsgfQogCisgICAgYm9vbCBpc1Nr
aXBwZWRDb250ZW50Rm9yTGF5b3V0KGNvbnN0IFJlbmRlckVsZW1lbnQmKSBjb25zdDsKKyAgICBi
b29sIGlzU2tpcHBlZENvbnRlbnRSb290Rm9yTGF5b3V0KGNvbnN0IFJlbmRlckVsZW1lbnQmKSBj
b25zdDsKKwogICAgIFJlbmRlckVsZW1lbnQqIHN1YnRyZWVMYXlvdXRSb290KCkgY29uc3Q7CiAg
ICAgdm9pZCBjbGVhclN1YnRyZWVMYXlvdXRSb290KCkgeyBtX3N1YnRyZWVMYXlvdXRSb290LmNs
ZWFyKCk7IH0KICAgICB2b2lkIGNvbnZlcnRTdWJ0cmVlTGF5b3V0VG9GdWxsTGF5b3V0KCk7CkBA
IC0xNzQsNiArMTc2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc2FibGVQYWludE9mZnNldENh
Y2hlKCkgeyBtX3BhaW50T2Zmc2V0Q2FjaGVEaXNhYmxlQ291bnQrKzsgfQogICAgIHZvaWQgZW5h
YmxlUGFpbnRPZmZzZXRDYWNoZSgpIHsgQVNTRVJUKG1fcGFpbnRPZmZzZXRDYWNoZURpc2FibGVD
b3VudCA+IDApOyBtX3BhaW50T2Zmc2V0Q2FjaGVEaXNhYmxlQ291bnQtLTsgfQogCisgICAgYm9v
bCBuZWVkc1NraXBwZWRDb250ZW50TGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc1NraXBw
ZWRDb250ZW50TGF5b3V0OyB9CisKICAgICBMb2NhbEZyYW1lJiBmcmFtZSgpIGNvbnN0OwogICAg
IFJlZjxMb2NhbEZyYW1lPiBwcm90ZWN0ZWRGcmFtZSgpOwogICAgIExvY2FsRnJhbWVWaWV3JiB2
aWV3KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRl
eCBiNDgzY2EwNWY4NjcuLjliODE1YzhhNGFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCkBAIC03OTEsNyArNzkxLDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6c2lt
cGxpZmllZExheW91dCgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgY2FuQ29u
dGFpbkZpeGVkUG9zT2JqZWN0cyA9IGNhbkNvbnRhaW5GaXhlZFBvc2l0aW9uT2JqZWN0cygpOwot
ICAgIGlmIChpc1NraXBwZWRDb250ZW50Um9vdCgpICYmIChwb3NDaGlsZE5lZWRzTGF5b3V0KCkg
fHwgY2FuQ29udGFpbkZpeGVkUG9zT2JqZWN0cykpCisgICAgaWYgKGxheW91dENvbnRleHQoKS5p
c1NraXBwZWRDb250ZW50Um9vdEZvckxheW91dCgqdGhpcykgJiYgKHBvc0NoaWxkTmVlZHNMYXlv
dXQoKSB8fCBjYW5Db250YWluRml4ZWRQb3NPYmplY3RzKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgLy8gTGF5IG91dCBwb3NpdGlvbmVkIGRlc2NlbmRhbnRzIG9yIG9iamVjdHMgdGhh
dCBqdXN0IG5lZWQgdG8gcmVjb21wdXRlIG92ZXJmbG93LgpAQCAtODc2LDcgKzg3Niw3IEBAIExh
eW91dFVuaXQgUmVuZGVyQmxvY2s6Om1hcmdpbkludHJpbnNpY0xvZ2ljYWxXaWR0aEZvckNoaWxk
KFJlbmRlckJveCYgY2hpbGQpIGNvCiAKIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFBvc2l0aW9u
ZWRPYmplY3QoUmVuZGVyQm94JiByLCBib29sIHJlbGF5b3V0Q2hpbGRyZW4sIGJvb2wgZml4ZWRQ
b3NpdGlvbk9iamVjdHNPbmx5KQogewotICAgIGlmIChpc1NraXBwZWRDb250ZW50Um9vdCgpKSB7
CisgICAgaWYgKGxheW91dENvbnRleHQoKS5pc1NraXBwZWRDb250ZW50Um9vdEZvckxheW91dCgq
dGhpcykpIHsKICAgICAgICAgci5jbGVhck5lZWRzTGF5b3V0Rm9yU2tpcHBlZENvbnRlbnQoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwMjksNyArMTAyOSw3IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZmZzZXQpCiAKIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50Q29udGVudHMoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKLSAgICBpZiAoaXNT
a2lwcGVkQ29udGVudFJvb3QoKSkKKyAgICBpZiAoaXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMp
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoY2hpbGRyZW5JbmxpbmUoKSkKQEAgLTMzMTUs
NyArMzMxNSw3IEBAIFJlbmRlckJveCogUmVuZGVyQmxvY2s6OmZpbmRGaWVsZHNldExlZ2VuZChG
aWVsZHNldEZpbmRMZWdlbmRPcHRpb24gb3B0aW9uKSBjb25zCiAKIHZvaWQgUmVuZGVyQmxvY2s6
OmFkanVzdEJvcmRlckJveFJlY3RGb3JQYWludGluZyhMYXlvdXRSZWN0JiBwYWludFJlY3QpCiB7
Ci0gICAgaWYgKCFpc0ZpZWxkc2V0KCkgfHwgaXNTa2lwcGVkQ29udGVudFJvb3QoKSB8fCAhaW50
cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoKSkKKyAgICBpZiAoIWlzRmllbGRzZXQoKSB8fCBpc1Nr
aXBwZWRDb250ZW50Um9vdCgqdGhpcykgfHwgIWludHJpbnNpY0JvcmRlckZvckZpZWxkc2V0KCkp
CiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBhdXRvKiBsZWdlbmQgPSBmaW5kRmllbGRzZXRM
ZWdlbmQoKTsKQEAgLTMzMzgsNyArMzMzOCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFkanVzdEJv
cmRlckJveFJlY3RGb3JQYWludGluZyhMYXlvdXRSZWN0JiBwYWludFJlY3QpCiBMYXlvdXRSZWN0
IFJlbmRlckJsb2NrOjpwYWludFJlY3RUb0NsaXBPdXRGcm9tQm9yZGVyKGNvbnN0IExheW91dFJl
Y3QmIHBhaW50UmVjdCkKIHsKICAgICBMYXlvdXRSZWN0IGNsaXBSZWN0OwotICAgIGlmICghaXNG
aWVsZHNldCgpIHx8IGlzU2tpcHBlZENvbnRlbnRSb290KCkpCisgICAgaWYgKCFpc0ZpZWxkc2V0
KCkgfHwgaXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMpKQogICAgICAgICByZXR1cm4gY2xpcFJl
Y3Q7CiAgICAgYXV0byogbGVnZW5kID0gZmluZEZpZWxkc2V0TGVnZW5kKCk7CiAgICAgaWYgKCFs
ZWdlbmQpCkBAIC0zNDk0LDcgKzM0OTQsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjphZGp1
c3RJbnRyaW5zaWNMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKExheW91dFVuaXQgaGVpZwogCiB2
b2lkIFJlbmRlckJsb2NrOjpwYWludEV4Y2x1ZGVkQ2hpbGRyZW5JbkJvcmRlcihQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogewotICAgIGlmICgh
aXNGaWVsZHNldCgpIHx8IGlzU2tpcHBlZENvbnRlbnRSb290KCkpCisgICAgaWYgKCFpc0ZpZWxk
c2V0KCkgfHwgaXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMpKQogICAgICAgICByZXR1cm47CiAg
ICAgCiAgICAgUmVuZGVyQm94KiBib3ggPSBmaW5kRmllbGRzZXRMZWdlbmQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggYjYzOGM4MTYwYWEy
Li5hYjVjZjQ4N2IzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwCkBAIC03NTksNyArNzU5LDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91
dEJsb2NrQ2hpbGRyZW4oYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiBtYXgKICAg
ICAgICAgaWYgKGNoaWxkLmlzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIGNoaWxkLCBzaW5jZSBpdCB3aWxsIGJlIHBvc2l0aW9u
ZWQgYnkgdGhlIHNwZWNpYWxpemVkIHN1YmNsYXNzIChmaWVsZHNldHMgYW5kIHJ1YnkgcnVucyku
CiAKLSAgICAgICAgaWYgKGNoaWxkLmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSkgeworICAg
ICAgICBpZiAobGF5b3V0Q29udGV4dCgpLmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoY2hpbGQp
KSB7CiAgICAgICAgICAgICBjaGlsZC5jbGVhck5lZWRzTGF5b3V0Rm9yU2tpcHBlZENvbnRlbnQo
KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCmluZGV4IDkzMzI0MzEyYmNmMS4uMjk5Mjc0M2E2Nzk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTg1NSw3ICsxODU1LDcgQEAgYm9v
bCBSZW5kZXJCb3g6OmZvcmVncm91bmRJc0tub3duVG9CZU9wYXF1ZUluUmVjdChjb25zdCBMYXlv
dXRSZWN0JiBsb2NhbFJlY3QsIHUKICAgICBpZiAoIW1heERlcHRoVG9UZXN0KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoaXNTa2lwcGVkQ29udGVudFJvb3QoKSkKKyAgICBpZiAo
aXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBmb3IgKGF1dG8mIGNoaWxkQm94IDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyQm94PigqdGhpcykp
IHsKQEAgLTU4NDAsNyArNTg0MCw3IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVy
Qm94OjpleHBsaWNpdEludHJpbnNpY0lubmVyV2lkdGgoKSBjb25zdAogICAgIGlmIChzdHlsZSgp
LmNvbnRhaW5JbnRyaW5zaWNXaWR0aFR5cGUoKSA9PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6
Ok5vbmUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBpZiAoZWxlbWVudCgp
ICYmIHN0eWxlKCkuY29udGFpbkludHJpbnNpY1dpZHRoSGFzQXV0bygpICYmIFdlYkNvcmU6Omlz
U2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCksIGVsZW1lbnQoKSkpIHsKKyAgICBpZiAoZWxlbWVu
dCgpICYmIHN0eWxlKCkuY29udGFpbkludHJpbnNpY1dpZHRoSGFzQXV0bygpICYmIGlzU2tpcHBl
ZENvbnRlbnRSb290KCp0aGlzKSkgewogICAgICAgICBpZiAoYXV0byB3aWR0aCA9IGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRo
KCkgOiBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCgpKQogICAgICAgICAg
ICAgcmV0dXJuIHdpZHRoOwogICAgIH0KQEAgLTU4NTksNyArNTg1OSw3IEBAIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gUmVuZGVyQm94OjpleHBsaWNpdEludHJpbnNpY0lubmVySGVpZ2h0KCkg
Y29uc3QKICAgICBpZiAoc3R5bGUoKS5jb250YWluSW50cmluc2ljSGVpZ2h0VHlwZSgpID09IENv
bnRhaW5JbnRyaW5zaWNTaXplVHlwZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKIAotICAgIGlmIChlbGVtZW50KCkgJiYgc3R5bGUoKS5jb250YWluSW50cmluc2ljSGVpZ2h0
SGFzQXV0bygpICYmIFdlYkNvcmU6OmlzU2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCksIGVsZW1l
bnQoKSkpIHsKKyAgICBpZiAoZWxlbWVudCgpICYmIHN0eWxlKCkuY29udGFpbkludHJpbnNpY0hl
aWdodEhhc0F1dG8oKSAmJiBpc1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykpIHsKICAgICAgICAg
aWYgKGF1dG8gaGVpZ2h0ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGVsZW1lbnQoKS0+
bGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KCkgOiBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVk
TG9naWNhbFdpZHRoKCkpCiAgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCA1MmEzODNkNjVjMWIu
Ljc4MWEyMGIwMjc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcApAQCAtODg5LDcgKzg4OSw3IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAg
IGlmICh3YXNWaXNpYmxlICE9IHdpbGxCZVZpc2libGUpIHsKICAgICAgICAgICAgIGlmIChDaGVj
a2VkUHRyIGxheWVyID0gZW5jbG9zaW5nTGF5ZXIoKSkgewogICAgICAgICAgICAgICAgIGlmICh3
aWxsQmVWaXNpYmxlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtX3N0eWxlLmhhc1NraXBw
ZWRDb250ZW50KCkgJiYgaXNTa2lwcGVkQ29udGVudFJvb3QoKSkKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fc3R5bGUuaGFzU2tpcHBlZENvbnRlbnQoKSAmJiBpc1NraXBwZWRDb250ZW50Um9v
dCgqdGhpcykpCiAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci0+ZGlydHlWaXNpYmxlQ29u
dGVudFN0YXR1cygpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
ICAgICAgICBsYXllci0+c2V0SGFzVmlzaWJsZUNvbnRlbnQoKTsKQEAgLTI1MjcsMTEgKzI1Mjcs
NiBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6Om1hcmtSZW5kZXJlckRpcnR5QWZ0ZXJUb3BMYXllckNo
YW5nZShSZW5kZXJFbGVtZW50KiByZW5kZXJlcgogICAgIHJlbmRlckJveC0+c2V0TmVlZHNMYXlv
dXQoKTsKIH0KIAotYm9vbCBSZW5kZXJFbGVtZW50Ojppc1NraXBwZWRDb250ZW50Um9vdCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmlzU2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCks
IGVsZW1lbnQoKSkgJiYgIXZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubmVlZHNT
a2lwcGVkQ29udGVudExheW91dCgpOwotfQotCiBib29sIFJlbmRlckVsZW1lbnQ6Omhhc0VsaWdp
YmxlQ29udGFpbm1lbnRGb3JTaXplUXVlcnkoKSBjb25zdAogewogICAgIHN3aXRjaCAoc3R5bGUo
KS5jb250YWluZXJUeXBlKCkpIHsKQEAgLTI1NTcsNyArMjU1Miw3IEBAIHZvaWQgUmVuZGVyRWxl
bWVudDo6bGF5b3V0SWZOZWVkZWQoKQogewogICAgIGlmICghbmVlZHNMYXlvdXQoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGlmIChpc1NraXBwZWRDb250ZW50Rm9yTGF5b3V0KCkpIHsKKyAgICBp
ZiAobGF5b3V0Q29udGV4dCgpLmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKnRoaXMpKSB7CiAg
ICAgICAgIGNsZWFyTmVlZHNMYXlvdXRGb3JTa2lwcGVkQ29udGVudCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXgg
M2Y2NjIzZGFhOWI1Li5jMzkyZmVhMmRiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuaApAQCAtMjkyLDggKzI5Miw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2
b2lkIG1hcmtSZW5kZXJlckRpcnR5QWZ0ZXJUb3BMYXllckNoYW5nZShSZW5kZXJFbGVtZW50KiBy
ZW5kZXJlciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5pbmdCbG9ja0JlZm9yZVN0eWxlUmVzb2x1dGlv
bik7CiAKLSAgICBib29sIGlzU2tpcHBlZENvbnRlbnRSb290KCkgY29uc3Q7Ci0KICAgICB2b2lk
IGNsZWFyTmVlZHNMYXlvdXRGb3JTa2lwcGVkQ29udGVudCgpOwogCiAgICAgdm9pZCBzZXRSZW5k
ZXJCb3hIYXNTaGFwZU91dHNpZGVJbmZvKGJvb2wgYikgeyBtX3JlbmRlckJveEhhc1NoYXBlT3V0
c2lkZUluZm8gPSBiOyB9CkBAIC00MjgsNiArNDI2LDcgQEAgcHJpdmF0ZToKIGlubGluZSBpbnQg
YWRqdXN0Rm9yQWJzb2x1dGVab29tKGludCwgY29uc3QgUmVuZGVyRWxlbWVudCYpOwogaW5saW5l
IExheW91dFVuaXQgYWRqdXN0TGF5b3V0VW5pdEZvckFic29sdXRlWm9vbShMYXlvdXRVbml0LCBj
b25zdCBSZW5kZXJFbGVtZW50Jik7CiBpbmxpbmUgTGF5b3V0U2l6ZSBhZGp1c3RMYXlvdXRTaXpl
Rm9yQWJzb2x1dGVab29tKExheW91dFNpemUsIGNvbnN0IFJlbmRlckVsZW1lbnQmKTsKK2lubGlu
ZSBib29sIGlzU2tpcHBlZENvbnRlbnRSb290KGNvbnN0IFJlbmRlckVsZW1lbnQmKTsKIAogaW5s
aW5lIHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0Q2hpbGROZWVkc0xheW91dChNYXJraW5nQmVoYXZp
b3IgbWFya1BhcmVudHMpCiB7CkBAIC00OTMsMTMgKzQ5Miw2IEBAIGlubGluZSBSZW5kZXJPYmpl
Y3QqIFJlbmRlckVsZW1lbnQ6Omxhc3RJbkZsb3dDaGlsZCgpIGNvbnN0CiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLWlubGluZSBib29sIFJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudFJv
b3QoKSBjb25zdAotewotICAgIGlmIChpc1JlbmRlclRleHQoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJFbGVtZW50PigqdGhpcykuaXNTa2lwcGVk
Q29udGVudFJvb3QoKTsKLX0KLQogaW5saW5lIFJlbmRlckVsZW1lbnQqIFJlbmRlck9iamVjdDo6
cGFyZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wYXJlbnQuZ2V0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50SW5saW5lcy5oCmluZGV4IGFlMmIwMTIy
NGYwNC4uMGNkZjkzMDE1ZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudElubGluZXMuaApAQCAtNzUsNyArNzUsNyBAQCBpbmxpbmUgYm9vbCBSZW5kZXJF
bGVtZW50OjpzaG91bGRBcHBseUFueUNvbnRhaW5tZW50KCkgY29uc3QKIAogaW5saW5lIGJvb2wg
UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQoKSBjb25zdAog
ewotICAgIHJldHVybiBXZWJDb3JlOjppc1NraXBwZWRDb250ZW50Um9vdChzdHlsZSgpLCBlbGVt
ZW50KCkpIHx8IHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHlsZSgpLmNvbnRh
aW5zSW5saW5lU2l6ZSgpKTsKKyAgICByZXR1cm4gaXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMp
IHx8IHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHlsZSgpLmNvbnRhaW5zSW5s
aW5lU2l6ZSgpKTsKIH0KIAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlM
YXlvdXRDb250YWlubWVudCgpIGNvbnN0CkBAIC0xMDAsMTIgKzEwMCwxMiBAQCBpbmxpbmUgYm9v
bCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVBhaW50Q29udGFpbm1lbnQoKSBjb25zdAogCiBp
bmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmlzU2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCks
IGVsZW1lbnQoKSkgfHwgc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCku
Y29udGFpbnNTaXplKCkpOworICAgIHJldHVybiBpc1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykg
fHwgc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXpl
KCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVPcklu
bGluZVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmlzU2tp
cHBlZENvbnRlbnRSb290KHN0eWxlKCksIGVsZW1lbnQoKSkgfHwgc2hvdWxkQXBwbHlTaXplT3JT
dHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXplT3JJbmxpbmVTaXplKCkpOworICAg
IHJldHVybiBpc1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykgfHwgc2hvdWxkQXBwbHlTaXplT3JT
dHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXplT3JJbmxpbmVTaXplKCkpOwogfQog
CiAvLyBGSVhNRTogdHJ5IHRvIGF2b2lkIGR1cGxpY2F0aW9uIHdpdGggaXNTa2lwcGVkQ29udGVu
dFJvb3QuCkBAIC0xNDIsNCArMTQyLDE4IEBAIGlubGluZSBMYXlvdXRVbml0IGFkanVzdExheW91
dFVuaXRGb3JBYnNvbHV0ZVpvb20oTGF5b3V0VW5pdCB2YWx1ZSwgY29uc3QgUmVuZGVyCiAgICAg
cmV0dXJuIGFkanVzdExheW91dFVuaXRGb3JBYnNvbHV0ZVpvb20odmFsdWUsIHJlbmRlcmVyLnN0
eWxlKCkpOwogfQogCitpbmxpbmUgYm9vbCBpc1NraXBwZWRDb250ZW50Um9vdChjb25zdCBSZW5k
ZXJFbGVtZW50JiByZW5kZXJlcikKK3sKKyAgICBhdXRvJiBzdHlsZSA9IHJlbmRlcmVyLnN0eWxl
KCk7CisgICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxp
dHk6OlZpc2libGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBjb250ZW50LXZpc2li
aWxpdHkgYXBwbGllcyB0byBlbGVtZW50cyBmb3Igd2hpY2ggc2l6ZSBjb250YWlubWVudCBjYW4g
YXBwbHkgKGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8jY29udGVudC12aXNp
YmlsaXR5KQorICAgIGlmICghZG9lc1NpemVDb250YWlubWVudEFwcGx5QnlTdHlsZShzdHlsZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuY29udGVudFZpc2liaWxpdHko
KSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBBU1NFUlQoc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6
QXV0byk7CisgICAgcmV0dXJuIHJlbmRlcmVyLmVsZW1lbnQoKSAmJiAhcmVuZGVyZXIuZWxlbWVu
dCgpLT5pc1JlbGV2YW50VG9Vc2VyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCBjNzgxZDY1OTJhYzQuLjdk
MTZiNjRlY2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAt
MTQ5OCw3ICsxNDk4LDcgQEAgYm9vbCBSZW5kZXJHcmlkOjpoYXNTdGF0aWNQb3NpdGlvbkZvckdy
aWRJdGVtKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRUcmEKIAogdm9pZCBSZW5kZXJH
cmlkOjpsYXlvdXRQb3NpdGlvbmVkT2JqZWN0KFJlbmRlckJveCYgZ3JpZEl0ZW0sIGJvb2wgcmVs
YXlvdXRDaGlsZHJlbiwgYm9vbCBmaXhlZFBvc2l0aW9uT2JqZWN0c09ubHkpCiB7Ci0gICAgaWYg
KGlzU2tpcHBlZENvbnRlbnRSb290KCkpIHsKKyAgICBpZiAobGF5b3V0Q29udGV4dCgpLmlzU2tp
cHBlZENvbnRlbnRSb290Rm9yTGF5b3V0KCp0aGlzKSkgewogICAgICAgICBncmlkSXRlbS5jbGVh
ck5lZWRzTGF5b3V0Rm9yU2tpcHBlZENvbnRlbnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggOGM2YjA3NmI1
NDk1Li5jMjk3MzJkNjQxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCkBAIC0yOTQ4LDExICsyOTQ4LDYgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OmlzU2tpcHBl
ZENvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+c3R5bGUo
KS5oYXNTa2lwcGVkQ29udGVudCgpOwogfQogCi1ib29sIFJlbmRlck9iamVjdDo6aXNTa2lwcGVk
Q29udGVudEZvckxheW91dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzU2tpcHBlZENvbnRlbnQo
KSAmJiAhdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5uZWVkc1NraXBwZWRDb250
ZW50TGF5b3V0KCk7Ci19Ci0KIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgdHMgPDwgcmVuZGVyZXIuZGVi
dWdEZXNjcmlwdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmlu
ZGV4IDkxMTRlMzhkNWM2Zi4uMmEwOWQzYTdjMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIEhpdFRlc3RSZXF1ZXN0Owog
Y2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBMZWdhY3lJbmxp
bmVCb3g7CitjbGFzcyBMb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQ7CiBjbGFzcyBQYXRoOwog
Y2xhc3MgUG9zaXRpb247CiBjbGFzcyBSZWZlcmVuY2VkU1ZHUmVzb3VyY2VzOwpAQCAtNzM5LDYg
Kzc0MCw3IEBAIHB1YmxpYzoKIAogICAgIFJlbmRlclZpZXcmIHZpZXcoKSBjb25zdCB7IHJldHVy
biAqZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCk7IH0KICAgICBDaGVja2VkUmVmPFJlbmRlclZpZXc+
IGNoZWNrZWRWaWV3KCkgY29uc3Q7CisgICAgaW5saW5lIGNvbnN0IExvY2FsRnJhbWVWaWV3TGF5
b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCgpIGNvbnN0OwogCiAgICAgSG9zdFdpbmRvdyogaG9z
dFdpbmRvdygpIGNvbnN0OwogCkBAIC0xMTQ1LDkgKzExNDcsNiBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGlzU2tpcHBlZENvbnRlbnQoKSBjb25zdDsKIAotICAgIGJvb2wgaXNTa2lwcGVkQ29udGVu
dFJvb3QoKSBjb25zdDsKLSAgICBib29sIGlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSBjb25z
dDsKLQogICAgIFBvaW50ZXJFdmVudHMgdXNlZFBvaW50ZXJFdmVudHMoKSBjb25zdDsKIAogcHJv
dGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dElubGluZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RJbmxpbmVz
LmgKaW5kZXggZjY3MjM2ZjQ1ZDNlLi4zOTcyNzNhZDVhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RJbmxpbmVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdElubGluZXMuaApAQCAtMjIsNiArMjIsNyBAQAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAi
UmVuZGVyU3R5bGVJbmxpbmVzLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTMxLDUgKzMyLDYgQEAgaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0
Ojppc0Jsb2NrTGV2ZWxCb3goKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmlzRGlzcGxheUJsb2MK
IGlubGluZSBib29sIFJlbmRlck9iamVjdDo6aXNUcmFuc2Zvcm1lZCgpIGNvbnN0IHsgcmV0dXJu
IGhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgpICYmIChzdHlsZSgpLmFmZmVjdHNUcmFuc2Zv
cm0oKSB8fCBoYXNTVkdUcmFuc2Zvcm0oKSk7IH0KIGlubGluZSBib29sIFJlbmRlck9iamVjdDo6
cHJlc2VydmVzTmV3bGluZSgpIGNvbnN0IHsgcmV0dXJuICFpc1JlbmRlclNWR0lubGluZVRleHQo
KSAmJiBzdHlsZSgpLnByZXNlcnZlTmV3bGluZSgpOyB9CiBpbmxpbmUgUmVmPERvY3VtZW50PiBS
ZW5kZXJPYmplY3Q6OnByb3RlY3RlZERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZG9jdW1lbnQo
KTsgfQoraW5saW5lIGNvbnN0IExvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dCYgUmVuZGVyT2Jq
ZWN0OjpsYXlvdXRDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gdmlldygpLmZyYW1lVmlldygpLmxh
eW91dENvbnRleHQoKTsgfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA3OWFjMDlmNWRmODIuLjliNmJk
YjVhZWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3Bw
CkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6cGFpbnQoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIAogICAgIGlmIChw
YWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZTo6RXZlbnRSZWdpb24pIHsKICNpZiBFTkFCTEUo
SU5URVJBQ1RJT05fUkVHSU9OU19JTl9FVkVOVF9SRUdJT04pCi0gICAgICAgIGlmIChpc1JlbmRl
ck9yTGVnYWN5UmVuZGVyU1ZHUm9vdCgpICYmICFpc1NraXBwZWRDb250ZW50Um9vdCgpKQorICAg
ICAgICBpZiAoaXNSZW5kZXJPckxlZ2FjeVJlbmRlclNWR1Jvb3QoKSAmJiAhaXNTa2lwcGVkQ29u
dGVudFJvb3QoKnRoaXMpKQogICAgICAgICAgICAgcGFpbnRSZXBsYWNlZChwYWludEluZm8sIGFk
anVzdGVkUGFpbnRPZmZzZXQpOwogICAgICAgICBlbHNlIGlmICh2aXNpYmxlVG9IaXRUZXN0aW5n
KCkpIHsKICNlbHNlCkBAIC0zMTYsNyArMzE2LDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6cGFp
bnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkK
ICAgICB9CiAKICAgICBpZiAoIWNvbXBsZXRlbHlDbGlwcGVkT3V0KSB7Ci0gICAgICAgIGlmICgh
aXNTa2lwcGVkQ29udGVudFJvb3QoKSkKKyAgICAgICAgaWYgKCFpc1NraXBwZWRDb250ZW50Um9v
dCgqdGhpcykpCiAgICAgICAgICAgICBwYWludFJlcGxhY2VkKHBhaW50SW5mbywgYWRqdXN0ZWRQ
YWludE9mZnNldCk7CiAKICAgICAgICAgaWYgKHN0eWxlKCkuaGFzQm9yZGVyUmFkaXVzKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IGY0ZjcwMTI2NWE2
NS4uZjEzMjAwZWNjODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyV2lkZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0
LmNwcApAQCAtMzMzLDcgKzMzMyw3IEBAIHZvaWQgUmVuZGVyV2lkZ2V0OjpwYWludChQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgICAgICBj
bGlwVG9Db250ZW50Qm94U2hhcGUocGFpbnRJbmZvLmNvbnRleHQoKSwgYWRqdXN0ZWRQYWludE9m
ZnNldCwgZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICB9CiAKLSAgICBpZiAo
bV93aWRnZXQgJiYgIWlzU2tpcHBlZENvbnRlbnRSb290KCkpCisgICAgaWYgKG1fd2lkZ2V0ICYm
ICFpc1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykpCiAgICAgICAgIHBhaW50Q29udGVudHMocGFp
bnRJbmZvLCBwYWludE9mZnNldCk7CiAKICAgICBpZiAoc3R5bGUoKS5oYXNCb3JkZXJSYWRpdXMo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXgg
NTFiZWY1YTg2ZTJmLi45MWNjN2FiNWQzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0yNDEzLDggKzI0MTMsNyBAQCBpbmxpbmUgYm9vbCBw
c2V1ZG9FbGVtZW50UmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSopOwogaW5saW5l
IGJvb2wgZ2VuZXJhdGVzQm94KGNvbnN0IFJlbmRlclN0eWxlJik7CiBpbmxpbmUgYm9vbCBpc05v
blZpc2libGVPdmVyZmxvdyhPdmVyZmxvdyk7CiAKLWlubGluZSBib29sIGlzU2tpcHBlZENvbnRl
bnRSb290KGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopOwotCiBpbmxpbmUgYm9v
bCBpc1Zpc2libGVUb0hpdFRlc3RpbmcoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBIaXRUZXN0
UmVxdWVzdCYpOworaW5saW5lIGJvb2wgZG9lc1NpemVDb250YWlubWVudEFwcGx5QnlTdHlsZShj
b25zdCBSZW5kZXJTdHlsZSYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJbmxpbmVzLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJbmxpbmVzLmgKaW5kZXgg
YjViMDE5OWY3ZjBhLi44MzBjOTk2MDc3YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJbmxpbmVzLmgKQEAgLTk3Niw2ICs5NzYsMjMgQEAg
Y29uc3RleHByIGJvb2wgUmVuZGVyU3R5bGU6OmlzUnVieUNvbnRhaW5lck9ySW50ZXJuYWxSdWJ5
Qm94KERpc3BsYXlUeXBlIGRpc3BsYXkKICAgICAgICAgfHwgZGlzcGxheSA9PSBEaXNwbGF5VHlw
ZTo6UnVieUJhc2U7CiB9CiAKK2lubGluZSBib29sIGRvZXNTaXplQ29udGFpbm1lbnRBcHBseUJ5
U3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQoreworICAgIC8vIGh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3MtY29udGFpbi0yLyNjb250YWlubWVudC1zaXplCisgICAgLy8gR2l2aW5n
IGFuIGVsZW1lbnQgc2l6ZSBjb250YWlubWVudCBoYXMgbm8gZWZmZWN0IGlmIGFueSBvZiB0aGUg
Zm9sbG93aW5nIGFyZSB0cnVlOgorICAgIC8vIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVy
YXRlIGEgcHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50
cyBvciBkaXNwbGF5OiBub25lKQorICAgIC8vIGlmIGl0cyBpbm5lciBkaXNwbGF5IHR5cGUgaXMg
dGFibGUKKyAgICAvLyBpZiBpdHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCB0YWJsZSBi
b3gKKyAgICAvLyBpZiBpdHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCBydWJ5IGJveCBv
ciBhIG5vbi1hdG9taWMgaW5saW5lLWxldmVsIGJveAorICAgIGF1dG8gZGlzcGxheVR5cGUgPSBz
dHlsZS5kaXNwbGF5KCk7CisgICAgcmV0dXJuIGRpc3BsYXlUeXBlICE9IERpc3BsYXlUeXBlOjpO
b25lCisgICAgICAgICYmIGRpc3BsYXlUeXBlICE9IERpc3BsYXlUeXBlOjpDb250ZW50cworICAg
ICAgICAmJiBkaXNwbGF5VHlwZSAhPSBEaXNwbGF5VHlwZTo6VGFibGUKKyAgICAgICAgJiYgZGlz
cGxheVR5cGUgIT0gRGlzcGxheVR5cGU6OklubGluZVRhYmxlCisgICAgICAgICYmICFzdHlsZS5p
c0ludGVybmFsVGFibGVCb3goKQorICAgICAgICAmJiAhc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJ
bnRlcm5hbFJ1YnlCb3goKTsKK30KKwogaW5saW5lIGRvdWJsZSBSZW5kZXJTdHlsZTo6bG9naWNh
bEFzcGVjdFJhdGlvKCkgY29uc3QKIHsKICAgICBBU1NFUlQoYXNwZWN0UmF0aW9UeXBlKCkgIT0g
QXNwZWN0UmF0aW9UeXBlOjpBdXRvKTsKQEAgLTk5MCwzMiArMTAwNyw2IEBAIGNvbnN0ZXhwciBi
b29sIFJlbmRlclN0eWxlOjpwcmVzZXJ2ZU5ld2xpbmUoV2hpdGVTcGFjZSBtb2RlKQogICAgIHJl
dHVybiBtb2RlICE9IFdoaXRlU3BhY2U6Ok5vcm1hbCAmJiBtb2RlICE9IFdoaXRlU3BhY2U6Ok5v
V3JhcDsKIH0KIAotaW5saW5lIGJvb2wgaXNTa2lwcGVkQ29udGVudFJvb3QoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlbGVtZW50KQotewotICAgIGlmIChzdHlsZS5j
b250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNpYmxlKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICBhdXRvIGRvZXNDb250ZW50VmlzaWJpbGl0eUFwcGx5ID0g
WyZdIHsKLSAgICAgICAgLy8gY29udGVudC12aXNpYmlsaXR5IGFwcGxpZXMgdG8gZWxlbWVudHMg
Zm9yIHdoaWNoIHNpemUgY29udGFpbm1lbnQgY2FuIGFwcGx5IChodHRwczovL2RyYWZ0cy5jc3N3
Zy5vcmcvY3NzLWNvbnRhaW4vI2NvbnRlbnQtdmlzaWJpbGl0eSkKLQotICAgICAgICAvLyBodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4tMi8jY29udGFpbm1lbnQtc2l6ZQotICAg
ICAgICAvLyBHaXZpbmcgYW4gZWxlbWVudCBzaXplIGNvbnRhaW5tZW50IGhhcyBubyBlZmZlY3Qg
aWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJlIHRydWU6Ci0gICAgICAgIC8vIGlmIHRoZSBlbGVt
ZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0
aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQotICAgICAgICAvLyBpZiBpdHMg
aW5uZXIgZGlzcGxheSB0eXBlIGlzIHRhYmxlCi0gICAgICAgIC8vIGlmIGl0cyBwcmluY2lwYWwg
Ym94IGlzIGFuIGludGVybmFsIHRhYmxlIGJveAotICAgICAgICAvLyBpZiBpdHMgcHJpbmNpcGFs
IGJveCBpcyBhbiBpbnRlcm5hbCBydWJ5IGJveCBvciBhIG5vbi1hdG9taWMgaW5saW5lLWxldmVs
IGJveAotICAgICAgICBhdXRvIGRpc3BsYXlUeXBlID0gc3R5bGUuZGlzcGxheSgpOwotICAgICAg
ICBhdXRvIGRvZXNOb3RBcHBseSA9IGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpOb25lIHx8
IGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpDb250ZW50cyB8fCBkaXNwbGF5VHlwZSA9PSBE
aXNwbGF5VHlwZTo6VGFibGUgfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OklubGluZVRh
YmxlIHx8IHN0eWxlLmlzSW50ZXJuYWxUYWJsZUJveCgpIHx8IHN0eWxlLmlzUnVieUNvbnRhaW5l
ck9ySW50ZXJuYWxSdWJ5Qm94KCk7Ci0gICAgICAgIHJldHVybiAhZG9lc05vdEFwcGx5OwotICAg
IH07Ci0gICAgaWYgKCFkb2VzQ29udGVudFZpc2liaWxpdHlBcHBseSgpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZp
c2liaWxpdHk6OkhpZGRlbikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgQVNTRVJUKHN0eWxl
LmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pOwotICAgIHJl
dHVybiBlbGVtZW50ICYmICFlbGVtZW50LT5pc1JlbGV2YW50VG9Vc2VyKCk7Ci19Ci0KIGlubGlu
ZSBmbG9hdCBhZGp1c3RGbG9hdEZvckFic29sdXRlWm9vbShmbG9hdCB2YWx1ZSwgY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKQogewogICAgIHJldHVybiB2YWx1ZSAvIHN0eWxlLnVzZWRab29tKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVVcGRhdGVyLmNwcAppbmRleCBhYzVjOTBmODllZDQuLmMyN2U2Yzc5MzdjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0
ZXIuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAj
aW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckRlc2NlbmRhbnRJdGVy
YXRvci5oIgorI2luY2x1ZGUgIlJlbmRlckVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyRmxleGlibGVCb3guaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJS
ZW5kZXJMYXllci5oIgpAQCAtNDY4LDcgKzQ2OSw3IEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6
OnVwZGF0ZUVsZW1lbnRSZW5kZXJlcihFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHlsZTo6RWxl
CiAgICAgYXV0byBzY29wZUV4aXQgPSBtYWtlU2NvcGVFeGl0KFsmXSB7CiAgICAgICAgIGlmICgh
aGFzRGlzcGxheUNvbnRlbnRzT3JOb25lKSB7CiAgICAgICAgICAgICBhdXRvKiBib3ggPSBlbGVt
ZW50LnJlbmRlckJveCgpOwotICAgICAgICAgICAgaWYgKGJveCAmJiBib3gtPnN0eWxlKCkuaGFz
QXV0b0xlbmd0aENvbnRhaW5JbnRyaW5zaWNTaXplKCkgJiYgIWJveC0+aXNTa2lwcGVkQ29udGVu
dFJvb3QoKSkKKyAgICAgICAgICAgIGlmIChib3ggJiYgYm94LT5zdHlsZSgpLmhhc0F1dG9MZW5n
dGhDb250YWluSW50cmluc2ljU2l6ZSgpICYmICFpc1NraXBwZWRDb250ZW50Um9vdCgqYm94KSkK
ICAgICAgICAgICAgICAgICBtX2RvY3VtZW50LT5vYnNlcnZlRm9yQ29udGFpbkludHJpbnNpY1Np
emUoZWxlbWVudCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9kb2N1bWVu
dC0+dW5vYnNlcnZlRm9yQ29udGFpbkludHJpbnNpY1NpemUoZWxlbWVudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IGQ2OTI5OWRjMzlkZi4uNzY0ZGM2YWYzY2Vm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApAQCAtNzUxLDggKzc1MSwx
MiBAQCB2b2lkIEFkanVzdGVyOjphZGp1c3QoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5k
ZXJTdHlsZSogdXNlckFnZW50QXBwZWFyYW5jZQogICAgICAgICAgICAgYWRqdXN0Rm9yVGV4dEF1
dG9zaXppbmcoc3R5bGUsICptX2VsZW1lbnQpOwogI2VuZGlmCiAgICAgfQotICAgIGlmIChpc1Nr
aXBwZWRDb250ZW50Um9vdChzdHlsZSwgbV9lbGVtZW50LmdldCgpKSAmJiBtX3BhcmVudFN0eWxl
LmNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikKLSAgICAg
ICAgc3R5bGUuc2V0VXNlZENvbnRlbnRWaXNpYmlsaXR5KHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5
KCkpOworCisgICAgaWYgKG1fcGFyZW50U3R5bGUuY29udGVudFZpc2liaWxpdHkoKSAhPSBDb250
ZW50VmlzaWJpbGl0eTo6SGlkZGVuKSB7CisgICAgICAgIGF1dG8gaXNTa2lwcGVkQ29udGVudFJv
b3QgPSBzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpICE9IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNp
YmxlICYmIGRvZXNTaXplQ29udGFpbm1lbnRBcHBseUJ5U3R5bGUoc3R5bGUpICYmIG1fZWxlbWVu
dCAmJiAhbV9lbGVtZW50LT5pc1JlbGV2YW50VG9Vc2VyKCk7CisgICAgICAgIGlmIChpc1NraXBw
ZWRDb250ZW50Um9vdCkKKyAgICAgICAgICAgIHN0eWxlLnNldFVzZWRDb250ZW50VmlzaWJpbGl0
eShzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpKTsKKyAgICB9CiAKICAgICBpZiAoc3R5bGUuY29u
dGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykgewogICAgICAgICBz
dHlsZS5jb250YWluSW50cmluc2ljV2lkdGhBZGRBdXRvKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473286</attachid>
            <date>2024-11-19 20:32:45 -0800</date>
            <delta_ts>2024-11-20 05:53:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-283395-20241119203244.patch</filename>
            <type>text/plain</type>
            <size>30613</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2MDY1MDIyYTUwNWIxZjQ1MjY5OTRkZmM5NWJhNmZmNDBhOWZkYTIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMTkgTm92IDIwMjQgMjA6Mjc6NTAgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF1bY29udGVudC12aXNpYmlsaXR5XQogUmVuZGVyT2JqZWN0Ojppc1NraXBwZWRDb250ZW50Um9v
dCBoYXMgbGF5b3V0IGRlcGVuZGVudCBzdGF0ZQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI4MzM5NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpOZWVkcyBz
b21lIHdvcmRzLgoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6
Q2FsbGJhY2tGb3JDb250YWluSW50cmluc2ljU2l6ZSk6CihXZWJDb3JlOjpEb2N1bWVudDo6Y2Fy
ZXRQb3NpdGlvbkZyb21Qb2ludCk6CiogU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0
b3IuY3BwOgooV2ViQ29yZTo6VGV4dEl0ZXJhdG9yOjphZHZhbmNlKToKKiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0xvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHA6CihXZWJDb3JlOjpMb2NhbEZy
YW1lVmlld0xheW91dENvbnRleHQ6OmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQgY29uc3QpOgoo
V2ViQ29yZTo6TG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0Ojppc1NraXBwZWRDb250ZW50Um9v
dEZvckxheW91dCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlld0xh
eW91dENvbnRleHQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNpbXBsaWZpZWRMYXlvdXQpOgooV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxheW91dFBvc2l0aW9uZWRPYmplY3QpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnBhaW50Q29udGVudHMpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkanVzdEJvcmRlckJveFJl
Y3RGb3JQYWludGluZyk6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRSZWN0VG9DbGlwT3V0
RnJvbUJvcmRlcik6CihXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRFeGNsdWRlZENoaWxkcmVu
SW5Cb3JkZXIpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3Bw
OgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja0NoaWxkcmVuKToKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRlckJveDo6
Zm9yZWdyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5SZWN0IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRl
ckJveDo6ZXhwbGljaXRJbnRyaW5zaWNJbm5lcldpZHRoIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRl
ckJveDo6ZXhwbGljaXRJbnRyaW5zaWNJbm5lckhlaWdodCBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6
c3R5bGVXaWxsQ2hhbmdlKToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmxheW91dElmTmVlZGVk
KToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmlzU2tpcHBlZENvbnRlbnRSb290IGNvbnN0KTog
RGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oOgooV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0Ojppc1NraXBwZWRDb250ZW50Um9vdCBjb25zdCk6IERlbGV0ZWQu
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnRJbmxpbmVzLmg6CihXZWJD
b3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVudCBjb25z
dCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCBj
b25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVPcklubGluZVNp
emVDb250YWlubWVudCBjb25zdCk6CihXZWJDb3JlOjppc1NraXBwZWRDb250ZW50Um9vdCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgooV2ViQ29yZTo6UmVuZGVy
R3JpZDo6bGF5b3V0UG9zaXRpb25lZE9iamVjdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzU2tpcHBlZENvbnRl
bnRGb3JMYXlvdXQgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0SW5s
aW5lcy5oOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpsYXlvdXRDb250ZXh0IGNvbnN0KToKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgooV2ViQ29yZTo6UmVu
ZGVyUmVwbGFjZWQ6OnBhaW50KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmNwcDoKKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6cGFpbnQpOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaDoKKFdlYkNvcmU6OmRvZXNTaXplQ29udGFpbm1l
bnRBcHBseUJ5U3R5bGUpOgooV2ViQ29yZTo6aXNTa2lwcGVkQ29udGVudFJvb3QpOiBEZWxldGVk
LgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5j
cHA6CihXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxlbWVudFJlbmRlcmVyKToK
KiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcDoKKFdlYkNvcmU6OlN0eWxl
OjpBZGp1c3Rlcjo6YWRqdXN0IGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwICAgICAgICAgICAgICAgfCAgNSArKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dEl0ZXJhdG9yLmNwcCAgICAgICB8ICA1ICsrLQogLi4uL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlv
dXRDb250ZXh0LmNwcCAgICAgIHwgMTcgKysrKysrKy0KIC4uLi9wYWdlL0xvY2FsRnJhbWVWaWV3
TGF5b3V0Q29udGV4dC5oICAgICAgICB8ICA2ICsrLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcCAgICAgIHwgMTIgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcCAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAgICAgICAgIHwgIDYgKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAgICAgfCAgOSArLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5oICAgICAgfCAxMCArLS0tLQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnRJbmxpbmVzLmggIHwgMjAgKysrKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5jcHAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAgICAgIHwgIDUgLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmggICAgICAgfCAgNSArLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3RJbmxpbmVzLmggICB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyV2lkZ2V0LmNwcCAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmggIHwgIDMgKy0KIC4uLi9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJ
bmxpbmVzLmggICAgICB8IDQzICsrKysrKysrLS0tLS0tLS0tLS0KIC4uLi9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwICB8ICAzICstCiBTb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUFkanVzdGVyLmNwcCAgICAgICAgfCAgOCArKystCiAyMCBmaWxlcyBjaGFuZ2VkLCA5
MSBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApp
bmRleCA5MWE0ZGFkOGUwZWMuLmVjYTM4MWM3ODMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC0yMTYsNiArMjE2LDcgQEAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94SW5saW5lcy5oIgogI2luY2x1ZGUgIlJlbmRlckNoaWxk
SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUg
IlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxheW91dFN0YXRlLmgiCkBAIC00NDMsNyArNDQ0LDcgQEAgc3RhdGljIHZv
aWQgQ2FsbGJhY2tGb3JDb250YWluSW50cmluc2ljU2l6ZShjb25zdCBWZWN0b3I8UmVmPFJlc2l6
ZU9ic2VydmVyRW50cnkKICAgICAgICAgICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoKnRhcmdl
dCk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBBU1NFUlQoIWJveC0+aXNTa2lwcGVkQ29udGVudFJvb3QoKSk7CisgICAgICAgICAgICBBU1NF
UlQoIWlzU2tpcHBlZENvbnRlbnRSb290KCpib3gpKTsKICAgICAgICAgICAgIEFTU0VSVChib3gt
PnN0eWxlKCkuaGFzQXV0b0xlbmd0aENvbnRhaW5JbnRyaW5zaWNTaXplKCkpOwogCiAgICAgICAg
ICAgICBhdXRvIGNvbnRlbnRCb3hTaXplID0gZW50cnktPmNvbnRlbnRCb3hTaXplKCkuYXQoMCk7
CkBAIC0yMDc3LDcgKzIwNzgsNyBAQCBzdGQ6Om9wdGlvbmFsPEJvdW5kYXJ5UG9pbnQ+IERvY3Vt
ZW50OjpjYXJldFBvc2l0aW9uRnJvbVBvaW50KGNvbnN0IExheW91dFBvaW50JgogICAgIGlmICgh
cmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBpZiAocmVuZGVy
ZXItPmlzU2tpcHBlZENvbnRlbnRSb290KCkpCisgICAgaWYgKGF1dG8qIHJlbmRlckVsZW1lbnQg
PSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oKnJlbmRlcmVyKTsgcmVuZGVyRWxlbWVu
dCAmJiBpc1NraXBwZWRDb250ZW50Um9vdCgqcmVuZGVyRWxlbWVudCkpCiAgICAgICAgIHJldHVy
biB7IHsgKm5vZGUsIDAgfSB9OwogCiAgICAgYXV0byByYW5nZUNvbXBsaWFudFBvc2l0aW9uID0g
cmVuZGVyZXItPnBvc2l0aW9uRm9yUG9pbnQobG9jYWxQb2ludCwgc291cmNlKS5wYXJlbnRBbmNo
b3JlZEVxdWl2YWxlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApp
bmRleCA0ZWNlODBmMTJkMWMuLjIxMDI0Nzk3YWZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VGV4dEl0ZXJhdG9yLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIk5vZGVUcmF2ZXJz
YWwuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveElubGluZXMuaCIK
KyNpbmNsdWRlICJSZW5kZXJFbGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdl
LmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNl
bGwuaCIKQEAgLTQ4OCw5ICs0ODksOSBAQCB2b2lkIFRleHRJdGVyYXRvcjo6YWR2YW5jZSgpCiAg
ICAgICAgICAgICBpZiAoIWlzUmVuZGVyZXJWaXNpYmxlKHJlbmRlcmVyLmdldCgpLCBtX2JlaGF2
aW9ycykpIHsKICAgICAgICAgICAgICAgICBtX2hhbmRsZWROb2RlID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICBtX2hhbmRsZWRDaGlsZHJlbiA9ICFoYXNEaXNwbGF5Q29udGVudHMoKnByb3RlY3Rl
ZEN1cnJlbnROb2RlKCkpICYmICFyZW5kZXJlcjsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoaXM8
RWxlbWVudD4obV9jdXJyZW50Tm9kZS5nZXQoKSkgJiYgcmVuZGVyZXItPmlzU2tpcHBlZENvbnRl
bnRSb290KCkpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXV0byogcmVuZGVyRWxlbWVudCA9
IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJFbGVtZW50PihyZW5kZXJlci5nZXQoKSk7IHJlbmRlckVs
ZW1lbnQgJiYgaXNTa2lwcGVkQ29udGVudFJvb3QoKnJlbmRlckVsZW1lbnQpKQogICAgICAgICAg
ICAgICAgIG1faGFuZGxlZENoaWxkcmVuID0gdHJ1ZTsKLSAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgY3VycmVudCBub2Rl
IGFjY29yZGluZyB0byBpdHMgdHlwZQogICAgICAgICAgICAgICAgIGlmIChyZW5kZXJlci0+aXNS
ZW5kZXJUZXh0KCkgJiYgbV9jdXJyZW50Tm9kZS0+aXNUZXh0Tm9kZSgpKQogICAgICAgICAgICAg
ICAgICAgICBtX2hhbmRsZWROb2RlID0gaGFuZGxlVGV4dE5vZGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcAppbmRleCA4ZmVj
MDI2MzI3MzYuLjI4NWE2NDcxM2QzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9M
b2NhbEZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIlF1aXJrcy5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5k
ZXJMYXlvdXRTdGF0ZS5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU3R5bGVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNj
cmlwdERpc2FsbG93ZWRTY29wZS5oIgpAQCAtNTc3LDcgKzU3OCwyMSBAQCB2b2lkIExvY2FsRnJh
bWVWaWV3TGF5b3V0Q29udGV4dDo6YWRkTGF5b3V0RGVsdGEoY29uc3QgTGF5b3V0U2l6ZSYgZGVs
dGEpCiAgICAgaWYgKGF1dG8qIGxheW91dFN0YXRlID0gdGhpcy0+bGF5b3V0U3RhdGUoKSkKICAg
ICAgICAgbGF5b3V0U3RhdGUtPmFkZExheW91dERlbHRhKGRlbHRhKTsKIH0KLSAgICAKKworYm9v
bCBMb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQ6OmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQo
Y29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgaWYgKG5lZWRzU2tp
cHBlZENvbnRlbnRMYXlvdXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBy
ZW5kZXJlci5pc1NraXBwZWRDb250ZW50KCk7Cit9CisKK2Jvb2wgTG9jYWxGcmFtZVZpZXdMYXlv
dXRDb250ZXh0Ojppc1NraXBwZWRDb250ZW50Um9vdEZvckxheW91dChjb25zdCBSZW5kZXJFbGVt
ZW50JiByZW5kZXJlcikgY29uc3QKK3sKKyAgICBpZiAobmVlZHNTa2lwcGVkQ29udGVudExheW91
dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzU2tpcHBlZENvbnRlbnRS
b290KHJlbmRlcmVyKTsKK30KKwogI2lmIEFTU0VSVF9FTkFCTEVECiBib29sIExvY2FsRnJhbWVW
aWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0RGVsdGFNYXRjaGVzKGNvbnN0IExheW91dFNpemUmIGRl
bHRhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlld0xh
eW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlvdXRD
b250ZXh0LmgKaW5kZXggYjM5NjE0OGExMjgzLi4xMDU5NDA0OGFiNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQuaApAQCAtOTUsOSAr
OTUsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQoKSBjb25zdCB7
IHJldHVybiBsYXlvdXRQaGFzZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQ7
IH0KICAgICBib29sIGluUGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFz
ZSgpICE9IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0UGhhc2UoKSAh
PSBMYXlvdXRQaGFzZTo6SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2UoKSAhPSBMYXlv
dXRQaGFzZTo6SW5Qb3N0TGF5b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7IH0KIAotICAg
IGJvb2wgbmVlZHNTa2lwcGVkQ29udGVudExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNT
a2lwcGVkQ29udGVudExheW91dDsgfQogICAgIHZvaWQgc2V0TmVlZHNTa2lwcGVkQ29udGVudExh
eW91dChib29sIG5lZWRzU2tpcHBlZENvbnRlbnRMYXlvdXQpIHsgbV9uZWVkc1NraXBwZWRDb250
ZW50TGF5b3V0ID0gbmVlZHNTa2lwcGVkQ29udGVudExheW91dDsgfQogCisgICAgYm9vbCBpc1Nr
aXBwZWRDb250ZW50Rm9yTGF5b3V0KGNvbnN0IFJlbmRlckVsZW1lbnQmKSBjb25zdDsKKyAgICBi
b29sIGlzU2tpcHBlZENvbnRlbnRSb290Rm9yTGF5b3V0KGNvbnN0IFJlbmRlckVsZW1lbnQmKSBj
b25zdDsKKwogICAgIFJlbmRlckVsZW1lbnQqIHN1YnRyZWVMYXlvdXRSb290KCkgY29uc3Q7CiAg
ICAgdm9pZCBjbGVhclN1YnRyZWVMYXlvdXRSb290KCkgeyBtX3N1YnRyZWVMYXlvdXRSb290LmNs
ZWFyKCk7IH0KICAgICB2b2lkIGNvbnZlcnRTdWJ0cmVlTGF5b3V0VG9GdWxsTGF5b3V0KCk7CkBA
IC0xNzQsNiArMTc2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc2FibGVQYWludE9mZnNldENh
Y2hlKCkgeyBtX3BhaW50T2Zmc2V0Q2FjaGVEaXNhYmxlQ291bnQrKzsgfQogICAgIHZvaWQgZW5h
YmxlUGFpbnRPZmZzZXRDYWNoZSgpIHsgQVNTRVJUKG1fcGFpbnRPZmZzZXRDYWNoZURpc2FibGVD
b3VudCA+IDApOyBtX3BhaW50T2Zmc2V0Q2FjaGVEaXNhYmxlQ291bnQtLTsgfQogCisgICAgYm9v
bCBuZWVkc1NraXBwZWRDb250ZW50TGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc1NraXBw
ZWRDb250ZW50TGF5b3V0OyB9CisKICAgICBMb2NhbEZyYW1lJiBmcmFtZSgpIGNvbnN0OwogICAg
IFJlZjxMb2NhbEZyYW1lPiBwcm90ZWN0ZWRGcmFtZSgpOwogICAgIExvY2FsRnJhbWVWaWV3JiB2
aWV3KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRl
eCBiNDgzY2EwNWY4NjcuLjliODE1YzhhNGFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCkBAIC03OTEsNyArNzkxLDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6c2lt
cGxpZmllZExheW91dCgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgY2FuQ29u
dGFpbkZpeGVkUG9zT2JqZWN0cyA9IGNhbkNvbnRhaW5GaXhlZFBvc2l0aW9uT2JqZWN0cygpOwot
ICAgIGlmIChpc1NraXBwZWRDb250ZW50Um9vdCgpICYmIChwb3NDaGlsZE5lZWRzTGF5b3V0KCkg
fHwgY2FuQ29udGFpbkZpeGVkUG9zT2JqZWN0cykpCisgICAgaWYgKGxheW91dENvbnRleHQoKS5p
c1NraXBwZWRDb250ZW50Um9vdEZvckxheW91dCgqdGhpcykgJiYgKHBvc0NoaWxkTmVlZHNMYXlv
dXQoKSB8fCBjYW5Db250YWluRml4ZWRQb3NPYmplY3RzKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgLy8gTGF5IG91dCBwb3NpdGlvbmVkIGRlc2NlbmRhbnRzIG9yIG9iamVjdHMgdGhh
dCBqdXN0IG5lZWQgdG8gcmVjb21wdXRlIG92ZXJmbG93LgpAQCAtODc2LDcgKzg3Niw3IEBAIExh
eW91dFVuaXQgUmVuZGVyQmxvY2s6Om1hcmdpbkludHJpbnNpY0xvZ2ljYWxXaWR0aEZvckNoaWxk
KFJlbmRlckJveCYgY2hpbGQpIGNvCiAKIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFBvc2l0aW9u
ZWRPYmplY3QoUmVuZGVyQm94JiByLCBib29sIHJlbGF5b3V0Q2hpbGRyZW4sIGJvb2wgZml4ZWRQ
b3NpdGlvbk9iamVjdHNPbmx5KQogewotICAgIGlmIChpc1NraXBwZWRDb250ZW50Um9vdCgpKSB7
CisgICAgaWYgKGxheW91dENvbnRleHQoKS5pc1NraXBwZWRDb250ZW50Um9vdEZvckxheW91dCgq
dGhpcykpIHsKICAgICAgICAgci5jbGVhck5lZWRzTGF5b3V0Rm9yU2tpcHBlZENvbnRlbnQoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwMjksNyArMTAyOSw3IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZmZzZXQpCiAKIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50Q29udGVudHMoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKLSAgICBpZiAoaXNT
a2lwcGVkQ29udGVudFJvb3QoKSkKKyAgICBpZiAoaXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMp
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoY2hpbGRyZW5JbmxpbmUoKSkKQEAgLTMzMTUs
NyArMzMxNSw3IEBAIFJlbmRlckJveCogUmVuZGVyQmxvY2s6OmZpbmRGaWVsZHNldExlZ2VuZChG
aWVsZHNldEZpbmRMZWdlbmRPcHRpb24gb3B0aW9uKSBjb25zCiAKIHZvaWQgUmVuZGVyQmxvY2s6
OmFkanVzdEJvcmRlckJveFJlY3RGb3JQYWludGluZyhMYXlvdXRSZWN0JiBwYWludFJlY3QpCiB7
Ci0gICAgaWYgKCFpc0ZpZWxkc2V0KCkgfHwgaXNTa2lwcGVkQ29udGVudFJvb3QoKSB8fCAhaW50
cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoKSkKKyAgICBpZiAoIWlzRmllbGRzZXQoKSB8fCBpc1Nr
aXBwZWRDb250ZW50Um9vdCgqdGhpcykgfHwgIWludHJpbnNpY0JvcmRlckZvckZpZWxkc2V0KCkp
CiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBhdXRvKiBsZWdlbmQgPSBmaW5kRmllbGRzZXRM
ZWdlbmQoKTsKQEAgLTMzMzgsNyArMzMzOCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFkanVzdEJv
cmRlckJveFJlY3RGb3JQYWludGluZyhMYXlvdXRSZWN0JiBwYWludFJlY3QpCiBMYXlvdXRSZWN0
IFJlbmRlckJsb2NrOjpwYWludFJlY3RUb0NsaXBPdXRGcm9tQm9yZGVyKGNvbnN0IExheW91dFJl
Y3QmIHBhaW50UmVjdCkKIHsKICAgICBMYXlvdXRSZWN0IGNsaXBSZWN0OwotICAgIGlmICghaXNG
aWVsZHNldCgpIHx8IGlzU2tpcHBlZENvbnRlbnRSb290KCkpCisgICAgaWYgKCFpc0ZpZWxkc2V0
KCkgfHwgaXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMpKQogICAgICAgICByZXR1cm4gY2xpcFJl
Y3Q7CiAgICAgYXV0byogbGVnZW5kID0gZmluZEZpZWxkc2V0TGVnZW5kKCk7CiAgICAgaWYgKCFs
ZWdlbmQpCkBAIC0zNDk0LDcgKzM0OTQsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjphZGp1
c3RJbnRyaW5zaWNMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKExheW91dFVuaXQgaGVpZwogCiB2
b2lkIFJlbmRlckJsb2NrOjpwYWludEV4Y2x1ZGVkQ2hpbGRyZW5JbkJvcmRlcihQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogewotICAgIGlmICgh
aXNGaWVsZHNldCgpIHx8IGlzU2tpcHBlZENvbnRlbnRSb290KCkpCisgICAgaWYgKCFpc0ZpZWxk
c2V0KCkgfHwgaXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMpKQogICAgICAgICByZXR1cm47CiAg
ICAgCiAgICAgUmVuZGVyQm94KiBib3ggPSBmaW5kRmllbGRzZXRMZWdlbmQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggYjYzOGM4MTYwYWEy
Li5hYjVjZjQ4N2IzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwCkBAIC03NTksNyArNzU5LDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91
dEJsb2NrQ2hpbGRyZW4oYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiBtYXgKICAg
ICAgICAgaWYgKGNoaWxkLmlzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIGNoaWxkLCBzaW5jZSBpdCB3aWxsIGJlIHBvc2l0aW9u
ZWQgYnkgdGhlIHNwZWNpYWxpemVkIHN1YmNsYXNzIChmaWVsZHNldHMgYW5kIHJ1YnkgcnVucyku
CiAKLSAgICAgICAgaWYgKGNoaWxkLmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSkgeworICAg
ICAgICBpZiAobGF5b3V0Q29udGV4dCgpLmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoY2hpbGQp
KSB7CiAgICAgICAgICAgICBjaGlsZC5jbGVhck5lZWRzTGF5b3V0Rm9yU2tpcHBlZENvbnRlbnQo
KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCmluZGV4IDkzMzI0MzEyYmNmMS4uMjk5Mjc0M2E2Nzk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTg1NSw3ICsxODU1LDcgQEAgYm9v
bCBSZW5kZXJCb3g6OmZvcmVncm91bmRJc0tub3duVG9CZU9wYXF1ZUluUmVjdChjb25zdCBMYXlv
dXRSZWN0JiBsb2NhbFJlY3QsIHUKICAgICBpZiAoIW1heERlcHRoVG9UZXN0KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoaXNTa2lwcGVkQ29udGVudFJvb3QoKSkKKyAgICBpZiAo
aXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBmb3IgKGF1dG8mIGNoaWxkQm94IDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyQm94PigqdGhpcykp
IHsKQEAgLTU4NDAsNyArNTg0MCw3IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVy
Qm94OjpleHBsaWNpdEludHJpbnNpY0lubmVyV2lkdGgoKSBjb25zdAogICAgIGlmIChzdHlsZSgp
LmNvbnRhaW5JbnRyaW5zaWNXaWR0aFR5cGUoKSA9PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6
Ok5vbmUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBpZiAoZWxlbWVudCgp
ICYmIHN0eWxlKCkuY29udGFpbkludHJpbnNpY1dpZHRoSGFzQXV0bygpICYmIFdlYkNvcmU6Omlz
U2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCksIGVsZW1lbnQoKSkpIHsKKyAgICBpZiAoZWxlbWVu
dCgpICYmIHN0eWxlKCkuY29udGFpbkludHJpbnNpY1dpZHRoSGFzQXV0bygpICYmIGlzU2tpcHBl
ZENvbnRlbnRSb290KCp0aGlzKSkgewogICAgICAgICBpZiAoYXV0byB3aWR0aCA9IGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRo
KCkgOiBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkTG9naWNhbEhlaWdodCgpKQogICAgICAgICAg
ICAgcmV0dXJuIHdpZHRoOwogICAgIH0KQEAgLTU4NTksNyArNTg1OSw3IEBAIHN0ZDo6b3B0aW9u
YWw8TGF5b3V0VW5pdD4gUmVuZGVyQm94OjpleHBsaWNpdEludHJpbnNpY0lubmVySGVpZ2h0KCkg
Y29uc3QKICAgICBpZiAoc3R5bGUoKS5jb250YWluSW50cmluc2ljSGVpZ2h0VHlwZSgpID09IENv
bnRhaW5JbnRyaW5zaWNTaXplVHlwZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKIAotICAgIGlmIChlbGVtZW50KCkgJiYgc3R5bGUoKS5jb250YWluSW50cmluc2ljSGVpZ2h0
SGFzQXV0bygpICYmIFdlYkNvcmU6OmlzU2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCksIGVsZW1l
bnQoKSkpIHsKKyAgICBpZiAoZWxlbWVudCgpICYmIHN0eWxlKCkuY29udGFpbkludHJpbnNpY0hl
aWdodEhhc0F1dG8oKSAmJiBpc1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykpIHsKICAgICAgICAg
aWYgKGF1dG8gaGVpZ2h0ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGVsZW1lbnQoKS0+
bGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KCkgOiBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVk
TG9naWNhbFdpZHRoKCkpCiAgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCA1MmEzODNkNjVjMWIu
Ljc4MWEyMGIwMjc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcApAQCAtODg5LDcgKzg4OSw3IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAg
IGlmICh3YXNWaXNpYmxlICE9IHdpbGxCZVZpc2libGUpIHsKICAgICAgICAgICAgIGlmIChDaGVj
a2VkUHRyIGxheWVyID0gZW5jbG9zaW5nTGF5ZXIoKSkgewogICAgICAgICAgICAgICAgIGlmICh3
aWxsQmVWaXNpYmxlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtX3N0eWxlLmhhc1NraXBw
ZWRDb250ZW50KCkgJiYgaXNTa2lwcGVkQ29udGVudFJvb3QoKSkKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fc3R5bGUuaGFzU2tpcHBlZENvbnRlbnQoKSAmJiBpc1NraXBwZWRDb250ZW50Um9v
dCgqdGhpcykpCiAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci0+ZGlydHlWaXNpYmxlQ29u
dGVudFN0YXR1cygpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
ICAgICAgICBsYXllci0+c2V0SGFzVmlzaWJsZUNvbnRlbnQoKTsKQEAgLTI1MjcsMTEgKzI1Mjcs
NiBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6Om1hcmtSZW5kZXJlckRpcnR5QWZ0ZXJUb3BMYXllckNo
YW5nZShSZW5kZXJFbGVtZW50KiByZW5kZXJlcgogICAgIHJlbmRlckJveC0+c2V0TmVlZHNMYXlv
dXQoKTsKIH0KIAotYm9vbCBSZW5kZXJFbGVtZW50Ojppc1NraXBwZWRDb250ZW50Um9vdCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmlzU2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCks
IGVsZW1lbnQoKSkgJiYgIXZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubmVlZHNT
a2lwcGVkQ29udGVudExheW91dCgpOwotfQotCiBib29sIFJlbmRlckVsZW1lbnQ6Omhhc0VsaWdp
YmxlQ29udGFpbm1lbnRGb3JTaXplUXVlcnkoKSBjb25zdAogewogICAgIHN3aXRjaCAoc3R5bGUo
KS5jb250YWluZXJUeXBlKCkpIHsKQEAgLTI1NTcsNyArMjU1Miw3IEBAIHZvaWQgUmVuZGVyRWxl
bWVudDo6bGF5b3V0SWZOZWVkZWQoKQogewogICAgIGlmICghbmVlZHNMYXlvdXQoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGlmIChpc1NraXBwZWRDb250ZW50Rm9yTGF5b3V0KCkpIHsKKyAgICBp
ZiAobGF5b3V0Q29udGV4dCgpLmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKnRoaXMpKSB7CiAg
ICAgICAgIGNsZWFyTmVlZHNMYXlvdXRGb3JTa2lwcGVkQ29udGVudCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXgg
M2Y2NjIzZGFhOWI1Li5jMzkyZmVhMmRiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuaApAQCAtMjkyLDggKzI5Miw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2
b2lkIG1hcmtSZW5kZXJlckRpcnR5QWZ0ZXJUb3BMYXllckNoYW5nZShSZW5kZXJFbGVtZW50KiBy
ZW5kZXJlciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5pbmdCbG9ja0JlZm9yZVN0eWxlUmVzb2x1dGlv
bik7CiAKLSAgICBib29sIGlzU2tpcHBlZENvbnRlbnRSb290KCkgY29uc3Q7Ci0KICAgICB2b2lk
IGNsZWFyTmVlZHNMYXlvdXRGb3JTa2lwcGVkQ29udGVudCgpOwogCiAgICAgdm9pZCBzZXRSZW5k
ZXJCb3hIYXNTaGFwZU91dHNpZGVJbmZvKGJvb2wgYikgeyBtX3JlbmRlckJveEhhc1NoYXBlT3V0
c2lkZUluZm8gPSBiOyB9CkBAIC00MjgsNiArNDI2LDcgQEAgcHJpdmF0ZToKIGlubGluZSBpbnQg
YWRqdXN0Rm9yQWJzb2x1dGVab29tKGludCwgY29uc3QgUmVuZGVyRWxlbWVudCYpOwogaW5saW5l
IExheW91dFVuaXQgYWRqdXN0TGF5b3V0VW5pdEZvckFic29sdXRlWm9vbShMYXlvdXRVbml0LCBj
b25zdCBSZW5kZXJFbGVtZW50Jik7CiBpbmxpbmUgTGF5b3V0U2l6ZSBhZGp1c3RMYXlvdXRTaXpl
Rm9yQWJzb2x1dGVab29tKExheW91dFNpemUsIGNvbnN0IFJlbmRlckVsZW1lbnQmKTsKK2lubGlu
ZSBib29sIGlzU2tpcHBlZENvbnRlbnRSb290KGNvbnN0IFJlbmRlckVsZW1lbnQmKTsKIAogaW5s
aW5lIHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0Q2hpbGROZWVkc0xheW91dChNYXJraW5nQmVoYXZp
b3IgbWFya1BhcmVudHMpCiB7CkBAIC00OTMsMTMgKzQ5Miw2IEBAIGlubGluZSBSZW5kZXJPYmpl
Y3QqIFJlbmRlckVsZW1lbnQ6Omxhc3RJbkZsb3dDaGlsZCgpIGNvbnN0CiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLWlubGluZSBib29sIFJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudFJv
b3QoKSBjb25zdAotewotICAgIGlmIChpc1JlbmRlclRleHQoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJFbGVtZW50PigqdGhpcykuaXNTa2lwcGVk
Q29udGVudFJvb3QoKTsKLX0KLQogaW5saW5lIFJlbmRlckVsZW1lbnQqIFJlbmRlck9iamVjdDo6
cGFyZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wYXJlbnQuZ2V0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50SW5saW5lcy5oCmluZGV4IGFlMmIwMTIy
NGYwNC4uNzNjODA2ZjAzZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudElubGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudElubGluZXMuaApAQCAtNzUsNyArNzUsNyBAQCBpbmxpbmUgYm9vbCBSZW5kZXJF
bGVtZW50OjpzaG91bGRBcHBseUFueUNvbnRhaW5tZW50KCkgY29uc3QKIAogaW5saW5lIGJvb2wg
UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlJbmxpbmVTaXplQ29udGFpbm1lbnQoKSBjb25zdAog
ewotICAgIHJldHVybiBXZWJDb3JlOjppc1NraXBwZWRDb250ZW50Um9vdChzdHlsZSgpLCBlbGVt
ZW50KCkpIHx8IHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHlsZSgpLmNvbnRh
aW5zSW5saW5lU2l6ZSgpKTsKKyAgICByZXR1cm4gaXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMp
IHx8IHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChzdHlsZSgpLmNvbnRhaW5zSW5s
aW5lU2l6ZSgpKTsKIH0KIAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlM
YXlvdXRDb250YWlubWVudCgpIGNvbnN0CkBAIC0xMDAsMTIgKzEwMCwxMiBAQCBpbmxpbmUgYm9v
bCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVBhaW50Q29udGFpbm1lbnQoKSBjb25zdAogCiBp
bmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmlzU2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCks
IGVsZW1lbnQoKSkgfHwgc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCku
Y29udGFpbnNTaXplKCkpOworICAgIHJldHVybiBpc1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykg
fHwgc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXpl
KCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVPcklu
bGluZVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmlzU2tp
cHBlZENvbnRlbnRSb290KHN0eWxlKCksIGVsZW1lbnQoKSkgfHwgc2hvdWxkQXBwbHlTaXplT3JT
dHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXplT3JJbmxpbmVTaXplKCkpOworICAg
IHJldHVybiBpc1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykgfHwgc2hvdWxkQXBwbHlTaXplT3JT
dHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXplT3JJbmxpbmVTaXplKCkpOwogfQog
CiAvLyBGSVhNRTogdHJ5IHRvIGF2b2lkIGR1cGxpY2F0aW9uIHdpdGggaXNTa2lwcGVkQ29udGVu
dFJvb3QuCkBAIC0xNDIsNCArMTQyLDE4IEBAIGlubGluZSBMYXlvdXRVbml0IGFkanVzdExheW91
dFVuaXRGb3JBYnNvbHV0ZVpvb20oTGF5b3V0VW5pdCB2YWx1ZSwgY29uc3QgUmVuZGVyCiAgICAg
cmV0dXJuIGFkanVzdExheW91dFVuaXRGb3JBYnNvbHV0ZVpvb20odmFsdWUsIHJlbmRlcmVyLnN0
eWxlKCkpOwogfQogCitpbmxpbmUgYm9vbCBpc1NraXBwZWRDb250ZW50Um9vdChjb25zdCBSZW5k
ZXJFbGVtZW50JiByZW5kZXJlcikKK3sKKyAgICBhdXRvJiBzdHlsZSA9IHJlbmRlcmVyLnN0eWxl
KCk7CisgICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxp
dHk6OlZpc2libGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBjb250ZW50LXZpc2li
aWxpdHkgYXBwbGllcyB0byBlbGVtZW50cyBmb3Igd2hpY2ggc2l6ZSBjb250YWlubWVudCBjYW4g
YXBwbHkgKGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi8jY29udGVudC12aXNp
YmlsaXR5KQorICAgIGlmICghZG9lc1NpemVDb250YWlubWVudEFwcGx5QnlEaXNwbGF5VHlwZShz
dHlsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuY29udGVudFZpc2li
aWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBBU1NFUlQoc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJp
bGl0eTo6QXV0byk7CisgICAgcmV0dXJuIHJlbmRlcmVyLmVsZW1lbnQoKSAmJiAhcmVuZGVyZXIu
ZWxlbWVudCgpLT5pc1JlbGV2YW50VG9Vc2VyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCBjNzgxZDY1OTJh
YzQuLjdkMTZiNjRlY2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNw
cApAQCAtMTQ5OCw3ICsxNDk4LDcgQEAgYm9vbCBSZW5kZXJHcmlkOjpoYXNTdGF0aWNQb3NpdGlv
bkZvckdyaWRJdGVtKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRUcmEKIAogdm9pZCBS
ZW5kZXJHcmlkOjpsYXlvdXRQb3NpdGlvbmVkT2JqZWN0KFJlbmRlckJveCYgZ3JpZEl0ZW0sIGJv
b2wgcmVsYXlvdXRDaGlsZHJlbiwgYm9vbCBmaXhlZFBvc2l0aW9uT2JqZWN0c09ubHkpCiB7Ci0g
ICAgaWYgKGlzU2tpcHBlZENvbnRlbnRSb290KCkpIHsKKyAgICBpZiAobGF5b3V0Q29udGV4dCgp
LmlzU2tpcHBlZENvbnRlbnRSb290Rm9yTGF5b3V0KCp0aGlzKSkgewogICAgICAgICBncmlkSXRl
bS5jbGVhck5lZWRzTGF5b3V0Rm9yU2tpcHBlZENvbnRlbnQoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggOGM2
YjA3NmI1NDk1Li5jMjk3MzJkNjQxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCkBAIC0yOTQ4LDExICsyOTQ4LDYgQEAgYm9vbCBSZW5kZXJPYmplY3Q6Omlz
U2tpcHBlZENvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+
c3R5bGUoKS5oYXNTa2lwcGVkQ29udGVudCgpOwogfQogCi1ib29sIFJlbmRlck9iamVjdDo6aXNT
a2lwcGVkQ29udGVudEZvckxheW91dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzU2tpcHBlZENv
bnRlbnQoKSAmJiAhdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5uZWVkc1NraXBw
ZWRDb250ZW50TGF5b3V0KCk7Ci19Ci0KIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgdHMgPDwgcmVuZGVy
ZXIuZGVidWdEZXNjcmlwdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCmluZGV4IDkxMTRlMzhkNWM2Zi4uMmEwOWQzYTdjMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIEhpdFRlc3RSZXF1
ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBMZWdh
Y3lJbmxpbmVCb3g7CitjbGFzcyBMb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQ7CiBjbGFzcyBQ
YXRoOwogY2xhc3MgUG9zaXRpb247CiBjbGFzcyBSZWZlcmVuY2VkU1ZHUmVzb3VyY2VzOwpAQCAt
NzM5LDYgKzc0MCw3IEBAIHB1YmxpYzoKIAogICAgIFJlbmRlclZpZXcmIHZpZXcoKSBjb25zdCB7
IHJldHVybiAqZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCk7IH0KICAgICBDaGVja2VkUmVmPFJlbmRl
clZpZXc+IGNoZWNrZWRWaWV3KCkgY29uc3Q7CisgICAgaW5saW5lIGNvbnN0IExvY2FsRnJhbWVW
aWV3TGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCgpIGNvbnN0OwogCiAgICAgSG9zdFdpbmRv
dyogaG9zdFdpbmRvdygpIGNvbnN0OwogCkBAIC0xMTQ1LDkgKzExNDcsNiBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzU2tpcHBlZENvbnRlbnQoKSBjb25zdDsKIAotICAgIGJvb2wgaXNTa2lwcGVk
Q29udGVudFJvb3QoKSBjb25zdDsKLSAgICBib29sIGlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQo
KSBjb25zdDsKLQogICAgIFBvaW50ZXJFdmVudHMgdXNlZFBvaW50ZXJFdmVudHMoKSBjb25zdDsK
IAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdElubGluZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RJ
bmxpbmVzLmgKaW5kZXggZjY3MjM2ZjQ1ZDNlLi4zOTcyNzNhZDVhMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RJbmxpbmVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdElubGluZXMuaApAQCAtMjIsNiArMjIsNyBA
QAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5j
bHVkZSAiUmVuZGVyU3R5bGVJbmxpbmVzLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMxLDUgKzMyLDYgQEAgaW5saW5lIGJvb2wgUmVuZGVy
T2JqZWN0Ojppc0Jsb2NrTGV2ZWxCb3goKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmlzRGlzcGxh
eUJsb2MKIGlubGluZSBib29sIFJlbmRlck9iamVjdDo6aXNUcmFuc2Zvcm1lZCgpIGNvbnN0IHsg
cmV0dXJuIGhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgpICYmIChzdHlsZSgpLmFmZmVjdHNU
cmFuc2Zvcm0oKSB8fCBoYXNTVkdUcmFuc2Zvcm0oKSk7IH0KIGlubGluZSBib29sIFJlbmRlck9i
amVjdDo6cHJlc2VydmVzTmV3bGluZSgpIGNvbnN0IHsgcmV0dXJuICFpc1JlbmRlclNWR0lubGlu
ZVRleHQoKSAmJiBzdHlsZSgpLnByZXNlcnZlTmV3bGluZSgpOyB9CiBpbmxpbmUgUmVmPERvY3Vt
ZW50PiBSZW5kZXJPYmplY3Q6OnByb3RlY3RlZERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZG9j
dW1lbnQoKTsgfQoraW5saW5lIGNvbnN0IExvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dCYgUmVu
ZGVyT2JqZWN0OjpsYXlvdXRDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gdmlldygpLmZyYW1lVmll
dygpLmxheW91dENvbnRleHQoKTsgfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA3OWFjMDlmNWRmODIu
LjliNmJkYjVhZWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6cGFpbnQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIAogICAg
IGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZTo6RXZlbnRSZWdpb24pIHsKICNpZiBF
TkFCTEUoSU5URVJBQ1RJT05fUkVHSU9OU19JTl9FVkVOVF9SRUdJT04pCi0gICAgICAgIGlmIChp
c1JlbmRlck9yTGVnYWN5UmVuZGVyU1ZHUm9vdCgpICYmICFpc1NraXBwZWRDb250ZW50Um9vdCgp
KQorICAgICAgICBpZiAoaXNSZW5kZXJPckxlZ2FjeVJlbmRlclNWR1Jvb3QoKSAmJiAhaXNTa2lw
cGVkQ29udGVudFJvb3QoKnRoaXMpKQogICAgICAgICAgICAgcGFpbnRSZXBsYWNlZChwYWludElu
Zm8sIGFkanVzdGVkUGFpbnRPZmZzZXQpOwogICAgICAgICBlbHNlIGlmICh2aXNpYmxlVG9IaXRU
ZXN0aW5nKCkpIHsKICNlbHNlCkBAIC0zMTYsNyArMzE2LDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNl
ZDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
ZnNldCkKICAgICB9CiAKICAgICBpZiAoIWNvbXBsZXRlbHlDbGlwcGVkT3V0KSB7Ci0gICAgICAg
IGlmICghaXNTa2lwcGVkQ29udGVudFJvb3QoKSkKKyAgICAgICAgaWYgKCFpc1NraXBwZWRDb250
ZW50Um9vdCgqdGhpcykpCiAgICAgICAgICAgICBwYWludFJlcGxhY2VkKHBhaW50SW5mbywgYWRq
dXN0ZWRQYWludE9mZnNldCk7CiAKICAgICAgICAgaWYgKHN0eWxlKCkuaGFzQm9yZGVyUmFkaXVz
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IGY0Zjcw
MTI2NWE2NS4uZjEzMjAwZWNjODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyV2lkZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
V2lkZ2V0LmNwcApAQCAtMzMzLDcgKzMzMyw3IEBAIHZvaWQgUmVuZGVyV2lkZ2V0OjpwYWludChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAg
ICAgICBjbGlwVG9Db250ZW50Qm94U2hhcGUocGFpbnRJbmZvLmNvbnRleHQoKSwgYWRqdXN0ZWRQ
YWludE9mZnNldCwgZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICB9CiAKLSAg
ICBpZiAobV93aWRnZXQgJiYgIWlzU2tpcHBlZENvbnRlbnRSb290KCkpCisgICAgaWYgKG1fd2lk
Z2V0ICYmICFpc1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykpCiAgICAgICAgIHBhaW50Q29udGVu
dHMocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CiAKICAgICBpZiAoc3R5bGUoKS5oYXNCb3JkZXJS
YWRpdXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
aW5kZXggNTFiZWY1YTg2ZTJmLi5kNzBjMGUyZGViZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0yNDEzLDggKzI0MTMsNyBAQCBpbmxpbmUg
Ym9vbCBwc2V1ZG9FbGVtZW50UmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSopOwog
aW5saW5lIGJvb2wgZ2VuZXJhdGVzQm94KGNvbnN0IFJlbmRlclN0eWxlJik7CiBpbmxpbmUgYm9v
bCBpc05vblZpc2libGVPdmVyZmxvdyhPdmVyZmxvdyk7CiAKLWlubGluZSBib29sIGlzU2tpcHBl
ZENvbnRlbnRSb290KGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopOwotCiBpbmxp
bmUgYm9vbCBpc1Zpc2libGVUb0hpdFRlc3RpbmcoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBI
aXRUZXN0UmVxdWVzdCYpOworaW5saW5lIGJvb2wgZG9lc1NpemVDb250YWlubWVudEFwcGx5QnlE
aXNwbGF5VHlwZShjb25zdCBSZW5kZXJTdHlsZSYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJ
bmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJbmxp
bmVzLmgKaW5kZXggYjViMDE5OWY3ZjBhLi43NmQ5NDQ4YTNkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJbmxpbmVzLmgKQEAgLTk3Niw2
ICs5NzYsMjMgQEAgY29uc3RleHByIGJvb2wgUmVuZGVyU3R5bGU6OmlzUnVieUNvbnRhaW5lck9y
SW50ZXJuYWxSdWJ5Qm94KERpc3BsYXlUeXBlIGRpc3BsYXkKICAgICAgICAgfHwgZGlzcGxheSA9
PSBEaXNwbGF5VHlwZTo6UnVieUJhc2U7CiB9CiAKK2lubGluZSBib29sIGRvZXNTaXplQ29udGFp
bm1lbnRBcHBseUJ5RGlzcGxheVR5cGUoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQoreworICAg
IC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY29udGFpbi0yLyNjb250YWlubWVudC1z
aXplCisgICAgLy8gR2l2aW5nIGFuIGVsZW1lbnQgc2l6ZSBjb250YWlubWVudCBoYXMgbm8gZWZm
ZWN0IGlmIGFueSBvZiB0aGUgZm9sbG93aW5nIGFyZSB0cnVlOgorICAgIC8vIGlmIHRoZSBlbGVt
ZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0
aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQorICAgIC8vIGlmIGl0cyBpbm5l
ciBkaXNwbGF5IHR5cGUgaXMgdGFibGUKKyAgICAvLyBpZiBpdHMgcHJpbmNpcGFsIGJveCBpcyBh
biBpbnRlcm5hbCB0YWJsZSBib3gKKyAgICAvLyBpZiBpdHMgcHJpbmNpcGFsIGJveCBpcyBhbiBp
bnRlcm5hbCBydWJ5IGJveCBvciBhIG5vbi1hdG9taWMgaW5saW5lLWxldmVsIGJveAorICAgIGF1
dG8gZGlzcGxheVR5cGUgPSBzdHlsZS5kaXNwbGF5KCk7CisgICAgcmV0dXJuIGRpc3BsYXlUeXBl
ICE9IERpc3BsYXlUeXBlOjpOb25lCisgICAgICAgICYmIGRpc3BsYXlUeXBlICE9IERpc3BsYXlU
eXBlOjpDb250ZW50cworICAgICAgICAmJiBkaXNwbGF5VHlwZSAhPSBEaXNwbGF5VHlwZTo6VGFi
bGUKKyAgICAgICAgJiYgZGlzcGxheVR5cGUgIT0gRGlzcGxheVR5cGU6OklubGluZVRhYmxlCisg
ICAgICAgICYmICFzdHlsZS5pc0ludGVybmFsVGFibGVCb3goKQorICAgICAgICAmJiAhc3R5bGUu
aXNSdWJ5Q29udGFpbmVyT3JJbnRlcm5hbFJ1YnlCb3goKTsKK30KKwogaW5saW5lIGRvdWJsZSBS
ZW5kZXJTdHlsZTo6bG9naWNhbEFzcGVjdFJhdGlvKCkgY29uc3QKIHsKICAgICBBU1NFUlQoYXNw
ZWN0UmF0aW9UeXBlKCkgIT0gQXNwZWN0UmF0aW9UeXBlOjpBdXRvKTsKQEAgLTk5MCwzMiArMTAw
Nyw2IEBAIGNvbnN0ZXhwciBib29sIFJlbmRlclN0eWxlOjpwcmVzZXJ2ZU5ld2xpbmUoV2hpdGVT
cGFjZSBtb2RlKQogICAgIHJldHVybiBtb2RlICE9IFdoaXRlU3BhY2U6Ok5vcm1hbCAmJiBtb2Rl
ICE9IFdoaXRlU3BhY2U6Ok5vV3JhcDsKIH0KIAotaW5saW5lIGJvb2wgaXNTa2lwcGVkQ29udGVu
dFJvb3QoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KiBlbGVtZW50KQot
ewotICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5
OjpWaXNpYmxlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBhdXRvIGRvZXNDb250ZW50
VmlzaWJpbGl0eUFwcGx5ID0gWyZdIHsKLSAgICAgICAgLy8gY29udGVudC12aXNpYmlsaXR5IGFw
cGxpZXMgdG8gZWxlbWVudHMgZm9yIHdoaWNoIHNpemUgY29udGFpbm1lbnQgY2FuIGFwcGx5ICho
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4vI2NvbnRlbnQtdmlzaWJpbGl0eSkK
LQotICAgICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4tMi8jY29u
dGFpbm1lbnQtc2l6ZQotICAgICAgICAvLyBHaXZpbmcgYW4gZWxlbWVudCBzaXplIGNvbnRhaW5t
ZW50IGhhcyBubyBlZmZlY3QgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJlIHRydWU6Ci0gICAg
ICAgIC8vIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAo
YXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQot
ICAgICAgICAvLyBpZiBpdHMgaW5uZXIgZGlzcGxheSB0eXBlIGlzIHRhYmxlCi0gICAgICAgIC8v
IGlmIGl0cyBwcmluY2lwYWwgYm94IGlzIGFuIGludGVybmFsIHRhYmxlIGJveAotICAgICAgICAv
LyBpZiBpdHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCBydWJ5IGJveCBvciBhIG5vbi1h
dG9taWMgaW5saW5lLWxldmVsIGJveAotICAgICAgICBhdXRvIGRpc3BsYXlUeXBlID0gc3R5bGUu
ZGlzcGxheSgpOwotICAgICAgICBhdXRvIGRvZXNOb3RBcHBseSA9IGRpc3BsYXlUeXBlID09IERp
c3BsYXlUeXBlOjpOb25lIHx8IGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpDb250ZW50cyB8
fCBkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGUgfHwgZGlzcGxheVR5cGUgPT0gRGlz
cGxheVR5cGU6OklubGluZVRhYmxlIHx8IHN0eWxlLmlzSW50ZXJuYWxUYWJsZUJveCgpIHx8IHN0
eWxlLmlzUnVieUNvbnRhaW5lck9ySW50ZXJuYWxSdWJ5Qm94KCk7Ci0gICAgICAgIHJldHVybiAh
ZG9lc05vdEFwcGx5OwotICAgIH07Ci0gICAgaWYgKCFkb2VzQ29udGVudFZpc2liaWxpdHlBcHBs
eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmls
aXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgQVNTRVJUKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxp
dHk6OkF1dG8pOwotICAgIHJldHVybiBlbGVtZW50ICYmICFlbGVtZW50LT5pc1JlbGV2YW50VG9V
c2VyKCk7Ci19Ci0KIGlubGluZSBmbG9hdCBhZGp1c3RGbG9hdEZvckFic29sdXRlWm9vbShmbG9h
dCB2YWx1ZSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogewogICAgIHJldHVybiB2YWx1ZSAv
IHN0eWxlLnVzZWRab29tKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAppbmRleCBhYzVjOTBmODllZDQuLmMyN2U2
Yzc5MzdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTm9k
ZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgogI2luY2x1ZGUgIlJl
bmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlJlbmRlckVsZW1lbnRJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxleGlibGVCb3guaCIKICNpbmNsdWRlICJSZW5kZXJJbmxp
bmUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgpAQCAtNDY4LDcgKzQ2OSw3IEBAIHZvaWQg
UmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZUVsZW1lbnRSZW5kZXJlcihFbGVtZW50JiBlbGVtZW50
LCBjb25zdCBTdHlsZTo6RWxlCiAgICAgYXV0byBzY29wZUV4aXQgPSBtYWtlU2NvcGVFeGl0KFsm
XSB7CiAgICAgICAgIGlmICghaGFzRGlzcGxheUNvbnRlbnRzT3JOb25lKSB7CiAgICAgICAgICAg
ICBhdXRvKiBib3ggPSBlbGVtZW50LnJlbmRlckJveCgpOwotICAgICAgICAgICAgaWYgKGJveCAm
JiBib3gtPnN0eWxlKCkuaGFzQXV0b0xlbmd0aENvbnRhaW5JbnRyaW5zaWNTaXplKCkgJiYgIWJv
eC0+aXNTa2lwcGVkQ29udGVudFJvb3QoKSkKKyAgICAgICAgICAgIGlmIChib3ggJiYgYm94LT5z
dHlsZSgpLmhhc0F1dG9MZW5ndGhDb250YWluSW50cmluc2ljU2l6ZSgpICYmICFpc1NraXBwZWRD
b250ZW50Um9vdCgqYm94KSkKICAgICAgICAgICAgICAgICBtX2RvY3VtZW50LT5vYnNlcnZlRm9y
Q29udGFpbkludHJpbnNpY1NpemUoZWxlbWVudCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgbV9kb2N1bWVudC0+dW5vYnNlcnZlRm9yQ29udGFpbkludHJpbnNpY1NpemUoZWxl
bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IGQ2OTI5OWRj
MzlkZi4uOWVmNGI4NWJjZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUFkanVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNw
cApAQCAtNzUxLDggKzc1MSwxMiBAQCB2b2lkIEFkanVzdGVyOjphZGp1c3QoUmVuZGVyU3R5bGUm
IHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogdXNlckFnZW50QXBwZWFyYW5jZQogICAgICAgICAg
ICAgYWRqdXN0Rm9yVGV4dEF1dG9zaXppbmcoc3R5bGUsICptX2VsZW1lbnQpOwogI2VuZGlmCiAg
ICAgfQotICAgIGlmIChpc1NraXBwZWRDb250ZW50Um9vdChzdHlsZSwgbV9lbGVtZW50LmdldCgp
KSAmJiBtX3BhcmVudFN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxp
dHk6OkhpZGRlbikKLSAgICAgICAgc3R5bGUuc2V0VXNlZENvbnRlbnRWaXNpYmlsaXR5KHN0eWxl
LmNvbnRlbnRWaXNpYmlsaXR5KCkpOworCisgICAgaWYgKG1fcGFyZW50U3R5bGUuY29udGVudFZp
c2liaWxpdHkoKSAhPSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKSB7CisgICAgICAgIGF1dG8g
aXNTa2lwcGVkQ29udGVudFJvb3QgPSBzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpICE9IENvbnRl
bnRWaXNpYmlsaXR5OjpWaXNpYmxlICYmIGRvZXNTaXplQ29udGFpbm1lbnRBcHBseUJ5RGlzcGxh
eVR5cGUoc3R5bGUpICYmIG1fZWxlbWVudCAmJiAhbV9lbGVtZW50LT5pc1JlbGV2YW50VG9Vc2Vy
KCk7CisgICAgICAgIGlmIChpc1NraXBwZWRDb250ZW50Um9vdCkKKyAgICAgICAgICAgIHN0eWxl
LnNldFVzZWRDb250ZW50VmlzaWJpbGl0eShzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpKTsKKyAg
ICB9CiAKICAgICBpZiAoc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJp
bGl0eTo6QXV0bykgewogICAgICAgICBzdHlsZS5jb250YWluSW50cmluc2ljV2lkdGhBZGRBdXRv
KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473293</attachid>
            <date>2024-11-20 05:53:05 -0800</date>
            <delta_ts>2024-11-20 07:49:39 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-283395-20241120055305.patch</filename>
            <type>text/plain</type>
            <size>31666</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAyYjUyOWJhM2Q3MGMzYjI2MTQ1YmM1YTc2OTNhY2QxYWRiNjY0NzkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMTkgTm92IDIwMjQgMjA6Mjc6NTAgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF1bY29udGVudC12aXNpYmlsaXR5XQogUmVuZGVyT2JqZWN0Ojppc1NraXBwZWRDb250ZW50Um9v
dCBoYXMgbGF5b3V0IGRlcGVuZGVudCBzdGF0ZQogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI4MzM5NQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpUaGVyZSBh
cmUgaXNTa2lwcGVkQ29udGVudFJvb3QgZnVuY3Rpb25zIGF0bS4KCjEuIFdlYkNvcmU6OmlzU2tp
cHBlZENvbnRlbnRSb290KHN0eWxlLCBlbGVtZW50KQoyLiBhbmQgUmVuZGVyT2JqZWN0Ojppc1Nr
aXBwZWRDb250ZW50Um9vdAoKKHNlZSBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUs
IGZvciBjYXNlcyB3aGVuIHdlIG5lZWQgdG8gbG9vayBpbnNpZGUgYy12IHN1YnRyZWVzIGZvciBn
ZW9tZXRyeSkKYW5kIHJldHVybnMgZmFsc2Ugd2hlbiB3ZSBhcmUgc3VwcG9zZWQgdG8gaWdub3Jl
IGNvbnRlbnQtdmlzaWJpbGl0eS4KVGhpcyBpcyBhbHdheXMgc2NvcGVkIHRvIGEgbGF5b3V0IGZy
YW1lIChhcyBvcHBvc2VkIHRvIHBhaW50aW5nLCBoaXR0ZXN0aW5nIGV0YykKClRoZSBjb2RlYmFz
ZSBpcyBzcHJpbmtsZWQgd2l0aCBpc1NraXBwZWRDb250ZW50Um9vdCgpIGNhbGxzLCBzb21lIG9m
IHdoaWNoIGV4ZXJjaXNlICMxCndoaWxlIG90aGVycyBjYWxsIGludG8gIzIgaW4gYSBzZWVtaW5n
bHkgcmFuZG9tIGZhc2hpb24gKGUuZy4gZXZlbiBwYWludGluZyBjYWxscyB0aGUgImxldCdzIGNv
bnN1bHQgdGhlIGlnbm9yZSBiaXQiIHZhcmlhbnQpLgoKVGhpcyBwYXRjaCByZXBsYWNlcyB0aGVz
ZSAyIGZ1bmN0aW9ucyB3aXRoCjEuIExvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6aXNTa2lw
cGVkQ29udGVudFJvb3RGb3JMYXlvdXQoKQoyLiBXZWJDb3JlOjppc1NraXBwZWRDb250ZW50Um9v
dChyZW5kZXJlcikKCldoZXJlIGR1cmluZyBsYXlvdXQgd2UgY2FsbCBsYXlvdXRDb250ZXh0KCku
aXNTa2lwcGVkQ29udGVudFJvb3RGb3JMYXlvdXQoKSAoc3VycHJpc2luZ2x5IHNtYWxsIG51bWJl
cikgYW5kIHRoZSByZXN0IHNpbXBseSBjYWxscyAjMi4KCihOb3RlLCB0aGVyZSdzIGEgaGlnaGx5
IHNwZWNpZmljLCAzcmQgdXNlIGNhc2UgaW4gU3R5bGVBZGp1c3Rlciwgd2hpY2ggc2hvdWxkIGJl
IG1vdmVkIG91dCB0byBhIHBsYWNlIHdoZXJlIHdlIGNvdWxkIHVzZSB0aGUgV2ViQ29yZTo6aXNT
a2lwcGVkQ29udGVudFJvb3QocmVuZGVyZXIpIHZhcmlhbnQpLgoKKiBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6Q2FsbGJhY2tGb3JDb250YWluSW50cmluc2ljU2l6
ZSk6CihXZWJDb3JlOjpEb2N1bWVudDo6Y2FyZXRQb3NpdGlvbkZyb21Qb2ludCk6CiogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOgooV2ViQ29yZTo6VGV4dEl0ZXJhdG9y
OjphZHZhbmNlKToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3TGF5b3V0Q29u
dGV4dC5jcHA6CihXZWJDb3JlOjpMb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQ6OmlzU2tpcHBl
ZENvbnRlbnRGb3JMYXlvdXQgY29uc3QpOgooV2ViQ29yZTo6TG9jYWxGcmFtZVZpZXdMYXlvdXRD
b250ZXh0Ojppc1NraXBwZWRDb250ZW50Um9vdEZvckxheW91dCBjb25zdCk6CiogU291cmNlL1dl
YkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQuaDoKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNpbXBs
aWZpZWRMYXlvdXQpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dFBvc2l0aW9uZWRPYmpl
Y3QpOgooV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50Q29udGVudHMpOgooV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmFkanVzdEJvcmRlckJveFJlY3RGb3JQYWludGluZyk6CihXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6cGFpbnRSZWN0VG9DbGlwT3V0RnJvbUJvcmRlcik6CihXZWJDb3JlOjpSZW5kZXJC
bG9jazo6cGFpbnRFeGNsdWRlZENoaWxkcmVuSW5Cb3JkZXIpOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojps
YXlvdXRCbG9ja0NoaWxkcmVuKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcDoKKFdlYkNvcmU6OlJlbmRlckJveDo6Zm9yZWdyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5S
ZWN0IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckJveDo6ZXhwbGljaXRJbnRyaW5zaWNJbm5lcldp
ZHRoIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckJveDo6ZXhwbGljaXRJbnRyaW5zaWNJbm5lckhl
aWdodCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3Bw
OgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKToKKFdlYkNvcmU6OlJl
bmRlckVsZW1lbnQ6OmxheW91dElmTmVlZGVkKToKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6Omlz
U2tpcHBlZENvbnRlbnRSb290IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5oOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1NraXBwZWRD
b250ZW50Um9vdCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnRJbmxpbmVzLmg6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBs
eUlubGluZVNpemVDb250YWlubWVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojpz
aG91bGRBcHBseVNpemVDb250YWlubWVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50
OjpzaG91bGRBcHBseVNpemVPcklubGluZVNpemVDb250YWlubWVudCBjb25zdCk6CihXZWJDb3Jl
Ojppc1NraXBwZWRDb250ZW50Um9vdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuY3BwOgooV2ViQ29yZTo6UmVuZGVyR3JpZDo6bGF5b3V0UG9zaXRpb25lZE9iamVjdCk6
CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CihXZWJDb3JlOjpS
ZW5kZXJPYmplY3Q6OmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQgY29uc3QpOiBEZWxldGVkLgoq
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0SW5saW5lcy5oOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0
OjpsYXlvdXRDb250ZXh0IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBhaW50KToKKiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKFdlYkNvcmU6OlJlbmRlcldpZGdl
dDo6cGFpbnQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
OgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaDoK
KFdlYkNvcmU6OmRvZXNTaXplQ29udGFpbm1lbnRBcHBseUJ5U3R5bGUpOgooV2ViQ29yZTo6aXNT
a2lwcGVkQ29udGVudFJvb3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRl
cjo6dXBkYXRlRWxlbWVudFJlbmRlcmVyKToKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFk
anVzdGVyLmNwcDoKKFdlYkNvcmU6OlN0eWxlOjpBZGp1c3Rlcjo6YWRqdXN0IGNvbnN0KToKLS0t
CiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCAgNSArKy0K
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCAgICAgICB8ICA1ICsrLQog
Li4uL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCAgICAgIHwgMTcgKysrKysr
Ky0KIC4uLi9wYWdlL0xvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oICAgICAgICB8ICA2ICsr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAgICAgIHwgMTIgKysr
LS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCAgfCAgMiAr
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgIHwgIDYgKy0t
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgICAgfCAgOSArLS0t
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oICAgICAgfCAxMCArLS0t
LQogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnRJbmxpbmVzLmggIHwgMjAgKysr
KysrKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgICAgICAgfCAg
MiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgICAgIHwgIDUg
LS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggICAgICAgfCAgNSAr
LS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RJbmxpbmVzLmggICB8ICAyICsK
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgICB8ICA0ICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCAgICAgfCAgMiArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggIHwgIDMgKy0KIC4uLi9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJbmxpbmVzLmggICAgICB8IDQzICsrKysrKysrLS0t
LS0tLS0tLS0KIC4uLi9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwICB8
ICAzICstCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCAgICAgICAgfCAg
OCArKystCiAyMCBmaWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA5MWE0ZGFkOGUwZWMuLmVjYTM4MWM3ODMz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMTYsNiArMjE2LDcgQEAKICNpbmNsdWRl
ICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94SW5saW5l
cy5oIgogI2luY2x1ZGUgIlJlbmRlckNoaWxkSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJSZW5kZXJF
bGVtZW50SW5saW5lcy5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJl
bmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckxheW91dFN0YXRlLmgiCkBA
IC00NDMsNyArNDQ0LDcgQEAgc3RhdGljIHZvaWQgQ2FsbGJhY2tGb3JDb250YWluSW50cmluc2lj
U2l6ZShjb25zdCBWZWN0b3I8UmVmPFJlc2l6ZU9ic2VydmVyRW50cnkKICAgICAgICAgICAgICAg
ICBvYnNlcnZlci51bm9ic2VydmUoKnRhcmdldCk7CiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBBU1NFUlQoIWJveC0+aXNTa2lwcGVkQ29udGVu
dFJvb3QoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWlzU2tpcHBlZENvbnRlbnRSb290KCpib3gp
KTsKICAgICAgICAgICAgIEFTU0VSVChib3gtPnN0eWxlKCkuaGFzQXV0b0xlbmd0aENvbnRhaW5J
bnRyaW5zaWNTaXplKCkpOwogCiAgICAgICAgICAgICBhdXRvIGNvbnRlbnRCb3hTaXplID0gZW50
cnktPmNvbnRlbnRCb3hTaXplKCkuYXQoMCk7CkBAIC0yMDc3LDcgKzIwNzgsNyBAQCBzdGQ6Om9w
dGlvbmFsPEJvdW5kYXJ5UG9pbnQ+IERvY3VtZW50OjpjYXJldFBvc2l0aW9uRnJvbVBvaW50KGNv
bnN0IExheW91dFBvaW50JgogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAKLSAgICBpZiAocmVuZGVyZXItPmlzU2tpcHBlZENvbnRlbnRSb290KCkpCisg
ICAgaWYgKGF1dG8qIHJlbmRlckVsZW1lbnQgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyRWxlbWVu
dD4oKnJlbmRlcmVyKTsgcmVuZGVyRWxlbWVudCAmJiBpc1NraXBwZWRDb250ZW50Um9vdCgqcmVu
ZGVyRWxlbWVudCkpCiAgICAgICAgIHJldHVybiB7IHsgKm5vZGUsIDAgfSB9OwogCiAgICAgYXV0
byByYW5nZUNvbXBsaWFudFBvc2l0aW9uID0gcmVuZGVyZXItPnBvc2l0aW9uRm9yUG9pbnQobG9j
YWxQb2ludCwgc291cmNlKS5wYXJlbnRBbmNob3JlZEVxdWl2YWxlbnQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAppbmRleCA0ZWNlODBmMTJkMWMuLjIxMDI0Nzk3YWZk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtNTMsNiArNTMs
NyBAQAogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckJveElubGluZXMuaCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50SW5saW5l
cy5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3Iu
aCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKQEAgLTQ4OCw5ICs0ODksOSBAQCB2b2lk
IFRleHRJdGVyYXRvcjo6YWR2YW5jZSgpCiAgICAgICAgICAgICBpZiAoIWlzUmVuZGVyZXJWaXNp
YmxlKHJlbmRlcmVyLmdldCgpLCBtX2JlaGF2aW9ycykpIHsKICAgICAgICAgICAgICAgICBtX2hh
bmRsZWROb2RlID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBtX2hhbmRsZWRDaGlsZHJlbiA9ICFo
YXNEaXNwbGF5Q29udGVudHMoKnByb3RlY3RlZEN1cnJlbnROb2RlKCkpICYmICFyZW5kZXJlcjsK
LSAgICAgICAgICAgIH0gZWxzZSBpZiAoaXM8RWxlbWVudD4obV9jdXJyZW50Tm9kZS5nZXQoKSkg
JiYgcmVuZGVyZXItPmlzU2tpcHBlZENvbnRlbnRSb290KCkpIHsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAoYXV0byogcmVuZGVyRWxlbWVudCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJFbGVtZW50
PihyZW5kZXJlci5nZXQoKSk7IHJlbmRlckVsZW1lbnQgJiYgaXNTa2lwcGVkQ29udGVudFJvb3Qo
KnJlbmRlckVsZW1lbnQpKQogICAgICAgICAgICAgICAgIG1faGFuZGxlZENoaWxkcmVuID0gdHJ1
ZTsKLSAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
ICAgICAvLyBoYW5kbGUgY3VycmVudCBub2RlIGFjY29yZGluZyB0byBpdHMgdHlwZQogICAgICAg
ICAgICAgICAgIGlmIChyZW5kZXJlci0+aXNSZW5kZXJUZXh0KCkgJiYgbV9jdXJyZW50Tm9kZS0+
aXNUZXh0Tm9kZSgpKQogICAgICAgICAgICAgICAgICAgICBtX2hhbmRsZWROb2RlID0gaGFuZGxl
VGV4dE5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZp
ZXdMYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXdM
YXlvdXRDb250ZXh0LmNwcAppbmRleCA4ZmVjMDI2MzI3MzYuLjI4NWE2NDcxM2QzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNw
cApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlF1aXJrcy5oIgogI2luY2x1ZGUgIlJlbmRl
ckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJMYXlvdXRTdGF0ZS5oIgorI2luY2x1ZGUgIlJl
bmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgpAQCAtNTc3
LDcgKzU3OCwyMSBAQCB2b2lkIExvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6YWRkTGF5b3V0
RGVsdGEoY29uc3QgTGF5b3V0U2l6ZSYgZGVsdGEpCiAgICAgaWYgKGF1dG8qIGxheW91dFN0YXRl
ID0gdGhpcy0+bGF5b3V0U3RhdGUoKSkKICAgICAgICAgbGF5b3V0U3RhdGUtPmFkZExheW91dERl
bHRhKGRlbHRhKTsKIH0KLSAgICAKKworYm9vbCBMb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQ6
OmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIp
IGNvbnN0Cit7CisgICAgaWYgKG5lZWRzU2tpcHBlZENvbnRlbnRMYXlvdXQoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiByZW5kZXJlci5pc1NraXBwZWRDb250ZW50KCk7Cit9
CisKK2Jvb2wgTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0Ojppc1NraXBwZWRDb250ZW50Um9v
dEZvckxheW91dChjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlcikgY29uc3QKK3sKKyAgICBp
ZiAobmVlZHNTa2lwcGVkQ29udGVudExheW91dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIGlzU2tpcHBlZENvbnRlbnRSb290KHJlbmRlcmVyKTsKK30KKwogI2lmIEFTU0VS
VF9FTkFCTEVECiBib29sIExvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0RGVsdGFN
YXRjaGVzKGNvbnN0IExheW91dFNpemUmIGRlbHRhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlld0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKaW5kZXggYjM5NjE0OGExMjgzLi4x
MDU5NDA0OGFiNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZp
ZXdMYXlvdXRDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmll
d0xheW91dENvbnRleHQuaApAQCAtOTUsOSArOTUsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNJ
blJlbmRlclRyZWVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpID09IExheW91
dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQ7IH0KICAgICBib29sIGluUGFpbnRhYmxlU3RhdGUo
KSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpJblJlbmRlclRy
ZWVMYXlvdXQgJiYgbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5WaWV3U2l6ZUFkanVz
dCAmJiAobGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5b3V0IHx8IGluQXN5
bmNocm9ub3VzVGFza3MoKSk7IH0KIAotICAgIGJvb2wgbmVlZHNTa2lwcGVkQ29udGVudExheW91
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNTa2lwcGVkQ29udGVudExheW91dDsgfQogICAgIHZv
aWQgc2V0TmVlZHNTa2lwcGVkQ29udGVudExheW91dChib29sIG5lZWRzU2tpcHBlZENvbnRlbnRM
YXlvdXQpIHsgbV9uZWVkc1NraXBwZWRDb250ZW50TGF5b3V0ID0gbmVlZHNTa2lwcGVkQ29udGVu
dExheW91dDsgfQogCisgICAgYm9vbCBpc1NraXBwZWRDb250ZW50Rm9yTGF5b3V0KGNvbnN0IFJl
bmRlckVsZW1lbnQmKSBjb25zdDsKKyAgICBib29sIGlzU2tpcHBlZENvbnRlbnRSb290Rm9yTGF5
b3V0KGNvbnN0IFJlbmRlckVsZW1lbnQmKSBjb25zdDsKKwogICAgIFJlbmRlckVsZW1lbnQqIHN1
YnRyZWVMYXlvdXRSb290KCkgY29uc3Q7CiAgICAgdm9pZCBjbGVhclN1YnRyZWVMYXlvdXRSb290
KCkgeyBtX3N1YnRyZWVMYXlvdXRSb290LmNsZWFyKCk7IH0KICAgICB2b2lkIGNvbnZlcnRTdWJ0
cmVlTGF5b3V0VG9GdWxsTGF5b3V0KCk7CkBAIC0xNzQsNiArMTc2LDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRpc2FibGVQYWludE9mZnNldENhY2hlKCkgeyBtX3BhaW50T2Zmc2V0Q2FjaGVEaXNh
YmxlQ291bnQrKzsgfQogICAgIHZvaWQgZW5hYmxlUGFpbnRPZmZzZXRDYWNoZSgpIHsgQVNTRVJU
KG1fcGFpbnRPZmZzZXRDYWNoZURpc2FibGVDb3VudCA+IDApOyBtX3BhaW50T2Zmc2V0Q2FjaGVE
aXNhYmxlQ291bnQtLTsgfQogCisgICAgYm9vbCBuZWVkc1NraXBwZWRDb250ZW50TGF5b3V0KCkg
Y29uc3QgeyByZXR1cm4gbV9uZWVkc1NraXBwZWRDb250ZW50TGF5b3V0OyB9CisKICAgICBMb2Nh
bEZyYW1lJiBmcmFtZSgpIGNvbnN0OwogICAgIFJlZjxMb2NhbEZyYW1lPiBwcm90ZWN0ZWRGcmFt
ZSgpOwogICAgIExvY2FsRnJhbWVWaWV3JiB2aWV3KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBiNDgzY2EwNWY4NjcuLjliODE1YzhhNGFiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC03OTEsNyArNzkx
LDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6c2ltcGxpZmllZExheW91dCgpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGJvb2wgY2FuQ29udGFpbkZpeGVkUG9zT2JqZWN0cyA9IGNhbkNvbnRh
aW5GaXhlZFBvc2l0aW9uT2JqZWN0cygpOwotICAgIGlmIChpc1NraXBwZWRDb250ZW50Um9vdCgp
ICYmIChwb3NDaGlsZE5lZWRzTGF5b3V0KCkgfHwgY2FuQ29udGFpbkZpeGVkUG9zT2JqZWN0cykp
CisgICAgaWYgKGxheW91dENvbnRleHQoKS5pc1NraXBwZWRDb250ZW50Um9vdEZvckxheW91dCgq
dGhpcykgJiYgKHBvc0NoaWxkTmVlZHNMYXlvdXQoKSB8fCBjYW5Db250YWluRml4ZWRQb3NPYmpl
Y3RzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gTGF5IG91dCBwb3NpdGlvbmVk
IGRlc2NlbmRhbnRzIG9yIG9iamVjdHMgdGhhdCBqdXN0IG5lZWQgdG8gcmVjb21wdXRlIG92ZXJm
bG93LgpAQCAtODc2LDcgKzg3Niw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6Om1hcmdpbklu
dHJpbnNpY0xvZ2ljYWxXaWR0aEZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQpIGNvCiAKIHZvaWQg
UmVuZGVyQmxvY2s6OmxheW91dFBvc2l0aW9uZWRPYmplY3QoUmVuZGVyQm94JiByLCBib29sIHJl
bGF5b3V0Q2hpbGRyZW4sIGJvb2wgZml4ZWRQb3NpdGlvbk9iamVjdHNPbmx5KQogewotICAgIGlm
IChpc1NraXBwZWRDb250ZW50Um9vdCgpKSB7CisgICAgaWYgKGxheW91dENvbnRleHQoKS5pc1Nr
aXBwZWRDb250ZW50Um9vdEZvckxheW91dCgqdGhpcykpIHsKICAgICAgICAgci5jbGVhck5lZWRz
TGF5b3V0Rm9yU2tpcHBlZENvbnRlbnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEw
MjksNyArMTAyOSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAKIHZvaWQgUmVuZGVyQmxvY2s6
OnBhaW50Q29udGVudHMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWludE9mZnNldCkKIHsKLSAgICBpZiAoaXNTa2lwcGVkQ29udGVudFJvb3QoKSkKKyAgICBpZiAo
aXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
Y2hpbGRyZW5JbmxpbmUoKSkKQEAgLTMzMTUsNyArMzMxNSw3IEBAIFJlbmRlckJveCogUmVuZGVy
QmxvY2s6OmZpbmRGaWVsZHNldExlZ2VuZChGaWVsZHNldEZpbmRMZWdlbmRPcHRpb24gb3B0aW9u
KSBjb25zCiAKIHZvaWQgUmVuZGVyQmxvY2s6OmFkanVzdEJvcmRlckJveFJlY3RGb3JQYWludGlu
ZyhMYXlvdXRSZWN0JiBwYWludFJlY3QpCiB7Ci0gICAgaWYgKCFpc0ZpZWxkc2V0KCkgfHwgaXNT
a2lwcGVkQ29udGVudFJvb3QoKSB8fCAhaW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoKSkKKyAg
ICBpZiAoIWlzRmllbGRzZXQoKSB8fCBpc1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykgfHwgIWlu
dHJpbnNpY0JvcmRlckZvckZpZWxkc2V0KCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBh
dXRvKiBsZWdlbmQgPSBmaW5kRmllbGRzZXRMZWdlbmQoKTsKQEAgLTMzMzgsNyArMzMzOCw3IEBA
IHZvaWQgUmVuZGVyQmxvY2s6OmFkanVzdEJvcmRlckJveFJlY3RGb3JQYWludGluZyhMYXlvdXRS
ZWN0JiBwYWludFJlY3QpCiBMYXlvdXRSZWN0IFJlbmRlckJsb2NrOjpwYWludFJlY3RUb0NsaXBP
dXRGcm9tQm9yZGVyKGNvbnN0IExheW91dFJlY3QmIHBhaW50UmVjdCkKIHsKICAgICBMYXlvdXRS
ZWN0IGNsaXBSZWN0OwotICAgIGlmICghaXNGaWVsZHNldCgpIHx8IGlzU2tpcHBlZENvbnRlbnRS
b290KCkpCisgICAgaWYgKCFpc0ZpZWxkc2V0KCkgfHwgaXNTa2lwcGVkQ29udGVudFJvb3QoKnRo
aXMpKQogICAgICAgICByZXR1cm4gY2xpcFJlY3Q7CiAgICAgYXV0byogbGVnZW5kID0gZmluZEZp
ZWxkc2V0TGVnZW5kKCk7CiAgICAgaWYgKCFsZWdlbmQpCkBAIC0zNDk0LDcgKzM0OTQsNyBAQCBM
YXlvdXRVbml0IFJlbmRlckJsb2NrOjphZGp1c3RJbnRyaW5zaWNMb2dpY2FsSGVpZ2h0Rm9yQm94
U2l6aW5nKExheW91dFVuaXQgaGVpZwogCiB2b2lkIFJlbmRlckJsb2NrOjpwYWludEV4Y2x1ZGVk
Q2hpbGRyZW5JbkJvcmRlcihQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQm
IHBhaW50T2Zmc2V0KQogewotICAgIGlmICghaXNGaWVsZHNldCgpIHx8IGlzU2tpcHBlZENvbnRl
bnRSb290KCkpCisgICAgaWYgKCFpc0ZpZWxkc2V0KCkgfHwgaXNTa2lwcGVkQ29udGVudFJvb3Qo
KnRoaXMpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgUmVuZGVyQm94KiBib3ggPSBmaW5k
RmllbGRzZXRMZWdlbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKaW5kZXggYjYzOGM4MTYwYWEyLi5hYjVjZjQ4N2IzMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC03NTksNyArNzU5LDcgQEAg
dm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrQ2hpbGRyZW4oYm9vbCByZWxheW91dENo
aWxkcmVuLCBMYXlvdXRVbml0JiBtYXgKICAgICAgICAgaWYgKGNoaWxkLmlzRXhjbHVkZWRGcm9t
Tm9ybWFsTGF5b3V0KCkpCiAgICAgICAgICAgICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIGNoaWxk
LCBzaW5jZSBpdCB3aWxsIGJlIHBvc2l0aW9uZWQgYnkgdGhlIHNwZWNpYWxpemVkIHN1YmNsYXNz
IChmaWVsZHNldHMgYW5kIHJ1YnkgcnVucykuCiAKLSAgICAgICAgaWYgKGNoaWxkLmlzU2tpcHBl
ZENvbnRlbnRGb3JMYXlvdXQoKSkgeworICAgICAgICBpZiAobGF5b3V0Q29udGV4dCgpLmlzU2tp
cHBlZENvbnRlbnRGb3JMYXlvdXQoY2hpbGQpKSB7CiAgICAgICAgICAgICBjaGlsZC5jbGVhck5l
ZWRzTGF5b3V0Rm9yU2tpcHBlZENvbnRlbnQoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDkzMzI0MzEy
YmNmMS4uMjk5Mjc0M2E2Nzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cApAQCAtMTg1NSw3ICsxODU1LDcgQEAgYm9vbCBSZW5kZXJCb3g6OmZvcmVncm91bmRJc0tub3du
VG9CZU9wYXF1ZUluUmVjdChjb25zdCBMYXlvdXRSZWN0JiBsb2NhbFJlY3QsIHUKICAgICBpZiAo
IW1heERlcHRoVG9UZXN0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoaXNTa2lw
cGVkQ29udGVudFJvb3QoKSkKKyAgICBpZiAoaXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGNoaWxkQm94IDogY2hpbGRy
ZW5PZlR5cGU8UmVuZGVyQm94PigqdGhpcykpIHsKQEAgLTU4NDAsNyArNTg0MCw3IEBAIHN0ZDo6
b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQm94OjpleHBsaWNpdEludHJpbnNpY0lubmVyV2lk
dGgoKSBjb25zdAogICAgIGlmIChzdHlsZSgpLmNvbnRhaW5JbnRyaW5zaWNXaWR0aFR5cGUoKSA9
PSBDb250YWluSW50cmluc2ljU2l6ZVR5cGU6Ok5vbmUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAKLSAgICBpZiAoZWxlbWVudCgpICYmIHN0eWxlKCkuY29udGFpbkludHJpbnNpY1dp
ZHRoSGFzQXV0bygpICYmIFdlYkNvcmU6OmlzU2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCksIGVs
ZW1lbnQoKSkpIHsKKyAgICBpZiAoZWxlbWVudCgpICYmIHN0eWxlKCkuY29udGFpbkludHJpbnNp
Y1dpZHRoSGFzQXV0bygpICYmIGlzU2tpcHBlZENvbnRlbnRSb290KCp0aGlzKSkgewogICAgICAg
ICBpZiAoYXV0byB3aWR0aCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBlbGVtZW50KCkt
Pmxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKCkgOiBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVk
TG9naWNhbEhlaWdodCgpKQogICAgICAgICAgICAgcmV0dXJuIHdpZHRoOwogICAgIH0KQEAgLTU4
NTksNyArNTg1OSw3IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gUmVuZGVyQm94OjpleHBs
aWNpdEludHJpbnNpY0lubmVySGVpZ2h0KCkgY29uc3QKICAgICBpZiAoc3R5bGUoKS5jb250YWlu
SW50cmluc2ljSGVpZ2h0VHlwZSgpID09IENvbnRhaW5JbnRyaW5zaWNTaXplVHlwZTo6Tm9uZSkK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGlmIChlbGVtZW50KCkgJiYgc3R5
bGUoKS5jb250YWluSW50cmluc2ljSGVpZ2h0SGFzQXV0bygpICYmIFdlYkNvcmU6OmlzU2tpcHBl
ZENvbnRlbnRSb290KHN0eWxlKCksIGVsZW1lbnQoKSkpIHsKKyAgICBpZiAoZWxlbWVudCgpICYm
IHN0eWxlKCkuY29udGFpbkludHJpbnNpY0hlaWdodEhhc0F1dG8oKSAmJiBpc1NraXBwZWRDb250
ZW50Um9vdCgqdGhpcykpIHsKICAgICAgICAgaWYgKGF1dG8gaGVpZ2h0ID0gaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IGVsZW1lbnQoKS0+bGFzdFJlbWVtYmVyZWRMb2dpY2FsSGVpZ2h0KCkg
OiBlbGVtZW50KCktPmxhc3RSZW1lbWJlcmVkTG9naWNhbFdpZHRoKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gaGVpZ2h0OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmNwcAppbmRleCA1MmEzODNkNjVjMWIuLjc4MWEyMGIwMjc0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtODg5LDcgKzg4OSw3IEBAIHZvaWQg
UmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25z
dCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAgIGlmICh3YXNWaXNpYmxlICE9IHdpbGxCZVZpc2li
bGUpIHsKICAgICAgICAgICAgIGlmIChDaGVja2VkUHRyIGxheWVyID0gZW5jbG9zaW5nTGF5ZXIo
KSkgewogICAgICAgICAgICAgICAgIGlmICh3aWxsQmVWaXNpYmxlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChtX3N0eWxlLmhhc1NraXBwZWRDb250ZW50KCkgJiYgaXNTa2lwcGVkQ29udGVu
dFJvb3QoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fc3R5bGUuaGFzU2tpcHBlZENvbnRl
bnQoKSAmJiBpc1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykpCiAgICAgICAgICAgICAgICAgICAg
ICAgICBsYXllci0+ZGlydHlWaXNpYmxlQ29udGVudFN0YXR1cygpOwogICAgICAgICAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci0+c2V0SGFzVmlzaWJsZUNv
bnRlbnQoKTsKQEAgLTI1MjcsMTEgKzI1MjcsNiBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6Om1hcmtS
ZW5kZXJlckRpcnR5QWZ0ZXJUb3BMYXllckNoYW5nZShSZW5kZXJFbGVtZW50KiByZW5kZXJlcgog
ICAgIHJlbmRlckJveC0+c2V0TmVlZHNMYXlvdXQoKTsKIH0KIAotYm9vbCBSZW5kZXJFbGVtZW50
Ojppc1NraXBwZWRDb250ZW50Um9vdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFdlYkNvcmU6Omlz
U2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCksIGVsZW1lbnQoKSkgJiYgIXZpZXcoKS5mcmFtZVZp
ZXcoKS5sYXlvdXRDb250ZXh0KCkubmVlZHNTa2lwcGVkQ29udGVudExheW91dCgpOwotfQotCiBi
b29sIFJlbmRlckVsZW1lbnQ6Omhhc0VsaWdpYmxlQ29udGFpbm1lbnRGb3JTaXplUXVlcnkoKSBj
b25zdAogewogICAgIHN3aXRjaCAoc3R5bGUoKS5jb250YWluZXJUeXBlKCkpIHsKQEAgLTI1NTcs
NyArMjU1Miw3IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6bGF5b3V0SWZOZWVkZWQoKQogewogICAg
IGlmICghbmVlZHNMYXlvdXQoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChpc1NraXBwZWRD
b250ZW50Rm9yTGF5b3V0KCkpIHsKKyAgICBpZiAobGF5b3V0Q29udGV4dCgpLmlzU2tpcHBlZENv
bnRlbnRGb3JMYXlvdXQoKnRoaXMpKSB7CiAgICAgICAgIGNsZWFyTmVlZHNMYXlvdXRGb3JTa2lw
cGVkQ29udGVudCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXggM2Y2NjIzZGFhOWI1Li5jMzkyZmVhMmRiNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaApAQCAtMjkyLDggKzI5Miw2
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIG1hcmtSZW5kZXJlckRpcnR5QWZ0ZXJUb3BM
YXllckNoYW5nZShSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5p
bmdCbG9ja0JlZm9yZVN0eWxlUmVzb2x1dGlvbik7CiAKLSAgICBib29sIGlzU2tpcHBlZENvbnRl
bnRSb290KCkgY29uc3Q7Ci0KICAgICB2b2lkIGNsZWFyTmVlZHNMYXlvdXRGb3JTa2lwcGVkQ29u
dGVudCgpOwogCiAgICAgdm9pZCBzZXRSZW5kZXJCb3hIYXNTaGFwZU91dHNpZGVJbmZvKGJvb2wg
YikgeyBtX3JlbmRlckJveEhhc1NoYXBlT3V0c2lkZUluZm8gPSBiOyB9CkBAIC00MjgsNiArNDI2
LDcgQEAgcHJpdmF0ZToKIGlubGluZSBpbnQgYWRqdXN0Rm9yQWJzb2x1dGVab29tKGludCwgY29u
c3QgUmVuZGVyRWxlbWVudCYpOwogaW5saW5lIExheW91dFVuaXQgYWRqdXN0TGF5b3V0VW5pdEZv
ckFic29sdXRlWm9vbShMYXlvdXRVbml0LCBjb25zdCBSZW5kZXJFbGVtZW50Jik7CiBpbmxpbmUg
TGF5b3V0U2l6ZSBhZGp1c3RMYXlvdXRTaXplRm9yQWJzb2x1dGVab29tKExheW91dFNpemUsIGNv
bnN0IFJlbmRlckVsZW1lbnQmKTsKK2lubGluZSBib29sIGlzU2tpcHBlZENvbnRlbnRSb290KGNv
bnN0IFJlbmRlckVsZW1lbnQmKTsKIAogaW5saW5lIHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0Q2hp
bGROZWVkc0xheW91dChNYXJraW5nQmVoYXZpb3IgbWFya1BhcmVudHMpCiB7CkBAIC00OTMsMTMg
KzQ5Miw2IEBAIGlubGluZSBSZW5kZXJPYmplY3QqIFJlbmRlckVsZW1lbnQ6Omxhc3RJbkZsb3dD
aGlsZCgpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLWlubGluZSBib29sIFJlbmRl
ck9iamVjdDo6aXNTa2lwcGVkQ29udGVudFJvb3QoKSBjb25zdAotewotICAgIGlmIChpc1JlbmRl
clRleHQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBkb3duY2FzdDxSZW5k
ZXJFbGVtZW50PigqdGhpcykuaXNTa2lwcGVkQ29udGVudFJvb3QoKTsKLX0KLQogaW5saW5lIFJl
bmRlckVsZW1lbnQqIFJlbmRlck9iamVjdDo6cGFyZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9wYXJlbnQuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudElubGluZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50SW5saW5lcy5oCmluZGV4IGFlMmIwMTIyNGYwNC4uNzNjODA2ZjAzZWI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaApAQCAtNzUsNyAr
NzUsNyBAQCBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUFueUNvbnRhaW5t
ZW50KCkgY29uc3QKIAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlJbmxp
bmVTaXplQ29udGFpbm1lbnQoKSBjb25zdAogewotICAgIHJldHVybiBXZWJDb3JlOjppc1NraXBw
ZWRDb250ZW50Um9vdChzdHlsZSgpLCBlbGVtZW50KCkpIHx8IHNob3VsZEFwcGx5U2l6ZU9yU3R5
bGVDb250YWlubWVudChzdHlsZSgpLmNvbnRhaW5zSW5saW5lU2l6ZSgpKTsKKyAgICByZXR1cm4g
aXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMpIHx8IHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250
YWlubWVudChzdHlsZSgpLmNvbnRhaW5zSW5saW5lU2l6ZSgpKTsKIH0KIAogaW5saW5lIGJvb2wg
UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpIGNvbnN0CkBAIC0x
MDAsMTIgKzEwMCwxMiBAQCBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVBh
aW50Q29udGFpbm1lbnQoKSBjb25zdAogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91
bGRBcHBseVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6Omlz
U2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCksIGVsZW1lbnQoKSkgfHwgc2hvdWxkQXBwbHlTaXpl
T3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXplKCkpOworICAgIHJldHVybiBp
c1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykgfHwgc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRh
aW5tZW50KHN0eWxlKCkuY29udGFpbnNTaXplKCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJF
bGVtZW50OjpzaG91bGRBcHBseVNpemVPcklubGluZVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmlzU2tpcHBlZENvbnRlbnRSb290KHN0eWxlKCksIGVsZW1l
bnQoKSkgfHwgc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFp
bnNTaXplT3JJbmxpbmVTaXplKCkpOworICAgIHJldHVybiBpc1NraXBwZWRDb250ZW50Um9vdCgq
dGhpcykgfHwgc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHN0eWxlKCkuY29udGFp
bnNTaXplT3JJbmxpbmVTaXplKCkpOwogfQogCiAvLyBGSVhNRTogdHJ5IHRvIGF2b2lkIGR1cGxp
Y2F0aW9uIHdpdGggaXNTa2lwcGVkQ29udGVudFJvb3QuCkBAIC0xNDIsNCArMTQyLDE4IEBAIGlu
bGluZSBMYXlvdXRVbml0IGFkanVzdExheW91dFVuaXRGb3JBYnNvbHV0ZVpvb20oTGF5b3V0VW5p
dCB2YWx1ZSwgY29uc3QgUmVuZGVyCiAgICAgcmV0dXJuIGFkanVzdExheW91dFVuaXRGb3JBYnNv
bHV0ZVpvb20odmFsdWUsIHJlbmRlcmVyLnN0eWxlKCkpOwogfQogCitpbmxpbmUgYm9vbCBpc1Nr
aXBwZWRDb250ZW50Um9vdChjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKK3sKKyAgICBh
dXRvJiBzdHlsZSA9IHJlbmRlcmVyLnN0eWxlKCk7CisgICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNp
YmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAvLyBjb250ZW50LXZpc2liaWxpdHkgYXBwbGllcyB0byBlbGVtZW50cyBmb3Ig
d2hpY2ggc2l6ZSBjb250YWlubWVudCBjYW4gYXBwbHkgKGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3MtY29udGFpbi8jY29udGVudC12aXNpYmlsaXR5KQorICAgIGlmICghZG9lc1NpemVDb250
YWlubWVudEFwcGx5QnlEaXNwbGF5VHlwZShzdHlsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6
SGlkZGVuKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBBU1NFUlQoc3R5bGUuY29udGVudFZp
c2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0byk7CisgICAgcmV0dXJuIHJlbmRl
cmVyLmVsZW1lbnQoKSAmJiAhcmVuZGVyZXIuZWxlbWVudCgpLT5pc1JlbGV2YW50VG9Vc2VyKCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHcmlkLmNwcAppbmRleCBjNzgxZDY1OTJhYzQuLjdkMTZiNjRlY2EzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTQ5OCw3ICsxNDk4LDcgQEAgYm9vbCBS
ZW5kZXJHcmlkOjpoYXNTdGF0aWNQb3NpdGlvbkZvckdyaWRJdGVtKGNvbnN0IFJlbmRlckJveCYg
Z3JpZEl0ZW0sIEdyaWRUcmEKIAogdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRQb3NpdGlvbmVkT2Jq
ZWN0KFJlbmRlckJveCYgZ3JpZEl0ZW0sIGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgYm9vbCBmaXhl
ZFBvc2l0aW9uT2JqZWN0c09ubHkpCiB7Ci0gICAgaWYgKGlzU2tpcHBlZENvbnRlbnRSb290KCkp
IHsKKyAgICBpZiAobGF5b3V0Q29udGV4dCgpLmlzU2tpcHBlZENvbnRlbnRSb290Rm9yTGF5b3V0
KCp0aGlzKSkgewogICAgICAgICBncmlkSXRlbS5jbGVhck5lZWRzTGF5b3V0Rm9yU2tpcHBlZENv
bnRlbnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKaW5kZXggOGM2YjA3NmI1NDk1Li5jMjk3MzJkNjQxMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yOTQ4LDExICsyOTQ4
LDYgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OmlzU2tpcHBlZENvbnRlbnQoKSBjb25zdAogICAgIHJl
dHVybiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+c3R5bGUoKS5oYXNTa2lwcGVkQ29udGVudCgpOwog
fQogCi1ib29sIFJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudEZvckxheW91dCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGlzU2tpcHBlZENvbnRlbnQoKSAmJiAhdmlldygpLmZyYW1lVmlldygp
LmxheW91dENvbnRleHQoKS5uZWVkc1NraXBwZWRDb250ZW50TGF5b3V0KCk7Ci19Ci0KIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgcmVu
ZGVyZXIpCiB7CiAgICAgdHMgPDwgcmVuZGVyZXIuZGVidWdEZXNjcmlwdGlvbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDkxMTRlMzhkNWM2Zi4uMmEwOWQz
YTdjMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC01OCw2
ICs1OCw3IEBAIGNsYXNzIEhpdFRlc3RSZXF1ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNs
YXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBMZWdhY3lJbmxpbmVCb3g7CitjbGFzcyBMb2NhbEZyYW1l
Vmlld0xheW91dENvbnRleHQ7CiBjbGFzcyBQYXRoOwogY2xhc3MgUG9zaXRpb247CiBjbGFzcyBS
ZWZlcmVuY2VkU1ZHUmVzb3VyY2VzOwpAQCAtNzM5LDYgKzc0MCw3IEBAIHB1YmxpYzoKIAogICAg
IFJlbmRlclZpZXcmIHZpZXcoKSBjb25zdCB7IHJldHVybiAqZG9jdW1lbnQoKS5yZW5kZXJWaWV3
KCk7IH0KICAgICBDaGVja2VkUmVmPFJlbmRlclZpZXc+IGNoZWNrZWRWaWV3KCkgY29uc3Q7Cisg
ICAgaW5saW5lIGNvbnN0IExvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4
dCgpIGNvbnN0OwogCiAgICAgSG9zdFdpbmRvdyogaG9zdFdpbmRvdygpIGNvbnN0OwogCkBAIC0x
MTQ1LDkgKzExNDcsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzU2tpcHBlZENvbnRlbnQoKSBj
b25zdDsKIAotICAgIGJvb2wgaXNTa2lwcGVkQ29udGVudFJvb3QoKSBjb25zdDsKLSAgICBib29s
IGlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSBjb25zdDsKLQogICAgIFBvaW50ZXJFdmVudHMg
dXNlZFBvaW50ZXJFdmVudHMoKSBjb25zdDsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdElubGluZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RJbmxpbmVzLmgKaW5kZXggZjY3MjM2ZjQ1ZDNlLi4z
OTcyNzNhZDVhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3RJbmxpbmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dElubGluZXMuaApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVJbmxpbmVzLmgiCisj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMxLDUg
KzMyLDYgQEAgaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0Ojppc0Jsb2NrTGV2ZWxCb3goKSBjb25z
dCB7IHJldHVybiBzdHlsZSgpLmlzRGlzcGxheUJsb2MKIGlubGluZSBib29sIFJlbmRlck9iamVj
dDo6aXNUcmFuc2Zvcm1lZCgpIGNvbnN0IHsgcmV0dXJuIGhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9w
ZXJ0eSgpICYmIChzdHlsZSgpLmFmZmVjdHNUcmFuc2Zvcm0oKSB8fCBoYXNTVkdUcmFuc2Zvcm0o
KSk7IH0KIGlubGluZSBib29sIFJlbmRlck9iamVjdDo6cHJlc2VydmVzTmV3bGluZSgpIGNvbnN0
IHsgcmV0dXJuICFpc1JlbmRlclNWR0lubGluZVRleHQoKSAmJiBzdHlsZSgpLnByZXNlcnZlTmV3
bGluZSgpOyB9CiBpbmxpbmUgUmVmPERvY3VtZW50PiBSZW5kZXJPYmplY3Q6OnByb3RlY3RlZERv
Y3VtZW50KCkgY29uc3QgeyByZXR1cm4gZG9jdW1lbnQoKTsgfQoraW5saW5lIGNvbnN0IExvY2Fs
RnJhbWVWaWV3TGF5b3V0Q29udGV4dCYgUmVuZGVyT2JqZWN0OjpsYXlvdXRDb250ZXh0KCkgY29u
c3QgeyByZXR1cm4gdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKTsgfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcAppbmRleCA3OWFjMDlmNWRmODIuLjliNmJkYjVhZWM0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgdm9p
ZCBSZW5kZXJSZXBsYWNlZDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnNldCkKIAogICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQ
aGFzZTo6RXZlbnRSZWdpb24pIHsKICNpZiBFTkFCTEUoSU5URVJBQ1RJT05fUkVHSU9OU19JTl9F
VkVOVF9SRUdJT04pCi0gICAgICAgIGlmIChpc1JlbmRlck9yTGVnYWN5UmVuZGVyU1ZHUm9vdCgp
ICYmICFpc1NraXBwZWRDb250ZW50Um9vdCgpKQorICAgICAgICBpZiAoaXNSZW5kZXJPckxlZ2Fj
eVJlbmRlclNWR1Jvb3QoKSAmJiAhaXNTa2lwcGVkQ29udGVudFJvb3QoKnRoaXMpKQogICAgICAg
ICAgICAgcGFpbnRSZXBsYWNlZChwYWludEluZm8sIGFkanVzdGVkUGFpbnRPZmZzZXQpOwogICAg
ICAgICBlbHNlIGlmICh2aXNpYmxlVG9IaXRUZXN0aW5nKCkpIHsKICNlbHNlCkBAIC0zMTYsNyAr
MzE2LDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICB9CiAKICAgICBpZiAoIWNvbXBs
ZXRlbHlDbGlwcGVkT3V0KSB7Ci0gICAgICAgIGlmICghaXNTa2lwcGVkQ29udGVudFJvb3QoKSkK
KyAgICAgICAgaWYgKCFpc1NraXBwZWRDb250ZW50Um9vdCgqdGhpcykpCiAgICAgICAgICAgICBw
YWludFJlcGxhY2VkKHBhaW50SW5mbywgYWRqdXN0ZWRQYWludE9mZnNldCk7CiAKICAgICAgICAg
aWYgKHN0eWxlKCkuaGFzQm9yZGVyUmFkaXVzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwCmluZGV4IGY0ZjcwMTI2NWE2NS4uZjEzMjAwZWNjODMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAtMzMzLDcgKzMzMyw3IEBA
IHZvaWQgUmVuZGVyV2lkZ2V0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgICAgICBjbGlwVG9Db250ZW50Qm94U2hhcGUocGFp
bnRJbmZvLmNvbnRleHQoKSwgYWRqdXN0ZWRQYWludE9mZnNldCwgZG9jdW1lbnQoKS5kZXZpY2VT
Y2FsZUZhY3RvcigpKTsKICAgICB9CiAKLSAgICBpZiAobV93aWRnZXQgJiYgIWlzU2tpcHBlZENv
bnRlbnRSb290KCkpCisgICAgaWYgKG1fd2lkZ2V0ICYmICFpc1NraXBwZWRDb250ZW50Um9vdCgq
dGhpcykpCiAgICAgICAgIHBhaW50Q29udGVudHMocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CiAK
ICAgICBpZiAoc3R5bGUoKS5oYXNCb3JkZXJSYWRpdXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNTFiZWY1YTg2ZTJmLi5kNzBjMGUyZGVi
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBA
IC0yNDEzLDggKzI0MTMsNyBAQCBpbmxpbmUgYm9vbCBwc2V1ZG9FbGVtZW50UmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSopOwogaW5saW5lIGJvb2wgZ2VuZXJhdGVzQm94KGNvbnN0
IFJlbmRlclN0eWxlJik7CiBpbmxpbmUgYm9vbCBpc05vblZpc2libGVPdmVyZmxvdyhPdmVyZmxv
dyk7CiAKLWlubGluZSBib29sIGlzU2tpcHBlZENvbnRlbnRSb290KGNvbnN0IFJlbmRlclN0eWxl
JiwgY29uc3QgRWxlbWVudCopOwotCiBpbmxpbmUgYm9vbCBpc1Zpc2libGVUb0hpdFRlc3Rpbmco
Y29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBIaXRUZXN0UmVxdWVzdCYpOworaW5saW5lIGJvb2wg
ZG9lc1NpemVDb250YWlubWVudEFwcGx5QnlEaXNwbGF5VHlwZShjb25zdCBSZW5kZXJTdHlsZSYp
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJbmxpbmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJbmxpbmVzLmgKaW5kZXggYjViMDE5OWY3ZjBhLi43NmQ5
NDQ4YTNkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZUlubGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVJbmxpbmVzLmgKQEAgLTk3Niw2ICs5NzYsMjMgQEAgY29uc3RleHByIGJvb2wgUmVu
ZGVyU3R5bGU6OmlzUnVieUNvbnRhaW5lck9ySW50ZXJuYWxSdWJ5Qm94KERpc3BsYXlUeXBlIGRp
c3BsYXkKICAgICAgICAgfHwgZGlzcGxheSA9PSBEaXNwbGF5VHlwZTo6UnVieUJhc2U7CiB9CiAK
K2lubGluZSBib29sIGRvZXNTaXplQ29udGFpbm1lbnRBcHBseUJ5RGlzcGxheVR5cGUoY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlKQoreworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3MtY29udGFpbi0yLyNjb250YWlubWVudC1zaXplCisgICAgLy8gR2l2aW5nIGFuIGVsZW1lbnQg
c2l6ZSBjb250YWlubWVudCBoYXMgbm8gZWZmZWN0IGlmIGFueSBvZiB0aGUgZm9sbG93aW5nIGFy
ZSB0cnVlOgorICAgIC8vIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNp
cGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5
OiBub25lKQorICAgIC8vIGlmIGl0cyBpbm5lciBkaXNwbGF5IHR5cGUgaXMgdGFibGUKKyAgICAv
LyBpZiBpdHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCB0YWJsZSBib3gKKyAgICAvLyBp
ZiBpdHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCBydWJ5IGJveCBvciBhIG5vbi1hdG9t
aWMgaW5saW5lLWxldmVsIGJveAorICAgIGF1dG8gZGlzcGxheVR5cGUgPSBzdHlsZS5kaXNwbGF5
KCk7CisgICAgcmV0dXJuIGRpc3BsYXlUeXBlICE9IERpc3BsYXlUeXBlOjpOb25lCisgICAgICAg
ICYmIGRpc3BsYXlUeXBlICE9IERpc3BsYXlUeXBlOjpDb250ZW50cworICAgICAgICAmJiBkaXNw
bGF5VHlwZSAhPSBEaXNwbGF5VHlwZTo6VGFibGUKKyAgICAgICAgJiYgZGlzcGxheVR5cGUgIT0g
RGlzcGxheVR5cGU6OklubGluZVRhYmxlCisgICAgICAgICYmICFzdHlsZS5pc0ludGVybmFsVGFi
bGVCb3goKQorICAgICAgICAmJiAhc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJbnRlcm5hbFJ1YnlC
b3goKTsKK30KKwogaW5saW5lIGRvdWJsZSBSZW5kZXJTdHlsZTo6bG9naWNhbEFzcGVjdFJhdGlv
KCkgY29uc3QKIHsKICAgICBBU1NFUlQoYXNwZWN0UmF0aW9UeXBlKCkgIT0gQXNwZWN0UmF0aW9U
eXBlOjpBdXRvKTsKQEAgLTk5MCwzMiArMTAwNyw2IEBAIGNvbnN0ZXhwciBib29sIFJlbmRlclN0
eWxlOjpwcmVzZXJ2ZU5ld2xpbmUoV2hpdGVTcGFjZSBtb2RlKQogICAgIHJldHVybiBtb2RlICE9
IFdoaXRlU3BhY2U6Ok5vcm1hbCAmJiBtb2RlICE9IFdoaXRlU3BhY2U6Ok5vV3JhcDsKIH0KIAot
aW5saW5lIGJvb2wgaXNTa2lwcGVkQ29udGVudFJvb3QoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBjb25zdCBFbGVtZW50KiBlbGVtZW50KQotewotICAgIGlmIChzdHlsZS5jb250ZW50VmlzaWJp
bGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNpYmxlKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBhdXRvIGRvZXNDb250ZW50VmlzaWJpbGl0eUFwcGx5ID0gWyZdIHsKLSAgICAg
ICAgLy8gY29udGVudC12aXNpYmlsaXR5IGFwcGxpZXMgdG8gZWxlbWVudHMgZm9yIHdoaWNoIHNp
emUgY29udGFpbm1lbnQgY2FuIGFwcGx5IChodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNv
bnRhaW4vI2NvbnRlbnQtdmlzaWJpbGl0eSkKLQotICAgICAgICAvLyBodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3NzLWNvbnRhaW4tMi8jY29udGFpbm1lbnQtc2l6ZQotICAgICAgICAvLyBHaXZp
bmcgYW4gZWxlbWVudCBzaXplIGNvbnRhaW5tZW50IGhhcyBubyBlZmZlY3QgaWYgYW55IG9mIHRo
ZSBmb2xsb3dpbmcgYXJlIHRydWU6Ci0gICAgICAgIC8vIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90
IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBj
b250ZW50cyBvciBkaXNwbGF5OiBub25lKQotICAgICAgICAvLyBpZiBpdHMgaW5uZXIgZGlzcGxh
eSB0eXBlIGlzIHRhYmxlCi0gICAgICAgIC8vIGlmIGl0cyBwcmluY2lwYWwgYm94IGlzIGFuIGlu
dGVybmFsIHRhYmxlIGJveAotICAgICAgICAvLyBpZiBpdHMgcHJpbmNpcGFsIGJveCBpcyBhbiBp
bnRlcm5hbCBydWJ5IGJveCBvciBhIG5vbi1hdG9taWMgaW5saW5lLWxldmVsIGJveAotICAgICAg
ICBhdXRvIGRpc3BsYXlUeXBlID0gc3R5bGUuZGlzcGxheSgpOwotICAgICAgICBhdXRvIGRvZXNO
b3RBcHBseSA9IGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpOb25lIHx8IGRpc3BsYXlUeXBl
ID09IERpc3BsYXlUeXBlOjpDb250ZW50cyB8fCBkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6
VGFibGUgfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OklubGluZVRhYmxlIHx8IHN0eWxl
LmlzSW50ZXJuYWxUYWJsZUJveCgpIHx8IHN0eWxlLmlzUnVieUNvbnRhaW5lck9ySW50ZXJuYWxS
dWJ5Qm94KCk7Ci0gICAgICAgIHJldHVybiAhZG9lc05vdEFwcGx5OwotICAgIH07Ci0gICAgaWYg
KCFkb2VzQ29udGVudFZpc2liaWxpdHlBcHBseSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6Okhp
ZGRlbikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgQVNTRVJUKHN0eWxlLmNvbnRlbnRWaXNp
YmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG8pOwotICAgIHJldHVybiBlbGVtZW50
ICYmICFlbGVtZW50LT5pc1JlbGV2YW50VG9Vc2VyKCk7Ci19Ci0KIGlubGluZSBmbG9hdCBhZGp1
c3RGbG9hdEZvckFic29sdXRlWm9vbShmbG9hdCB2YWx1ZSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlKQogewogICAgIHJldHVybiB2YWx1ZSAvIHN0eWxlLnVzZWRab29tKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNw
cAppbmRleCBhYzVjOTBmODllZDQuLmMyN2U2Yzc5MzdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCkBAIC00
MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUHNl
dWRvRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIgorI2lu
Y2x1ZGUgIlJlbmRlckVsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyRmxleGlibGVC
b3guaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgpAQCAtNDY4LDcgKzQ2OSw3IEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZUVsZW1l
bnRSZW5kZXJlcihFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHlsZTo6RWxlCiAgICAgYXV0byBz
Y29wZUV4aXQgPSBtYWtlU2NvcGVFeGl0KFsmXSB7CiAgICAgICAgIGlmICghaGFzRGlzcGxheUNv
bnRlbnRzT3JOb25lKSB7CiAgICAgICAgICAgICBhdXRvKiBib3ggPSBlbGVtZW50LnJlbmRlckJv
eCgpOwotICAgICAgICAgICAgaWYgKGJveCAmJiBib3gtPnN0eWxlKCkuaGFzQXV0b0xlbmd0aENv
bnRhaW5JbnRyaW5zaWNTaXplKCkgJiYgIWJveC0+aXNTa2lwcGVkQ29udGVudFJvb3QoKSkKKyAg
ICAgICAgICAgIGlmIChib3ggJiYgYm94LT5zdHlsZSgpLmhhc0F1dG9MZW5ndGhDb250YWluSW50
cmluc2ljU2l6ZSgpICYmICFpc1NraXBwZWRDb250ZW50Um9vdCgqYm94KSkKICAgICAgICAgICAg
ICAgICBtX2RvY3VtZW50LT5vYnNlcnZlRm9yQ29udGFpbkludHJpbnNpY1NpemUoZWxlbWVudCk7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9kb2N1bWVudC0+dW5vYnNlcnZl
Rm9yQ29udGFpbkludHJpbnNpY1NpemUoZWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QWRqdXN0ZXIuY3BwCmluZGV4IGQ2OTI5OWRjMzlkZi4uOWVmNGI4NWJjZDllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApAQCAtNzUxLDggKzc1MSwxMiBAQCB2b2lkIEFk
anVzdGVyOjphZGp1c3QoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogdXNl
ckFnZW50QXBwZWFyYW5jZQogICAgICAgICAgICAgYWRqdXN0Rm9yVGV4dEF1dG9zaXppbmcoc3R5
bGUsICptX2VsZW1lbnQpOwogI2VuZGlmCiAgICAgfQotICAgIGlmIChpc1NraXBwZWRDb250ZW50
Um9vdChzdHlsZSwgbV9lbGVtZW50LmdldCgpKSAmJiBtX3BhcmVudFN0eWxlLmNvbnRlbnRWaXNp
YmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikKLSAgICAgICAgc3R5bGUuc2V0
VXNlZENvbnRlbnRWaXNpYmlsaXR5KHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkpOworCisgICAg
aWYgKG1fcGFyZW50U3R5bGUuY29udGVudFZpc2liaWxpdHkoKSAhPSBDb250ZW50VmlzaWJpbGl0
eTo6SGlkZGVuKSB7CisgICAgICAgIGF1dG8gaXNTa2lwcGVkQ29udGVudFJvb3QgPSBzdHlsZS5j
b250ZW50VmlzaWJpbGl0eSgpICE9IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNpYmxlICYmIGRvZXNT
aXplQ29udGFpbm1lbnRBcHBseUJ5RGlzcGxheVR5cGUoc3R5bGUpICYmIG1fZWxlbWVudCAmJiAh
bV9lbGVtZW50LT5pc1JlbGV2YW50VG9Vc2VyKCk7CisgICAgICAgIGlmIChpc1NraXBwZWRDb250
ZW50Um9vdCkKKyAgICAgICAgICAgIHN0eWxlLnNldFVzZWRDb250ZW50VmlzaWJpbGl0eShzdHls
ZS5jb250ZW50VmlzaWJpbGl0eSgpKTsKKyAgICB9CiAKICAgICBpZiAoc3R5bGUuY29udGVudFZp
c2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bykgewogICAgICAgICBzdHlsZS5j
b250YWluSW50cmluc2ljV2lkdGhBZGRBdXRvKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>