<?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>260433</bug_id>
          
          <creation_ts>2023-08-19 10:34:41 -0700</creation_ts>
          <short_desc>[IFC][InlineContentBreaker] Add fast path for text only minimum intrinsic width computation</short_desc>
          <delta_ts>2023-08-21 09:51:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1972242</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2023-08-19 10:34:41 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972243</commentid>
    <comment_count>1</comment_count>
      <attachid>467343</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-08-19 10:44:19 -0700</bug_when>
    <thetext>Created attachment 467343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972244</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-08-19 10:45:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/114137643&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972257</commentid>
    <comment_count>3</comment_count>
      <attachid>467344</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-08-19 15:54:46 -0700</bug_when>
    <thetext>Created attachment 467344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972374</commentid>
    <comment_count>4</comment_count>
      <attachid>467365</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-08-21 07:51:29 -0700</bug_when>
    <thetext>Created attachment 467365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972406</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-08-21 09:51:38 -0700</bug_when>
    <thetext>Committed 267093@main (015d4c615abf): &lt;https://commits.webkit.org/267093@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 467365.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>467343</attachid>
            <date>2023-08-19 10:44:19 -0700</date>
            <delta_ts>2023-08-19 15:54:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-260433-20230819104419.patch</filename>
            <type>text/plain</type>
            <size>18827</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1Y2M5NmZkMWZjZTc0YWI5ZTU4OGQ4MTdlZDg0MjVkODZhODY1NzNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMTkgQXVnIDIwMjMgMTA6MzQ6NTYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXVtJ
bmxpbmVDb250ZW50QnJlYWtlcl0gQWRkIGZhc3QgcGF0aCBmb3IgdGV4dCBvbmx5CiBtaW5pbXVt
IGludHJpbnNpYyB3aWR0aCBjb21wdXRhdGlvbgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI2MDQzMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpNaW5pbXVt
IHdpZHRoIGNvbXB1dGF0aW9uIGlzIGhlYXZpbHkgdXNlZCBieSBmbGV4LCB0YWJsZSwgZmxvYXQg
YW5kIG91dC1vZi1mbG93IGNvbnRlbnQuCgp+MTAlIHByb2dyZXNzaW9uIG9uIFBlcmZvcm1hbmNl
VGVzdHMvTGF5b3V0L2xpbmUtbGF5b3V0LXByZWZlcnJlZC13aWR0aC1icmVhay1hbGwuaHRtbC4K
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
Q29udGVudEJyZWFrZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50QnJlYWtl
cjo6cHJvY2Vzc0lubGluZUNvbnRlbnQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50
QnJlYWtlcjo6cHJvY2Vzc092ZXJmbG93aW5nQ29udGVudCBjb25zdCk6CihXZWJDb3JlOjpMYXlv
dXQ6OklubGluZUNvbnRlbnRCcmVha2VyOjpzaW1wbGlmaWVkTWluaW11bUluc3RyaW5zaWNXaWR0
aEJyZWFrIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudEJyZWFrZXI6Ondv
cmRCcmVha0JlaGF2aW9yIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudEJy
ZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50OjphcHBlbmQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQ6OmFwcGVuZFRleHRDb250ZW50KToK
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50
OjpyZXNldCk6CihXZWJDb3JlOjpMYXlvdXQ6Omhhc1RleHRSdW4pOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRC
cmVha2VyLmg6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51
b3VzQ29udGVudDo6aGFzVGV4dENvbnRlbnQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQ6OmlzVGV4dENvbnRlbnQgY29uc3Qp
OgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50QnJlYWtlcjo6c2V0SXNNaW5pbXVtSW5J
bnRyaW5zaWNXaWR0aE1vZGUpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50QnJlYWtl
cjo6aXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGUgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVDb250ZW50QnJlYWtlcjo6c2V0SXNJbkludHJpbnNpY1dpZHRoTW9kZSk6IERlbGV0
ZWQuCihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRCcmVha2VyOjppc0luSW50cmluc2lj
V2lkdGhNb2RlIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250ZW50KToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVy
LmNwcDoKKFdlYkNvcmU6OkxheW91dDo6VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aGFuZGxl
T3ZlcmZsb3dpbmdUZXh0Q29udGVudCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OlRl
eHRVdGlsOjp3aWR0aCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oOgotLS0KIC4uLi9pbmxpbmUvSW5saW5lQ29udGVudEJy
ZWFrZXIuY3BwICAgICAgICAgICB8IDUwICsrKysrKysrKysrKystLS0tLS0KIC4uLi9pbmxpbmUv
SW5saW5lQ29udGVudEJyZWFrZXIuaCAgICAgICAgICAgICB8IDExICsrLS0KIC4uLi9pbmxpbmUv
SW5saW5lTGluZUJ1aWxkZXIuY3BwICAgICAgICAgICAgICB8ICAyICstCiAuLi4vaW5saW5lL1Rl
eHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwICAgICAgfCAgMiArLQogLi4uL2lubGluZS90ZXh0
L1RleHRVdGlsLmNwcCAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIC4uLi9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaCB8ICA1ICstCiA2IGZpbGVzIGNoYW5nZWQsIDQ4
IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRCcmVha2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUNvbnRlbnRCcmVha2VyLmNwcAppbmRleCAzYjJjYjEzZjA5MGIuLjY0OWY3NzRkYjUxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lQ29udGVudEJyZWFrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRCcmVha2VyLmNwcApAQCAtNDgs
MTcgKzQ4LDYgQEAgc3RhdGljIGlubGluZSBib29sIGhhc0xlYWRpbmdUZXh0Q29udGVudChjb25z
dCBJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0MKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBoYXNUZXh0UnVuKGNvbnN0IElubGluZUNvbnRlbnRCcmVh
a2VyOjpDb250aW51b3VzQ29udGVudCYgY29udGludW91c0NvbnRlbnQpCi17Ci0gICAgLy8gPHNw
YW4+dGV4dDwvc3Bhbj4gaXMgY29uc2lkZXJlZCBhIHRleHQgcnVuIGV2ZW4gd2l0aCB0aGUgW2lu
bGluZSBib3ggc3RhcnRdW2lubGluZSBib3ggZW5kXSBpbmxpbmUgaXRlbXMuCi0gICAgLy8gQmFz
ZWQgb24gc3RhbmRhcmRzIGNvbW1pdCBib3VuZGFyeSBydWxlcyBpdCB3b3VsZCBiZSBlbm91Z2gg
dG8gY2hlY2sgdGhlIGZpcnN0IGlubGluZSBpdGVtLgotICAgIGZvciAoYXV0byYgcnVuIDogY29u
dGludW91c0NvbnRlbnQucnVucygpKSB7Ci0gICAgICAgIGlmIChydW4uaW5saW5lSXRlbS5pc1Rl
eHQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KIHN0YXRpYyBpbmxpbmUgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG5leHRUZXh0UnVuSW5k
ZXgoY29uc3QgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50OjpSdW5MaXN0
JiBydW5zLCBzaXplX3Qgc3RhcnRJbmRleCkKIHsKICAgICBmb3IgKGF1dG8gaW5kZXggPSBzdGFy
dEluZGV4ICsgMTsgaW5kZXggPCBydW5zLnNpemUoKTsgKytpbmRleCkgewpAQCAtMTExLDcgKzEw
MCwxMSBAQCBzdGF0aWMgaW5saW5lIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBmaXJzdFRleHRSdW5J
bmRleChjb25zdCBJbmxpbmVDb250ZW50QnJlYWtlcgogSW5saW5lQ29udGVudEJyZWFrZXI6OlJl
c3VsdCBJbmxpbmVDb250ZW50QnJlYWtlcjo6cHJvY2Vzc0lubGluZUNvbnRlbnQoY29uc3QgQ29u
dGludW91c0NvbnRlbnQmIGNhbmRpZGF0ZUNvbnRlbnQsIGNvbnN0IExpbmVTdGF0dXMmIGxpbmVT
dGF0dXMpCiB7CiAgICAgQVNTRVJUKCFzdGQ6OmlzbmFuKGxpbmVTdGF0dXMuYXZhaWxhYmxlV2lk
dGgpKTsKLSAgICBBU1NFUlQoY2FuZGlkYXRlQ29udGVudC5sb2dpY2FsV2lkdGgoKSA+IGxpbmVT
dGF0dXMuYXZhaWxhYmxlV2lkdGgpOworICAgIEFTU0VSVChpc01pbmltdW1JbkludHJpbnNpY1dp
ZHRoTW9kZSgpIHx8IGNhbmRpZGF0ZUNvbnRlbnQubG9naWNhbFdpZHRoKCkgPiBsaW5lU3RhdHVz
LmF2YWlsYWJsZVdpZHRoKTsKKworICAgIGlmIChhdXRvIHJlc3VsdCA9IHNpbXBsaWZpZWRNaW5p
bXVtSW5zdHJpbnNpY1dpZHRoQnJlYWsoY2FuZGlkYXRlQ29udGVudCkpCisgICAgICAgIHJldHVy
biAqcmVzdWx0OworCiAgICAgYXV0byByZXN1bHQgPSBwcm9jZXNzT3ZlcmZsb3dpbmdDb250ZW50
KGNhbmRpZGF0ZUNvbnRlbnQsIGxpbmVTdGF0dXMpOwogICAgIGlmIChyZXN1bHQuYWN0aW9uID09
IFJlc3VsdDo6QWN0aW9uOjpXcmFwICYmIGxpbmVTdGF0dXMudHJhaWxpbmdTb2Z0SHlwaGVuV2lk
dGggJiYgaGFzTGVhZGluZ1RleHRDb250ZW50KGNhbmRpZGF0ZUNvbnRlbnQpKSB7CiAgICAgICAg
IC8vIEEgdHJhaWxpbmcgc29mdCBoeXBoZW4gd2l0aCBhIHdyYXBwZWQgdGV4dCBjb250ZW50IHR1
cm5zIGludG8gYSB2aXNpYmxlIGh5cGhlbi4KQEAgLTEyMyw5ICsxMTYsOCBAQCBJbmxpbmVDb250
ZW50QnJlYWtlcjo6UmVzdWx0IElubGluZUNvbnRlbnRCcmVha2VyOjpwcm9jZXNzSW5saW5lQ29u
dGVudChjb25zdCBDbwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUlubGluZUNvbnRlbnRCcmVh
a2VyOjpSZXN1bHQgSW5saW5lQ29udGVudEJyZWFrZXI6OnByb2Nlc3NPdmVyZmxvd2luZ0NvbnRl
bnQoY29uc3QgQ29udGludW91c0NvbnRlbnQmIG92ZXJmbG93Q29udGVudCwgY29uc3QgTGluZVN0
YXR1cyYgbGluZVN0YXR1cykgY29uc3QKK0lubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQgSW5s
aW5lQ29udGVudEJyZWFrZXI6OnByb2Nlc3NPdmVyZmxvd2luZ0NvbnRlbnQoY29uc3QgQ29udGlu
dW91c0NvbnRlbnQmIGNvbnRpbnVvdXNDb250ZW50LCBjb25zdCBMaW5lU3RhdHVzJiBsaW5lU3Rh
dHVzKSBjb25zdAogewotICAgIGF1dG8gY29udGludW91c0NvbnRlbnQgPSBDb250aW51b3VzQ29u
dGVudCB7IG92ZXJmbG93Q29udGVudCB9OwogICAgIEFTU0VSVCghY29udGludW91c0NvbnRlbnQu
cnVucygpLmlzRW1wdHkoKSk7CiAKICAgICBBU1NFUlQoY29udGludW91c0NvbnRlbnQubG9naWNh
bFdpZHRoKCkgPiBsaW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoKTsKQEAgLTE2Niw3ICsxNTgsNyBA
QCBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0IElubGluZUNvbnRlbnRCcmVha2VyOjpwcm9j
ZXNzT3ZlcmZsb3dpbmdDb250ZW50KGNvbgogICAgICAgICByZXR1cm4gKnJlc3VsdDsKIAogICAg
IHNpemVfdCBvdmVyZmxvd2luZ1J1bkluZGV4ID0gMDsKLSAgICBpZiAoaGFzVGV4dFJ1bihjb250
aW51b3VzQ29udGVudCkpIHsKKyAgICBpZiAoY29udGludW91c0NvbnRlbnQuaGFzVGV4dENvbnRl
bnQoKSkgewogICAgICAgICBhdXRvIHRyeUJyZWFraW5nQ29udGVudFdpdGhUZXh0ID0gWyZdKCkg
LT4gc3RkOjpvcHRpb25hbDxSZXN1bHQ+IHsKICAgICAgICAgICAgIC8vIDEuIFRoaXMgdGV4dCBj
b250ZW50IGlzIG5vdCBicmVha2FibGUuCiAgICAgICAgICAgICAvLyAyLiBUaGlzIGJyZWFrYWJs
ZSB0ZXh0IGNvbnRlbnQgZG9lcyBub3QgZml0IGF0IGFsbC4gTm90IGV2ZW4gdGhlIGZpcnN0IGds
eXBoLiBUaGlzIGlzIGEgdmVyeSBzcGVjaWFsIGNhc2UuCkBAIC0yNTQsNiArMjQ2LDI4IEBAIElu
bGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQgSW5saW5lQ29udGVudEJyZWFrZXI6OnByb2Nlc3NP
dmVyZmxvd2luZ0NvbnRlbnQoY29uCiAgICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OktlZXAs
IElzRW5kT2ZMaW5lOjpObyB9OwogfQogCitzdGQ6Om9wdGlvbmFsPElubGluZUNvbnRlbnRCcmVh
a2VyOjpSZXN1bHQ+IElubGluZUNvbnRlbnRCcmVha2VyOjpzaW1wbGlmaWVkTWluaW11bUluc3Ry
aW5zaWNXaWR0aEJyZWFrKGNvbnN0IENvbnRpbnVvdXNDb250ZW50JiBjYW5kaWRhdGVDb250ZW50
KSBjb25zdAoreworICAgIGlmICghaXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGUoKSB8fCAh
Y2FuZGlkYXRlQ29udGVudC5pc1RleHRPbmx5Q29udGVudCgpKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgYXV0byYgbGVhZGluZ0lubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4
dEl0ZW0+KGNhbmRpZGF0ZUNvbnRlbnQucnVucygpLmZpcnN0KCkuaW5saW5lSXRlbSk7CisgICAg
YXV0byYgc3R5bGUgPSBsZWFkaW5nSW5saW5lVGV4dEl0ZW0uc3R5bGUoKTsKKyAgICBpZiAoIVRl
eHRVdGlsOjppc1dyYXBwaW5nQWxsb3dlZChzdHlsZSkpCisgICAgICAgIHJldHVybiBSZXN1bHQg
eyBSZXN1bHQ6OkFjdGlvbjo6S2VlcCwgSXNFbmRPZkxpbmU6OlllcyB9OworCisgICAgYXV0byBi
cmVha0JlaGF2aW9yID0gd29yZEJyZWFrQmVoYXZpb3Ioc3R5bGUsIHsgfSk7CisgICAgaWYgKGJy
ZWFrQmVoYXZpb3IuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gUmVzdWx0IHsgUmVzdWx0OjpB
Y3Rpb246OktlZXAsIElzRW5kT2ZMaW5lOjpZZXMgfTsKKworICAgIGlmIChicmVha0JlaGF2aW9y
LmNvbnRhaW5zQW55KHsgV29yZEJyZWFrUnVsZTo6QXRBcmJpdHJhcnlQb3NpdGlvbldpdGhpbldv
cmRzLCBXb3JkQnJlYWtSdWxlOjpBdEFyYml0cmFyeVBvc2l0aW9uIH0pKSB7CisgICAgICAgIGF1
dG8gZmlyc3RDaGFyYWN0ZXJMZW5ndGggPSBUZXh0VXRpbDo6Zmlyc3RVc2VyUGVyY2VpdmVkQ2hh
cmFjdGVyTGVuZ3RoKGxlYWRpbmdJbmxpbmVUZXh0SXRlbSk7CisgICAgICAgIGF1dG8gZmlyc3RD
aGFyYWN0ZXJXaWR0aCA9IFRleHRVdGlsOjp3aWR0aChsZWFkaW5nSW5saW5lVGV4dEl0ZW0sIHN0
eWxlLmZvbnRDYXNjYWRlKCksIGxlYWRpbmdJbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBsZWFkaW5n
SW5saW5lVGV4dEl0ZW0uc3RhcnQoKSArIGZpcnN0Q2hhcmFjdGVyTGVuZ3RoLCB7IH0sIFRleHRV
dGlsOjpVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Ok5vKTsKKyAg
ICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpCcmVhaywgSXNFbmRPZkxpbmU6
OlllcywgUmVzdWx0OjpQYXJ0aWFsVHJhaWxpbmdDb250ZW50IHsgeyB9LCBQYXJ0aWFsUnVuIHsg
Zmlyc3RDaGFyYWN0ZXJMZW5ndGgsIGZpcnN0Q2hhcmFjdGVyV2lkdGggfSwgeyB9IH0gfTsKKyAg
ICB9CisgICAgcmV0dXJuIHsgfTsKK30KKwogc3RhdGljIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBm
aW5kVHJhaWxpbmdSdW5JbmRleChjb25zdCBJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91
c0NvbnRlbnQ6OlJ1bkxpc3QmIHJ1bnMsIHNpemVfdCBicmVha2FibGVSdW5JbmRleCkKIHsKICAg
ICAvLyBXaGVuIHRoZSBicmVha2luZyBwb3NpdGlvbiBpcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSBydW4sIHRoZSB0cmFpbGluZyBydW4gaXMgdGhlIHByZXZpb3VzIG9uZS4KQEAgLTc2OCw3ICs3
ODIsNyBAQCBPcHRpb25TZXQ8SW5saW5lQ29udGVudEJyZWFrZXI6OldvcmRCcmVha1J1bGU+IElu
bGluZUNvbnRlbnRCcmVha2VyOjp3b3JkQnJlYWtCZQogICAgIC8vIE92ZXJmbG93V3JhcDo6QnJl
YWtXb3JkL0FueXdoZXJlIEFuIG90aGVyd2lzZSB1bmJyZWFrYWJsZSBzZXF1ZW5jZSBvZiBjaGFy
YWN0ZXJzIG1heSBiZSBicm9rZW4gYXQgYW4gYXJiaXRyYXJ5IHBvaW50IGlmIHRoZXJlIGFyZSBu
byBvdGhlcndpc2UtYWNjZXB0YWJsZSBicmVhayBwb2ludHMgaW4gdGhlIGxpbmUuCiAgICAgLy8g
Tm90ZSB0aGF0IHRoaXMgYXBwbGllcyB0byBjb250ZW50IHdoZXJlIENTUyBwcm9wZXJ0aWVzIChl
LmcuIFdvcmRCcmVhazo6S2VlcEFsbCkgbWFrZSBpdCB1bmJyZWFrYWJsZS4gCiAgICAgLy8gU29m
dCB3cmFwIG9wcG9ydHVuaXRpZXMgaW50cm9kdWNlZCBieSBvdmVyZmxvdy13cmFwL3dvcmQtd3Jh
cDogYnJlYWstd29yZCBhcmUgbm90IGNvbnNpZGVyZWQgd2hlbiBjYWxjdWxhdGluZyBtaW4tY29u
dGVudCBpbnRyaW5zaWMgc2l6ZXMuCi0gICAgYXV0byBvdmVyZmxvd1dyYXBCcmVha1dvcmRJc0Fw
cGxpY2FibGUgPSAhaXNJbkludHJpbnNpY1dpZHRoTW9kZSgpOworICAgIGF1dG8gb3ZlcmZsb3dX
cmFwQnJlYWtXb3JkSXNBcHBsaWNhYmxlID0gIWlzTWluaW11bUluSW50cmluc2ljV2lkdGhNb2Rl
KCk7CiAgICAgaWYgKCgob3ZlcmZsb3dXcmFwQnJlYWtXb3JkSXNBcHBsaWNhYmxlICYmIHN0eWxl
Lm92ZXJmbG93V3JhcCgpID09IE92ZXJmbG93V3JhcDo6QnJlYWtXb3JkKSB8fCBzdHlsZS5vdmVy
Zmxvd1dyYXAoKSA9PSBPdmVyZmxvd1dyYXA6OkFueXdoZXJlKSAmJiAhaGFzV3JhcE9wcG9ydHVu
aXR5QXRQcmV2aW91c1Bvc2l0aW9uKQogICAgICAgICByZXR1cm4gaW5jbHVkZUh5cGhlbmF0aW9u
SWZBbGxvd2VkKFdvcmRCcmVha1J1bGU6OkF0QXJiaXRyYXJ5UG9zaXRpb24pOwogICAgIC8vIEJy
ZWFraW5nIGlzIGZvcmJpZGRlbiB3aXRoaW4g4oCcd29yZHPigJ0uCkBAIC03OTMsNiArODA3LDcg
QEAgdm9pZCBJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQ6OnJlc2V0VHJh
aWxpbmdUcmltbWFibGVDb250ZW50KCkKIHZvaWQgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRp
bnVvdXNDb250ZW50OjphcHBlbmQoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCkKIHsKICAg
ICBBU1NFUlQoaW5saW5lSXRlbS5pc0JveCgpIHx8IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFy
dCgpIHx8IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSk7CisgICAgbV9pc1RleHRPbmx5Q29u
dGVudCA9IGZhbHNlOwogICAgIGFwcGVuZFRvUnVuTGlzdChpbmxpbmVJdGVtLCBzdHlsZSwgbG9n
aWNhbFdpZHRoKTsKICAgICBpZiAoaW5saW5lSXRlbS5pc0JveCgpKSB7CiAgICAgICAgIC8vIElu
bGluZSBib3hlcyAod2hpdGVzcGFjZS0+IDxzcGFuPjwvc3Bhbj4pIGRvIG5vdCBwcmV2ZW50IHRo
ZSB0cmFpbGluZyBjb250ZW50IGZyb20gZ2V0dGluZyB0cmltbWVkL2h1bmcKQEAgLTgwMyw2ICs4
MTgsNyBAQCB2b2lkIElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudDo6YXBw
ZW5kKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZQogCiB2b2lkIElubGluZUNvbnRlbnRCcmVh
a2VyOjpDb250aW51b3VzQ29udGVudDo6YXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4
dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxh
eW91dFVuaXQgbG9naWNhbFdpZHRoKQogeworICAgIG1faGFzVGV4dENvbnRlbnQgPSB0cnVlOwog
ICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdGV4dC00LyN3aGl0ZS1zcGFjZS1waGFz
ZS0yCiAgICAgYXV0byBpc1RyYWlsaW5nSGFuZ2luZ0NvbnRlbnQgPSBpbmxpbmVUZXh0SXRlbS5p
c1doaXRlc3BhY2UoKSAmJiBUZXh0VXRpbDo6c2hvdWxkVHJhaWxpbmdXaGl0ZXNwYWNlSGFuZyhz
dHlsZSk7CiAgICAgaWYgKGlzVHJhaWxpbmdIYW5naW5nQ29udGVudCkKQEAgLTgzOSw2ICs4NTUs
OCBAQCB2b2lkIElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudDo6cmVzZXQo
KQogICAgIG1fdHJhaWxpbmdUcmltbWFibGVXaWR0aCA9IHsgfTsKICAgICBtX2hhbmdpbmdDb250
ZW50V2lkdGggPSB7IH07CiAgICAgbV9ydW5zLmNsZWFyKCk7CisgICAgbV9oYXNUZXh0Q29udGVu
dCA9IGZhbHNlOworICAgIG1faXNUZXh0T25seUNvbnRlbnQgPSB0cnVlOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVDb250ZW50QnJlYWtlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEJyZWFrZXIuaAppbmRleCAzNTU2YWM4ZTU4Yzgu
LjRlYjhlMWM4M2I3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEJyZWFrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250ZW50QnJlYWtl
ci5oCkBAIC04Niw2ICs4Niw4IEBAIHB1YmxpYzoKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBo
YW5naW5nQ29udGVudFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9oYW5naW5nQ29udGVudFdpZHRo
OyB9CiAgICAgICAgIGJvb2wgaGFzVHJpbW1hYmxlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIHRy
YWlsaW5nVHJpbW1hYmxlV2lkdGgoKSB8fCBsZWFkaW5nVHJpbW1hYmxlV2lkdGgoKTsgfQogICAg
ICAgICBib29sIGhhc0hhbmdpbmdDb250ZW50KCkgY29uc3QgeyByZXR1cm4gaGFuZ2luZ0NvbnRl
bnRXaWR0aCgpOyB9CisgICAgICAgIGJvb2wgaGFzVGV4dENvbnRlbnQoKSBjb25zdCB7IHJldHVy
biBtX2hhc1RleHRDb250ZW50OyB9CisgICAgICAgIGJvb2wgaXNUZXh0T25seUNvbnRlbnQoKSBj
b25zdCB7IHJldHVybiBtX2lzVGV4dE9ubHlDb250ZW50OyB9CiAgICAgICAgIGJvb2wgaXNGdWxs
eVRyaW1tYWJsZSgpIGNvbnN0OwogICAgICAgICBib29sIGlzSGFuZ2luZ0NvbnRlbnQoKSBjb25z
dCB7IHJldHVybiBoYW5naW5nQ29udGVudFdpZHRoKCkgPT0gbG9naWNhbFdpZHRoKCk7IH0KIApA
QCAtMTE1LDYgKzExNyw4IEBAIHB1YmxpYzoKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX2xl
YWRpbmdUcmltbWFibGVXaWR0aCB7IDAuZiB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1f
dHJhaWxpbmdUcmltbWFibGVXaWR0aCB7IDAuZiB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0
IG1faGFuZ2luZ0NvbnRlbnRXaWR0aCB7IDAuZiB9OworICAgICAgICBib29sIG1faGFzVGV4dENv
bnRlbnQgeyBmYWxzZSB9OworICAgICAgICBib29sIG1faXNUZXh0T25seUNvbnRlbnQgeyB0cnVl
IH07CiAgICAgfTsKIAogICAgIHN0cnVjdCBMaW5lU3RhdHVzIHsKQEAgLTEyOSw3ICsxMzMsNyBA
QCBwdWJsaWM6CiAgICAgfTsKICAgICBSZXN1bHQgcHJvY2Vzc0lubGluZUNvbnRlbnQoY29uc3Qg
Q29udGludW91c0NvbnRlbnQmLCBjb25zdCBMaW5lU3RhdHVzJik7CiAgICAgdm9pZCBzZXRIeXBo
ZW5hdGlvbkRpc2FibGVkKGJvb2wgaHlwaGVuYXRpb25Jc0Rpc2FibGVkKSB7IG5faHlwaGVuYXRp
b25Jc0Rpc2FibGVkID0gaHlwaGVuYXRpb25Jc0Rpc2FibGVkOyB9Ci0gICAgdm9pZCBzZXRJc0lu
SW50cmluc2ljV2lkdGhNb2RlKGJvb2wgaXNJbkludHJpbnNpY1dpZHRoTW9kZSkgeyBtX2lzSW5J
bnRyaW5zaWNXaWR0aE1vZGUgPSBpc0luSW50cmluc2ljV2lkdGhNb2RlOyB9CisgICAgdm9pZCBz
ZXRJc01pbmltdW1JbkludHJpbnNpY1dpZHRoTW9kZShib29sIGlzTWluaW11bUluSW50cmluc2lj
V2lkdGhNb2RlKSB7IG1faXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGUgPSBpc01pbmltdW1J
bkludHJpbnNpY1dpZHRoTW9kZTsgfQogICAgIHN0YXRpYyBib29sIGlzV3JhcHBpbmdBbGxvd2Vk
KGNvbnN0IENvbnRpbnVvdXNDb250ZW50OjpSdW4mKTsKIAogcHJpdmF0ZToKQEAgLTE1MSw2ICsx
NTUsNyBAQCBwcml2YXRlOgogICAgICAgICBzdGQ6Om9wdGlvbmFsPEJyZWFraW5nUG9zaXRpb24+
IGJyZWFraW5nUG9zaXRpb24geyB9OyAvLyBXaGVyZSB3ZSBhY3R1YWxseSBicmVhayB0aGlzIG92
ZXJmbG93aW5nIGNvbnRlbnQuCiAgICAgfTsKICAgICBPdmVyZmxvd2luZ1RleHRDb250ZW50IHBy
b2Nlc3NPdmVyZmxvd2luZ0NvbnRlbnRXaXRoVGV4dChjb25zdCBDb250aW51b3VzQ29udGVudCYs
IGNvbnN0IExpbmVTdGF0dXMmKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlc3VsdD4gc2lt
cGxpZmllZE1pbmltdW1JbnN0cmluc2ljV2lkdGhCcmVhayhjb25zdCBDb250aW51b3VzQ29udGVu
dCYpIGNvbnN0OwogICAgIHN0ZDo6b3B0aW9uYWw8UGFydGlhbFJ1bj4gdHJ5QnJlYWtpbmdUZXh0
UnVuKGNvbnN0IENvbnRpbnVvdXNDb250ZW50OjpSdW5MaXN0JiBydW5zLCBjb25zdCBDYW5kaWRh
dGVUZXh0UnVuRm9yQnJlYWtpbmcmLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoLCBj
b25zdCBMaW5lU3RhdHVzJikgY29uc3Q7CiAgICAgc3RkOjpvcHRpb25hbDxPdmVyZmxvd2luZ1Rl
eHRDb250ZW50OjpCcmVha2luZ1Bvc2l0aW9uPiB0cnlCcmVha2luZ092ZXJmbG93aW5nUnVuKGNv
bnN0IExpbmVTdGF0dXMmLCBjb25zdCBDb250aW51b3VzQ29udGVudDo6UnVuTGlzdCYsIHNpemVf
dCBvdmVyZmxvd2luZ1J1bkluZGV4LCBJbmxpbmVMYXlvdXRVbml0IG5vbk92ZXJmbG93aW5nQ29u
dGVudFdpZHRoKSBjb25zdDsKICAgICBzdGQ6Om9wdGlvbmFsPE92ZXJmbG93aW5nVGV4dENvbnRl
bnQ6OkJyZWFraW5nUG9zaXRpb24+IHRyeUJyZWFraW5nUHJldmlvdXNOb25PdmVyZmxvd2luZ1J1
bnMoY29uc3QgTGluZVN0YXR1cyYsIGNvbnN0IENvbnRpbnVvdXNDb250ZW50OjpSdW5MaXN0Jiwg
c2l6ZV90IG92ZXJmbG93aW5nUnVuSW5kZXgsIElubGluZUxheW91dFVuaXQgbm9uT3ZlcmZsb3dp
bmdDb250ZW50V2lkdGgpIGNvbnN0OwpAQCAtMTYzLDEwICsxNjgsMTAgQEAgcHJpdmF0ZToKICAg
ICAgICAgQXRIeXBoZW5hdGlvbk9wcG9ydHVuaXRpZXMgICAgID0gMSA8PCAyCiAgICAgfTsKICAg
ICBPcHRpb25TZXQ8V29yZEJyZWFrUnVsZT4gd29yZEJyZWFrQmVoYXZpb3IoY29uc3QgUmVuZGVy
U3R5bGUmLCBib29sIGhhc1dyYXBPcHBvcnR1bml0eUF0UHJldmlvdXNQb3NpdGlvbikgY29uc3Q7
Ci0gICAgYm9vbCBpc0luSW50cmluc2ljV2lkdGhNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pc0lu
SW50cmluc2ljV2lkdGhNb2RlOyB9CisgICAgYm9vbCBpc01pbmltdW1JbkludHJpbnNpY1dpZHRo
TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGU7IH0K
IAogcHJpdmF0ZToKLSAgICBib29sIG1faXNJbkludHJpbnNpY1dpZHRoTW9kZSB7IGZhbHNlIH07
CisgICAgYm9vbCBtX2lzTWluaW11bUluSW50cmluc2ljV2lkdGhNb2RlIHsgZmFsc2UgfTsKICAg
ICBib29sIG5faHlwaGVuYXRpb25Jc0Rpc2FibGVkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCBhMTI0NWY3ZTk0ZDEuLjFiZDA2
MTdiMDQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcApAQCAt
MTA2OCw3ICsxMDY4LDcgQEAgTGluZUJ1aWxkZXI6OlJlc3VsdCBMaW5lQnVpbGRlcjo6aGFuZGxl
SW5saW5lQ29udGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW8KICAgICAgICAgICAgICFt
X3dyYXBPcHBvcnR1bml0eUxpc3QuaXNFbXB0eSgpCiAgICAgICAgIH07CiAgICAgICAgIG1faW5s
aW5lQ29udGVudEJyZWFrZXIuc2V0SHlwaGVuYXRpb25EaXNhYmxlZChzaG91bGREaXNhYmxlSHlw
aGVuYXRpb24ocm9vdCgpLnN0eWxlKCksIG1fc3VjY2Vzc2l2ZUh5cGhlbmF0ZWRMaW5lQ291bnQp
KTsKLSAgICAgICAgbV9pbmxpbmVDb250ZW50QnJlYWtlci5zZXRJc0luSW50cmluc2ljV2lkdGhN
b2RlKGlzSW5JbnRyaW5zaWNXaWR0aE1vZGUoKSk7CisgICAgICAgIG1faW5saW5lQ29udGVudEJy
ZWFrZXIuc2V0SXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGUoaW50cmluc2ljV2lkdGhNb2Rl
KCkgPT0gSW50cmluc2ljV2lkdGhNb2RlOjpNaW5pbXVtKTsKICAgICAgICAgbGluZUJyZWFraW5n
UmVzdWx0ID0gbV9pbmxpbmVDb250ZW50QnJlYWtlci5wcm9jZXNzSW5saW5lQ29udGVudChjb250
aW51b3VzSW5saW5lQ29udGVudCwgbGluZVN0YXR1cyk7CiAgICAgfQogICAgIGF1dG8gbGluZUdh
aW5zTmV3Q29udGVudCA9IGxpbmVCcmVha2luZ1Jlc3VsdC5hY3Rpb24gPT0gSW5saW5lQ29udGVu
dEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpLZWVwIHx8IGxpbmVCcmVha2luZ1Jlc3VsdC5hY3Rp
b24gPT0gSW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpCcmVhazsgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9U
ZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwCmluZGV4
IDc5MzJhYzVlZWY0OS4uZjkwNzY1OGI3MzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmNwcApAQCAtMjk4LDcgKzI5OCw3IEBAIFRleHRP
bmx5TGluZUJyZWFrUmVzdWx0IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OmhhbmRsZU92ZXJm
bG93aW5nVGV4dENvbnRlbnQoCiAgICAgYXV0byBsaW5lQnJlYWtpbmdSZXN1bHQgPSBJbmxpbmVD
b250ZW50QnJlYWtlcjo6UmVzdWx0IHsgSW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0
aW9uOjpLZWVwLCBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6Ok5vLCB7IH0sIHsg
fSB9OwogICAgIGlmIChjYW5kaWRhdGVDb250ZW50LmxvZ2ljYWxXaWR0aCgpID4gYXZhaWxhYmxl
V2lkdGgpIHsKICAgICAgICAgYXV0byBsaW5lU3RhdHVzID0gSW5saW5lQ29udGVudEJyZWFrZXI6
OkxpbmVTdGF0dXMgeyBtX2xpbmUuY29udGVudExvZ2ljYWxSaWdodCgpLCBhdmFpbGFibGVXaWR0
aCwgbV9saW5lLnRyaW1tYWJsZVRyYWlsaW5nV2lkdGgoKSwgbV9saW5lLnRyYWlsaW5nU29mdEh5
cGhlbldpZHRoKCksIG1fbGluZS5pc1RyYWlsaW5nUnVuRnVsbHlUcmltbWFibGUoKSwgbV9saW5l
Lmhhc0NvbnRlbnRPckxpc3RNYXJrZXIoKSwgIW1fd3JhcE9wcG9ydHVuaXR5TGlzdC5pc0VtcHR5
KCkgfTsKLSAgICAgICAgbV9pbmxpbmVDb250ZW50QnJlYWtlci5zZXRJc0luSW50cmluc2ljV2lk
dGhNb2RlKGlzSW5JbnRyaW5zaWNXaWR0aE1vZGUoKSk7CisgICAgICAgIG1faW5saW5lQ29udGVu
dEJyZWFrZXIuc2V0SXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGUoaW50cmluc2ljV2lkdGhN
b2RlKCkgPT0gSW50cmluc2ljV2lkdGhNb2RlOjpNaW5pbXVtKTsKICAgICAgICAgbGluZUJyZWFr
aW5nUmVzdWx0ID0gbV9pbmxpbmVDb250ZW50QnJlYWtlci5wcm9jZXNzSW5saW5lQ29udGVudChj
YW5kaWRhdGVDb250ZW50LCBsaW5lU3RhdHVzKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4
dC9UZXh0VXRpbC5jcHAKaW5kZXggNzYwYzY1MTcyYzIyLi5kNGMxYzk0NjdkZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQv
VGV4dFV0aWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwCkBAIC05MCw3ICs5MCw3IEBAIElubGluZUxheW91
dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRl
bSwgY29uc3QgRm9uCiAgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRlbSwg
Zm9udENhc2NhZGUsIGlubGluZVRleHRJdGVtLnN0YXJ0KCksIGlubGluZVRleHRJdGVtLmVuZCgp
LCBjb250ZW50TG9naWNhbExlZnQpOwogfQogCi1JbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3
aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZvbnRDYXNj
YWRlJiBmb250Q2FzY2FkZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91
dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KQorSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lk
dGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb250Q2FzY2Fk
ZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRV
bml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0
aW1pemF0aW9uIHVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbikKIHsK
ICAgICBSRUxFQVNFX0FTU0VSVChmcm9tID49IGlubGluZVRleHRJdGVtLnN0YXJ0KCkpOwogICAg
IFJFTEVBU0VfQVNTRVJUKHRvIDw9IGlubGluZVRleHRJdGVtLmVuZCgpKTsKQEAgLTEwNiw3ICsx
MDYsNyBAQCBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0
SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZvbgogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
aXNuYW4od2lkdGgpID8gMC4wZiA6IHN0ZDo6aXNpbmYod2lkdGgpID8gbWF4SW5saW5lTGF5b3V0
VW5pdCgpIDogd2lkdGg7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHdpZHRoKGlubGlu
ZVRleHRJdGVtLmlubGluZVRleHRCb3goKSwgZm9udENhc2NhZGUsIGZyb20sIHRvLCBjb250ZW50
TG9naWNhbExlZnQpOworICAgIHJldHVybiB3aWR0aChpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0
Qm94KCksIGZvbnRDYXNjYWRlLCBmcm9tLCB0bywgY29udGVudExvZ2ljYWxMZWZ0LCB1c2VUcmFp
bGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24pOwogfQogCiBJbmxpbmVMYXlvdXRV
bml0IFRleHRVdGlsOjp0cmFpbGluZ1doaXRlc3BhY2VXaWR0aChjb25zdCBJbmxpbmVUZXh0Qm94
JiBpbmxpbmVUZXh0Qm94LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHNpemVfdCBz
dGFydFBvc2l0aW9uLCBzaXplX3QgZW5kUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRV
dGlsLmgKaW5kZXggOTZjMTRhMjEyZjJiLi5hMjVmOTQ1YWZjOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90
ZXh0L1RleHRVdGlsLmgKQEAgLTQzLDEwICs0Myw5IEBAIGNsYXNzIElubGluZVRleHRJdGVtOwog
CiBjbGFzcyBUZXh0VXRpbCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIElubGluZUxheW91dFVuaXQg
d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2FkZSYsIElubGluZUxh
eW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KTsKLSAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5p
dCB3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgdW5zaWdu
ZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0
KTsKLQogICAgIGVudW0gY2xhc3MgVXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1p
emF0aW9uIDogYm9vbCB7IE5vLCBZZXMgfTsKKyAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3
aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgSW5saW5lTGF5
b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpOworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0
IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCB1bnNpZ25l
ZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQs
IFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA9IFVzZVRyYWlsaW5n
V2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzKTsKICAgICBzdGF0aWMgSW5saW5l
TGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29uc3QgRm9udENhc2NhZGUm
LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9n
aWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbiA9IFVz
ZVRyYWlsaW5nV2hpdGVzcGFjZU1lYXN1cmluZ09wdGltaXphdGlvbjo6WWVzKTsKIAogICAgIHN0
YXRpYyBJbmxpbmVMYXlvdXRVbml0IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGNvbnN0IElubGlu
ZVRleHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHNpemVfdCBzdGFydFBvc2l0aW9uLCBzaXpl
X3QgZW5kUG9zaXRpb24pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>467344</attachid>
            <date>2023-08-19 15:54:46 -0700</date>
            <delta_ts>2023-08-21 07:51:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-260433-20230819155446.patch</filename>
            <type>text/plain</type>
            <size>19125</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4NTBlNzE2Zjk5NTkwYzdjYjVjNWI0ZjI1NWRlZTkzOTVlODUzZmZlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMTkgQXVnIDIwMjMgMTA6MzQ6NTYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXVtJ
bmxpbmVDb250ZW50QnJlYWtlcl0gQWRkIGZhc3QgcGF0aCBmb3IgdGV4dCBvbmx5CiBtaW5pbXVt
IGludHJpbnNpYyB3aWR0aCBjb21wdXRhdGlvbgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI2MDQzMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpNaW5pbXVt
IHdpZHRoIGNvbXB1dGF0aW9uIGlzIGhlYXZpbHkgdXNlZCBieSBmbGV4LCB0YWJsZSwgZmxvYXQg
YW5kIG91dC1vZi1mbG93IGNvbnRlbnQuCgp+MTAlIHByb2dyZXNzaW9uIG9uIFBlcmZvcm1hbmNl
VGVzdHMvTGF5b3V0L2xpbmUtbGF5b3V0LXByZWZlcnJlZC13aWR0aC1icmVhay1hbGwuaHRtbC4K
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
Q29udGVudEJyZWFrZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50QnJlYWtl
cjo6cHJvY2Vzc0lubGluZUNvbnRlbnQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50
QnJlYWtlcjo6cHJvY2Vzc092ZXJmbG93aW5nQ29udGVudCBjb25zdCk6CihXZWJDb3JlOjpMYXlv
dXQ6OklubGluZUNvbnRlbnRCcmVha2VyOjpzaW1wbGlmaWVkTWluaW11bUluc3RyaW5zaWNXaWR0
aEJyZWFrIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudEJyZWFrZXI6Ondv
cmRCcmVha0JlaGF2aW9yIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudEJy
ZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50OjphcHBlbmQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQ6OmFwcGVuZFRleHRDb250ZW50KToK
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50
OjpyZXNldCk6CihXZWJDb3JlOjpMYXlvdXQ6Omhhc1RleHRSdW4pOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRC
cmVha2VyLmg6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51
b3VzQ29udGVudDo6aGFzVGV4dENvbnRlbnQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQ6OmlzVGV4dENvbnRlbnQgY29uc3Qp
OgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50QnJlYWtlcjo6c2V0SXNNaW5pbXVtSW5J
bnRyaW5zaWNXaWR0aE1vZGUpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50QnJlYWtl
cjo6aXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGUgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVDb250ZW50QnJlYWtlcjo6c2V0SXNJbkludHJpbnNpY1dpZHRoTW9kZSk6IERlbGV0
ZWQuCihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRCcmVha2VyOjppc0luSW50cmluc2lj
V2lkdGhNb2RlIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250ZW50KToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVy
LmNwcDoKKFdlYkNvcmU6OkxheW91dDo6VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aGFuZGxl
T3ZlcmZsb3dpbmdUZXh0Q29udGVudCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OlRl
eHRVdGlsOjp3aWR0aCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oOgotLS0KIC4uLi9pbmxpbmUvSW5saW5lQ29udGVudEJy
ZWFrZXIuY3BwICAgICAgICAgICB8IDUzICsrKysrKysrKysrKystLS0tLS0KIC4uLi9pbmxpbmUv
SW5saW5lQ29udGVudEJyZWFrZXIuaCAgICAgICAgICAgICB8IDExICsrLS0KIC4uLi9pbmxpbmUv
SW5saW5lTGluZUJ1aWxkZXIuY3BwICAgICAgICAgICAgICB8ICAyICstCiAuLi4vaW5saW5lL1Rl
eHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwICAgICAgfCAgMiArLQogLi4uL2lubGluZS90ZXh0
L1RleHRVdGlsLmNwcCAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIC4uLi9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaCB8ICA1ICstCiA2IGZpbGVzIGNoYW5nZWQsIDUx
IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRCcmVha2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUNvbnRlbnRCcmVha2VyLmNwcAppbmRleCAzYjJjYjEzZjA5MGIuLjZjYzRmODlkZTc5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lQ29udGVudEJyZWFrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRCcmVha2VyLmNwcApAQCAtNDgs
MTcgKzQ4LDYgQEAgc3RhdGljIGlubGluZSBib29sIGhhc0xlYWRpbmdUZXh0Q29udGVudChjb25z
dCBJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0MKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBoYXNUZXh0UnVuKGNvbnN0IElubGluZUNvbnRlbnRCcmVh
a2VyOjpDb250aW51b3VzQ29udGVudCYgY29udGludW91c0NvbnRlbnQpCi17Ci0gICAgLy8gPHNw
YW4+dGV4dDwvc3Bhbj4gaXMgY29uc2lkZXJlZCBhIHRleHQgcnVuIGV2ZW4gd2l0aCB0aGUgW2lu
bGluZSBib3ggc3RhcnRdW2lubGluZSBib3ggZW5kXSBpbmxpbmUgaXRlbXMuCi0gICAgLy8gQmFz
ZWQgb24gc3RhbmRhcmRzIGNvbW1pdCBib3VuZGFyeSBydWxlcyBpdCB3b3VsZCBiZSBlbm91Z2gg
dG8gY2hlY2sgdGhlIGZpcnN0IGlubGluZSBpdGVtLgotICAgIGZvciAoYXV0byYgcnVuIDogY29u
dGludW91c0NvbnRlbnQucnVucygpKSB7Ci0gICAgICAgIGlmIChydW4uaW5saW5lSXRlbS5pc1Rl
eHQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KIHN0YXRpYyBpbmxpbmUgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG5leHRUZXh0UnVuSW5k
ZXgoY29uc3QgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50OjpSdW5MaXN0
JiBydW5zLCBzaXplX3Qgc3RhcnRJbmRleCkKIHsKICAgICBmb3IgKGF1dG8gaW5kZXggPSBzdGFy
dEluZGV4ICsgMTsgaW5kZXggPCBydW5zLnNpemUoKTsgKytpbmRleCkgewpAQCAtMTExLDcgKzEw
MCwxMSBAQCBzdGF0aWMgaW5saW5lIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBmaXJzdFRleHRSdW5J
bmRleChjb25zdCBJbmxpbmVDb250ZW50QnJlYWtlcgogSW5saW5lQ29udGVudEJyZWFrZXI6OlJl
c3VsdCBJbmxpbmVDb250ZW50QnJlYWtlcjo6cHJvY2Vzc0lubGluZUNvbnRlbnQoY29uc3QgQ29u
dGludW91c0NvbnRlbnQmIGNhbmRpZGF0ZUNvbnRlbnQsIGNvbnN0IExpbmVTdGF0dXMmIGxpbmVT
dGF0dXMpCiB7CiAgICAgQVNTRVJUKCFzdGQ6OmlzbmFuKGxpbmVTdGF0dXMuYXZhaWxhYmxlV2lk
dGgpKTsKLSAgICBBU1NFUlQoY2FuZGlkYXRlQ29udGVudC5sb2dpY2FsV2lkdGgoKSA+IGxpbmVT
dGF0dXMuYXZhaWxhYmxlV2lkdGgpOworICAgIEFTU0VSVChpc01pbmltdW1JbkludHJpbnNpY1dp
ZHRoTW9kZSgpIHx8IGNhbmRpZGF0ZUNvbnRlbnQubG9naWNhbFdpZHRoKCkgPiBsaW5lU3RhdHVz
LmF2YWlsYWJsZVdpZHRoKTsKKworICAgIGlmIChhdXRvIHJlc3VsdCA9IHNpbXBsaWZpZWRNaW5p
bXVtSW5zdHJpbnNpY1dpZHRoQnJlYWsoY2FuZGlkYXRlQ29udGVudCwgbGluZVN0YXR1cykpCisg
ICAgICAgIHJldHVybiAqcmVzdWx0OworCiAgICAgYXV0byByZXN1bHQgPSBwcm9jZXNzT3ZlcmZs
b3dpbmdDb250ZW50KGNhbmRpZGF0ZUNvbnRlbnQsIGxpbmVTdGF0dXMpOwogICAgIGlmIChyZXN1
bHQuYWN0aW9uID09IFJlc3VsdDo6QWN0aW9uOjpXcmFwICYmIGxpbmVTdGF0dXMudHJhaWxpbmdT
b2Z0SHlwaGVuV2lkdGggJiYgaGFzTGVhZGluZ1RleHRDb250ZW50KGNhbmRpZGF0ZUNvbnRlbnQp
KSB7CiAgICAgICAgIC8vIEEgdHJhaWxpbmcgc29mdCBoeXBoZW4gd2l0aCBhIHdyYXBwZWQgdGV4
dCBjb250ZW50IHR1cm5zIGludG8gYSB2aXNpYmxlIGh5cGhlbi4KQEAgLTEyMyw5ICsxMTYsOCBA
QCBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0IElubGluZUNvbnRlbnRCcmVha2VyOjpwcm9j
ZXNzSW5saW5lQ29udGVudChjb25zdCBDbwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUlubGlu
ZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQgSW5saW5lQ29udGVudEJyZWFrZXI6OnByb2Nlc3NPdmVy
Zmxvd2luZ0NvbnRlbnQoY29uc3QgQ29udGludW91c0NvbnRlbnQmIG92ZXJmbG93Q29udGVudCwg
Y29uc3QgTGluZVN0YXR1cyYgbGluZVN0YXR1cykgY29uc3QKK0lubGluZUNvbnRlbnRCcmVha2Vy
OjpSZXN1bHQgSW5saW5lQ29udGVudEJyZWFrZXI6OnByb2Nlc3NPdmVyZmxvd2luZ0NvbnRlbnQo
Y29uc3QgQ29udGludW91c0NvbnRlbnQmIGNvbnRpbnVvdXNDb250ZW50LCBjb25zdCBMaW5lU3Rh
dHVzJiBsaW5lU3RhdHVzKSBjb25zdAogewotICAgIGF1dG8gY29udGludW91c0NvbnRlbnQgPSBD
b250aW51b3VzQ29udGVudCB7IG92ZXJmbG93Q29udGVudCB9OwogICAgIEFTU0VSVCghY29udGlu
dW91c0NvbnRlbnQucnVucygpLmlzRW1wdHkoKSk7CiAKICAgICBBU1NFUlQoY29udGludW91c0Nv
bnRlbnQubG9naWNhbFdpZHRoKCkgPiBsaW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoKTsKQEAgLTE2
Niw3ICsxNTgsNyBAQCBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0IElubGluZUNvbnRlbnRC
cmVha2VyOjpwcm9jZXNzT3ZlcmZsb3dpbmdDb250ZW50KGNvbgogICAgICAgICByZXR1cm4gKnJl
c3VsdDsKIAogICAgIHNpemVfdCBvdmVyZmxvd2luZ1J1bkluZGV4ID0gMDsKLSAgICBpZiAoaGFz
VGV4dFJ1bihjb250aW51b3VzQ29udGVudCkpIHsKKyAgICBpZiAoY29udGludW91c0NvbnRlbnQu
aGFzVGV4dENvbnRlbnQoKSkgewogICAgICAgICBhdXRvIHRyeUJyZWFraW5nQ29udGVudFdpdGhU
ZXh0ID0gWyZdKCkgLT4gc3RkOjpvcHRpb25hbDxSZXN1bHQ+IHsKICAgICAgICAgICAgIC8vIDEu
IFRoaXMgdGV4dCBjb250ZW50IGlzIG5vdCBicmVha2FibGUuCiAgICAgICAgICAgICAvLyAyLiBU
aGlzIGJyZWFrYWJsZSB0ZXh0IGNvbnRlbnQgZG9lcyBub3QgZml0IGF0IGFsbC4gTm90IGV2ZW4g
dGhlIGZpcnN0IGdseXBoLiBUaGlzIGlzIGEgdmVyeSBzcGVjaWFsIGNhc2UuCkBAIC0yNTQsNiAr
MjQ2LDMxIEBAIElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQgSW5saW5lQ29udGVudEJyZWFr
ZXI6OnByb2Nlc3NPdmVyZmxvd2luZ0NvbnRlbnQoY29uCiAgICAgcmV0dXJuIHsgUmVzdWx0OjpB
Y3Rpb246OktlZXAsIElzRW5kT2ZMaW5lOjpObyB9OwogfQogCitzdGQ6Om9wdGlvbmFsPElubGlu
ZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ+IElubGluZUNvbnRlbnRCcmVha2VyOjpzaW1wbGlmaWVk
TWluaW11bUluc3RyaW5zaWNXaWR0aEJyZWFrKGNvbnN0IENvbnRpbnVvdXNDb250ZW50JiBjYW5k
aWRhdGVDb250ZW50LCBjb25zdCBMaW5lU3RhdHVzJiBsaW5lU3RhdHVzKSBjb25zdAoreworICAg
IGlmICghaXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGUoKSB8fCAhY2FuZGlkYXRlQ29udGVu
dC5pc1RleHRPbmx5Q29udGVudCgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byYg
bGVhZGluZ0lubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGNhbmRpZGF0
ZUNvbnRlbnQucnVucygpLmZpcnN0KCkuaW5saW5lSXRlbSk7CisgICAgYXV0byYgc3R5bGUgPSBs
ZWFkaW5nSW5saW5lVGV4dEl0ZW0uc3R5bGUoKTsKKyAgICBpZiAoIVRleHRVdGlsOjppc1dyYXBw
aW5nQWxsb3dlZChzdHlsZSkpCisgICAgICAgIHJldHVybiBSZXN1bHQgeyBSZXN1bHQ6OkFjdGlv
bjo6S2VlcCwgSXNFbmRPZkxpbmU6Ok5vIH07CisKKyAgICBpZiAoIWxpbmVTdGF0dXMuaGFzQ29u
dGVudCkgeworICAgICAgICBhdXRvIGJyZWFrQmVoYXZpb3IgPSB3b3JkQnJlYWtCZWhhdmlvcihz
dHlsZSwgeyB9KTsKKyAgICAgICAgaWYgKGJyZWFrQmVoYXZpb3IuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBJc0VuZE9mTGluZTo6
Tm8gfTsKKworICAgICAgICBpZiAoYnJlYWtCZWhhdmlvci5jb250YWluc0FueSh7IFdvcmRCcmVh
a1J1bGU6OkF0QXJiaXRyYXJ5UG9zaXRpb25XaXRoaW5Xb3JkcywgV29yZEJyZWFrUnVsZTo6QXRB
cmJpdHJhcnlQb3NpdGlvbiB9KSkgeworICAgICAgICAgICAgYXV0byBmaXJzdENoYXJhY3Rlckxl
bmd0aCA9IFRleHRVdGlsOjpmaXJzdFVzZXJQZXJjZWl2ZWRDaGFyYWN0ZXJMZW5ndGgobGVhZGlu
Z0lubGluZVRleHRJdGVtKTsKKyAgICAgICAgICAgIGF1dG8gZmlyc3RDaGFyYWN0ZXJXaWR0aCA9
IFRleHRVdGlsOjp3aWR0aChsZWFkaW5nSW5saW5lVGV4dEl0ZW0sIHN0eWxlLmZvbnRDYXNjYWRl
KCksIGxlYWRpbmdJbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBsZWFkaW5nSW5saW5lVGV4dEl0ZW0u
c3RhcnQoKSArIGZpcnN0Q2hhcmFjdGVyTGVuZ3RoLCB7IH0sIFRleHRVdGlsOjpVc2VUcmFpbGlu
Z1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Ok5vKTsKKyAgICAgICAgICAgIHJldHVy
biBSZXN1bHQgeyBSZXN1bHQ6OkFjdGlvbjo6QnJlYWssIElzRW5kT2ZMaW5lOjpZZXMsIFJlc3Vs
dDo6UGFydGlhbFRyYWlsaW5nQ29udGVudCB7IHsgfSwgUGFydGlhbFJ1biB7IGZpcnN0Q2hhcmFj
dGVyTGVuZ3RoLCBmaXJzdENoYXJhY3RlcldpZHRoIH0sIHsgfSB9IH07CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisgICAgcmV0dXJuIFJlc3VsdCB7ICFsaW5lU3RhdHVz
LnRyYWlsaW5nU29mdEh5cGhlbldpZHRoID8gUmVzdWx0OjpBY3Rpb246OldyYXAgOiBSZXN1bHQ6
OkFjdGlvbjo6UmV2ZXJ0VG9MYXN0Tm9uT3ZlcmZsb3dpbmdXcmFwT3Bwb3J0dW5pdHksIElzRW5k
T2ZMaW5lOjpZZXMgfTsKK30KKwogc3RhdGljIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBmaW5kVHJh
aWxpbmdSdW5JbmRleChjb25zdCBJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRl
bnQ6OlJ1bkxpc3QmIHJ1bnMsIHNpemVfdCBicmVha2FibGVSdW5JbmRleCkKIHsKICAgICAvLyBX
aGVuIHRoZSBicmVha2luZyBwb3NpdGlvbiBpcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBydW4s
IHRoZSB0cmFpbGluZyBydW4gaXMgdGhlIHByZXZpb3VzIG9uZS4KQEAgLTc2OCw3ICs3ODUsNyBA
QCBPcHRpb25TZXQ8SW5saW5lQ29udGVudEJyZWFrZXI6OldvcmRCcmVha1J1bGU+IElubGluZUNv
bnRlbnRCcmVha2VyOjp3b3JkQnJlYWtCZQogICAgIC8vIE92ZXJmbG93V3JhcDo6QnJlYWtXb3Jk
L0FueXdoZXJlIEFuIG90aGVyd2lzZSB1bmJyZWFrYWJsZSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJz
IG1heSBiZSBicm9rZW4gYXQgYW4gYXJiaXRyYXJ5IHBvaW50IGlmIHRoZXJlIGFyZSBubyBvdGhl
cndpc2UtYWNjZXB0YWJsZSBicmVhayBwb2ludHMgaW4gdGhlIGxpbmUuCiAgICAgLy8gTm90ZSB0
aGF0IHRoaXMgYXBwbGllcyB0byBjb250ZW50IHdoZXJlIENTUyBwcm9wZXJ0aWVzIChlLmcuIFdv
cmRCcmVhazo6S2VlcEFsbCkgbWFrZSBpdCB1bmJyZWFrYWJsZS4gCiAgICAgLy8gU29mdCB3cmFw
IG9wcG9ydHVuaXRpZXMgaW50cm9kdWNlZCBieSBvdmVyZmxvdy13cmFwL3dvcmQtd3JhcDogYnJl
YWstd29yZCBhcmUgbm90IGNvbnNpZGVyZWQgd2hlbiBjYWxjdWxhdGluZyBtaW4tY29udGVudCBp
bnRyaW5zaWMgc2l6ZXMuCi0gICAgYXV0byBvdmVyZmxvd1dyYXBCcmVha1dvcmRJc0FwcGxpY2Fi
bGUgPSAhaXNJbkludHJpbnNpY1dpZHRoTW9kZSgpOworICAgIGF1dG8gb3ZlcmZsb3dXcmFwQnJl
YWtXb3JkSXNBcHBsaWNhYmxlID0gIWlzTWluaW11bUluSW50cmluc2ljV2lkdGhNb2RlKCk7CiAg
ICAgaWYgKCgob3ZlcmZsb3dXcmFwQnJlYWtXb3JkSXNBcHBsaWNhYmxlICYmIHN0eWxlLm92ZXJm
bG93V3JhcCgpID09IE92ZXJmbG93V3JhcDo6QnJlYWtXb3JkKSB8fCBzdHlsZS5vdmVyZmxvd1dy
YXAoKSA9PSBPdmVyZmxvd1dyYXA6OkFueXdoZXJlKSAmJiAhaGFzV3JhcE9wcG9ydHVuaXR5QXRQ
cmV2aW91c1Bvc2l0aW9uKQogICAgICAgICByZXR1cm4gaW5jbHVkZUh5cGhlbmF0aW9uSWZBbGxv
d2VkKFdvcmRCcmVha1J1bGU6OkF0QXJiaXRyYXJ5UG9zaXRpb24pOwogICAgIC8vIEJyZWFraW5n
IGlzIGZvcmJpZGRlbiB3aXRoaW4g4oCcd29yZHPigJ0uCkBAIC03OTMsNiArODEwLDcgQEAgdm9p
ZCBJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQ6OnJlc2V0VHJhaWxpbmdU
cmltbWFibGVDb250ZW50KCkKIHZvaWQgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXND
b250ZW50OjphcHBlbmQoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCkKIHsKICAgICBBU1NF
UlQoaW5saW5lSXRlbS5pc0JveCgpIHx8IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpIHx8
IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSk7CisgICAgbV9pc1RleHRPbmx5Q29udGVudCA9
IGZhbHNlOwogICAgIGFwcGVuZFRvUnVuTGlzdChpbmxpbmVJdGVtLCBzdHlsZSwgbG9naWNhbFdp
ZHRoKTsKICAgICBpZiAoaW5saW5lSXRlbS5pc0JveCgpKSB7CiAgICAgICAgIC8vIElubGluZSBi
b3hlcyAod2hpdGVzcGFjZS0+IDxzcGFuPjwvc3Bhbj4pIGRvIG5vdCBwcmV2ZW50IHRoZSB0cmFp
bGluZyBjb250ZW50IGZyb20gZ2V0dGluZyB0cmltbWVkL2h1bmcKQEAgLTgwMyw2ICs4MjEsNyBA
QCB2b2lkIElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudDo6YXBwZW5kKGNv
bnN0IElubGluZUl0ZW0mIGlubGluZUl0ZQogCiB2b2lkIElubGluZUNvbnRlbnRCcmVha2VyOjpD
b250aW51b3VzQ29udGVudDo6YXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4dEl0ZW0m
IGlubGluZVRleHRJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVu
aXQgbG9naWNhbFdpZHRoKQogeworICAgIG1faGFzVGV4dENvbnRlbnQgPSB0cnVlOwogICAgIC8v
IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdGV4dC00LyN3aGl0ZS1zcGFjZS1waGFzZS0yCiAg
ICAgYXV0byBpc1RyYWlsaW5nSGFuZ2luZ0NvbnRlbnQgPSBpbmxpbmVUZXh0SXRlbS5pc1doaXRl
c3BhY2UoKSAmJiBUZXh0VXRpbDo6c2hvdWxkVHJhaWxpbmdXaGl0ZXNwYWNlSGFuZyhzdHlsZSk7
CiAgICAgaWYgKGlzVHJhaWxpbmdIYW5naW5nQ29udGVudCkKQEAgLTgzOSw2ICs4NTgsOCBAQCB2
b2lkIElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudDo6cmVzZXQoKQogICAg
IG1fdHJhaWxpbmdUcmltbWFibGVXaWR0aCA9IHsgfTsKICAgICBtX2hhbmdpbmdDb250ZW50V2lk
dGggPSB7IH07CiAgICAgbV9ydW5zLmNsZWFyKCk7CisgICAgbV9oYXNUZXh0Q29udGVudCA9IGZh
bHNlOworICAgIG1faXNUZXh0T25seUNvbnRlbnQgPSB0cnVlOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVD
b250ZW50QnJlYWtlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lQ29udGVudEJyZWFrZXIuaAppbmRleCAzNTU2YWM4ZTU4YzguLmY4YmFk
Y2Y5NjUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEJyZWFrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250ZW50QnJlYWtlci5oCkBA
IC04Niw2ICs4Niw4IEBAIHB1YmxpYzoKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBoYW5naW5n
Q29udGVudFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9oYW5naW5nQ29udGVudFdpZHRoOyB9CiAg
ICAgICAgIGJvb2wgaGFzVHJpbW1hYmxlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIHRyYWlsaW5n
VHJpbW1hYmxlV2lkdGgoKSB8fCBsZWFkaW5nVHJpbW1hYmxlV2lkdGgoKTsgfQogICAgICAgICBi
b29sIGhhc0hhbmdpbmdDb250ZW50KCkgY29uc3QgeyByZXR1cm4gaGFuZ2luZ0NvbnRlbnRXaWR0
aCgpOyB9CisgICAgICAgIGJvb2wgaGFzVGV4dENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2hh
c1RleHRDb250ZW50OyB9CisgICAgICAgIGJvb2wgaXNUZXh0T25seUNvbnRlbnQoKSBjb25zdCB7
IHJldHVybiBtX2lzVGV4dE9ubHlDb250ZW50OyB9CiAgICAgICAgIGJvb2wgaXNGdWxseVRyaW1t
YWJsZSgpIGNvbnN0OwogICAgICAgICBib29sIGlzSGFuZ2luZ0NvbnRlbnQoKSBjb25zdCB7IHJl
dHVybiBoYW5naW5nQ29udGVudFdpZHRoKCkgPT0gbG9naWNhbFdpZHRoKCk7IH0KIApAQCAtMTE1
LDYgKzExNyw4IEBAIHB1YmxpYzoKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX2xlYWRpbmdU
cmltbWFibGVXaWR0aCB7IDAuZiB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fdHJhaWxp
bmdUcmltbWFibGVXaWR0aCB7IDAuZiB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1faGFu
Z2luZ0NvbnRlbnRXaWR0aCB7IDAuZiB9OworICAgICAgICBib29sIG1faGFzVGV4dENvbnRlbnQg
eyBmYWxzZSB9OworICAgICAgICBib29sIG1faXNUZXh0T25seUNvbnRlbnQgeyB0cnVlIH07CiAg
ICAgfTsKIAogICAgIHN0cnVjdCBMaW5lU3RhdHVzIHsKQEAgLTEyOSw3ICsxMzMsNyBAQCBwdWJs
aWM6CiAgICAgfTsKICAgICBSZXN1bHQgcHJvY2Vzc0lubGluZUNvbnRlbnQoY29uc3QgQ29udGlu
dW91c0NvbnRlbnQmLCBjb25zdCBMaW5lU3RhdHVzJik7CiAgICAgdm9pZCBzZXRIeXBoZW5hdGlv
bkRpc2FibGVkKGJvb2wgaHlwaGVuYXRpb25Jc0Rpc2FibGVkKSB7IG5faHlwaGVuYXRpb25Jc0Rp
c2FibGVkID0gaHlwaGVuYXRpb25Jc0Rpc2FibGVkOyB9Ci0gICAgdm9pZCBzZXRJc0luSW50cmlu
c2ljV2lkdGhNb2RlKGJvb2wgaXNJbkludHJpbnNpY1dpZHRoTW9kZSkgeyBtX2lzSW5JbnRyaW5z
aWNXaWR0aE1vZGUgPSBpc0luSW50cmluc2ljV2lkdGhNb2RlOyB9CisgICAgdm9pZCBzZXRJc01p
bmltdW1JbkludHJpbnNpY1dpZHRoTW9kZShib29sIGlzTWluaW11bUluSW50cmluc2ljV2lkdGhN
b2RlKSB7IG1faXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGUgPSBpc01pbmltdW1JbkludHJp
bnNpY1dpZHRoTW9kZTsgfQogICAgIHN0YXRpYyBib29sIGlzV3JhcHBpbmdBbGxvd2VkKGNvbnN0
IENvbnRpbnVvdXNDb250ZW50OjpSdW4mKTsKIAogcHJpdmF0ZToKQEAgLTE1MSw2ICsxNTUsNyBA
QCBwcml2YXRlOgogICAgICAgICBzdGQ6Om9wdGlvbmFsPEJyZWFraW5nUG9zaXRpb24+IGJyZWFr
aW5nUG9zaXRpb24geyB9OyAvLyBXaGVyZSB3ZSBhY3R1YWxseSBicmVhayB0aGlzIG92ZXJmbG93
aW5nIGNvbnRlbnQuCiAgICAgfTsKICAgICBPdmVyZmxvd2luZ1RleHRDb250ZW50IHByb2Nlc3NP
dmVyZmxvd2luZ0NvbnRlbnRXaXRoVGV4dChjb25zdCBDb250aW51b3VzQ29udGVudCYsIGNvbnN0
IExpbmVTdGF0dXMmKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlc3VsdD4gc2ltcGxpZmll
ZE1pbmltdW1JbnN0cmluc2ljV2lkdGhCcmVhayhjb25zdCBDb250aW51b3VzQ29udGVudCYsIGNv
bnN0IExpbmVTdGF0dXMmKSBjb25zdDsKICAgICBzdGQ6Om9wdGlvbmFsPFBhcnRpYWxSdW4+IHRy
eUJyZWFraW5nVGV4dFJ1bihjb25zdCBDb250aW51b3VzQ29udGVudDo6UnVuTGlzdCYgcnVucywg
Y29uc3QgQ2FuZGlkYXRlVGV4dFJ1bkZvckJyZWFraW5nJiwgSW5saW5lTGF5b3V0VW5pdCBhdmFp
bGFibGVXaWR0aCwgY29uc3QgTGluZVN0YXR1cyYpIGNvbnN0OwogICAgIHN0ZDo6b3B0aW9uYWw8
T3ZlcmZsb3dpbmdUZXh0Q29udGVudDo6QnJlYWtpbmdQb3NpdGlvbj4gdHJ5QnJlYWtpbmdPdmVy
Zmxvd2luZ1J1bihjb25zdCBMaW5lU3RhdHVzJiwgY29uc3QgQ29udGludW91c0NvbnRlbnQ6OlJ1
bkxpc3QmLCBzaXplX3Qgb3ZlcmZsb3dpbmdSdW5JbmRleCwgSW5saW5lTGF5b3V0VW5pdCBub25P
dmVyZmxvd2luZ0NvbnRlbnRXaWR0aCkgY29uc3Q7CiAgICAgc3RkOjpvcHRpb25hbDxPdmVyZmxv
d2luZ1RleHRDb250ZW50OjpCcmVha2luZ1Bvc2l0aW9uPiB0cnlCcmVha2luZ1ByZXZpb3VzTm9u
T3ZlcmZsb3dpbmdSdW5zKGNvbnN0IExpbmVTdGF0dXMmLCBjb25zdCBDb250aW51b3VzQ29udGVu
dDo6UnVuTGlzdCYsIHNpemVfdCBvdmVyZmxvd2luZ1J1bkluZGV4LCBJbmxpbmVMYXlvdXRVbml0
IG5vbk92ZXJmbG93aW5nQ29udGVudFdpZHRoKSBjb25zdDsKQEAgLTE2MywxMCArMTY4LDEwIEBA
IHByaXZhdGU6CiAgICAgICAgIEF0SHlwaGVuYXRpb25PcHBvcnR1bml0aWVzICAgICA9IDEgPDwg
MgogICAgIH07CiAgICAgT3B0aW9uU2V0PFdvcmRCcmVha1J1bGU+IHdvcmRCcmVha0JlaGF2aW9y
KGNvbnN0IFJlbmRlclN0eWxlJiwgYm9vbCBoYXNXcmFwT3Bwb3J0dW5pdHlBdFByZXZpb3VzUG9z
aXRpb24pIGNvbnN0OwotICAgIGJvb2wgaXNJbkludHJpbnNpY1dpZHRoTW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1faXNJbkludHJpbnNpY1dpZHRoTW9kZTsgfQorICAgIGJvb2wgaXNNaW5pbXVtSW5J
bnRyaW5zaWNXaWR0aE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2lzTWluaW11bUluSW50cmluc2lj
V2lkdGhNb2RlOyB9CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBtX2lzSW5JbnRyaW5zaWNXaWR0aE1v
ZGUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc01pbmltdW1JbkludHJpbnNpY1dpZHRoTW9kZSB7
IGZhbHNlIH07CiAgICAgYm9vbCBuX2h5cGhlbmF0aW9uSXNEaXNhYmxlZCB7IGZhbHNlIH07CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKaW5kZXggYTEyNDVm
N2U5NGQxLi4xYmQwNjE3YjA0NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVp
bGRlci5jcHAKQEAgLTEwNjgsNyArMTA2OCw3IEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1
aWxkZXI6OmhhbmRsZUlubGluZUNvbnRlbnQoY29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvCiAg
ICAgICAgICAgICAhbV93cmFwT3Bwb3J0dW5pdHlMaXN0LmlzRW1wdHkoKQogICAgICAgICB9Owog
ICAgICAgICBtX2lubGluZUNvbnRlbnRCcmVha2VyLnNldEh5cGhlbmF0aW9uRGlzYWJsZWQoc2hv
dWxkRGlzYWJsZUh5cGhlbmF0aW9uKHJvb3QoKS5zdHlsZSgpLCBtX3N1Y2Nlc3NpdmVIeXBoZW5h
dGVkTGluZUNvdW50KSk7Ci0gICAgICAgIG1faW5saW5lQ29udGVudEJyZWFrZXIuc2V0SXNJbklu
dHJpbnNpY1dpZHRoTW9kZShpc0luSW50cmluc2ljV2lkdGhNb2RlKCkpOworICAgICAgICBtX2lu
bGluZUNvbnRlbnRCcmVha2VyLnNldElzTWluaW11bUluSW50cmluc2ljV2lkdGhNb2RlKGludHJp
bnNpY1dpZHRoTW9kZSgpID09IEludHJpbnNpY1dpZHRoTW9kZTo6TWluaW11bSk7CiAgICAgICAg
IGxpbmVCcmVha2luZ1Jlc3VsdCA9IG1faW5saW5lQ29udGVudEJyZWFrZXIucHJvY2Vzc0lubGlu
ZUNvbnRlbnQoY29udGludW91c0lubGluZUNvbnRlbnQsIGxpbmVTdGF0dXMpOwogICAgIH0KICAg
ICBhdXRvIGxpbmVHYWluc05ld0NvbnRlbnQgPSBsaW5lQnJlYWtpbmdSZXN1bHQuYWN0aW9uID09
IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ6OkFjdGlvbjo6S2VlcCB8fCBsaW5lQnJlYWtp
bmdSZXN1bHQuYWN0aW9uID09IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ6OkFjdGlvbjo6
QnJlYWs7IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWls
ZGVyLmNwcAppbmRleCA3OTMyYWM1ZWVmNDkuLmY5MDc2NThiNzMzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1w
bGVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAKQEAgLTI5OCw3ICsy
OTgsNyBAQCBUZXh0T25seUxpbmVCcmVha1Jlc3VsdCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVy
OjpoYW5kbGVPdmVyZmxvd2luZ1RleHRDb250ZW50KAogICAgIGF1dG8gbGluZUJyZWFraW5nUmVz
dWx0ID0gSW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdCB7IElubGluZUNvbnRlbnRCcmVha2Vy
OjpSZXN1bHQ6OkFjdGlvbjo6S2VlcCwgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5l
OjpObywgeyB9LCB7IH0gfTsKICAgICBpZiAoY2FuZGlkYXRlQ29udGVudC5sb2dpY2FsV2lkdGgo
KSA+IGF2YWlsYWJsZVdpZHRoKSB7CiAgICAgICAgIGF1dG8gbGluZVN0YXR1cyA9IElubGluZUNv
bnRlbnRCcmVha2VyOjpMaW5lU3RhdHVzIHsgbV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKSwg
YXZhaWxhYmxlV2lkdGgsIG1fbGluZS50cmltbWFibGVUcmFpbGluZ1dpZHRoKCksIG1fbGluZS50
cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCgpLCBtX2xpbmUuaXNUcmFpbGluZ1J1bkZ1bGx5VHJpbW1h
YmxlKCksIG1fbGluZS5oYXNDb250ZW50T3JMaXN0TWFya2VyKCksICFtX3dyYXBPcHBvcnR1bml0
eUxpc3QuaXNFbXB0eSgpIH07Ci0gICAgICAgIG1faW5saW5lQ29udGVudEJyZWFrZXIuc2V0SXNJ
bkludHJpbnNpY1dpZHRoTW9kZShpc0luSW50cmluc2ljV2lkdGhNb2RlKCkpOworICAgICAgICBt
X2lubGluZUNvbnRlbnRCcmVha2VyLnNldElzTWluaW11bUluSW50cmluc2ljV2lkdGhNb2RlKGlu
dHJpbnNpY1dpZHRoTW9kZSgpID09IEludHJpbnNpY1dpZHRoTW9kZTo6TWluaW11bSk7CiAgICAg
ICAgIGxpbmVCcmVha2luZ1Jlc3VsdCA9IG1faW5saW5lQ29udGVudEJyZWFrZXIucHJvY2Vzc0lu
bGluZUNvbnRlbnQoY2FuZGlkYXRlQ29udGVudCwgbGluZVN0YXR1cyk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90
ZXh0L1RleHRVdGlsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuY3BwCmluZGV4IDc2MGM2NTE3MmMyMi4uZDRjMWM5NDY3
ZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS90ZXh0L1RleHRVdGlsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcApAQCAtOTAsNyArOTAsNyBA
QCBJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYg
aW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZvbgogICAgIHJldHVybiBUZXh0VXRpbDo6d2lkdGgoaW5s
aW5lVGV4dEl0ZW0sIGZvbnRDYXNjYWRlLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVU
ZXh0SXRlbS5lbmQoKSwgY29udGVudExvZ2ljYWxMZWZ0KTsKIH0KIAotSW5saW5lTGF5b3V0VW5p
dCBUZXh0VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBj
b25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRv
LCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCkKK0lubGluZUxheW91dFVuaXQg
VGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29u
c3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywg
SW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQsIFVzZVRyYWlsaW5nV2hpdGVzcGFj
ZU1lYXN1cmluZ09wdGltaXphdGlvbiB1c2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRp
bWl6YXRpb24pCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoZnJvbSA+PSBpbmxpbmVUZXh0SXRlbS5z
dGFydCgpKTsKICAgICBSRUxFQVNFX0FTU0VSVCh0byA8PSBpbmxpbmVUZXh0SXRlbS5lbmQoKSk7
CkBAIC0xMDYsNyArMTA2LDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6d2lkdGgoY29u
c3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBGb24KICAgICAgICAgICAg
IHJldHVybiBzdGQ6OmlzbmFuKHdpZHRoKSA/IDAuMGYgOiBzdGQ6OmlzaW5mKHdpZHRoKSA/IG1h
eElubGluZUxheW91dFVuaXQoKSA6IHdpZHRoOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVy
biB3aWR0aChpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCksIGZvbnRDYXNjYWRlLCBmcm9t
LCB0bywgY29udGVudExvZ2ljYWxMZWZ0KTsKKyAgICByZXR1cm4gd2lkdGgoaW5saW5lVGV4dEl0
ZW0uaW5saW5lVGV4dEJveCgpLCBmb250Q2FzY2FkZSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2Fs
TGVmdCwgdXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uKTsKIH0KIAog
SW5saW5lTGF5b3V0VW5pdCBUZXh0VXRpbDo6dHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoY29uc3Qg
SW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNj
YWRlLCBzaXplX3Qgc3RhcnRQb3NpdGlvbiwgc2l6ZV90IGVuZFBvc2l0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9U
ZXh0VXRpbC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvdGV4dC9UZXh0VXRpbC5oCmluZGV4IDk2YzE0YTIxMmYyYi4uYTI1Zjk0NWFmYzk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90
ZXh0L1RleHRVdGlsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oCkBAIC00MywxMCArNDMsOSBAQCBjbGFzcyBJbmxp
bmVUZXh0SXRlbTsKIAogY2xhc3MgVGV4dFV0aWwgewogcHVibGljOgotICAgIHN0YXRpYyBJbmxp
bmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2Nh
ZGUmLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCk7Ci0gICAgc3RhdGljIElu
bGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2Fz
Y2FkZSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRl
bnRMb2dpY2FsTGVmdCk7Ci0KICAgICBlbnVtIGNsYXNzIFVzZVRyYWlsaW5nV2hpdGVzcGFjZU1l
YXN1cmluZ09wdGltaXphdGlvbiA6IGJvb2wgeyBObywgWWVzIH07CisgICAgc3RhdGljIElubGlu
ZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2Fk
ZSYsIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxMZWZ0KTsKKyAgICBzdGF0aWMgSW5s
aW5lTGF5b3V0VW5pdCB3aWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNj
YWRlJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVu
dExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24g
PSBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Olllcyk7CiAgICAg
c3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYsIGNvbnN0
IEZvbnRDYXNjYWRlJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVu
aXQgY29udGVudExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRp
bWl6YXRpb24gPSBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb246Olll
cyk7CiAKICAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB0cmFpbGluZ1doaXRlc3BhY2VXaWR0
aChjb25zdCBJbmxpbmVUZXh0Qm94JiwgY29uc3QgRm9udENhc2NhZGUmLCBzaXplX3Qgc3RhcnRQ
b3NpdGlvbiwgc2l6ZV90IGVuZFBvc2l0aW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>467365</attachid>
            <date>2023-08-21 07:51:29 -0700</date>
            <delta_ts>2023-08-21 09:51:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-260433-20230821075129.patch</filename>
            <type>text/plain</type>
            <size>19273</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhMTMwMGEzYzZkZjQzMTY5ZGIwM2NjMzNlMjA5Y2RmZTQ2YzMyN2JjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgMTkgQXVnIDIwMjMgMTA6MzQ6NTYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXVtJ
bmxpbmVDb250ZW50QnJlYWtlcl0gQWRkIGZhc3QgcGF0aCBmb3IgdGV4dCBvbmx5CiBtaW5pbXVt
IGludHJpbnNpYyB3aWR0aCBjb21wdXRhdGlvbgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI2MDQzMwoKUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpNaW5pbXVt
IHdpZHRoIGNvbXB1dGF0aW9uIGlzIGhlYXZpbHkgdXNlZCBieSBmbGV4LCB0YWJsZSwgZmxvYXQg
YW5kIG91dC1vZi1mbG93IGNvbnRlbnQuCgp+MTAlIHByb2dyZXNzaW9uIG9uIFBlcmZvcm1hbmNl
VGVzdHMvTGF5b3V0L2xpbmUtbGF5b3V0LXByZWZlcnJlZC13aWR0aC1icmVhay1hbGwuaHRtbC4K
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
Q29udGVudEJyZWFrZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50QnJlYWtl
cjo6cHJvY2Vzc0lubGluZUNvbnRlbnQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50
QnJlYWtlcjo6cHJvY2Vzc092ZXJmbG93aW5nQ29udGVudCBjb25zdCk6CihXZWJDb3JlOjpMYXlv
dXQ6OklubGluZUNvbnRlbnRCcmVha2VyOjpzaW1wbGlmaWVkTWluaW11bUluc3RyaW5zaWNXaWR0
aEJyZWFrIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudEJyZWFrZXI6Ondv
cmRCcmVha0JlaGF2aW9yIGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudEJy
ZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50OjphcHBlbmQpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQ6OmFwcGVuZFRleHRDb250ZW50KToK
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50
OjpyZXNldCk6CihXZWJDb3JlOjpMYXlvdXQ6Omhhc1RleHRSdW4pOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRC
cmVha2VyLmg6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51
b3VzQ29udGVudDo6aGFzVGV4dENvbnRlbnQgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQ6OmlzVGV4dENvbnRlbnQgY29uc3Qp
OgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50QnJlYWtlcjo6c2V0SXNNaW5pbXVtSW5J
bnRyaW5zaWNXaWR0aE1vZGUpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50QnJlYWtl
cjo6aXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGUgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVDb250ZW50QnJlYWtlcjo6c2V0SXNJbkludHJpbnNpY1dpZHRoTW9kZSk6IERlbGV0
ZWQuCihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRCcmVha2VyOjppc0luSW50cmluc2lj
V2lkdGhNb2RlIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250ZW50KToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVy
LmNwcDoKKFdlYkNvcmU6OkxheW91dDo6VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aGFuZGxl
T3ZlcmZsb3dpbmdUZXh0Q29udGVudCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OlRl
eHRVdGlsOjp3aWR0aCk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oOgotLS0KIC4uLi9pbmxpbmUvSW5saW5lQ29udGVudEJy
ZWFrZXIuY3BwICAgICAgICAgICB8IDU1ICsrKysrKysrKysrKystLS0tLS0KIC4uLi9pbmxpbmUv
SW5saW5lQ29udGVudEJyZWFrZXIuaCAgICAgICAgICAgICB8IDExICsrKy0KIC4uLi9pbmxpbmUv
SW5saW5lTGluZUJ1aWxkZXIuY3BwICAgICAgICAgICAgICB8ICAyICstCiAuLi4vaW5saW5lL1Rl
eHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwICAgICAgfCAgMiArLQogLi4uL2lubGluZS90ZXh0
L1RleHRVdGlsLmNwcCAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIC4uLi9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaCB8ICA1ICstCiA2IGZpbGVzIGNoYW5nZWQsIDUz
IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRCcmVha2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUNvbnRlbnRCcmVha2VyLmNwcAppbmRleCAzYjJjYjEzZjA5MGIuLjYxY2NlMTE0MzQ4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lQ29udGVudEJyZWFrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRCcmVha2VyLmNwcApAQCAtNDgs
MTcgKzQ4LDYgQEAgc3RhdGljIGlubGluZSBib29sIGhhc0xlYWRpbmdUZXh0Q29udGVudChjb25z
dCBJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0MKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBoYXNUZXh0UnVuKGNvbnN0IElubGluZUNvbnRlbnRCcmVh
a2VyOjpDb250aW51b3VzQ29udGVudCYgY29udGludW91c0NvbnRlbnQpCi17Ci0gICAgLy8gPHNw
YW4+dGV4dDwvc3Bhbj4gaXMgY29uc2lkZXJlZCBhIHRleHQgcnVuIGV2ZW4gd2l0aCB0aGUgW2lu
bGluZSBib3ggc3RhcnRdW2lubGluZSBib3ggZW5kXSBpbmxpbmUgaXRlbXMuCi0gICAgLy8gQmFz
ZWQgb24gc3RhbmRhcmRzIGNvbW1pdCBib3VuZGFyeSBydWxlcyBpdCB3b3VsZCBiZSBlbm91Z2gg
dG8gY2hlY2sgdGhlIGZpcnN0IGlubGluZSBpdGVtLgotICAgIGZvciAoYXV0byYgcnVuIDogY29u
dGludW91c0NvbnRlbnQucnVucygpKSB7Ci0gICAgICAgIGlmIChydW4uaW5saW5lSXRlbS5pc1Rl
eHQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KIHN0YXRpYyBpbmxpbmUgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG5leHRUZXh0UnVuSW5k
ZXgoY29uc3QgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50OjpSdW5MaXN0
JiBydW5zLCBzaXplX3Qgc3RhcnRJbmRleCkKIHsKICAgICBmb3IgKGF1dG8gaW5kZXggPSBzdGFy
dEluZGV4ICsgMTsgaW5kZXggPCBydW5zLnNpemUoKTsgKytpbmRleCkgewpAQCAtMTExLDcgKzEw
MCwxMSBAQCBzdGF0aWMgaW5saW5lIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBmaXJzdFRleHRSdW5J
bmRleChjb25zdCBJbmxpbmVDb250ZW50QnJlYWtlcgogSW5saW5lQ29udGVudEJyZWFrZXI6OlJl
c3VsdCBJbmxpbmVDb250ZW50QnJlYWtlcjo6cHJvY2Vzc0lubGluZUNvbnRlbnQoY29uc3QgQ29u
dGludW91c0NvbnRlbnQmIGNhbmRpZGF0ZUNvbnRlbnQsIGNvbnN0IExpbmVTdGF0dXMmIGxpbmVT
dGF0dXMpCiB7CiAgICAgQVNTRVJUKCFzdGQ6OmlzbmFuKGxpbmVTdGF0dXMuYXZhaWxhYmxlV2lk
dGgpKTsKLSAgICBBU1NFUlQoY2FuZGlkYXRlQ29udGVudC5sb2dpY2FsV2lkdGgoKSA+IGxpbmVT
dGF0dXMuYXZhaWxhYmxlV2lkdGgpOworICAgIEFTU0VSVChpc01pbmltdW1JbkludHJpbnNpY1dp
ZHRoTW9kZSgpIHx8IGNhbmRpZGF0ZUNvbnRlbnQubG9naWNhbFdpZHRoKCkgPiBsaW5lU3RhdHVz
LmF2YWlsYWJsZVdpZHRoKTsKKworICAgIGlmIChhdXRvIHJlc3VsdCA9IHNpbXBsaWZpZWRNaW5p
bXVtSW5zdHJpbnNpY1dpZHRoQnJlYWsoY2FuZGlkYXRlQ29udGVudCwgbGluZVN0YXR1cykpCisg
ICAgICAgIHJldHVybiAqcmVzdWx0OworCiAgICAgYXV0byByZXN1bHQgPSBwcm9jZXNzT3ZlcmZs
b3dpbmdDb250ZW50KGNhbmRpZGF0ZUNvbnRlbnQsIGxpbmVTdGF0dXMpOwogICAgIGlmIChyZXN1
bHQuYWN0aW9uID09IFJlc3VsdDo6QWN0aW9uOjpXcmFwICYmIGxpbmVTdGF0dXMudHJhaWxpbmdT
b2Z0SHlwaGVuV2lkdGggJiYgaGFzTGVhZGluZ1RleHRDb250ZW50KGNhbmRpZGF0ZUNvbnRlbnQp
KSB7CiAgICAgICAgIC8vIEEgdHJhaWxpbmcgc29mdCBoeXBoZW4gd2l0aCBhIHdyYXBwZWQgdGV4
dCBjb250ZW50IHR1cm5zIGludG8gYSB2aXNpYmxlIGh5cGhlbi4KQEAgLTEyMyw5ICsxMTYsOCBA
QCBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0IElubGluZUNvbnRlbnRCcmVha2VyOjpwcm9j
ZXNzSW5saW5lQ29udGVudChjb25zdCBDbwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUlubGlu
ZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQgSW5saW5lQ29udGVudEJyZWFrZXI6OnByb2Nlc3NPdmVy
Zmxvd2luZ0NvbnRlbnQoY29uc3QgQ29udGludW91c0NvbnRlbnQmIG92ZXJmbG93Q29udGVudCwg
Y29uc3QgTGluZVN0YXR1cyYgbGluZVN0YXR1cykgY29uc3QKK0lubGluZUNvbnRlbnRCcmVha2Vy
OjpSZXN1bHQgSW5saW5lQ29udGVudEJyZWFrZXI6OnByb2Nlc3NPdmVyZmxvd2luZ0NvbnRlbnQo
Y29uc3QgQ29udGludW91c0NvbnRlbnQmIGNvbnRpbnVvdXNDb250ZW50LCBjb25zdCBMaW5lU3Rh
dHVzJiBsaW5lU3RhdHVzKSBjb25zdAogewotICAgIGF1dG8gY29udGludW91c0NvbnRlbnQgPSBD
b250aW51b3VzQ29udGVudCB7IG92ZXJmbG93Q29udGVudCB9OwogICAgIEFTU0VSVCghY29udGlu
dW91c0NvbnRlbnQucnVucygpLmlzRW1wdHkoKSk7CiAKICAgICBBU1NFUlQoY29udGludW91c0Nv
bnRlbnQubG9naWNhbFdpZHRoKCkgPiBsaW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoKTsKQEAgLTE2
Niw3ICsxNTgsNyBAQCBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0IElubGluZUNvbnRlbnRC
cmVha2VyOjpwcm9jZXNzT3ZlcmZsb3dpbmdDb250ZW50KGNvbgogICAgICAgICByZXR1cm4gKnJl
c3VsdDsKIAogICAgIHNpemVfdCBvdmVyZmxvd2luZ1J1bkluZGV4ID0gMDsKLSAgICBpZiAoaGFz
VGV4dFJ1bihjb250aW51b3VzQ29udGVudCkpIHsKKyAgICBpZiAoY29udGludW91c0NvbnRlbnQu
aGFzVGV4dENvbnRlbnQoKSkgewogICAgICAgICBhdXRvIHRyeUJyZWFraW5nQ29udGVudFdpdGhU
ZXh0ID0gWyZdKCkgLT4gc3RkOjpvcHRpb25hbDxSZXN1bHQ+IHsKICAgICAgICAgICAgIC8vIDEu
IFRoaXMgdGV4dCBjb250ZW50IGlzIG5vdCBicmVha2FibGUuCiAgICAgICAgICAgICAvLyAyLiBU
aGlzIGJyZWFrYWJsZSB0ZXh0IGNvbnRlbnQgZG9lcyBub3QgZml0IGF0IGFsbC4gTm90IGV2ZW4g
dGhlIGZpcnN0IGdseXBoLiBUaGlzIGlzIGEgdmVyeSBzcGVjaWFsIGNhc2UuCkBAIC0yNTQsNiAr
MjQ2LDMzIEBAIElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQgSW5saW5lQ29udGVudEJyZWFr
ZXI6OnByb2Nlc3NPdmVyZmxvd2luZ0NvbnRlbnQoY29uCiAgICAgcmV0dXJuIHsgUmVzdWx0OjpB
Y3Rpb246OktlZXAsIElzRW5kT2ZMaW5lOjpObyB9OwogfQogCitzdGQ6Om9wdGlvbmFsPElubGlu
ZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ+IElubGluZUNvbnRlbnRCcmVha2VyOjpzaW1wbGlmaWVk
TWluaW11bUluc3RyaW5zaWNXaWR0aEJyZWFrKGNvbnN0IENvbnRpbnVvdXNDb250ZW50JiBjYW5k
aWRhdGVDb250ZW50LCBjb25zdCBMaW5lU3RhdHVzJiBsaW5lU3RhdHVzKSBjb25zdAoreworICAg
IGlmICghaXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGUoKSB8fCAhY2FuZGlkYXRlQ29udGVu
dC5pc1RleHRPbmx5Q29udGVudCgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byYg
bGVhZGluZ0lubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGNhbmRpZGF0
ZUNvbnRlbnQucnVucygpLmZpcnN0KCkuaW5saW5lSXRlbSk7CisgICAgYXV0byYgc3R5bGUgPSBs
ZWFkaW5nSW5saW5lVGV4dEl0ZW0uc3R5bGUoKTsKKyAgICBpZiAoIVRleHRVdGlsOjppc1dyYXBw
aW5nQWxsb3dlZChzdHlsZSkpCisgICAgICAgIHJldHVybiBSZXN1bHQgeyBSZXN1bHQ6OkFjdGlv
bjo6S2VlcCwgSXNFbmRPZkxpbmU6Ok5vIH07CisKKyAgICBpZiAoIWxpbmVTdGF0dXMuaGFzQ29u
dGVudCkgeworICAgICAgICBhdXRvIGJyZWFrQmVoYXZpb3IgPSB3b3JkQnJlYWtCZWhhdmlvcihz
dHlsZSwgeyB9KTsKKyAgICAgICAgaWYgKGJyZWFrQmVoYXZpb3IuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBJc0VuZE9mTGluZTo6
Tm8gfTsKKworICAgICAgICBpZiAoYnJlYWtCZWhhdmlvci5jb250YWluc0FueSh7IFdvcmRCcmVh
a1J1bGU6OkF0QXJiaXRyYXJ5UG9zaXRpb25XaXRoaW5Xb3JkcywgV29yZEJyZWFrUnVsZTo6QXRB
cmJpdHJhcnlQb3NpdGlvbiB9KSkgeworICAgICAgICAgICAgYXV0byBmaXJzdENoYXJhY3Rlckxl
bmd0aCA9IFRleHRVdGlsOjpmaXJzdFVzZXJQZXJjZWl2ZWRDaGFyYWN0ZXJMZW5ndGgobGVhZGlu
Z0lubGluZVRleHRJdGVtKTsKKyAgICAgICAgICAgIGlmIChsZWFkaW5nSW5saW5lVGV4dEl0ZW0u
bGVuZ3RoKCkgPT0gZmlyc3RDaGFyYWN0ZXJMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJu
IFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBJc0VuZE9mTGluZTo6WWVzIH07CisgICAg
ICAgICAgICBhdXRvIGZpcnN0Q2hhcmFjdGVyV2lkdGggPSBUZXh0VXRpbDo6d2lkdGgobGVhZGlu
Z0lubGluZVRleHRJdGVtLCBzdHlsZS5mb250Q2FzY2FkZSgpLCBsZWFkaW5nSW5saW5lVGV4dEl0
ZW0uc3RhcnQoKSwgbGVhZGluZ0lubGluZVRleHRJdGVtLnN0YXJ0KCkgKyBmaXJzdENoYXJhY3Rl
ckxlbmd0aCwgeyB9LCBUZXh0VXRpbDo6VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0
aW1pemF0aW9uOjpObyk7CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0IHsgUmVzdWx0OjpBY3Rp
b246OkJyZWFrLCBJc0VuZE9mTGluZTo6WWVzLCBSZXN1bHQ6OlBhcnRpYWxUcmFpbGluZ0NvbnRl
bnQgeyB7IH0sIFBhcnRpYWxSdW4geyBmaXJzdENoYXJhY3Rlckxlbmd0aCwgZmlyc3RDaGFyYWN0
ZXJXaWR0aCB9LCB7IH0gfSB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiB7IH07CisgICAg
fQorICAgIHJldHVybiBSZXN1bHQgeyAhbGluZVN0YXR1cy50cmFpbGluZ1NvZnRIeXBoZW5XaWR0
aCA/IFJlc3VsdDo6QWN0aW9uOjpXcmFwIDogUmVzdWx0OjpBY3Rpb246OlJldmVydFRvTGFzdE5v
bk92ZXJmbG93aW5nV3JhcE9wcG9ydHVuaXR5LCBJc0VuZE9mTGluZTo6WWVzIH07Cit9CisKIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gZmluZFRyYWlsaW5nUnVuSW5kZXgoY29uc3QgSW5s
aW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50OjpSdW5MaXN0JiBydW5zLCBzaXpl
X3QgYnJlYWthYmxlUnVuSW5kZXgpCiB7CiAgICAgLy8gV2hlbiB0aGUgYnJlYWtpbmcgcG9zaXRp
b24gaXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcnVuLCB0aGUgdHJhaWxpbmcgcnVuIGlzIHRo
ZSBwcmV2aW91cyBvbmUuCkBAIC03NjgsNyArNzg3LDcgQEAgT3B0aW9uU2V0PElubGluZUNvbnRl
bnRCcmVha2VyOjpXb3JkQnJlYWtSdWxlPiBJbmxpbmVDb250ZW50QnJlYWtlcjo6d29yZEJyZWFr
QmUKICAgICAvLyBPdmVyZmxvd1dyYXA6OkJyZWFrV29yZC9Bbnl3aGVyZSBBbiBvdGhlcndpc2Ug
dW5icmVha2FibGUgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyBtYXkgYmUgYnJva2VuIGF0IGFuIGFy
Yml0cmFyeSBwb2ludCBpZiB0aGVyZSBhcmUgbm8gb3RoZXJ3aXNlLWFjY2VwdGFibGUgYnJlYWsg
cG9pbnRzIGluIHRoZSBsaW5lLgogICAgIC8vIE5vdGUgdGhhdCB0aGlzIGFwcGxpZXMgdG8gY29u
dGVudCB3aGVyZSBDU1MgcHJvcGVydGllcyAoZS5nLiBXb3JkQnJlYWs6OktlZXBBbGwpIG1ha2Ug
aXQgdW5icmVha2FibGUuIAogICAgIC8vIFNvZnQgd3JhcCBvcHBvcnR1bml0aWVzIGludHJvZHVj
ZWQgYnkgb3ZlcmZsb3ctd3JhcC93b3JkLXdyYXA6IGJyZWFrLXdvcmQgYXJlIG5vdCBjb25zaWRl
cmVkIHdoZW4gY2FsY3VsYXRpbmcgbWluLWNvbnRlbnQgaW50cmluc2ljIHNpemVzLgotICAgIGF1
dG8gb3ZlcmZsb3dXcmFwQnJlYWtXb3JkSXNBcHBsaWNhYmxlID0gIWlzSW5JbnRyaW5zaWNXaWR0
aE1vZGUoKTsKKyAgICBhdXRvIG92ZXJmbG93V3JhcEJyZWFrV29yZElzQXBwbGljYWJsZSA9ICFp
c01pbmltdW1JbkludHJpbnNpY1dpZHRoTW9kZSgpOwogICAgIGlmICgoKG92ZXJmbG93V3JhcEJy
ZWFrV29yZElzQXBwbGljYWJsZSAmJiBzdHlsZS5vdmVyZmxvd1dyYXAoKSA9PSBPdmVyZmxvd1dy
YXA6OkJyZWFrV29yZCkgfHwgc3R5bGUub3ZlcmZsb3dXcmFwKCkgPT0gT3ZlcmZsb3dXcmFwOjpB
bnl3aGVyZSkgJiYgIWhhc1dyYXBPcHBvcnR1bml0eUF0UHJldmlvdXNQb3NpdGlvbikKICAgICAg
ICAgcmV0dXJuIGluY2x1ZGVIeXBoZW5hdGlvbklmQWxsb3dlZChXb3JkQnJlYWtSdWxlOjpBdEFy
Yml0cmFyeVBvc2l0aW9uKTsKICAgICAvLyBCcmVha2luZyBpcyBmb3JiaWRkZW4gd2l0aGluIOKA
nHdvcmRz4oCdLgpAQCAtNzkzLDYgKzgxMiw3IEBAIHZvaWQgSW5saW5lQ29udGVudEJyZWFrZXI6
OkNvbnRpbnVvdXNDb250ZW50OjpyZXNldFRyYWlsaW5nVHJpbW1hYmxlQ29udGVudCgpCiB2b2lk
IElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudDo6YXBwZW5kKGNvbnN0IElu
bGluZUl0ZW0mIGlubGluZUl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgpCiB7CiAgICAgQVNTRVJUKGlubGluZUl0ZW0uaXNCb3goKSB8
fCBpbmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSB8fCBpbmxpbmVJdGVtLmlzSW5saW5lQm94
RW5kKCkpOworICAgIG1faXNUZXh0T25seUNvbnRlbnQgPSBmYWxzZTsKICAgICBhcHBlbmRUb1J1
bkxpc3QoaW5saW5lSXRlbSwgc3R5bGUsIGxvZ2ljYWxXaWR0aCk7CiAgICAgaWYgKGlubGluZUl0
ZW0uaXNCb3goKSkgewogICAgICAgICAvLyBJbmxpbmUgYm94ZXMgKHdoaXRlc3BhY2UtPiA8c3Bh
bj48L3NwYW4+KSBkbyBub3QgcHJldmVudCB0aGUgdHJhaWxpbmcgY29udGVudCBmcm9tIGdldHRp
bmcgdHJpbW1lZC9odW5nCkBAIC04MDMsNiArODIzLDcgQEAgdm9pZCBJbmxpbmVDb250ZW50QnJl
YWtlcjo6Q29udGludW91c0NvbnRlbnQ6OmFwcGVuZChjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJ
dGUKIAogdm9pZCBJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQ6OmFwcGVu
ZFRleHRDb250ZW50KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCkKIHsKKyAg
ICBtX2hhc1RleHRDb250ZW50ID0gdHJ1ZTsKICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIv
Y3NzLXRleHQtNC8jd2hpdGUtc3BhY2UtcGhhc2UtMgogICAgIGF1dG8gaXNUcmFpbGluZ0hhbmdp
bmdDb250ZW50ID0gaW5saW5lVGV4dEl0ZW0uaXNXaGl0ZXNwYWNlKCkgJiYgVGV4dFV0aWw6OnNo
b3VsZFRyYWlsaW5nV2hpdGVzcGFjZUhhbmcoc3R5bGUpOwogICAgIGlmIChpc1RyYWlsaW5nSGFu
Z2luZ0NvbnRlbnQpCkBAIC04MzksNiArODYwLDggQEAgdm9pZCBJbmxpbmVDb250ZW50QnJlYWtl
cjo6Q29udGludW91c0NvbnRlbnQ6OnJlc2V0KCkKICAgICBtX3RyYWlsaW5nVHJpbW1hYmxlV2lk
dGggPSB7IH07CiAgICAgbV9oYW5naW5nQ29udGVudFdpZHRoID0geyB9OwogICAgIG1fcnVucy5j
bGVhcigpOworICAgIG1faGFzVGV4dENvbnRlbnQgPSBmYWxzZTsKKyAgICBtX2lzVGV4dE9ubHlD
b250ZW50ID0gdHJ1ZTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEJyZWFrZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRC
cmVha2VyLmgKaW5kZXggMzU1NmFjOGU1OGM4Li5mOGJhZGNmOTY1MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRl
bnRCcmVha2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lQ29udGVudEJyZWFrZXIuaApAQCAtODYsNiArODYsOCBAQCBwdWJsaWM6
CiAgICAgICAgIElubGluZUxheW91dFVuaXQgaGFuZ2luZ0NvbnRlbnRXaWR0aCgpIGNvbnN0IHsg
cmV0dXJuIG1faGFuZ2luZ0NvbnRlbnRXaWR0aDsgfQogICAgICAgICBib29sIGhhc1RyaW1tYWJs
ZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiB0cmFpbGluZ1RyaW1tYWJsZVdpZHRoKCkgfHwgbGVh
ZGluZ1RyaW1tYWJsZVdpZHRoKCk7IH0KICAgICAgICAgYm9vbCBoYXNIYW5naW5nQ29udGVudCgp
IGNvbnN0IHsgcmV0dXJuIGhhbmdpbmdDb250ZW50V2lkdGgoKTsgfQorICAgICAgICBib29sIGhh
c1RleHRDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNUZXh0Q29udGVudDsgfQorICAgICAg
ICBib29sIGlzVGV4dE9ubHlDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc1RleHRPbmx5Q29u
dGVudDsgfQogICAgICAgICBib29sIGlzRnVsbHlUcmltbWFibGUoKSBjb25zdDsKICAgICAgICAg
Ym9vbCBpc0hhbmdpbmdDb250ZW50KCkgY29uc3QgeyByZXR1cm4gaGFuZ2luZ0NvbnRlbnRXaWR0
aCgpID09IGxvZ2ljYWxXaWR0aCgpOyB9CiAKQEAgLTExNSw2ICsxMTcsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIElubGluZUxheW91dFVuaXQgbV9sZWFkaW5nVHJpbW1hYmxlV2lkdGggeyAwLmYgfTsK
ICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX3RyYWlsaW5nVHJpbW1hYmxlV2lkdGggeyAwLmYg
fTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX2hhbmdpbmdDb250ZW50V2lkdGggeyAwLmYg
fTsKKyAgICAgICAgYm9vbCBtX2hhc1RleHRDb250ZW50IHsgZmFsc2UgfTsKKyAgICAgICAgYm9v
bCBtX2lzVGV4dE9ubHlDb250ZW50IHsgdHJ1ZSB9OwogICAgIH07CiAKICAgICBzdHJ1Y3QgTGlu
ZVN0YXR1cyB7CkBAIC0xMjksNyArMTMzLDcgQEAgcHVibGljOgogICAgIH07CiAgICAgUmVzdWx0
IHByb2Nlc3NJbmxpbmVDb250ZW50KGNvbnN0IENvbnRpbnVvdXNDb250ZW50JiwgY29uc3QgTGlu
ZVN0YXR1cyYpOwogICAgIHZvaWQgc2V0SHlwaGVuYXRpb25EaXNhYmxlZChib29sIGh5cGhlbmF0
aW9uSXNEaXNhYmxlZCkgeyBuX2h5cGhlbmF0aW9uSXNEaXNhYmxlZCA9IGh5cGhlbmF0aW9uSXNE
aXNhYmxlZDsgfQotICAgIHZvaWQgc2V0SXNJbkludHJpbnNpY1dpZHRoTW9kZShib29sIGlzSW5J
bnRyaW5zaWNXaWR0aE1vZGUpIHsgbV9pc0luSW50cmluc2ljV2lkdGhNb2RlID0gaXNJbkludHJp
bnNpY1dpZHRoTW9kZTsgfQorICAgIHZvaWQgc2V0SXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1v
ZGUoYm9vbCBpc01pbmltdW1JbkludHJpbnNpY1dpZHRoTW9kZSkgeyBtX2lzTWluaW11bUluSW50
cmluc2ljV2lkdGhNb2RlID0gaXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGU7IH0KICAgICBz
dGF0aWMgYm9vbCBpc1dyYXBwaW5nQWxsb3dlZChjb25zdCBDb250aW51b3VzQ29udGVudDo6UnVu
Jik7CiAKIHByaXZhdGU6CkBAIC0xNTEsNiArMTU1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgc3Rk
OjpvcHRpb25hbDxCcmVha2luZ1Bvc2l0aW9uPiBicmVha2luZ1Bvc2l0aW9uIHsgfTsgLy8gV2hl
cmUgd2UgYWN0dWFsbHkgYnJlYWsgdGhpcyBvdmVyZmxvd2luZyBjb250ZW50LgogICAgIH07CiAg
ICAgT3ZlcmZsb3dpbmdUZXh0Q29udGVudCBwcm9jZXNzT3ZlcmZsb3dpbmdDb250ZW50V2l0aFRl
eHQoY29uc3QgQ29udGludW91c0NvbnRlbnQmLCBjb25zdCBMaW5lU3RhdHVzJikgY29uc3Q7Cisg
ICAgc3RkOjpvcHRpb25hbDxSZXN1bHQ+IHNpbXBsaWZpZWRNaW5pbXVtSW5zdHJpbnNpY1dpZHRo
QnJlYWsoY29uc3QgQ29udGludW91c0NvbnRlbnQmLCBjb25zdCBMaW5lU3RhdHVzJikgY29uc3Q7
CiAgICAgc3RkOjpvcHRpb25hbDxQYXJ0aWFsUnVuPiB0cnlCcmVha2luZ1RleHRSdW4oY29uc3Qg
Q29udGludW91c0NvbnRlbnQ6OlJ1bkxpc3QmIHJ1bnMsIGNvbnN0IENhbmRpZGF0ZVRleHRSdW5G
b3JCcmVha2luZyYsIElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIGNvbnN0IExpbmVT
dGF0dXMmKSBjb25zdDsKICAgICBzdGQ6Om9wdGlvbmFsPE92ZXJmbG93aW5nVGV4dENvbnRlbnQ6
OkJyZWFraW5nUG9zaXRpb24+IHRyeUJyZWFraW5nT3ZlcmZsb3dpbmdSdW4oY29uc3QgTGluZVN0
YXR1cyYsIGNvbnN0IENvbnRpbnVvdXNDb250ZW50OjpSdW5MaXN0Jiwgc2l6ZV90IG92ZXJmbG93
aW5nUnVuSW5kZXgsIElubGluZUxheW91dFVuaXQgbm9uT3ZlcmZsb3dpbmdDb250ZW50V2lkdGgp
IGNvbnN0OwogICAgIHN0ZDo6b3B0aW9uYWw8T3ZlcmZsb3dpbmdUZXh0Q29udGVudDo6QnJlYWtp
bmdQb3NpdGlvbj4gdHJ5QnJlYWtpbmdQcmV2aW91c05vbk92ZXJmbG93aW5nUnVucyhjb25zdCBM
aW5lU3RhdHVzJiwgY29uc3QgQ29udGludW91c0NvbnRlbnQ6OlJ1bkxpc3QmLCBzaXplX3Qgb3Zl
cmZsb3dpbmdSdW5JbmRleCwgSW5saW5lTGF5b3V0VW5pdCBub25PdmVyZmxvd2luZ0NvbnRlbnRX
aWR0aCkgY29uc3Q7CkBAIC0xNjMsMTAgKzE2OCwxMCBAQCBwcml2YXRlOgogICAgICAgICBBdEh5
cGhlbmF0aW9uT3Bwb3J0dW5pdGllcyAgICAgPSAxIDw8IDIKICAgICB9OwogICAgIE9wdGlvblNl
dDxXb3JkQnJlYWtSdWxlPiB3b3JkQnJlYWtCZWhhdmlvcihjb25zdCBSZW5kZXJTdHlsZSYsIGJv
b2wgaGFzV3JhcE9wcG9ydHVuaXR5QXRQcmV2aW91c1Bvc2l0aW9uKSBjb25zdDsKLSAgICBib29s
IGlzSW5JbnRyaW5zaWNXaWR0aE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2lzSW5JbnRyaW5zaWNX
aWR0aE1vZGU7IH0KKyAgICBib29sIGlzTWluaW11bUluSW50cmluc2ljV2lkdGhNb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9pc01pbmltdW1JbkludHJpbnNpY1dpZHRoTW9kZTsgfQogCiBwcml2YXRl
OgotICAgIGJvb2wgbV9pc0luSW50cmluc2ljV2lkdGhNb2RlIHsgZmFsc2UgfTsKKyAgICBib29s
IG1faXNNaW5pbXVtSW5JbnRyaW5zaWNXaWR0aE1vZGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbl9o
eXBoZW5hdGlvbklzRGlzYWJsZWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IGExMjQ1ZjdlOTRkMS4uMWJkMDYxN2IwNDc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC0xMDY4LDcgKzEw
NjgsNyBAQCBMaW5lQnVpbGRlcjo6UmVzdWx0IExpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250
ZW50KGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbGF5bwogICAgICAgICAgICAgIW1fd3JhcE9wcG9y
dHVuaXR5TGlzdC5pc0VtcHR5KCkKICAgICAgICAgfTsKICAgICAgICAgbV9pbmxpbmVDb250ZW50
QnJlYWtlci5zZXRIeXBoZW5hdGlvbkRpc2FibGVkKHNob3VsZERpc2FibGVIeXBoZW5hdGlvbihy
b290KCkuc3R5bGUoKSwgbV9zdWNjZXNzaXZlSHlwaGVuYXRlZExpbmVDb3VudCkpOwotICAgICAg
ICBtX2lubGluZUNvbnRlbnRCcmVha2VyLnNldElzSW5JbnRyaW5zaWNXaWR0aE1vZGUoaXNJbklu
dHJpbnNpY1dpZHRoTW9kZSgpKTsKKyAgICAgICAgbV9pbmxpbmVDb250ZW50QnJlYWtlci5zZXRJ
c01pbmltdW1JbkludHJpbnNpY1dpZHRoTW9kZShpbnRyaW5zaWNXaWR0aE1vZGUoKSA9PSBJbnRy
aW5zaWNXaWR0aE1vZGU6Ok1pbmltdW0pOwogICAgICAgICBsaW5lQnJlYWtpbmdSZXN1bHQgPSBt
X2lubGluZUNvbnRlbnRCcmVha2VyLnByb2Nlc3NJbmxpbmVDb250ZW50KGNvbnRpbnVvdXNJbmxp
bmVDb250ZW50LCBsaW5lU3RhdHVzKTsKICAgICB9CiAgICAgYXV0byBsaW5lR2FpbnNOZXdDb250
ZW50ID0gbGluZUJyZWFraW5nUmVzdWx0LmFjdGlvbiA9PSBJbmxpbmVDb250ZW50QnJlYWtlcjo6
UmVzdWx0OjpBY3Rpb246OktlZXAgfHwgbGluZUJyZWFraW5nUmVzdWx0LmFjdGlvbiA9PSBJbmxp
bmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OkJyZWFrOyAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2lt
cGxlTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAKaW5kZXggMDY0ZTdjY2I4
MTBiLi41NTExMGYzMDc1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5
U2ltcGxlTGluZUJ1aWxkZXIuY3BwCkBAIC0yOTMsNyArMjkzLDcgQEAgVGV4dE9ubHlMaW5lQnJl
YWtSZXN1bHQgVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aGFuZGxlT3ZlcmZsb3dpbmdUZXh0
Q29udGVudCgKICAgICBhdXRvIGxpbmVCcmVha2luZ1Jlc3VsdCA9IElubGluZUNvbnRlbnRCcmVh
a2VyOjpSZXN1bHQgeyBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OktlZXAs
IElubGluZUNvbnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6Tm8sIHsgfSwgeyB9IH07CiAgICAg
aWYgKGNhbmRpZGF0ZUNvbnRlbnQubG9naWNhbFdpZHRoKCkgPiBhdmFpbGFibGVXaWR0aCkgewog
ICAgICAgICBhdXRvIGxpbmVTdGF0dXMgPSBJbmxpbmVDb250ZW50QnJlYWtlcjo6TGluZVN0YXR1
cyB7IG1fbGluZS5jb250ZW50TG9naWNhbFJpZ2h0KCksIGF2YWlsYWJsZVdpZHRoLCBtX2xpbmUu
dHJpbW1hYmxlVHJhaWxpbmdXaWR0aCgpLCBtX2xpbmUudHJhaWxpbmdTb2Z0SHlwaGVuV2lkdGgo
KSwgbV9saW5lLmlzVHJhaWxpbmdSdW5GdWxseVRyaW1tYWJsZSgpLCBtX2xpbmUuaGFzQ29udGVu
dE9yTGlzdE1hcmtlcigpLCAhbV93cmFwT3Bwb3J0dW5pdHlMaXN0LmlzRW1wdHkoKSB9OwotICAg
ICAgICBtX2lubGluZUNvbnRlbnRCcmVha2VyLnNldElzSW5JbnRyaW5zaWNXaWR0aE1vZGUoaXNJ
bkludHJpbnNpY1dpZHRoTW9kZSgpKTsKKyAgICAgICAgbV9pbmxpbmVDb250ZW50QnJlYWtlci5z
ZXRJc01pbmltdW1JbkludHJpbnNpY1dpZHRoTW9kZShpbnRyaW5zaWNXaWR0aE1vZGUoKSA9PSBJ
bnRyaW5zaWNXaWR0aE1vZGU6Ok1pbmltdW0pOwogICAgICAgICBsaW5lQnJlYWtpbmdSZXN1bHQg
PSBtX2lubGluZUNvbnRlbnRCcmVha2VyLnByb2Nlc3NJbmxpbmVDb250ZW50KGNhbmRpZGF0ZUNv
bnRlbnQsIGxpbmVTdGF0dXMpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGls
LmNwcAppbmRleCA3NjBjNjUxNzJjMjIuLmQ0YzFjOTQ2N2RmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
dGV4dC9UZXh0VXRpbC5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgSW5saW5lTGF5b3V0VW5pdCBUZXh0
VXRpbDo6d2lkdGgoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBG
b24KICAgICByZXR1cm4gVGV4dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVtLCBmb250Q2FzY2Fk
ZSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0uZW5kKCksIGNvbnRlbnRM
b2dpY2FsTGVmdCk7CiB9CiAKLUlubGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0
IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRD
YXNjYWRlLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250
ZW50TG9naWNhbExlZnQpCitJbmxpbmVMYXlvdXRVbml0IFRleHRVdGlsOjp3aWR0aChjb25zdCBJ
bmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2Fz
Y2FkZSwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIElubGluZUxheW91dFVuaXQgY29udGVu
dExvZ2ljYWxMZWZ0LCBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24g
dXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uKQogewogICAgIFJFTEVB
U0VfQVNTRVJUKGZyb20gPj0gaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSk7CiAgICAgUkVMRUFTRV9B
U1NFUlQodG8gPD0gaW5saW5lVGV4dEl0ZW0uZW5kKCkpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIElu
bGluZUxheW91dFVuaXQgVGV4dFV0aWw6OndpZHRoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxp
bmVUZXh0SXRlbSwgY29uc3QgRm9uCiAgICAgICAgICAgICByZXR1cm4gc3RkOjppc25hbih3aWR0
aCkgPyAwLjBmIDogc3RkOjppc2luZih3aWR0aCkgPyBtYXhJbmxpbmVMYXlvdXRVbml0KCkgOiB3
aWR0aDsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gd2lkdGgoaW5saW5lVGV4dEl0ZW0u
aW5saW5lVGV4dEJveCgpLCBmb250Q2FzY2FkZSwgZnJvbSwgdG8sIGNvbnRlbnRMb2dpY2FsTGVm
dCk7CisgICAgcmV0dXJuIHdpZHRoKGlubGluZVRleHRJdGVtLmlubGluZVRleHRCb3goKSwgZm9u
dENhc2NhZGUsIGZyb20sIHRvLCBjb250ZW50TG9naWNhbExlZnQsIHVzZVRyYWlsaW5nV2hpdGVz
cGFjZU1lYXN1cmluZ09wdGltaXphdGlvbik7CiB9CiAKIElubGluZUxheW91dFVuaXQgVGV4dFV0
aWw6OnRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRl
eHRCb3gsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250Q2FzY2FkZSwgc2l6ZV90IHN0YXJ0UG9zaXRp
b24sIHNpemVfdCBlbmRQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaAppbmRl
eCA5NmMxNGEyMTJmMmIuLmEyNWY5NDVhZmM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3RleHQvVGV4dFV0
aWwuaApAQCAtNDMsMTAgKzQzLDkgQEAgY2xhc3MgSW5saW5lVGV4dEl0ZW07CiAKIGNsYXNzIFRl
eHRVdGlsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgSW5saW5lTGF5b3V0VW5pdCB3aWR0aChjb25z
dCBJbmxpbmVUZXh0SXRlbSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgSW5saW5lTGF5b3V0VW5pdCBj
b250ZW50TG9naWNhbExlZnQpOwotICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNv
bnN0IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCB1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCB0bywgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpOwotCiAgICAg
ZW51bSBjbGFzcyBVc2VUcmFpbGluZ1doaXRlc3BhY2VNZWFzdXJpbmdPcHRpbWl6YXRpb24gOiBi
b29sIHsgTm8sIFllcyB9OworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKGNvbnN0
IElubGluZVRleHRJdGVtJiwgY29uc3QgRm9udENhc2NhZGUmLCBJbmxpbmVMYXlvdXRVbml0IGNv
bnRlbnRMb2dpY2FsTGVmdCk7CisgICAgc3RhdGljIElubGluZUxheW91dFVuaXQgd2lkdGgoY29u
c3QgSW5saW5lVGV4dEl0ZW0mLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVkIGZyb20sIHVu
c2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwgVXNlVHJhaWxp
bmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJhaWxpbmdXaGl0ZXNwYWNl
TWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMpOwogICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0
IHdpZHRoKGNvbnN0IElubGluZVRleHRCb3gmLCBjb25zdCBGb250Q2FzY2FkZSYsIHVuc2lnbmVk
IGZyb20sIHVuc2lnbmVkIHRvLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCwg
VXNlVHJhaWxpbmdXaGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uID0gVXNlVHJhaWxpbmdX
aGl0ZXNwYWNlTWVhc3VyaW5nT3B0aW1pemF0aW9uOjpZZXMpOwogCiAgICAgc3RhdGljIElubGlu
ZUxheW91dFVuaXQgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGgoY29uc3QgSW5saW5lVGV4dEJveCYs
IGNvbnN0IEZvbnRDYXNjYWRlJiwgc2l6ZV90IHN0YXJ0UG9zaXRpb24sIHNpemVfdCBlbmRQb3Np
dGlvbik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>