<?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>265273</bug_id>
          
          <creation_ts>2023-11-22 20:24:19 -0800</creation_ts>
          <short_desc>[IFC] Remove redundant LineBuilder::initialConstraintsForLine</short_desc>
          <delta_ts>2023-12-12 21:52:09 -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>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>mungphimaynvdl</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>1994480</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2023-11-22 20:24:19 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1994481</commentid>
    <comment_count>1</comment_count>
      <attachid>468738</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-11-22 20:26:36 -0800</bug_when>
    <thetext>Created attachment 468738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1994542</commentid>
    <comment_count>2</comment_count>
      <attachid>468742</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-11-23 07:02:08 -0800</bug_when>
    <thetext>Created attachment 468742
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1994568</commentid>
    <comment_count>3</comment_count>
      <attachid>468745</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-11-23 10:27:28 -0800</bug_when>
    <thetext>Created attachment 468745
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1994575</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-11-23 11:52:33 -0800</bug_when>
    <thetext>Committed 271086@main (80b886c76bea): &lt;https://commits.webkit.org/271086@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 468745.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1994576</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-11-23 11:53:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/118752764&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468738</attachid>
            <date>2023-11-22 20:26:36 -0800</date>
            <delta_ts>2023-11-23 07:02:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-265273-20231122202636.patch</filename>
            <type>text/plain</type>
            <size>16711</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA5MzM5NTJmNDYzMTAwYjg2OTE1MmZmYzdkYmI1ZGMwZjc2YzRjMjllIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgMjIgTm92IDIwMjMgMjA6MjQ6MjggLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXSBS
ZW1vdmUgcmVkdW5kYW50IExpbmVCdWlsZGVyOjppbml0aWFsQ29uc3RyYWludHNGb3JMaW5lCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY1MjczCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCjEuIE1vdmUgbG9naWMgZnJvbSBpbml0aWFsQ29uc3RyYWludHNG
b3JMaW5lIG92ZXIgdG8gTGluZUJ1aWxkZXI6OmluaXRpYWxpemUKMi4gVHVybiBzdHJ1Y3QgVXNl
ZENvbnN0cmFpbnRzIHRvIGEgbW9yZSBzcGVjaWZpYyBzdHJ1Y3QgUmVjdEFuZEZsb2F0Q29uc3Ry
YWludHMuCjMuIFJlbmFtZSBmbG9hdENvbnN0cmFpbmVkUmVjdCB0byBmbG9hdEF2b2lkaW5nUmVj
dC4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZUJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6bGF5b3V0
SW5saW5lQ29udGVudCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjppbml0aWFsaXpl
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmZsb2F0QXZvaWRpbmdSZWN0IGNvbnN0
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmFkanVzdGVkTGluZVJlY3RXaXRoQ2Fu
ZGlkYXRlSW5saW5lQ29udGVudCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVy
Ojp0cnlQbGFjaW5nRmxvYXRCb3gpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6aGFu
ZGxlSW5saW5lQ29udGVudCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjppbml0aWFs
Q29uc3RyYWludHNGb3JMaW5lIGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dDo6TGlu
ZUJ1aWxkZXI6OmZsb2F0Q29uc3RyYWluZWRSZWN0IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRl
ci5oOgotLS0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwICAgICAgICAgICAgICB8
IDYyICsrKysrKysrKy0tLS0tLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaCAg
ICAgICAgICAgICAgICB8IDE3ICsrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMo
KyksIDQ0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVy
LmNwcAppbmRleCA4ZGVlYTFhOTEzOGYuLjNjMGMwNTk3YzBhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIExpbmVCdWlsZGVy
OjpMaW5lQnVpbGRlcihJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQsIEhvcml6CiBMaW5lTGF5b3V0UmVzdWx0IExpbmVCdWlsZGVyOjpsYXlvdXRJbmxpbmVD
b250ZW50KGNvbnN0IExpbmVJbnB1dCYgbGluZUlucHV0LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFBy
ZXZpb3VzTGluZT4mIHByZXZpb3VzTGluZSkKIHsKICAgICBhdXRvIHByZXZpb3VzTGluZUVuZHNX
aXRoTGluZUJyZWFrID0gIXByZXZpb3VzTGluZSB8fCAhcHJldmlvdXNMaW5lLT5oYXNJbmxpbmVD
b250ZW50ID8gc3RkOjpudWxsb3B0IDogc3RkOjptYWtlX29wdGlvbmFsKHByZXZpb3VzTGluZS0+
ZW5kc1dpdGhMaW5lQnJlYWspOwotICAgIGluaXRpYWxpemUobGluZUlucHV0LmluaXRpYWxMb2dp
Y2FsUmVjdCwgaW5pdGlhbENvbnN0cmFpbnRzRm9yTGluZShsaW5lSW5wdXQuaW5pdGlhbExvZ2lj
YWxSZWN0LCBwcmV2aW91c0xpbmVFbmRzV2l0aExpbmVCcmVhayksIGxpbmVJbnB1dC5uZWVkc0xh
eW91dFJhbmdlLCBwcmV2aW91c0xpbmUpOworICAgIGluaXRpYWxpemUobGluZUlucHV0LmluaXRp
YWxMb2dpY2FsUmVjdCwgbGluZUlucHV0Lm5lZWRzTGF5b3V0UmFuZ2UsIHByZXZpb3VzTGluZSwg
cHJldmlvdXNMaW5lRW5kc1dpdGhMaW5lQnJlYWspOwogICAgIGF1dG8gbGluZUNvbnRlbnQgPSBw
bGFjZUlubGluZUFuZEZsb2F0Q29udGVudChsaW5lSW5wdXQubmVlZHNMYXlvdXRSYW5nZSk7CiAg
ICAgYXV0byByZXN1bHQgPSBtX2xpbmUuY2xvc2UoKTsKIApAQCAtMjcyLDcgKzI3Miw3IEBAIExp
bmVMYXlvdXRSZXN1bHQgTGluZUJ1aWxkZXI6OmxheW91dElubGluZUNvbnRlbnQoY29uc3QgTGlu
ZUlucHV0JiBsaW5lSW5wdXQsIGNvCiAgICAgfTsKIH0KIAotdm9pZCBMaW5lQnVpbGRlcjo6aW5p
dGlhbGl6ZShjb25zdCBJbmxpbmVSZWN0JiBpbml0aWFsTGluZUxvZ2ljYWxSZWN0LCBjb25zdCBV
c2VkQ29uc3RyYWludHMmIGxpbmVDb25zdHJhaW50cywgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBu
ZWVkc0xheW91dFJhbmdlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFByZXZpb3VzTGluZT4mIHByZXZp
b3VzTGluZSkKK3ZvaWQgTGluZUJ1aWxkZXI6OmluaXRpYWxpemUoY29uc3QgSW5saW5lUmVjdCYg
aW5pdGlhbExpbmVMb2dpY2FsUmVjdCwgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91
dFJhbmdlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFByZXZpb3VzTGluZT4mIHByZXZpb3VzTGluZSwg
c3RkOjpvcHRpb25hbDxib29sPiBwcmV2aW91c0xpbmVFbmRzV2l0aExpbmVCcmVhaykKIHsKICAg
ICBBU1NFUlQoIW5lZWRzTGF5b3V0UmFuZ2UuaXNFbXB0eSgpIHx8IChwcmV2aW91c0xpbmUgJiYg
IXByZXZpb3VzTGluZS0+c3VzcGVuZGVkRmxvYXRzLmlzRW1wdHkoKSkpOwogCkBAIC0zMjMsMTUg
KzMyMywxNyBAQCB2b2lkIExpbmVCdWlsZGVyOjppbml0aWFsaXplKGNvbnN0IElubGluZVJlY3Qm
IGluaXRpYWxMaW5lTG9naWNhbFJlY3QsIGNvbnN0IFVzZQogICAgIG1fbGluZS5pbml0aWFsaXpl
KG1fbGluZVNwYW5uaW5nSW5saW5lQm94ZXMsIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkpOwogCiAg
ICAgbV9saW5lSW5pdGlhbExvZ2ljYWxSZWN0ID0gaW5pdGlhbExpbmVMb2dpY2FsUmVjdDsKLSAg
ICBtX2xpbmVNYXJnaW5TdGFydCA9IGxpbmVDb25zdHJhaW50cy5tYXJnaW5TdGFydDsKLSAgICBt
X2xpbmVMb2dpY2FsUmVjdCA9IGxpbmVDb25zdHJhaW50cy5sb2dpY2FsUmVjdDsKKyAgICBtX2xp
bmVNYXJnaW5TdGFydCA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZm9ybWF0dGluZ1V0aWxzKCkuY29t
cHV0ZWRUZXh0SW5kZW50KGlzSW5JbnRyaW5zaWNXaWR0aE1vZGUoKSA/IElubGluZUZvcm1hdHRp
bmdVdGlsczo6SXNJbnRyaW5zaWNXaWR0aE1vZGU6OlllcyA6IElubGluZUZvcm1hdHRpbmdVdGls
czo6SXNJbnRyaW5zaWNXaWR0aE1vZGU6Ok5vLCBwcmV2aW91c0xpbmVFbmRzV2l0aExpbmVCcmVh
aywgaW5pdGlhbExpbmVMb2dpY2FsUmVjdC53aWR0aCgpKTsKKworICAgIGF1dG8gY29uc3RyYWlu
dHMgPSBmbG9hdEF2b2lkaW5nUmVjdChpbml0aWFsTGluZUxvZ2ljYWxSZWN0LCB7IH0pOworICAg
IG1fbGluZUxvZ2ljYWxSZWN0ID0gY29uc3RyYWludHMubG9naWNhbFJlY3Q7CisgICAgbV9saW5l
SXNDb25zdHJhaW5lZEJ5RmxvYXQgPSBjb25zdHJhaW50cy5jb25zdHJhaW5lZFNpZGVTZXQ7CiAg
ICAgLy8gVGhpcyBpcyBieSBob3cgbXVjaCBpbnRydXNpdmUgZmxvYXRzIChjb21pbmcgZnJvbSBw
YXJlbnQvc2libGluZyBGQ3MpIGluaXRpYWxseSBvZmZzZXQgdGhlIGxpbmUuCiAgICAgbV9pbml0
aWFsSW50cnVzaXZlRmxvYXRzV2lkdGggPSBtX2xpbmVMb2dpY2FsUmVjdC5sZWZ0KCkgLSBpbml0
aWFsTGluZUxvZ2ljYWxSZWN0LmxlZnQoKTsKICAgICBtX2xpbmVMb2dpY2FsUmVjdC5tb3ZlSG9y
aXpvbnRhbGx5KG1fbGluZU1hcmdpblN0YXJ0KTsKICAgICAvLyBXaGlsZSBuZWdhdGl2ZSBtYXJn
aW5zIG5vcm1hbGx5IGRvbid0IGV4cGFuZCB0aGUgYXZhaWxhYmxlIHNwYWNlLCBwcmVmZXJyZWQg
d2lkdGggY29tcHV0YXRpb24gZ2V0cyBjb25mdXNlZCBieSBuZWdhdGl2ZSB0ZXh0LWluZGVudAog
ICAgIC8vIChzaHJpbmsgdGhlIHNwYWNlIG5lZWRlZCBmb3IgdGhlIGNvbnRlbnQpIHdoaWNoIHdl
IGhhdmUgdG8gYmFsYW5jZSBpdCBoZXJlLgogICAgIG1fbGluZUxvZ2ljYWxSZWN0LmV4cGFuZEhv
cml6b250YWxseSgtbV9saW5lTWFyZ2luU3RhcnQpOwotICAgIG1fbGluZUlzQ29uc3RyYWluZWRC
eUZsb2F0ID0gbGluZUNvbnN0cmFpbnRzLmlzQ29uc3RyYWluZWRCeUZsb2F0OwogCiAgICAgYXV0
byBpbml0aWFsaXplTGVhZGluZ0NvbnRlbnRGcm9tT3ZlcmZsb3cgPSBbJl0gewogICAgICAgICBp
ZiAoIXByZXZpb3VzTGluZSB8fCAhbmVlZHNMYXlvdXRSYW5nZS5zdGFydC5vZmZzZXQpCkBAIC01
MjksMTQgKzUzMSw2IEBAIExpbmVDb250ZW50IExpbmVCdWlsZGVyOjpwbGFjZUlubGluZUFuZEZs
b2F0Q29udGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIG5lZWRzCiAgICAgcmV0dXJuIGxpbmVD
b250ZW50OwogfQogCi1MaW5lQnVpbGRlcjo6VXNlZENvbnN0cmFpbnRzIExpbmVCdWlsZGVyOjpp
bml0aWFsQ29uc3RyYWludHNGb3JMaW5lKGNvbnN0IElubGluZVJlY3QmIGluaXRpYWxMaW5lTG9n
aWNhbFJlY3QsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcHJldmlvdXNMaW5lRW5kc1dpdGhMaW5lQnJl
YWspIGNvbnN0Ci17Ci0gICAgYXV0byBpc0ludHJpbnNpY1dpZHRoTW9kZSA9IGlzSW5JbnRyaW5z
aWNXaWR0aE1vZGUoKSA/IElubGluZUZvcm1hdHRpbmdVdGlsczo6SXNJbnRyaW5zaWNXaWR0aE1v
ZGU6OlllcyA6IElubGluZUZvcm1hdHRpbmdVdGlsczo6SXNJbnRyaW5zaWNXaWR0aE1vZGU6Ok5v
OwotICAgIGF1dG8gY29uc3RyYWludHMgPSBmbG9hdENvbnN0cmFpbmVkUmVjdChpbml0aWFsTGlu
ZUxvZ2ljYWxSZWN0LCB7IH0pOwotICAgIGNvbnN0cmFpbnRzLm1hcmdpblN0YXJ0ID0gZm9ybWF0
dGluZ0NvbnRleHQoKS5mb3JtYXR0aW5nVXRpbHMoKS5jb21wdXRlZFRleHRJbmRlbnQoaXNJbnRy
aW5zaWNXaWR0aE1vZGUsIHByZXZpb3VzTGluZUVuZHNXaXRoTGluZUJyZWFrLCBpbml0aWFsTGlu
ZUxvZ2ljYWxSZWN0LndpZHRoKCkpOwotICAgIHJldHVybiBjb25zdHJhaW50czsKLX0KLQogSW5s
aW5lTGF5b3V0VW5pdCBMaW5lQnVpbGRlcjo6bGVhZGluZ1B1bmN0dWF0aW9uV2lkdGhGb3JMaW5l
Q2FuZGlhdGUoc2l6ZV90IGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCwgc2l6ZV90IGNhbmRpZGF0
ZUNvbnRlbnRTdGFydEluZGV4KSBjb25zdAogewogICAgIGF1dG8gaXNGaXJzdExpbmVGaXJzdENv
bnRlbnQgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpICYmICFtX2xpbmUuaGFzQ29udGVudCgpOwpA
QCAtNzQ4LDMxICs3NDIsMzEgQEAgc3RhdGljIGlubGluZSBJbmxpbmVMYXlvdXRVbml0IGF2YWls
YWJsZVdpZHRoKGNvbnN0IExpbmVDYW5kaWRhdGU6OklubGluZUNvbnRlbnQKICAgICByZXR1cm4g
c3RkOjppc25hbihhdmFpbGFibGVXaWR0aCkgPyBtYXhJbmxpbmVMYXlvdXRVbml0KCkgOiAoYXZh
aWxhYmxlV2lkdGggKyBjYW5kaWRhdGVDb250ZW50LmFjY3VtdWxhdGVkQ2xvbmVkRGVjb3JhdGlv
bkVuZCgpKTsKIH0KIAotTGluZUJ1aWxkZXI6OlVzZWRDb25zdHJhaW50cyBMaW5lQnVpbGRlcjo6
ZmxvYXRDb25zdHJhaW5lZFJlY3QoY29uc3QgSW5saW5lUmVjdCYgbG9naWNhbFJlY3QsIElubGlu
ZUxheW91dFVuaXQgbWFyZ2luU3RhcnQpIGNvbnN0CitMaW5lQnVpbGRlcjo6UmVjdEFuZEZsb2F0
Q29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmZsb2F0QXZvaWRpbmdSZWN0KGNvbnN0IElubGluZVJl
Y3QmIGxvZ2ljYWxSZWN0LCBJbmxpbmVMYXlvdXRVbml0IGxpbmVNYXJnaW5TdGFydCkgY29uc3QK
IHsKLSAgICBhdXRvIGNvbnN0cmFpbnRzID0gWyZdKCkgLT4gTGluZUJ1aWxkZXI6OlVzZWRDb25z
dHJhaW50cyB7CisgICAgYXV0byBjb25zdHJhaW50cyA9IFsmXSgpIC0+IExpbmVCdWlsZGVyOjpS
ZWN0QW5kRmxvYXRDb25zdHJhaW50cyB7CiAgICAgICAgIGlmIChpc0luSW50cmluc2ljV2lkdGhN
b2RlKCkgfHwgZmxvYXRpbmdDb250ZXh0KCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJu
IHsgbG9naWNhbFJlY3QsIG1hcmdpblN0YXJ0LCB7IH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7
IGxvZ2ljYWxSZWN0LCB7IH0gfTsKIAogICAgICAgICBhdXRvIGNvbnN0cmFpbnRzID0gZm9ybWF0
dGluZ0NvbnRleHQoKS5mb3JtYXR0aW5nVXRpbHMoKS5mbG9hdENvbnN0cmFpbnRzRm9yTGluZShs
b2dpY2FsUmVjdC50b3AoKSwgbG9naWNhbFJlY3QuaGVpZ2h0KCksIGZsb2F0aW5nQ29udGV4dCgp
KTsKICAgICAgICAgaWYgKCFjb25zdHJhaW50cy5sZWZ0ICYmICFjb25zdHJhaW50cy5yaWdodCkK
LSAgICAgICAgICAgIHJldHVybiB7IGxvZ2ljYWxSZWN0LCBtYXJnaW5TdGFydCwgeyB9IH07Cisg
ICAgICAgICAgICByZXR1cm4geyBsb2dpY2FsUmVjdCwgeyB9IH07CiAKLSAgICAgICAgYXV0byBp
c0NvbnN0cmFpbmVkQnlGbG9hdCA9IE9wdGlvblNldDxVc2VkRmxvYXQ+IHsgfTsKKyAgICAgICAg
YXV0byBjb25zdHJhaW5lZFNpZGVTZXQgPSBPcHRpb25TZXQ8VXNlZEZsb2F0PiB7IH07CiAgICAg
ICAgIC8vIHRleHQtaW5kZW50IGFjdHMgYXMgKHN0YXJ0KW1hcmdpbiBvbiB0aGUgbGluZS4gV2hl
biBsb29raW5nIGZvciBpbnRydXNpdmUgZmxvYXRzIHdlIG5lZWQgdG8gY2hlY2sgYWdhaW5zdCB0
aGUgbGluZSdzIF9tYXJnaW5fIGJveC4KLSAgICAgICAgYXV0byBtYXJnaW5Cb3hSZWN0ID0gSW5s
aW5lUmVjdCB7IGxvZ2ljYWxSZWN0LnRvcCgpLCBsb2dpY2FsUmVjdC5sZWZ0KCkgLSBtYXJnaW5T
dGFydCwgbG9naWNhbFJlY3Qud2lkdGgoKSArIG1hcmdpblN0YXJ0LCBsb2dpY2FsUmVjdC5oZWln
aHQoKSB9OworICAgICAgICBhdXRvIG1hcmdpbkJveFJlY3QgPSBJbmxpbmVSZWN0IHsgbG9naWNh
bFJlY3QudG9wKCksIGxvZ2ljYWxSZWN0LmxlZnQoKSAtIGxpbmVNYXJnaW5TdGFydCwgbG9naWNh
bFJlY3Qud2lkdGgoKSArIGxpbmVNYXJnaW5TdGFydCwgbG9naWNhbFJlY3QuaGVpZ2h0KCkgfTsK
IAogICAgICAgICBpZiAoY29uc3RyYWludHMubGVmdCAmJiBjb25zdHJhaW50cy5sZWZ0LT54ID4g
bWFyZ2luQm94UmVjdC5sZWZ0KCkpIHsKICAgICAgICAgICAgIG1hcmdpbkJveFJlY3Quc2hpZnRM
ZWZ0VG8oY29uc3RyYWludHMubGVmdC0+eCk7Ci0gICAgICAgICAgICBpc0NvbnN0cmFpbmVkQnlG
bG9hdC5hZGQoVXNlZEZsb2F0OjpMZWZ0KTsKKyAgICAgICAgICAgIGNvbnN0cmFpbmVkU2lkZVNl
dC5hZGQoVXNlZEZsb2F0OjpMZWZ0KTsKICAgICAgICAgfQogICAgICAgICBpZiAoY29uc3RyYWlu
dHMucmlnaHQgJiYgY29uc3RyYWludHMucmlnaHQtPnggPCBtYXJnaW5Cb3hSZWN0LnJpZ2h0KCkp
IHsKICAgICAgICAgICAgIG1hcmdpbkJveFJlY3Quc2V0UmlnaHQoc3RkOjptYXg8SW5saW5lTGF5
b3V0VW5pdD4obWFyZ2luQm94UmVjdC5sZWZ0KCksIGNvbnN0cmFpbnRzLnJpZ2h0LT54KSk7Ci0g
ICAgICAgICAgICBpc0NvbnN0cmFpbmVkQnlGbG9hdC5hZGQoVXNlZEZsb2F0OjpSaWdodCk7Cisg
ICAgICAgICAgICBjb25zdHJhaW5lZFNpZGVTZXQuYWRkKFVzZWRGbG9hdDo6UmlnaHQpOwogICAg
ICAgICB9CiAKLSAgICAgICAgYXV0byBsaW5lTG9naWNhbFJlY3QgPSBJbmxpbmVSZWN0IHsgbWFy
Z2luQm94UmVjdC50b3AoKSwgbWFyZ2luQm94UmVjdC5sZWZ0KCkgKyBtYXJnaW5TdGFydCwgbWFy
Z2luQm94UmVjdC53aWR0aCgpIC0gbWFyZ2luU3RhcnQsIG1hcmdpbkJveFJlY3QuaGVpZ2h0KCkg
fTsKLSAgICAgICAgcmV0dXJuIHsgbGluZUxvZ2ljYWxSZWN0LCBtYXJnaW5TdGFydCwgaXNDb25z
dHJhaW5lZEJ5RmxvYXQgfTsKKyAgICAgICAgYXV0byBsaW5lTG9naWNhbFJlY3QgPSBJbmxpbmVS
ZWN0IHsgbWFyZ2luQm94UmVjdC50b3AoKSwgbWFyZ2luQm94UmVjdC5sZWZ0KCkgKyBsaW5lTWFy
Z2luU3RhcnQsIG1hcmdpbkJveFJlY3Qud2lkdGgoKSAtIGxpbmVNYXJnaW5TdGFydCwgbWFyZ2lu
Qm94UmVjdC5oZWlnaHQoKSB9OworICAgICAgICByZXR1cm4geyBsaW5lTG9naWNhbFJlY3QsIGNv
bnN0cmFpbmVkU2lkZVNldCB9OwogICAgIH0oKTsKIAogICAgIGlmIChhdXRvIGFkanVzdGVkUmVj
dCA9IGZvcm1hdHRpbmdDb250ZXh0KCkucXVpcmtzKCkuYWRqdXN0ZWRSZWN0Rm9yTGluZUdyaWRM
aW5lQWxpZ24oY29uc3RyYWludHMubG9naWNhbFJlY3QpKQpAQCAtNzgxLDcgKzc3NSw3IEBAIExp
bmVCdWlsZGVyOjpVc2VkQ29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmZsb2F0Q29uc3RyYWluZWRS
ZWN0KGNvbnN0IElubGluZVJlY3QmCiAgICAgcmV0dXJuIGNvbnN0cmFpbnRzOwogfQogCi1MaW5l
QnVpbGRlcjo6VXNlZENvbnN0cmFpbnRzIExpbmVCdWlsZGVyOjphZGp1c3RlZExpbmVSZWN0V2l0
aENhbmRpZGF0ZUlubGluZUNvbnRlbnQoY29uc3QgTGluZUNhbmRpZGF0ZSYgbGluZUNhbmRpZGF0
ZSkgY29uc3QKK0xpbmVCdWlsZGVyOjpSZWN0QW5kRmxvYXRDb25zdHJhaW50cyBMaW5lQnVpbGRl
cjo6YWRqdXN0ZWRMaW5lUmVjdFdpdGhDYW5kaWRhdGVJbmxpbmVDb250ZW50KGNvbnN0IExpbmVD
YW5kaWRhdGUmIGxpbmVDYW5kaWRhdGUpIGNvbnN0CiB7CiAgICAgLy8gQ2hlY2sgaWYgdGhlIGNh
bmRpZGF0ZSBjb250ZW50IHdvdWxkIHN0cmV0Y2ggdGhlIGxpbmUgYW5kIHdoZXRoZXIgYWRkaXRp
b25hbCBmbG9hdHMgYXJlIGdldHRpbmcgaW4gdGhlIHdheS4KICAgICBhdXRvJiBpbmxpbmVDb250
ZW50ID0gbGluZUNhbmRpZGF0ZS5pbmxpbmVDb250ZW50OwpAQCAtODAxLDcgKzc5NSw3IEBAIExp
bmVCdWlsZGVyOjpVc2VkQ29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmFkanVzdGVkTGluZVJlY3RX
aXRoQ2FuZGlkYXRlSW5saW5lQ29uCiAgICAgaWYgKGNhbmRpZGF0ZUNvbnRlbnRIZWlnaHQgPD0g
bV9saW5lTG9naWNhbFJlY3QuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiB7IG1fbGluZUxvZ2lj
YWxSZWN0IH07CiAKLSAgICByZXR1cm4gZmxvYXRDb25zdHJhaW5lZFJlY3QoeyBtX2xpbmVMb2dp
Y2FsUmVjdC50b3BMZWZ0KCksIG1fbGluZUxvZ2ljYWxSZWN0LndpZHRoKCksIGNhbmRpZGF0ZUNv
bnRlbnRIZWlnaHQgfSwgbV9saW5lTWFyZ2luU3RhcnQpOworICAgIHJldHVybiBmbG9hdEF2b2lk
aW5nUmVjdCh7IG1fbGluZUxvZ2ljYWxSZWN0LnRvcExlZnQoKSwgbV9saW5lTG9naWNhbFJlY3Qu
d2lkdGgoKSwgY2FuZGlkYXRlQ29udGVudEhlaWdodCB9LCBtX2xpbmVNYXJnaW5TdGFydCk7CiB9
CiAKIHN0ZDo6b3B0aW9uYWw8TGluZUJ1aWxkZXI6OkluaXRpYWxMZXR0ZXJPZmZzZXRzPiBMaW5l
QnVpbGRlcjo6YWRqdXN0TGluZVJlY3RGb3JJbml0aWFsTGV0dGVySWZBcHBsaWNhYmxlKGNvbnN0
IEJveCYgZmxvYXRCb3gpCkBAIC05NzQsOSArOTY4LDkgQEAgYm9vbCBMaW5lQnVpbGRlcjo6dHJ5
UGxhY2luZ0Zsb2F0Qm94KGNvbnN0IEJveCYgZmxvYXRCb3gsIE1heU92ZXJDb25zdHJhaW5MaW5l
IG0KICAgICAgICAgICAgIC8vIFRoaXMgZmxvYXQgaXMgcGxhY2VkIG91dHNpZGUgdGhlIGxpbmUg
Ym94LiBObyBuZWVkIHRvIHNocmluayB0aGUgY3VycmVudCBsaW5lLgogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9Ci0gICAgICAgIGF1dG8gdXNlZENvbnN0cmFpbnRzID0gZmxvYXRDb25z
dHJhaW5lZFJlY3QobV9saW5lTG9naWNhbFJlY3QsIG1fbGluZU1hcmdpblN0YXJ0KTsKLSAgICAg
ICAgbV9saW5lTG9naWNhbFJlY3QgPSB1c2VkQ29uc3RyYWludHMubG9naWNhbFJlY3Q7Ci0gICAg
ICAgIG1fbGluZUlzQ29uc3RyYWluZWRCeUZsb2F0LmFkZCh1c2VkQ29uc3RyYWludHMuaXNDb25z
dHJhaW5lZEJ5RmxvYXQpOworICAgICAgICBhdXRvIGNvbnN0cmFpbnRzID0gZmxvYXRBdm9pZGlu
Z1JlY3QobV9saW5lTG9naWNhbFJlY3QsIG1fbGluZU1hcmdpblN0YXJ0KTsKKyAgICAgICAgbV9s
aW5lTG9naWNhbFJlY3QgPSBjb25zdHJhaW50cy5sb2dpY2FsUmVjdDsKKyAgICAgICAgbV9saW5l
SXNDb25zdHJhaW5lZEJ5RmxvYXQuYWRkKGNvbnN0cmFpbnRzLmNvbnN0cmFpbmVkU2lkZVNldCk7
CiAgICAgfTsKICAgICBhZGp1c3RMaW5lUmVjdElmTmVlZGVkKCk7CiAKQEAgLTk5NSwxMyArOTg5
LDEzIEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxkZXI6OmhhbmRsZUlubGluZUNvbnRl
bnQoY29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogCi0gICAgYXV0byB1c2VkQ29uc3RyYWludHMgPSBhZGp1c3RlZExpbmVSZWN0V2l0aENh
bmRpZGF0ZUlubGluZUNvbnRlbnQobGluZUNhbmRpZGF0ZSk7CisgICAgYXV0byBjb25zdHJhaW50
cyA9IGFkanVzdGVkTGluZVJlY3RXaXRoQ2FuZGlkYXRlSW5saW5lQ29udGVudChsaW5lQ2FuZGlk
YXRlKTsKICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRlQ29udGVudCA9IFsmXSB7
CiAgICAgICAgIGF1dG8gbGluZUluZGV4ID0gbV9wcmV2aW91c0xpbmUgPyAobV9wcmV2aW91c0xp
bmUtPmxpbmVJbmRleCArIDEpIDogMGx1OwogICAgICAgICAvLyBJZiB3aWR0aCBjb25zdHJhaW50
IG92ZXJyaWRlcyBleGlzdCAoZS5nLiB0ZXh0LXdyYXA6IGJhbGFuY2UpLCBtb2RpZnkgdGhlIGF2
YWlsYWJsZSB3aWR0aCBhY2NvcmRpbmdseS4KICAgICAgICAgY29uc3QgYXV0byYgYXZhaWxhYmxl
TGluZVdpZHRoT3ZlcnJpZGUgPSBsYXlvdXRTdGF0ZSgpLmF2YWlsYWJsZUxpbmVXaWR0aE92ZXJy
aWRlKCk7CiAgICAgICAgIGF1dG8gd2lkdGhPdmVycmlkZSA9IGF2YWlsYWJsZUxpbmVXaWR0aE92
ZXJyaWRlLmF2YWlsYWJsZUxpbmVXaWR0aE92ZXJyaWRlRm9yTGluZShsaW5lSW5kZXgpOwotICAg
ICAgICBhdXRvIGF2YWlsYWJsZVRvdGFsV2lkdGhGb3JDb250ZW50ID0gd2lkdGhPdmVycmlkZSA/
IElubGluZUxheW91dFVuaXQgeyB3aWR0aE92ZXJyaWRlLnZhbHVlKCkgfSAtIG1fbGluZU1hcmdp
blN0YXJ0IDogdXNlZENvbnN0cmFpbnRzLmxvZ2ljYWxSZWN0LndpZHRoKCk7CisgICAgICAgIGF1
dG8gYXZhaWxhYmxlVG90YWxXaWR0aEZvckNvbnRlbnQgPSB3aWR0aE92ZXJyaWRlID8gSW5saW5l
TGF5b3V0VW5pdCB7IHdpZHRoT3ZlcnJpZGUudmFsdWUoKSB9IC0gbV9saW5lTWFyZ2luU3RhcnQg
OiBjb25zdHJhaW50cy5sb2dpY2FsUmVjdC53aWR0aCgpOwogICAgICAgICByZXR1cm4gYXZhaWxh
YmxlV2lkdGgoaW5saW5lQ29udGVudCwgbV9saW5lLCBhdmFpbGFibGVUb3RhbFdpZHRoRm9yQ29u
dGVudCk7CiAgICAgfSgpOwogCkBAIC0xMDA5LDcgKzEwMDMsNyBAQCBMaW5lQnVpbGRlcjo6UmVz
dWx0IExpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250ZW50KGNvbnN0IElubGluZUl0ZW1SYW5n
ZSYgbGF5bwogICAgIGlmICghaW5saW5lQ29udGVudC5pc1J1YnkoKSkgewogICAgICAgICBhdXRv
IGxpbmVCcmVha2luZ1Jlc3VsdCA9IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQgeyBJbmxp
bmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OktlZXAsIElubGluZUNvbnRlbnRCcmVh
a2VyOjpJc0VuZE9mTGluZTo6Tm8sIHsgfSwgeyB9IH07CiAgICAgICAgIGlmIChjb250aW51b3Vz
SW5saW5lQ29udGVudC5sb2dpY2FsV2lkdGgoKSA+IGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRl
Q29udGVudCkgewotICAgICAgICAgICAgYXV0byBsaW5lSXNDb25zaWRlcmVkQ29udGVudGZ1bCA9
IG1fbGluZS5oYXNDb250ZW50T3JMaXN0TWFya2VyKCkgfHwgaXNMaW5lQ29uc3RyYWluZWRCeUZs
b2F0KCkgfHwgIXVzZWRDb25zdHJhaW50cy5pc0NvbnN0cmFpbmVkQnlGbG9hdC5pc0VtcHR5KCk7
CisgICAgICAgICAgICBhdXRvIGxpbmVJc0NvbnNpZGVyZWRDb250ZW50ZnVsID0gbV9saW5lLmhh
c0NvbnRlbnRPckxpc3RNYXJrZXIoKSB8fCBpc0xpbmVDb25zdHJhaW5lZEJ5RmxvYXQoKSB8fCAh
Y29uc3RyYWludHMuY29uc3RyYWluZWRTaWRlU2V0LmlzRW1wdHkoKTsKICAgICAgICAgICAgIGF1
dG8gbGluZVN0YXR1cyA9IElubGluZUNvbnRlbnRCcmVha2VyOjpMaW5lU3RhdHVzIHsgbV9saW5l
LmNvbnRlbnRMb2dpY2FsUmlnaHQoKSwgYXZhaWxhYmxlV2lkdGhGb3JDYW5kaWRhdGVDb250ZW50
LCBtX2xpbmUudHJpbW1hYmxlVHJhaWxpbmdXaWR0aCgpLCBtX2xpbmUudHJhaWxpbmdTb2Z0SHlw
aGVuV2lkdGgoKSwgbV9saW5lLmlzVHJhaWxpbmdSdW5GdWxseVRyaW1tYWJsZSgpLCBsaW5lSXND
b25zaWRlcmVkQ29udGVudGZ1bCwgIW1fd3JhcE9wcG9ydHVuaXR5TGlzdC5pc0VtcHR5KCkgfTsK
ICAgICAgICAgICAgIGxpbmVCcmVha2luZ1Jlc3VsdCA9IGlubGluZUNvbnRlbnRCcmVha2VyKCku
cHJvY2Vzc0lubGluZUNvbnRlbnQoY29udGludW91c0lubGluZUNvbnRlbnQsIGxpbmVTdGF0dXMp
OwogICAgICAgICAgICAgbGluZUdhaW5zTmV3Q29udGVudCA9IGxpbmVCcmVha2luZ1Jlc3VsdC5h
Y3Rpb24gPT0gSW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpLZWVwIHx8IGxp
bmVCcmVha2luZ1Jlc3VsdC5hY3Rpb24gPT0gSW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6
QWN0aW9uOjpCcmVhazsKQEAgLTEwMjMsMTAgKzEwMTcsMTAgQEAgTGluZUJ1aWxkZXI6OlJlc3Vs
dCBMaW5lQnVpbGRlcjo6aGFuZGxlSW5saW5lQ29udGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2Um
IGxheW8KICAgICBpZiAobGluZUdhaW5zTmV3Q29udGVudCkgewogICAgICAgICAvLyBTb21ldGlt
ZXMgaW4gb3JkZXIgdG8gcHV0IHRoaXMgY29udGVudCBvbiB0aGUgbGluZSwgd2UgaGF2ZSB0byBh
dm9pZCBhZGRpdGlvbmFsIGZsb2F0IGJveGVzICh3aGVuIHRoZSBuZXcgY29udGVudCBpcyB0YWxs
ZXIgdGhhbiBhbnkgcHJldmlvdXMgY29udGVudCBhbmQgd2UgaGF2ZSB2ZXJ0aWNhbGx5IHN0YWNr
ZWQgZmxvYXRzIG9uIHRoaXMgbGluZSkKICAgICAgICAgLy8gd2hpY2ggbWVhbnMgd2UgbmVlZCB0
byBhZGp1c3QgdGhlIGxpbmUgcmVjdCB0byBhY2NvbW1vZGF0ZSBzdWNoIG5ldyBjb25zdHJhaW50
cy4KLSAgICAgICAgbV9saW5lTG9naWNhbFJlY3QgPSB1c2VkQ29uc3RyYWludHMubG9naWNhbFJl
Y3Q7Ci0gICAgICAgIG1fbGluZUlzQ29uc3RyYWluZWRCeUZsb2F0LmFkZCh1c2VkQ29uc3RyYWlu
dHMuaXNDb25zdHJhaW5lZEJ5RmxvYXQpOworICAgICAgICBtX2xpbmVMb2dpY2FsUmVjdCA9IGNv
bnN0cmFpbnRzLmxvZ2ljYWxSZWN0OworICAgICAgICBtX2xpbmVJc0NvbnN0cmFpbmVkQnlGbG9h
dC5hZGQoY29uc3RyYWludHMuY29uc3RyYWluZWRTaWRlU2V0KTsKICAgICB9Ci0gICAgbV9jYW5k
aWRhdGVDb250ZW50TWF4aW11bUhlaWdodCA9IHVzZWRDb25zdHJhaW50cy5sb2dpY2FsUmVjdC5o
ZWlnaHQoKTsKKyAgICBtX2NhbmRpZGF0ZUNvbnRlbnRNYXhpbXVtSGVpZ2h0ID0gY29uc3RyYWlu
dHMubG9naWNhbFJlY3QuaGVpZ2h0KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmgKaW5kZXggMTQ2YmRmMjIwMzU1Li40NWFlNjdm
YjYxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaApAQCAtNDksMTQg
KzQ5LDYgQEAgcHJpdmF0ZToKICAgICBJbmxpbmVMYXlvdXRVbml0IGxlYWRpbmdQdW5jdHVhdGlv
bldpZHRoRm9yTGluZUNhbmRpYXRlKHNpemVfdCBmaXJzdElubGluZVRleHRJdGVtSW5kZXgsIHNp
emVfdCBjYW5kaWRhdGVDb250ZW50U3RhcnRJbmRleCkgY29uc3Q7CiAgICAgSW5saW5lTGF5b3V0
VW5pdCB0cmFpbGluZ1B1bmN0dWF0aW9uT3JTdG9wT3JDb21tYVdpZHRoRm9yTGluZUNhbmRpYXRl
KHNpemVfdCBsYXN0SW5saW5lVGV4dEl0ZW1JbmRleCwgc2l6ZV90IGxheW91dFJhbmdlRW5kKSBj
b25zdDsKIAotICAgIHN0cnVjdCBVc2VkQ29uc3RyYWludHMgewotICAgICAgICBJbmxpbmVSZWN0
IGxvZ2ljYWxSZWN0OwotICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1hcmdpblN0YXJ0IHsgMCB9
OwotICAgICAgICBPcHRpb25TZXQ8VXNlZEZsb2F0PiBpc0NvbnN0cmFpbmVkQnlGbG9hdCB7IH07
Ci0gICAgfTsKLSAgICBVc2VkQ29uc3RyYWludHMgaW5pdGlhbENvbnN0cmFpbnRzRm9yTGluZShj
b25zdCBJbmxpbmVSZWN0JiBpbml0aWFsTGluZUxvZ2ljYWxSZWN0LCBzdGQ6Om9wdGlvbmFsPGJv
b2w+IHByZXZpb3VzTGluZUVuZHNXaXRoTGluZUJyZWFrKSBjb25zdDsKLSAgICBVc2VkQ29uc3Ry
YWludHMgZmxvYXRDb25zdHJhaW5lZFJlY3QoY29uc3QgSW5saW5lUmVjdCYgbGluZUxvZ2ljYWxS
ZWN0LCBJbmxpbmVMYXlvdXRVbml0IG1hcmdpblN0YXJ0KSBjb25zdDsKLQogICAgIHN0cnVjdCBS
ZXN1bHQgewogICAgICAgICBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmUgaXNFbmRP
ZkxpbmUgeyBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6Ok5vIH07CiAgICAgICAg
IHN0cnVjdCBDb21taXR0ZWRDb250ZW50Q291bnQgewpAQCAtNzIsMTEgKzY0LDE2IEBAIHByaXZh
dGU6CiAgICAgUmVzdWx0IGhhbmRsZUlubGluZUNvbnRlbnQoY29uc3QgSW5saW5lSXRlbVJhbmdl
JiBuZWVkc0xheW91dFJhbmdlLCBjb25zdCBMaW5lQ2FuZGlkYXRlJik7CiAgICAgUmVzdWx0IGhh
bmRsZVJ1YnlDb250ZW50KGNvbnN0IElubGluZUl0ZW1SYW5nZSYgcnVieUNvbnRhaW5lclJhbmdl
LCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRlQ29udGVudCk7CiAg
ICAgUmVzdWx0IHByb2Nlc3NMaW5lQnJlYWtpbmdSZXN1bHQoY29uc3QgTGluZUNhbmRpZGF0ZSYs
IGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbGF5b3V0UmFuZ2UsIGNvbnN0IElubGluZUNvbnRlbnRC
cmVha2VyOjpSZXN1bHQmKTsKLSAgICBVc2VkQ29uc3RyYWludHMgYWRqdXN0ZWRMaW5lUmVjdFdp
dGhDYW5kaWRhdGVJbmxpbmVDb250ZW50KGNvbnN0IExpbmVDYW5kaWRhdGUmKSBjb25zdDsKKyAg
ICBzdHJ1Y3QgUmVjdEFuZEZsb2F0Q29uc3RyYWludHMgeworICAgICAgICBJbmxpbmVSZWN0IGxv
Z2ljYWxSZWN0OworICAgICAgICBPcHRpb25TZXQ8VXNlZEZsb2F0PiBjb25zdHJhaW5lZFNpZGVT
ZXQgeyB9OworICAgIH07CisgICAgUmVjdEFuZEZsb2F0Q29uc3RyYWludHMgZmxvYXRBdm9pZGlu
Z1JlY3QoY29uc3QgSW5saW5lUmVjdCYgbGluZUxvZ2ljYWxSZWN0LCBJbmxpbmVMYXlvdXRVbml0
IGxpbmVNYXJnaW5TdGFydCkgY29uc3Q7CisgICAgUmVjdEFuZEZsb2F0Q29uc3RyYWludHMgYWRq
dXN0ZWRMaW5lUmVjdFdpdGhDYW5kaWRhdGVJbmxpbmVDb250ZW50KGNvbnN0IExpbmVDYW5kaWRh
dGUmKSBjb25zdDsKICAgICBzaXplX3QgcmVidWlsZExpbmVXaXRoSW5saW5lQ29udGVudChjb25z
dCBJbmxpbmVJdGVtUmFuZ2UmIG5lZWRzTGF5b3V0UmFuZ2UsIGNvbnN0IElubGluZUl0ZW0mIGxh
c3RJbmxpbmVJdGVtVG9BZGQpOwogICAgIHNpemVfdCByZWJ1aWxkTGluZUZvclRyYWlsaW5nU29m
dEh5cGhlbihjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlKTsKICAgICB2b2lkIGNv
bW1pdFBhcnRpYWxDb250ZW50KGNvbnN0IElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3Vz
Q29udGVudDo6UnVuTGlzdCYsIGNvbnN0IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ6OlBh
cnRpYWxUcmFpbGluZ0NvbnRlbnQmKTsKLSAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW5saW5l
UmVjdCYgaW5pdGlhbExpbmVMb2dpY2FsUmVjdCwgY29uc3QgVXNlZENvbnN0cmFpbnRzJiwgY29u
c3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91dFJhbmdlLCBjb25zdCBzdGQ6Om9wdGlvbmFs
PFByZXZpb3VzTGluZT4mKTsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW5saW5lUmVjdCYg
aW5pdGlhbExpbmVMb2dpY2FsUmVjdCwgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91
dFJhbmdlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFByZXZpb3VzTGluZT4mLCAgc3RkOjpvcHRpb25h
bDxib29sPiBwcmV2aW91c0xpbmVFbmRzV2l0aExpbmVCcmVhayk7CiAgICAgTGluZUNvbnRlbnQg
cGxhY2VJbmxpbmVBbmRGbG9hdENvbnRlbnQoY29uc3QgSW5saW5lSXRlbVJhbmdlJik7CiAgICAg
c3RydWN0IEluaXRpYWxMZXR0ZXJPZmZzZXRzIHsKICAgICAgICAgTGF5b3V0VW5pdCBjYXBIZWln
aHRPZmZzZXQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468742</attachid>
            <date>2023-11-23 07:02:08 -0800</date>
            <delta_ts>2023-11-23 10:27:23 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-265273-20231123070208.patch</filename>
            <type>text/plain</type>
            <size>16711</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjNzUzNmJhZDUxODgyODQyZTcxZjdmZTEwYzQ5ZDUxYWUzYzBhMzkyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFdlZCwgMjIgTm92IDIwMjMgMjA6MjQ6MjggLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXSBS
ZW1vdmUgcmVkdW5kYW50IExpbmVCdWlsZGVyOjppbml0aWFsQ29uc3RyYWludHNGb3JMaW5lCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY1MjczCgpSZXZpZXdlZCBi
eSBBbnR0aSBLb2l2aXN0by4KCjEuIE1vdmUgbG9naWMgZnJvbSBpbml0aWFsQ29uc3RyYWludHNG
b3JMaW5lIG92ZXIgdG8gTGluZUJ1aWxkZXI6OmluaXRpYWxpemUKMi4gVHVybiBzdHJ1Y3QgVXNl
ZENvbnN0cmFpbnRzIHRvIGEgbW9yZSBzcGVjaWZpYyBzdHJ1Y3QgUmVjdEFuZEZsb2F0Q29uc3Ry
YWludHMuCjMuIFJlbmFtZSBmbG9hdENvbnN0cmFpbmVkUmVjdCB0byBmbG9hdEF2b2lkaW5nUmVj
dC4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZUJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6bGF5b3V0
SW5saW5lQ29udGVudCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjppbml0aWFsaXpl
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmZsb2F0QXZvaWRpbmdSZWN0IGNvbnN0
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmFkanVzdGVkTGluZVJlY3RXaXRoQ2Fu
ZGlkYXRlSW5saW5lQ29udGVudCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVy
Ojp0cnlQbGFjaW5nRmxvYXRCb3gpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6aGFu
ZGxlSW5saW5lQ29udGVudCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjppbml0aWFs
Q29uc3RyYWludHNGb3JMaW5lIGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dDo6TGlu
ZUJ1aWxkZXI6OmZsb2F0Q29uc3RyYWluZWRSZWN0IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRl
ci5oOgotLS0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwICAgICAgICAgICAgICB8
IDYyICsrKysrKysrKy0tLS0tLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaCAg
ICAgICAgICAgICAgICB8IDE3ICsrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMo
KyksIDQ0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVy
LmNwcAppbmRleCA4ZGVlYTFhOTEzOGYuLjNjMGMwNTk3YzBhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIExpbmVCdWlsZGVy
OjpMaW5lQnVpbGRlcihJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQsIEhvcml6CiBMaW5lTGF5b3V0UmVzdWx0IExpbmVCdWlsZGVyOjpsYXlvdXRJbmxpbmVD
b250ZW50KGNvbnN0IExpbmVJbnB1dCYgbGluZUlucHV0LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFBy
ZXZpb3VzTGluZT4mIHByZXZpb3VzTGluZSkKIHsKICAgICBhdXRvIHByZXZpb3VzTGluZUVuZHNX
aXRoTGluZUJyZWFrID0gIXByZXZpb3VzTGluZSB8fCAhcHJldmlvdXNMaW5lLT5oYXNJbmxpbmVD
b250ZW50ID8gc3RkOjpudWxsb3B0IDogc3RkOjptYWtlX29wdGlvbmFsKHByZXZpb3VzTGluZS0+
ZW5kc1dpdGhMaW5lQnJlYWspOwotICAgIGluaXRpYWxpemUobGluZUlucHV0LmluaXRpYWxMb2dp
Y2FsUmVjdCwgaW5pdGlhbENvbnN0cmFpbnRzRm9yTGluZShsaW5lSW5wdXQuaW5pdGlhbExvZ2lj
YWxSZWN0LCBwcmV2aW91c0xpbmVFbmRzV2l0aExpbmVCcmVhayksIGxpbmVJbnB1dC5uZWVkc0xh
eW91dFJhbmdlLCBwcmV2aW91c0xpbmUpOworICAgIGluaXRpYWxpemUobGluZUlucHV0LmluaXRp
YWxMb2dpY2FsUmVjdCwgbGluZUlucHV0Lm5lZWRzTGF5b3V0UmFuZ2UsIHByZXZpb3VzTGluZSwg
cHJldmlvdXNMaW5lRW5kc1dpdGhMaW5lQnJlYWspOwogICAgIGF1dG8gbGluZUNvbnRlbnQgPSBw
bGFjZUlubGluZUFuZEZsb2F0Q29udGVudChsaW5lSW5wdXQubmVlZHNMYXlvdXRSYW5nZSk7CiAg
ICAgYXV0byByZXN1bHQgPSBtX2xpbmUuY2xvc2UoKTsKIApAQCAtMjcyLDcgKzI3Miw3IEBAIExp
bmVMYXlvdXRSZXN1bHQgTGluZUJ1aWxkZXI6OmxheW91dElubGluZUNvbnRlbnQoY29uc3QgTGlu
ZUlucHV0JiBsaW5lSW5wdXQsIGNvCiAgICAgfTsKIH0KIAotdm9pZCBMaW5lQnVpbGRlcjo6aW5p
dGlhbGl6ZShjb25zdCBJbmxpbmVSZWN0JiBpbml0aWFsTGluZUxvZ2ljYWxSZWN0LCBjb25zdCBV
c2VkQ29uc3RyYWludHMmIGxpbmVDb25zdHJhaW50cywgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBu
ZWVkc0xheW91dFJhbmdlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFByZXZpb3VzTGluZT4mIHByZXZp
b3VzTGluZSkKK3ZvaWQgTGluZUJ1aWxkZXI6OmluaXRpYWxpemUoY29uc3QgSW5saW5lUmVjdCYg
aW5pdGlhbExpbmVMb2dpY2FsUmVjdCwgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91
dFJhbmdlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFByZXZpb3VzTGluZT4mIHByZXZpb3VzTGluZSwg
c3RkOjpvcHRpb25hbDxib29sPiBwcmV2aW91c0xpbmVFbmRzV2l0aExpbmVCcmVhaykKIHsKICAg
ICBBU1NFUlQoIW5lZWRzTGF5b3V0UmFuZ2UuaXNFbXB0eSgpIHx8IChwcmV2aW91c0xpbmUgJiYg
IXByZXZpb3VzTGluZS0+c3VzcGVuZGVkRmxvYXRzLmlzRW1wdHkoKSkpOwogCkBAIC0zMjMsMTUg
KzMyMywxNyBAQCB2b2lkIExpbmVCdWlsZGVyOjppbml0aWFsaXplKGNvbnN0IElubGluZVJlY3Qm
IGluaXRpYWxMaW5lTG9naWNhbFJlY3QsIGNvbnN0IFVzZQogICAgIG1fbGluZS5pbml0aWFsaXpl
KG1fbGluZVNwYW5uaW5nSW5saW5lQm94ZXMsIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkpOwogCiAg
ICAgbV9saW5lSW5pdGlhbExvZ2ljYWxSZWN0ID0gaW5pdGlhbExpbmVMb2dpY2FsUmVjdDsKLSAg
ICBtX2xpbmVNYXJnaW5TdGFydCA9IGxpbmVDb25zdHJhaW50cy5tYXJnaW5TdGFydDsKLSAgICBt
X2xpbmVMb2dpY2FsUmVjdCA9IGxpbmVDb25zdHJhaW50cy5sb2dpY2FsUmVjdDsKKyAgICBtX2xp
bmVNYXJnaW5TdGFydCA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZm9ybWF0dGluZ1V0aWxzKCkuY29t
cHV0ZWRUZXh0SW5kZW50KGlzSW5JbnRyaW5zaWNXaWR0aE1vZGUoKSA/IElubGluZUZvcm1hdHRp
bmdVdGlsczo6SXNJbnRyaW5zaWNXaWR0aE1vZGU6OlllcyA6IElubGluZUZvcm1hdHRpbmdVdGls
czo6SXNJbnRyaW5zaWNXaWR0aE1vZGU6Ok5vLCBwcmV2aW91c0xpbmVFbmRzV2l0aExpbmVCcmVh
aywgaW5pdGlhbExpbmVMb2dpY2FsUmVjdC53aWR0aCgpKTsKKworICAgIGF1dG8gY29uc3RyYWlu
dHMgPSBmbG9hdEF2b2lkaW5nUmVjdChpbml0aWFsTGluZUxvZ2ljYWxSZWN0LCB7IH0pOworICAg
IG1fbGluZUxvZ2ljYWxSZWN0ID0gY29uc3RyYWludHMubG9naWNhbFJlY3Q7CisgICAgbV9saW5l
SXNDb25zdHJhaW5lZEJ5RmxvYXQgPSBjb25zdHJhaW50cy5jb25zdHJhaW5lZFNpZGVTZXQ7CiAg
ICAgLy8gVGhpcyBpcyBieSBob3cgbXVjaCBpbnRydXNpdmUgZmxvYXRzIChjb21pbmcgZnJvbSBw
YXJlbnQvc2libGluZyBGQ3MpIGluaXRpYWxseSBvZmZzZXQgdGhlIGxpbmUuCiAgICAgbV9pbml0
aWFsSW50cnVzaXZlRmxvYXRzV2lkdGggPSBtX2xpbmVMb2dpY2FsUmVjdC5sZWZ0KCkgLSBpbml0
aWFsTGluZUxvZ2ljYWxSZWN0LmxlZnQoKTsKICAgICBtX2xpbmVMb2dpY2FsUmVjdC5tb3ZlSG9y
aXpvbnRhbGx5KG1fbGluZU1hcmdpblN0YXJ0KTsKICAgICAvLyBXaGlsZSBuZWdhdGl2ZSBtYXJn
aW5zIG5vcm1hbGx5IGRvbid0IGV4cGFuZCB0aGUgYXZhaWxhYmxlIHNwYWNlLCBwcmVmZXJyZWQg
d2lkdGggY29tcHV0YXRpb24gZ2V0cyBjb25mdXNlZCBieSBuZWdhdGl2ZSB0ZXh0LWluZGVudAog
ICAgIC8vIChzaHJpbmsgdGhlIHNwYWNlIG5lZWRlZCBmb3IgdGhlIGNvbnRlbnQpIHdoaWNoIHdl
IGhhdmUgdG8gYmFsYW5jZSBpdCBoZXJlLgogICAgIG1fbGluZUxvZ2ljYWxSZWN0LmV4cGFuZEhv
cml6b250YWxseSgtbV9saW5lTWFyZ2luU3RhcnQpOwotICAgIG1fbGluZUlzQ29uc3RyYWluZWRC
eUZsb2F0ID0gbGluZUNvbnN0cmFpbnRzLmlzQ29uc3RyYWluZWRCeUZsb2F0OwogCiAgICAgYXV0
byBpbml0aWFsaXplTGVhZGluZ0NvbnRlbnRGcm9tT3ZlcmZsb3cgPSBbJl0gewogICAgICAgICBp
ZiAoIXByZXZpb3VzTGluZSB8fCAhbmVlZHNMYXlvdXRSYW5nZS5zdGFydC5vZmZzZXQpCkBAIC01
MjksMTQgKzUzMSw2IEBAIExpbmVDb250ZW50IExpbmVCdWlsZGVyOjpwbGFjZUlubGluZUFuZEZs
b2F0Q29udGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIG5lZWRzCiAgICAgcmV0dXJuIGxpbmVD
b250ZW50OwogfQogCi1MaW5lQnVpbGRlcjo6VXNlZENvbnN0cmFpbnRzIExpbmVCdWlsZGVyOjpp
bml0aWFsQ29uc3RyYWludHNGb3JMaW5lKGNvbnN0IElubGluZVJlY3QmIGluaXRpYWxMaW5lTG9n
aWNhbFJlY3QsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcHJldmlvdXNMaW5lRW5kc1dpdGhMaW5lQnJl
YWspIGNvbnN0Ci17Ci0gICAgYXV0byBpc0ludHJpbnNpY1dpZHRoTW9kZSA9IGlzSW5JbnRyaW5z
aWNXaWR0aE1vZGUoKSA/IElubGluZUZvcm1hdHRpbmdVdGlsczo6SXNJbnRyaW5zaWNXaWR0aE1v
ZGU6OlllcyA6IElubGluZUZvcm1hdHRpbmdVdGlsczo6SXNJbnRyaW5zaWNXaWR0aE1vZGU6Ok5v
OwotICAgIGF1dG8gY29uc3RyYWludHMgPSBmbG9hdENvbnN0cmFpbmVkUmVjdChpbml0aWFsTGlu
ZUxvZ2ljYWxSZWN0LCB7IH0pOwotICAgIGNvbnN0cmFpbnRzLm1hcmdpblN0YXJ0ID0gZm9ybWF0
dGluZ0NvbnRleHQoKS5mb3JtYXR0aW5nVXRpbHMoKS5jb21wdXRlZFRleHRJbmRlbnQoaXNJbnRy
aW5zaWNXaWR0aE1vZGUsIHByZXZpb3VzTGluZUVuZHNXaXRoTGluZUJyZWFrLCBpbml0aWFsTGlu
ZUxvZ2ljYWxSZWN0LndpZHRoKCkpOwotICAgIHJldHVybiBjb25zdHJhaW50czsKLX0KLQogSW5s
aW5lTGF5b3V0VW5pdCBMaW5lQnVpbGRlcjo6bGVhZGluZ1B1bmN0dWF0aW9uV2lkdGhGb3JMaW5l
Q2FuZGlhdGUoc2l6ZV90IGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCwgc2l6ZV90IGNhbmRpZGF0
ZUNvbnRlbnRTdGFydEluZGV4KSBjb25zdAogewogICAgIGF1dG8gaXNGaXJzdExpbmVGaXJzdENv
bnRlbnQgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpICYmICFtX2xpbmUuaGFzQ29udGVudCgpOwpA
QCAtNzQ4LDMxICs3NDIsMzEgQEAgc3RhdGljIGlubGluZSBJbmxpbmVMYXlvdXRVbml0IGF2YWls
YWJsZVdpZHRoKGNvbnN0IExpbmVDYW5kaWRhdGU6OklubGluZUNvbnRlbnQKICAgICByZXR1cm4g
c3RkOjppc25hbihhdmFpbGFibGVXaWR0aCkgPyBtYXhJbmxpbmVMYXlvdXRVbml0KCkgOiAoYXZh
aWxhYmxlV2lkdGggKyBjYW5kaWRhdGVDb250ZW50LmFjY3VtdWxhdGVkQ2xvbmVkRGVjb3JhdGlv
bkVuZCgpKTsKIH0KIAotTGluZUJ1aWxkZXI6OlVzZWRDb25zdHJhaW50cyBMaW5lQnVpbGRlcjo6
ZmxvYXRDb25zdHJhaW5lZFJlY3QoY29uc3QgSW5saW5lUmVjdCYgbG9naWNhbFJlY3QsIElubGlu
ZUxheW91dFVuaXQgbWFyZ2luU3RhcnQpIGNvbnN0CitMaW5lQnVpbGRlcjo6UmVjdEFuZEZsb2F0
Q29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmZsb2F0QXZvaWRpbmdSZWN0KGNvbnN0IElubGluZVJl
Y3QmIGxvZ2ljYWxSZWN0LCBJbmxpbmVMYXlvdXRVbml0IGxpbmVNYXJnaW5TdGFydCkgY29uc3QK
IHsKLSAgICBhdXRvIGNvbnN0cmFpbnRzID0gWyZdKCkgLT4gTGluZUJ1aWxkZXI6OlVzZWRDb25z
dHJhaW50cyB7CisgICAgYXV0byBjb25zdHJhaW50cyA9IFsmXSgpIC0+IExpbmVCdWlsZGVyOjpS
ZWN0QW5kRmxvYXRDb25zdHJhaW50cyB7CiAgICAgICAgIGlmIChpc0luSW50cmluc2ljV2lkdGhN
b2RlKCkgfHwgZmxvYXRpbmdDb250ZXh0KCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJu
IHsgbG9naWNhbFJlY3QsIG1hcmdpblN0YXJ0LCB7IH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7
IGxvZ2ljYWxSZWN0LCB7IH0gfTsKIAogICAgICAgICBhdXRvIGNvbnN0cmFpbnRzID0gZm9ybWF0
dGluZ0NvbnRleHQoKS5mb3JtYXR0aW5nVXRpbHMoKS5mbG9hdENvbnN0cmFpbnRzRm9yTGluZShs
b2dpY2FsUmVjdC50b3AoKSwgbG9naWNhbFJlY3QuaGVpZ2h0KCksIGZsb2F0aW5nQ29udGV4dCgp
KTsKICAgICAgICAgaWYgKCFjb25zdHJhaW50cy5sZWZ0ICYmICFjb25zdHJhaW50cy5yaWdodCkK
LSAgICAgICAgICAgIHJldHVybiB7IGxvZ2ljYWxSZWN0LCBtYXJnaW5TdGFydCwgeyB9IH07Cisg
ICAgICAgICAgICByZXR1cm4geyBsb2dpY2FsUmVjdCwgeyB9IH07CiAKLSAgICAgICAgYXV0byBp
c0NvbnN0cmFpbmVkQnlGbG9hdCA9IE9wdGlvblNldDxVc2VkRmxvYXQ+IHsgfTsKKyAgICAgICAg
YXV0byBjb25zdHJhaW5lZFNpZGVTZXQgPSBPcHRpb25TZXQ8VXNlZEZsb2F0PiB7IH07CiAgICAg
ICAgIC8vIHRleHQtaW5kZW50IGFjdHMgYXMgKHN0YXJ0KW1hcmdpbiBvbiB0aGUgbGluZS4gV2hl
biBsb29raW5nIGZvciBpbnRydXNpdmUgZmxvYXRzIHdlIG5lZWQgdG8gY2hlY2sgYWdhaW5zdCB0
aGUgbGluZSdzIF9tYXJnaW5fIGJveC4KLSAgICAgICAgYXV0byBtYXJnaW5Cb3hSZWN0ID0gSW5s
aW5lUmVjdCB7IGxvZ2ljYWxSZWN0LnRvcCgpLCBsb2dpY2FsUmVjdC5sZWZ0KCkgLSBtYXJnaW5T
dGFydCwgbG9naWNhbFJlY3Qud2lkdGgoKSArIG1hcmdpblN0YXJ0LCBsb2dpY2FsUmVjdC5oZWln
aHQoKSB9OworICAgICAgICBhdXRvIG1hcmdpbkJveFJlY3QgPSBJbmxpbmVSZWN0IHsgbG9naWNh
bFJlY3QudG9wKCksIGxvZ2ljYWxSZWN0LmxlZnQoKSAtIGxpbmVNYXJnaW5TdGFydCwgbG9naWNh
bFJlY3Qud2lkdGgoKSArIGxpbmVNYXJnaW5TdGFydCwgbG9naWNhbFJlY3QuaGVpZ2h0KCkgfTsK
IAogICAgICAgICBpZiAoY29uc3RyYWludHMubGVmdCAmJiBjb25zdHJhaW50cy5sZWZ0LT54ID4g
bWFyZ2luQm94UmVjdC5sZWZ0KCkpIHsKICAgICAgICAgICAgIG1hcmdpbkJveFJlY3Quc2hpZnRM
ZWZ0VG8oY29uc3RyYWludHMubGVmdC0+eCk7Ci0gICAgICAgICAgICBpc0NvbnN0cmFpbmVkQnlG
bG9hdC5hZGQoVXNlZEZsb2F0OjpMZWZ0KTsKKyAgICAgICAgICAgIGNvbnN0cmFpbmVkU2lkZVNl
dC5hZGQoVXNlZEZsb2F0OjpMZWZ0KTsKICAgICAgICAgfQogICAgICAgICBpZiAoY29uc3RyYWlu
dHMucmlnaHQgJiYgY29uc3RyYWludHMucmlnaHQtPnggPCBtYXJnaW5Cb3hSZWN0LnJpZ2h0KCkp
IHsKICAgICAgICAgICAgIG1hcmdpbkJveFJlY3Quc2V0UmlnaHQoc3RkOjptYXg8SW5saW5lTGF5
b3V0VW5pdD4obWFyZ2luQm94UmVjdC5sZWZ0KCksIGNvbnN0cmFpbnRzLnJpZ2h0LT54KSk7Ci0g
ICAgICAgICAgICBpc0NvbnN0cmFpbmVkQnlGbG9hdC5hZGQoVXNlZEZsb2F0OjpSaWdodCk7Cisg
ICAgICAgICAgICBjb25zdHJhaW5lZFNpZGVTZXQuYWRkKFVzZWRGbG9hdDo6UmlnaHQpOwogICAg
ICAgICB9CiAKLSAgICAgICAgYXV0byBsaW5lTG9naWNhbFJlY3QgPSBJbmxpbmVSZWN0IHsgbWFy
Z2luQm94UmVjdC50b3AoKSwgbWFyZ2luQm94UmVjdC5sZWZ0KCkgKyBtYXJnaW5TdGFydCwgbWFy
Z2luQm94UmVjdC53aWR0aCgpIC0gbWFyZ2luU3RhcnQsIG1hcmdpbkJveFJlY3QuaGVpZ2h0KCkg
fTsKLSAgICAgICAgcmV0dXJuIHsgbGluZUxvZ2ljYWxSZWN0LCBtYXJnaW5TdGFydCwgaXNDb25z
dHJhaW5lZEJ5RmxvYXQgfTsKKyAgICAgICAgYXV0byBsaW5lTG9naWNhbFJlY3QgPSBJbmxpbmVS
ZWN0IHsgbWFyZ2luQm94UmVjdC50b3AoKSwgbWFyZ2luQm94UmVjdC5sZWZ0KCkgKyBsaW5lTWFy
Z2luU3RhcnQsIG1hcmdpbkJveFJlY3Qud2lkdGgoKSAtIGxpbmVNYXJnaW5TdGFydCwgbWFyZ2lu
Qm94UmVjdC5oZWlnaHQoKSB9OworICAgICAgICByZXR1cm4geyBsaW5lTG9naWNhbFJlY3QsIGNv
bnN0cmFpbmVkU2lkZVNldCB9OwogICAgIH0oKTsKIAogICAgIGlmIChhdXRvIGFkanVzdGVkUmVj
dCA9IGZvcm1hdHRpbmdDb250ZXh0KCkucXVpcmtzKCkuYWRqdXN0ZWRSZWN0Rm9yTGluZUdyaWRM
aW5lQWxpZ24oY29uc3RyYWludHMubG9naWNhbFJlY3QpKQpAQCAtNzgxLDcgKzc3NSw3IEBAIExp
bmVCdWlsZGVyOjpVc2VkQ29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmZsb2F0Q29uc3RyYWluZWRS
ZWN0KGNvbnN0IElubGluZVJlY3QmCiAgICAgcmV0dXJuIGNvbnN0cmFpbnRzOwogfQogCi1MaW5l
QnVpbGRlcjo6VXNlZENvbnN0cmFpbnRzIExpbmVCdWlsZGVyOjphZGp1c3RlZExpbmVSZWN0V2l0
aENhbmRpZGF0ZUlubGluZUNvbnRlbnQoY29uc3QgTGluZUNhbmRpZGF0ZSYgbGluZUNhbmRpZGF0
ZSkgY29uc3QKK0xpbmVCdWlsZGVyOjpSZWN0QW5kRmxvYXRDb25zdHJhaW50cyBMaW5lQnVpbGRl
cjo6YWRqdXN0ZWRMaW5lUmVjdFdpdGhDYW5kaWRhdGVJbmxpbmVDb250ZW50KGNvbnN0IExpbmVD
YW5kaWRhdGUmIGxpbmVDYW5kaWRhdGUpIGNvbnN0CiB7CiAgICAgLy8gQ2hlY2sgaWYgdGhlIGNh
bmRpZGF0ZSBjb250ZW50IHdvdWxkIHN0cmV0Y2ggdGhlIGxpbmUgYW5kIHdoZXRoZXIgYWRkaXRp
b25hbCBmbG9hdHMgYXJlIGdldHRpbmcgaW4gdGhlIHdheS4KICAgICBhdXRvJiBpbmxpbmVDb250
ZW50ID0gbGluZUNhbmRpZGF0ZS5pbmxpbmVDb250ZW50OwpAQCAtODAxLDcgKzc5NSw3IEBAIExp
bmVCdWlsZGVyOjpVc2VkQ29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmFkanVzdGVkTGluZVJlY3RX
aXRoQ2FuZGlkYXRlSW5saW5lQ29uCiAgICAgaWYgKGNhbmRpZGF0ZUNvbnRlbnRIZWlnaHQgPD0g
bV9saW5lTG9naWNhbFJlY3QuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiB7IG1fbGluZUxvZ2lj
YWxSZWN0IH07CiAKLSAgICByZXR1cm4gZmxvYXRDb25zdHJhaW5lZFJlY3QoeyBtX2xpbmVMb2dp
Y2FsUmVjdC50b3BMZWZ0KCksIG1fbGluZUxvZ2ljYWxSZWN0LndpZHRoKCksIGNhbmRpZGF0ZUNv
bnRlbnRIZWlnaHQgfSwgbV9saW5lTWFyZ2luU3RhcnQpOworICAgIHJldHVybiBmbG9hdEF2b2lk
aW5nUmVjdCh7IG1fbGluZUxvZ2ljYWxSZWN0LnRvcExlZnQoKSwgbV9saW5lTG9naWNhbFJlY3Qu
d2lkdGgoKSwgY2FuZGlkYXRlQ29udGVudEhlaWdodCB9LCBtX2xpbmVNYXJnaW5TdGFydCk7CiB9
CiAKIHN0ZDo6b3B0aW9uYWw8TGluZUJ1aWxkZXI6OkluaXRpYWxMZXR0ZXJPZmZzZXRzPiBMaW5l
QnVpbGRlcjo6YWRqdXN0TGluZVJlY3RGb3JJbml0aWFsTGV0dGVySWZBcHBsaWNhYmxlKGNvbnN0
IEJveCYgZmxvYXRCb3gpCkBAIC05NzQsOSArOTY4LDkgQEAgYm9vbCBMaW5lQnVpbGRlcjo6dHJ5
UGxhY2luZ0Zsb2F0Qm94KGNvbnN0IEJveCYgZmxvYXRCb3gsIE1heU92ZXJDb25zdHJhaW5MaW5l
IG0KICAgICAgICAgICAgIC8vIFRoaXMgZmxvYXQgaXMgcGxhY2VkIG91dHNpZGUgdGhlIGxpbmUg
Ym94LiBObyBuZWVkIHRvIHNocmluayB0aGUgY3VycmVudCBsaW5lLgogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9Ci0gICAgICAgIGF1dG8gdXNlZENvbnN0cmFpbnRzID0gZmxvYXRDb25z
dHJhaW5lZFJlY3QobV9saW5lTG9naWNhbFJlY3QsIG1fbGluZU1hcmdpblN0YXJ0KTsKLSAgICAg
ICAgbV9saW5lTG9naWNhbFJlY3QgPSB1c2VkQ29uc3RyYWludHMubG9naWNhbFJlY3Q7Ci0gICAg
ICAgIG1fbGluZUlzQ29uc3RyYWluZWRCeUZsb2F0LmFkZCh1c2VkQ29uc3RyYWludHMuaXNDb25z
dHJhaW5lZEJ5RmxvYXQpOworICAgICAgICBhdXRvIGNvbnN0cmFpbnRzID0gZmxvYXRBdm9pZGlu
Z1JlY3QobV9saW5lTG9naWNhbFJlY3QsIG1fbGluZU1hcmdpblN0YXJ0KTsKKyAgICAgICAgbV9s
aW5lTG9naWNhbFJlY3QgPSBjb25zdHJhaW50cy5sb2dpY2FsUmVjdDsKKyAgICAgICAgbV9saW5l
SXNDb25zdHJhaW5lZEJ5RmxvYXQuYWRkKGNvbnN0cmFpbnRzLmNvbnN0cmFpbmVkU2lkZVNldCk7
CiAgICAgfTsKICAgICBhZGp1c3RMaW5lUmVjdElmTmVlZGVkKCk7CiAKQEAgLTk5NSwxMyArOTg5
LDEzIEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxkZXI6OmhhbmRsZUlubGluZUNvbnRl
bnQoY29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogCi0gICAgYXV0byB1c2VkQ29uc3RyYWludHMgPSBhZGp1c3RlZExpbmVSZWN0V2l0aENh
bmRpZGF0ZUlubGluZUNvbnRlbnQobGluZUNhbmRpZGF0ZSk7CisgICAgYXV0byBjb25zdHJhaW50
cyA9IGFkanVzdGVkTGluZVJlY3RXaXRoQ2FuZGlkYXRlSW5saW5lQ29udGVudChsaW5lQ2FuZGlk
YXRlKTsKICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRlQ29udGVudCA9IFsmXSB7
CiAgICAgICAgIGF1dG8gbGluZUluZGV4ID0gbV9wcmV2aW91c0xpbmUgPyAobV9wcmV2aW91c0xp
bmUtPmxpbmVJbmRleCArIDEpIDogMGx1OwogICAgICAgICAvLyBJZiB3aWR0aCBjb25zdHJhaW50
IG92ZXJyaWRlcyBleGlzdCAoZS5nLiB0ZXh0LXdyYXA6IGJhbGFuY2UpLCBtb2RpZnkgdGhlIGF2
YWlsYWJsZSB3aWR0aCBhY2NvcmRpbmdseS4KICAgICAgICAgY29uc3QgYXV0byYgYXZhaWxhYmxl
TGluZVdpZHRoT3ZlcnJpZGUgPSBsYXlvdXRTdGF0ZSgpLmF2YWlsYWJsZUxpbmVXaWR0aE92ZXJy
aWRlKCk7CiAgICAgICAgIGF1dG8gd2lkdGhPdmVycmlkZSA9IGF2YWlsYWJsZUxpbmVXaWR0aE92
ZXJyaWRlLmF2YWlsYWJsZUxpbmVXaWR0aE92ZXJyaWRlRm9yTGluZShsaW5lSW5kZXgpOwotICAg
ICAgICBhdXRvIGF2YWlsYWJsZVRvdGFsV2lkdGhGb3JDb250ZW50ID0gd2lkdGhPdmVycmlkZSA/
IElubGluZUxheW91dFVuaXQgeyB3aWR0aE92ZXJyaWRlLnZhbHVlKCkgfSAtIG1fbGluZU1hcmdp
blN0YXJ0IDogdXNlZENvbnN0cmFpbnRzLmxvZ2ljYWxSZWN0LndpZHRoKCk7CisgICAgICAgIGF1
dG8gYXZhaWxhYmxlVG90YWxXaWR0aEZvckNvbnRlbnQgPSB3aWR0aE92ZXJyaWRlID8gSW5saW5l
TGF5b3V0VW5pdCB7IHdpZHRoT3ZlcnJpZGUudmFsdWUoKSB9IC0gbV9saW5lTWFyZ2luU3RhcnQg
OiBjb25zdHJhaW50cy5sb2dpY2FsUmVjdC53aWR0aCgpOwogICAgICAgICByZXR1cm4gYXZhaWxh
YmxlV2lkdGgoaW5saW5lQ29udGVudCwgbV9saW5lLCBhdmFpbGFibGVUb3RhbFdpZHRoRm9yQ29u
dGVudCk7CiAgICAgfSgpOwogCkBAIC0xMDA5LDcgKzEwMDMsNyBAQCBMaW5lQnVpbGRlcjo6UmVz
dWx0IExpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250ZW50KGNvbnN0IElubGluZUl0ZW1SYW5n
ZSYgbGF5bwogICAgIGlmICghaW5saW5lQ29udGVudC5pc1J1YnkoKSkgewogICAgICAgICBhdXRv
IGxpbmVCcmVha2luZ1Jlc3VsdCA9IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQgeyBJbmxp
bmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OktlZXAsIElubGluZUNvbnRlbnRCcmVh
a2VyOjpJc0VuZE9mTGluZTo6Tm8sIHsgfSwgeyB9IH07CiAgICAgICAgIGlmIChjb250aW51b3Vz
SW5saW5lQ29udGVudC5sb2dpY2FsV2lkdGgoKSA+IGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRl
Q29udGVudCkgewotICAgICAgICAgICAgYXV0byBsaW5lSXNDb25zaWRlcmVkQ29udGVudGZ1bCA9
IG1fbGluZS5oYXNDb250ZW50T3JMaXN0TWFya2VyKCkgfHwgaXNMaW5lQ29uc3RyYWluZWRCeUZs
b2F0KCkgfHwgIXVzZWRDb25zdHJhaW50cy5pc0NvbnN0cmFpbmVkQnlGbG9hdC5pc0VtcHR5KCk7
CisgICAgICAgICAgICBhdXRvIGxpbmVJc0NvbnNpZGVyZWRDb250ZW50ZnVsID0gbV9saW5lLmhh
c0NvbnRlbnRPckxpc3RNYXJrZXIoKSB8fCBpc0xpbmVDb25zdHJhaW5lZEJ5RmxvYXQoKSB8fCAh
Y29uc3RyYWludHMuY29uc3RyYWluZWRTaWRlU2V0LmlzRW1wdHkoKTsKICAgICAgICAgICAgIGF1
dG8gbGluZVN0YXR1cyA9IElubGluZUNvbnRlbnRCcmVha2VyOjpMaW5lU3RhdHVzIHsgbV9saW5l
LmNvbnRlbnRMb2dpY2FsUmlnaHQoKSwgYXZhaWxhYmxlV2lkdGhGb3JDYW5kaWRhdGVDb250ZW50
LCBtX2xpbmUudHJpbW1hYmxlVHJhaWxpbmdXaWR0aCgpLCBtX2xpbmUudHJhaWxpbmdTb2Z0SHlw
aGVuV2lkdGgoKSwgbV9saW5lLmlzVHJhaWxpbmdSdW5GdWxseVRyaW1tYWJsZSgpLCBsaW5lSXND
b25zaWRlcmVkQ29udGVudGZ1bCwgIW1fd3JhcE9wcG9ydHVuaXR5TGlzdC5pc0VtcHR5KCkgfTsK
ICAgICAgICAgICAgIGxpbmVCcmVha2luZ1Jlc3VsdCA9IGlubGluZUNvbnRlbnRCcmVha2VyKCku
cHJvY2Vzc0lubGluZUNvbnRlbnQoY29udGludW91c0lubGluZUNvbnRlbnQsIGxpbmVTdGF0dXMp
OwogICAgICAgICAgICAgbGluZUdhaW5zTmV3Q29udGVudCA9IGxpbmVCcmVha2luZ1Jlc3VsdC5h
Y3Rpb24gPT0gSW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpLZWVwIHx8IGxp
bmVCcmVha2luZ1Jlc3VsdC5hY3Rpb24gPT0gSW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6
QWN0aW9uOjpCcmVhazsKQEAgLTEwMjMsMTAgKzEwMTcsMTAgQEAgTGluZUJ1aWxkZXI6OlJlc3Vs
dCBMaW5lQnVpbGRlcjo6aGFuZGxlSW5saW5lQ29udGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2Um
IGxheW8KICAgICBpZiAobGluZUdhaW5zTmV3Q29udGVudCkgewogICAgICAgICAvLyBTb21ldGlt
ZXMgaW4gb3JkZXIgdG8gcHV0IHRoaXMgY29udGVudCBvbiB0aGUgbGluZSwgd2UgaGF2ZSB0byBh
dm9pZCBhZGRpdGlvbmFsIGZsb2F0IGJveGVzICh3aGVuIHRoZSBuZXcgY29udGVudCBpcyB0YWxs
ZXIgdGhhbiBhbnkgcHJldmlvdXMgY29udGVudCBhbmQgd2UgaGF2ZSB2ZXJ0aWNhbGx5IHN0YWNr
ZWQgZmxvYXRzIG9uIHRoaXMgbGluZSkKICAgICAgICAgLy8gd2hpY2ggbWVhbnMgd2UgbmVlZCB0
byBhZGp1c3QgdGhlIGxpbmUgcmVjdCB0byBhY2NvbW1vZGF0ZSBzdWNoIG5ldyBjb25zdHJhaW50
cy4KLSAgICAgICAgbV9saW5lTG9naWNhbFJlY3QgPSB1c2VkQ29uc3RyYWludHMubG9naWNhbFJl
Y3Q7Ci0gICAgICAgIG1fbGluZUlzQ29uc3RyYWluZWRCeUZsb2F0LmFkZCh1c2VkQ29uc3RyYWlu
dHMuaXNDb25zdHJhaW5lZEJ5RmxvYXQpOworICAgICAgICBtX2xpbmVMb2dpY2FsUmVjdCA9IGNv
bnN0cmFpbnRzLmxvZ2ljYWxSZWN0OworICAgICAgICBtX2xpbmVJc0NvbnN0cmFpbmVkQnlGbG9h
dC5hZGQoY29uc3RyYWludHMuY29uc3RyYWluZWRTaWRlU2V0KTsKICAgICB9Ci0gICAgbV9jYW5k
aWRhdGVDb250ZW50TWF4aW11bUhlaWdodCA9IHVzZWRDb25zdHJhaW50cy5sb2dpY2FsUmVjdC5o
ZWlnaHQoKTsKKyAgICBtX2NhbmRpZGF0ZUNvbnRlbnRNYXhpbXVtSGVpZ2h0ID0gY29uc3RyYWlu
dHMubG9naWNhbFJlY3QuaGVpZ2h0KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmgKaW5kZXggMTQ2YmRmMjIwMzU1Li40NWFlNjdm
YjYxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaApAQCAtNDksMTQg
KzQ5LDYgQEAgcHJpdmF0ZToKICAgICBJbmxpbmVMYXlvdXRVbml0IGxlYWRpbmdQdW5jdHVhdGlv
bldpZHRoRm9yTGluZUNhbmRpYXRlKHNpemVfdCBmaXJzdElubGluZVRleHRJdGVtSW5kZXgsIHNp
emVfdCBjYW5kaWRhdGVDb250ZW50U3RhcnRJbmRleCkgY29uc3Q7CiAgICAgSW5saW5lTGF5b3V0
VW5pdCB0cmFpbGluZ1B1bmN0dWF0aW9uT3JTdG9wT3JDb21tYVdpZHRoRm9yTGluZUNhbmRpYXRl
KHNpemVfdCBsYXN0SW5saW5lVGV4dEl0ZW1JbmRleCwgc2l6ZV90IGxheW91dFJhbmdlRW5kKSBj
b25zdDsKIAotICAgIHN0cnVjdCBVc2VkQ29uc3RyYWludHMgewotICAgICAgICBJbmxpbmVSZWN0
IGxvZ2ljYWxSZWN0OwotICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1hcmdpblN0YXJ0IHsgMCB9
OwotICAgICAgICBPcHRpb25TZXQ8VXNlZEZsb2F0PiBpc0NvbnN0cmFpbmVkQnlGbG9hdCB7IH07
Ci0gICAgfTsKLSAgICBVc2VkQ29uc3RyYWludHMgaW5pdGlhbENvbnN0cmFpbnRzRm9yTGluZShj
b25zdCBJbmxpbmVSZWN0JiBpbml0aWFsTGluZUxvZ2ljYWxSZWN0LCBzdGQ6Om9wdGlvbmFsPGJv
b2w+IHByZXZpb3VzTGluZUVuZHNXaXRoTGluZUJyZWFrKSBjb25zdDsKLSAgICBVc2VkQ29uc3Ry
YWludHMgZmxvYXRDb25zdHJhaW5lZFJlY3QoY29uc3QgSW5saW5lUmVjdCYgbGluZUxvZ2ljYWxS
ZWN0LCBJbmxpbmVMYXlvdXRVbml0IG1hcmdpblN0YXJ0KSBjb25zdDsKLQogICAgIHN0cnVjdCBS
ZXN1bHQgewogICAgICAgICBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmUgaXNFbmRP
ZkxpbmUgeyBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6Ok5vIH07CiAgICAgICAg
IHN0cnVjdCBDb21taXR0ZWRDb250ZW50Q291bnQgewpAQCAtNzIsMTEgKzY0LDE2IEBAIHByaXZh
dGU6CiAgICAgUmVzdWx0IGhhbmRsZUlubGluZUNvbnRlbnQoY29uc3QgSW5saW5lSXRlbVJhbmdl
JiBuZWVkc0xheW91dFJhbmdlLCBjb25zdCBMaW5lQ2FuZGlkYXRlJik7CiAgICAgUmVzdWx0IGhh
bmRsZVJ1YnlDb250ZW50KGNvbnN0IElubGluZUl0ZW1SYW5nZSYgcnVieUNvbnRhaW5lclJhbmdl
LCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRlQ29udGVudCk7CiAg
ICAgUmVzdWx0IHByb2Nlc3NMaW5lQnJlYWtpbmdSZXN1bHQoY29uc3QgTGluZUNhbmRpZGF0ZSYs
IGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbGF5b3V0UmFuZ2UsIGNvbnN0IElubGluZUNvbnRlbnRC
cmVha2VyOjpSZXN1bHQmKTsKLSAgICBVc2VkQ29uc3RyYWludHMgYWRqdXN0ZWRMaW5lUmVjdFdp
dGhDYW5kaWRhdGVJbmxpbmVDb250ZW50KGNvbnN0IExpbmVDYW5kaWRhdGUmKSBjb25zdDsKKyAg
ICBzdHJ1Y3QgUmVjdEFuZEZsb2F0Q29uc3RyYWludHMgeworICAgICAgICBJbmxpbmVSZWN0IGxv
Z2ljYWxSZWN0OworICAgICAgICBPcHRpb25TZXQ8VXNlZEZsb2F0PiBjb25zdHJhaW5lZFNpZGVT
ZXQgeyB9OworICAgIH07CisgICAgUmVjdEFuZEZsb2F0Q29uc3RyYWludHMgZmxvYXRBdm9pZGlu
Z1JlY3QoY29uc3QgSW5saW5lUmVjdCYgbGluZUxvZ2ljYWxSZWN0LCBJbmxpbmVMYXlvdXRVbml0
IGxpbmVNYXJnaW5TdGFydCkgY29uc3Q7CisgICAgUmVjdEFuZEZsb2F0Q29uc3RyYWludHMgYWRq
dXN0ZWRMaW5lUmVjdFdpdGhDYW5kaWRhdGVJbmxpbmVDb250ZW50KGNvbnN0IExpbmVDYW5kaWRh
dGUmKSBjb25zdDsKICAgICBzaXplX3QgcmVidWlsZExpbmVXaXRoSW5saW5lQ29udGVudChjb25z
dCBJbmxpbmVJdGVtUmFuZ2UmIG5lZWRzTGF5b3V0UmFuZ2UsIGNvbnN0IElubGluZUl0ZW0mIGxh
c3RJbmxpbmVJdGVtVG9BZGQpOwogICAgIHNpemVfdCByZWJ1aWxkTGluZUZvclRyYWlsaW5nU29m
dEh5cGhlbihjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlKTsKICAgICB2b2lkIGNv
bW1pdFBhcnRpYWxDb250ZW50KGNvbnN0IElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3Vz
Q29udGVudDo6UnVuTGlzdCYsIGNvbnN0IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ6OlBh
cnRpYWxUcmFpbGluZ0NvbnRlbnQmKTsKLSAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW5saW5l
UmVjdCYgaW5pdGlhbExpbmVMb2dpY2FsUmVjdCwgY29uc3QgVXNlZENvbnN0cmFpbnRzJiwgY29u
c3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91dFJhbmdlLCBjb25zdCBzdGQ6Om9wdGlvbmFs
PFByZXZpb3VzTGluZT4mKTsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW5saW5lUmVjdCYg
aW5pdGlhbExpbmVMb2dpY2FsUmVjdCwgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91
dFJhbmdlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFByZXZpb3VzTGluZT4mLCAgc3RkOjpvcHRpb25h
bDxib29sPiBwcmV2aW91c0xpbmVFbmRzV2l0aExpbmVCcmVhayk7CiAgICAgTGluZUNvbnRlbnQg
cGxhY2VJbmxpbmVBbmRGbG9hdENvbnRlbnQoY29uc3QgSW5saW5lSXRlbVJhbmdlJik7CiAgICAg
c3RydWN0IEluaXRpYWxMZXR0ZXJPZmZzZXRzIHsKICAgICAgICAgTGF5b3V0VW5pdCBjYXBIZWln
aHRPZmZzZXQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468745</attachid>
            <date>2023-11-23 10:27:28 -0800</date>
            <delta_ts>2023-11-23 11:52:34 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-265273-20231123102727.patch</filename>
            <type>text/plain</type>
            <size>16723</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAwY2FkYjVjZDk1NTc1M2JjZmZjMjRkNTU0Njg1ZTlkYWI4YWFmOTgzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMjMgTm92IDIwMjMgMTA6MjU6NDAgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXSBS
ZW1vdmUgcmVkdW5kYW50IExpbmVCdWlsZGVyOjppbml0aWFsQ29uc3RyYWludHNGb3JMaW5lCiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY1MjczCgpSZXZpZXdlZCBi
eSBBbnR0aSBLb2l2aXN0by4KCjEuIE1vdmUgbG9naWMgZnJvbSBpbml0aWFsQ29uc3RyYWludHNG
b3JMaW5lIG92ZXIgdG8gTGluZUJ1aWxkZXI6OmluaXRpYWxpemUKMi4gVHVybiBzdHJ1Y3QgVXNl
ZENvbnN0cmFpbnRzIHRvIGEgbW9yZSBzcGVjaWZpYyBzdHJ1Y3QgUmVjdEFuZEZsb2F0Q29uc3Ry
YWludHMuCjMuIFJlbmFtZSBmbG9hdENvbnN0cmFpbmVkUmVjdCB0byBmbG9hdEF2b2lkaW5nUmVj
dC4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lTGluZUJ1aWxkZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6bGF5b3V0
SW5saW5lQ29udGVudCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjppbml0aWFsaXpl
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmZsb2F0QXZvaWRpbmdSZWN0IGNvbnN0
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmFkanVzdGVkTGluZVJlY3RXaXRoQ2Fu
ZGlkYXRlSW5saW5lQ29udGVudCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVy
Ojp0cnlQbGFjaW5nRmxvYXRCb3gpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6aGFu
ZGxlSW5saW5lQ29udGVudCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjppbml0aWFs
Q29uc3RyYWludHNGb3JMaW5lIGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dDo6TGlu
ZUJ1aWxkZXI6OmZsb2F0Q29uc3RyYWluZWRSZWN0IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRl
ci5oOgotLS0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwICAgICAgICAgICAgICB8
IDYyICsrKysrKysrKy0tLS0tLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaCAg
ICAgICAgICAgICAgICB8IDE3ICsrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMo
KyksIDQ0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVy
LmNwcAppbmRleCAyYzhjZDUzZmJkNzcuLmM0ZTZhNTRmNjE3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcApAQCAtMjM0LDcgKzIzNCw3IEBAIExpbmVCdWlsZGVy
OjpMaW5lQnVpbGRlcihJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQsIEhvcml6CiBMaW5lTGF5b3V0UmVzdWx0IExpbmVCdWlsZGVyOjpsYXlvdXRJbmxpbmVD
b250ZW50KGNvbnN0IExpbmVJbnB1dCYgbGluZUlucHV0LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFBy
ZXZpb3VzTGluZT4mIHByZXZpb3VzTGluZSkKIHsKICAgICBhdXRvIHByZXZpb3VzTGluZUVuZHNX
aXRoTGluZUJyZWFrID0gIXByZXZpb3VzTGluZSB8fCAhcHJldmlvdXNMaW5lLT5oYXNJbmxpbmVD
b250ZW50ID8gc3RkOjpudWxsb3B0IDogc3RkOjptYWtlX29wdGlvbmFsKHByZXZpb3VzTGluZS0+
ZW5kc1dpdGhMaW5lQnJlYWspOwotICAgIGluaXRpYWxpemUobGluZUlucHV0LmluaXRpYWxMb2dp
Y2FsUmVjdCwgaW5pdGlhbENvbnN0cmFpbnRzRm9yTGluZShsaW5lSW5wdXQuaW5pdGlhbExvZ2lj
YWxSZWN0LCBwcmV2aW91c0xpbmVFbmRzV2l0aExpbmVCcmVhayksIGxpbmVJbnB1dC5uZWVkc0xh
eW91dFJhbmdlLCBwcmV2aW91c0xpbmUpOworICAgIGluaXRpYWxpemUobGluZUlucHV0LmluaXRp
YWxMb2dpY2FsUmVjdCwgbGluZUlucHV0Lm5lZWRzTGF5b3V0UmFuZ2UsIHByZXZpb3VzTGluZSwg
cHJldmlvdXNMaW5lRW5kc1dpdGhMaW5lQnJlYWspOwogICAgIGF1dG8gbGluZUNvbnRlbnQgPSBw
bGFjZUlubGluZUFuZEZsb2F0Q29udGVudChsaW5lSW5wdXQubmVlZHNMYXlvdXRSYW5nZSk7CiAg
ICAgYXV0byByZXN1bHQgPSBtX2xpbmUuY2xvc2UoKTsKIApAQCAtMjY5LDcgKzI2OSw3IEBAIExp
bmVMYXlvdXRSZXN1bHQgTGluZUJ1aWxkZXI6OmxheW91dElubGluZUNvbnRlbnQoY29uc3QgTGlu
ZUlucHV0JiBsaW5lSW5wdXQsIGNvCiAgICAgfTsKIH0KIAotdm9pZCBMaW5lQnVpbGRlcjo6aW5p
dGlhbGl6ZShjb25zdCBJbmxpbmVSZWN0JiBpbml0aWFsTGluZUxvZ2ljYWxSZWN0LCBjb25zdCBV
c2VkQ29uc3RyYWludHMmIGxpbmVDb25zdHJhaW50cywgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBu
ZWVkc0xheW91dFJhbmdlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFByZXZpb3VzTGluZT4mIHByZXZp
b3VzTGluZSkKK3ZvaWQgTGluZUJ1aWxkZXI6OmluaXRpYWxpemUoY29uc3QgSW5saW5lUmVjdCYg
aW5pdGlhbExpbmVMb2dpY2FsUmVjdCwgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91
dFJhbmdlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFByZXZpb3VzTGluZT4mIHByZXZpb3VzTGluZSwg
c3RkOjpvcHRpb25hbDxib29sPiBwcmV2aW91c0xpbmVFbmRzV2l0aExpbmVCcmVhaykKIHsKICAg
ICBBU1NFUlQoIW5lZWRzTGF5b3V0UmFuZ2UuaXNFbXB0eSgpIHx8IChwcmV2aW91c0xpbmUgJiYg
IXByZXZpb3VzTGluZS0+c3VzcGVuZGVkRmxvYXRzLmlzRW1wdHkoKSkpOwogICAgIHJlc2V0KCk7
CkBAIC0zMjAsMTUgKzMyMCwxNyBAQCB2b2lkIExpbmVCdWlsZGVyOjppbml0aWFsaXplKGNvbnN0
IElubGluZVJlY3QmIGluaXRpYWxMaW5lTG9naWNhbFJlY3QsIGNvbnN0IFVzZQogICAgIG1fbGlu
ZS5pbml0aWFsaXplKG1fbGluZVNwYW5uaW5nSW5saW5lQm94ZXMsIGlzRmlyc3RGb3JtYXR0ZWRM
aW5lKCkpOwogCiAgICAgbV9saW5lSW5pdGlhbExvZ2ljYWxSZWN0ID0gaW5pdGlhbExpbmVMb2dp
Y2FsUmVjdDsKLSAgICBtX2xpbmVNYXJnaW5TdGFydCA9IGxpbmVDb25zdHJhaW50cy5tYXJnaW5T
dGFydDsKLSAgICBtX2xpbmVMb2dpY2FsUmVjdCA9IGxpbmVDb25zdHJhaW50cy5sb2dpY2FsUmVj
dDsKKyAgICBtX2xpbmVNYXJnaW5TdGFydCA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZm9ybWF0dGlu
Z1V0aWxzKCkuY29tcHV0ZWRUZXh0SW5kZW50KGlzSW5JbnRyaW5zaWNXaWR0aE1vZGUoKSA/IElu
bGluZUZvcm1hdHRpbmdVdGlsczo6SXNJbnRyaW5zaWNXaWR0aE1vZGU6OlllcyA6IElubGluZUZv
cm1hdHRpbmdVdGlsczo6SXNJbnRyaW5zaWNXaWR0aE1vZGU6Ok5vLCBwcmV2aW91c0xpbmVFbmRz
V2l0aExpbmVCcmVhaywgaW5pdGlhbExpbmVMb2dpY2FsUmVjdC53aWR0aCgpKTsKKworICAgIGF1
dG8gY29uc3RyYWludHMgPSBmbG9hdEF2b2lkaW5nUmVjdChpbml0aWFsTGluZUxvZ2ljYWxSZWN0
LCB7IH0pOworICAgIG1fbGluZUxvZ2ljYWxSZWN0ID0gY29uc3RyYWludHMubG9naWNhbFJlY3Q7
CisgICAgbV9saW5lSXNDb25zdHJhaW5lZEJ5RmxvYXQgPSBjb25zdHJhaW50cy5jb25zdHJhaW5l
ZFNpZGVTZXQ7CiAgICAgLy8gVGhpcyBpcyBieSBob3cgbXVjaCBpbnRydXNpdmUgZmxvYXRzIChj
b21pbmcgZnJvbSBwYXJlbnQvc2libGluZyBGQ3MpIGluaXRpYWxseSBvZmZzZXQgdGhlIGxpbmUu
CiAgICAgbV9pbml0aWFsSW50cnVzaXZlRmxvYXRzV2lkdGggPSBtX2xpbmVMb2dpY2FsUmVjdC5s
ZWZ0KCkgLSBpbml0aWFsTGluZUxvZ2ljYWxSZWN0LmxlZnQoKTsKICAgICBtX2xpbmVMb2dpY2Fs
UmVjdC5tb3ZlSG9yaXpvbnRhbGx5KG1fbGluZU1hcmdpblN0YXJ0KTsKICAgICAvLyBXaGlsZSBu
ZWdhdGl2ZSBtYXJnaW5zIG5vcm1hbGx5IGRvbid0IGV4cGFuZCB0aGUgYXZhaWxhYmxlIHNwYWNl
LCBwcmVmZXJyZWQgd2lkdGggY29tcHV0YXRpb24gZ2V0cyBjb25mdXNlZCBieSBuZWdhdGl2ZSB0
ZXh0LWluZGVudAogICAgIC8vIChzaHJpbmsgdGhlIHNwYWNlIG5lZWRlZCBmb3IgdGhlIGNvbnRl
bnQpIHdoaWNoIHdlIGhhdmUgdG8gYmFsYW5jZSBpdCBoZXJlLgogICAgIG1fbGluZUxvZ2ljYWxS
ZWN0LmV4cGFuZEhvcml6b250YWxseSgtbV9saW5lTWFyZ2luU3RhcnQpOwotICAgIG1fbGluZUlz
Q29uc3RyYWluZWRCeUZsb2F0ID0gbGluZUNvbnN0cmFpbnRzLmlzQ29uc3RyYWluZWRCeUZsb2F0
OwogCiAgICAgYXV0byBpbml0aWFsaXplTGVhZGluZ0NvbnRlbnRGcm9tT3ZlcmZsb3cgPSBbJl0g
ewogICAgICAgICBpZiAoIXByZXZpb3VzTGluZSB8fCAhbmVlZHNMYXlvdXRSYW5nZS5zdGFydC5v
ZmZzZXQpCkBAIC01MjYsMTQgKzUyOCw2IEBAIExpbmVDb250ZW50IExpbmVCdWlsZGVyOjpwbGFj
ZUlubGluZUFuZEZsb2F0Q29udGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIG5lZWRzCiAgICAg
cmV0dXJuIGxpbmVDb250ZW50OwogfQogCi1MaW5lQnVpbGRlcjo6VXNlZENvbnN0cmFpbnRzIExp
bmVCdWlsZGVyOjppbml0aWFsQ29uc3RyYWludHNGb3JMaW5lKGNvbnN0IElubGluZVJlY3QmIGlu
aXRpYWxMaW5lTG9naWNhbFJlY3QsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcHJldmlvdXNMaW5lRW5k
c1dpdGhMaW5lQnJlYWspIGNvbnN0Ci17Ci0gICAgYXV0byBpc0ludHJpbnNpY1dpZHRoTW9kZSA9
IGlzSW5JbnRyaW5zaWNXaWR0aE1vZGUoKSA/IElubGluZUZvcm1hdHRpbmdVdGlsczo6SXNJbnRy
aW5zaWNXaWR0aE1vZGU6OlllcyA6IElubGluZUZvcm1hdHRpbmdVdGlsczo6SXNJbnRyaW5zaWNX
aWR0aE1vZGU6Ok5vOwotICAgIGF1dG8gY29uc3RyYWludHMgPSBmbG9hdENvbnN0cmFpbmVkUmVj
dChpbml0aWFsTGluZUxvZ2ljYWxSZWN0LCB7IH0pOwotICAgIGNvbnN0cmFpbnRzLm1hcmdpblN0
YXJ0ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5mb3JtYXR0aW5nVXRpbHMoKS5jb21wdXRlZFRleHRJ
bmRlbnQoaXNJbnRyaW5zaWNXaWR0aE1vZGUsIHByZXZpb3VzTGluZUVuZHNXaXRoTGluZUJyZWFr
LCBpbml0aWFsTGluZUxvZ2ljYWxSZWN0LndpZHRoKCkpOwotICAgIHJldHVybiBjb25zdHJhaW50
czsKLX0KLQogSW5saW5lTGF5b3V0VW5pdCBMaW5lQnVpbGRlcjo6bGVhZGluZ1B1bmN0dWF0aW9u
V2lkdGhGb3JMaW5lQ2FuZGlhdGUoc2l6ZV90IGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCwgc2l6
ZV90IGNhbmRpZGF0ZUNvbnRlbnRTdGFydEluZGV4KSBjb25zdAogewogICAgIGF1dG8gaXNGaXJz
dExpbmVGaXJzdENvbnRlbnQgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpICYmICFtX2xpbmUuaGFz
Q29udGVudCgpOwpAQCAtNzQ1LDMxICs3MzksMzEgQEAgc3RhdGljIGlubGluZSBJbmxpbmVMYXlv
dXRVbml0IGF2YWlsYWJsZVdpZHRoKGNvbnN0IExpbmVDYW5kaWRhdGU6OklubGluZUNvbnRlbnQK
ICAgICByZXR1cm4gc3RkOjppc25hbihhdmFpbGFibGVXaWR0aCkgPyBtYXhJbmxpbmVMYXlvdXRV
bml0KCkgOiAoYXZhaWxhYmxlV2lkdGggKyBjYW5kaWRhdGVDb250ZW50LmFjY3VtdWxhdGVkQ2xv
bmVkRGVjb3JhdGlvbkVuZCgpKTsKIH0KIAotTGluZUJ1aWxkZXI6OlVzZWRDb25zdHJhaW50cyBM
aW5lQnVpbGRlcjo6ZmxvYXRDb25zdHJhaW5lZFJlY3QoY29uc3QgSW5saW5lUmVjdCYgbG9naWNh
bFJlY3QsIElubGluZUxheW91dFVuaXQgbWFyZ2luU3RhcnQpIGNvbnN0CitMaW5lQnVpbGRlcjo6
UmVjdEFuZEZsb2F0Q29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmZsb2F0QXZvaWRpbmdSZWN0KGNv
bnN0IElubGluZVJlY3QmIGxvZ2ljYWxSZWN0LCBJbmxpbmVMYXlvdXRVbml0IGxpbmVNYXJnaW5T
dGFydCkgY29uc3QKIHsKLSAgICBhdXRvIGNvbnN0cmFpbnRzID0gWyZdKCkgLT4gTGluZUJ1aWxk
ZXI6OlVzZWRDb25zdHJhaW50cyB7CisgICAgYXV0byBjb25zdHJhaW50cyA9IFsmXSgpIC0+IExp
bmVCdWlsZGVyOjpSZWN0QW5kRmxvYXRDb25zdHJhaW50cyB7CiAgICAgICAgIGlmIChpc0luSW50
cmluc2ljV2lkdGhNb2RlKCkgfHwgZmxvYXRpbmdDb250ZXh0KCkuaXNFbXB0eSgpKQotICAgICAg
ICAgICAgcmV0dXJuIHsgbG9naWNhbFJlY3QsIG1hcmdpblN0YXJ0LCB7IH0gfTsKKyAgICAgICAg
ICAgIHJldHVybiB7IGxvZ2ljYWxSZWN0LCB7IH0gfTsKIAogICAgICAgICBhdXRvIGNvbnN0cmFp
bnRzID0gZm9ybWF0dGluZ0NvbnRleHQoKS5mb3JtYXR0aW5nVXRpbHMoKS5mbG9hdENvbnN0cmFp
bnRzRm9yTGluZShsb2dpY2FsUmVjdC50b3AoKSwgbG9naWNhbFJlY3QuaGVpZ2h0KCksIGZsb2F0
aW5nQ29udGV4dCgpKTsKICAgICAgICAgaWYgKCFjb25zdHJhaW50cy5sZWZ0ICYmICFjb25zdHJh
aW50cy5yaWdodCkKLSAgICAgICAgICAgIHJldHVybiB7IGxvZ2ljYWxSZWN0LCBtYXJnaW5TdGFy
dCwgeyB9IH07CisgICAgICAgICAgICByZXR1cm4geyBsb2dpY2FsUmVjdCwgeyB9IH07CiAKLSAg
ICAgICAgYXV0byBpc0NvbnN0cmFpbmVkQnlGbG9hdCA9IE9wdGlvblNldDxVc2VkRmxvYXQ+IHsg
fTsKKyAgICAgICAgYXV0byBjb25zdHJhaW5lZFNpZGVTZXQgPSBPcHRpb25TZXQ8VXNlZEZsb2F0
PiB7IH07CiAgICAgICAgIC8vIHRleHQtaW5kZW50IGFjdHMgYXMgKHN0YXJ0KW1hcmdpbiBvbiB0
aGUgbGluZS4gV2hlbiBsb29raW5nIGZvciBpbnRydXNpdmUgZmxvYXRzIHdlIG5lZWQgdG8gY2hl
Y2sgYWdhaW5zdCB0aGUgbGluZSdzIF9tYXJnaW5fIGJveC4KLSAgICAgICAgYXV0byBtYXJnaW5C
b3hSZWN0ID0gSW5saW5lUmVjdCB7IGxvZ2ljYWxSZWN0LnRvcCgpLCBsb2dpY2FsUmVjdC5sZWZ0
KCkgLSBtYXJnaW5TdGFydCwgbG9naWNhbFJlY3Qud2lkdGgoKSArIG1hcmdpblN0YXJ0LCBsb2dp
Y2FsUmVjdC5oZWlnaHQoKSB9OworICAgICAgICBhdXRvIG1hcmdpbkJveFJlY3QgPSBJbmxpbmVS
ZWN0IHsgbG9naWNhbFJlY3QudG9wKCksIGxvZ2ljYWxSZWN0LmxlZnQoKSAtIGxpbmVNYXJnaW5T
dGFydCwgbG9naWNhbFJlY3Qud2lkdGgoKSArIGxpbmVNYXJnaW5TdGFydCwgbG9naWNhbFJlY3Qu
aGVpZ2h0KCkgfTsKIAogICAgICAgICBpZiAoY29uc3RyYWludHMubGVmdCAmJiBjb25zdHJhaW50
cy5sZWZ0LT54ID4gbWFyZ2luQm94UmVjdC5sZWZ0KCkpIHsKICAgICAgICAgICAgIG1hcmdpbkJv
eFJlY3Quc2hpZnRMZWZ0VG8oY29uc3RyYWludHMubGVmdC0+eCk7Ci0gICAgICAgICAgICBpc0Nv
bnN0cmFpbmVkQnlGbG9hdC5hZGQoVXNlZEZsb2F0OjpMZWZ0KTsKKyAgICAgICAgICAgIGNvbnN0
cmFpbmVkU2lkZVNldC5hZGQoVXNlZEZsb2F0OjpMZWZ0KTsKICAgICAgICAgfQogICAgICAgICBp
ZiAoY29uc3RyYWludHMucmlnaHQgJiYgY29uc3RyYWludHMucmlnaHQtPnggPCBtYXJnaW5Cb3hS
ZWN0LnJpZ2h0KCkpIHsKICAgICAgICAgICAgIG1hcmdpbkJveFJlY3Quc2V0UmlnaHQoc3RkOjpt
YXg8SW5saW5lTGF5b3V0VW5pdD4obWFyZ2luQm94UmVjdC5sZWZ0KCksIGNvbnN0cmFpbnRzLnJp
Z2h0LT54KSk7Ci0gICAgICAgICAgICBpc0NvbnN0cmFpbmVkQnlGbG9hdC5hZGQoVXNlZEZsb2F0
OjpSaWdodCk7CisgICAgICAgICAgICBjb25zdHJhaW5lZFNpZGVTZXQuYWRkKFVzZWRGbG9hdDo6
UmlnaHQpOwogICAgICAgICB9CiAKLSAgICAgICAgYXV0byBsaW5lTG9naWNhbFJlY3QgPSBJbmxp
bmVSZWN0IHsgbWFyZ2luQm94UmVjdC50b3AoKSwgbWFyZ2luQm94UmVjdC5sZWZ0KCkgKyBtYXJn
aW5TdGFydCwgbWFyZ2luQm94UmVjdC53aWR0aCgpIC0gbWFyZ2luU3RhcnQsIG1hcmdpbkJveFJl
Y3QuaGVpZ2h0KCkgfTsKLSAgICAgICAgcmV0dXJuIHsgbGluZUxvZ2ljYWxSZWN0LCBtYXJnaW5T
dGFydCwgaXNDb25zdHJhaW5lZEJ5RmxvYXQgfTsKKyAgICAgICAgYXV0byBsaW5lTG9naWNhbFJl
Y3QgPSBJbmxpbmVSZWN0IHsgbWFyZ2luQm94UmVjdC50b3AoKSwgbWFyZ2luQm94UmVjdC5sZWZ0
KCkgKyBsaW5lTWFyZ2luU3RhcnQsIG1hcmdpbkJveFJlY3Qud2lkdGgoKSAtIGxpbmVNYXJnaW5T
dGFydCwgbWFyZ2luQm94UmVjdC5oZWlnaHQoKSB9OworICAgICAgICByZXR1cm4geyBsaW5lTG9n
aWNhbFJlY3QsIGNvbnN0cmFpbmVkU2lkZVNldCB9OwogICAgIH0oKTsKIAogICAgIGlmIChhdXRv
IGFkanVzdGVkUmVjdCA9IGZvcm1hdHRpbmdDb250ZXh0KCkucXVpcmtzKCkuYWRqdXN0ZWRSZWN0
Rm9yTGluZUdyaWRMaW5lQWxpZ24oY29uc3RyYWludHMubG9naWNhbFJlY3QpKQpAQCAtNzc4LDcg
Kzc3Miw3IEBAIExpbmVCdWlsZGVyOjpVc2VkQ29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmZsb2F0
Q29uc3RyYWluZWRSZWN0KGNvbnN0IElubGluZVJlY3QmCiAgICAgcmV0dXJuIGNvbnN0cmFpbnRz
OwogfQogCi1MaW5lQnVpbGRlcjo6VXNlZENvbnN0cmFpbnRzIExpbmVCdWlsZGVyOjphZGp1c3Rl
ZExpbmVSZWN0V2l0aENhbmRpZGF0ZUlubGluZUNvbnRlbnQoY29uc3QgTGluZUNhbmRpZGF0ZSYg
bGluZUNhbmRpZGF0ZSkgY29uc3QKK0xpbmVCdWlsZGVyOjpSZWN0QW5kRmxvYXRDb25zdHJhaW50
cyBMaW5lQnVpbGRlcjo6YWRqdXN0ZWRMaW5lUmVjdFdpdGhDYW5kaWRhdGVJbmxpbmVDb250ZW50
KGNvbnN0IExpbmVDYW5kaWRhdGUmIGxpbmVDYW5kaWRhdGUpIGNvbnN0CiB7CiAgICAgLy8gQ2hl
Y2sgaWYgdGhlIGNhbmRpZGF0ZSBjb250ZW50IHdvdWxkIHN0cmV0Y2ggdGhlIGxpbmUgYW5kIHdo
ZXRoZXIgYWRkaXRpb25hbCBmbG9hdHMgYXJlIGdldHRpbmcgaW4gdGhlIHdheS4KICAgICBhdXRv
JiBpbmxpbmVDb250ZW50ID0gbGluZUNhbmRpZGF0ZS5pbmxpbmVDb250ZW50OwpAQCAtNzk4LDcg
Kzc5Miw3IEBAIExpbmVCdWlsZGVyOjpVc2VkQ29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmFkanVz
dGVkTGluZVJlY3RXaXRoQ2FuZGlkYXRlSW5saW5lQ29uCiAgICAgaWYgKGNhbmRpZGF0ZUNvbnRl
bnRIZWlnaHQgPD0gbV9saW5lTG9naWNhbFJlY3QuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiB7
IG1fbGluZUxvZ2ljYWxSZWN0IH07CiAKLSAgICByZXR1cm4gZmxvYXRDb25zdHJhaW5lZFJlY3Qo
eyBtX2xpbmVMb2dpY2FsUmVjdC50b3BMZWZ0KCksIG1fbGluZUxvZ2ljYWxSZWN0LndpZHRoKCks
IGNhbmRpZGF0ZUNvbnRlbnRIZWlnaHQgfSwgbV9saW5lTWFyZ2luU3RhcnQpOworICAgIHJldHVy
biBmbG9hdEF2b2lkaW5nUmVjdCh7IG1fbGluZUxvZ2ljYWxSZWN0LnRvcExlZnQoKSwgbV9saW5l
TG9naWNhbFJlY3Qud2lkdGgoKSwgY2FuZGlkYXRlQ29udGVudEhlaWdodCB9LCBtX2xpbmVNYXJn
aW5TdGFydCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8TGluZUJ1aWxkZXI6OkluaXRpYWxMZXR0ZXJP
ZmZzZXRzPiBMaW5lQnVpbGRlcjo6YWRqdXN0TGluZVJlY3RGb3JJbml0aWFsTGV0dGVySWZBcHBs
aWNhYmxlKGNvbnN0IEJveCYgZmxvYXRCb3gpCkBAIC05NzEsOSArOTY1LDkgQEAgYm9vbCBMaW5l
QnVpbGRlcjo6dHJ5UGxhY2luZ0Zsb2F0Qm94KGNvbnN0IEJveCYgZmxvYXRCb3gsIE1heU92ZXJD
b25zdHJhaW5MaW5lIG0KICAgICAgICAgICAgIC8vIFRoaXMgZmxvYXQgaXMgcGxhY2VkIG91dHNp
ZGUgdGhlIGxpbmUgYm94LiBObyBuZWVkIHRvIHNocmluayB0aGUgY3VycmVudCBsaW5lLgogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGF1dG8gdXNlZENvbnN0cmFpbnRz
ID0gZmxvYXRDb25zdHJhaW5lZFJlY3QobV9saW5lTG9naWNhbFJlY3QsIG1fbGluZU1hcmdpblN0
YXJ0KTsKLSAgICAgICAgbV9saW5lTG9naWNhbFJlY3QgPSB1c2VkQ29uc3RyYWludHMubG9naWNh
bFJlY3Q7Ci0gICAgICAgIG1fbGluZUlzQ29uc3RyYWluZWRCeUZsb2F0LmFkZCh1c2VkQ29uc3Ry
YWludHMuaXNDb25zdHJhaW5lZEJ5RmxvYXQpOworICAgICAgICBhdXRvIGNvbnN0cmFpbnRzID0g
ZmxvYXRBdm9pZGluZ1JlY3QobV9saW5lTG9naWNhbFJlY3QsIG1fbGluZU1hcmdpblN0YXJ0KTsK
KyAgICAgICAgbV9saW5lTG9naWNhbFJlY3QgPSBjb25zdHJhaW50cy5sb2dpY2FsUmVjdDsKKyAg
ICAgICAgbV9saW5lSXNDb25zdHJhaW5lZEJ5RmxvYXQuYWRkKGNvbnN0cmFpbnRzLmNvbnN0cmFp
bmVkU2lkZVNldCk7CiAgICAgfTsKICAgICBhZGp1c3RMaW5lUmVjdElmTmVlZGVkKCk7CiAKQEAg
LTk5MiwxMyArOTg2LDEzIEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxkZXI6OmhhbmRs
ZUlubGluZUNvbnRlbnQoY29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvCiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogCi0gICAgYXV0byB1c2VkQ29uc3RyYWludHMgPSBhZGp1c3RlZExp
bmVSZWN0V2l0aENhbmRpZGF0ZUlubGluZUNvbnRlbnQobGluZUNhbmRpZGF0ZSk7CisgICAgYXV0
byBjb25zdHJhaW50cyA9IGFkanVzdGVkTGluZVJlY3RXaXRoQ2FuZGlkYXRlSW5saW5lQ29udGVu
dChsaW5lQ2FuZGlkYXRlKTsKICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRlQ29u
dGVudCA9IFsmXSB7CiAgICAgICAgIGF1dG8gbGluZUluZGV4ID0gbV9wcmV2aW91c0xpbmUgPyAo
bV9wcmV2aW91c0xpbmUtPmxpbmVJbmRleCArIDEpIDogMGx1OwogICAgICAgICAvLyBJZiB3aWR0
aCBjb25zdHJhaW50IG92ZXJyaWRlcyBleGlzdCAoZS5nLiB0ZXh0LXdyYXA6IGJhbGFuY2UpLCBt
b2RpZnkgdGhlIGF2YWlsYWJsZSB3aWR0aCBhY2NvcmRpbmdseS4KICAgICAgICAgY29uc3QgYXV0
byYgYXZhaWxhYmxlTGluZVdpZHRoT3ZlcnJpZGUgPSBsYXlvdXRTdGF0ZSgpLmF2YWlsYWJsZUxp
bmVXaWR0aE92ZXJyaWRlKCk7CiAgICAgICAgIGF1dG8gd2lkdGhPdmVycmlkZSA9IGF2YWlsYWJs
ZUxpbmVXaWR0aE92ZXJyaWRlLmF2YWlsYWJsZUxpbmVXaWR0aE92ZXJyaWRlRm9yTGluZShsaW5l
SW5kZXgpOwotICAgICAgICBhdXRvIGF2YWlsYWJsZVRvdGFsV2lkdGhGb3JDb250ZW50ID0gd2lk
dGhPdmVycmlkZSA/IElubGluZUxheW91dFVuaXQgeyB3aWR0aE92ZXJyaWRlLnZhbHVlKCkgfSAt
IG1fbGluZU1hcmdpblN0YXJ0IDogdXNlZENvbnN0cmFpbnRzLmxvZ2ljYWxSZWN0LndpZHRoKCk7
CisgICAgICAgIGF1dG8gYXZhaWxhYmxlVG90YWxXaWR0aEZvckNvbnRlbnQgPSB3aWR0aE92ZXJy
aWRlID8gSW5saW5lTGF5b3V0VW5pdCB7IHdpZHRoT3ZlcnJpZGUudmFsdWUoKSB9IC0gbV9saW5l
TWFyZ2luU3RhcnQgOiBjb25zdHJhaW50cy5sb2dpY2FsUmVjdC53aWR0aCgpOwogICAgICAgICBy
ZXR1cm4gYXZhaWxhYmxlV2lkdGgoaW5saW5lQ29udGVudCwgbV9saW5lLCBhdmFpbGFibGVUb3Rh
bFdpZHRoRm9yQ29udGVudCk7CiAgICAgfSgpOwogCkBAIC0xMDA2LDcgKzEwMDAsNyBAQCBMaW5l
QnVpbGRlcjo6UmVzdWx0IExpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250ZW50KGNvbnN0IElu
bGluZUl0ZW1SYW5nZSYgbGF5bwogICAgIGlmICghaW5saW5lQ29udGVudC5pc1J1YnkoKSkgewog
ICAgICAgICBhdXRvIGxpbmVCcmVha2luZ1Jlc3VsdCA9IElubGluZUNvbnRlbnRCcmVha2VyOjpS
ZXN1bHQgeyBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OktlZXAsIElubGlu
ZUNvbnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6Tm8sIHsgfSwgeyB9IH07CiAgICAgICAgIGlm
IChjb250aW51b3VzSW5saW5lQ29udGVudC5sb2dpY2FsV2lkdGgoKSA+IGF2YWlsYWJsZVdpZHRo
Rm9yQ2FuZGlkYXRlQ29udGVudCkgewotICAgICAgICAgICAgYXV0byBsaW5lSXNDb25zaWRlcmVk
Q29udGVudGZ1bCA9IG1fbGluZS5oYXNDb250ZW50T3JMaXN0TWFya2VyKCkgfHwgaXNMaW5lQ29u
c3RyYWluZWRCeUZsb2F0KCkgfHwgIXVzZWRDb25zdHJhaW50cy5pc0NvbnN0cmFpbmVkQnlGbG9h
dC5pc0VtcHR5KCk7CisgICAgICAgICAgICBhdXRvIGxpbmVJc0NvbnNpZGVyZWRDb250ZW50ZnVs
ID0gbV9saW5lLmhhc0NvbnRlbnRPckxpc3RNYXJrZXIoKSB8fCBpc0xpbmVDb25zdHJhaW5lZEJ5
RmxvYXQoKSB8fCAhY29uc3RyYWludHMuY29uc3RyYWluZWRTaWRlU2V0LmlzRW1wdHkoKTsKICAg
ICAgICAgICAgIGF1dG8gbGluZVN0YXR1cyA9IElubGluZUNvbnRlbnRCcmVha2VyOjpMaW5lU3Rh
dHVzIHsgbV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKSwgYXZhaWxhYmxlV2lkdGhGb3JDYW5k
aWRhdGVDb250ZW50LCBtX2xpbmUudHJpbW1hYmxlVHJhaWxpbmdXaWR0aCgpLCBtX2xpbmUudHJh
aWxpbmdTb2Z0SHlwaGVuV2lkdGgoKSwgbV9saW5lLmlzVHJhaWxpbmdSdW5GdWxseVRyaW1tYWJs
ZSgpLCBsaW5lSXNDb25zaWRlcmVkQ29udGVudGZ1bCwgIW1fd3JhcE9wcG9ydHVuaXR5TGlzdC5p
c0VtcHR5KCkgfTsKICAgICAgICAgICAgIGxpbmVCcmVha2luZ1Jlc3VsdCA9IGlubGluZUNvbnRl
bnRCcmVha2VyKCkucHJvY2Vzc0lubGluZUNvbnRlbnQoY29udGludW91c0lubGluZUNvbnRlbnQs
IGxpbmVTdGF0dXMpOwogICAgICAgICAgICAgbGluZUdhaW5zTmV3Q29udGVudCA9IGxpbmVCcmVh
a2luZ1Jlc3VsdC5hY3Rpb24gPT0gSW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9u
OjpLZWVwIHx8IGxpbmVCcmVha2luZ1Jlc3VsdC5hY3Rpb24gPT0gSW5saW5lQ29udGVudEJyZWFr
ZXI6OlJlc3VsdDo6QWN0aW9uOjpCcmVhazsKQEAgLTEwMjAsMTAgKzEwMTQsMTAgQEAgTGluZUJ1
aWxkZXI6OlJlc3VsdCBMaW5lQnVpbGRlcjo6aGFuZGxlSW5saW5lQ29udGVudChjb25zdCBJbmxp
bmVJdGVtUmFuZ2UmIGxheW8KICAgICBpZiAobGluZUdhaW5zTmV3Q29udGVudCkgewogICAgICAg
ICAvLyBTb21ldGltZXMgaW4gb3JkZXIgdG8gcHV0IHRoaXMgY29udGVudCBvbiB0aGUgbGluZSwg
d2UgaGF2ZSB0byBhdm9pZCBhZGRpdGlvbmFsIGZsb2F0IGJveGVzICh3aGVuIHRoZSBuZXcgY29u
dGVudCBpcyB0YWxsZXIgdGhhbiBhbnkgcHJldmlvdXMgY29udGVudCBhbmQgd2UgaGF2ZSB2ZXJ0
aWNhbGx5IHN0YWNrZWQgZmxvYXRzIG9uIHRoaXMgbGluZSkKICAgICAgICAgLy8gd2hpY2ggbWVh
bnMgd2UgbmVlZCB0byBhZGp1c3QgdGhlIGxpbmUgcmVjdCB0byBhY2NvbW1vZGF0ZSBzdWNoIG5l
dyBjb25zdHJhaW50cy4KLSAgICAgICAgbV9saW5lTG9naWNhbFJlY3QgPSB1c2VkQ29uc3RyYWlu
dHMubG9naWNhbFJlY3Q7Ci0gICAgICAgIG1fbGluZUlzQ29uc3RyYWluZWRCeUZsb2F0LmFkZCh1
c2VkQ29uc3RyYWludHMuaXNDb25zdHJhaW5lZEJ5RmxvYXQpOworICAgICAgICBtX2xpbmVMb2dp
Y2FsUmVjdCA9IGNvbnN0cmFpbnRzLmxvZ2ljYWxSZWN0OworICAgICAgICBtX2xpbmVJc0NvbnN0
cmFpbmVkQnlGbG9hdC5hZGQoY29uc3RyYWludHMuY29uc3RyYWluZWRTaWRlU2V0KTsKICAgICB9
Ci0gICAgbV9jYW5kaWRhdGVDb250ZW50TWF4aW11bUhlaWdodCA9IHVzZWRDb25zdHJhaW50cy5s
b2dpY2FsUmVjdC5oZWlnaHQoKTsKKyAgICBtX2NhbmRpZGF0ZUNvbnRlbnRNYXhpbXVtSGVpZ2h0
ID0gY29uc3RyYWludHMubG9naWNhbFJlY3QuaGVpZ2h0KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmgKaW5kZXggZWVhMTk5NGYw
NjgwLi43M2YyYWM2ZjE4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIu
aApAQCAtNDUsMTQgKzQ1LDYgQEAgcHJpdmF0ZToKICAgICBJbmxpbmVMYXlvdXRVbml0IGxlYWRp
bmdQdW5jdHVhdGlvbldpZHRoRm9yTGluZUNhbmRpYXRlKHNpemVfdCBmaXJzdElubGluZVRleHRJ
dGVtSW5kZXgsIHNpemVfdCBjYW5kaWRhdGVDb250ZW50U3RhcnRJbmRleCkgY29uc3Q7CiAgICAg
SW5saW5lTGF5b3V0VW5pdCB0cmFpbGluZ1B1bmN0dWF0aW9uT3JTdG9wT3JDb21tYVdpZHRoRm9y
TGluZUNhbmRpYXRlKHNpemVfdCBsYXN0SW5saW5lVGV4dEl0ZW1JbmRleCwgc2l6ZV90IGxheW91
dFJhbmdlRW5kKSBjb25zdDsKIAotICAgIHN0cnVjdCBVc2VkQ29uc3RyYWludHMgewotICAgICAg
ICBJbmxpbmVSZWN0IGxvZ2ljYWxSZWN0OwotICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1hcmdp
blN0YXJ0IHsgMCB9OwotICAgICAgICBPcHRpb25TZXQ8VXNlZEZsb2F0PiBpc0NvbnN0cmFpbmVk
QnlGbG9hdCB7IH07Ci0gICAgfTsKLSAgICBVc2VkQ29uc3RyYWludHMgaW5pdGlhbENvbnN0cmFp
bnRzRm9yTGluZShjb25zdCBJbmxpbmVSZWN0JiBpbml0aWFsTGluZUxvZ2ljYWxSZWN0LCBzdGQ6
Om9wdGlvbmFsPGJvb2w+IHByZXZpb3VzTGluZUVuZHNXaXRoTGluZUJyZWFrKSBjb25zdDsKLSAg
ICBVc2VkQ29uc3RyYWludHMgZmxvYXRDb25zdHJhaW5lZFJlY3QoY29uc3QgSW5saW5lUmVjdCYg
bGluZUxvZ2ljYWxSZWN0LCBJbmxpbmVMYXlvdXRVbml0IG1hcmdpblN0YXJ0KSBjb25zdDsKLQog
ICAgIHN0cnVjdCBSZXN1bHQgewogICAgICAgICBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRP
ZkxpbmUgaXNFbmRPZkxpbmUgeyBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6Ok5v
IH07CiAgICAgICAgIHN0cnVjdCBDb21taXR0ZWRDb250ZW50Q291bnQgewpAQCAtNjgsMTEgKzYw
LDE2IEBAIHByaXZhdGU6CiAgICAgUmVzdWx0IGhhbmRsZUlubGluZUNvbnRlbnQoY29uc3QgSW5s
aW5lSXRlbVJhbmdlJiBuZWVkc0xheW91dFJhbmdlLCBjb25zdCBMaW5lQ2FuZGlkYXRlJik7CiAg
ICAgUmVzdWx0IGhhbmRsZVJ1YnlDb250ZW50KGNvbnN0IElubGluZUl0ZW1SYW5nZSYgcnVieUNv
bnRhaW5lclJhbmdlLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRl
Q29udGVudCk7CiAgICAgUmVzdWx0IHByb2Nlc3NMaW5lQnJlYWtpbmdSZXN1bHQoY29uc3QgTGlu
ZUNhbmRpZGF0ZSYsIGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbGF5b3V0UmFuZ2UsIGNvbnN0IElu
bGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQmKTsKLSAgICBVc2VkQ29uc3RyYWludHMgYWRqdXN0
ZWRMaW5lUmVjdFdpdGhDYW5kaWRhdGVJbmxpbmVDb250ZW50KGNvbnN0IExpbmVDYW5kaWRhdGUm
KSBjb25zdDsKKyAgICBzdHJ1Y3QgUmVjdEFuZEZsb2F0Q29uc3RyYWludHMgeworICAgICAgICBJ
bmxpbmVSZWN0IGxvZ2ljYWxSZWN0OworICAgICAgICBPcHRpb25TZXQ8VXNlZEZsb2F0PiBjb25z
dHJhaW5lZFNpZGVTZXQgeyB9OworICAgIH07CisgICAgUmVjdEFuZEZsb2F0Q29uc3RyYWludHMg
ZmxvYXRBdm9pZGluZ1JlY3QoY29uc3QgSW5saW5lUmVjdCYgbGluZUxvZ2ljYWxSZWN0LCBJbmxp
bmVMYXlvdXRVbml0IGxpbmVNYXJnaW5TdGFydCkgY29uc3Q7CisgICAgUmVjdEFuZEZsb2F0Q29u
c3RyYWludHMgYWRqdXN0ZWRMaW5lUmVjdFdpdGhDYW5kaWRhdGVJbmxpbmVDb250ZW50KGNvbnN0
IExpbmVDYW5kaWRhdGUmKSBjb25zdDsKICAgICBzaXplX3QgcmVidWlsZExpbmVXaXRoSW5saW5l
Q29udGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIG5lZWRzTGF5b3V0UmFuZ2UsIGNvbnN0IElu
bGluZUl0ZW0mIGxhc3RJbmxpbmVJdGVtVG9BZGQpOwogICAgIHNpemVfdCByZWJ1aWxkTGluZUZv
clRyYWlsaW5nU29mdEh5cGhlbihjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlKTsK
ICAgICB2b2lkIGNvbW1pdFBhcnRpYWxDb250ZW50KGNvbnN0IElubGluZUNvbnRlbnRCcmVha2Vy
OjpDb250aW51b3VzQ29udGVudDo6UnVuTGlzdCYsIGNvbnN0IElubGluZUNvbnRlbnRCcmVha2Vy
OjpSZXN1bHQ6OlBhcnRpYWxUcmFpbGluZ0NvbnRlbnQmKTsKLSAgICB2b2lkIGluaXRpYWxpemUo
Y29uc3QgSW5saW5lUmVjdCYgaW5pdGlhbExpbmVMb2dpY2FsUmVjdCwgY29uc3QgVXNlZENvbnN0
cmFpbnRzJiwgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91dFJhbmdlLCBjb25zdCBz
dGQ6Om9wdGlvbmFsPFByZXZpb3VzTGluZT4mKTsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3Qg
SW5saW5lUmVjdCYgaW5pdGlhbExpbmVMb2dpY2FsUmVjdCwgY29uc3QgSW5saW5lSXRlbVJhbmdl
JiBuZWVkc0xheW91dFJhbmdlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFByZXZpb3VzTGluZT4mLCAg
c3RkOjpvcHRpb25hbDxib29sPiBwcmV2aW91c0xpbmVFbmRzV2l0aExpbmVCcmVhayk7CiAgICAg
TGluZUNvbnRlbnQgcGxhY2VJbmxpbmVBbmRGbG9hdENvbnRlbnQoY29uc3QgSW5saW5lSXRlbVJh
bmdlJik7CiAgICAgc3RydWN0IEluaXRpYWxMZXR0ZXJPZmZzZXRzIHsKICAgICAgICAgTGF5b3V0
VW5pdCBjYXBIZWlnaHRPZmZzZXQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>