<?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>211125</bug_id>
          
          <creation_ts>2020-04-28 07:19:54 -0700</creation_ts>
          <short_desc>[LFC] Introduce FormattingContext::ConstraintsForOutOfFlowContent</short_desc>
          <delta_ts>2020-04-28 08:26:13 -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>1646474</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-04-28 07:19:54 -0700</bug_when>
    <thetext>for horizontal and vertical constraints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646476</commentid>
    <comment_count>1</comment_count>
      <attachid>397835</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-04-28 07:25:58 -0700</bug_when>
    <thetext>Created attachment 397835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646481</commentid>
    <comment_count>2</comment_count>
      <attachid>397837</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-04-28 07:50:54 -0700</bug_when>
    <thetext>Created attachment 397837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646489</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-28 08:25:15 -0700</bug_when>
    <thetext>Committed r260827: &lt;https://trac.webkit.org/changeset/260827&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397837.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646491</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-28 08:26:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/62520092&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397835</attachid>
            <date>2020-04-28 07:25:58 -0700</date>
            <delta_ts>2020-04-28 07:50:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211125-20200428072558.patch</filename>
            <type>text/plain</type>
            <size>18568</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI2OTAzNTk0OTRiNGQz
NWEyZWUzOTlhZjVmZDkzYTAwODU5YmE5NC4uNDg3Y2M2ZTA4MTEwYjBmZTZlYTRkZWE5MTYwNTk5
OGE2ZDRhODM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA0LTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW50cm9kdWNlIEZv
cm1hdHRpbmdDb250ZXh0OjpDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTEyNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhvcml6b250YWwgYW5kIHZl
cnRpY2FsIGNvbnN0cmFpbnRzIGFyZSBhbHdheXMgY29tcHV0ZWQgYW5kIHVzZWQgdG9nZXRoZXIu
CisKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd0hvcml6b250
YWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dDb250ZW50KToKKyAgICAg
ICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0
dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpo
b3Jpem9udGFsQ29uc3RyYWludHNGb3JPdXRPZkZsb3cpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnZlcnRpY2FsQ29uc3Ry
YWludHNGb3JPdXRPZkZsb3cpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9MYXlvdXRDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6bGF5b3V0
Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0VW5pdHMu
aDoKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpsYXlvdXRJbkZsb3dDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KToKKwogMjAyMC0w
NC0yNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIElu
dHJvZHVjZSBGb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCBmZTY0ZmUz
ZDJmNTJkN2Y5MTI3YTAyNTc4M2ZiMzM2ZDUyYjViMWM5Li4xMWQ4ZjBlZTBiNGI5MjljMTYwZWI5
ZjEzNzQwZDFmOTk2OWNkMzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9y
bWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5n
Q29udGV4dC5jcHAKQEAgLTY5LDE0ICs2OSwxNCBAQCBMYXlvdXRTdGF0ZSYgRm9ybWF0dGluZ0Nv
bnRleHQ6OmxheW91dFN0YXRlKCkgY29uc3QKICAgICByZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGUu
bGF5b3V0U3RhdGUoKTsKIH0KIAotdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9m
Rmxvd0hvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgSG9yaXpv
bnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29u
c3RyYWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMpCit2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBj
b25zdCBDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQmIGNvbnN0cmFpbnRzKQogewogICAg
IEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOwogICAgIGF1dG8gY29t
cHV0ZSA9IFsmXShPcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgpIHsKLSAgICAgICAgcmV0
dXJuIGdlb21ldHJ5KCkub3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGxheW91dEJveCwgaG9y
aXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzLCB7IHVzZWRXaWR0aCwgeyB9
IH0pOworICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5vdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0
cnkobGF5b3V0Qm94LCBjb25zdHJhaW50cy5ob3Jpem9udGFsLCBjb25zdHJhaW50cy52ZXJ0aWNh
bCwgeyB1c2VkV2lkdGgsIHsgfSB9KTsKICAgICB9OwogCi0gICAgYXV0byBjb250YWluaW5nQmxv
Y2tXaWR0aCA9IGhvcml6b250YWxDb25zdHJhaW50cy5sb2dpY2FsV2lkdGg7CisgICAgYXV0byBj
b250YWluaW5nQmxvY2tXaWR0aCA9IGNvbnN0cmFpbnRzLmhvcml6b250YWwubG9naWNhbFdpZHRo
OwogICAgIGF1dG8gaG9yaXpvbnRhbEdlb21ldHJ5ID0gY29tcHV0ZSh7IH0pOwogICAgIGlmIChh
dXRvIG1heFdpZHRoID0gZ2VvbWV0cnkoKS5jb21wdXRlZE1heFdpZHRoKGxheW91dEJveCwgY29u
dGFpbmluZ0Jsb2NrV2lkdGgpKSB7CiAgICAgICAgIGF1dG8gbWF4SG9yaXpvbnRhbEdlb21ldHJ5
ID0gY29tcHV0ZShtYXhXaWR0aCk7CkBAIC05NywxNCArOTcsMTQgQEAgdm9pZCBGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmIGxh
eW91dEJveCwKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxDb21wdXRlZE1hcmdpbihob3Jp
em9udGFsR2VvbWV0cnkuY29udGVudFdpZHRoQW5kTWFyZ2luLmNvbXB1dGVkTWFyZ2luKTsKIH0K
IAotdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0
cnkoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYgaG9y
aXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJiB2ZXJ0aWNhbENv
bnN0cmFpbnRzKQordm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd1ZlcnRp
Y2FsR2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzRm9yT3V0
T2ZGbG93Q29udGVudCYgY29uc3RyYWludHMpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CiAgICAgYXV0byBjb21wdXRlID0gWyZdKE9wdGlvbmFsPExh
eW91dFVuaXQ+IHVzZWRIZWlnaHQpIHsKLSAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkub3V0T2ZG
bG93VmVydGljYWxHZW9tZXRyeShsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVy
dGljYWxDb25zdHJhaW50cywgeyB1c2VkSGVpZ2h0IH0pOworICAgICAgICByZXR1cm4gZ2VvbWV0
cnkoKS5vdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGxheW91dEJveCwgY29uc3RyYWludHMuaG9y
aXpvbnRhbCwgY29uc3RyYWludHMudmVydGljYWwsIHsgdXNlZEhlaWdodCB9KTsKICAgICB9Owog
Ci0gICAgYXV0byBjb250YWluaW5nQmxvY2tIZWlnaHQgPSAqdmVydGljYWxDb25zdHJhaW50cy5s
b2dpY2FsSGVpZ2h0OworICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrSGVpZ2h0ID0gKmNvbnN0cmFp
bnRzLnZlcnRpY2FsLmxvZ2ljYWxIZWlnaHQ7CiAgICAgYXV0byB2ZXJ0aWNhbEdlb21ldHJ5ID0g
Y29tcHV0ZSh7IH0pOwogICAgIGlmIChhdXRvIG1heEhlaWdodCA9IGdlb21ldHJ5KCkuY29tcHV0
ZWRNYXhIZWlnaHQobGF5b3V0Qm94LCBjb250YWluaW5nQmxvY2tIZWlnaHQpKSB7CiAgICAgICAg
IGF1dG8gbWF4VmVydGljYWxHZW9tZXRyeSA9IGNvbXB1dGUobWF4SGVpZ2h0KTsKQEAgLTEzMywy
NCArMTMzLDE1IEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVCb3JkZXJBbmRQYWRk
aW5nKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3JpCiAgICAgZGlzcGxheUJveC5zZXRQ
YWRkaW5nKGdlb21ldHJ5KCkuY29tcHV0ZWRQYWRkaW5nKGxheW91dEJveCwgaG9yaXpvbnRhbENv
bnN0cmFpbnQubG9naWNhbFdpZHRoKSk7CiB9CiAKLXZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6Omxh
eW91dE91dE9mRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvblN0YXRl
LCBjb25zdCBPdXRPZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMmIHJvb3RIb3Jpem9udGFsQ29u
c3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmIHJvb3RWZXJ0aWNhbENvbnN0cmFp
bnRzKQordm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZh
bGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3RhdGUsIGNvbnN0IENvbnN0cmFpbnRzRm9yT3V0
T2ZGbG93Q29udGVudCYgY29uc3RyYWludHMpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1h
dHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIlN0YXJ0OiBsYXlvdXQgb3V0LW9mLWZsb3cg
Y29udGVudCAtPiBjb250ZXh0OiAiIDw8ICZsYXlvdXRTdGF0ZSgpIDw8ICIgcm9vdDogIiA8PCAm
cm9vdCgpKTsKIAogICAgIGNvbGxlY3RPdXRPZkZsb3dEZXNjZW5kYW50c0lmTmVlZGVkKCk7CiAK
LSAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c0ZvckxheW91dEJveCA9IFsmXSAoY29uc3Qg
YXV0byYgb3V0T2ZGbG93Qm94KSB7CisgICAgYXV0byBjb25zdHJhaW50c0ZvckxheW91dEJveCA9
IFsmXSAoY29uc3QgYXV0byYgb3V0T2ZGbG93Qm94KSB7CiAgICAgICAgIGF1dG8mIGNvbnRhaW5p
bmdCbG9jayA9IG91dE9mRmxvd0JveC5jb250YWluaW5nQmxvY2soKTsKLSAgICAgICAgaWYgKCZj
b250YWluaW5nQmxvY2sgPT0gJnJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiByb290SG9yaXpv
bnRhbENvbnN0cmFpbnRzOwotICAgICAgICByZXR1cm4gR2VvbWV0cnk6Omhvcml6b250YWxDb25z
dHJhaW50c0Zvck91dE9mRmxvdyhnZW9tZXRyeUZvckJveChjb250YWluaW5nQmxvY2spKTsKLSAg
ICB9OwotCi0gICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yTGF5b3V0Qm94ID0gWyZdIChj
b25zdCBhdXRvJiBvdXRPZkZsb3dCb3gpIHsKLSAgICAgICAgYXV0byYgY29udGFpbmluZ0Jsb2Nr
ID0gb3V0T2ZGbG93Qm94LmNvbnRhaW5pbmdCbG9jaygpOwotICAgICAgICBpZiAoJmNvbnRhaW5p
bmdCbG9jayA9PSAmcm9vdCgpKQotICAgICAgICAgICAgcmV0dXJuIHJvb3RWZXJ0aWNhbENvbnN0
cmFpbnRzOwotICAgICAgICByZXR1cm4gR2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JP
dXRPZkZsb3coZ2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Jsb2NrKSk7CisgICAgICAgIHJldHVy
biAmY29udGFpbmluZ0Jsb2NrID09ICZyb290KCkgPyBjb25zdHJhaW50cyA6IEdlb21ldHJ5Ojpj
b25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQoZ2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Js
b2NrKSk7CiAgICAgfTsKIAogICAgIGZvciAoYXV0byYgb3V0T2ZGbG93Qm94IDogZm9ybWF0dGlu
Z1N0YXRlKCkub3V0T2ZGbG93Qm94ZXMoKSkgewpAQCAtMTU4LDEzICsxNDksMTEgQEAgdm9pZCBG
b3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0
ZSYgaW52YWxpZGF0aW9uU3QKICAgICAgICAgaWYgKCFpbnZhbGlkYXRpb25TdGF0ZS5uZWVkc0xh
eW91dCgqb3V0T2ZGbG93Qm94KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGF1
dG8gb3V0T2ZGbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzID0gaG9yaXpvbnRhbENvbnN0cmFpbnRz
Rm9yTGF5b3V0Qm94KCpvdXRPZkZsb3dCb3gpOwotICAgICAgICBhdXRvIGhvcml6b250YWxDb25z
dHJhaW50c0ZvckJvcmRlckFuZFBhZGRpbmcgPSBIb3Jpem9udGFsQ29uc3RyYWludHMgeyBvdXRP
ZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMudmFsdWUubG9naWNhbExlZnQsIG91dE9mRmxvd0hv
cml6b250YWxDb25zdHJhaW50cy5ib3JkZXJBbmRQYWRkaW5nU3BlY2lmaWNXaWR0aCB9OworICAg
ICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzID0gY29uc3RyYWludHNGb3JMYXlv
dXRCb3goKm91dE9mRmxvd0JveCk7CisgICAgICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRz
Rm9yQm9yZGVyQW5kUGFkZGluZyA9IEhvcml6b250YWxDb25zdHJhaW50cyB7IGNvbnRhaW5pbmdC
bG9ja0NvbnN0cmFpbnRzLmhvcml6b250YWwubG9naWNhbExlZnQsIGNvbnRhaW5pbmdCbG9ja0Nv
bnN0cmFpbnRzLmJvcmRlckFuZFBhZGRpbmdDb25zdHJhaW50cyB9OwogICAgICAgICBjb21wdXRl
Qm9yZGVyQW5kUGFkZGluZygqb3V0T2ZGbG93Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHNGb3JC
b3JkZXJBbmRQYWRkaW5nKTsKIAotICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9
IG91dE9mRmxvd0hvcml6b250YWxDb25zdHJhaW50cy52YWx1ZTsKLSAgICAgICAgYXV0byB2ZXJ0
aWNhbENvbnN0cmFpbnRzID0gdmVydGljYWxDb25zdHJhaW50c0ZvckxheW91dEJveCgqb3V0T2ZG
bG93Qm94KTsKLSAgICAgICAgY29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeSgqb3V0
T2ZGbG93Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwor
ICAgICAgICBjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KCpvdXRPZkZsb3dCb3gs
IGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzKTsKICAgICAgICAgaWYgKGlzPENvbnRhaW5lckJv
eD4oKm91dE9mRmxvd0JveCkpIHsKICAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9IGRv
d25jYXN0PENvbnRhaW5lckJveD4oKm91dE9mRmxvd0JveCk7CiAgICAgICAgICAgICBhdXRvJiBj
b250YWluZXJEaXNwbGF5Qm94ID0gZ2VvbWV0cnlGb3JCb3goY29udGFpbmVyQm94KTsKQEAgLTE3
MywxNSArMTYyLDEzIEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0Nv
bnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvblN0CiAgICAgICAgICAgICAgICAg
YXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdD
b250ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0U3RhdGUoKSk7CiAgICAgICAgICAgICAgICAgZm9y
bWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIEdl
b21ldHJ5Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29udGFpbmVyRGlzcGxheUJveCkp
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2Vv
bWV0cnkoY29udGFpbmVyQm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3Ry
YWludHMpOworICAgICAgICAgICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoY29u
dGFpbmVyQm94LCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cyk7CiAgICAgICAgICAgICBpZiAo
Y29udGFpbmVyQm94Lmhhc0NoaWxkKCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGhvcml6b250
YWxDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQgPSAgR2VvbWV0cnk6Omhvcml6b250YWxD
b25zdHJhaW50c0Zvck91dE9mRmxvdyhjb250YWluZXJEaXNwbGF5Qm94KTsKLSAgICAgICAgICAg
ICAgICBhdXRvIHZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50ID0gR2VvbWV0
cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3coY29udGFpbmVyRGlzcGxheUJveCk7
CiAgICAgICAgICAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENvbnRleHQ6
OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0U3RhdGUoKSk7Ci0g
ICAgICAgICAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQo
aW52YWxpZGF0aW9uU3RhdGUsIGhvcml6b250YWxDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRl
bnQsIHZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KTsKKyAgICAgICAgICAg
ICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRp
b25TdGF0ZSwgR2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudChjb250YWlu
ZXJEaXNwbGF5Qm94KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoKm91dE9mRmxvd0JveCwgaG9yaXpv
bnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIGNvbXB1
dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KCpvdXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9j
a0NvbnN0cmFpbnRzKTsKICAgICB9CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250
ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIkVuZDogbGF5b3V0IG91dC1vZi1mbG93IGNvbnRlbnQgLT4g
Y29udGV4dDogIiA8PCAmbGF5b3V0U3RhdGUoKSA8PCAiIHJvb3Q6ICIgPDwgJnJvb3QoKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDJmODQ4YWY1
ZWM1OTBiMWI5MzA5NWRjMjEwYTJjYzFlYTcxMDJlNWYuLmM4MTgwNzljN2MyOTdmMjI2NWEwMmY2
NGU4OGZlMDQ4M2JkZGZmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dC5oCkBAIC03MCw3ICs3MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIFZlcnRpY2FsQ29uc3Ry
YWludHMgdmVydGljYWw7CiAgICAgfTsKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0SW5GbG93Q29u
dGVudChJbnZhbGlkYXRpb25TdGF0ZSYsIGNvbnN0IENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVu
dCYpID0gMDsKLSAgICB2b2lkIGxheW91dE91dE9mRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3Rh
dGUmLCBjb25zdCBPdXRPZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMmLCBjb25zdCBWZXJ0aWNh
bENvbnN0cmFpbnRzJik7CisKKyAgICBzdHJ1Y3QgQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250
ZW50IHsKKyAgICAgICAgSG9yaXpvbnRhbENvbnN0cmFpbnRzIGhvcml6b250YWw7CisgICAgICAg
IFZlcnRpY2FsQ29uc3RyYWludHMgdmVydGljYWw7CisgICAgICAgIC8vIEJvcmRlcnMgYW5kIHBh
ZGRpbmdzIGFyZSByZXNvbHZlZCBhZ2FpbnN0IHRoZSBjb250YWluaW5nIGJsb2NrJ3MgY29udGVu
dCBib3ggYXMgaWYgdGhlIGJveCB3YXMgYW4gaW4tZmxvdyBib3guCisgICAgICAgIExheW91dFVu
aXQgYm9yZGVyQW5kUGFkZGluZ0NvbnN0cmFpbnRzOworICAgIH07CisgICAgdm9pZCBsYXlvdXRP
dXRPZkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0YXRlJiwgY29uc3QgQ29uc3RyYWludHNGb3JP
dXRPZkZsb3dDb250ZW50Jik7CiAKICAgICBzdHJ1Y3QgSW50cmluc2ljV2lkdGhDb25zdHJhaW50
cyB7CiAgICAgICAgIHZvaWQgZXhwYW5kKExheW91dFVuaXQgaG9yaXpvbnRhbFZhbHVlKTsKQEAg
LTE1MCw5ICsxNTcsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgTGF5b3V0VW5pdCBjb250ZW50
SGVpZ2h0Rm9yRm9ybWF0dGluZ0NvbnRleHRSb290KGNvbnN0IEJveCYpIGNvbnN0OwogCi0gICAg
ICAgIHN0YXRpYyBPdXRPZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMgaG9yaXpvbnRhbENvbnN0
cmFpbnRzRm9yT3V0T2ZGbG93KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFpbmluZ0Jsb2NrR2Vv
bWV0cnkpOwotICAgICAgICBzdGF0aWMgVmVydGljYWxDb25zdHJhaW50cyB2ZXJ0aWNhbENvbnN0
cmFpbnRzRm9yT3V0T2ZGbG93KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFpbmluZ0Jsb2NrR2Vv
bWV0cnkpOwotICAgICAgICBzdGF0aWMgRm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzRm9y
SW5GbG93Q29udGVudCBjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29uc3QgRGlzcGxheTo6
Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSk7CisgICAgICAgIHN0YXRpYyBDb25zdHJhaW50
c0Zvck91dE9mRmxvd0NvbnRlbnQgY29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGNvbnN0
IERpc3BsYXk6OkJveCYgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkpOworICAgICAgICBzdGF0aWMg
Q29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50IGNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChj
b25zdCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KTsKIAogICAgIHByb3Rl
Y3RlZDoKICAgICAgICAgZnJpZW5kIGNsYXNzIEZvcm1hdHRpbmdDb250ZXh0OwpAQCAtMjA0LDgg
KzIxMCw4IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbGxlY3RPdXRPZkZs
b3dEZXNjZW5kYW50c0lmTmVlZGVkKCk7Ci0gICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93VmVydGlj
YWxHZW9tZXRyeShjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmLCBjb25z
dCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7Ci0gICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93SG9yaXpv
bnRhbEdlb21ldHJ5KGNvbnN0IEJveCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYsIGNv
bnN0IFZlcnRpY2FsQ29uc3RyYWludHMmKTsKKyAgICB2b2lkIGNvbXB1dGVPdXRPZkZsb3dWZXJ0
aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29u
dGVudCYpOworICAgIHZvaWQgY29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShjb25z
dCBCb3gmLCBjb25zdCBDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQmKTsKIAogICAgIFdl
YWtQdHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX3Jvb3Q7CiAgICAgRm9ybWF0dGluZ1N0YXRlJiBt
X2Zvcm1hdHRpbmdTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0
aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCAzN2IwYzAwNDE3MGIyNmRlOTkyNjkzYTI4YTFk
YWQ1ZDlhYzRmNWQ0Li5jZTFkNTc1MTM3OWU0MGU3MjlkNjM1YzE3ZWIyZmQ5OTFiZDEzYzA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRy
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0
cnkuY3BwCkBAIC0xMDk4LDE4ICsxMDk4LDE0IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5z
aWNXaWR0aENvbnN0cmFpbnRzIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29uc3RyCiAg
ICAgcmV0dXJuIGludHJpbnNpY1dpZHRoOwogfQogCi1PdXRPZkZsb3dIb3Jpem9udGFsQ29uc3Ry
YWludHMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNG
b3JPdXRPZkZsb3coY29uc3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSkK
K0Zvcm1hdHRpbmdDb250ZXh0OjpDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQgRm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQoY29u
c3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSkKIHsKLSAgICByZXR1cm4g
T3V0T2ZGbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzIHsKLSAgICAgICAgSG9yaXpvbnRhbENvbnN0
cmFpbnRzIHsgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveExlZnQoKSwgY29udGFp
bmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveFdpZHRoKCkgfSwKKyAgICByZXR1cm4geworICAg
ICAgICB7IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LnBhZGRpbmdCb3hMZWZ0KCksIGNvbnRhaW5p
bmdCbG9ja0dlb21ldHJ5LnBhZGRpbmdCb3hXaWR0aCgpIH0sCisgICAgICAgIHsgY29udGFpbmlu
Z0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveFRvcCgpLCBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5w
YWRkaW5nQm94SGVpZ2h0KCkgfSwKICAgICAgICAgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkuY29u
dGVudEJveFdpZHRoKCkgfTsKIH0KIAotVmVydGljYWxDb25zdHJhaW50cyBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3coY29uc3QgRGlz
cGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSkKLXsKLSAgICByZXR1cm4gVmVydGlj
YWxDb25zdHJhaW50cyB7IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LnBhZGRpbmdCb3hUb3AoKSwg
Y29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveEhlaWdodCgpIH07Ci19Ci0KIEZvcm1h
dHRpbmdDb250ZXh0OjpDb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQgRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29uc3QgRGlzcGxheTo6
Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSkKIHsKICAgICByZXR1cm4geyB7IGNvbnRhaW5p
bmdCbG9ja0dlb21ldHJ5LmNvbnRlbnRCb3hMZWZ0KCksIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5
LmNvbnRlbnRCb3hXaWR0aCgpIH0sIHsgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkuY29udGVudEJv
eFRvcCgpLCB7IH0gfSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCmlu
ZGV4IGVlOGRkYmQ2MzNlNGQ1ZDQ3OTVlZmVhNDZjNGZkZDRmY2VkZWQ5YWYuLjI4NGM2MjQwZTMy
Y2U3ZjYzZmQzNmNhZmJjODlhNTM5ZDkwNjZjOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5
b3V0Q29udGV4dC5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCB2b2lkIExheW91dENvbnRleHQ6Omxh
eW91dEZvcm1hdHRpbmdDb250ZXh0U3VidHJlZShjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRp
bgogICAgIC8vIEl0IGNvbnN0cnVjdHMgYW4gRkMgZm9yIGRlc2NlbmRhbnQgYm94ZXMgYW5kIHJ1
bnMgbGF5b3V0IG9uIHRoZW0uIFRoZSBmb3JtYXR0aW5nQ29udGV4dFJvb3QgaXMgbGFpZCBvdXQg
aW4gdGhlIEZDIGluIHdoaWNoIGl0IGxpdmVzIChwYXJlbnQgZm9ybWF0dGluZyBjb250ZXh0KS4K
ICAgICAvLyBJdCBhbHNvIG1lYW5zIHRoYXQgdGhlIGZvcm1hdHRpbmdDb250ZXh0Um9vdCBoYXMg
dG8gaGF2ZSBhIHZhbGlkL2NsZWFuIGdlb21ldHJ5IGF0IHRoaXMgcG9pbnQuCiAgICAgewotICAg
ICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9IE91dE9mRmxvd0hvcml6b250YWxDb25z
dHJhaW50cyB7IEhvcml6b250YWxDb25zdHJhaW50cyB7IGRpc3BsYXlCb3gucGFkZGluZ0JveExl
ZnQoKSwgZGlzcGxheUJveC5wYWRkaW5nQm94V2lkdGgoKSB9LCBkaXNwbGF5Qm94LmNvbnRlbnRC
b3hXaWR0aCgpIH07Ci0gICAgICAgIGF1dG8gdmVydGljYWxDb25zdHJhaW50cyA9IFZlcnRpY2Fs
Q29uc3RyYWludHMgeyBkaXNwbGF5Qm94LnBhZGRpbmdCb3hUb3AoKSwgZGlzcGxheUJveC5wYWRk
aW5nQm94SGVpZ2h0KCkgfTsKLSAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9m
Rmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVy
dGljYWxDb25zdHJhaW50cyk7CisgICAgICAgIGF1dG8gY29uc3RyYWludHMgPSBGb3JtYXR0aW5n
Q29udGV4dDo6Q29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50IHsgeyBkaXNwbGF5Qm94LnBh
ZGRpbmdCb3hMZWZ0KCksIGRpc3BsYXlCb3gucGFkZGluZ0JveFdpZHRoKCkgfSwKKyAgICAgICAg
ICAgIHsgZGlzcGxheUJveC5wYWRkaW5nQm94VG9wKCksIGRpc3BsYXlCb3gucGFkZGluZ0JveEhl
aWdodCgpIH0sIGRpc3BsYXlCb3guY29udGVudEJveFdpZHRoKCkgfTsKKyAgICAgICAgZm9ybWF0
dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIGNv
bnN0cmFpbnRzKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9MYXlvdXRVbml0cy5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmgKaW5k
ZXggOTA5MzI0ZDRlMjkwMWY1MWI5ZWFjZWQ3ZTc1YjRiZjRlYThkNTVkYS4uNjI2MGY4YzBhYWI1
MjIxNjI1NTY3NjY3YWQ0MzEwZjE5NmFlODVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L0xheW91dFVuaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVu
aXRzLmgKQEAgLTE2MSwxMiArMTYxLDYgQEAgc3RydWN0IEhvcml6b250YWxDb25zdHJhaW50cyB7
CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGg7CiB9OwogCi1zdHJ1Y3QgT3V0T2ZGbG93SG9y
aXpvbnRhbENvbnN0cmFpbnRzIHsKLSAgICBIb3Jpem9udGFsQ29uc3RyYWludHMgdmFsdWU7Ci0g
ICAgLy8gQm9yZGVycyBhbmQgcGFkZGluZ3MgYXJlIHJlc29sdmVkIGFnYWluc3QgdGhlIGNvbnRh
aW5pbmcgYmxvY2sncyBjb250ZW50IGJveCBhcyBpZiB0aGUgYm94IHdhcyBhbiBpbi1mbG93IGJv
eC4KLSAgICBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmdTcGVjaWZpY1dpZHRoOwotfTsKLQog
c3RydWN0IFZlcnRpY2FsQ29uc3RyYWludHMgewogICAgIExheW91dFVuaXQgbG9naWNhbFRvcDsK
ICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBsb2dpY2FsSGVpZ2h0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAKaW5kZXggODIyYmY5MmQzMWVhZjQ2ODYzMzdhYmU3YTE2M2Y0MjA3MmFm
ODI3My4uNjY3N2M5YmEwOGQ2ZjcxOWFlNTI0NjU4MDUyOTRlZjZjY2IzZTkxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xNTIsMTAgKzE1Miw3IEBAIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYg
aW52YWxpZGF0aW9uCiAgICAgICAgICAgICAgICAgLy8gTm93IHRoYXQgd2UgY29tcHV0ZWQgdGhl
IHJvb3QncyBoZWlnaHQsIHdlIGNhbiBsYXlvdXQgdGhlIG91dC1vZi1mbG93IGRlc2NlbmRhbnRz
LgogICAgICAgICAgICAgICAgIGlmIChpczxDb250YWluZXJCb3g+KGxheW91dEJveCkgJiYgZG93
bmNhc3Q8Q29udGFpbmVyQm94PihsYXlvdXRCb3gpLmhhc0NoaWxkKCkpIHsKICAgICAgICAgICAg
ICAgICAgICAgYXV0byYgY29udGFpbmVyQm94ID0gZG93bmNhc3Q8Q29udGFpbmVyQm94PihsYXlv
dXRCb3gpOwotICAgICAgICAgICAgICAgICAgICBhdXRvJiByb290RGlzcGxheUJveCA9IGdlb21l
dHJ5Rm9yQm94KGNvbnRhaW5lckJveCk7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gaG9yaXpv
bnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudCA9ICBHZW9tZXRyeTo6aG9yaXpvbnRh
bENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KHJvb3REaXNwbGF5Qm94KTsKLSAgICAgICAgICAgICAg
ICAgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudCA9IEdlb21l
dHJ5Ojp2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KHJvb3REaXNwbGF5Qm94KTsKLSAg
ICAgICAgICAgICAgICAgICAgTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQo
Y29udGFpbmVyQm94LCBsYXlvdXRTdGF0ZSgpKS0+bGF5b3V0T3V0T2ZGbG93Q29udGVudChpbnZh
bGlkYXRpb25TdGF0ZSwgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudCwg
dmVydGljYWxDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQpOworICAgICAgICAgICAgICAg
ICAgICBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChjb250YWluZXJCb3gs
IGxheW91dFN0YXRlKCkpLT5sYXlvdXRPdXRPZkZsb3dDb250ZW50KGludmFsaWRhdGlvblN0YXRl
LCBHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGdlb21ldHJ5Rm9yQm94
KGNvbnRhaW5lckJveCkpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAvLyBSZXNvbHZlIGZpbmFsIHBvc2l0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmNwcAppbmRleCA2YTgzZTE2MTVhZWI0YzcxZWM4MTgwZDM1MTU3OTI2ZjlkMGJm
ZWRkLi5mYTVkMjRhNzg4NzRiMDIxYzczNGY2MmUxNTZiOTgwNTQyZTY5ODM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xMDMsMTAgKzEwMyw4IEBAIHZvaWQgSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3Rh
dGUmIGludmFsaWRhdGlvCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNvbXB1
dGVIZWlnaHRBbmRNYXJnaW4oY29udGFpbmVyQm94LCBjb25zdHJhaW50cy5ob3Jpem9udGFsKTsK
ICAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyQm94Lmhhc0NoaWxkKCkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNGb3JPdXRPZkZsb3cgPSBHZW9t
ZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KGZvcm1hdHRpbmdSb290RGlz
cGxheUJveCk7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gdmVydGljYWxDb25zdHJhaW50c0Zv
ck91dE9mRmxvdyA9IEdlb21ldHJ5Ojp2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KGZv
cm1hdHRpbmdSb290RGlzcGxheUJveCk7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gZm9ybWF0
dGluZ0NvbnRleHQgPSBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChjb250
YWluZXJCb3gsIGxheW91dFN0YXRlKCkpOwotICAgICAgICAgICAgICAgICAgICBmb3JtYXR0aW5n
Q29udGV4dC0+bGF5b3V0T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgaG9yaXpv
bnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93LCB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZG
bG93KTsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9m
Rmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIEdlb21ldHJ5Ojpjb25zdHJhaW50c0Zvck91
dE9mRmxvd0NvbnRlbnQoZm9ybWF0dGluZ1Jvb3REaXNwbGF5Qm94KSk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlZCBh
bmQgb3RoZXIgdHlwZSBvZiBsZWFmIGF0b21pYyBpbmxpbmUgYm94ZXMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397837</attachid>
            <date>2020-04-28 07:50:54 -0700</date>
            <delta_ts>2020-04-28 08:25:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211125-20200428075053.patch</filename>
            <type>text/plain</type>
            <size>18580</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI2OTAzNTk0OTRiNGQz
NWEyZWUzOTlhZjVmZDkzYTAwODU5YmE5NC4uZDAwM2M1NTNkODYzMGQ4NTNmMDE4NGE2MjQ2MGQw
YmQ4NTQ5MjgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA0LTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW50cm9kdWNlIEZv
cm1hdHRpbmdDb250ZXh0OjpDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTEyNQorCisgICAgICAg
IFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIEhvcml6b250YWwgYW5kIHZl
cnRpY2FsIG91dC1vZi1mbG93IGNvbnN0cmFpbnRzIGFyZSBhbHdheXMgY29tcHV0ZWQgYW5kIHVz
ZWQgaW4gcGFpcnMuCisKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9m
Rmxvd0hvcml6b250YWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1h
dHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeSk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dDb250
ZW50KToKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBs
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JPdXRPZkZs
b3dDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JPdXRPZkZsb3cpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnZl
cnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3cpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91
dC9MYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29u
dGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKToKKyAgICAgICAgKiBsYXlvdXQv
TGF5b3V0VW5pdHMuaDoKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50
KToKKwogMjAyMC0wNC0yNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdIEludHJvZHVjZSBGb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNGb3JJbkZs
b3dDb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcApp
bmRleCBmZTY0ZmUzZDJmNTJkN2Y5MTI3YTAyNTc4M2ZiMzM2ZDUyYjViMWM5Li4xMWQ4ZjBlZTBi
NGI5MjljMTYwZWI5ZjEzNzQwZDFmOTk2OWNkMzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTY5LDE0ICs2OSwxNCBAQCBMYXlvdXRTdGF0ZSYg
Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dFN0YXRlKCkgY29uc3QKICAgICByZXR1cm4gbV9mb3Jt
YXR0aW5nU3RhdGUubGF5b3V0U3RhdGUoKTsKIH0KIAotdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6
Y29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCwg
Y29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0
IFZlcnRpY2FsQ29uc3RyYWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMpCit2b2lkIEZvcm1hdHRp
bmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGNvbnN0IEJveCYg
bGF5b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQmIGNvbnN0cmFp
bnRzKQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOwog
ICAgIGF1dG8gY29tcHV0ZSA9IFsmXShPcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgpIHsK
LSAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkub3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGxh
eW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzLCB7IHVz
ZWRXaWR0aCwgeyB9IH0pOworICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5vdXRPZkZsb3dIb3Jp
em9udGFsR2VvbWV0cnkobGF5b3V0Qm94LCBjb25zdHJhaW50cy5ob3Jpem9udGFsLCBjb25zdHJh
aW50cy52ZXJ0aWNhbCwgeyB1c2VkV2lkdGgsIHsgfSB9KTsKICAgICB9OwogCi0gICAgYXV0byBj
b250YWluaW5nQmxvY2tXaWR0aCA9IGhvcml6b250YWxDb25zdHJhaW50cy5sb2dpY2FsV2lkdGg7
CisgICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IGNvbnN0cmFpbnRzLmhvcml6b250YWwu
bG9naWNhbFdpZHRoOwogICAgIGF1dG8gaG9yaXpvbnRhbEdlb21ldHJ5ID0gY29tcHV0ZSh7IH0p
OwogICAgIGlmIChhdXRvIG1heFdpZHRoID0gZ2VvbWV0cnkoKS5jb21wdXRlZE1heFdpZHRoKGxh
eW91dEJveCwgY29udGFpbmluZ0Jsb2NrV2lkdGgpKSB7CiAgICAgICAgIGF1dG8gbWF4SG9yaXpv
bnRhbEdlb21ldHJ5ID0gY29tcHV0ZShtYXhXaWR0aCk7CkBAIC05NywxNCArOTcsMTQgQEAgdm9p
ZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShj
b25zdCBCb3gmIGxheW91dEJveCwKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxDb21wdXRl
ZE1hcmdpbihob3Jpem9udGFsR2VvbWV0cnkuY29udGVudFdpZHRoQW5kTWFyZ2luLmNvbXB1dGVk
TWFyZ2luKTsKIH0KIAotdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd1Zl
cnRpY2FsR2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250YWxDb25z
dHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRz
JiB2ZXJ0aWNhbENvbnN0cmFpbnRzKQordm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91
dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0
cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudCYgY29uc3RyYWludHMpCiB7CiAgICAgQVNTRVJUKGxh
eW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CiAgICAgYXV0byBjb21wdXRlID0gWyZd
KE9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRIZWlnaHQpIHsKLSAgICAgICAgcmV0dXJuIGdlb21l
dHJ5KCkub3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShsYXlvdXRCb3gsIGhvcml6b250YWxDb25z
dHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cywgeyB1c2VkSGVpZ2h0IH0pOworICAgICAgICBy
ZXR1cm4gZ2VvbWV0cnkoKS5vdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGxheW91dEJveCwgY29u
c3RyYWludHMuaG9yaXpvbnRhbCwgY29uc3RyYWludHMudmVydGljYWwsIHsgdXNlZEhlaWdodCB9
KTsKICAgICB9OwogCi0gICAgYXV0byBjb250YWluaW5nQmxvY2tIZWlnaHQgPSAqdmVydGljYWxD
b25zdHJhaW50cy5sb2dpY2FsSGVpZ2h0OworICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrSGVpZ2h0
ID0gKmNvbnN0cmFpbnRzLnZlcnRpY2FsLmxvZ2ljYWxIZWlnaHQ7CiAgICAgYXV0byB2ZXJ0aWNh
bEdlb21ldHJ5ID0gY29tcHV0ZSh7IH0pOwogICAgIGlmIChhdXRvIG1heEhlaWdodCA9IGdlb21l
dHJ5KCkuY29tcHV0ZWRNYXhIZWlnaHQobGF5b3V0Qm94LCBjb250YWluaW5nQmxvY2tIZWlnaHQp
KSB7CiAgICAgICAgIGF1dG8gbWF4VmVydGljYWxHZW9tZXRyeSA9IGNvbXB1dGUobWF4SGVpZ2h0
KTsKQEAgLTEzMywyNCArMTMzLDE1IEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVC
b3JkZXJBbmRQYWRkaW5nKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3JpCiAgICAgZGlz
cGxheUJveC5zZXRQYWRkaW5nKGdlb21ldHJ5KCkuY29tcHV0ZWRQYWRkaW5nKGxheW91dEJveCwg
aG9yaXpvbnRhbENvbnN0cmFpbnQubG9naWNhbFdpZHRoKSk7CiB9CiAKLXZvaWQgRm9ybWF0dGlu
Z0NvbnRleHQ6OmxheW91dE91dE9mRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmIGludmFs
aWRhdGlvblN0YXRlLCBjb25zdCBPdXRPZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMmIHJvb3RI
b3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmIHJvb3RWZXJ0
aWNhbENvbnN0cmFpbnRzKQordm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93
Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3RhdGUsIGNvbnN0IENvbnN0
cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudCYgY29uc3RyYWludHMpCiB7CiAgICAgTE9HX1dJVEhf
U1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIlN0YXJ0OiBsYXlvdXQg
b3V0LW9mLWZsb3cgY29udGVudCAtPiBjb250ZXh0OiAiIDw8ICZsYXlvdXRTdGF0ZSgpIDw8ICIg
cm9vdDogIiA8PCAmcm9vdCgpKTsKIAogICAgIGNvbGxlY3RPdXRPZkZsb3dEZXNjZW5kYW50c0lm
TmVlZGVkKCk7CiAKLSAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c0ZvckxheW91dEJveCA9
IFsmXSAoY29uc3QgYXV0byYgb3V0T2ZGbG93Qm94KSB7CisgICAgYXV0byBjb25zdHJhaW50c0Zv
ckxheW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgb3V0T2ZGbG93Qm94KSB7CiAgICAgICAgIGF1
dG8mIGNvbnRhaW5pbmdCbG9jayA9IG91dE9mRmxvd0JveC5jb250YWluaW5nQmxvY2soKTsKLSAg
ICAgICAgaWYgKCZjb250YWluaW5nQmxvY2sgPT0gJnJvb3QoKSkKLSAgICAgICAgICAgIHJldHVy
biByb290SG9yaXpvbnRhbENvbnN0cmFpbnRzOwotICAgICAgICByZXR1cm4gR2VvbWV0cnk6Omhv
cml6b250YWxDb25zdHJhaW50c0Zvck91dE9mRmxvdyhnZW9tZXRyeUZvckJveChjb250YWluaW5n
QmxvY2spKTsKLSAgICB9OwotCi0gICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yTGF5b3V0
Qm94ID0gWyZdIChjb25zdCBhdXRvJiBvdXRPZkZsb3dCb3gpIHsKLSAgICAgICAgYXV0byYgY29u
dGFpbmluZ0Jsb2NrID0gb3V0T2ZGbG93Qm94LmNvbnRhaW5pbmdCbG9jaygpOwotICAgICAgICBp
ZiAoJmNvbnRhaW5pbmdCbG9jayA9PSAmcm9vdCgpKQotICAgICAgICAgICAgcmV0dXJuIHJvb3RW
ZXJ0aWNhbENvbnN0cmFpbnRzOwotICAgICAgICByZXR1cm4gR2VvbWV0cnk6OnZlcnRpY2FsQ29u
c3RyYWludHNGb3JPdXRPZkZsb3coZ2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Jsb2NrKSk7Cisg
ICAgICAgIHJldHVybiAmY29udGFpbmluZ0Jsb2NrID09ICZyb290KCkgPyBjb25zdHJhaW50cyA6
IEdlb21ldHJ5Ojpjb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQoZ2VvbWV0cnlGb3JCb3go
Y29udGFpbmluZ0Jsb2NrKSk7CiAgICAgfTsKIAogICAgIGZvciAoYXV0byYgb3V0T2ZGbG93Qm94
IDogZm9ybWF0dGluZ1N0YXRlKCkub3V0T2ZGbG93Qm94ZXMoKSkgewpAQCAtMTU4LDEzICsxNDks
MTEgQEAgdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZh
bGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3QKICAgICAgICAgaWYgKCFpbnZhbGlkYXRpb25T
dGF0ZS5uZWVkc0xheW91dCgqb3V0T2ZGbG93Qm94KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
Ci0gICAgICAgIGF1dG8gb3V0T2ZGbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzID0gaG9yaXpvbnRh
bENvbnN0cmFpbnRzRm9yTGF5b3V0Qm94KCpvdXRPZkZsb3dCb3gpOwotICAgICAgICBhdXRvIGhv
cml6b250YWxDb25zdHJhaW50c0ZvckJvcmRlckFuZFBhZGRpbmcgPSBIb3Jpem9udGFsQ29uc3Ry
YWludHMgeyBvdXRPZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMudmFsdWUubG9naWNhbExlZnQs
IG91dE9mRmxvd0hvcml6b250YWxDb25zdHJhaW50cy5ib3JkZXJBbmRQYWRkaW5nU3BlY2lmaWNX
aWR0aCB9OworICAgICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzID0gY29uc3Ry
YWludHNGb3JMYXlvdXRCb3goKm91dE9mRmxvd0JveCk7CisgICAgICAgIGF1dG8gaG9yaXpvbnRh
bENvbnN0cmFpbnRzRm9yQm9yZGVyQW5kUGFkZGluZyA9IEhvcml6b250YWxDb25zdHJhaW50cyB7
IGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzLmhvcml6b250YWwubG9naWNhbExlZnQsIGNvbnRh
aW5pbmdCbG9ja0NvbnN0cmFpbnRzLmJvcmRlckFuZFBhZGRpbmdDb25zdHJhaW50cyB9OwogICAg
ICAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGluZygqb3V0T2ZGbG93Qm94LCBob3Jpem9udGFsQ29u
c3RyYWludHNGb3JCb3JkZXJBbmRQYWRkaW5nKTsKIAotICAgICAgICBhdXRvIGhvcml6b250YWxD
b25zdHJhaW50cyA9IG91dE9mRmxvd0hvcml6b250YWxDb25zdHJhaW50cy52YWx1ZTsKLSAgICAg
ICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzID0gdmVydGljYWxDb25zdHJhaW50c0ZvckxheW91
dEJveCgqb3V0T2ZGbG93Qm94KTsKLSAgICAgICAgY29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxH
ZW9tZXRyeSgqb3V0T2ZGbG93Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29u
c3RyYWludHMpOworICAgICAgICBjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KCpv
dXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzKTsKICAgICAgICAgaWYgKGlz
PENvbnRhaW5lckJveD4oKm91dE9mRmxvd0JveCkpIHsKICAgICAgICAgICAgIGF1dG8mIGNvbnRh
aW5lckJveCA9IGRvd25jYXN0PENvbnRhaW5lckJveD4oKm91dE9mRmxvd0JveCk7CiAgICAgICAg
ICAgICBhdXRvJiBjb250YWluZXJEaXNwbGF5Qm94ID0gZ2VvbWV0cnlGb3JCb3goY29udGFpbmVy
Qm94KTsKQEAgLTE3MywxNSArMTYyLDEzIEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91
dE91dE9mRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvblN0CiAgICAg
ICAgICAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENvbnRleHQ6OmNyZWF0
ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0U3RhdGUoKSk7CiAgICAgICAg
ICAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0
aW9uU3RhdGUsIEdlb21ldHJ5Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29udGFpbmVy
RGlzcGxheUJveCkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY29tcHV0ZU91dE9mRmxv
d1ZlcnRpY2FsR2VvbWV0cnkoY29udGFpbmVyQm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZl
cnRpY2FsQ29uc3RyYWludHMpOworICAgICAgICAgICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2Fs
R2VvbWV0cnkoY29udGFpbmVyQm94LCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cyk7CiAgICAg
ICAgICAgICBpZiAoY29udGFpbmVyQm94Lmhhc0NoaWxkKCkpIHsKLSAgICAgICAgICAgICAgICBh
dXRvIGhvcml6b250YWxDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQgPSAgR2VvbWV0cnk6
Omhvcml6b250YWxDb25zdHJhaW50c0Zvck91dE9mRmxvdyhjb250YWluZXJEaXNwbGF5Qm94KTsK
LSAgICAgICAgICAgICAgICBhdXRvIHZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250
ZW50ID0gR2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3coY29udGFpbmVy
RGlzcGxheUJveCk7CiAgICAgICAgICAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExh
eW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0
U3RhdGUoKSk7Ci0gICAgICAgICAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9m
Rmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIGhvcml6b250YWxDb25zdHJhaW50c0Zvck91
dE9mRmxvd0NvbnRlbnQsIHZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KTsK
KyAgICAgICAgICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZGbG93Q29udGVu
dChpbnZhbGlkYXRpb25TdGF0ZSwgR2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29u
dGVudChjb250YWluZXJEaXNwbGF5Qm94KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoKm91dE9mRmxv
d0JveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICAg
ICAgICAgIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KCpvdXRPZkZsb3dCb3gsIGNv
bnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzKTsKICAgICB9CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZv
cm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIkVuZDogbGF5b3V0IG91dC1vZi1mbG93
IGNvbnRlbnQgLT4gY29udGV4dDogIiA8PCAmbGF5b3V0U3RhdGUoKSA8PCAiIHJvb3Q6ICIgPDwg
JnJvb3QoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGlu
Z0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCmlu
ZGV4IDJmODQ4YWY1ZWM1OTBiMWI5MzA5NWRjMjEwYTJjYzFlYTcxMDJlNWYuLmM4MTgwNzljN2My
OTdmMjI2NWEwMmY2NGU4OGZlMDQ4M2JkZGZmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nQ29udGV4dC5oCkBAIC03MCw3ICs3MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIFZl
cnRpY2FsQ29uc3RyYWludHMgdmVydGljYWw7CiAgICAgfTsKICAgICB2aXJ0dWFsIHZvaWQgbGF5
b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYsIGNvbnN0IENvbnN0cmFpbnRzRm9y
SW5GbG93Q29udGVudCYpID0gMDsKLSAgICB2b2lkIGxheW91dE91dE9mRmxvd0NvbnRlbnQoSW52
YWxpZGF0aW9uU3RhdGUmLCBjb25zdCBPdXRPZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMmLCBj
b25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7CisKKyAgICBzdHJ1Y3QgQ29uc3RyYWludHNGb3JP
dXRPZkZsb3dDb250ZW50IHsKKyAgICAgICAgSG9yaXpvbnRhbENvbnN0cmFpbnRzIGhvcml6b250
YWw7CisgICAgICAgIFZlcnRpY2FsQ29uc3RyYWludHMgdmVydGljYWw7CisgICAgICAgIC8vIEJv
cmRlcnMgYW5kIHBhZGRpbmdzIGFyZSByZXNvbHZlZCBhZ2FpbnN0IHRoZSBjb250YWluaW5nIGJs
b2NrJ3MgY29udGVudCBib3ggYXMgaWYgdGhlIGJveCB3YXMgYW4gaW4tZmxvdyBib3guCisgICAg
ICAgIExheW91dFVuaXQgYm9yZGVyQW5kUGFkZGluZ0NvbnN0cmFpbnRzOworICAgIH07CisgICAg
dm9pZCBsYXlvdXRPdXRPZkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0YXRlJiwgY29uc3QgQ29u
c3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50Jik7CiAKICAgICBzdHJ1Y3QgSW50cmluc2ljV2lk
dGhDb25zdHJhaW50cyB7CiAgICAgICAgIHZvaWQgZXhwYW5kKExheW91dFVuaXQgaG9yaXpvbnRh
bFZhbHVlKTsKQEAgLTE1MCw5ICsxNTcsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgTGF5b3V0
VW5pdCBjb250ZW50SGVpZ2h0Rm9yRm9ybWF0dGluZ0NvbnRleHRSb290KGNvbnN0IEJveCYpIGNv
bnN0OwogCi0gICAgICAgIHN0YXRpYyBPdXRPZkZsb3dIb3Jpem9udGFsQ29uc3RyYWludHMgaG9y
aXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFp
bmluZ0Jsb2NrR2VvbWV0cnkpOwotICAgICAgICBzdGF0aWMgVmVydGljYWxDb25zdHJhaW50cyB2
ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFp
bmluZ0Jsb2NrR2VvbWV0cnkpOwotICAgICAgICBzdGF0aWMgRm9ybWF0dGluZ0NvbnRleHQ6OkNv
bnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCBjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29u
c3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSk7CisgICAgICAgIHN0YXRp
YyBDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQgY29uc3RyYWludHNGb3JPdXRPZkZsb3dD
b250ZW50KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkpOworICAg
ICAgICBzdGF0aWMgQ29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50IGNvbnN0cmFpbnRzRm9ySW5G
bG93Q29udGVudChjb25zdCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KTsK
IAogICAgIHByb3RlY3RlZDoKICAgICAgICAgZnJpZW5kIGNsYXNzIEZvcm1hdHRpbmdDb250ZXh0
OwpAQCAtMjA0LDggKzIxMCw4IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2b2lkIGNv
bGxlY3RPdXRPZkZsb3dEZXNjZW5kYW50c0lmTmVlZGVkKCk7Ci0gICAgdm9pZCBjb21wdXRlT3V0
T2ZGbG93VmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3Ry
YWludHMmLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7Ci0gICAgdm9pZCBjb21wdXRlT3V0
T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGNvbnN0IEJveCYsIGNvbnN0IEhvcml6b250YWxDb25z
dHJhaW50cyYsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmKTsKKyAgICB2b2lkIGNvbXB1dGVP
dXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzRm9y
T3V0T2ZGbG93Q29udGVudCYpOworICAgIHZvaWQgY29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxH
ZW9tZXRyeShjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQm
KTsKIAogICAgIFdlYWtQdHI8Y29uc3QgQ29udGFpbmVyQm94PiBtX3Jvb3Q7CiAgICAgRm9ybWF0
dGluZ1N0YXRlJiBtX2Zvcm1hdHRpbmdTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCAzN2IwYzAwNDE3MGIyNmRl
OTkyNjkzYTI4YTFkYWQ1ZDlhYzRmNWQ0Li5jZTFkNTc1MTM3OWU0MGU3MjlkNjM1YzE3ZWIyZmQ5
OTFiZDEzYzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHRHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwCkBAIC0xMDk4LDE4ICsxMDk4LDE0IEBAIEZvcm1hdHRpbmdDb250
ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6Y29uc3RyCiAgICAgcmV0dXJuIGludHJpbnNpY1dpZHRoOwogfQogCi1PdXRPZkZsb3dIb3Jp
em9udGFsQ29uc3RyYWludHMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpob3Jpem9udGFs
Q29uc3RyYWludHNGb3JPdXRPZkZsb3coY29uc3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxv
Y2tHZW9tZXRyeSkKK0Zvcm1hdHRpbmdDb250ZXh0OjpDb25zdHJhaW50c0Zvck91dE9mRmxvd0Nv
bnRlbnQgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb25zdHJhaW50c0Zvck91dE9mRmxv
d0NvbnRlbnQoY29uc3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSkKIHsK
LSAgICByZXR1cm4gT3V0T2ZGbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzIHsKLSAgICAgICAgSG9y
aXpvbnRhbENvbnN0cmFpbnRzIHsgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveExl
ZnQoKSwgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveFdpZHRoKCkgfSwKKyAgICBy
ZXR1cm4geworICAgICAgICB7IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LnBhZGRpbmdCb3hMZWZ0
KCksIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LnBhZGRpbmdCb3hXaWR0aCgpIH0sCisgICAgICAg
IHsgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveFRvcCgpLCBjb250YWluaW5nQmxv
Y2tHZW9tZXRyeS5wYWRkaW5nQm94SGVpZ2h0KCkgfSwKICAgICAgICAgY29udGFpbmluZ0Jsb2Nr
R2VvbWV0cnkuY29udGVudEJveFdpZHRoKCkgfTsKIH0KIAotVmVydGljYWxDb25zdHJhaW50cyBG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JPdXRPZkZs
b3coY29uc3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSkKLXsKLSAgICBy
ZXR1cm4gVmVydGljYWxDb25zdHJhaW50cyB7IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LnBhZGRp
bmdCb3hUb3AoKSwgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveEhlaWdodCgpIH07
Ci19Ci0KIEZvcm1hdHRpbmdDb250ZXh0OjpDb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQgRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29u
c3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSkKIHsKICAgICByZXR1cm4g
eyB7IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LmNvbnRlbnRCb3hMZWZ0KCksIGNvbnRhaW5pbmdC
bG9ja0dlb21ldHJ5LmNvbnRlbnRCb3hXaWR0aCgpIH0sIHsgY29udGFpbmluZ0Jsb2NrR2VvbWV0
cnkuY29udGVudEJveFRvcCgpLCB7IH0gfSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENv
bnRleHQuY3BwCmluZGV4IGVlOGRkYmQ2MzNlNGQ1ZDQ3OTVlZmVhNDZjNGZkZDRmY2VkZWQ5YWYu
LjI4NGM2MjQwZTMyY2U3ZjYzZmQzNmNhZmJjODlhNTM5ZDkwNjZjOWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCB2b2lkIExheW91
dENvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0U3VidHJlZShjb25zdCBDb250YWluZXJC
b3gmIGZvcm1hdHRpbgogICAgIC8vIEl0IGNvbnN0cnVjdHMgYW4gRkMgZm9yIGRlc2NlbmRhbnQg
Ym94ZXMgYW5kIHJ1bnMgbGF5b3V0IG9uIHRoZW0uIFRoZSBmb3JtYXR0aW5nQ29udGV4dFJvb3Qg
aXMgbGFpZCBvdXQgaW4gdGhlIEZDIGluIHdoaWNoIGl0IGxpdmVzIChwYXJlbnQgZm9ybWF0dGlu
ZyBjb250ZXh0KS4KICAgICAvLyBJdCBhbHNvIG1lYW5zIHRoYXQgdGhlIGZvcm1hdHRpbmdDb250
ZXh0Um9vdCBoYXMgdG8gaGF2ZSBhIHZhbGlkL2NsZWFuIGdlb21ldHJ5IGF0IHRoaXMgcG9pbnQu
CiAgICAgewotICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9IE91dE9mRmxvd0hv
cml6b250YWxDb25zdHJhaW50cyB7IEhvcml6b250YWxDb25zdHJhaW50cyB7IGRpc3BsYXlCb3gu
cGFkZGluZ0JveExlZnQoKSwgZGlzcGxheUJveC5wYWRkaW5nQm94V2lkdGgoKSB9LCBkaXNwbGF5
Qm94LmNvbnRlbnRCb3hXaWR0aCgpIH07Ci0gICAgICAgIGF1dG8gdmVydGljYWxDb25zdHJhaW50
cyA9IFZlcnRpY2FsQ29uc3RyYWludHMgeyBkaXNwbGF5Qm94LnBhZGRpbmdCb3hUb3AoKSwgZGlz
cGxheUJveC5wYWRkaW5nQm94SGVpZ2h0KCkgfTsKLSAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQt
PmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIGhvcml6b250YWxDb25z
dHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyk7CisgICAgICAgIGF1dG8gY29uc3RyYWludHMg
PSBGb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50IHsgeyBk
aXNwbGF5Qm94LnBhZGRpbmdCb3hMZWZ0KCksIGRpc3BsYXlCb3gucGFkZGluZ0JveFdpZHRoKCkg
fSwKKyAgICAgICAgICAgIHsgZGlzcGxheUJveC5wYWRkaW5nQm94VG9wKCksIGRpc3BsYXlCb3gu
cGFkZGluZ0JveEhlaWdodCgpIH0sIGRpc3BsYXlCb3guY29udGVudEJveFdpZHRoKCkgfTsKKyAg
ICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0
aW9uU3RhdGUsIGNvbnN0cmFpbnRzKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9MYXlvdXRVbml0cy5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dFVuaXRzLmgKaW5kZXggOTA5MzI0ZDRlMjkwMWY1MWI5ZWFjZWQ3ZTc1YjRiZjRlYThkNTVkYS4u
NjI2MGY4YzBhYWI1MjIxNjI1NTY3NjY3YWQ0MzEwZjE5NmFlODVkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0xheW91dFVuaXRzLmgKQEAgLTE2MSwxMiArMTYxLDYgQEAgc3RydWN0IEhvcml6b250YWxD
b25zdHJhaW50cyB7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGg7CiB9OwogCi1zdHJ1Y3Qg
T3V0T2ZGbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzIHsKLSAgICBIb3Jpem9udGFsQ29uc3RyYWlu
dHMgdmFsdWU7Ci0gICAgLy8gQm9yZGVycyBhbmQgcGFkZGluZ3MgYXJlIHJlc29sdmVkIGFnYWlu
c3QgdGhlIGNvbnRhaW5pbmcgYmxvY2sncyBjb250ZW50IGJveCBhcyBpZiB0aGUgYm94IHdhcyBh
biBpbi1mbG93IGJveC4KLSAgICBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmdTcGVjaWZpY1dp
ZHRoOwotfTsKLQogc3RydWN0IFZlcnRpY2FsQ29uc3RyYWludHMgewogICAgIExheW91dFVuaXQg
bG9naWNhbFRvcDsKICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBsb2dpY2FsSGVpZ2h0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggODIyYmY5MmQzMWVhZjQ2ODYzMzdhYmU3
YTE2M2Y0MjA3MmFmODI3My4uNjY3N2M5YmEwOGQ2ZjcxOWFlNTI0NjU4MDUyOTRlZjZjY2IzZTkx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xNTIsMTAgKzE1Miw3IEBA
IHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlk
YXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uCiAgICAgICAgICAgICAgICAgLy8gTm93IHRoYXQgd2Ug
Y29tcHV0ZWQgdGhlIHJvb3QncyBoZWlnaHQsIHdlIGNhbiBsYXlvdXQgdGhlIG91dC1vZi1mbG93
IGRlc2NlbmRhbnRzLgogICAgICAgICAgICAgICAgIGlmIChpczxDb250YWluZXJCb3g+KGxheW91
dEJveCkgJiYgZG93bmNhc3Q8Q29udGFpbmVyQm94PihsYXlvdXRCb3gpLmhhc0NoaWxkKCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgYXV0byYgY29udGFpbmVyQm94ID0gZG93bmNhc3Q8Q29udGFp
bmVyQm94PihsYXlvdXRCb3gpOwotICAgICAgICAgICAgICAgICAgICBhdXRvJiByb290RGlzcGxh
eUJveCA9IGdlb21ldHJ5Rm9yQm94KGNvbnRhaW5lckJveCk7Ci0gICAgICAgICAgICAgICAgICAg
IGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudCA9ICBHZW9tZXRy
eTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KHJvb3REaXNwbGF5Qm94KTsKLSAg
ICAgICAgICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29u
dGVudCA9IEdlb21ldHJ5Ojp2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KHJvb3REaXNw
bGF5Qm94KTsKLSAgICAgICAgICAgICAgICAgICAgTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0
dGluZ0NvbnRleHQoY29udGFpbmVyQm94LCBsYXlvdXRTdGF0ZSgpKS0+bGF5b3V0T3V0T2ZGbG93
Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZG
bG93Q29udGVudCwgdmVydGljYWxDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQpOworICAg
ICAgICAgICAgICAgICAgICBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChj
b250YWluZXJCb3gsIGxheW91dFN0YXRlKCkpLT5sYXlvdXRPdXRPZkZsb3dDb250ZW50KGludmFs
aWRhdGlvblN0YXRlLCBHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGdl
b21ldHJ5Rm9yQm94KGNvbnRhaW5lckJveCkpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAvLyBSZXNvbHZlIGZpbmFsIHBvc2l0aW9ucy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA2YTgzZTE2MTVhZWI0YzcxZWM4MTgwZDM1
MTU3OTI2ZjlkMGJmZWRkLi5mYTVkMjRhNzg4NzRiMDIxYzczNGY2MmUxNTZiOTgwNTQyZTY5ODM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xMDMsMTAgKzEwMyw4
IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQoSW52
YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29udGFpbmVyQm94LCBjb25zdHJhaW50cy5o
b3Jpem9udGFsKTsKICAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyQm94Lmhhc0NoaWxkKCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNGb3JPdXRP
ZkZsb3cgPSBHZW9tZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93KGZvcm1h
dHRpbmdSb290RGlzcGxheUJveCk7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gdmVydGljYWxD
b25zdHJhaW50c0Zvck91dE9mRmxvdyA9IEdlb21ldHJ5Ojp2ZXJ0aWNhbENvbnN0cmFpbnRzRm9y
T3V0T2ZGbG93KGZvcm1hdHRpbmdSb290RGlzcGxheUJveCk7CiAgICAgICAgICAgICAgICAgICAg
IGF1dG8gZm9ybWF0dGluZ0NvbnRleHQgPSBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5n
Q29udGV4dChjb250YWluZXJCb3gsIGxheW91dFN0YXRlKCkpOwotICAgICAgICAgICAgICAgICAg
ICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25T
dGF0ZSwgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93LCB2ZXJ0aWNhbENvbnN0cmFp
bnRzRm9yT3V0T2ZGbG93KTsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQt
PmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIEdlb21ldHJ5Ojpjb25z
dHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQoZm9ybWF0dGluZ1Jvb3REaXNwbGF5Qm94KSk7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAv
LyBSZXBsYWNlZCBhbmQgb3RoZXIgdHlwZSBvZiBsZWFmIGF0b21pYyBpbmxpbmUgYm94ZXMuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>