<?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>209400</bug_id>
          
          <creation_ts>2020-03-22 09:25:15 -0700</creation_ts>
          <short_desc>[LFC] Layout::Box::parent() should return const ContainerBox&amp;</short_desc>
          <delta_ts>2020-03-29 07:50:30 -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>1632640</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-03-22 09:25:15 -0700</bug_when>
    <thetext>it&apos;s guaranteed to have a parent (unless it&apos;s the ICB).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632641</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-22 09:25:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/60742432&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632642</commentid>
    <comment_count>2</comment_count>
      <attachid>394215</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-03-22 09:30:45 -0700</bug_when>
    <thetext>Created attachment 394215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632718</commentid>
    <comment_count>3</comment_count>
      <attachid>394237</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-03-22 18:41:06 -0700</bug_when>
    <thetext>Created attachment 394237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635240</commentid>
    <comment_count>4</comment_count>
      <attachid>394843</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-03-28 14:20:17 -0700</bug_when>
    <thetext>Created attachment 394843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635333</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-29 07:50:29 -0700</bug_when>
    <thetext>Committed r259180: &lt;https://trac.webkit.org/changeset/259180&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394843.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394215</attachid>
            <date>2020-03-22 09:30:45 -0700</date>
            <delta_ts>2020-03-22 09:33:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209400-20200322093044.patch</filename>
            <type>text/plain</type>
            <size>18392</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDJhNDE4OGFmYzE3OGNj
ZGNlNmQxMjczZDcyYTQ1NDUxNTBkYzVjOS4uMmYzZjliZDkzMGYzNDUzODM5NDcwOGQ5YzdkZDI0
NDJkZTAzMTliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAzLTIyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gTGF5b3V0OjpCb3g6
OnBhcmVudCgpIHNob3VsZCByZXR1cm4gY29uc3QgQ29udGFpbmVyQm94JgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDAwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MDc0MjQzMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBMYXlvdXQgdHJlZSBpcyBpbW11dGFibGUgZHVyaW5nIGxheW91dCwgc28g
ZXZlcnkgYm94IHNob3VsZCBiZSBhYmxlIHRvIHJldHVybiBhIHZhbGlkIHBhcmVudCAoZXhjZXB0
IHRoZSBJQ0IsIGJ1dAorICAgICAgICBjbGFzcyBJbml0aWFsQ29udGFpbmluZ0Jsb2NrIGRlbGV0
ZXMgcGFyZW50KCkgZnVuY3Rpb24gYW55d2F5KS4KKworICAgICAgICAqIGxheW91dC9Gb3JtYXR0
aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNWZXJ0aWNhbFBvc2l0aW9uRm9yT3V0T2ZGbG93
UG9zaXRpb25lZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6c3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uRm9yT3V0T2ZGbG93UG9z
aXRpb25lZCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQpOgorICAg
ICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNv
bGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJn
aW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZv
cmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2lu
QWZ0ZXIgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6bmV4dElubGlu
ZUxldmVsQm94VG9MYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dDo6Y29uc3RyYWludHNGb3JMaW5lKToKKyAgICAgICAgKiBsYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmNv
bnRhaW5pbmdCbG9jayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6Zm9y
bWF0dGluZ0NvbnRleHRSb290IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94
Ojppbml0aWFsQ29udGFpbmluZ0Jsb2NrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Qm94Ojppc092ZXJmbG93VmlzaWJsZSBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6cGFyZW50
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJdGVyYXRvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRCb3hUcmF2ZXJzYWw6Om5leHRBbmNlc3Rv
clNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUcmF2ZXJzYWw6OmZpbmRBbmNl
c3Rvck9mVHlwZSk6CisgICAgICAgICogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUdyaWQ6OmFwcGVuZENlbGwpOgor
CiAyMDIwLTAzLTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ10gSW50cm9kdWNlIEluaXRpYWxDb250YWluaW5nQm94IGNsYXNzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXggMmUx
ZTcyNzNiMWExYzY3ZWIxOGU1MmYwZDExMmQwNjQ3NjYwYTUxYy4uN2MxMGY1M2U3YWJlMmFkYzc2
OTE4MzE2ODUxNmQzZjVlYzdkN2Y4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApAQCAtMjMyLDE1ICsyMzIsMTMgQEAgTGF5
b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnN0YXRpY1ZlcnRpY2FsUG9zaXRp
b25Gb3JPdXRPZkZsb3dQb3NpdGkKICAgICAgICAgLy8gQWRkIHNpYmxpbmcgb2Zmc2V0CiAgICAg
ICAgIGF1dG8mIHByZXZpb3VzSW5GbG93Qm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5n
ZW9tZXRyeUZvckJveCgqbGF5b3V0Qm94LnByZXZpb3VzSW5GbG93U2libGluZygpLCBFc2NhcGVS
ZWFzb246Ok91dE9mRmxvd0JveE5lZWRzSW5GbG93R2VvbWV0cnkpOwogICAgICAgICB0b3AgKz0g
cHJldmlvdXNJbkZsb3dCb3hHZW9tZXRyeS5ib3R0b20oKSArIHByZXZpb3VzSW5GbG93Qm94R2Vv
bWV0cnkubm9uQ29sbGFwc2VkTWFyZ2luQWZ0ZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBB
U1NFUlQobGF5b3V0Qm94LnBhcmVudCgpKTsKLSAgICAgICAgdG9wID0gZm9ybWF0dGluZ0NvbnRl
eHQuZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5wYXJlbnQoKSwgRXNjYXBlUmVhc29uOjpPdXRP
ZkZsb3dCb3hOZWVkc0luRmxvd0dlb21ldHJ5KS5jb250ZW50Qm94VG9wKCk7Ci0gICAgfQorICAg
IH0gZWxzZQorICAgICAgICB0b3AgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveChs
YXlvdXRCb3gucGFyZW50KCksIEVzY2FwZVJlYXNvbjo6T3V0T2ZGbG93Qm94TmVlZHNJbkZsb3dH
ZW9tZXRyeSkuY29udGVudEJveFRvcCgpOwogCiAgICAgLy8gUmVzb2x2ZSB0b3AgYWxsIHRoZSB3
YXkgdXAgdG8gdGhlIGNvbnRhaW5pbmcgYmxvY2suCiAgICAgYXV0byYgY29udGFpbmluZ0Jsb2Nr
ID0gbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOwogICAgIC8vIFN0YXJ0IHdpdGggdGhlIHBh
cmVudCBzaW5jZSB3ZSBwcmV0ZW5kIHRoYXQgdGhpcyBib3ggaXMgbm9ybWFsIGZsb3cuCi0gICAg
Zm9yIChhdXRvKiBhbmNlc3RvciA9IGxheW91dEJveC5wYXJlbnQoKTsgYW5jZXN0b3IgIT0gJmNv
bnRhaW5pbmdCbG9jazsgYW5jZXN0b3IgPSAmYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKSB7
CisgICAgZm9yIChhdXRvKiBhbmNlc3RvciA9ICZsYXlvdXRCb3gucGFyZW50KCk7IGFuY2VzdG9y
ICE9ICZjb250YWluaW5nQmxvY2s7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5jb250YWluaW5nQmxv
Y2soKSkgewogICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdl
b21ldHJ5Rm9yQm94KCphbmNlc3RvciwgRXNjYXBlUmVhc29uOjpPdXRPZkZsb3dCb3hOZWVkc0lu
Rmxvd0dlb21ldHJ5KTsKICAgICAgICAgLy8gRGlzcGxheTo6Qm94Ojp0b3AgaXMgdGhlIGJvcmRl
ciBib3ggdG9wIHBvc2l0aW9uIGluIGl0cyBjb250YWluaW5nIGJsb2NrJ3MgY29vcmRpbmF0ZSBz
eXN0ZW0uCiAgICAgICAgIHRvcCArPSBib3hHZW9tZXRyeS50b3AoKTsKQEAgLTI1NywxMyArMjU1
LDEyIEBAIExheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNIb3Jp
em9udGFsUG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpCiAKICAgICAvLyBTdGFydCB3aXRoIHRoaXMg
Ym94J3MgYm9yZGVyIGJveCBvZmZzZXQgZnJvbSB0aGUgcGFyZW50J3MgYm9yZGVyIGJveC4KICAg
ICBhdXRvJiBmb3JtYXR0aW5nQ29udGV4dCA9IHRoaXMtPmZvcm1hdHRpbmdDb250ZXh0KCk7Ci0g
ICAgQVNTRVJUKGxheW91dEJveC5wYXJlbnQoKSk7Ci0gICAgYXV0byBsZWZ0ID0gZm9ybWF0dGlu
Z0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5wYXJlbnQoKSwgRXNjYXBlUmVhc29u
OjpPdXRPZkZsb3dCb3hOZWVkc0luRmxvd0dlb21ldHJ5KS5jb250ZW50Qm94TGVmdCgpOworICAg
IGF1dG8gbGVmdCA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KGxheW91dEJveC5w
YXJlbnQoKSwgRXNjYXBlUmVhc29uOjpPdXRPZkZsb3dCb3hOZWVkc0luRmxvd0dlb21ldHJ5KS5j
b250ZW50Qm94TGVmdCgpOwogCiAgICAgLy8gUmVzb2x2ZSBsZWZ0IGFsbCB0aGUgd2F5IHVwIHRv
IHRoZSBjb250YWluaW5nIGJsb2NrLgogICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9jayA9IGxheW91
dEJveC5jb250YWluaW5nQmxvY2soKTsKICAgICAvLyBTdGFydCB3aXRoIHRoZSBwYXJlbnQgc2lu
Y2Ugd2UgcHJldGVuZCB0aGF0IHRoaXMgYm94IGlzIG5vcm1hbCBmbG93LgotICAgIGZvciAoYXV0
byogYW5jZXN0b3IgPSBsYXlvdXRCb3gucGFyZW50KCk7IGFuY2VzdG9yICE9ICZjb250YWluaW5n
QmxvY2s7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkgeworICAgIGZv
ciAoYXV0byogYW5jZXN0b3IgPSAmbGF5b3V0Qm94LnBhcmVudCgpOyBhbmNlc3RvciAhPSAmY29u
dGFpbmluZ0Jsb2NrOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+Y29udGFpbmluZ0Jsb2NrKCkpIHsK
ICAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZv
ckJveCgqYW5jZXN0b3IsIEVzY2FwZVJlYXNvbjo6T3V0T2ZGbG93Qm94TmVlZHNJbkZsb3dHZW9t
ZXRyeSk7CiAgICAgICAgIC8vIERpc3BsYXk6OkJveDo6bGVmdCBpcyB0aGUgYm9yZGVyIGJveCBs
ZWZ0IHBvc2l0aW9uIGluIGl0cyBjb250YWluaW5nIGJsb2NrJ3MgY29vcmRpbmF0ZSBzeXN0ZW0u
CiAgICAgICAgIGxlZnQgKz0gYm94R2VvbWV0cnkubGVmdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVp
cmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKaW5kZXggMTZkNWFhZTI5ZDFkNDlhZjhlM2Q0YjZkYTU2
YWU2ZDEwOTE4ZmI2Zi4uYzQ4MTE5YTI4MmM1ZDg2ZGIyZTZhODEwYTczMDAzY2YzYzI1OWQwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCkBAIC04NSw3ICs4
NSw3IEBAIExheW91dFVuaXQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzdHJldGNo
ZWRJbkZsb3dIZWlnaHQoY29uc3QgQm94JiBsYXlvCiAgICAgdXNlZFZlcnRpY2FsTWFyZ2luICs9
IGNvbGxhcHNlZE1hcmdpbi5pc0NvbGxhcHNlZFRocm91Z2ggPyBub25Db2xsYXBzZWRNYXJnaW4u
YWZ0ZXIgOiBjb2xsYXBzZWRNYXJnaW4uYWZ0ZXIudmFsdWVPcihub25Db2xsYXBzZWRNYXJnaW4u
YWZ0ZXIpOwogICAgIGJvZHlCb3hDb250ZW50SGVpZ2h0IC09IHVzZWRWZXJ0aWNhbE1hcmdpbjsK
ICAgICAvLyBEb2N1bWVudCBib3gncyBwYWRkaW5nIGFuZCBib3JkZXIgYWxzbyBzaHJpbmsgdGhl
IGJvZHkgYm94J3MgY29udGVudCBoZWlnaHQuCi0gICAgYXV0byYgZG9jdW1lbnRCb3ggPSAqbGF5
b3V0Qm94LnBhcmVudCgpOworICAgIGF1dG8mIGRvY3VtZW50Qm94ID0gbGF5b3V0Qm94LnBhcmVu
dCgpOwogICAgIGF1dG8mIGRvY3VtZW50Qm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5n
ZW9tZXRyeUZvckJveChkb2N1bWVudEJveCwgRXNjYXBlUmVhc29uOjpCb2R5U3RyZWNoZXNUb1Zp
ZXdwb3J0UXVpcmspOwogICAgIGJvZHlCb3hDb250ZW50SGVpZ2h0IC09IGRvY3VtZW50Qm94R2Vv
bWV0cnkudmVydGljYWxCb3JkZXIoKSArIGRvY3VtZW50Qm94R2VvbWV0cnkudmVydGljYWxQYWRk
aW5nKCkudmFsdWVPcigwKTsKICAgICAvLyBIb3dldmVyIHRoZSBub24taW4tZmxvdyBkb2N1bWVu
dCBib3gncyB2ZXJ0aWNhbCBtYXJnaW5zIGFyZSBpZ25vcmVkLiBUaGV5IGRvbid0IGFmZmVjdCB0
aGUgYm9keSBib3gncyBjb250ZW50IGhlaWdodC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCmlu
ZGV4IGI0OWVhN2QzNGI1ZDk2NDFjOGEzMDc1ZmNhZDIyMzVhNzE3MTIwNTYuLjRhNzBmMzJhYWNk
OTdmNjI2MjI4MmMzMDgyMWI2NjdkYjkxNTJmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNw
cApAQCAtOTcsNyArOTcsNyBAQCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNv
bGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZwogICAgIC8vIDEuIFRo
aXMgaXMgdGhlIGxhc3QgaW4tZmxvdyBjaGlsZCBhbmQgaXRzIG1hcmdpbnMgY29sbGFwc2UgdGhy
b3VnaCBhbmQgdGhlIG1hcmdpbiBhZnRlciBjb2xsYXBzZXMgd2l0aCBwYXJlbnQncyBtYXJnaW4g
YWZ0ZXIgb3IKICAgICAvLyAyLiBUaGlzIGJveCdzIG1hcmdpbiBhZnRlciBjb2xsYXBzZXMgd2l0
aCB0aGUgbmV4dCBzaWJsaW5nJ3MgbWFyZ2luIGJlZm9yZSBhbmQgdGhhdCBzaWJsaW5nIGNvbGxh
cHNlcyB0aHJvdWdoIGFuZAogICAgIC8vIHdlIGNhbiBnZXQgdG8gdGhlIGxhc3QgaW4tZmxvdyBj
aGlsZCBsaWtlIHRoYXQuCi0gICAgYXV0byogbGFzdEluRmxvd0NoaWxkID0gbGF5b3V0Qm94LnBh
cmVudCgpLT5sYXN0SW5GbG93Q2hpbGQoKTsKKyAgICBhdXRvKiBsYXN0SW5GbG93Q2hpbGQgPSBs
YXlvdXRCb3gucGFyZW50KCkubGFzdEluRmxvd0NoaWxkKCk7CiAgICAgZm9yIChhdXRvKiBjdXJy
ZW50Qm94ID0gJmxheW91dEJveDsgY3VycmVudEJveDsgY3VycmVudEJveCA9IGN1cnJlbnRCb3gt
Pm5leHRJbkZsb3dTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKCFtYXJnaW5zQ29sbGFwc2VUaHJv
dWdoKCpjdXJyZW50Qm94KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMiw3ICsx
MzIsNyBAQCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJn
aW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZwogICAgIGlmIChsYXlvdXRCb3gucHJldmlv
dXNJbkZsb3dTaWJsaW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8mIHBh
cmVudCA9ICpsYXlvdXRCb3gucGFyZW50KCk7CisgICAgYXV0byYgcGFyZW50ID0gbGF5b3V0Qm94
LnBhcmVudCgpOwogICAgIC8vIE1hcmdpbnMgb2YgZWxlbWVudHMgdGhhdCBlc3RhYmxpc2ggbmV3
IGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dHMgZG8gbm90IGNvbGxhcHNlIHdpdGggdGhlaXIgaW4t
ZmxvdyBjaGlsZHJlbgogICAgIGlmIChlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQo
cGFyZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjM0LDcgKzIzNCw3IEBAIGJvb2wg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFw
c2VzV2l0aFBhcmVudE1hcmdpCiAgICAgLy8gMS4gVGhpcyBpcyB0aGUgZmlyc3QgaW4tZmxvdyBj
aGlsZCBhbmQgaXRzIG1hcmdpbnMgY29sbGFwc2UgdGhyb3VnaCBhbmQgdGhlIG1hcmdpbiBiZWZv
cmUgY29sbGFwc2VzIHdpdGggcGFyZW50J3MgbWFyZ2luIGJlZm9yZSBvcgogICAgIC8vIDIuIFRo
aXMgYm94J3MgbWFyZ2luIGJlZm9yZSBjb2xsYXBzZXMgd2l0aCB0aGUgcHJldmlvdXMgc2libGlu
ZydzIG1hcmdpbiBhZnRlciBhbmQgdGhhdCBzaWJsaW5nIGNvbGxhcHNlcyB0aHJvdWdoIGFuZAog
ICAgIC8vIHdlIGNhbiBnZXQgdG8gdGhlIGZpcnN0IGluLWZsb3cgY2hpbGQgbGlrZSB0aGF0Lgot
ICAgIGF1dG8qIGZpcnN0SW5GbG93Q2hpbGQgPSBsYXlvdXRCb3gucGFyZW50KCktPmZpcnN0SW5G
bG93Q2hpbGQoKTsKKyAgICBhdXRvKiBmaXJzdEluRmxvd0NoaWxkID0gbGF5b3V0Qm94LnBhcmVu
dCgpLmZpcnN0SW5GbG93Q2hpbGQoKTsKICAgICBmb3IgKGF1dG8qIGN1cnJlbnRCb3ggPSAmbGF5
b3V0Qm94OyBjdXJyZW50Qm94OyBjdXJyZW50Qm94ID0gY3VycmVudEJveC0+cHJldmlvdXNJbkZs
b3dTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKCFtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKCpjdXJy
ZW50Qm94KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI2Nyw3ICsyNjcsNyBAQCBi
b29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNv
bGxhcHNlc1dpdGhQYXJlbnRNYXJnaQogICAgIGlmIChsYXlvdXRCb3gubmV4dEluRmxvd1NpYmxp
bmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byYgcGFyZW50ID0gKmxheW91
dEJveC5wYXJlbnQoKTsKKyAgICBhdXRvJiBwYXJlbnQgPSBsYXlvdXRCb3gucGFyZW50KCk7CiAg
ICAgLy8gTWFyZ2lucyBvZiBlbGVtZW50cyB0aGF0IGVzdGFibGlzaCBuZXcgYmxvY2sgZm9ybWF0
dGluZyBjb250ZXh0cyBkbyBub3QgY29sbGFwc2Ugd2l0aCB0aGVpciBpbi1mbG93IGNoaWxkcmVu
LgogICAgIGlmIChlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQocGFyZW50KSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmlu
ZGV4IDU5NzYxY2E5ZWU2MDY4Nzc5ZTU1YTliMDM0MDNkOGU1ZGM4ZjU2OGEuLjNhM2MwMzgzODdj
YTQxZjY4MWRkMjE4YTJjMjc1NzFkMDMxNGM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIGlubGluZSBjb25zdCBCb3gqIG5l
eHRJbmxpbmVMZXZlbEJveFRvTGF5b3V0KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdAogICAg
ICAgICB9CiAgICAgfQogCi0gICAgZm9yIChhdXRvKiBuZXh0SW5QcmVPcmRlciA9ICZsYXlvdXRC
b3g7IG5leHRJblByZU9yZGVyICYmIG5leHRJblByZU9yZGVyICE9ICZzdGF5V2l0aGluOyBuZXh0
SW5QcmVPcmRlciA9IG5leHRJblByZU9yZGVyLT5wYXJlbnQoKSkgeworICAgIGZvciAoYXV0byog
bmV4dEluUHJlT3JkZXIgPSAmbGF5b3V0Qm94OyBuZXh0SW5QcmVPcmRlciAmJiBuZXh0SW5QcmVP
cmRlciAhPSAmc3RheVdpdGhpbjsgbmV4dEluUHJlT3JkZXIgPSAmbmV4dEluUHJlT3JkZXItPnBh
cmVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBuZXh0U2libGluZyA9IG5leHRJblByZU9yZGVy
LT5uZXh0SW5GbG93T3JGbG9hdGluZ1NpYmxpbmcoKSkKICAgICAgICAgICAgIHJldHVybiBuZXh0
U2libGluZzsKICAgICB9CkBAIC00MjcsNyArNDI3LDcgQEAgTGluZUJ1aWxkZXI6OkNvbnN0cmFp
bnRzIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb25zdHJhaW50c0ZvckxpbmUoY29uc3QgSG9y
aXoKICAgICAgICAgICAgIC8vIEZvciBleGFtcGxlLCB0aGUgZmlyc3QgbGluZSBvZiBhbiBhbm9u
eW1vdXMgYmxvY2sgYm94IGlzIG9ubHkgYWZmZWN0ZWQgaWYgaXQgaXMgdGhlIGZpcnN0IGNoaWxk
IG9mIGl0cyBwYXJlbnQgZWxlbWVudC4KICAgICAgICAgICAgIGlzRm9ybWF0dGluZ0NvbnRleHRS
b290Q2FuZGlkYXRlVG9UZXh0SW5kZW50ID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5sYXlvdXRGb3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxlZCgpCiAg
ICAgICAgICAgICAgICAgPyBsYXlvdXRTdGF0ZSgpLmlzSW50ZWdyYXRlZFJvb3RCb3hGaXJzdENo
aWxkKCkKLSAgICAgICAgICAgICAgICA6IHJvb3QucGFyZW50KCktPmZpcnN0SW5GbG93Q2hpbGQo
KSA9PSAmcm9vdDsKKyAgICAgICAgICAgICAgICA6IHJvb3QucGFyZW50KCkuZmlyc3RJbkZsb3dD
aGlsZCgpID09ICZyb290OwogICAgICAgICB9CiAgICAgICAgIGlmICghaXNGb3JtYXR0aW5nQ29u
dGV4dFJvb3RDYW5kaWRhdGVUb1RleHRJbmRlbnQpCiAgICAgICAgICAgICByZXR1cm4gSW5saW5l
TGF5b3V0VW5pdCB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0Qm94LmNwcAppbmRleCAxMTkyYmIyOTlmZjhkYTU5Y2U5OTdlNDE0NzE1NjE2ZGNlOTcyNDA4
Li5mYjY0Y2MzMGEyOGNlMDg1NDU1ZjczYjczMTliOGYyOTdhNzc3OGUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKQEAgLTE5MSw4ICsxOTEs
OCBAQCBjb25zdCBDb250YWluZXJCb3gmIEJveDo6Y29udGFpbmluZ0Jsb2NrKCkgY29uc3QKICAg
ICAvLyBJZiB0aGUgZWxlbWVudCBoYXMgJ3Bvc2l0aW9uOiBhYnNvbHV0ZScsIHRoZSBjb250YWlu
aW5nIGJsb2NrIGlzIGVzdGFibGlzaGVkIGJ5IHRoZSBuZWFyZXN0IGFuY2VzdG9yIHdpdGggYQog
ICAgIC8vICdwb3NpdGlvbicgb2YgJ2Fic29sdXRlJywgJ3JlbGF0aXZlJyBvciAnZml4ZWQnLgog
ICAgIGlmICghaXNQb3NpdGlvbmVkKCkgfHwgaXNJbkZsb3dQb3NpdGlvbmVkKCkpIHsKLSAgICAg
ICAgYXV0byogYW5jZXN0b3IgPSBwYXJlbnQoKTsKLSAgICAgICAgZm9yICg7ICFhbmNlc3Rvci0+
aXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCk7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudCgp
KSB7CisgICAgICAgIGF1dG8qIGFuY2VzdG9yID0gJnBhcmVudCgpOworICAgICAgICBmb3IgKDsg
IWFuY2VzdG9yLT5pc0luaXRpYWxDb250YWluaW5nQmxvY2soKTsgYW5jZXN0b3IgPSAmYW5jZXN0
b3ItPnBhcmVudCgpKSB7CiAgICAgICAgICAgICBpZiAoYW5jZXN0b3ItPmlzQmxvY2tDb250YWlu
ZXJCb3goKSB8fCBhbmNlc3Rvci0+ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiAqYW5jZXN0b3I7CiAgICAgICAgIH0KQEAgLTIwMCw4ICsyMDAs
OCBAQCBjb25zdCBDb250YWluZXJCb3gmIEJveDo6Y29udGFpbmluZ0Jsb2NrKCkgY29uc3QKICAg
ICB9CiAKICAgICBpZiAoaXNGaXhlZFBvc2l0aW9uZWQoKSkgewotICAgICAgICBhdXRvKiBhbmNl
c3RvciA9IHBhcmVudCgpOwotICAgICAgICBmb3IgKDsgIWFuY2VzdG9yLT5pc0luaXRpYWxDb250
YWluaW5nQmxvY2soKTsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50KCkpIHsKKyAgICAgICAg
YXV0byogYW5jZXN0b3IgPSAmcGFyZW50KCk7CisgICAgICAgIGZvciAoOyAhYW5jZXN0b3ItPmlz
SW5pdGlhbENvbnRhaW5pbmdCbG9jaygpOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+cGFyZW50KCkp
IHsKICAgICAgICAgICAgIGlmIChhbmNlc3Rvci0+c3R5bGUoKS5oYXNUcmFuc2Zvcm0oKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gKmFuY2VzdG9yOwogICAgICAgICB9CkBAIC0yMDksOCArMjA5
LDggQEAgY29uc3QgQ29udGFpbmVyQm94JiBCb3g6OmNvbnRhaW5pbmdCbG9jaygpIGNvbnN0CiAg
ICAgfQogCiAgICAgaWYgKGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7Ci0gICAgICAgIGF1dG8q
IGFuY2VzdG9yID0gcGFyZW50KCk7Ci0gICAgICAgIGZvciAoOyAhYW5jZXN0b3ItPmlzSW5pdGlh
bENvbnRhaW5pbmdCbG9jaygpOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnQoKSkgeworICAg
ICAgICBhdXRvKiBhbmNlc3RvciA9ICZwYXJlbnQoKTsKKyAgICAgICAgZm9yICg7ICFhbmNlc3Rv
ci0+aXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCk7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5wYXJl
bnQoKSkgewogICAgICAgICAgICAgaWYgKGFuY2VzdG9yLT5pc1Bvc2l0aW9uZWQoKSB8fCBhbmNl
c3Rvci0+c3R5bGUoKS5oYXNUcmFuc2Zvcm0oKSkKICAgICAgICAgICAgICAgICByZXR1cm4gKmFu
Y2VzdG9yOwogICAgICAgICB9CkBAIC0yMzQsNyArMjM0LDcgQEAgY29uc3QgQ29udGFpbmVyQm94
JiBCb3g6OmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpIGNvbnN0CiAgICAgLy8gPGRpdiBpZD1vdXRl
ciBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48ZGl2IGlkPWlubmVyPjxzcGFuIHN0eWxlPSJw
b3NpdGlvbjogcmVsYXRpdmUiPmNvbnRlbnQ8L3NwYW4+PC9kaXY+PC9kaXY+CiAgICAgLy8gV2hp
bGUgdGhlIHJlbGF0aXZlbHkgcG9zaXRpb25lZCBpbmxpbmUgY29udGFpbmVyIChzcGFuKSBpcyBw
bGFjZWQgcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5pbmcgYmxvY2sgIm91dGVyIiwgaXQgbGl2ZXMg
aW4gdGhlIGlubGluZQogICAgIC8vIGZvcm1hdHRpbmcgY29udGV4dCBlc3RhYmxpc2hlZCBieSAi
aW5uZXIiLgotICAgIGF1dG8mIGFuY2VzdG9yID0gaXNJbmxpbmVMZXZlbEJveCgpICYmIGlzSW5G
bG93UG9zaXRpb25lZCgpID8gKnBhcmVudCgpIDogY29udGFpbmluZ0Jsb2NrKCk7CisgICAgYXV0
byYgYW5jZXN0b3IgPSBpc0lubGluZUxldmVsQm94KCkgJiYgaXNJbkZsb3dQb3NpdGlvbmVkKCkg
PyBwYXJlbnQoKSA6IGNvbnRhaW5pbmdCbG9jaygpOwogICAgIGlmIChhbmNlc3Rvci5lc3RhYmxp
c2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpCiAgICAgICAgIHJldHVybiBhbmNlc3RvcjsKICAgICBy
ZXR1cm4gYW5jZXN0b3IuZm9ybWF0dGluZ0NvbnRleHRSb290KCk7CkBAIC0yNDUsOSArMjQ1LDgg
QEAgY29uc3QgQ29udGFpbmVyQm94JiBCb3g6OmluaXRpYWxDb250YWluaW5nQmxvY2soKSBjb25z
dAogICAgIGlmIChpc0luaXRpYWxDb250YWluaW5nQmxvY2soKSkKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PENvbnRhaW5lckJveD4oKnRoaXMpOwogCi0gICAgYXV0byogYW5jZXN0b3IgPSBwYXJl
bnQoKTsKLSAgICBmb3IgKDsgYW5jZXN0b3ItPnBhcmVudCgpOyBhbmNlc3RvciA9IGFuY2VzdG9y
LT5wYXJlbnQoKSkgeyB9Ci0KKyAgICBhdXRvKiBhbmNlc3RvciA9ICZwYXJlbnQoKTsKKyAgICBm
b3IgKDsgIWFuY2VzdG9yLT5pc0luaXRpYWxDb250YWluaW5nQmxvY2soKTsgYW5jZXN0b3IgPSAm
YW5jZXN0b3ItPnBhcmVudCgpKSB7IH0KICAgICByZXR1cm4gKmFuY2VzdG9yOwogfQogCkBAIC0z
NTIsMTEgKzM1MSwxMCBAQCBib29sIEJveDo6aXNPdmVyZmxvd1Zpc2libGUoKSBjb25zdAogICAg
IC8vIGlmIHRoZSB2YWx1ZSBvbiB0aGUgcm9vdCBlbGVtZW50IGlzICd2aXNpYmxlJy4gVGhlICd2
aXNpYmxlJyB2YWx1ZSB3aGVuIHVzZWQgZm9yIHRoZSB2aWV3cG9ydCBtdXN0IGJlIGludGVycHJl
dGVkIGFzICdhdXRvJy4KICAgICAvLyBUaGUgZWxlbWVudCBmcm9tIHdoaWNoIHRoZSB2YWx1ZSBp
cyBwcm9wYWdhdGVkIG11c3QgaGF2ZSBhIHVzZWQgdmFsdWUgZm9yICdvdmVyZmxvdycgb2YgJ3Zp
c2libGUnLgogICAgIGlmIChpc0JvZHlCb3goKSkgewotICAgICAgICBhdXRvKiBkb2N1bWVudEJv
eCA9IHBhcmVudCgpOwotICAgICAgICBBU1NFUlQoZG9jdW1lbnRCb3gpOwotICAgICAgICBpZiAo
IWRvY3VtZW50Qm94LT5pc0RvY3VtZW50Qm94KCkpCisgICAgICAgIGF1dG8mIGRvY3VtZW50Qm94
ID0gcGFyZW50KCk7CisgICAgICAgIGlmICghZG9jdW1lbnRCb3guaXNEb2N1bWVudEJveCgpKQog
ICAgICAgICAgICAgcmV0dXJuIGlzT3ZlcmZsb3dWaXNpYmxlOwotICAgICAgICBpZiAoIWRvY3Vt
ZW50Qm94LT5pc092ZXJmbG93VmlzaWJsZSgpKQorICAgICAgICBpZiAoIWRvY3VtZW50Qm94Lmlz
T3ZlcmZsb3dWaXNpYmxlKCkpCiAgICAgICAgICAgICByZXR1cm4gaXNPdmVyZmxvd1Zpc2libGU7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0Qm94LmgKaW5kZXggZmQ4Nzk5ZjQ1MGI0ODI1ZTI2NTY0MjI2MmI5NzBi
NmM4M2ZjNmQ5OC4uZTk4ZGFjMmU1NzEyODE1ZDljMzJjNzlhNWVlMWMxZWVkMGRjMjIxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTEyNiw3
ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0lGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZWxlbWVudEF0dHJpYnV0ZXMgJiYgbV9lbGVtZW50QXR0cmlidXRlcy52YWx1ZSgpLmVsZW1lbnRU
eXBlID09IEVsZW1lbnRUeXBlOjpJRnJhbWU7IH0KICAgICBib29sIGlzSW1hZ2UoKSBjb25zdCB7
IHJldHVybiBtX2VsZW1lbnRBdHRyaWJ1dGVzICYmIG1fZWxlbWVudEF0dHJpYnV0ZXMudmFsdWUo
KS5lbGVtZW50VHlwZSA9PSBFbGVtZW50VHlwZTo6SW1hZ2U7IH0KIAotICAgIGNvbnN0IENvbnRh
aW5lckJveCogcGFyZW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnQ7IH0KKyAgICBjb25zdCBD
b250YWluZXJCb3gmIHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuICptX3BhcmVudDsgfQogICAgIGNv
bnN0IEJveCogbmV4dFNpYmxpbmcoKSBjb25zdCB7IHJldHVybiBtX25leHRTaWJsaW5nOyB9CiAg
ICAgY29uc3QgQm94KiBuZXh0SW5GbG93U2libGluZygpIGNvbnN0OwogICAgIGNvbnN0IEJveCog
bmV4dEluRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbml0aWFsQ29udGFpbmluZ0Jsb2NrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbml0aWFsQ29udGFpbmlu
Z0Jsb2NrLmgKaW5kZXggYTk5ZWM5NTRhZGY4YzdkODFlZGNmODA1MTA2ODY4ZDFlOTllMmNiNy4u
OTAyZWRhYTkzYzMzZGUxN2MzZjg3NDIxNzAyYmYzNmIwNjBhMGVkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9j
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEluaXRpYWxD
b250YWluaW5nQmxvY2suaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
SW5pdGlhbENvbnRhaW5pbmdCbG9jaygpID0gZGVmYXVsdDsKIAogcHJpdmF0ZToKLSAgICBjb25z
dCBDb250YWluZXJCb3gqIHBhcmVudCgpIGNvbnN0ID0gZGVsZXRlOworICAgIGNvbnN0IENvbnRh
aW5lckJveCYgcGFyZW50KCkgY29uc3QgPSBkZWxldGU7CiAgICAgY29uc3QgQm94KiBuZXh0U2li
bGluZygpIGNvbnN0ID0gZGVsZXRlOwogICAgIGNvbnN0IEJveCogbmV4dEluRmxvd1NpYmxpbmco
KSBjb25zdCA9IGRlbGV0ZTsKICAgICBjb25zdCBCb3gqIG5leHRJbkZsb3dPckZsb2F0aW5nU2li
bGluZygpIGNvbnN0ID0gZGVsZXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0SXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlv
dXR0cmVlL0xheW91dEl0ZXJhdG9yLmgKaW5kZXggZDFiZDk4YjMxMzg2ZmZjNmRhNTE1NWI1Zjc0
NjU5YTllMWVlMDBiMS4uNjZlYTZjYzBhZmYxOWJjZDM0M2FmMzNhM2IzZjkwZWYxMWUyYjM2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SXRlcmF0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJdGVyYXRv
ci5oCkBAIC03Myw3ICs3Myw3IEBAIGlubGluZSBjb25zdCBCb3gqIGZpcnN0Q2hpbGQoY29uc3Qg
Qm94JiBib3gpCiAKIGlubGluZSBjb25zdCBCb3gqIG5leHRBbmNlc3RvclNpYmxpbmcoY29uc3Qg
Qm94JiBjdXJyZW50LCBjb25zdCBDb250YWluZXJCb3gqIHN0YXlXaXRoaW4pCiB7Ci0gICAgZm9y
IChhdXRvKiBhbmNlc3RvciA9IGN1cnJlbnQucGFyZW50KCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9
IGFuY2VzdG9yLT5wYXJlbnQoKSkgeworICAgIGZvciAoYXV0byogYW5jZXN0b3IgPSAmY3VycmVu
dC5wYXJlbnQoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5wYXJlbnQoKSkgewog
ICAgICAgICBpZiAoYW5jZXN0b3IgPT0gc3RheVdpdGhpbikKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICBpZiAoYXV0byogc2libGluZyA9IGFuY2VzdG9yLT5uZXh0U2libGlu
ZygpKQpAQCAtMTUxLDcgKzE1MSw3IEBAIGlubGluZSBjb25zdCBUKiBwcmV2aW91c1NpYmxpbmco
Y29uc3QgVCYgY3VycmVudCkKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgogaW5s
aW5lIGNvbnN0IFQqIGZpbmRBbmNlc3Rvck9mVHlwZShjb25zdCBUJiBjdXJyZW50KQogewotICAg
IGZvciAoYXV0byogYW5jZXN0b3IgPSBjdXJyZW50LnBhcmVudCgpOyBhbmNlc3RvcjsgYW5jZXN0
b3IgPSBhbmNlc3Rvci0+cGFyZW50KCkpIHsKKyAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gJmN1
cnJlbnQucGFyZW50KCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+cGFyZW50KCkp
IHsKICAgICAgICAgaWYgKGlzTGF5b3V0Qm94T2ZUeXBlPFQ+KCphbmNlc3RvcikpCiAgICAgICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgVCo+KGFuY2VzdG9yKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5jcHAK
aW5kZXggZDNmNTllZjE1OTc4ZGY0YzMxNTk5YjI1NDlmZWY2OTA0NzIwZTgwZC4uODAxODg3OTgy
MjE0NDlkM2Y1ODM5MjEzOTBiMTI4ZTgyZjk1NzhiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNwcApAQCAtMTU3LDcgKzE1Nyw3
IEBAIHZvaWQgVGFibGVHcmlkOjphcHBlbmRDZWxsKGNvbnN0IEJveCYgdGFibGVDZWxsQm94KQog
ICAgICAgICBtX2NvbHVtbnNDb250ZXh0LmFkZENvbHVtbigpOwogCiAgICAgaWYgKGlzSW5OZXdS
b3cpCi0gICAgICAgIG1fcm93cy5hcHBlbmQoeyAqdGFibGVDZWxsQm94LnBhcmVudCgpIH0pOwor
ICAgICAgICBtX3Jvd3MuYXBwZW5kKHsgdGFibGVDZWxsQm94LnBhcmVudCgpIH0pOwogCiAgICAg
bV9jZWxsTGlzdC5hZGQoV1RGTW92ZShjZWxsSW5mbykpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394237</attachid>
            <date>2020-03-22 18:41:06 -0700</date>
            <delta_ts>2020-03-28 14:20:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209400-20200322184105.patch</filename>
            <type>text/plain</type>
            <size>18219</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQyZDlmYjc1YWQ1YmJi
MjQ3ZDc3ZWYzMTYxZWFhZTIwNjkyYjA3MC4uOTc0MDRjOGYyYTk1ZDlkNjdiY2U3NTkyMTI2ZDZj
MGE3MWZlZmNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTAzLTIyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gTGF5b3V0OjpCb3g6
OnBhcmVudCgpIHNob3VsZCByZXR1cm4gY29uc3QgQ29udGFpbmVyQm94JgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDAwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MDc0MjQzMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBMYXlvdXQgdHJlZSBpcyBpbW11dGFibGUgZHVyaW5nIGxheW91dCwgc28g
ZXZlcnkgYm94IHNob3VsZCBiZSBhYmxlIHRvIHJldHVybiBhIHZhbGlkIHBhcmVudCAoZXhjZXB0
IHRoZSBJQ0IsIGJ1dAorICAgICAgICBjbGFzcyBJbml0aWFsQ29udGFpbmluZ0Jsb2NrIGRlbGV0
ZXMgcGFyZW50KCkgZnVuY3Rpb24gYW55d2F5KS4KKworICAgICAgICAqIGxheW91dC9Gb3JtYXR0
aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNWZXJ0aWNhbFBvc2l0aW9uRm9yT3V0T2ZGbG93
UG9zaXRpb25lZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6c3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uRm9yT3V0T2ZGbG93UG9z
aXRpb25lZCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQpOgorICAg
ICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNv
bGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJn
aW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZv
cmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2lu
QWZ0ZXIgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6bmV4dElubGlu
ZUxldmVsQm94VG9MYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dDo6Y29uc3RyYWludHNGb3JMaW5lKToKKyAgICAgICAgKiBsYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmNv
bnRhaW5pbmdCbG9jayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6Zm9y
bWF0dGluZ0NvbnRleHRSb290IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94
Ojppbml0aWFsQ29udGFpbmluZ0Jsb2NrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Qm94Ojppc092ZXJmbG93VmlzaWJsZSBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6cGFyZW50
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbml0aWFsQ29udGFp
bmluZ0Jsb2NrLmg6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SXRlcmF0b3Iu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Qm94VHJhdmVyc2FsOjpuZXh0QW5j
ZXN0b3JTaWJsaW5nKToKKyAgICAgICAgKiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3Jp
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6YXBwZW5kQ2VsbCk6
CisKIDIwMjAtMDMtMjIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXSBMYXlvdXQ6OkJveDo6aW5pdGlhbENvbnRhaW5pbmdCbG9jaygpIHNob3VsZCByZXR1
cm4gY29uc3QgSW5pdGlhbENvbnRhaW5pbmdCbG9jayYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCAyZTFlNzI3M2IxYTFj
NjdlYjE4ZTUyZjBkMTEyZDA2NDc2NjBhNTFjLi43YzEwZjUzZTdhYmUyYWRjNzY5MTgzMTY4NTE2
ZDNmNWVjN2Q3ZjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGlu
Z0NvbnRleHRHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0R2VvbWV0cnkuY3BwCkBAIC0yMzIsMTUgKzIzMiwxMyBAQCBMYXlvdXRVbml0IEZv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6c3RhdGljVmVydGljYWxQb3NpdGlvbkZvck91dE9m
Rmxvd1Bvc2l0aQogICAgICAgICAvLyBBZGQgc2libGluZyBvZmZzZXQKICAgICAgICAgYXV0byYg
cHJldmlvdXNJbkZsb3dCb3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9y
Qm94KCpsYXlvdXRCb3gucHJldmlvdXNJbkZsb3dTaWJsaW5nKCksIEVzY2FwZVJlYXNvbjo6T3V0
T2ZGbG93Qm94TmVlZHNJbkZsb3dHZW9tZXRyeSk7CiAgICAgICAgIHRvcCArPSBwcmV2aW91c0lu
Rmxvd0JveEdlb21ldHJ5LmJvdHRvbSgpICsgcHJldmlvdXNJbkZsb3dCb3hHZW9tZXRyeS5ub25D
b2xsYXBzZWRNYXJnaW5BZnRlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVChsYXlv
dXRCb3gucGFyZW50KCkpOwotICAgICAgICB0b3AgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRy
eUZvckJveCgqbGF5b3V0Qm94LnBhcmVudCgpLCBFc2NhcGVSZWFzb246Ok91dE9mRmxvd0JveE5l
ZWRzSW5GbG93R2VvbWV0cnkpLmNvbnRlbnRCb3hUb3AoKTsKLSAgICB9CisgICAgfSBlbHNlCisg
ICAgICAgIHRvcCA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KGxheW91dEJveC5w
YXJlbnQoKSwgRXNjYXBlUmVhc29uOjpPdXRPZkZsb3dCb3hOZWVkc0luRmxvd0dlb21ldHJ5KS5j
b250ZW50Qm94VG9wKCk7CiAKICAgICAvLyBSZXNvbHZlIHRvcCBhbGwgdGhlIHdheSB1cCB0byB0
aGUgY29udGFpbmluZyBibG9jay4KICAgICBhdXRvJiBjb250YWluaW5nQmxvY2sgPSBsYXlvdXRC
b3guY29udGFpbmluZ0Jsb2NrKCk7CiAgICAgLy8gU3RhcnQgd2l0aCB0aGUgcGFyZW50IHNpbmNl
IHdlIHByZXRlbmQgdGhhdCB0aGlzIGJveCBpcyBub3JtYWwgZmxvdy4KLSAgICBmb3IgKGF1dG8q
IGFuY2VzdG9yID0gbGF5b3V0Qm94LnBhcmVudCgpOyBhbmNlc3RvciAhPSAmY29udGFpbmluZ0Js
b2NrOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+Y29udGFpbmluZ0Jsb2NrKCkpIHsKKyAgICBmb3Ig
KGF1dG8qIGFuY2VzdG9yID0gJmxheW91dEJveC5wYXJlbnQoKTsgYW5jZXN0b3IgIT0gJmNvbnRh
aW5pbmdCbG9jazsgYW5jZXN0b3IgPSAmYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKSB7CiAg
ICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JC
b3goKmFuY2VzdG9yLCBFc2NhcGVSZWFzb246Ok91dE9mRmxvd0JveE5lZWRzSW5GbG93R2VvbWV0
cnkpOwogICAgICAgICAvLyBEaXNwbGF5OjpCb3g6OnRvcCBpcyB0aGUgYm9yZGVyIGJveCB0b3Ag
cG9zaXRpb24gaW4gaXRzIGNvbnRhaW5pbmcgYmxvY2sncyBjb29yZGluYXRlIHN5c3RlbS4KICAg
ICAgICAgdG9wICs9IGJveEdlb21ldHJ5LnRvcCgpOwpAQCAtMjU3LDEzICsyNTUsMTIgQEAgTGF5
b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnN0YXRpY0hvcml6b250YWxQb3Np
dGlvbkZvck91dE9mRmxvd1Bvc2kKIAogICAgIC8vIFN0YXJ0IHdpdGggdGhpcyBib3gncyBib3Jk
ZXIgYm94IG9mZnNldCBmcm9tIHRoZSBwYXJlbnQncyBib3JkZXIgYm94LgogICAgIGF1dG8mIGZv
cm1hdHRpbmdDb250ZXh0ID0gdGhpcy0+Zm9ybWF0dGluZ0NvbnRleHQoKTsKLSAgICBBU1NFUlQo
bGF5b3V0Qm94LnBhcmVudCgpKTsKLSAgICBhdXRvIGxlZnQgPSBmb3JtYXR0aW5nQ29udGV4dC5n
ZW9tZXRyeUZvckJveCgqbGF5b3V0Qm94LnBhcmVudCgpLCBFc2NhcGVSZWFzb246Ok91dE9mRmxv
d0JveE5lZWRzSW5GbG93R2VvbWV0cnkpLmNvbnRlbnRCb3hMZWZ0KCk7CisgICAgYXV0byBsZWZ0
ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94LnBhcmVudCgpLCBF
c2NhcGVSZWFzb246Ok91dE9mRmxvd0JveE5lZWRzSW5GbG93R2VvbWV0cnkpLmNvbnRlbnRCb3hM
ZWZ0KCk7CiAKICAgICAvLyBSZXNvbHZlIGxlZnQgYWxsIHRoZSB3YXkgdXAgdG8gdGhlIGNvbnRh
aW5pbmcgYmxvY2suCiAgICAgYXV0byYgY29udGFpbmluZ0Jsb2NrID0gbGF5b3V0Qm94LmNvbnRh
aW5pbmdCbG9jaygpOwogICAgIC8vIFN0YXJ0IHdpdGggdGhlIHBhcmVudCBzaW5jZSB3ZSBwcmV0
ZW5kIHRoYXQgdGhpcyBib3ggaXMgbm9ybWFsIGZsb3cuCi0gICAgZm9yIChhdXRvKiBhbmNlc3Rv
ciA9IGxheW91dEJveC5wYXJlbnQoKTsgYW5jZXN0b3IgIT0gJmNvbnRhaW5pbmdCbG9jazsgYW5j
ZXN0b3IgPSAmYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKSB7CisgICAgZm9yIChhdXRvKiBh
bmNlc3RvciA9ICZsYXlvdXRCb3gucGFyZW50KCk7IGFuY2VzdG9yICE9ICZjb250YWluaW5nQmxv
Y2s7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkgewogICAgICAgICBh
dXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCphbmNl
c3RvciwgRXNjYXBlUmVhc29uOjpPdXRPZkZsb3dCb3hOZWVkc0luRmxvd0dlb21ldHJ5KTsKICAg
ICAgICAgLy8gRGlzcGxheTo6Qm94OjpsZWZ0IGlzIHRoZSBib3JkZXIgYm94IGxlZnQgcG9zaXRp
b24gaW4gaXRzIGNvbnRhaW5pbmcgYmxvY2sncyBjb29yZGluYXRlIHN5c3RlbS4KICAgICAgICAg
bGVmdCArPSBib3hHZW9tZXRyeS5sZWZ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250
ZXh0UXVpcmtzLmNwcAppbmRleCAyYWUzODJkZWE2NzJiMzYxNWEyYjZjNmFiNDgzODVlODE3NWQ1
MWE4Li5lYmZiYjFmZGE0YTdmY2FiMWI4ZDE5MjRiMWZkNzY1MjEyN2UxY2JkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHRRdWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgTGF5
b3V0VW5pdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OnN0cmV0Y2hlZEluRmxvd0hl
aWdodChjb25zdCBCb3gmIGxheW8KICAgICB1c2VkVmVydGljYWxNYXJnaW4gKz0gY29sbGFwc2Vk
TWFyZ2luLmlzQ29sbGFwc2VkVGhyb3VnaCA/IG5vbkNvbGxhcHNlZE1hcmdpbi5hZnRlciA6IGNv
bGxhcHNlZE1hcmdpbi5hZnRlci52YWx1ZU9yKG5vbkNvbGxhcHNlZE1hcmdpbi5hZnRlcik7CiAg
ICAgYm9keUJveENvbnRlbnRIZWlnaHQgLT0gdXNlZFZlcnRpY2FsTWFyZ2luOwogICAgIC8vIERv
Y3VtZW50IGJveCdzIHBhZGRpbmcgYW5kIGJvcmRlciBhbHNvIHNocmluayB0aGUgYm9keSBib3gn
cyBjb250ZW50IGhlaWdodC4KLSAgICBhdXRvJiBkb2N1bWVudEJveCA9ICpsYXlvdXRCb3gucGFy
ZW50KCk7CisgICAgYXV0byYgZG9jdW1lbnRCb3ggPSBsYXlvdXRCb3gucGFyZW50KCk7CiAgICAg
YXV0byYgZG9jdW1lbnRCb3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9y
Qm94KGRvY3VtZW50Qm94LCBFc2NhcGVSZWFzb246OkJvZHlTdHJlY2hlc1RvVmlld3BvcnRRdWly
ayk7CiAgICAgYm9keUJveENvbnRlbnRIZWlnaHQgLT0gZG9jdW1lbnRCb3hHZW9tZXRyeS52ZXJ0
aWNhbEJvcmRlcigpICsgZG9jdW1lbnRCb3hHZW9tZXRyeS52ZXJ0aWNhbFBhZGRpbmcoKS52YWx1
ZU9yKDApOwogICAgIC8vIEhvd2V2ZXIgdGhlIG5vbi1pbi1mbG93IGRvY3VtZW50IGJveCdzIHZl
cnRpY2FsIG1hcmdpbnMgYXJlIGlnbm9yZWQuIFRoZXkgZG9uJ3QgYWZmZWN0IHRoZSBib2R5IGJv
eCdzIGNvbnRlbnQgaGVpZ2h0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKaW5kZXggYjQ5ZWE3
ZDM0YjVkOTY0MWM4YTMwNzVmY2FkMjIzNWE3MTcxMjA1Ni4uNGE3MGYzMmFhY2Q5N2Y2MjYyMjgy
YzMwODIxYjY2N2RiOTE1MmZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCkBAIC05Nyw3
ICs5Nyw3IEBAIGJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1h
cmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnCiAgICAgLy8gMS4gVGhpcyBpcyB0aGUg
bGFzdCBpbi1mbG93IGNoaWxkIGFuZCBpdHMgbWFyZ2lucyBjb2xsYXBzZSB0aHJvdWdoIGFuZCB0
aGUgbWFyZ2luIGFmdGVyIGNvbGxhcHNlcyB3aXRoIHBhcmVudCdzIG1hcmdpbiBhZnRlciBvcgog
ICAgIC8vIDIuIFRoaXMgYm94J3MgbWFyZ2luIGFmdGVyIGNvbGxhcHNlcyB3aXRoIHRoZSBuZXh0
IHNpYmxpbmcncyBtYXJnaW4gYmVmb3JlIGFuZCB0aGF0IHNpYmxpbmcgY29sbGFwc2VzIHRocm91
Z2ggYW5kCiAgICAgLy8gd2UgY2FuIGdldCB0byB0aGUgbGFzdCBpbi1mbG93IGNoaWxkIGxpa2Ug
dGhhdC4KLSAgICBhdXRvKiBsYXN0SW5GbG93Q2hpbGQgPSBsYXlvdXRCb3gucGFyZW50KCktPmxh
c3RJbkZsb3dDaGlsZCgpOworICAgIGF1dG8qIGxhc3RJbkZsb3dDaGlsZCA9IGxheW91dEJveC5w
YXJlbnQoKS5sYXN0SW5GbG93Q2hpbGQoKTsKICAgICBmb3IgKGF1dG8qIGN1cnJlbnRCb3ggPSAm
bGF5b3V0Qm94OyBjdXJyZW50Qm94OyBjdXJyZW50Qm94ID0gY3VycmVudEJveC0+bmV4dEluRmxv
d1NpYmxpbmcoKSkgewogICAgICAgICBpZiAoIW1hcmdpbnNDb2xsYXBzZVRocm91Z2goKmN1cnJl
bnRCb3gpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMyLDcgKzEzMiw3IEBAIGJv
b2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkJlZm9yZUNv
bGxhcHNlc1dpdGhQYXJlbnRNYXJnCiAgICAgaWYgKGxheW91dEJveC5wcmV2aW91c0luRmxvd1Np
YmxpbmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byYgcGFyZW50ID0gKmxh
eW91dEJveC5wYXJlbnQoKTsKKyAgICBhdXRvJiBwYXJlbnQgPSBsYXlvdXRCb3gucGFyZW50KCk7
CiAgICAgLy8gTWFyZ2lucyBvZiBlbGVtZW50cyB0aGF0IGVzdGFibGlzaCBuZXcgYmxvY2sgZm9y
bWF0dGluZyBjb250ZXh0cyBkbyBub3QgY29sbGFwc2Ugd2l0aCB0aGVpciBpbi1mbG93IGNoaWxk
cmVuCiAgICAgaWYgKGVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dChwYXJlbnQpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMzQsNyArMjM0LDcgQEAgYm9vbCBCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFy
ZW50TWFyZ2kKICAgICAvLyAxLiBUaGlzIGlzIHRoZSBmaXJzdCBpbi1mbG93IGNoaWxkIGFuZCBp
dHMgbWFyZ2lucyBjb2xsYXBzZSB0aHJvdWdoIGFuZCB0aGUgbWFyZ2luIGJlZm9yZSBjb2xsYXBz
ZXMgd2l0aCBwYXJlbnQncyBtYXJnaW4gYmVmb3JlIG9yCiAgICAgLy8gMi4gVGhpcyBib3gncyBt
YXJnaW4gYmVmb3JlIGNvbGxhcHNlcyB3aXRoIHRoZSBwcmV2aW91cyBzaWJsaW5nJ3MgbWFyZ2lu
IGFmdGVyIGFuZCB0aGF0IHNpYmxpbmcgY29sbGFwc2VzIHRocm91Z2ggYW5kCiAgICAgLy8gd2Ug
Y2FuIGdldCB0byB0aGUgZmlyc3QgaW4tZmxvdyBjaGlsZCBsaWtlIHRoYXQuCi0gICAgYXV0byog
Zmlyc3RJbkZsb3dDaGlsZCA9IGxheW91dEJveC5wYXJlbnQoKS0+Zmlyc3RJbkZsb3dDaGlsZCgp
OworICAgIGF1dG8qIGZpcnN0SW5GbG93Q2hpbGQgPSBsYXlvdXRCb3gucGFyZW50KCkuZmlyc3RJ
bkZsb3dDaGlsZCgpOwogICAgIGZvciAoYXV0byogY3VycmVudEJveCA9ICZsYXlvdXRCb3g7IGN1
cnJlbnRCb3g7IGN1cnJlbnRCb3ggPSBjdXJyZW50Qm94LT5wcmV2aW91c0luRmxvd1NpYmxpbmco
KSkgewogICAgICAgICBpZiAoIW1hcmdpbnNDb2xsYXBzZVRocm91Z2goKmN1cnJlbnRCb3gpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjY3LDcgKzI2Nyw3IEBAIGJvb2wgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0
aFBhcmVudE1hcmdpCiAgICAgaWYgKGxheW91dEJveC5uZXh0SW5GbG93U2libGluZygpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvJiBwYXJlbnQgPSAqbGF5b3V0Qm94LnBhcmVu
dCgpOworICAgIGF1dG8mIHBhcmVudCA9IGxheW91dEJveC5wYXJlbnQoKTsKICAgICAvLyBNYXJn
aW5zIG9mIGVsZW1lbnRzIHRoYXQgZXN0YWJsaXNoIG5ldyBibG9jayBmb3JtYXR0aW5nIGNvbnRl
eHRzIGRvIG5vdCBjb2xsYXBzZSB3aXRoIHRoZWlyIGluLWZsb3cgY2hpbGRyZW4uCiAgICAgaWYg
KGVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dChwYXJlbnQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNTk3NjFj
YTllZTYwNjg3NzllNTVhOWIwMzQwM2Q4ZTVkYzhmNTY4YS4uM2EzYzAzODM4N2NhNDFmNjgxZGQy
MThhMmMyNzU3MWQwMzE0YzZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNw
cApAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IEJveCogbmV4dElubGluZUxl
dmVsQm94VG9MYXlvdXQoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0CiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBmb3IgKGF1dG8qIG5leHRJblByZU9yZGVyID0gJmxheW91dEJveDsgbmV4dElu
UHJlT3JkZXIgJiYgbmV4dEluUHJlT3JkZXIgIT0gJnN0YXlXaXRoaW47IG5leHRJblByZU9yZGVy
ID0gbmV4dEluUHJlT3JkZXItPnBhcmVudCgpKSB7CisgICAgZm9yIChhdXRvKiBuZXh0SW5QcmVP
cmRlciA9ICZsYXlvdXRCb3g7IG5leHRJblByZU9yZGVyICYmIG5leHRJblByZU9yZGVyICE9ICZz
dGF5V2l0aGluOyBuZXh0SW5QcmVPcmRlciA9ICZuZXh0SW5QcmVPcmRlci0+cGFyZW50KCkpIHsK
ICAgICAgICAgaWYgKGF1dG8qIG5leHRTaWJsaW5nID0gbmV4dEluUHJlT3JkZXItPm5leHRJbkZs
b3dPckZsb2F0aW5nU2libGluZygpKQogICAgICAgICAgICAgcmV0dXJuIG5leHRTaWJsaW5nOwog
ICAgIH0KQEAgLTQyNyw3ICs0MjcsNyBAQCBMaW5lQnVpbGRlcjo6Q29uc3RyYWludHMgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbnN0cmFpbnRzRm9yTGluZShjb25zdCBIb3JpegogICAgICAg
ICAgICAgLy8gRm9yIGV4YW1wbGUsIHRoZSBmaXJzdCBsaW5lIG9mIGFuIGFub255bW91cyBibG9j
ayBib3ggaXMgb25seSBhZmZlY3RlZCBpZiBpdCBpcyB0aGUgZmlyc3QgY2hpbGQgb2YgaXRzIHBh
cmVudCBlbGVtZW50LgogICAgICAgICAgICAgaXNGb3JtYXR0aW5nQ29udGV4dFJvb3RDYW5kaWRh
dGVUb1RleHRJbmRlbnQgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmxheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkKCkKICAgICAgICAgICAg
ICAgICA/IGxheW91dFN0YXRlKCkuaXNJbnRlZ3JhdGVkUm9vdEJveEZpcnN0Q2hpbGQoKQotICAg
ICAgICAgICAgICAgIDogcm9vdC5wYXJlbnQoKS0+Zmlyc3RJbkZsb3dDaGlsZCgpID09ICZyb290
OworICAgICAgICAgICAgICAgIDogcm9vdC5wYXJlbnQoKS5maXJzdEluRmxvd0NoaWxkKCkgPT0g
JnJvb3Q7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFpc0Zvcm1hdHRpbmdDb250ZXh0Um9vdENh
bmRpZGF0ZVRvVGV4dEluZGVudCkKICAgICAgICAgICAgIHJldHVybiBJbmxpbmVMYXlvdXRVbml0
IHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91
dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3Bw
CmluZGV4IGJkN2I1ZjhlOTMyMjdjNGViMjViOGQ2OTc1NmRmNzQ1ZWU4YzI4OGEuLmExM2VhYTli
NjUyMzY0YzU4NDJiNWFlN2E3NGIxM2U5MWVhNTZjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcApAQCAtMTkyLDggKzE5Miw4IEBAIGNvbnN0
IENvbnRhaW5lckJveCYgQm94Ojpjb250YWluaW5nQmxvY2soKSBjb25zdAogICAgIC8vIElmIHRo
ZSBlbGVtZW50IGhhcyAncG9zaXRpb246IGFic29sdXRlJywgdGhlIGNvbnRhaW5pbmcgYmxvY2sg
aXMgZXN0YWJsaXNoZWQgYnkgdGhlIG5lYXJlc3QgYW5jZXN0b3Igd2l0aCBhCiAgICAgLy8gJ3Bv
c2l0aW9uJyBvZiAnYWJzb2x1dGUnLCAncmVsYXRpdmUnIG9yICdmaXhlZCcuCiAgICAgaWYgKCFp
c1Bvc2l0aW9uZWQoKSB8fCBpc0luRmxvd1Bvc2l0aW9uZWQoKSkgewotICAgICAgICBhdXRvKiBh
bmNlc3RvciA9IHBhcmVudCgpOwotICAgICAgICBmb3IgKDsgIWlzPEluaXRpYWxDb250YWluaW5n
QmxvY2s+KCphbmNlc3Rvcik7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudCgpKSB7CisgICAg
ICAgIGF1dG8qIGFuY2VzdG9yID0gJnBhcmVudCgpOworICAgICAgICBmb3IgKDsgIWlzPEluaXRp
YWxDb250YWluaW5nQmxvY2s+KCphbmNlc3Rvcik7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5wYXJl
bnQoKSkgewogICAgICAgICAgICAgaWYgKGFuY2VzdG9yLT5pc0Jsb2NrQ29udGFpbmVyQm94KCkg
fHwgYW5jZXN0b3ItPmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gKmFuY2VzdG9yOwogICAgICAgICB9CkBAIC0yMDEsOCArMjAxLDggQEAgY29u
c3QgQ29udGFpbmVyQm94JiBCb3g6OmNvbnRhaW5pbmdCbG9jaygpIGNvbnN0CiAgICAgfQogCiAg
ICAgaWYgKGlzRml4ZWRQb3NpdGlvbmVkKCkpIHsKLSAgICAgICAgYXV0byogYW5jZXN0b3IgPSBw
YXJlbnQoKTsKLSAgICAgICAgZm9yICg7ICFpczxJbml0aWFsQ29udGFpbmluZ0Jsb2NrPigqYW5j
ZXN0b3IpOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnQoKSkgeworICAgICAgICBhdXRvKiBh
bmNlc3RvciA9ICZwYXJlbnQoKTsKKyAgICAgICAgZm9yICg7ICFpczxJbml0aWFsQ29udGFpbmlu
Z0Jsb2NrPigqYW5jZXN0b3IpOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+cGFyZW50KCkpIHsKICAg
ICAgICAgICAgIGlmIChhbmNlc3Rvci0+c3R5bGUoKS5oYXNUcmFuc2Zvcm0oKSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gKmFuY2VzdG9yOwogICAgICAgICB9CkBAIC0yMTAsOCArMjEwLDggQEAg
Y29uc3QgQ29udGFpbmVyQm94JiBCb3g6OmNvbnRhaW5pbmdCbG9jaygpIGNvbnN0CiAgICAgfQog
CiAgICAgaWYgKGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7Ci0gICAgICAgIGF1dG8qIGFuY2Vz
dG9yID0gcGFyZW50KCk7Ci0gICAgICAgIGZvciAoOyAhaXM8SW5pdGlhbENvbnRhaW5pbmdCbG9j
az4oKmFuY2VzdG9yKTsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50KCkpIHsKKyAgICAgICAg
YXV0byogYW5jZXN0b3IgPSAmcGFyZW50KCk7CisgICAgICAgIGZvciAoOyAhaXM8SW5pdGlhbENv
bnRhaW5pbmdCbG9jaz4oKmFuY2VzdG9yKTsgYW5jZXN0b3IgPSAmYW5jZXN0b3ItPnBhcmVudCgp
KSB7CiAgICAgICAgICAgICBpZiAoYW5jZXN0b3ItPmlzUG9zaXRpb25lZCgpIHx8IGFuY2VzdG9y
LT5zdHlsZSgpLmhhc1RyYW5zZm9ybSgpKQogICAgICAgICAgICAgICAgIHJldHVybiAqYW5jZXN0
b3I7CiAgICAgICAgIH0KQEAgLTIzNSw3ICsyMzUsNyBAQCBjb25zdCBDb250YWluZXJCb3gmIEJv
eDo6Zm9ybWF0dGluZ0NvbnRleHRSb290KCkgY29uc3QKICAgICAvLyA8ZGl2IGlkPW91dGVyIHN0
eWxlPSJwb3NpdGlvbjogYWJzb2x1dGUiPjxkaXYgaWQ9aW5uZXI+PHNwYW4gc3R5bGU9InBvc2l0
aW9uOiByZWxhdGl2ZSI+Y29udGVudDwvc3Bhbj48L2Rpdj48L2Rpdj4KICAgICAvLyBXaGlsZSB0
aGUgcmVsYXRpdmVseSBwb3NpdGlvbmVkIGlubGluZSBjb250YWluZXIgKHNwYW4pIGlzIHBsYWNl
ZCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmluZyBibG9jayAib3V0ZXIiLCBpdCBsaXZlcyBpbiB0
aGUgaW5saW5lCiAgICAgLy8gZm9ybWF0dGluZyBjb250ZXh0IGVzdGFibGlzaGVkIGJ5ICJpbm5l
ciIuCi0gICAgYXV0byYgYW5jZXN0b3IgPSBpc0lubGluZUxldmVsQm94KCkgJiYgaXNJbkZsb3dQ
b3NpdGlvbmVkKCkgPyAqcGFyZW50KCkgOiBjb250YWluaW5nQmxvY2soKTsKKyAgICBhdXRvJiBh
bmNlc3RvciA9IGlzSW5saW5lTGV2ZWxCb3goKSAmJiBpc0luRmxvd1Bvc2l0aW9uZWQoKSA/IHBh
cmVudCgpIDogY29udGFpbmluZ0Jsb2NrKCk7CiAgICAgaWYgKGFuY2VzdG9yLmVzdGFibGlzaGVz
Rm9ybWF0dGluZ0NvbnRleHQoKSkKICAgICAgICAgcmV0dXJuIGFuY2VzdG9yOwogICAgIHJldHVy
biBhbmNlc3Rvci5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKTsKQEAgLTI0Niw4ICsyNDYsOCBAQCBj
b25zdCBJbml0aWFsQ29udGFpbmluZ0Jsb2NrJiBCb3g6OmluaXRpYWxDb250YWluaW5nQmxvY2so
KSBjb25zdAogICAgIGlmIChpczxJbml0aWFsQ29udGFpbmluZ0Jsb2NrPigqdGhpcykpCiAgICAg
ICAgIHJldHVybiBkb3duY2FzdDxJbml0aWFsQ29udGFpbmluZ0Jsb2NrPigqdGhpcyk7CiAKLSAg
ICBhdXRvKiBhbmNlc3RvciA9IHBhcmVudCgpOwotICAgIGZvciAoOyBhbmNlc3Rvci0+cGFyZW50
KCk7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudCgpKSB7IH0KKyAgICBhdXRvKiBhbmNlc3Rv
ciA9ICZwYXJlbnQoKTsKKyAgICBmb3IgKDsgIWlzPEluaXRpYWxDb250YWluaW5nQmxvY2s+KCph
bmNlc3Rvcik7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5wYXJlbnQoKSkgeyB9CiAKICAgICByZXR1
cm4gZG93bmNhc3Q8SW5pdGlhbENvbnRhaW5pbmdCbG9jaz4oKmFuY2VzdG9yKTsKIH0KQEAgLTM1
MywxMSArMzUzLDEwIEBAIGJvb2wgQm94Ojppc092ZXJmbG93VmlzaWJsZSgpIGNvbnN0CiAgICAg
Ly8gaWYgdGhlIHZhbHVlIG9uIHRoZSByb290IGVsZW1lbnQgaXMgJ3Zpc2libGUnLiBUaGUgJ3Zp
c2libGUnIHZhbHVlIHdoZW4gdXNlZCBmb3IgdGhlIHZpZXdwb3J0IG11c3QgYmUgaW50ZXJwcmV0
ZWQgYXMgJ2F1dG8nLgogICAgIC8vIFRoZSBlbGVtZW50IGZyb20gd2hpY2ggdGhlIHZhbHVlIGlz
IHByb3BhZ2F0ZWQgbXVzdCBoYXZlIGEgdXNlZCB2YWx1ZSBmb3IgJ292ZXJmbG93JyBvZiAndmlz
aWJsZScuCiAgICAgaWYgKGlzQm9keUJveCgpKSB7Ci0gICAgICAgIGF1dG8qIGRvY3VtZW50Qm94
ID0gcGFyZW50KCk7Ci0gICAgICAgIEFTU0VSVChkb2N1bWVudEJveCk7Ci0gICAgICAgIGlmICgh
ZG9jdW1lbnRCb3gtPmlzRG9jdW1lbnRCb3goKSkKKyAgICAgICAgYXV0byYgZG9jdW1lbnRCb3gg
PSBwYXJlbnQoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudEJveC5pc0RvY3VtZW50Qm94KCkpCiAg
ICAgICAgICAgICByZXR1cm4gaXNPdmVyZmxvd1Zpc2libGU7Ci0gICAgICAgIGlmICghZG9jdW1l
bnRCb3gtPmlzT3ZlcmZsb3dWaXNpYmxlKCkpCisgICAgICAgIGlmICghZG9jdW1lbnRCb3guaXNP
dmVyZmxvd1Zpc2libGUoKSkKICAgICAgICAgICAgIHJldHVybiBpc092ZXJmbG93VmlzaWJsZTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRCb3guaAppbmRleCA4NmQxYjhhOWM4YjA1ODhhNjZlZmU5ZWVjYTIxOTE2
NmVjN2EwMTYwLi4wYmQ0MjIxYWY0NWJkZWI5YzczNGIxZDY5OTViYzNmZDgyMDFhZmUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaApAQCAtMTI3LDcg
KzEyNyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzSUZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9l
bGVtZW50QXR0cmlidXRlcyAmJiBtX2VsZW1lbnRBdHRyaWJ1dGVzLnZhbHVlKCkuZWxlbWVudFR5
cGUgPT0gRWxlbWVudFR5cGU6OklGcmFtZTsgfQogICAgIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZWxlbWVudEF0dHJpYnV0ZXMgJiYgbV9lbGVtZW50QXR0cmlidXRlcy52YWx1ZSgp
LmVsZW1lbnRUeXBlID09IEVsZW1lbnRUeXBlOjpJbWFnZTsgfQogCi0gICAgY29uc3QgQ29udGFp
bmVyQm94KiBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQorICAgIGNvbnN0IENv
bnRhaW5lckJveCYgcGFyZW50KCkgY29uc3QgeyByZXR1cm4gKm1fcGFyZW50OyB9CiAgICAgY29u
c3QgQm94KiBuZXh0U2libGluZygpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dFNpYmxpbmc7IH0KICAg
ICBjb25zdCBCb3gqIG5leHRJbkZsb3dTaWJsaW5nKCkgY29uc3Q7CiAgICAgY29uc3QgQm94KiBu
ZXh0SW5GbG93T3JGbG9hdGluZ1NpYmxpbmcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEluaXRpYWxDb250YWluaW5n
QmxvY2suaAppbmRleCBhOTllYzk1NGFkZjhjN2Q4MWVkY2Y4MDUxMDY4NjhkMWU5OWUyY2I3Li45
MDJlZGFhOTNjMzNkZTE3YzNmODc0MjE3MDJiZjM2YjA2MGEwZWQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbml0aWFsQ29udGFpbmluZ0Jsb2Nr
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5pdGlhbENv
bnRhaW5pbmdCbG9jay5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5J
bml0aWFsQ29udGFpbmluZ0Jsb2NrKCkgPSBkZWZhdWx0OwogCiBwcml2YXRlOgotICAgIGNvbnN0
IENvbnRhaW5lckJveCogcGFyZW50KCkgY29uc3QgPSBkZWxldGU7CisgICAgY29uc3QgQ29udGFp
bmVyQm94JiBwYXJlbnQoKSBjb25zdCA9IGRlbGV0ZTsKICAgICBjb25zdCBCb3gqIG5leHRTaWJs
aW5nKCkgY29uc3QgPSBkZWxldGU7CiAgICAgY29uc3QgQm94KiBuZXh0SW5GbG93U2libGluZygp
IGNvbnN0ID0gZGVsZXRlOwogICAgIGNvbnN0IEJveCogbmV4dEluRmxvd09yRmxvYXRpbmdTaWJs
aW5nKCkgY29uc3QgPSBkZWxldGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
bGF5b3V0dHJlZS9MYXlvdXRJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0SXRlcmF0b3IuaAppbmRleCBjYjBmY2Y0N2I1OWYwNWI2OGJiYWUyM2JhNDMz
ZjI3OTA1MmY1MDliLi4wY2VmOWI5OTExYjlmZmIwNDIzODZmZGEzMWViNzhkMjViY2YxZjA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJdGVyYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEl0ZXJhdG9y
LmgKQEAgLTcxLDcgKzcxLDkgQEAgaW5saW5lIGNvbnN0IEJveCogZmlyc3RDaGlsZChjb25zdCBC
b3gmIGJveCkKIAogaW5saW5lIGNvbnN0IEJveCogbmV4dEFuY2VzdG9yU2libGluZyhjb25zdCBC
b3gmIGN1cnJlbnQsIGNvbnN0IENvbnRhaW5lckJveCogc3RheVdpdGhpbikKIHsKLSAgICBmb3Ig
KGF1dG8qIGFuY2VzdG9yID0gY3VycmVudC5wYXJlbnQoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0g
YW5jZXN0b3ItPnBhcmVudCgpKSB7CisgICAgLy8gV2l0aCB0aGUgY3VycmVudCBkZXNjZW5kZW50
IGl0ZXJhdG9ycywgImN1cnJlbnQiIGNhbiBuZXZlciBiZSB0aGUgSUNCLgorICAgIEFTU0VSVCgh
aXM8SW5pdGlhbENvbnRhaW5pbmdCbG9jaz4oY3VycmVudCkpOworICAgIGZvciAoYXV0byogYW5j
ZXN0b3IgPSAmY3VycmVudC5wYXJlbnQoKTsgIWlzPEluaXRpYWxDb250YWluaW5nQmxvY2s+KCph
bmNlc3Rvcik7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5wYXJlbnQoKSkgewogICAgICAgICBpZiAo
YW5jZXN0b3IgPT0gc3RheVdpdGhpbikKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
ICAgICBpZiAoYXV0byogc2libGluZyA9IGFuY2VzdG9yLT5uZXh0U2libGluZygpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwCmlu
ZGV4IGQzZjU5ZWYxNTk3OGRmNGMzMTU5OWIyNTQ5ZmVmNjkwNDcyMGU4MGQuLjgwMTg4Nzk4MjIx
NDQ5ZDNmNTgzOTIxMzkwYjEyOGU4MmY5NTc4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBA
QCB2b2lkIFRhYmxlR3JpZDo6YXBwZW5kQ2VsbChjb25zdCBCb3gmIHRhYmxlQ2VsbEJveCkKICAg
ICAgICAgbV9jb2x1bW5zQ29udGV4dC5hZGRDb2x1bW4oKTsKIAogICAgIGlmIChpc0luTmV3Um93
KQotICAgICAgICBtX3Jvd3MuYXBwZW5kKHsgKnRhYmxlQ2VsbEJveC5wYXJlbnQoKSB9KTsKKyAg
ICAgICAgbV9yb3dzLmFwcGVuZCh7IHRhYmxlQ2VsbEJveC5wYXJlbnQoKSB9KTsKIAogICAgIG1f
Y2VsbExpc3QuYWRkKFdURk1vdmUoY2VsbEluZm8pKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394843</attachid>
            <date>2020-03-28 14:20:17 -0700</date>
            <delta_ts>2020-03-29 07:50:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209400-20200328142016.patch</filename>
            <type>text/plain</type>
            <size>19871</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQxMmVlOTExNjE5NDgw
MGViY2Q1N2MxZWY4Zjk5N2RhZWY0MWRiYi4uMTk1ZGQ2YmMyNzIzNjQ2NjJkMzk1NzQ0MzAzMmJl
NDYzNzVmMzdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIwLTAzLTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gTGF5b3V0OjpCb3g6
OnBhcmVudCgpIHNob3VsZCByZXR1cm4gY29uc3QgQ29udGFpbmVyQm94JgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NDAwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MDc0MjQzMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBMYXlvdXQgdHJlZSBpcyBpbW11dGFibGUgZHVyaW5nIGxheW91dCwgc28g
ZXZlcnkgYm94IHNob3VsZCBiZSBhYmxlIHRvIHJldHVybiBhIHZhbGlkIHBhcmVudCAoZXhjZXB0
IHRoZSBJQ0IsIGJ1dAorICAgICAgICBjbGFzcyBJbml0aWFsQ29udGFpbmluZ0Jsb2NrIGRlbGV0
ZXMgcGFyZW50KCkgZnVuY3Rpb24gYW55d2F5KS4KKworICAgICAgICAqIGxheW91dC9Gb3JtYXR0
aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNWZXJ0aWNhbFBvc2l0aW9uRm9yT3V0T2ZGbG93
UG9zaXRpb25lZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6c3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uRm9yT3V0T2ZGbG93UG9z
aXRpb25lZCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQpOgorICAg
ICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNv
bGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJn
aW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZv
cmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2lu
QWZ0ZXIgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6bmV4dElubGlu
ZUxldmVsQm94VG9MYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dDo6Y29uc3RyYWludHNGb3JMaW5lKToKKyAgICAgICAgKiBsYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmNv
bnRhaW5pbmdCbG9jayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6Zm9y
bWF0dGluZ0NvbnRleHRSb290IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94
Ojppbml0aWFsQ29udGFpbmluZ0Jsb2NrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Qm94Ojppc092ZXJmbG93VmlzaWJsZSBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6cGFyZW50
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJdGVyYXRvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRCb3hUcmF2ZXJzYWw6Om5leHRBbmNlc3Rv
clNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRCb3hUcmF2ZXJzYWw6
Om5leHQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUcmF2ZXJzYWw6OmZpcnN0V2l0aGlu
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VHJhdmVyc2FsOjpuZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGF5b3V0SXRlcmF0b3I8VD46OnRyYXZlcnNlTmV4dCk6CisgICAg
ICAgICogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpUYWJsZUdyaWQ6OmFwcGVuZENlbGwpOgorCiAyMDIwLTAzLTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IGZpeCB0aGUgd2F0Y2hPUyBidWlsZCBhZnRlciByMjU5MTUxCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXggMmUxZTcyNzNi
MWExYzY3ZWIxOGU1MmYwZDExMmQwNjQ3NjYwYTUxYy4uN2MxMGY1M2U3YWJlMmFkYzc2OTE4MzE2
ODUxNmQzZjVlYzdkN2Y4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApAQCAtMjMyLDE1ICsyMzIsMTMgQEAgTGF5b3V0VW5p
dCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnN0YXRpY1ZlcnRpY2FsUG9zaXRpb25Gb3JP
dXRPZkZsb3dQb3NpdGkKICAgICAgICAgLy8gQWRkIHNpYmxpbmcgb2Zmc2V0CiAgICAgICAgIGF1
dG8mIHByZXZpb3VzSW5GbG93Qm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRy
eUZvckJveCgqbGF5b3V0Qm94LnByZXZpb3VzSW5GbG93U2libGluZygpLCBFc2NhcGVSZWFzb246
Ok91dE9mRmxvd0JveE5lZWRzSW5GbG93R2VvbWV0cnkpOwogICAgICAgICB0b3AgKz0gcHJldmlv
dXNJbkZsb3dCb3hHZW9tZXRyeS5ib3R0b20oKSArIHByZXZpb3VzSW5GbG93Qm94R2VvbWV0cnku
bm9uQ29sbGFwc2VkTWFyZ2luQWZ0ZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQo
bGF5b3V0Qm94LnBhcmVudCgpKTsKLSAgICAgICAgdG9wID0gZm9ybWF0dGluZ0NvbnRleHQuZ2Vv
bWV0cnlGb3JCb3goKmxheW91dEJveC5wYXJlbnQoKSwgRXNjYXBlUmVhc29uOjpPdXRPZkZsb3dC
b3hOZWVkc0luRmxvd0dlb21ldHJ5KS5jb250ZW50Qm94VG9wKCk7Ci0gICAgfQorICAgIH0gZWxz
ZQorICAgICAgICB0b3AgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveChsYXlvdXRC
b3gucGFyZW50KCksIEVzY2FwZVJlYXNvbjo6T3V0T2ZGbG93Qm94TmVlZHNJbkZsb3dHZW9tZXRy
eSkuY29udGVudEJveFRvcCgpOwogCiAgICAgLy8gUmVzb2x2ZSB0b3AgYWxsIHRoZSB3YXkgdXAg
dG8gdGhlIGNvbnRhaW5pbmcgYmxvY2suCiAgICAgYXV0byYgY29udGFpbmluZ0Jsb2NrID0gbGF5
b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOwogICAgIC8vIFN0YXJ0IHdpdGggdGhlIHBhcmVudCBz
aW5jZSB3ZSBwcmV0ZW5kIHRoYXQgdGhpcyBib3ggaXMgbm9ybWFsIGZsb3cuCi0gICAgZm9yIChh
dXRvKiBhbmNlc3RvciA9IGxheW91dEJveC5wYXJlbnQoKTsgYW5jZXN0b3IgIT0gJmNvbnRhaW5p
bmdCbG9jazsgYW5jZXN0b3IgPSAmYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKSB7CisgICAg
Zm9yIChhdXRvKiBhbmNlc3RvciA9ICZsYXlvdXRCb3gucGFyZW50KCk7IGFuY2VzdG9yICE9ICZj
b250YWluaW5nQmxvY2s7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkg
ewogICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5
Rm9yQm94KCphbmNlc3RvciwgRXNjYXBlUmVhc29uOjpPdXRPZkZsb3dCb3hOZWVkc0luRmxvd0dl
b21ldHJ5KTsKICAgICAgICAgLy8gRGlzcGxheTo6Qm94Ojp0b3AgaXMgdGhlIGJvcmRlciBib3gg
dG9wIHBvc2l0aW9uIGluIGl0cyBjb250YWluaW5nIGJsb2NrJ3MgY29vcmRpbmF0ZSBzeXN0ZW0u
CiAgICAgICAgIHRvcCArPSBib3hHZW9tZXRyeS50b3AoKTsKQEAgLTI1NywxMyArMjU1LDEyIEBA
IExheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNIb3Jpem9udGFs
UG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpCiAKICAgICAvLyBTdGFydCB3aXRoIHRoaXMgYm94J3Mg
Ym9yZGVyIGJveCBvZmZzZXQgZnJvbSB0aGUgcGFyZW50J3MgYm9yZGVyIGJveC4KICAgICBhdXRv
JiBmb3JtYXR0aW5nQ29udGV4dCA9IHRoaXMtPmZvcm1hdHRpbmdDb250ZXh0KCk7Ci0gICAgQVNT
RVJUKGxheW91dEJveC5wYXJlbnQoKSk7Ci0gICAgYXV0byBsZWZ0ID0gZm9ybWF0dGluZ0NvbnRl
eHQuZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5wYXJlbnQoKSwgRXNjYXBlUmVhc29uOjpPdXRP
ZkZsb3dCb3hOZWVkc0luRmxvd0dlb21ldHJ5KS5jb250ZW50Qm94TGVmdCgpOworICAgIGF1dG8g
bGVmdCA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KGxheW91dEJveC5wYXJlbnQo
KSwgRXNjYXBlUmVhc29uOjpPdXRPZkZsb3dCb3hOZWVkc0luRmxvd0dlb21ldHJ5KS5jb250ZW50
Qm94TGVmdCgpOwogCiAgICAgLy8gUmVzb2x2ZSBsZWZ0IGFsbCB0aGUgd2F5IHVwIHRvIHRoZSBj
b250YWluaW5nIGJsb2NrLgogICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5j
b250YWluaW5nQmxvY2soKTsKICAgICAvLyBTdGFydCB3aXRoIHRoZSBwYXJlbnQgc2luY2Ugd2Ug
cHJldGVuZCB0aGF0IHRoaXMgYm94IGlzIG5vcm1hbCBmbG93LgotICAgIGZvciAoYXV0byogYW5j
ZXN0b3IgPSBsYXlvdXRCb3gucGFyZW50KCk7IGFuY2VzdG9yICE9ICZjb250YWluaW5nQmxvY2s7
IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkgeworICAgIGZvciAoYXV0
byogYW5jZXN0b3IgPSAmbGF5b3V0Qm94LnBhcmVudCgpOyBhbmNlc3RvciAhPSAmY29udGFpbmlu
Z0Jsb2NrOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+Y29udGFpbmluZ0Jsb2NrKCkpIHsKICAgICAg
ICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgq
YW5jZXN0b3IsIEVzY2FwZVJlYXNvbjo6T3V0T2ZGbG93Qm94TmVlZHNJbkZsb3dHZW9tZXRyeSk7
CiAgICAgICAgIC8vIERpc3BsYXk6OkJveDo6bGVmdCBpcyB0aGUgYm9yZGVyIGJveCBsZWZ0IHBv
c2l0aW9uIGluIGl0cyBjb250YWluaW5nIGJsb2NrJ3MgY29vcmRpbmF0ZSBzeXN0ZW0uCiAgICAg
ICAgIGxlZnQgKz0gYm94R2VvbWV0cnkubGVmdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dFF1aXJrcy5jcHAKaW5kZXggMmFlMzgyZGVhNjcyYjM2MTVhMmI2YzZhYjQ4Mzg1ZTgx
NzVkNTFhOC4uZWJmYmIxZmRhNGE3ZmNhYjFiOGQxOTI0YjFmZDc2NTIxMjdlMWNiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0UXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCkBAIC04Niw3ICs4Niw3IEBA
IExheW91dFVuaXQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJbkZs
b3dIZWlnaHQoY29uc3QgQm94JiBsYXlvCiAgICAgdXNlZFZlcnRpY2FsTWFyZ2luICs9IGNvbGxh
cHNlZE1hcmdpbi5pc0NvbGxhcHNlZFRocm91Z2ggPyBub25Db2xsYXBzZWRNYXJnaW4uYWZ0ZXIg
OiBjb2xsYXBzZWRNYXJnaW4uYWZ0ZXIudmFsdWVPcihub25Db2xsYXBzZWRNYXJnaW4uYWZ0ZXIp
OwogICAgIGJvZHlCb3hDb250ZW50SGVpZ2h0IC09IHVzZWRWZXJ0aWNhbE1hcmdpbjsKICAgICAv
LyBEb2N1bWVudCBib3gncyBwYWRkaW5nIGFuZCBib3JkZXIgYWxzbyBzaHJpbmsgdGhlIGJvZHkg
Ym94J3MgY29udGVudCBoZWlnaHQuCi0gICAgYXV0byYgZG9jdW1lbnRCb3ggPSAqbGF5b3V0Qm94
LnBhcmVudCgpOworICAgIGF1dG8mIGRvY3VtZW50Qm94ID0gbGF5b3V0Qm94LnBhcmVudCgpOwog
ICAgIGF1dG8mIGRvY3VtZW50Qm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRy
eUZvckJveChkb2N1bWVudEJveCwgRXNjYXBlUmVhc29uOjpCb2R5U3RyZWNoZXNUb1ZpZXdwb3J0
UXVpcmspOwogICAgIGJvZHlCb3hDb250ZW50SGVpZ2h0IC09IGRvY3VtZW50Qm94R2VvbWV0cnku
dmVydGljYWxCb3JkZXIoKSArIGRvY3VtZW50Qm94R2VvbWV0cnkudmVydGljYWxQYWRkaW5nKCku
dmFsdWVPcigwKTsKICAgICAvLyBIb3dldmVyIHRoZSBub24taW4tZmxvdyBkb2N1bWVudCBib3gn
cyB2ZXJ0aWNhbCBtYXJnaW5zIGFyZSBpZ25vcmVkLiBUaGV5IGRvbid0IGFmZmVjdCB0aGUgYm9k
eSBib3gncyBjb250ZW50IGhlaWdodC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCmluZGV4IGI0
OWVhN2QzNGI1ZDk2NDFjOGEzMDc1ZmNhZDIyMzVhNzE3MTIwNTYuLjRhNzBmMzJhYWNkOTdmNjI2
MjI4MmMzMDgyMWI2NjdkYjkxNTJmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAt
OTcsNyArOTcsNyBAQCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNl
OjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZwogICAgIC8vIDEuIFRoaXMgaXMg
dGhlIGxhc3QgaW4tZmxvdyBjaGlsZCBhbmQgaXRzIG1hcmdpbnMgY29sbGFwc2UgdGhyb3VnaCBh
bmQgdGhlIG1hcmdpbiBhZnRlciBjb2xsYXBzZXMgd2l0aCBwYXJlbnQncyBtYXJnaW4gYWZ0ZXIg
b3IKICAgICAvLyAyLiBUaGlzIGJveCdzIG1hcmdpbiBhZnRlciBjb2xsYXBzZXMgd2l0aCB0aGUg
bmV4dCBzaWJsaW5nJ3MgbWFyZ2luIGJlZm9yZSBhbmQgdGhhdCBzaWJsaW5nIGNvbGxhcHNlcyB0
aHJvdWdoIGFuZAogICAgIC8vIHdlIGNhbiBnZXQgdG8gdGhlIGxhc3QgaW4tZmxvdyBjaGlsZCBs
aWtlIHRoYXQuCi0gICAgYXV0byogbGFzdEluRmxvd0NoaWxkID0gbGF5b3V0Qm94LnBhcmVudCgp
LT5sYXN0SW5GbG93Q2hpbGQoKTsKKyAgICBhdXRvKiBsYXN0SW5GbG93Q2hpbGQgPSBsYXlvdXRC
b3gucGFyZW50KCkubGFzdEluRmxvd0NoaWxkKCk7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50Qm94
ID0gJmxheW91dEJveDsgY3VycmVudEJveDsgY3VycmVudEJveCA9IGN1cnJlbnRCb3gtPm5leHRJ
bkZsb3dTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKCFtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKCpj
dXJyZW50Qm94KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMiw3ICsxMzIsNyBA
QCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZv
cmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZwogICAgIGlmIChsYXlvdXRCb3gucHJldmlvdXNJbkZs
b3dTaWJsaW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8mIHBhcmVudCA9
ICpsYXlvdXRCb3gucGFyZW50KCk7CisgICAgYXV0byYgcGFyZW50ID0gbGF5b3V0Qm94LnBhcmVu
dCgpOwogICAgIC8vIE1hcmdpbnMgb2YgZWxlbWVudHMgdGhhdCBlc3RhYmxpc2ggbmV3IGJsb2Nr
IGZvcm1hdHRpbmcgY29udGV4dHMgZG8gbm90IGNvbGxhcHNlIHdpdGggdGhlaXIgaW4tZmxvdyBj
aGlsZHJlbgogICAgIGlmIChlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQocGFyZW50
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjM0LDcgKzIzNCw3IEBAIGJvb2wgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0
aFBhcmVudE1hcmdpCiAgICAgLy8gMS4gVGhpcyBpcyB0aGUgZmlyc3QgaW4tZmxvdyBjaGlsZCBh
bmQgaXRzIG1hcmdpbnMgY29sbGFwc2UgdGhyb3VnaCBhbmQgdGhlIG1hcmdpbiBiZWZvcmUgY29s
bGFwc2VzIHdpdGggcGFyZW50J3MgbWFyZ2luIGJlZm9yZSBvcgogICAgIC8vIDIuIFRoaXMgYm94
J3MgbWFyZ2luIGJlZm9yZSBjb2xsYXBzZXMgd2l0aCB0aGUgcHJldmlvdXMgc2libGluZydzIG1h
cmdpbiBhZnRlciBhbmQgdGhhdCBzaWJsaW5nIGNvbGxhcHNlcyB0aHJvdWdoIGFuZAogICAgIC8v
IHdlIGNhbiBnZXQgdG8gdGhlIGZpcnN0IGluLWZsb3cgY2hpbGQgbGlrZSB0aGF0LgotICAgIGF1
dG8qIGZpcnN0SW5GbG93Q2hpbGQgPSBsYXlvdXRCb3gucGFyZW50KCktPmZpcnN0SW5GbG93Q2hp
bGQoKTsKKyAgICBhdXRvKiBmaXJzdEluRmxvd0NoaWxkID0gbGF5b3V0Qm94LnBhcmVudCgpLmZp
cnN0SW5GbG93Q2hpbGQoKTsKICAgICBmb3IgKGF1dG8qIGN1cnJlbnRCb3ggPSAmbGF5b3V0Qm94
OyBjdXJyZW50Qm94OyBjdXJyZW50Qm94ID0gY3VycmVudEJveC0+cHJldmlvdXNJbkZsb3dTaWJs
aW5nKCkpIHsKICAgICAgICAgaWYgKCFtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKCpjdXJyZW50Qm94
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI2Nyw3ICsyNjcsNyBAQCBib29sIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNl
c1dpdGhQYXJlbnRNYXJnaQogICAgIGlmIChsYXlvdXRCb3gubmV4dEluRmxvd1NpYmxpbmcoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byYgcGFyZW50ID0gKmxheW91dEJveC5w
YXJlbnQoKTsKKyAgICBhdXRvJiBwYXJlbnQgPSBsYXlvdXRCb3gucGFyZW50KCk7CiAgICAgLy8g
TWFyZ2lucyBvZiBlbGVtZW50cyB0aGF0IGVzdGFibGlzaCBuZXcgYmxvY2sgZm9ybWF0dGluZyBj
b250ZXh0cyBkbyBub3QgY29sbGFwc2Ugd2l0aCB0aGVpciBpbi1mbG93IGNoaWxkcmVuLgogICAg
IGlmIChlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQocGFyZW50KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDU5
NzYxY2E5ZWU2MDY4Nzc5ZTU1YTliMDM0MDNkOGU1ZGM4ZjU2OGEuLjNhM2MwMzgzODdjYTQxZjY4
MWRkMjE4YTJjMjc1NzFkMDMxNGM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4
dC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIGlubGluZSBjb25zdCBCb3gqIG5leHRJbmxp
bmVMZXZlbEJveFRvTGF5b3V0KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdAogICAgICAgICB9
CiAgICAgfQogCi0gICAgZm9yIChhdXRvKiBuZXh0SW5QcmVPcmRlciA9ICZsYXlvdXRCb3g7IG5l
eHRJblByZU9yZGVyICYmIG5leHRJblByZU9yZGVyICE9ICZzdGF5V2l0aGluOyBuZXh0SW5QcmVP
cmRlciA9IG5leHRJblByZU9yZGVyLT5wYXJlbnQoKSkgeworICAgIGZvciAoYXV0byogbmV4dElu
UHJlT3JkZXIgPSAmbGF5b3V0Qm94OyBuZXh0SW5QcmVPcmRlciAmJiBuZXh0SW5QcmVPcmRlciAh
PSAmc3RheVdpdGhpbjsgbmV4dEluUHJlT3JkZXIgPSAmbmV4dEluUHJlT3JkZXItPnBhcmVudCgp
KSB7CiAgICAgICAgIGlmIChhdXRvKiBuZXh0U2libGluZyA9IG5leHRJblByZU9yZGVyLT5uZXh0
SW5GbG93T3JGbG9hdGluZ1NpYmxpbmcoKSkKICAgICAgICAgICAgIHJldHVybiBuZXh0U2libGlu
ZzsKICAgICB9CkBAIC00MjcsNyArNDI3LDcgQEAgTGluZUJ1aWxkZXI6OkNvbnN0cmFpbnRzIElu
bGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb25zdHJhaW50c0ZvckxpbmUoY29uc3QgSG9yaXoKICAg
ICAgICAgICAgIC8vIEZvciBleGFtcGxlLCB0aGUgZmlyc3QgbGluZSBvZiBhbiBhbm9ueW1vdXMg
YmxvY2sgYm94IGlzIG9ubHkgYWZmZWN0ZWQgaWYgaXQgaXMgdGhlIGZpcnN0IGNoaWxkIG9mIGl0
cyBwYXJlbnQgZWxlbWVudC4KICAgICAgICAgICAgIGlzRm9ybWF0dGluZ0NvbnRleHRSb290Q2Fu
ZGlkYXRlVG9UZXh0SW5kZW50ID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5sYXlvdXRGb3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxlZCgpCiAgICAgICAg
ICAgICAgICAgPyBsYXlvdXRTdGF0ZSgpLmlzSW50ZWdyYXRlZFJvb3RCb3hGaXJzdENoaWxkKCkK
LSAgICAgICAgICAgICAgICA6IHJvb3QucGFyZW50KCktPmZpcnN0SW5GbG93Q2hpbGQoKSA9PSAm
cm9vdDsKKyAgICAgICAgICAgICAgICA6IHJvb3QucGFyZW50KCkuZmlyc3RJbkZsb3dDaGlsZCgp
ID09ICZyb290OwogICAgICAgICB9CiAgICAgICAgIGlmICghaXNGb3JtYXR0aW5nQ29udGV4dFJv
b3RDYW5kaWRhdGVUb1RleHRJbmRlbnQpCiAgICAgICAgICAgICByZXR1cm4gSW5saW5lTGF5b3V0
VW5pdCB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94
LmNwcAppbmRleCA1NWFmYzhhZmM3ZjQ1YTgwYTU0YTNhZmY2MGYwZWM3Y2M2MDViM2YwLi41M2M5
YWE0NDliYzg5MGM4MjY4ZmFjYjA2ZGNkYmM1YmNlNzkwNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKQEAgLTE5Miw4ICsxOTIsOCBAQCBj
b25zdCBDb250YWluZXJCb3gmIEJveDo6Y29udGFpbmluZ0Jsb2NrKCkgY29uc3QKICAgICAvLyBJ
ZiB0aGUgZWxlbWVudCBoYXMgJ3Bvc2l0aW9uOiBhYnNvbHV0ZScsIHRoZSBjb250YWluaW5nIGJs
b2NrIGlzIGVzdGFibGlzaGVkIGJ5IHRoZSBuZWFyZXN0IGFuY2VzdG9yIHdpdGggYQogICAgIC8v
ICdwb3NpdGlvbicgb2YgJ2Fic29sdXRlJywgJ3JlbGF0aXZlJyBvciAnZml4ZWQnLgogICAgIGlm
ICghaXNQb3NpdGlvbmVkKCkgfHwgaXNJbkZsb3dQb3NpdGlvbmVkKCkpIHsKLSAgICAgICAgYXV0
byogYW5jZXN0b3IgPSBwYXJlbnQoKTsKLSAgICAgICAgZm9yICg7ICFpczxJbml0aWFsQ29udGFp
bmluZ0Jsb2NrPigqYW5jZXN0b3IpOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnQoKSkgewor
ICAgICAgICBhdXRvKiBhbmNlc3RvciA9ICZwYXJlbnQoKTsKKyAgICAgICAgZm9yICg7ICFpczxJ
bml0aWFsQ29udGFpbmluZ0Jsb2NrPigqYW5jZXN0b3IpOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+
cGFyZW50KCkpIHsKICAgICAgICAgICAgIGlmIChhbmNlc3Rvci0+aXNCbG9ja0NvbnRhaW5lckJv
eCgpIHx8IGFuY2VzdG9yLT5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuICphbmNlc3RvcjsKICAgICAgICAgfQpAQCAtMjAxLDggKzIwMSw4IEBA
IGNvbnN0IENvbnRhaW5lckJveCYgQm94Ojpjb250YWluaW5nQmxvY2soKSBjb25zdAogICAgIH0K
IAogICAgIGlmIChpc0ZpeGVkUG9zaXRpb25lZCgpKSB7Ci0gICAgICAgIGF1dG8qIGFuY2VzdG9y
ID0gcGFyZW50KCk7Ci0gICAgICAgIGZvciAoOyAhaXM8SW5pdGlhbENvbnRhaW5pbmdCbG9jaz4o
KmFuY2VzdG9yKTsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50KCkpIHsKKyAgICAgICAgYXV0
byogYW5jZXN0b3IgPSAmcGFyZW50KCk7CisgICAgICAgIGZvciAoOyAhaXM8SW5pdGlhbENvbnRh
aW5pbmdCbG9jaz4oKmFuY2VzdG9yKTsgYW5jZXN0b3IgPSAmYW5jZXN0b3ItPnBhcmVudCgpKSB7
CiAgICAgICAgICAgICBpZiAoYW5jZXN0b3ItPnN0eWxlKCkuaGFzVHJhbnNmb3JtKCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuICphbmNlc3RvcjsKICAgICAgICAgfQpAQCAtMjEwLDggKzIxMCw4
IEBAIGNvbnN0IENvbnRhaW5lckJveCYgQm94Ojpjb250YWluaW5nQmxvY2soKSBjb25zdAogICAg
IH0KIAogICAgIGlmIChpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewotICAgICAgICBhdXRvKiBh
bmNlc3RvciA9IHBhcmVudCgpOwotICAgICAgICBmb3IgKDsgIWlzPEluaXRpYWxDb250YWluaW5n
QmxvY2s+KCphbmNlc3Rvcik7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudCgpKSB7CisgICAg
ICAgIGF1dG8qIGFuY2VzdG9yID0gJnBhcmVudCgpOworICAgICAgICBmb3IgKDsgIWlzPEluaXRp
YWxDb250YWluaW5nQmxvY2s+KCphbmNlc3Rvcik7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5wYXJl
bnQoKSkgewogICAgICAgICAgICAgaWYgKGFuY2VzdG9yLT5pc1Bvc2l0aW9uZWQoKSB8fCBhbmNl
c3Rvci0+c3R5bGUoKS5oYXNUcmFuc2Zvcm0oKSkKICAgICAgICAgICAgICAgICByZXR1cm4gKmFu
Y2VzdG9yOwogICAgICAgICB9CkBAIC0yMzUsNyArMjM1LDcgQEAgY29uc3QgQ29udGFpbmVyQm94
JiBCb3g6OmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpIGNvbnN0CiAgICAgLy8gPGRpdiBpZD1vdXRl
ciBzdHlsZT0icG9zaXRpb246IGFic29sdXRlIj48ZGl2IGlkPWlubmVyPjxzcGFuIHN0eWxlPSJw
b3NpdGlvbjogcmVsYXRpdmUiPmNvbnRlbnQ8L3NwYW4+PC9kaXY+PC9kaXY+CiAgICAgLy8gV2hp
bGUgdGhlIHJlbGF0aXZlbHkgcG9zaXRpb25lZCBpbmxpbmUgY29udGFpbmVyIChzcGFuKSBpcyBw
bGFjZWQgcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5pbmcgYmxvY2sgIm91dGVyIiwgaXQgbGl2ZXMg
aW4gdGhlIGlubGluZQogICAgIC8vIGZvcm1hdHRpbmcgY29udGV4dCBlc3RhYmxpc2hlZCBieSAi
aW5uZXIiLgotICAgIGF1dG8mIGFuY2VzdG9yID0gaXNJbmxpbmVMZXZlbEJveCgpICYmIGlzSW5G
bG93UG9zaXRpb25lZCgpID8gKnBhcmVudCgpIDogY29udGFpbmluZ0Jsb2NrKCk7CisgICAgYXV0
byYgYW5jZXN0b3IgPSBpc0lubGluZUxldmVsQm94KCkgJiYgaXNJbkZsb3dQb3NpdGlvbmVkKCkg
PyBwYXJlbnQoKSA6IGNvbnRhaW5pbmdCbG9jaygpOwogICAgIGlmIChhbmNlc3Rvci5lc3RhYmxp
c2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpCiAgICAgICAgIHJldHVybiBhbmNlc3RvcjsKICAgICBy
ZXR1cm4gYW5jZXN0b3IuZm9ybWF0dGluZ0NvbnRleHRSb290KCk7CkBAIC0yNDYsOSArMjQ2LDgg
QEAgY29uc3QgSW5pdGlhbENvbnRhaW5pbmdCbG9jayYgQm94Ojppbml0aWFsQ29udGFpbmluZ0Js
b2NrKCkgY29uc3QKICAgICBpZiAoaXM8SW5pdGlhbENvbnRhaW5pbmdCbG9jaz4oKnRoaXMpKQog
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8SW5pdGlhbENvbnRhaW5pbmdCbG9jaz4oKnRoaXMpOwog
Ci0gICAgYXV0byogYW5jZXN0b3IgPSBwYXJlbnQoKTsKLSAgICBmb3IgKDsgYW5jZXN0b3ItPnBh
cmVudCgpOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnQoKSkgeyB9Ci0KKyAgICBhdXRvKiBh
bmNlc3RvciA9ICZwYXJlbnQoKTsKKyAgICBmb3IgKDsgIWlzPEluaXRpYWxDb250YWluaW5nQmxv
Y2s+KCphbmNlc3Rvcik7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5wYXJlbnQoKSkgeyB9CiAgICAg
cmV0dXJuIGRvd25jYXN0PEluaXRpYWxDb250YWluaW5nQmxvY2s+KCphbmNlc3Rvcik7CiB9CiAK
QEAgLTM1MywxMSArMzUyLDEwIEBAIGJvb2wgQm94Ojppc092ZXJmbG93VmlzaWJsZSgpIGNvbnN0
CiAgICAgLy8gaWYgdGhlIHZhbHVlIG9uIHRoZSByb290IGVsZW1lbnQgaXMgJ3Zpc2libGUnLiBU
aGUgJ3Zpc2libGUnIHZhbHVlIHdoZW4gdXNlZCBmb3IgdGhlIHZpZXdwb3J0IG11c3QgYmUgaW50
ZXJwcmV0ZWQgYXMgJ2F1dG8nLgogICAgIC8vIFRoZSBlbGVtZW50IGZyb20gd2hpY2ggdGhlIHZh
bHVlIGlzIHByb3BhZ2F0ZWQgbXVzdCBoYXZlIGEgdXNlZCB2YWx1ZSBmb3IgJ292ZXJmbG93JyBv
ZiAndmlzaWJsZScuCiAgICAgaWYgKGlzQm9keUJveCgpKSB7Ci0gICAgICAgIGF1dG8qIGRvY3Vt
ZW50Qm94ID0gcGFyZW50KCk7Ci0gICAgICAgIEFTU0VSVChkb2N1bWVudEJveCk7Ci0gICAgICAg
IGlmICghZG9jdW1lbnRCb3gtPmlzRG9jdW1lbnRCb3goKSkKKyAgICAgICAgYXV0byYgZG9jdW1l
bnRCb3ggPSBwYXJlbnQoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudEJveC5pc0RvY3VtZW50Qm94
KCkpCiAgICAgICAgICAgICByZXR1cm4gaXNPdmVyZmxvd1Zpc2libGU7Ci0gICAgICAgIGlmICgh
ZG9jdW1lbnRCb3gtPmlzT3ZlcmZsb3dWaXNpYmxlKCkpCisgICAgICAgIGlmICghZG9jdW1lbnRC
b3guaXNPdmVyZmxvd1Zpc2libGUoKSkKICAgICAgICAgICAgIHJldHVybiBpc092ZXJmbG93Vmlz
aWJsZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAppbmRleCA4NmQxYjhhOWM4YjA1ODhhNjZlZmU5ZWVj
YTIxOTE2NmVjN2EwMTYwLi4wYmQ0MjIxYWY0NWJkZWI5YzczNGIxZDY5OTViYzNmZDgyMDFhZmUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaApAQCAt
MTI3LDcgKzEyNyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzSUZyYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9lbGVtZW50QXR0cmlidXRlcyAmJiBtX2VsZW1lbnRBdHRyaWJ1dGVzLnZhbHVlKCkuZWxl
bWVudFR5cGUgPT0gRWxlbWVudFR5cGU6OklGcmFtZTsgfQogICAgIGJvb2wgaXNJbWFnZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZWxlbWVudEF0dHJpYnV0ZXMgJiYgbV9lbGVtZW50QXR0cmlidXRlcy52
YWx1ZSgpLmVsZW1lbnRUeXBlID09IEVsZW1lbnRUeXBlOjpJbWFnZTsgfQogCi0gICAgY29uc3Qg
Q29udGFpbmVyQm94KiBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQorICAgIGNv
bnN0IENvbnRhaW5lckJveCYgcGFyZW50KCkgY29uc3QgeyByZXR1cm4gKm1fcGFyZW50OyB9CiAg
ICAgY29uc3QgQm94KiBuZXh0U2libGluZygpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dFNpYmxpbmc7
IH0KICAgICBjb25zdCBCb3gqIG5leHRJbkZsb3dTaWJsaW5nKCkgY29uc3Q7CiAgICAgY29uc3Qg
Qm94KiBuZXh0SW5GbG93T3JGbG9hdGluZ1NpYmxpbmcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEluaXRpYWxDb250YWluaW5nQmxv
Y2suaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEluaXRpYWxDb250
YWluaW5nQmxvY2suaAppbmRleCBhOTllYzk1NGFkZjhjN2Q4MWVkY2Y4MDUxMDY4NjhkMWU5OWUy
Y2I3Li45MDJlZGFhOTNjMzNkZTE3YzNmODc0MjE3MDJiZjM2YjA2MGEwZWQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbml0aWFsQ29udGFpbmlu
Z0Jsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5p
dGlhbENvbnRhaW5pbmdCbG9jay5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5Jbml0aWFsQ29udGFpbmluZ0Jsb2NrKCkgPSBkZWZhdWx0OwogCiBwcml2YXRlOgotICAg
IGNvbnN0IENvbnRhaW5lckJveCogcGFyZW50KCkgY29uc3QgPSBkZWxldGU7CisgICAgY29uc3Qg
Q29udGFpbmVyQm94JiBwYXJlbnQoKSBjb25zdCA9IGRlbGV0ZTsKICAgICBjb25zdCBCb3gqIG5l
eHRTaWJsaW5nKCkgY29uc3QgPSBkZWxldGU7CiAgICAgY29uc3QgQm94KiBuZXh0SW5GbG93U2li
bGluZygpIGNvbnN0ID0gZGVsZXRlOwogICAgIGNvbnN0IEJveCogbmV4dEluRmxvd09yRmxvYXRp
bmdTaWJsaW5nKCkgY29uc3QgPSBkZWxldGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0SXRlcmF0b3IuaAppbmRleCBjYjBmY2Y0N2I1OWYwNWI2OGJiYWUy
M2JhNDMzZjI3OTA1MmY1MDliLi44ZDg1OTM1YzRjOTAxMjNjZjJlYTYwNmQ2YTg1Y2YyOTU5ZTFj
YWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJ
dGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEl0
ZXJhdG9yLmgKQEAgLTY5LDEwICs2OSwxMCBAQCBpbmxpbmUgY29uc3QgQm94KiBmaXJzdENoaWxk
KGNvbnN0IEJveCYgYm94KQogICAgIHJldHVybiBudWxscHRyOwogfQogCi1pbmxpbmUgY29uc3Qg
Qm94KiBuZXh0QW5jZXN0b3JTaWJsaW5nKGNvbnN0IEJveCYgY3VycmVudCwgY29uc3QgQ29udGFp
bmVyQm94KiBzdGF5V2l0aGluKQoraW5saW5lIGNvbnN0IEJveCogbmV4dEFuY2VzdG9yU2libGlu
Zyhjb25zdCBCb3gmIGN1cnJlbnQsIGNvbnN0IENvbnRhaW5lckJveCYgc3RheVdpdGhpbikKIHsK
LSAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gY3VycmVudC5wYXJlbnQoKTsgYW5jZXN0b3I7IGFu
Y2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudCgpKSB7Ci0gICAgICAgIGlmIChhbmNlc3RvciA9PSBz
dGF5V2l0aGluKQorICAgIGZvciAoYXV0byogYW5jZXN0b3IgPSAmY3VycmVudC5wYXJlbnQoKTsg
IWlzPEluaXRpYWxDb250YWluaW5nQmxvY2s+KCphbmNlc3Rvcik7IGFuY2VzdG9yID0gJmFuY2Vz
dG9yLT5wYXJlbnQoKSkgeworICAgICAgICBpZiAoYW5jZXN0b3IgPT0gJnN0YXlXaXRoaW4pCiAg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgaWYgKGF1dG8qIHNpYmxpbmcgPSBh
bmNlc3Rvci0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgIHJldHVybiBzaWJsaW5nOwpAQCAt
ODEsMTIgKzgxLDEyIEBAIGlubGluZSBjb25zdCBCb3gqIG5leHRBbmNlc3RvclNpYmxpbmcoY29u
c3QgQm94JiBjdXJyZW50LCBjb25zdCBDb250YWluZXJCb3gqIHN0CiB9CiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBVPgotaW5saW5lIGNvbnN0IEJveCogbmV4dChjb25zdCBVJiBjdXJyZW50LCBjb25z
dCBDb250YWluZXJCb3gqIHN0YXlXaXRoaW4pCitpbmxpbmUgY29uc3QgQm94KiBuZXh0KGNvbnN0
IFUmIGN1cnJlbnQsIGNvbnN0IENvbnRhaW5lckJveCYgc3RheVdpdGhpbikKIHsKICAgICBpZiAo
YXV0byogY2hpbGQgPSBmaXJzdENoaWxkKGN1cnJlbnQpKQogICAgICAgICByZXR1cm4gY2hpbGQ7
CiAKLSAgICBpZiAoJmN1cnJlbnQgPT0gc3RheVdpdGhpbikKKyAgICBpZiAoJmN1cnJlbnQgPT0g
JnN0YXlXaXRoaW4pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKGF1dG8qIHNp
YmxpbmcgPSBjdXJyZW50Lm5leHRTaWJsaW5nKCkpCkBAIC0xMjIsMTIgKzEyMiwxMiBAQCBpbmxp
bmUgY29uc3QgVCogZmlyc3RXaXRoaW4oY29uc3QgVSYgc3RheVdpdGhpbikKIHsKICAgICBhdXRv
KiBkZXNjZW5kYW50ID0gTGF5b3V0Qm94VHJhdmVyc2FsOjpmaXJzdENoaWxkKHN0YXlXaXRoaW4p
OwogICAgIHdoaWxlIChkZXNjZW5kYW50ICYmICFpc0xheW91dEJveE9mVHlwZTxUPigqZGVzY2Vu
ZGFudCkpCi0gICAgICAgIGRlc2NlbmRhbnQgPSBMYXlvdXRCb3hUcmF2ZXJzYWw6Om5leHQoKmRl
c2NlbmRhbnQsICZzdGF5V2l0aGluKTsKKyAgICAgICAgZGVzY2VuZGFudCA9IExheW91dEJveFRy
YXZlcnNhbDo6bmV4dCgqZGVzY2VuZGFudCwgc3RheVdpdGhpbik7CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IFQqPihkZXNjZW5kYW50KTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+Ci1pbmxpbmUgY29uc3QgVCogbmV4dChjb25zdCBVJiBjdXJyZW50LCBjb25z
dCBDb250YWluZXJCb3gqIHN0YXlXaXRoaW4pCitpbmxpbmUgY29uc3QgVCogbmV4dChjb25zdCBV
JiBjdXJyZW50LCBjb25zdCBDb250YWluZXJCb3gmIHN0YXlXaXRoaW4pCiB7CiAgICAgYXV0byog
ZGVzY2VuZGFudCA9IExheW91dEJveFRyYXZlcnNhbDo6bmV4dChjdXJyZW50LCBzdGF5V2l0aGlu
KTsKICAgICB3aGlsZSAoZGVzY2VuZGFudCAmJiAhaXNMYXlvdXRCb3hPZlR5cGU8VD4oKmRlc2Nl
bmRhbnQpKQpAQCAtMTY1LDcgKzE2NSw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogaW5saW5l
IExheW91dEl0ZXJhdG9yPFQ+JiBMYXlvdXRJdGVyYXRvcjxUPjo6dHJhdmVyc2VOZXh0KCkKIHsK
ICAgICBBU1NFUlQobV9jdXJyZW50KTsKLSAgICBtX2N1cnJlbnQgPSBUcmF2ZXJzYWw6Om5leHQ8
VD4oKm1fY3VycmVudCwgbV9yb290KTsKKyAgICBtX2N1cnJlbnQgPSBUcmF2ZXJzYWw6Om5leHQ8
VD4oKm1fY3VycmVudCwgKm1fcm9vdCk7CiAgICAgcmV0dXJuICp0aGlzOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5jcHAKaW5k
ZXggZDNmNTllZjE1OTc4ZGY0YzMxNTk5YjI1NDlmZWY2OTA0NzIwZTgwZC4uODAxODg3OTgyMjE0
NDlkM2Y1ODM5MjEzOTBiMTI4ZTgyZjk1NzhiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBA
IHZvaWQgVGFibGVHcmlkOjphcHBlbmRDZWxsKGNvbnN0IEJveCYgdGFibGVDZWxsQm94KQogICAg
ICAgICBtX2NvbHVtbnNDb250ZXh0LmFkZENvbHVtbigpOwogCiAgICAgaWYgKGlzSW5OZXdSb3cp
Ci0gICAgICAgIG1fcm93cy5hcHBlbmQoeyAqdGFibGVDZWxsQm94LnBhcmVudCgpIH0pOworICAg
ICAgICBtX3Jvd3MuYXBwZW5kKHsgdGFibGVDZWxsQm94LnBhcmVudCgpIH0pOwogCiAgICAgbV9j
ZWxsTGlzdC5hZGQoV1RGTW92ZShjZWxsSW5mbykpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>