<?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>214474</bug_id>
          
          <creation_ts>2020-07-17 07:06:46 -0700</creation_ts>
          <short_desc>[LFC][IFC] Move all line height and baseline adjustment logic to LineBuilder::adjustBaselineAndLineHeight</short_desc>
          <delta_ts>2020-08-23 05:45:06 -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>
          
          <blocked>215087</blocked>
    
    <blocked>215752</blocked>
          <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>1672471</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-07-17 07:06:46 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672472</commentid>
    <comment_count>1</comment_count>
      <attachid>404559</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-07-17 07:08:42 -0700</bug_when>
    <thetext>Created attachment 404559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674621</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-24 07:07:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/66051392&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682206</commentid>
    <comment_count>3</comment_count>
      <attachid>407062</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-08-22 19:44:47 -0700</bug_when>
    <thetext>Created attachment 407062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682208</commentid>
    <comment_count>4</comment_count>
      <attachid>407063</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-08-22 19:50:00 -0700</bug_when>
    <thetext>Created attachment 407063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682209</commentid>
    <comment_count>5</comment_count>
      <attachid>407064</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-08-22 19:51:53 -0700</bug_when>
    <thetext>Created attachment 407064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682212</commentid>
    <comment_count>6</comment_count>
      <attachid>407065</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-08-22 20:01:16 -0700</bug_when>
    <thetext>Created attachment 407065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682226</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-23 05:45:05 -0700</bug_when>
    <thetext>Committed r266045: &lt;https://trac.webkit.org/changeset/266045&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407065.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404559</attachid>
            <date>2020-07-17 07:08:42 -0700</date>
            <delta_ts>2020-08-22 19:44:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214474-20200717070841.patch</filename>
            <type>text/plain</type>
            <size>15957</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODMyYzExNTA0OWJkZGFh
YTJkYjUzYzcxMTQ0NTdiMDE4ODBkMGMwMS4uNTkwYzdiNDFmNzNhZDU4NTBlN2UzMTIxZTRmYWVj
ODdlMTcxMTdjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA3LTE3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBNb3ZlIGFs
bCBsaW5lIGhlaWdodCBhbmQgYmFzZWxpbmUgYWRqdXN0bWVudCBsb2dpYyB0byBMaW5lQnVpbGRl
cjo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ0NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0
L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUuaHRtbAorCisg
ICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6Y2xvc2UpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0
KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5o
OgorCiAyMDIwLTA3LTE2ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bSUZDXSBhZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQgc2hvdWxkIHRha2UgdGhl
IHBhcmVudCBpbmxpbmUgYm94LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IGIyNmYyZjBj
ZGVlZDQxNDYzMzQ4MWRhYTJkMzkzYTE5MjUxYWEyZTQuLmM3MmNkN2RjNTcwM2E3N2EwYzM5ZTZl
OTU5YjVjMzcwZDVkZDZiYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTExOCwyNiAr
MTE4LDcgQEAgTGluZUJ1aWxkZXI6OlJ1bkxpc3QgTGluZUJ1aWxkZXI6OmNsb3NlKElzTGFzdExp
bmVXaXRoSW5saW5lQ29udGVudCBpc0xhc3RMaW5lV2kKICAgICAgICAgcmV0dXJuIFdURk1vdmUo
bV9ydW5zKTsKIAogICAgIGF1dG8gaGFuZ2luZ0NvbnRlbnQgPSBjb2xsZWN0SGFuZ2luZ0NvbnRl
bnQoaXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50KTsKLSAgICB1bnNpZ25lZCBpbmxpbmVDb250
YWluZXJOZXN0aW5nTGV2ZWwgPSAwOwotICAgIGF1dG8gaGFzU2VlblRleHRPckxpbmVCcmVhayA9
IGZhbHNlOwotICAgIGZvciAoYXV0byYgcnVuIDogbV9ydW5zKSB7Ci0gICAgICAgIHJ1bi5zZXRM
b2dpY2FsSGVpZ2h0KHJ1bkNvbnRlbnRIZWlnaHQocnVuKSk7Ci0gICAgICAgIGlubGluZUNvbnRh
aW5lck5lc3RpbmdMZXZlbCA9IHJ1bi5pc0NvbnRhaW5lclN0YXJ0KCkgPyBpbmxpbmVDb250YWlu
ZXJOZXN0aW5nTGV2ZWwgKyAxIDogcnVuLmlzQ29udGFpbmVyRW5kKCkgPyBpbmxpbmVDb250YWlu
ZXJOZXN0aW5nTGV2ZWwgLSAxIDogaW5saW5lQ29udGFpbmVyTmVzdGluZ0xldmVsOwotICAgICAg
ICBhdXRvIHJ1bklzVGV4dE9yTGluZUJyZWFrID0gcnVuLmlzVGV4dCgpIHx8IHJ1bi5pc0xpbmVC
cmVhaygpOwotICAgICAgICBpZiAocnVuSXNUZXh0T3JMaW5lQnJlYWspIHsKLSAgICAgICAgICAg
IC8vIEZvciB0ZXh0IGNvbnRlbnQgd2Ugc2V0IHRoZSBiYXNlbGluZSBlaXRoZXIgdGhyb3VnaCB0
aGUgaW5pdGlhbCBzdHJ1dCAoc2V0IGJ5IHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdCkgb3IK
LSAgICAgICAgICAgIC8vIHRocm91Z2ggdGhlIGlubGluZSBjb250YWluZXIgKHN0YXJ0KS4gTm9y
bWFsbHkgdGhlIHRleHQgY29udGVudCBpdHNlbGYgZG9lcyBub3Qgc3RyZXRjaCB0aGUgbGluZS4K
LSAgICAgICAgICAgIGlmIChoYXNTZWVuVGV4dE9yTGluZUJyZWFrKQotICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgaGFzU2VlblRleHRPckxpbmVCcmVhayA9IHRydWU7Ci0g
ICAgICAgICAgICBpZiAoIW1faW5pdGlhbFN0cnV0KQotICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgaWYgKGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBhdXRvJiB1c2VkQmFzZWxpbmUg
PSBydW5Jc1RleHRPckxpbmVCcmVhayA/ICptX2luaXRpYWxTdHJ1dCA6IG1fbGluZUJveC5iYXNl
bGluZSgpOwotICAgICAgICBhZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQocnVuLCBtX2xpbmVC
b3gsIHVzZWRCYXNlbGluZSk7Ci0gICAgfQorICAgIGFkanVzdEJhc2VsaW5lQW5kTGluZUhlaWdo
dCgpOwogICAgIGlmIChpc1Zpc3VhbGx5RW1wdHkoKSkgewogICAgICAgICBtX2xpbmVCb3gucmVz
ZXRCYXNlbGluZSgpOwogICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodCh7IH0pOwpA
QCAtNTY4LDg1ICs1NDksMTExIEBAIHZvaWQgTGluZUJ1aWxkZXI6OmFwcGVuZExpbmVCcmVhayhj
b25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtKQogICAgIG1fcnVucy5hcHBlbmQoeyBkb3duY2Fz
dDxJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbT4oaW5saW5lSXRlbSksIGNvbnRlbnRMb2dpY2FsV2lk
dGgoKSB9KTsKIH0KIAotdm9pZCBMaW5lQnVpbGRlcjo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVp
Z2h0KGNvbnN0IFJ1biYgcnVuLCBJbmxpbmVCb3gmIC8qcGFyZW50SW5saW5lQm94Ki8sIGNvbnN0
IElubGluZUJveDo6QmFzZWxpbmUmIHVzZWRCYXNlbGluZSkKK3ZvaWQgTGluZUJ1aWxkZXI6OmFk
anVzdEJhc2VsaW5lQW5kTGluZUhlaWdodCgpCiB7Ci0gICAgaWYgKHJ1bi5pc1RleHQoKSB8fCBy
dW4uaXNMaW5lQnJlYWsoKSkgewotICAgICAgICBtX2xpbmVCb3guc2V0QXNjZW50SWZHcmVhdGVy
KHVzZWRCYXNlbGluZS5hc2NlbnQoKSk7Ci0gICAgICAgIG1fbGluZUJveC5zZXREZXNjZW50SWZH
cmVhdGVyKHVzZWRCYXNlbGluZS5kZXNjZW50KCkpOwotICAgICAgICBtX2xpbmVCb3guc2V0TG9n
aWNhbEhlaWdodElmR3JlYXRlcih1c2VkQmFzZWxpbmUuaGVpZ2h0KCkpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQorICAgIHVuc2lnbmVkIGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCA9IDA7
CisgICAgYXV0byBoYXNTZWVuRGlyZWN0VGV4dE9yTGluZUJyZWFrID0gZmFsc2U7CisgICAgZm9y
IChhdXRvJiBydW4gOiBtX3J1bnMpIHsKKyAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gcnVuLmxh
eW91dEJveCgpOworICAgICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwogCi0g
ICAgYXV0byYgbGF5b3V0Qm94ID0gcnVuLmxheW91dEJveCgpOwotICAgIGF1dG8mIHN0eWxlID0g
bGF5b3V0Qm94LnN0eWxlKCk7Ci0gICAgaWYgKHJ1bi5pc0NvbnRhaW5lclN0YXJ0KCkpIHsKLSAg
ICAgICAgLy8gSW5saW5lIGNvbnRhaW5lcnMgc3RyZXRjaCB0aGUgbGluZSBieSB0aGVpciBmb250
IHNpemUuCi0gICAgICAgIC8vIFZlcnRpY2FsIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBib3JkZXJz
IGRvbid0IGNvbnRyaWJ1dGUgdG8gdGhlIGxpbmUgaGVpZ2h0LgotICAgICAgICBhdXRvJiBmb250
TWV0cmljcyA9IHN0eWxlLmZvbnRNZXRyaWNzKCk7Ci0gICAgICAgIGlmIChzdHlsZS52ZXJ0aWNh
bEFsaWduKCkgPT0gVmVydGljYWxBbGlnbjo6QmFzZWxpbmUpIHsKLSAgICAgICAgICAgIGF1dG8g
aGFsZkxlYWRpbmcgPSBoYWxmTGVhZGluZ01ldHJpY3MoZm9udE1ldHJpY3MsIHN0eWxlLmNvbXB1
dGVkTGluZUhlaWdodCgpKTsKLSAgICAgICAgICAgIC8vIEJvdGggaGFsZmxlYWRpbmcgYXNjZW50
IGFuZCBkZXNjZW50IGNvdWxkIGJlIG5lZ2F0aXZlICh0YWxsIGZvbnQgdnMuIHNtYWxsIGxpbmUt
aGVpZ2h0IHZhbHVlKQotICAgICAgICAgICAgaWYgKGhhbGZMZWFkaW5nLmRlc2NlbnQoKSA+IDAp
Ci0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldERlc2NlbnRJZkdyZWF0ZXIoaGFsZkxlYWRp
bmcuZGVzY2VudCgpKTsKLSAgICAgICAgICAgIGlmIChoYWxmTGVhZGluZy5hc2NlbnQoKSA+IDAp
Ci0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2VudElmR3JlYXRlcihoYWxmTGVhZGlu
Zy5hc2NlbnQoKSk7Ci0gICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3Jl
YXRlcih1c2VkQmFzZWxpbmUuaGVpZ2h0KCkpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKGZvbnRNZXRyaWNzLmhlaWdodCgp
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgcnVuLnNldExvZ2ljYWxIZWlnaHQo
cnVuQ29udGVudEhlaWdodChydW4pKTsKIAotICAgIGlmIChydW4uaXNDb250YWluZXJFbmQoKSkg
ewotICAgICAgICAvLyBUaGUgbGluZSdzIGJhc2VsaW5lIGFuZCBoZWlnaHQgaGF2ZSBhbHJlYWR5
IGJlZW4gYWRqdXN0ZWQgYXQgQ29udGFpbmVyU3RhcnQuCi0gICAgICAgIHJldHVybjsKLSAgICB9
CisgICAgICAgIGlmIChydW4uaXNUZXh0KCkgfHwgcnVuLmlzTGluZUJyZWFrKCkpIHsKKyAgICAg
ICAgICAgIC8vIEZvciB0ZXh0IGNvbnRlbnQgd2Ugc2V0IHRoZSBiYXNlbGluZSBlaXRoZXIgdGhy
b3VnaCB0aGUgaW5pdGlhbCBzdHJ1dCAoc2V0IGJ5IHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgcm9v
dCkgb3IKKyAgICAgICAgICAgIC8vIHRocm91Z2ggdGhlIGlubGluZSBjb250YWluZXIgKHN0YXJ0
KS4gTm9ybWFsbHkgdGhlIHRleHQgY29udGVudCBpdHNlbGYgZG9lcyBub3Qgc3RyZXRjaCB0aGUg
bGluZS4KKyAgICAgICAgICAgIGlmICghbV9pbml0aWFsU3RydXQpIHsKKyAgICAgICAgICAgICAg
ICAvLyBXZSBhcmUgaW4gc3RhbmRhcmRzIG1vZGUgd2hlcmUgdGhlIGJhc2VsaW5lIGFuZCBsaW5l
IGhlaWdodCBhcmUgZXhwbGljdC4KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmIChpbmxpbmVDb250YWluZXJOZXN0aW5nTGV2ZWwpIHsKKyAg
ICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IGFkanVzdGVkIHRoZSBsaW5lIGhlaWdodC9i
YXNlbGluZSB0aHJvdWdoIHRoZSBwYXJlbnQgaW5saW5lIGNvbnRhaW5lci4gCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaGFzU2VlbkRp
cmVjdFRleHRPckxpbmVCcmVhaykgeworICAgICAgICAgICAgICAgIC8vIGUuZyBkaXY+Zmlyc3Qg
dGV4dDwvZGl2PiBvciA8ZGl2PjxzcGFuPm5lc3RlZDxzcGFuPmZpcnN0IGRpcmVjdCB0ZXh0PC9k
aXY+LgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaGFzU2VlbkRpcmVjdFRleHRPckxpbmVCcmVhayA9IHRydWU7CisgICAgICAgICAgICAvLyBX
ZSBhcmUgaW4gcXVpcmtzIG1vZGUgd2hlcmUgdGhlIGZvbnQtbWV0cmljcyBtaWdodCBjaGFuZ2Ug
dGhlIGxpbmUgbGluZSBoZWlnaHQvYmFzZWxpbmUgYW5kIHRoaXMgaXMgdGhlIGZpcnN0IHRleHQg
Y29udGVudCBvbiB0aGUgbGluZQorICAgICAgICAgICAgLy8gb3V0c2lkZSBvZiBhbiBpbmxpbmUg
Y29udGFpbmVyLgorICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2VudElmR3JlYXRlcihtX2lu
aXRpYWxTdHJ1dC0+YXNjZW50KCkpOworICAgICAgICAgICAgbV9saW5lQm94LnNldERlc2NlbnRJ
ZkdyZWF0ZXIobV9pbml0aWFsU3RydXQtPmRlc2NlbnQoKSk7CisgICAgICAgICAgICBtX2xpbmVC
b3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlcihtX2luaXRpYWxTdHJ1dC0+aGVpZ2h0KCkpOwor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAotICAgIGlmIChydW4uaXNCb3goKSkg
ewotICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0
cnlGb3JCb3gobGF5b3V0Qm94KTsKLSAgICAgICAgYXV0byBtYXJnaW5Cb3hIZWlnaHQgPSBib3hH
ZW9tZXRyeS5tYXJnaW5Cb3hIZWlnaHQoKTsKKyAgICAgICAgaWYgKHJ1bi5pc0NvbnRhaW5lclN0
YXJ0KCkpIHsKKyAgICAgICAgICAgICsraW5saW5lQ29udGFpbmVyTmVzdGluZ0xldmVsOworICAg
ICAgICAgICAgLy8gSW5saW5lIGNvbnRhaW5lcnMgc3RyZXRjaCB0aGUgbGluZSBieSB0aGVpciBm
b250IHNpemUuCisgICAgICAgICAgICAvLyBWZXJ0aWNhbCBtYXJnaW5zLCBwYWRkaW5ncyBhbmQg
Ym9yZGVycyBkb24ndCBjb250cmlidXRlIHRvIHRoZSBsaW5lIGhlaWdodC4KKyAgICAgICAgICAg
IGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUuZm9udE1ldHJpY3MoKTsKKyAgICAgICAgICAgIGlm
IChzdHlsZS52ZXJ0aWNhbEFsaWduKCkgPT0gVmVydGljYWxBbGlnbjo6QmFzZWxpbmUpIHsKKyAg
ICAgICAgICAgICAgICBhdXRvIGhhbGZMZWFkaW5nID0gaGFsZkxlYWRpbmdNZXRyaWNzKGZvbnRN
ZXRyaWNzLCBzdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7CisgICAgICAgICAgICAgICAgLy8g
Qm90aCBoYWxmbGVhZGluZyBhc2NlbnQgYW5kIGRlc2NlbnQgY291bGQgYmUgbmVnYXRpdmUgKHRh
bGwgZm9udCB2cy4gc21hbGwgbGluZS1oZWlnaHQgdmFsdWUpCisgICAgICAgICAgICAgICAgaWYg
KGhhbGZMZWFkaW5nLmRlc2NlbnQoKSA+IDApCisgICAgICAgICAgICAgICAgICAgIG1fbGluZUJv
eC5zZXREZXNjZW50SWZHcmVhdGVyKGhhbGZMZWFkaW5nLmRlc2NlbnQoKSk7CisgICAgICAgICAg
ICAgICAgaWYgKGhhbGZMZWFkaW5nLmFzY2VudCgpID4gMCkKKyAgICAgICAgICAgICAgICAgICAg
bV9saW5lQm94LnNldEFzY2VudElmR3JlYXRlcihoYWxmTGVhZGluZy5hc2NlbnQoKSk7CisgICAg
ICAgICAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIobV9saW5lQm94
LmJhc2VsaW5lKCkuaGVpZ2h0KCkpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIoZm9udE1ldHJpY3MuaGVpZ2h0
KCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAotICAgICAgICBzd2l0Y2gg
KHN0eWxlLnZlcnRpY2FsQWxpZ24oKSkgewotICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OkJh
c2VsaW5lOiB7Ci0gICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5saW5lQmxvY2tCb3goKSAm
JiBsYXlvdXRCb3guZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKSB7Ci0gICAg
ICAgICAgICAgICAgLy8gSW5saW5lLWJsb2NrcyB3aXRoIGlubGluZSBjb250ZW50IGFsd2F5cyBo
YXZlIGJhc2VsaW5lcy4KLSAgICAgICAgICAgICAgICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUgPSBs
YXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGRvd25jYXN0PENv
bnRhaW5lckJveD4obGF5b3V0Qm94KSk7Ci0gICAgICAgICAgICAgICAgLy8gU3BlYyBtYWtlcyB1
cyBnZW5lcmF0ZSBhdCBsZWFzdCBvbmUgbGluZSAtZXZlbiBpZiBpdCBpcyBlbXB0eS4KLSAgICAg
ICAgICAgICAgICBhdXRvJiBsYXN0TGluZUJveCA9IGZvcm1hdHRpbmdTdGF0ZS5kaXNwbGF5SW5s
aW5lQ29udGVudCgpLT5saW5lQm94ZXMubGFzdCgpOwotICAgICAgICAgICAgICAgIGF1dG8gaW5s
aW5lQmxvY2tCYXNlbGluZSA9IGxhc3RMaW5lQm94LmJhc2VsaW5lKCk7Ci0gICAgICAgICAgICAg
ICAgYXV0byBiZWZvcmVIZWlnaHQgPSBib3hHZW9tZXRyeS5tYXJnaW5CZWZvcmUoKSArIGJveEdl
b21ldHJ5LmJvcmRlclRvcCgpICsgYm94R2VvbWV0cnkucGFkZGluZ1RvcCgpLnZhbHVlT3IoMCk7
CisgICAgICAgIGlmIChydW4uaXNDb250YWluZXJFbmQoKSkgeworICAgICAgICAgICAgLy8gVGhl
IGxpbmUncyBiYXNlbGluZSBhbmQgaGVpZ2h0IGhhdmUgYWxyZWFkeSBiZWVuIGFkanVzdGVkIGF0
IENvbnRhaW5lclN0YXJ0LgorICAgICAgICAgICAgQVNTRVJUKGlubGluZUNvbnRhaW5lck5lc3Rp
bmdMZXZlbCk7CisgICAgICAgICAgICAtLWlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbDsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBtX2xpbmVC
b3guc2V0QXNjZW50SWZHcmVhdGVyKGlubGluZUJsb2NrQmFzZWxpbmUuYXNjZW50KCkpOwotICAg
ICAgICAgICAgICAgIG1fbGluZUJveC5zZXREZXNjZW50SWZHcmVhdGVyKGlubGluZUJsb2NrQmFz
ZWxpbmUuZGVzY2VudCgpKTsKLSAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0QmFzZWxpbmVP
ZmZzZXRJZkdyZWF0ZXIoYmVmb3JlSGVpZ2h0ICsgbGFzdExpbmVCb3guYmFzZWxpbmVPZmZzZXQo
KSk7Ci0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIo
bWFyZ2luQm94SGVpZ2h0KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
Ly8gTm9uIGlubGluZS1ibG9jayBib3hlcyBzaXQgb24gdGhlIGJhc2VsaW5lIChpbmNsdWRpbmcg
dGhlaXIgYm90dG9tIG1hcmdpbikuCi0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2Vu
dElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQpOwotICAgICAgICAgICAgICAgIC8vIElnbm9yZSBu
ZWdhdGl2ZSBkZXNjZW50ICh5ZXMsIG5lZ2F0aXZlIGRlc2NlbnQgaXMgYSB0aGluZykuCi0gICAg
ICAgICAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIobWFyZ2luQm94
SGVpZ2h0ICsgc3RkOjptYXg8SW5saW5lTGF5b3V0VW5pdD4oMCwgdXNlZEJhc2VsaW5lLmRlc2Nl
bnQoKSkpOworICAgICAgICBpZiAocnVuLmlzQm94KCkpIHsKKyAgICAgICAgICAgIGF1dG8mIGJv
eEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChsYXlvdXRCb3gp
OworICAgICAgICAgICAgYXV0byBtYXJnaW5Cb3hIZWlnaHQgPSBib3hHZW9tZXRyeS5tYXJnaW5C
b3hIZWlnaHQoKTsKKworICAgICAgICAgICAgc3dpdGNoIChzdHlsZS52ZXJ0aWNhbEFsaWduKCkp
IHsKKyAgICAgICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6QmFzZWxpbmU6IHsKKyAgICAgICAg
ICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5saW5lQmxvY2tCb3goKSAmJiBsYXlvdXRCb3guZXN0
YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAg
IC8vIElubGluZS1ibG9ja3Mgd2l0aCBpbmxpbmUgY29udGVudCBhbHdheXMgaGF2ZSBiYXNlbGlu
ZXMuCisgICAgICAgICAgICAgICAgICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0
YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUoZG93bmNhc3Q8Q29udGFpbmVy
Qm94PihsYXlvdXRCb3gpKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3BlYyBtYWtlcyB1cyBn
ZW5lcmF0ZSBhdCBsZWFzdCBvbmUgbGluZSAtZXZlbiBpZiBpdCBpcyBlbXB0eS4KKyAgICAgICAg
ICAgICAgICAgICAgYXV0byYgbGFzdExpbmVCb3ggPSBmb3JtYXR0aW5nU3RhdGUuZGlzcGxheUlu
bGluZUNvbnRlbnQoKS0+bGluZUJveGVzLmxhc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgYXV0
byBpbmxpbmVCbG9ja0Jhc2VsaW5lID0gbGFzdExpbmVCb3guYmFzZWxpbmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgYXV0byBiZWZvcmVIZWlnaHQgPSBib3hHZW9tZXRyeS5tYXJnaW5CZWZvcmUo
KSArIGJveEdlb21ldHJ5LmJvcmRlclRvcCgpICsgYm94R2VvbWV0cnkucGFkZGluZ1RvcCgpLnZh
bHVlT3IoMCk7CisKKyAgICAgICAgICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2VudElmR3Jl
YXRlcihpbmxpbmVCbG9ja0Jhc2VsaW5lLmFzY2VudCgpKTsKKyAgICAgICAgICAgICAgICAgICAg
bV9saW5lQm94LnNldERlc2NlbnRJZkdyZWF0ZXIoaW5saW5lQmxvY2tCYXNlbGluZS5kZXNjZW50
KCkpOworICAgICAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0QmFzZWxpbmVPZmZzZXRJZkdy
ZWF0ZXIoYmVmb3JlSGVpZ2h0ICsgbGFzdExpbmVCb3guYmFzZWxpbmVPZmZzZXQoKSk7CisgICAg
ICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKG1hcmdp
bkJveEhlaWdodCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgLy8gTm9uIGlubGluZS1ibG9jayBib3hlcyBzaXQgb24gdGhlIGJhc2VsaW5lIChpbmNsdWRp
bmcgdGhlaXIgYm90dG9tIG1hcmdpbikuCisgICAgICAgICAgICAgICAgICAgIG1fbGluZUJveC5z
ZXRBc2NlbnRJZkdyZWF0ZXIobWFyZ2luQm94SGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gSWdub3JlIG5lZ2F0aXZlIGRlc2NlbnQgKHllcywgbmVnYXRpdmUgZGVzY2VudCBpcyBhIHRo
aW5nKS4KKyAgICAgICAgICAgICAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdy
ZWF0ZXIobWFyZ2luQm94SGVpZ2h0ICsgc3RkOjptYXg8SW5saW5lTGF5b3V0VW5pdD4oMCwgbV9s
aW5lQm94LmJhc2VsaW5lKCkuZGVzY2VudCgpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpUb3A6Ci0gICAgICAgICAgICAvLyBU
b3AgYWxpZ24gY29udGVudCBuZXZlciBjaGFuZ2VzIHRoZSBiYXNlbGluZSwgaXQgb25seSBwdXNo
ZXMgdGhlIGJvdHRvbSBvZiB0aGUgbGluZSBmdXJ0aGVyIGRvd24uCi0gICAgICAgICAgICBtX2xp
bmVCb3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6Qm90dG9tOiB7Ci0gICAg
ICAgICAgICAvLyBCb3R0b20gYWxpZ25lZCwgdGFsbCBjb250ZW50IHB1c2hlcyB0aGUgYmFzZWxp
bmUgZnVydGhlciBkb3duIGZyb20gdGhlIGxpbmUgdG9wLgotICAgICAgICAgICAgYXV0byBsaW5l
TG9naWNhbEhlaWdodCA9IG1fbGluZUJveC5sb2dpY2FsSGVpZ2h0KCk7Ci0gICAgICAgICAgICBp
ZiAobWFyZ2luQm94SGVpZ2h0ID4gbGluZUxvZ2ljYWxIZWlnaHQpIHsKKyAgICAgICAgICAgIGNh
c2UgVmVydGljYWxBbGlnbjo6VG9wOgorICAgICAgICAgICAgICAgIC8vIFRvcCBhbGlnbiBjb250
ZW50IG5ldmVyIGNoYW5nZXMgdGhlIGJhc2VsaW5lLCBpdCBvbmx5IHB1c2hlcyB0aGUgYm90dG9t
IG9mIHRoZSBsaW5lIGZ1cnRoZXIgZG93bi4KICAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0
TG9naWNhbEhlaWdodElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQpOwotICAgICAgICAgICAgICAg
IG1fbGluZUJveC5zZXRCYXNlbGluZU9mZnNldElmR3JlYXRlcihtX2xpbmVCb3guYmFzZWxpbmVP
ZmZzZXQoKSArIChtYXJnaW5Cb3hIZWlnaHQgLSBsaW5lTG9naWNhbEhlaWdodCkpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCb3R0b206
IHsKKyAgICAgICAgICAgICAgICAvLyBCb3R0b20gYWxpZ25lZCwgdGFsbCBjb250ZW50IHB1c2hl
cyB0aGUgYmFzZWxpbmUgZnVydGhlciBkb3duIGZyb20gdGhlIGxpbmUgdG9wLgorICAgICAgICAg
ICAgICAgIGF1dG8gbGluZUxvZ2ljYWxIZWlnaHQgPSBtX2xpbmVCb3gubG9naWNhbEhlaWdodCgp
OworICAgICAgICAgICAgICAgIGlmIChtYXJnaW5Cb3hIZWlnaHQgPiBsaW5lTG9naWNhbEhlaWdo
dCkgeworICAgICAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3Jl
YXRlcihtYXJnaW5Cb3hIZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0
QmFzZWxpbmVPZmZzZXRJZkdyZWF0ZXIobV9saW5lQm94LmJhc2VsaW5lT2Zmc2V0KCkgKyAobWFy
Z2luQm94SGVpZ2h0IC0gbGluZUxvZ2ljYWxIZWlnaHQpKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUX05PVF9JTVBM
RU1FTlRFRF9ZRVQoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX0lNUExFTUVOVEVEX1lFVCgpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIAogSW5saW5lTGF5b3V0VW5pdCBMaW5lQnVpbGRlcjo6cnVuQ29udGVudEhlaWdodChjb25z
dCBSdW4mIHJ1bikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5oCmluZGV4IDQ1YjkwZmFlZDg2OGU1
NWZjYmIzYWNjZTdmMDgzMjUyNjQxZmYzMWIuLmI5MzZkZWJiMGI2NWQ2ZDk5ZDJjMzg1NDIyZjVj
YWNhNjEzNjMwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaApAQCAtMTgzLDcgKzE4Myw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBhbGlnbkhvcml6b250YWxseShjb25zdCBIYW5naW5nQ29udGVudCYs
IElzTGFzdExpbmVXaXRoSW5saW5lQ29udGVudCk7CiAgICAgdm9pZCBhbGlnbkNvbnRlbnRWZXJ0
aWNhbGx5KCk7CiAKLSAgICB2b2lkIGFkanVzdEJhc2VsaW5lQW5kTGluZUhlaWdodChjb25zdCBS
dW4mLCBJbmxpbmVCb3gmIHBhcmVudElubGluZUJveCwgY29uc3QgSW5saW5lQm94OjpCYXNlbGlu
ZSYpOworICAgIHZvaWQgYWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KCk7CiAgICAgSW5saW5l
TGF5b3V0VW5pdCBydW5Db250ZW50SGVpZ2h0KGNvbnN0IFJ1biYpIGNvbnN0OwogCiAgICAgdm9p
ZCBqdXN0aWZ5UnVucyhJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAx
YWU0NTkzZjk1NWEzNjdhODI1ZjYyMDlkYWFlMjgxOWQzZTBjNjIxLi5lODViYzlhOWJlNDg2ODg3
OWFmNDZiYWMxYTliYTMwZWIxYWY3MjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDct
MTcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNd
IE1vdmUgYWxsIGxpbmUgaGVpZ2h0IGFuZCBiYXNlbGluZSBhZGp1c3RtZW50IGxvZ2ljIHRvIExp
bmVCdWlsZGVyOjphZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDQ3NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29u
dGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWluZXItc2ltcGxlLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQv
aW5saW5lLXRleHQtb3V0c2lkZS1vZi1pbmxpbmUtY29udGFpbmVyLXNpbXBsZS5odG1sOiBBZGRl
ZC4KKwogMjAyMC0wNy0xMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0JGQ11bTWluLU1heCB3aWR0aF0gUmVndWxhciBibG9jayBsZXZlbCBib3ggcmVz
ZXRzIHRoZSBob3Jpem9udGFsIHN0YWNraW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5saW5lLWNv
bnRhaW5lci1zaW1wbGUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbGF5b3V0Zm9y
bWF0dGluZ2NvbnRleHQvaW5saW5lLXRleHQtb3V0c2lkZS1vZi1pbmxpbmUtY29udGFpbmVyLXNp
bXBsZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmNjgzMzk0YWFjZDc4YWE2YjgyYjQyN2Nl
OGJmNTJlZTM0MjY0NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheW91
dGZvcm1hdHRpbmdjb250ZXh0L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5saW5lLWNvbnRhaW5l
ci1zaW1wbGUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRF
bmFibGVkPXRydWUgaW50ZXJuYWw6TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVu
YWJsZWQ9ZmFsc2UgXSAtLT4KKzxzdHlsZT4KK2RpdiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjog
Z3JlZW47CisgICAgd2lkdGg6IDM1MHB4OworICAgIGhlaWdodDogMjBweDsKK30KKzwvc3R5bGU+
Cis8ZGl2PjwvZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvaW5saW5lLXRleHQtb3V0c2lk
ZS1vZi1pbmxpbmUtY29udGFpbmVyLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sYXlv
dXRmb3JtYXR0aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWlu
ZXItc2ltcGxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI3OTM3OWRmZWU2OWVkY2FmMjMwOTdlODY5OWUz
YzA4MjhhMzU2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbGF5b3V0Zm9y
bWF0dGluZ2NvbnRleHQvaW5saW5lLXRleHQtb3V0c2lkZS1vZi1pbmxpbmUtY29udGFpbmVyLXNp
bXBsZS5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50
ZXJuYWw6TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRFbmFibGVkPXRydWUgaW50ZXJuYWw6TGF5b3V0
Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQ9ZmFsc2UgXSAtLT4KKzxzdHlsZT4K
K2JvZHkgeworICBmb250LWZhbWlseTogQWhlbTsKKyAgY29sb3I6IGdyZWVuOworfQorCitkaXYg
eworICBmb250LXNpemU6IDIwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICBwb3Np
dGlvbjogYWJzb2x1dGU7Cit9CisKK3NwYW4geworICBmb250LXNpemU6IDEwcHg7Cit9Cis8L3N0
eWxlPgorPGRpdj48c3Bhbj50ZXh0IGluc2lkZTwvc3Bhbj50ZXh0IG91dHNpZGU8L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407062</attachid>
            <date>2020-08-22 19:44:47 -0700</date>
            <delta_ts>2020-08-22 19:47:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214474-20200822194447.patch</filename>
            <type>text/plain</type>
            <size>15911</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MxMGYyYTQyNWVhMTFm
Y2NhNmFlODFiMGVkNDU5YjliN2ZmNTRjMS4uYzM1NDFjZWQxZjIzNDIwMjFkYjA1ZTc2ZjZjNmM2
NjJmNWE5ODZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA4LTIyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBNb3ZlIGFs
bCBsaW5lIGhlaWdodCBhbmQgYmFzZWxpbmUgYWRqdXN0bWVudCBsb2dpYyB0byBMaW5lQnVpbGRl
cjo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ0NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0
L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUuaHRtbAorCisg
ICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6Y2xvc2UpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0
KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5o
OgorCiAyMDIwLTA4LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bSUZDXSBhZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQgc2hvdWxkIHRha2UgdGhl
IHBhcmVudCBpbmxpbmUgYm94LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IDZiNTdmMWQ4
NTI4MDBiNTFhODU0NWM2MGY3NDUyZmE4YmZlMWZmYjAuLjJjZmMxYTc3NTUwZjAyMGQ2NmYyNDMw
YjYyOTBlZTYyMDRjNWMxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTExOCwyNiAr
MTE4LDcgQEAgTGluZUJ1aWxkZXI6OlJ1bkxpc3QgTGluZUJ1aWxkZXI6OmNsb3NlKElzTGFzdExp
bmVXaXRoSW5saW5lQ29udGVudCBpc0xhc3RMaW5lV2kKICAgICAgICAgcmV0dXJuIFdURk1vdmUo
bV9ydW5zKTsKIAogICAgIGF1dG8gaGFuZ2luZ0NvbnRlbnQgPSBjb2xsZWN0SGFuZ2luZ0NvbnRl
bnQoaXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50KTsKLSAgICB1bnNpZ25lZCBpbmxpbmVDb250
YWluZXJOZXN0aW5nTGV2ZWwgPSAwOwotICAgIGF1dG8gaGFzU2VlblRleHRPckxpbmVCcmVhayA9
IGZhbHNlOwotICAgIGZvciAoYXV0byYgcnVuIDogbV9ydW5zKSB7Ci0gICAgICAgIHJ1bi5zZXRM
b2dpY2FsSGVpZ2h0KHJ1bkNvbnRlbnRIZWlnaHQocnVuKSk7Ci0gICAgICAgIGlubGluZUNvbnRh
aW5lck5lc3RpbmdMZXZlbCA9IHJ1bi5pc0NvbnRhaW5lclN0YXJ0KCkgPyBpbmxpbmVDb250YWlu
ZXJOZXN0aW5nTGV2ZWwgKyAxIDogcnVuLmlzQ29udGFpbmVyRW5kKCkgPyBpbmxpbmVDb250YWlu
ZXJOZXN0aW5nTGV2ZWwgLSAxIDogaW5saW5lQ29udGFpbmVyTmVzdGluZ0xldmVsOwotICAgICAg
ICBhdXRvIHJ1bklzVGV4dE9yTGluZUJyZWFrID0gcnVuLmlzVGV4dCgpIHx8IHJ1bi5pc0xpbmVC
cmVhaygpOwotICAgICAgICBpZiAocnVuSXNUZXh0T3JMaW5lQnJlYWspIHsKLSAgICAgICAgICAg
IC8vIEZvciB0ZXh0IGNvbnRlbnQgd2Ugc2V0IHRoZSBiYXNlbGluZSBlaXRoZXIgdGhyb3VnaCB0
aGUgaW5pdGlhbCBzdHJ1dCAoc2V0IGJ5IHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdCkgb3IK
LSAgICAgICAgICAgIC8vIHRocm91Z2ggdGhlIGlubGluZSBjb250YWluZXIgKHN0YXJ0KS4gTm9y
bWFsbHkgdGhlIHRleHQgY29udGVudCBpdHNlbGYgZG9lcyBub3Qgc3RyZXRjaCB0aGUgbGluZS4K
LSAgICAgICAgICAgIGlmIChoYXNTZWVuVGV4dE9yTGluZUJyZWFrKQotICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgaGFzU2VlblRleHRPckxpbmVCcmVhayA9IHRydWU7Ci0g
ICAgICAgICAgICBpZiAoIW1faW5pdGlhbFN0cnV0KQotICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgaWYgKGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBhdXRvJiB1c2VkQmFzZWxpbmUg
PSBydW5Jc1RleHRPckxpbmVCcmVhayA/ICptX2luaXRpYWxTdHJ1dCA6IG1fbGluZUJveC5iYXNl
bGluZSgpOwotICAgICAgICBhZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQocnVuLCBtX2xpbmVC
b3gsIHVzZWRCYXNlbGluZSk7Ci0gICAgfQorICAgIGFkanVzdEJhc2VsaW5lQW5kTGluZUhlaWdo
dCgpOwogICAgIGlmIChpc1Zpc3VhbGx5RW1wdHkoKSkgewogICAgICAgICBtX2xpbmVCb3gucmVz
ZXRCYXNlbGluZSgpOwogICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodCh7IH0pOwpA
QCAtNTY4LDg1ICs1NDksMTExIEBAIHZvaWQgTGluZUJ1aWxkZXI6OmFwcGVuZExpbmVCcmVhayhj
b25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtKQogICAgIG1fcnVucy5hcHBlbmQoeyBkb3duY2Fz
dDxJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbT4oaW5saW5lSXRlbSksIGNvbnRlbnRMb2dpY2FsV2lk
dGgoKSB9KTsKIH0KIAotdm9pZCBMaW5lQnVpbGRlcjo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVp
Z2h0KGNvbnN0IFJ1biYgcnVuLCBJbmxpbmVCb3gmIC8qcGFyZW50SW5saW5lQm94Ki8sIGNvbnN0
IElubGluZUJveDo6QmFzZWxpbmUmIHVzZWRCYXNlbGluZSkKK3ZvaWQgTGluZUJ1aWxkZXI6OmFk
anVzdEJhc2VsaW5lQW5kTGluZUhlaWdodCgpCiB7Ci0gICAgaWYgKHJ1bi5pc1RleHQoKSB8fCBy
dW4uaXNMaW5lQnJlYWsoKSkgewotICAgICAgICBtX2xpbmVCb3guc2V0QXNjZW50SWZHcmVhdGVy
KHVzZWRCYXNlbGluZS5hc2NlbnQoKSk7Ci0gICAgICAgIG1fbGluZUJveC5zZXREZXNjZW50SWZH
cmVhdGVyKHVzZWRCYXNlbGluZS5kZXNjZW50KCkpOwotICAgICAgICBtX2xpbmVCb3guc2V0TG9n
aWNhbEhlaWdodElmR3JlYXRlcih1c2VkQmFzZWxpbmUuaGVpZ2h0KCkpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQorICAgIHVuc2lnbmVkIGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCA9IDA7
CisgICAgYXV0byBoYXNTZWVuRGlyZWN0VGV4dE9yTGluZUJyZWFrID0gZmFsc2U7CisgICAgZm9y
IChhdXRvJiBydW4gOiBtX3J1bnMpIHsKKyAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gcnVuLmxh
eW91dEJveCgpOworICAgICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwogCi0g
ICAgYXV0byYgbGF5b3V0Qm94ID0gcnVuLmxheW91dEJveCgpOwotICAgIGF1dG8mIHN0eWxlID0g
bGF5b3V0Qm94LnN0eWxlKCk7Ci0gICAgaWYgKHJ1bi5pc0NvbnRhaW5lclN0YXJ0KCkpIHsKLSAg
ICAgICAgLy8gSW5saW5lIGNvbnRhaW5lcnMgc3RyZXRjaCB0aGUgbGluZSBieSB0aGVpciBmb250
IHNpemUuCi0gICAgICAgIC8vIFZlcnRpY2FsIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBib3JkZXJz
IGRvbid0IGNvbnRyaWJ1dGUgdG8gdGhlIGxpbmUgaGVpZ2h0LgotICAgICAgICBhdXRvJiBmb250
TWV0cmljcyA9IHN0eWxlLmZvbnRNZXRyaWNzKCk7Ci0gICAgICAgIGlmIChzdHlsZS52ZXJ0aWNh
bEFsaWduKCkgPT0gVmVydGljYWxBbGlnbjo6QmFzZWxpbmUpIHsKLSAgICAgICAgICAgIGF1dG8g
aGFsZkxlYWRpbmcgPSBoYWxmTGVhZGluZ01ldHJpY3MoZm9udE1ldHJpY3MsIHN0eWxlLmNvbXB1
dGVkTGluZUhlaWdodCgpKTsKLSAgICAgICAgICAgIC8vIEJvdGggaGFsZmxlYWRpbmcgYXNjZW50
IGFuZCBkZXNjZW50IGNvdWxkIGJlIG5lZ2F0aXZlICh0YWxsIGZvbnQgdnMuIHNtYWxsIGxpbmUt
aGVpZ2h0IHZhbHVlKQotICAgICAgICAgICAgaWYgKGhhbGZMZWFkaW5nLmRlc2NlbnQoKSA+IDAp
Ci0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldERlc2NlbnRJZkdyZWF0ZXIoaGFsZkxlYWRp
bmcuZGVzY2VudCgpKTsKLSAgICAgICAgICAgIGlmIChoYWxmTGVhZGluZy5hc2NlbnQoKSA+IDAp
Ci0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2VudElmR3JlYXRlcihoYWxmTGVhZGlu
Zy5hc2NlbnQoKSk7Ci0gICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3Jl
YXRlcih1c2VkQmFzZWxpbmUuaGVpZ2h0KCkpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKGZvbnRNZXRyaWNzLmhlaWdodCgp
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgcnVuLnNldExvZ2ljYWxIZWlnaHQo
cnVuQ29udGVudEhlaWdodChydW4pKTsKIAotICAgIGlmIChydW4uaXNDb250YWluZXJFbmQoKSkg
ewotICAgICAgICAvLyBUaGUgbGluZSdzIGJhc2VsaW5lIGFuZCBoZWlnaHQgaGF2ZSBhbHJlYWR5
IGJlZW4gYWRqdXN0ZWQgYXQgQ29udGFpbmVyU3RhcnQuCi0gICAgICAgIHJldHVybjsKLSAgICB9
CisgICAgICAgIGlmIChydW4uaXNUZXh0KCkgfHwgcnVuLmlzTGluZUJyZWFrKCkpIHsKKyAgICAg
ICAgICAgIC8vIEZvciB0ZXh0IGNvbnRlbnQgd2Ugc2V0IHRoZSBiYXNlbGluZSBlaXRoZXIgdGhy
b3VnaCB0aGUgaW5pdGlhbCBzdHJ1dCAoc2V0IGJ5IHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgcm9v
dCkgb3IKKyAgICAgICAgICAgIC8vIHRocm91Z2ggdGhlIGlubGluZSBjb250YWluZXIgKHN0YXJ0
KS4gTm9ybWFsbHkgdGhlIHRleHQgY29udGVudCBpdHNlbGYgZG9lcyBub3Qgc3RyZXRjaCB0aGUg
bGluZS4KKyAgICAgICAgICAgIGlmICghbV9pbml0aWFsU3RydXQpIHsKKyAgICAgICAgICAgICAg
ICAvLyBXZSBhcmUgaW4gc3RhbmRhcmRzIG1vZGUgd2hlcmUgdGhlIGJhc2VsaW5lIGFuZCBsaW5l
IGhlaWdodCBhcmUgZXhwbGljdC4KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmIChpbmxpbmVDb250YWluZXJOZXN0aW5nTGV2ZWwpIHsKKyAg
ICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IGFkanVzdGVkIHRoZSBsaW5lIGhlaWdodC9i
YXNlbGluZSB0aHJvdWdoIHRoZSBwYXJlbnQgaW5saW5lIGNvbnRhaW5lci4gCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaGFzU2VlbkRp
cmVjdFRleHRPckxpbmVCcmVhaykgeworICAgICAgICAgICAgICAgIC8vIGUuZyBkaXY+Zmlyc3Qg
dGV4dDwvZGl2PiBvciA8ZGl2PjxzcGFuPm5lc3RlZDxzcGFuPmZpcnN0IGRpcmVjdCB0ZXh0PC9k
aXY+LgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgaGFzU2VlbkRpcmVjdFRleHRPckxpbmVCcmVhayA9IHRydWU7CisgICAgICAgICAgICAvLyBX
ZSBhcmUgaW4gcXVpcmtzIG1vZGUgd2hlcmUgdGhlIGZvbnQtbWV0cmljcyBtaWdodCBjaGFuZ2Ug
dGhlIGxpbmUgbGluZSBoZWlnaHQvYmFzZWxpbmUgYW5kIHRoaXMgaXMgdGhlIGZpcnN0IHRleHQg
Y29udGVudCBvbiB0aGUgbGluZQorICAgICAgICAgICAgLy8gb3V0c2lkZSBvZiBhbiBpbmxpbmUg
Y29udGFpbmVyLgorICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2VudElmR3JlYXRlcihtX2lu
aXRpYWxTdHJ1dC0+YXNjZW50KCkpOworICAgICAgICAgICAgbV9saW5lQm94LnNldERlc2NlbnRJ
ZkdyZWF0ZXIobV9pbml0aWFsU3RydXQtPmRlc2NlbnQoKSk7CisgICAgICAgICAgICBtX2xpbmVC
b3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlcihtX2luaXRpYWxTdHJ1dC0+aGVpZ2h0KCkpOwor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAotICAgIGlmIChydW4uaXNCb3goKSkg
ewotICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0
cnlGb3JCb3gobGF5b3V0Qm94KTsKLSAgICAgICAgYXV0byBtYXJnaW5Cb3hIZWlnaHQgPSBib3hH
ZW9tZXRyeS5tYXJnaW5Cb3hIZWlnaHQoKTsKKyAgICAgICAgaWYgKHJ1bi5pc0NvbnRhaW5lclN0
YXJ0KCkpIHsKKyAgICAgICAgICAgICsraW5saW5lQ29udGFpbmVyTmVzdGluZ0xldmVsOworICAg
ICAgICAgICAgLy8gSW5saW5lIGNvbnRhaW5lcnMgc3RyZXRjaCB0aGUgbGluZSBieSB0aGVpciBm
b250IHNpemUuCisgICAgICAgICAgICAvLyBWZXJ0aWNhbCBtYXJnaW5zLCBwYWRkaW5nIGFuZCBi
b3JkZXJzIGRvbid0IGNvbnRyaWJ1dGUgdG8gdGhlIGxpbmUgaGVpZ2h0LgorICAgICAgICAgICAg
YXV0byYgZm9udE1ldHJpY3MgPSBzdHlsZS5mb250TWV0cmljcygpOworICAgICAgICAgICAgaWYg
KHN0eWxlLnZlcnRpY2FsQWxpZ24oKSA9PSBWZXJ0aWNhbEFsaWduOjpCYXNlbGluZSkgeworICAg
ICAgICAgICAgICAgIGF1dG8gaGFsZkxlYWRpbmcgPSBoYWxmTGVhZGluZ01ldHJpY3MoZm9udE1l
dHJpY3MsIHN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKKyAgICAgICAgICAgICAgICAvLyBC
b3RoIGhhbGZsZWFkaW5nIGFzY2VudCBhbmQgZGVzY2VudCBjb3VsZCBiZSBuZWdhdGl2ZSAodGFs
bCBmb250IHZzLiBzbWFsbCBsaW5lLWhlaWdodCB2YWx1ZSkKKyAgICAgICAgICAgICAgICBpZiAo
aGFsZkxlYWRpbmcuZGVzY2VudCgpID4gMCkKKyAgICAgICAgICAgICAgICAgICAgbV9saW5lQm94
LnNldERlc2NlbnRJZkdyZWF0ZXIoaGFsZkxlYWRpbmcuZGVzY2VudCgpKTsKKyAgICAgICAgICAg
ICAgICBpZiAoaGFsZkxlYWRpbmcuYXNjZW50KCkgPiAwKQorICAgICAgICAgICAgICAgICAgICBt
X2xpbmVCb3guc2V0QXNjZW50SWZHcmVhdGVyKGhhbGZMZWFkaW5nLmFzY2VudCgpKTsKKyAgICAg
ICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlcihtX2xpbmVCb3gu
YmFzZWxpbmUoKS5oZWlnaHQoKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlcihmb250TWV0cmljcy5oZWlnaHQo
KSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogCi0gICAgICAgIHN3aXRjaCAo
c3R5bGUudmVydGljYWxBbGlnbigpKSB7Ci0gICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6QmFz
ZWxpbmU6IHsKLSAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbmxpbmVCbG9ja0JveCgpICYm
IGxheW91dEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKLSAgICAg
ICAgICAgICAgICAvLyBJbmxpbmUtYmxvY2tzIHdpdGggaW5saW5lIGNvbnRlbnQgYWx3YXlzIGhh
dmUgYmFzZWxpbmVzLgotICAgICAgICAgICAgICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IGxh
eW91dFN0YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUoZG93bmNhc3Q8Q29u
dGFpbmVyQm94PihsYXlvdXRCb3gpKTsKLSAgICAgICAgICAgICAgICAvLyBTcGVjIG1ha2VzIHVz
IGdlbmVyYXRlIGF0IGxlYXN0IG9uZSBsaW5lIC1ldmVuIGlmIGl0IGlzIGVtcHR5LgotICAgICAg
ICAgICAgICAgIGF1dG8mIGxhc3RMaW5lQm94ID0gZm9ybWF0dGluZ1N0YXRlLmRpc3BsYXlJbmxp
bmVDb250ZW50KCktPmxpbmVCb3hlcy5sYXN0KCk7Ci0gICAgICAgICAgICAgICAgYXV0byBpbmxp
bmVCbG9ja0Jhc2VsaW5lID0gbGFzdExpbmVCb3guYmFzZWxpbmUoKTsKLSAgICAgICAgICAgICAg
ICBhdXRvIGJlZm9yZUhlaWdodCA9IGJveEdlb21ldHJ5Lm1hcmdpbkJlZm9yZSgpICsgYm94R2Vv
bWV0cnkuYm9yZGVyVG9wKCkgKyBib3hHZW9tZXRyeS5wYWRkaW5nVG9wKCkudmFsdWVPcigwKTsK
KyAgICAgICAgaWYgKHJ1bi5pc0NvbnRhaW5lckVuZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUg
bGluZSdzIGJhc2VsaW5lIGFuZCBoZWlnaHQgaGF2ZSBhbHJlYWR5IGJlZW4gYWRqdXN0ZWQgYXQg
Q29udGFpbmVyU3RhcnQuCisgICAgICAgICAgICBBU1NFUlQoaW5saW5lQ29udGFpbmVyTmVzdGlu
Z0xldmVsKTsKKyAgICAgICAgICAgIC0taW5saW5lQ29udGFpbmVyTmVzdGluZ0xldmVsOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIG1fbGluZUJv
eC5zZXRBc2NlbnRJZkdyZWF0ZXIoaW5saW5lQmxvY2tCYXNlbGluZS5hc2NlbnQoKSk7Ci0gICAg
ICAgICAgICAgICAgbV9saW5lQm94LnNldERlc2NlbnRJZkdyZWF0ZXIoaW5saW5lQmxvY2tCYXNl
bGluZS5kZXNjZW50KCkpOwotICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRCYXNlbGluZU9m
ZnNldElmR3JlYXRlcihiZWZvcmVIZWlnaHQgKyBsYXN0TGluZUJveC5iYXNlbGluZU9mZnNldCgp
KTsKLSAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlciht
YXJnaW5Cb3hIZWlnaHQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAv
LyBOb24gaW5saW5lLWJsb2NrIGJveGVzIHNpdCBvbiB0aGUgYmFzZWxpbmUgKGluY2x1ZGluZyB0
aGVpciBib3R0b20gbWFyZ2luKS4KLSAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0QXNjZW50
SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCk7Ci0gICAgICAgICAgICAgICAgLy8gSWdub3JlIG5l
Z2F0aXZlIGRlc2NlbnQgKHllcywgbmVnYXRpdmUgZGVzY2VudCBpcyBhIHRoaW5nKS4KLSAgICAg
ICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlcihtYXJnaW5Cb3hI
ZWlnaHQgKyBzdGQ6Om1heDxJbmxpbmVMYXlvdXRVbml0PigwLCB1c2VkQmFzZWxpbmUuZGVzY2Vu
dCgpKSk7CisgICAgICAgIGlmIChydW4uaXNCb3goKSkgeworICAgICAgICAgICAgYXV0byYgYm94
R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGxheW91dEJveCk7
CisgICAgICAgICAgICBhdXRvIG1hcmdpbkJveEhlaWdodCA9IGJveEdlb21ldHJ5Lm1hcmdpbkJv
eEhlaWdodCgpOworCisgICAgICAgICAgICBzd2l0Y2ggKHN0eWxlLnZlcnRpY2FsQWxpZ24oKSkg
eworICAgICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCYXNlbGluZTogeworICAgICAgICAg
ICAgICAgIGlmIChsYXlvdXRCb3guaXNJbmxpbmVCbG9ja0JveCgpICYmIGxheW91dEJveC5lc3Rh
Ymxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gSW5saW5lLWJsb2NrcyB3aXRoIGlubGluZSBjb250ZW50IGFsd2F5cyBoYXZlIGJhc2VsaW5l
cy4KKyAgICAgICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3Rh
dGUoKS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShkb3duY2FzdDxDb250YWluZXJC
b3g+KGxheW91dEJveCkpOworICAgICAgICAgICAgICAgICAgICAvLyBTcGVjIG1ha2VzIHVzIGdl
bmVyYXRlIGF0IGxlYXN0IG9uZSBsaW5lIC1ldmVuIGlmIGl0IGlzIGVtcHR5LgorICAgICAgICAg
ICAgICAgICAgICBhdXRvJiBsYXN0TGluZUJveCA9IGZvcm1hdHRpbmdTdGF0ZS5kaXNwbGF5SW5s
aW5lQ29udGVudCgpLT5saW5lQm94ZXMubGFzdCgpOworICAgICAgICAgICAgICAgICAgICBhdXRv
IGlubGluZUJsb2NrQmFzZWxpbmUgPSBsYXN0TGluZUJveC5iYXNlbGluZSgpOworICAgICAgICAg
ICAgICAgICAgICBhdXRvIGJlZm9yZUhlaWdodCA9IGJveEdlb21ldHJ5Lm1hcmdpbkJlZm9yZSgp
ICsgYm94R2VvbWV0cnkuYm9yZGVyVG9wKCkgKyBib3hHZW9tZXRyeS5wYWRkaW5nVG9wKCkudmFs
dWVPcigwKTsKKworICAgICAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0QXNjZW50SWZHcmVh
dGVyKGlubGluZUJsb2NrQmFzZWxpbmUuYXNjZW50KCkpOworICAgICAgICAgICAgICAgICAgICBt
X2xpbmVCb3guc2V0RGVzY2VudElmR3JlYXRlcihpbmxpbmVCbG9ja0Jhc2VsaW5lLmRlc2NlbnQo
KSk7CisgICAgICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRCYXNlbGluZU9mZnNldElmR3Jl
YXRlcihiZWZvcmVIZWlnaHQgKyBsYXN0TGluZUJveC5iYXNlbGluZU9mZnNldCgpKTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIobWFyZ2lu
Qm94SGVpZ2h0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICAvLyBOb24gaW5saW5lLWJsb2NrIGJveGVzIHNpdCBvbiB0aGUgYmFzZWxpbmUgKGluY2x1ZGlu
ZyB0aGVpciBib3R0b20gbWFyZ2luKS4KKyAgICAgICAgICAgICAgICAgICAgbV9saW5lQm94LnNl
dEFzY2VudElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQpOworICAgICAgICAgICAgICAgICAgICAv
LyBJZ25vcmUgbmVnYXRpdmUgZGVzY2VudCAoeWVzLCBuZWdhdGl2ZSBkZXNjZW50IGlzIGEgdGhp
bmcpLgorICAgICAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3Jl
YXRlcihtYXJnaW5Cb3hIZWlnaHQgKyBzdGQ6Om1heDxJbmxpbmVMYXlvdXRVbml0PigwLCBtX2xp
bmVCb3guYmFzZWxpbmUoKS5kZXNjZW50KCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlRvcDoKLSAgICAgICAgICAgIC8vIFRv
cCBhbGlnbiBjb250ZW50IG5ldmVyIGNoYW5nZXMgdGhlIGJhc2VsaW5lLCBpdCBvbmx5IHB1c2hl
cyB0aGUgYm90dG9tIG9mIHRoZSBsaW5lIGZ1cnRoZXIgZG93bi4KLSAgICAgICAgICAgIG1fbGlu
ZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCb3R0b206IHsKLSAgICAg
ICAgICAgIC8vIEJvdHRvbSBhbGlnbmVkLCB0YWxsIGNvbnRlbnQgcHVzaGVzIHRoZSBiYXNlbGlu
ZSBmdXJ0aGVyIGRvd24gZnJvbSB0aGUgbGluZSB0b3AuCi0gICAgICAgICAgICBhdXRvIGxpbmVM
b2dpY2FsSGVpZ2h0ID0gbV9saW5lQm94LmxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgICAgIGlm
IChtYXJnaW5Cb3hIZWlnaHQgPiBsaW5lTG9naWNhbEhlaWdodCkgeworICAgICAgICAgICAgY2Fz
ZSBWZXJ0aWNhbEFsaWduOjpUb3A6CisgICAgICAgICAgICAgICAgLy8gVG9wIGFsaWduIGNvbnRl
bnQgbmV2ZXIgY2hhbmdlcyB0aGUgYmFzZWxpbmUsIGl0IG9ubHkgcHVzaGVzIHRoZSBib3R0b20g
b2YgdGhlIGxpbmUgZnVydGhlciBkb3duLgogICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRM
b2dpY2FsSGVpZ2h0SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCk7Ci0gICAgICAgICAgICAgICAg
bV9saW5lQm94LnNldEJhc2VsaW5lT2Zmc2V0SWZHcmVhdGVyKG1fbGluZUJveC5iYXNlbGluZU9m
ZnNldCgpICsgKG1hcmdpbkJveEhlaWdodCAtIGxpbmVMb2dpY2FsSGVpZ2h0KSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OkJvdHRvbTog
eworICAgICAgICAgICAgICAgIC8vIEJvdHRvbSBhbGlnbmVkLCB0YWxsIGNvbnRlbnQgcHVzaGVz
IHRoZSBiYXNlbGluZSBmdXJ0aGVyIGRvd24gZnJvbSB0aGUgbGluZSB0b3AuCisgICAgICAgICAg
ICAgICAgYXV0byBsaW5lTG9naWNhbEhlaWdodCA9IG1fbGluZUJveC5sb2dpY2FsSGVpZ2h0KCk7
CisgICAgICAgICAgICAgICAgaWYgKG1hcmdpbkJveEhlaWdodCA+IGxpbmVMb2dpY2FsSGVpZ2h0
KSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVh
dGVyKG1hcmdpbkJveEhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRC
YXNlbGluZU9mZnNldElmR3JlYXRlcihtX2xpbmVCb3guYmFzZWxpbmVPZmZzZXQoKSArIChtYXJn
aW5Cb3hIZWlnaHQgLSBsaW5lTG9naWNhbEhlaWdodCkpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX0lNUExF
TUVOVEVEX1lFVCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQotICAgICAgICByZXR1cm47CiAgICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
fQogCiBJbmxpbmVMYXlvdXRVbml0IExpbmVCdWlsZGVyOjpydW5Db250ZW50SGVpZ2h0KGNvbnN0
IFJ1biYgcnVuKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKaW5kZXggMGQwYmZlZTBmYjUzNzM0
MDcxMjJiNWFkNjIxNjllOWZlZDhhMjg5MC4uODQ5NmVjMGY5NzU5MGFiZDFkNzVmYzJjMjU0OGE4
ZmZiM2NkZGRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5oCkBAIC0xODMsNyArMTgzLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGFsaWduSG9yaXpvbnRhbGx5KGNvbnN0IEhhbmdpbmdDb250ZW50Jiwg
SXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50KTsKICAgICB2b2lkIGFsaWduQ29udGVudFZlcnRp
Y2FsbHkoKTsKIAotICAgIHZvaWQgYWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGNvbnN0IFJ1
biYsIElubGluZUJveCYgcGFyZW50SW5saW5lQm94LCBjb25zdCBJbmxpbmVCb3g6OkJhc2VsaW5l
Jik7CisgICAgdm9pZCBhZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoKTsKICAgICBJbmxpbmVM
YXlvdXRVbml0IHJ1bkNvbnRlbnRIZWlnaHQoY29uc3QgUnVuJikgY29uc3Q7CiAKICAgICB2b2lk
IGp1c3RpZnlSdW5zKElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRm
NzlkZThjNWY5M2ZjNmU2ZGQ0ZjBlNGRlMzFjMzJhZmY3YjhhYWYuLjYwYTMzN2ZiMGE5ZTkyYWY5
Y2JjNDRlMzkzNDUzN2VjOTAxMmUxMTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wOC0y
MiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdW0lGQ10g
TW92ZSBhbGwgbGluZSBoZWlnaHQgYW5kIGJhc2VsaW5lIGFkanVzdG1lbnQgbG9naWMgdG8gTGlu
ZUJ1aWxkZXI6OmFkanVzdEJhc2VsaW5lQW5kTGluZUhlaWdodAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2xheW91dGZvcm1hdHRpbmdjb250
ZXh0L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9p
bmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWluZXItc2ltcGxlLmh0bWw6IEFkZGVk
LgorCiAyMDIwLTA4LTIyICBFbWlsaW8gQ29ib3Mgw4FsdmFyZXogIDxlbWlsaW9AY3Jpc2FsLmlv
PgogCiAgICAgICAgIEltcG9ydCBjc3MtY29udGVudCB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvaW5saW5lLXRleHQtb3V0c2lkZS1v
Zi1pbmxpbmUtY29udGFpbmVyLXNpbXBsZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1j
b250YWluZXItc2ltcGxlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY2ODMzOTRhYWNkNzhh
YTZiODJiNDI3Y2U4YmY1MmVlMzQyNjQ2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvaW5saW5lLXRleHQtb3V0c2lkZS1vZi1pbmxp
bmUtY29udGFpbmVyLXNpbXBsZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NU
WVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpMYXlvdXRGb3JtYXR0
aW5nQ29udGV4dEVuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpMYXlvdXRGb3JtYXR0aW5nQ29udGV4dElu
dGVncmF0aW9uRW5hYmxlZD1mYWxzZSBdIC0tPgorPHN0eWxlPgorZGl2IHsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsKKyAgICB3aWR0aDogMzUwcHg7CisgICAgaGVpZ2h0OiAyMHB4Owor
fQorPC9zdHlsZT4KKzxkaXY+PC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9pbmxpbmUt
dGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWluZXItc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5s
aW5lLWNvbnRhaW5lci1zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjc5Mzc5ZGZlZTY5ZWRjYWYy
MzA5N2U4Njk5ZTNjMDgyOGEzNTY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1j
b250YWluZXItc2ltcGxlLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBpbnRlcm5hbDpMYXlvdXRGb3JtYXR0aW5nQ29udGV4dEVuYWJsZWQ9dHJ1ZSBpbnRl
cm5hbDpMYXlvdXRGb3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxlZD1mYWxzZSBdIC0t
PgorPHN0eWxlPgorYm9keSB7CisgIGZvbnQtZmFtaWx5OiBBaGVtOworICBjb2xvcjogZ3JlZW47
Cit9CisKK2RpdiB7CisgIGZvbnQtc2l6ZTogMjBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKK30KKworc3BhbiB7CisgIGZvbnQtc2l6ZTogMTBw
eDsKK30KKzwvc3R5bGU+Cis8ZGl2PjxzcGFuPnRleHQgaW5zaWRlPC9zcGFuPnRleHQgb3V0c2lk
ZTwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407063</attachid>
            <date>2020-08-22 19:50:00 -0700</date>
            <delta_ts>2020-08-22 19:51:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>15679</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">Y29tbWl0IDYyZjFiMjBkYmM4MmFiY2MyNWE3NjRhMDY5YTVjNjU0NjBiNzczNTcKQXV0aG9yOiBB
bGFuIEtpbnNsZXkgPHphbGFuQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgQXVnIDIyIDE5OjQ0OjA3
IDIwMjAgLTA3MDAKCiAgICBmb29iYXIKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGY3OWRlOGM1ZjkzLi42MGEzMzdmYjBh
OWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wOC0yMiAgWmFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdW0lGQ10gTW92ZSBhbGwgbGluZSBoZWlnaHQg
YW5kIGJhc2VsaW5lIGFkanVzdG1lbnQgbG9naWMgdG8gTGluZUJ1aWxkZXI6OmFkanVzdEJhc2Vs
aW5lQW5kTGluZUhlaWdodAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE0NDc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2lubGluZS10ZXh0LW91dHNp
ZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9m
LWlubGluZS1jb250YWluZXItc2ltcGxlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA4LTIyICBFbWls
aW8gQ29ib3Mgw4FsdmFyZXogIDxlbWlsaW9AY3Jpc2FsLmlvPgogCiAgICAgICAgIEltcG9ydCBj
c3MtY29udGVudCB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbGF5b3V0Zm9y
bWF0dGluZ2NvbnRleHQvaW5saW5lLXRleHQtb3V0c2lkZS1vZi1pbmxpbmUtY29udGFpbmVyLXNp
bXBsZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29u
dGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWluZXItc2ltcGxlLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZjY4MzM5
NGFhY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRp
bmdjb250ZXh0L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRFbmFibGVkPXRy
dWUgaW50ZXJuYWw6TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQ9ZmFs
c2UgXSAtLT4KKzxzdHlsZT4KK2RpdiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cisg
ICAgd2lkdGg6IDM1MHB4OworICAgIGhlaWdodDogMjBweDsKK30KKzwvc3R5bGU+Cis8ZGl2Pjwv
ZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvaW5saW5lLXRleHQtb3V0c2lkZS1vZi1pbmxp
bmUtY29udGFpbmVyLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0
aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWluZXItc2ltcGxl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41Mjc5Mzc5ZGZl
ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdj
b250ZXh0L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkxh
eW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxlZD10cnVlIGludGVybmFsOkxheW91dEZvcm1hdHRp
bmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkPWZhbHNlIF0gLS0+Cis8c3R5bGU+Citib2R5IHsK
KyAgZm9udC1mYW1pbHk6IEFoZW07CisgIGNvbG9yOiBncmVlbjsKK30KKworZGl2IHsKKyAgZm9u
dC1zaXplOiAyMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgcG9zaXRpb246IGFi
c29sdXRlOworfQorCitzcGFuIHsKKyAgZm9udC1zaXplOiAxMHB4OworfQorPC9zdHlsZT4KKzxk
aXY+PHNwYW4+dGV4dCBpbnNpZGU8L3NwYW4+dGV4dCBvdXRzaWRlPC9kaXY+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggM2MxMGYyYTQyNWVhLi5jMzU0MWNlZDFmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMC0wOC0yMiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtMRkNdW0lGQ10gTW92ZSBhbGwgbGluZSBoZWlnaHQgYW5kIGJhc2VsaW5lIGFkanVzdG1lbnQg
bG9naWMgdG8gTGluZUJ1aWxkZXI6OmFkanVzdEJhc2VsaW5lQW5kTGluZUhlaWdodAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9sYXlv
dXRmb3JtYXR0aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWlu
ZXItc2ltcGxlLmh0bWwKKworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6
OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmFkanVzdEJh
c2VsaW5lQW5kTGluZUhlaWdodCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZUJ1aWxkZXIuaDoKKwogMjAyMC0wOC0yMiAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gYWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVp
Z2h0IHNob3VsZCB0YWtlIHRoZSBwYXJlbnQgaW5saW5lIGJveC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVy
LmNwcAppbmRleCA2YjU3ZjFkODUyODAuLjJjZmMxYTc3NTUwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWls
ZGVyLmNwcApAQCAtMTE4LDI2ICsxMTgsNyBAQCBMaW5lQnVpbGRlcjo6UnVuTGlzdCBMaW5lQnVp
bGRlcjo6Y2xvc2UoSXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50IGlzTGFzdExpbmVXaQogICAg
ICAgICByZXR1cm4gV1RGTW92ZShtX3J1bnMpOwogCiAgICAgYXV0byBoYW5naW5nQ29udGVudCA9
IGNvbGxlY3RIYW5naW5nQ29udGVudChpc0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQpOwotICAg
IHVuc2lnbmVkIGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCA9IDA7Ci0gICAgYXV0byBoYXNT
ZWVuVGV4dE9yTGluZUJyZWFrID0gZmFsc2U7Ci0gICAgZm9yIChhdXRvJiBydW4gOiBtX3J1bnMp
IHsKLSAgICAgICAgcnVuLnNldExvZ2ljYWxIZWlnaHQocnVuQ29udGVudEhlaWdodChydW4pKTsK
LSAgICAgICAgaW5saW5lQ29udGFpbmVyTmVzdGluZ0xldmVsID0gcnVuLmlzQ29udGFpbmVyU3Rh
cnQoKSA/IGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCArIDEgOiBydW4uaXNDb250YWluZXJF
bmQoKSA/IGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCAtIDEgOiBpbmxpbmVDb250YWluZXJO
ZXN0aW5nTGV2ZWw7Ci0gICAgICAgIGF1dG8gcnVuSXNUZXh0T3JMaW5lQnJlYWsgPSBydW4uaXNU
ZXh0KCkgfHwgcnVuLmlzTGluZUJyZWFrKCk7Ci0gICAgICAgIGlmIChydW5Jc1RleHRPckxpbmVC
cmVhaykgewotICAgICAgICAgICAgLy8gRm9yIHRleHQgY29udGVudCB3ZSBzZXQgdGhlIGJhc2Vs
aW5lIGVpdGhlciB0aHJvdWdoIHRoZSBpbml0aWFsIHN0cnV0IChzZXQgYnkgdGhlIGZvcm1hdHRp
bmcgY29udGV4dCByb290KSBvcgotICAgICAgICAgICAgLy8gdGhyb3VnaCB0aGUgaW5saW5lIGNv
bnRhaW5lciAoc3RhcnQpLiBOb3JtYWxseSB0aGUgdGV4dCBjb250ZW50IGl0c2VsZiBkb2VzIG5v
dCBzdHJldGNoIHRoZSBsaW5lLgotICAgICAgICAgICAgaWYgKGhhc1NlZW5UZXh0T3JMaW5lQnJl
YWspCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBoYXNTZWVuVGV4dE9y
TGluZUJyZWFrID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmICghbV9pbml0aWFsU3RydXQpCi0gICAg
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoaW5saW5lQ29udGFpbmVyTmVz
dGluZ0xldmVsKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAg
IGF1dG8mIHVzZWRCYXNlbGluZSA9IHJ1bklzVGV4dE9yTGluZUJyZWFrID8gKm1faW5pdGlhbFN0
cnV0IDogbV9saW5lQm94LmJhc2VsaW5lKCk7Ci0gICAgICAgIGFkanVzdEJhc2VsaW5lQW5kTGlu
ZUhlaWdodChydW4sIG1fbGluZUJveCwgdXNlZEJhc2VsaW5lKTsKLSAgICB9CisgICAgYWRqdXN0
QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KCk7CiAgICAgaWYgKGlzVmlzdWFsbHlFbXB0eSgpKSB7CiAg
ICAgICAgIG1fbGluZUJveC5yZXNldEJhc2VsaW5lKCk7CiAgICAgICAgIG1fbGluZUJveC5zZXRM
b2dpY2FsSGVpZ2h0KHsgfSk7CkBAIC01NjgsODUgKzU0OSwxMTEgQEAgdm9pZCBMaW5lQnVpbGRl
cjo6YXBwZW5kTGluZUJyZWFrKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0pCiAgICAgbV9y
dW5zLmFwcGVuZCh7IGRvd25jYXN0PElubGluZVNvZnRMaW5lQnJlYWtJdGVtPihpbmxpbmVJdGVt
KSwgY29udGVudExvZ2ljYWxXaWR0aCgpIH0pOwogfQogCi12b2lkIExpbmVCdWlsZGVyOjphZGp1
c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3QgUnVuJiBydW4sIExpbmVCb3gmIC8qcGFyZW50
SW5saW5lQm94Ki8sIGNvbnN0IExpbmVCb3g6OkJhc2VsaW5lJiB1c2VkQmFzZWxpbmUpCit2b2lk
IExpbmVCdWlsZGVyOjphZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoKQogewotICAgIGlmIChy
dW4uaXNUZXh0KCkgfHwgcnVuLmlzTGluZUJyZWFrKCkpIHsKLSAgICAgICAgbV9saW5lQm94LnNl
dEFzY2VudElmR3JlYXRlcih1c2VkQmFzZWxpbmUuYXNjZW50KCkpOwotICAgICAgICBtX2xpbmVC
b3guc2V0RGVzY2VudElmR3JlYXRlcih1c2VkQmFzZWxpbmUuZGVzY2VudCgpKTsKLSAgICAgICAg
bV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIodXNlZEJhc2VsaW5lLmhlaWdodCgp
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICB1bnNpZ25lZCBpbmxpbmVDb250YWluZXJO
ZXN0aW5nTGV2ZWwgPSAwOworICAgIGF1dG8gaGFzU2VlbkRpcmVjdFRleHRPckxpbmVCcmVhayA9
IGZhbHNlOworICAgIGZvciAoYXV0byYgcnVuIDogbV9ydW5zKSB7CisgICAgICAgIGF1dG8mIGxh
eW91dEJveCA9IHJ1bi5sYXlvdXRCb3goKTsKKyAgICAgICAgYXV0byYgc3R5bGUgPSBsYXlvdXRC
b3guc3R5bGUoKTsKIAotICAgIGF1dG8mIGxheW91dEJveCA9IHJ1bi5sYXlvdXRCb3goKTsKLSAg
ICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwotICAgIGlmIChydW4uaXNDb250YWlu
ZXJTdGFydCgpKSB7Ci0gICAgICAgIC8vIElubGluZSBjb250YWluZXJzIHN0cmV0Y2ggdGhlIGxp
bmUgYnkgdGhlaXIgZm9udCBzaXplLgotICAgICAgICAvLyBWZXJ0aWNhbCBtYXJnaW5zLCBwYWRk
aW5nIGFuZCBib3JkZXJzIGRvbid0IGNvbnRyaWJ1dGUgdG8gdGhlIGxpbmUgaGVpZ2h0LgotICAg
ICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlLmZvbnRNZXRyaWNzKCk7Ci0gICAgICAgIGlm
IChzdHlsZS52ZXJ0aWNhbEFsaWduKCkgPT0gVmVydGljYWxBbGlnbjo6QmFzZWxpbmUpIHsKLSAg
ICAgICAgICAgIGF1dG8gaGFsZkxlYWRpbmcgPSBoYWxmTGVhZGluZ01ldHJpY3MoZm9udE1ldHJp
Y3MsIHN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKLSAgICAgICAgICAgIC8vIEJvdGggaGFs
ZmxlYWRpbmcgYXNjZW50IGFuZCBkZXNjZW50IGNvdWxkIGJlIG5lZ2F0aXZlICh0YWxsIGZvbnQg
dnMuIHNtYWxsIGxpbmUtaGVpZ2h0IHZhbHVlKQotICAgICAgICAgICAgaWYgKGhhbGZMZWFkaW5n
LmRlc2NlbnQoKSA+IDApCi0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldERlc2NlbnRJZkdy
ZWF0ZXIoaGFsZkxlYWRpbmcuZGVzY2VudCgpKTsKLSAgICAgICAgICAgIGlmIChoYWxmTGVhZGlu
Zy5hc2NlbnQoKSA+IDApCi0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2VudElmR3Jl
YXRlcihoYWxmTGVhZGluZy5hc2NlbnQoKSk7Ci0gICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9n
aWNhbEhlaWdodElmR3JlYXRlcih1c2VkQmFzZWxpbmUuaGVpZ2h0KCkpOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKGZvbnRN
ZXRyaWNzLmhlaWdodCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgcnVuLnNl
dExvZ2ljYWxIZWlnaHQocnVuQ29udGVudEhlaWdodChydW4pKTsKIAotICAgIGlmIChydW4uaXND
b250YWluZXJFbmQoKSkgewotICAgICAgICAvLyBUaGUgbGluZSdzIGJhc2VsaW5lIGFuZCBoZWln
aHQgaGF2ZSBhbHJlYWR5IGJlZW4gYWRqdXN0ZWQgYXQgQ29udGFpbmVyU3RhcnQuCi0gICAgICAg
IHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChydW4uaXNUZXh0KCkgfHwgcnVuLmlzTGluZUJy
ZWFrKCkpIHsKKyAgICAgICAgICAgIC8vIEZvciB0ZXh0IGNvbnRlbnQgd2Ugc2V0IHRoZSBiYXNl
bGluZSBlaXRoZXIgdGhyb3VnaCB0aGUgaW5pdGlhbCBzdHJ1dCAoc2V0IGJ5IHRoZSBmb3JtYXR0
aW5nIGNvbnRleHQgcm9vdCkgb3IKKyAgICAgICAgICAgIC8vIHRocm91Z2ggdGhlIGlubGluZSBj
b250YWluZXIgKHN0YXJ0KS4gTm9ybWFsbHkgdGhlIHRleHQgY29udGVudCBpdHNlbGYgZG9lcyBu
b3Qgc3RyZXRjaCB0aGUgbGluZS4KKyAgICAgICAgICAgIGlmICghbV9pbml0aWFsU3RydXQpIHsK
KyAgICAgICAgICAgICAgICAvLyBXZSBhcmUgaW4gc3RhbmRhcmRzIG1vZGUgd2hlcmUgdGhlIGJh
c2VsaW5lIGFuZCBsaW5lIGhlaWdodCBhcmUgZXhwbGljdC4KKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbmxpbmVDb250YWluZXJOZXN0
aW5nTGV2ZWwpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IGFkanVzdGVkIHRo
ZSBsaW5lIGhlaWdodC9iYXNlbGluZSB0aHJvdWdoIHRoZSBwYXJlbnQgaW5saW5lIGNvbnRhaW5l
ci4gCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoaGFzU2VlbkRpcmVjdFRleHRPckxpbmVCcmVhaykgeworICAgICAgICAgICAgICAgIC8v
IGUuZyBkaXY+Zmlyc3QgdGV4dDwvZGl2PiBvciA8ZGl2PjxzcGFuPm5lc3RlZDxzcGFuPmZpcnN0
IGRpcmVjdCB0ZXh0PC9kaXY+LgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaGFzU2VlbkRpcmVjdFRleHRPckxpbmVCcmVhayA9IHRydWU7Cisg
ICAgICAgICAgICAvLyBXZSBhcmUgaW4gcXVpcmtzIG1vZGUgd2hlcmUgdGhlIGZvbnQtbWV0cmlj
cyBtaWdodCBjaGFuZ2UgdGhlIGxpbmUgbGluZSBoZWlnaHQvYmFzZWxpbmUgYW5kIHRoaXMgaXMg
dGhlIGZpcnN0IHRleHQgY29udGVudCBvbiB0aGUgbGluZQorICAgICAgICAgICAgLy8gb3V0c2lk
ZSBvZiBhbiBpbmxpbmUgY29udGFpbmVyLgorICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2Vu
dElmR3JlYXRlcihtX2luaXRpYWxTdHJ1dC0+YXNjZW50KCkpOworICAgICAgICAgICAgbV9saW5l
Qm94LnNldERlc2NlbnRJZkdyZWF0ZXIobV9pbml0aWFsU3RydXQtPmRlc2NlbnQoKSk7CisgICAg
ICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlcihtX2luaXRpYWxTdHJ1
dC0+aGVpZ2h0KCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAotICAgIGlm
IChydW4uaXNCb3goKSkgewotICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdD
b250ZXh0KCkuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsKLSAgICAgICAgYXV0byBtYXJnaW5C
b3hIZWlnaHQgPSBib3hHZW9tZXRyeS5tYXJnaW5Cb3hIZWlnaHQoKTsKKyAgICAgICAgaWYgKHJ1
bi5pc0NvbnRhaW5lclN0YXJ0KCkpIHsKKyAgICAgICAgICAgICsraW5saW5lQ29udGFpbmVyTmVz
dGluZ0xldmVsOworICAgICAgICAgICAgLy8gSW5saW5lIGNvbnRhaW5lcnMgc3RyZXRjaCB0aGUg
bGluZSBieSB0aGVpciBmb250IHNpemUuCisgICAgICAgICAgICAvLyBWZXJ0aWNhbCBtYXJnaW5z
LCBwYWRkaW5nIGFuZCBib3JkZXJzIGRvbid0IGNvbnRyaWJ1dGUgdG8gdGhlIGxpbmUgaGVpZ2h0
LgorICAgICAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBzdHlsZS5mb250TWV0cmljcygpOwor
ICAgICAgICAgICAgaWYgKHN0eWxlLnZlcnRpY2FsQWxpZ24oKSA9PSBWZXJ0aWNhbEFsaWduOjpC
YXNlbGluZSkgeworICAgICAgICAgICAgICAgIGF1dG8gaGFsZkxlYWRpbmcgPSBoYWxmTGVhZGlu
Z01ldHJpY3MoZm9udE1ldHJpY3MsIHN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKKyAgICAg
ICAgICAgICAgICAvLyBCb3RoIGhhbGZsZWFkaW5nIGFzY2VudCBhbmQgZGVzY2VudCBjb3VsZCBi
ZSBuZWdhdGl2ZSAodGFsbCBmb250IHZzLiBzbWFsbCBsaW5lLWhlaWdodCB2YWx1ZSkKKyAgICAg
ICAgICAgICAgICBpZiAoaGFsZkxlYWRpbmcuZGVzY2VudCgpID4gMCkKKyAgICAgICAgICAgICAg
ICAgICAgbV9saW5lQm94LnNldERlc2NlbnRJZkdyZWF0ZXIoaGFsZkxlYWRpbmcuZGVzY2VudCgp
KTsKKyAgICAgICAgICAgICAgICBpZiAoaGFsZkxlYWRpbmcuYXNjZW50KCkgPiAwKQorICAgICAg
ICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0QXNjZW50SWZHcmVhdGVyKGhhbGZMZWFkaW5nLmFz
Y2VudCgpKTsKKyAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3Jl
YXRlcihtX2xpbmVCb3guYmFzZWxpbmUoKS5oZWlnaHQoKSk7CisgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlcihmb250
TWV0cmljcy5oZWlnaHQoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogCi0g
ICAgICAgIHN3aXRjaCAoc3R5bGUudmVydGljYWxBbGlnbigpKSB7Ci0gICAgICAgIGNhc2UgVmVy
dGljYWxBbGlnbjo6QmFzZWxpbmU6IHsKLSAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbmxp
bmVCbG9ja0JveCgpICYmIGxheW91dEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250
ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBJbmxpbmUtYmxvY2tzIHdpdGggaW5saW5lIGNv
bnRlbnQgYWx3YXlzIGhhdmUgYmFzZWxpbmVzLgotICAgICAgICAgICAgICAgIGF1dG8mIGZvcm1h
dHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3Rh
dGUoZG93bmNhc3Q8Q29udGFpbmVyQm94PihsYXlvdXRCb3gpKTsKLSAgICAgICAgICAgICAgICAv
LyBTcGVjIG1ha2VzIHVzIGdlbmVyYXRlIGF0IGxlYXN0IG9uZSBsaW5lIC1ldmVuIGlmIGl0IGlz
IGVtcHR5LgotICAgICAgICAgICAgICAgIGF1dG8mIGxhc3RMaW5lQm94ID0gZm9ybWF0dGluZ1N0
YXRlLmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxpbmVCb3hlcy5sYXN0KCk7Ci0gICAgICAgICAg
ICAgICAgYXV0byBpbmxpbmVCbG9ja0Jhc2VsaW5lID0gbGFzdExpbmVCb3guYmFzZWxpbmUoKTsK
LSAgICAgICAgICAgICAgICBhdXRvIGJlZm9yZUhlaWdodCA9IGJveEdlb21ldHJ5Lm1hcmdpbkJl
Zm9yZSgpICsgYm94R2VvbWV0cnkuYm9yZGVyVG9wKCkgKyBib3hHZW9tZXRyeS5wYWRkaW5nVG9w
KCkudmFsdWVPcigwKTsKKyAgICAgICAgaWYgKHJ1bi5pc0NvbnRhaW5lckVuZCgpKSB7CisgICAg
ICAgICAgICAvLyBUaGUgbGluZSdzIGJhc2VsaW5lIGFuZCBoZWlnaHQgaGF2ZSBhbHJlYWR5IGJl
ZW4gYWRqdXN0ZWQgYXQgQ29udGFpbmVyU3RhcnQuCisgICAgICAgICAgICBBU1NFUlQoaW5saW5l
Q29udGFpbmVyTmVzdGluZ0xldmVsKTsKKyAgICAgICAgICAgIC0taW5saW5lQ29udGFpbmVyTmVz
dGluZ0xldmVsOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAotICAgICAgICAg
ICAgICAgIG1fbGluZUJveC5zZXRBc2NlbnRJZkdyZWF0ZXIoaW5saW5lQmxvY2tCYXNlbGluZS5h
c2NlbnQoKSk7Ci0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldERlc2NlbnRJZkdyZWF0ZXIo
aW5saW5lQmxvY2tCYXNlbGluZS5kZXNjZW50KCkpOwotICAgICAgICAgICAgICAgIG1fbGluZUJv
eC5zZXRCYXNlbGluZU9mZnNldElmR3JlYXRlcihiZWZvcmVIZWlnaHQgKyBsYXN0TGluZUJveC5i
YXNlbGluZU9mZnNldCgpKTsKLSAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhl
aWdodElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAvLyBOb24gaW5saW5lLWJsb2NrIGJveGVzIHNpdCBvbiB0aGUgYmFzZWxp
bmUgKGluY2x1ZGluZyB0aGVpciBib3R0b20gbWFyZ2luKS4KLSAgICAgICAgICAgICAgICBtX2xp
bmVCb3guc2V0QXNjZW50SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCk7Ci0gICAgICAgICAgICAg
ICAgLy8gSWdub3JlIG5lZ2F0aXZlIGRlc2NlbnQgKHllcywgbmVnYXRpdmUgZGVzY2VudCBpcyBh
IHRoaW5nKS4KLSAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3Jl
YXRlcihtYXJnaW5Cb3hIZWlnaHQgKyBzdGQ6Om1heDxJbmxpbmVMYXlvdXRVbml0PigwLCB1c2Vk
QmFzZWxpbmUuZGVzY2VudCgpKSk7CisgICAgICAgIGlmIChydW4uaXNCb3goKSkgeworICAgICAg
ICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9y
Qm94KGxheW91dEJveCk7CisgICAgICAgICAgICBhdXRvIG1hcmdpbkJveEhlaWdodCA9IGJveEdl
b21ldHJ5Lm1hcmdpbkJveEhlaWdodCgpOworCisgICAgICAgICAgICBzd2l0Y2ggKHN0eWxlLnZl
cnRpY2FsQWxpZ24oKSkgeworICAgICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCYXNlbGlu
ZTogeworICAgICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbmxpbmVCbG9ja0JveCgpICYm
IGxheW91dEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgLy8gSW5saW5lLWJsb2NrcyB3aXRoIGlubGluZSBjb250ZW50IGFsd2F5
cyBoYXZlIGJhc2VsaW5lcy4KKyAgICAgICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0
YXRlID0gbGF5b3V0U3RhdGUoKS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShkb3du
Y2FzdDxDb250YWluZXJCb3g+KGxheW91dEJveCkpOworICAgICAgICAgICAgICAgICAgICAvLyBT
cGVjIG1ha2VzIHVzIGdlbmVyYXRlIGF0IGxlYXN0IG9uZSBsaW5lIC1ldmVuIGlmIGl0IGlzIGVt
cHR5LgorICAgICAgICAgICAgICAgICAgICBhdXRvJiBsYXN0TGluZUJveCA9IGZvcm1hdHRpbmdT
dGF0ZS5kaXNwbGF5SW5saW5lQ29udGVudCgpLT5saW5lQm94ZXMubGFzdCgpOworICAgICAgICAg
ICAgICAgICAgICBhdXRvIGlubGluZUJsb2NrQmFzZWxpbmUgPSBsYXN0TGluZUJveC5iYXNlbGlu
ZSgpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGJlZm9yZUhlaWdodCA9IGJveEdlb21ldHJ5
Lm1hcmdpbkJlZm9yZSgpICsgYm94R2VvbWV0cnkuYm9yZGVyVG9wKCkgKyBib3hHZW9tZXRyeS5w
YWRkaW5nVG9wKCkudmFsdWVPcigwKTsKKworICAgICAgICAgICAgICAgICAgICBtX2xpbmVCb3gu
c2V0QXNjZW50SWZHcmVhdGVyKGlubGluZUJsb2NrQmFzZWxpbmUuYXNjZW50KCkpOworICAgICAg
ICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0RGVzY2VudElmR3JlYXRlcihpbmxpbmVCbG9ja0Jh
c2VsaW5lLmRlc2NlbnQoKSk7CisgICAgICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRCYXNl
bGluZU9mZnNldElmR3JlYXRlcihiZWZvcmVIZWlnaHQgKyBsYXN0TGluZUJveC5iYXNlbGluZU9m
ZnNldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJ
ZkdyZWF0ZXIobWFyZ2luQm94SGVpZ2h0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAvLyBOb24gaW5saW5lLWJsb2NrIGJveGVzIHNpdCBvbiB0aGUgYmFz
ZWxpbmUgKGluY2x1ZGluZyB0aGVpciBib3R0b20gbWFyZ2luKS4KKyAgICAgICAgICAgICAgICAg
ICAgbV9saW5lQm94LnNldEFzY2VudElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQpOworICAgICAg
ICAgICAgICAgICAgICAvLyBJZ25vcmUgbmVnYXRpdmUgZGVzY2VudCAoeWVzLCBuZWdhdGl2ZSBk
ZXNjZW50IGlzIGEgdGhpbmcpLgorICAgICAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9n
aWNhbEhlaWdodElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQgKyBzdGQ6Om1heDxJbmxpbmVMYXlv
dXRVbml0PigwLCBtX2xpbmVCb3guYmFzZWxpbmUoKS5kZXNjZW50KCkpKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlRvcDoKLSAg
ICAgICAgICAgIC8vIFRvcCBhbGlnbiBjb250ZW50IG5ldmVyIGNoYW5nZXMgdGhlIGJhc2VsaW5l
LCBpdCBvbmx5IHB1c2hlcyB0aGUgYm90dG9tIG9mIHRoZSBsaW5lIGZ1cnRoZXIgZG93bi4KLSAg
ICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKG1hcmdpbkJveEhl
aWdodCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpC
b3R0b206IHsKLSAgICAgICAgICAgIC8vIEJvdHRvbSBhbGlnbmVkLCB0YWxsIGNvbnRlbnQgcHVz
aGVzIHRoZSBiYXNlbGluZSBmdXJ0aGVyIGRvd24gZnJvbSB0aGUgbGluZSB0b3AuCi0gICAgICAg
ICAgICBhdXRvIGxpbmVMb2dpY2FsSGVpZ2h0ID0gbV9saW5lQm94LmxvZ2ljYWxIZWlnaHQoKTsK
LSAgICAgICAgICAgIGlmIChtYXJnaW5Cb3hIZWlnaHQgPiBsaW5lTG9naWNhbEhlaWdodCkgewor
ICAgICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpUb3A6CisgICAgICAgICAgICAgICAgLy8g
VG9wIGFsaWduIGNvbnRlbnQgbmV2ZXIgY2hhbmdlcyB0aGUgYmFzZWxpbmUsIGl0IG9ubHkgcHVz
aGVzIHRoZSBib3R0b20gb2YgdGhlIGxpbmUgZnVydGhlciBkb3duLgogICAgICAgICAgICAgICAg
IG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCk7Ci0g
ICAgICAgICAgICAgICAgbV9saW5lQm94LnNldEJhc2VsaW5lT2Zmc2V0SWZHcmVhdGVyKG1fbGlu
ZUJveC5iYXNlbGluZU9mZnNldCgpICsgKG1hcmdpbkJveEhlaWdodCAtIGxpbmVMb2dpY2FsSGVp
Z2h0KSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZlcnRpY2Fs
QWxpZ246OkJvdHRvbTogeworICAgICAgICAgICAgICAgIC8vIEJvdHRvbSBhbGlnbmVkLCB0YWxs
IGNvbnRlbnQgcHVzaGVzIHRoZSBiYXNlbGluZSBmdXJ0aGVyIGRvd24gZnJvbSB0aGUgbGluZSB0
b3AuCisgICAgICAgICAgICAgICAgYXV0byBsaW5lTG9naWNhbEhlaWdodCA9IG1fbGluZUJveC5s
b2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgaWYgKG1hcmdpbkJveEhlaWdodCA+IGxp
bmVMb2dpY2FsSGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dp
Y2FsSGVpZ2h0SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCk7CisgICAgICAgICAgICAgICAgICAg
IG1fbGluZUJveC5zZXRCYXNlbGluZU9mZnNldElmR3JlYXRlcihtX2xpbmVCb3guYmFzZWxpbmVP
ZmZzZXQoKSArIChtYXJnaW5Cb3hIZWlnaHQgLSBsaW5lTG9naWNhbEhlaWdodCkpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBB
U1NFUlRfTk9UX0lNUExFTUVOVEVEX1lFVCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVU
KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQotICAgICAgICByZXR1cm47CiAgICAgfQotICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCiBJbmxpbmVMYXlvdXRVbml0IExpbmVCdWlsZGVyOjpydW5Db250
ZW50SGVpZ2h0KGNvbnN0IFJ1biYgcnVuKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKaW5kZXgg
MGQwYmZlZTBmYjUzLi44NDk2ZWMwZjk3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaApAQCAtMTgz
LDcgKzE4Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhbGlnbkhvcml6b250YWxseShjb25zdCBI
YW5naW5nQ29udGVudCYsIElzTGFzdExpbmVXaXRoSW5saW5lQ29udGVudCk7CiAgICAgdm9pZCBh
bGlnbkNvbnRlbnRWZXJ0aWNhbGx5KCk7CiAKLSAgICB2b2lkIGFkanVzdEJhc2VsaW5lQW5kTGlu
ZUhlaWdodChjb25zdCBSdW4mLCBMaW5lQm94JiBwYXJlbnRJbmxpbmVCb3gsIGNvbnN0IElubGlu
ZUJveDo6QmFzZWxpbmUmKTsKKyAgICB2b2lkIGFkanVzdEJhc2VsaW5lQW5kTGluZUhlaWdodCgp
OwogICAgIElubGluZUxheW91dFVuaXQgcnVuQ29udGVudEhlaWdodChjb25zdCBSdW4mKSBjb25z
dDsKIAogICAgIHZvaWQganVzdGlmeVJ1bnMoSW5saW5lTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0
aCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407064</attachid>
            <date>2020-08-22 19:51:53 -0700</date>
            <delta_ts>2020-08-22 20:01:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>15686</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">Y29tbWl0IDYyZjFiMjBkYmM4MmFiY2MyNWE3NjRhMDY5YTVjNjU0NjBiNzczNTcKQXV0aG9yOiBB
bGFuIEtpbnNsZXkgPHphbGFuQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgQXVnIDIyIDE5OjQ0OjA3
IDIwMjAgLTA3MDAKCiAgICBmb29iYXIKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGY3OWRlOGM1ZjkzLi42MGEzMzdmYjBh
OWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wOC0yMiAgWmFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdW0lGQ10gTW92ZSBhbGwgbGluZSBoZWlnaHQg
YW5kIGJhc2VsaW5lIGFkanVzdG1lbnQgbG9naWMgdG8gTGluZUJ1aWxkZXI6OmFkanVzdEJhc2Vs
aW5lQW5kTGluZUhlaWdodAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE0NDc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2lubGluZS10ZXh0LW91dHNp
ZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9m
LWlubGluZS1jb250YWluZXItc2ltcGxlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA4LTIyICBFbWls
aW8gQ29ib3Mgw4FsdmFyZXogIDxlbWlsaW9AY3Jpc2FsLmlvPgogCiAgICAgICAgIEltcG9ydCBj
c3MtY29udGVudCB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbGF5b3V0Zm9y
bWF0dGluZ2NvbnRleHQvaW5saW5lLXRleHQtb3V0c2lkZS1vZi1pbmxpbmUtY29udGFpbmVyLXNp
bXBsZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29u
dGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWluZXItc2ltcGxlLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZjY4MzM5
NGFhY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRp
bmdjb250ZXh0L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRFbmFibGVkPXRy
dWUgaW50ZXJuYWw6TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQ9ZmFs
c2UgXSAtLT4KKzxzdHlsZT4KK2RpdiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cisg
ICAgd2lkdGg6IDM1MHB4OworICAgIGhlaWdodDogMjBweDsKK30KKzwvc3R5bGU+Cis8ZGl2Pjwv
ZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvaW5saW5lLXRleHQtb3V0c2lkZS1vZi1pbmxp
bmUtY29udGFpbmVyLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0
aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWluZXItc2ltcGxl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41Mjc5Mzc5ZGZl
ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdj
b250ZXh0L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkxh
eW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxlZD10cnVlIGludGVybmFsOkxheW91dEZvcm1hdHRp
bmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkPWZhbHNlIF0gLS0+Cis8c3R5bGU+Citib2R5IHsK
KyAgZm9udC1mYW1pbHk6IEFoZW07CisgIGNvbG9yOiBncmVlbjsKK30KKworZGl2IHsKKyAgZm9u
dC1zaXplOiAyMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgcG9zaXRpb246IGFi
c29sdXRlOworfQorCitzcGFuIHsKKyAgZm9udC1zaXplOiAxMHB4OworfQorPC9zdHlsZT4KKzxk
aXY+PHNwYW4+dGV4dCBpbnNpZGU8L3NwYW4+dGV4dCBvdXRzaWRlPC9kaXY+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggM2MxMGYyYTQyNWVhLi5jMzU0MWNlZDFmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMC0wOC0yMiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtMRkNdW0lGQ10gTW92ZSBhbGwgbGluZSBoZWlnaHQgYW5kIGJhc2VsaW5lIGFkanVzdG1lbnQg
bG9naWMgdG8gTGluZUJ1aWxkZXI6OmFkanVzdEJhc2VsaW5lQW5kTGluZUhlaWdodAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9sYXlv
dXRmb3JtYXR0aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWlu
ZXItc2ltcGxlLmh0bWwKKworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6
OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmFkanVzdEJh
c2VsaW5lQW5kTGluZUhlaWdodCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZUJ1aWxkZXIuaDoKKwogMjAyMC0wOC0yMiAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gYWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVp
Z2h0IHNob3VsZCB0YWtlIHRoZSBwYXJlbnQgaW5saW5lIGJveC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVy
LmNwcAppbmRleCA2YjU3ZjFkODUyODAuLjJjZmMxYTc3NTUwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWls
ZGVyLmNwcApAQCAtMTE4LDI2ICsxMTgsNyBAQCBMaW5lQnVpbGRlcjo6UnVuTGlzdCBMaW5lQnVp
bGRlcjo6Y2xvc2UoSXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50IGlzTGFzdExpbmVXaQogICAg
ICAgICByZXR1cm4gV1RGTW92ZShtX3J1bnMpOwogCiAgICAgYXV0byBoYW5naW5nQ29udGVudCA9
IGNvbGxlY3RIYW5naW5nQ29udGVudChpc0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQpOwotICAg
IHVuc2lnbmVkIGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCA9IDA7Ci0gICAgYXV0byBoYXNT
ZWVuVGV4dE9yTGluZUJyZWFrID0gZmFsc2U7Ci0gICAgZm9yIChhdXRvJiBydW4gOiBtX3J1bnMp
IHsKLSAgICAgICAgcnVuLnNldExvZ2ljYWxIZWlnaHQocnVuQ29udGVudEhlaWdodChydW4pKTsK
LSAgICAgICAgaW5saW5lQ29udGFpbmVyTmVzdGluZ0xldmVsID0gcnVuLmlzQ29udGFpbmVyU3Rh
cnQoKSA/IGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCArIDEgOiBydW4uaXNDb250YWluZXJF
bmQoKSA/IGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCAtIDEgOiBpbmxpbmVDb250YWluZXJO
ZXN0aW5nTGV2ZWw7Ci0gICAgICAgIGF1dG8gcnVuSXNUZXh0T3JMaW5lQnJlYWsgPSBydW4uaXNU
ZXh0KCkgfHwgcnVuLmlzTGluZUJyZWFrKCk7Ci0gICAgICAgIGlmIChydW5Jc1RleHRPckxpbmVC
cmVhaykgewotICAgICAgICAgICAgLy8gRm9yIHRleHQgY29udGVudCB3ZSBzZXQgdGhlIGJhc2Vs
aW5lIGVpdGhlciB0aHJvdWdoIHRoZSBpbml0aWFsIHN0cnV0IChzZXQgYnkgdGhlIGZvcm1hdHRp
bmcgY29udGV4dCByb290KSBvcgotICAgICAgICAgICAgLy8gdGhyb3VnaCB0aGUgaW5saW5lIGNv
bnRhaW5lciAoc3RhcnQpLiBOb3JtYWxseSB0aGUgdGV4dCBjb250ZW50IGl0c2VsZiBkb2VzIG5v
dCBzdHJldGNoIHRoZSBsaW5lLgotICAgICAgICAgICAgaWYgKGhhc1NlZW5UZXh0T3JMaW5lQnJl
YWspCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBoYXNTZWVuVGV4dE9y
TGluZUJyZWFrID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmICghbV9pbml0aWFsU3RydXQpCi0gICAg
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoaW5saW5lQ29udGFpbmVyTmVz
dGluZ0xldmVsKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAg
IGF1dG8mIHVzZWRCYXNlbGluZSA9IHJ1bklzVGV4dE9yTGluZUJyZWFrID8gKm1faW5pdGlhbFN0
cnV0IDogbV9saW5lQm94LmJhc2VsaW5lKCk7Ci0gICAgICAgIGFkanVzdEJhc2VsaW5lQW5kTGlu
ZUhlaWdodChydW4sIG1fbGluZUJveCwgdXNlZEJhc2VsaW5lKTsKLSAgICB9CisgICAgYWRqdXN0
QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KCk7CiAgICAgaWYgKGlzVmlzdWFsbHlFbXB0eSgpKSB7CiAg
ICAgICAgIG1fbGluZUJveC5yZXNldEJhc2VsaW5lKCk7CiAgICAgICAgIG1fbGluZUJveC5zZXRM
b2dpY2FsSGVpZ2h0KHsgfSk7CkBAIC01NjgsODUgKzU0OSwxMTEgQEAgdm9pZCBMaW5lQnVpbGRl
cjo6YXBwZW5kTGluZUJyZWFrKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0pCiAgICAgbV9y
dW5zLmFwcGVuZCh7IGRvd25jYXN0PElubGluZVNvZnRMaW5lQnJlYWtJdGVtPihpbmxpbmVJdGVt
KSwgY29udGVudExvZ2ljYWxXaWR0aCgpIH0pOwogfQogCi12b2lkIExpbmVCdWlsZGVyOjphZGp1
c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3QgUnVuJiBydW4sIElubGluZUJveCYgLypwYXJl
bnRJbmxpbmVCb3gqLywgY29uc3QgSW5saW5lQm94OjpCYXNlbGluZSYgdXNlZEJhc2VsaW5lKQor
dm9pZCBMaW5lQnVpbGRlcjo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KCkKIHsKLSAgICBp
ZiAocnVuLmlzVGV4dCgpIHx8IHJ1bi5pc0xpbmVCcmVhaygpKSB7Ci0gICAgICAgIG1fbGluZUJv
eC5zZXRBc2NlbnRJZkdyZWF0ZXIodXNlZEJhc2VsaW5lLmFzY2VudCgpKTsKLSAgICAgICAgbV9s
aW5lQm94LnNldERlc2NlbnRJZkdyZWF0ZXIodXNlZEJhc2VsaW5lLmRlc2NlbnQoKSk7Ci0gICAg
ICAgIG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKHVzZWRCYXNlbGluZS5oZWln
aHQoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgdW5zaWduZWQgaW5saW5lQ29udGFp
bmVyTmVzdGluZ0xldmVsID0gMDsKKyAgICBhdXRvIGhhc1NlZW5EaXJlY3RUZXh0T3JMaW5lQnJl
YWsgPSBmYWxzZTsKKyAgICBmb3IgKGF1dG8mIHJ1biA6IG1fcnVucykgeworICAgICAgICBhdXRv
JiBsYXlvdXRCb3ggPSBydW4ubGF5b3V0Qm94KCk7CisgICAgICAgIGF1dG8mIHN0eWxlID0gbGF5
b3V0Qm94LnN0eWxlKCk7CiAKLSAgICBhdXRvJiBsYXlvdXRCb3ggPSBydW4ubGF5b3V0Qm94KCk7
Ci0gICAgYXV0byYgc3R5bGUgPSBsYXlvdXRCb3guc3R5bGUoKTsKLSAgICBpZiAocnVuLmlzQ29u
dGFpbmVyU3RhcnQoKSkgewotICAgICAgICAvLyBJbmxpbmUgY29udGFpbmVycyBzdHJldGNoIHRo
ZSBsaW5lIGJ5IHRoZWlyIGZvbnQgc2l6ZS4KLSAgICAgICAgLy8gVmVydGljYWwgbWFyZ2lucywg
cGFkZGluZ3MgYW5kIGJvcmRlcnMgZG9uJ3QgY29udHJpYnV0ZSB0byB0aGUgbGluZSBoZWlnaHQu
Ci0gICAgICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gc3R5bGUuZm9udE1ldHJpY3MoKTsKLSAgICAg
ICAgaWYgKHN0eWxlLnZlcnRpY2FsQWxpZ24oKSA9PSBWZXJ0aWNhbEFsaWduOjpCYXNlbGluZSkg
ewotICAgICAgICAgICAgYXV0byBoYWxmTGVhZGluZyA9IGhhbGZMZWFkaW5nTWV0cmljcyhmb250
TWV0cmljcywgc3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwotICAgICAgICAgICAgLy8gQm90
aCBoYWxmbGVhZGluZyBhc2NlbnQgYW5kIGRlc2NlbnQgY291bGQgYmUgbmVnYXRpdmUgKHRhbGwg
Zm9udCB2cy4gc21hbGwgbGluZS1oZWlnaHQgdmFsdWUpCi0gICAgICAgICAgICBpZiAoaGFsZkxl
YWRpbmcuZGVzY2VudCgpID4gMCkKLSAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0RGVzY2Vu
dElmR3JlYXRlcihoYWxmTGVhZGluZy5kZXNjZW50KCkpOwotICAgICAgICAgICAgaWYgKGhhbGZM
ZWFkaW5nLmFzY2VudCgpID4gMCkKLSAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0QXNjZW50
SWZHcmVhdGVyKGhhbGZMZWFkaW5nLmFzY2VudCgpKTsKLSAgICAgICAgICAgIG1fbGluZUJveC5z
ZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKHVzZWRCYXNlbGluZS5oZWlnaHQoKSk7Ci0gICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIo
Zm9udE1ldHJpY3MuaGVpZ2h0KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBy
dW4uc2V0TG9naWNhbEhlaWdodChydW5Db250ZW50SGVpZ2h0KHJ1bikpOwogCi0gICAgaWYgKHJ1
bi5pc0NvbnRhaW5lckVuZCgpKSB7Ci0gICAgICAgIC8vIFRoZSBsaW5lJ3MgYmFzZWxpbmUgYW5k
IGhlaWdodCBoYXZlIGFscmVhZHkgYmVlbiBhZGp1c3RlZCBhdCBDb250YWluZXJTdGFydC4KLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKHJ1bi5pc1RleHQoKSB8fCBydW4uaXNM
aW5lQnJlYWsoKSkgeworICAgICAgICAgICAgLy8gRm9yIHRleHQgY29udGVudCB3ZSBzZXQgdGhl
IGJhc2VsaW5lIGVpdGhlciB0aHJvdWdoIHRoZSBpbml0aWFsIHN0cnV0IChzZXQgYnkgdGhlIGZv
cm1hdHRpbmcgY29udGV4dCByb290KSBvcgorICAgICAgICAgICAgLy8gdGhyb3VnaCB0aGUgaW5s
aW5lIGNvbnRhaW5lciAoc3RhcnQpLiBOb3JtYWxseSB0aGUgdGV4dCBjb250ZW50IGl0c2VsZiBk
b2VzIG5vdCBzdHJldGNoIHRoZSBsaW5lLgorICAgICAgICAgICAgaWYgKCFtX2luaXRpYWxTdHJ1
dCkgeworICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBpbiBzdGFuZGFyZHMgbW9kZSB3aGVyZSB0
aGUgYmFzZWxpbmUgYW5kIGxpbmUgaGVpZ2h0IGFyZSBleHBsaWN0LgorICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlubGluZUNvbnRhaW5l
ck5lc3RpbmdMZXZlbCkgeworICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgYWRqdXN0
ZWQgdGhlIGxpbmUgaGVpZ2h0L2Jhc2VsaW5lIHRocm91Z2ggdGhlIHBhcmVudCBpbmxpbmUgY29u
dGFpbmVyLiAKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmIChoYXNTZWVuRGlyZWN0VGV4dE9yTGluZUJyZWFrKSB7CisgICAgICAgICAgICAg
ICAgLy8gZS5nIGRpdj5maXJzdCB0ZXh0PC9kaXY+IG9yIDxkaXY+PHNwYW4+bmVzdGVkPHNwYW4+
Zmlyc3QgZGlyZWN0IHRleHQ8L2Rpdj4uCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBoYXNTZWVuRGlyZWN0VGV4dE9yTGluZUJyZWFrID0gdHJ1
ZTsKKyAgICAgICAgICAgIC8vIFdlIGFyZSBpbiBxdWlya3MgbW9kZSB3aGVyZSB0aGUgZm9udC1t
ZXRyaWNzIG1pZ2h0IGNoYW5nZSB0aGUgbGluZSBsaW5lIGhlaWdodC9iYXNlbGluZSBhbmQgdGhp
cyBpcyB0aGUgZmlyc3QgdGV4dCBjb250ZW50IG9uIHRoZSBsaW5lCisgICAgICAgICAgICAvLyBv
dXRzaWRlIG9mIGFuIGlubGluZSBjb250YWluZXIuCisgICAgICAgICAgICBtX2xpbmVCb3guc2V0
QXNjZW50SWZHcmVhdGVyKG1faW5pdGlhbFN0cnV0LT5hc2NlbnQoKSk7CisgICAgICAgICAgICBt
X2xpbmVCb3guc2V0RGVzY2VudElmR3JlYXRlcihtX2luaXRpYWxTdHJ1dC0+ZGVzY2VudCgpKTsK
KyAgICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKG1faW5pdGlh
bFN0cnV0LT5oZWlnaHQoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogCi0g
ICAgaWYgKHJ1bi5pc0JveCgpKSB7Ci0gICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0
dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChsYXlvdXRCb3gpOwotICAgICAgICBhdXRvIG1h
cmdpbkJveEhlaWdodCA9IGJveEdlb21ldHJ5Lm1hcmdpbkJveEhlaWdodCgpOworICAgICAgICBp
ZiAocnVuLmlzQ29udGFpbmVyU3RhcnQoKSkgeworICAgICAgICAgICAgKytpbmxpbmVDb250YWlu
ZXJOZXN0aW5nTGV2ZWw7CisgICAgICAgICAgICAvLyBJbmxpbmUgY29udGFpbmVycyBzdHJldGNo
IHRoZSBsaW5lIGJ5IHRoZWlyIGZvbnQgc2l6ZS4KKyAgICAgICAgICAgIC8vIFZlcnRpY2FsIG1h
cmdpbnMsIHBhZGRpbmcgYW5kIGJvcmRlcnMgZG9uJ3QgY29udHJpYnV0ZSB0byB0aGUgbGluZSBo
ZWlnaHQuCisgICAgICAgICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlLmZvbnRNZXRyaWNz
KCk7CisgICAgICAgICAgICBpZiAoc3R5bGUudmVydGljYWxBbGlnbigpID09IFZlcnRpY2FsQWxp
Z246OkJhc2VsaW5lKSB7CisgICAgICAgICAgICAgICAgYXV0byBoYWxmTGVhZGluZyA9IGhhbGZM
ZWFkaW5nTWV0cmljcyhmb250TWV0cmljcywgc3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwor
ICAgICAgICAgICAgICAgIC8vIEJvdGggaGFsZmxlYWRpbmcgYXNjZW50IGFuZCBkZXNjZW50IGNv
dWxkIGJlIG5lZ2F0aXZlICh0YWxsIGZvbnQgdnMuIHNtYWxsIGxpbmUtaGVpZ2h0IHZhbHVlKQor
ICAgICAgICAgICAgICAgIGlmIChoYWxmTGVhZGluZy5kZXNjZW50KCkgPiAwKQorICAgICAgICAg
ICAgICAgICAgICBtX2xpbmVCb3guc2V0RGVzY2VudElmR3JlYXRlcihoYWxmTGVhZGluZy5kZXNj
ZW50KCkpOworICAgICAgICAgICAgICAgIGlmIChoYWxmTGVhZGluZy5hc2NlbnQoKSA+IDApCisg
ICAgICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRBc2NlbnRJZkdyZWF0ZXIoaGFsZkxlYWRp
bmcuYXNjZW50KCkpOworICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0
SWZHcmVhdGVyKG1fbGluZUJveC5iYXNlbGluZSgpLmhlaWdodCgpKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVy
KGZvbnRNZXRyaWNzLmhlaWdodCgpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CiAKLSAgICAgICAgc3dpdGNoIChzdHlsZS52ZXJ0aWNhbEFsaWduKCkpIHsKLSAgICAgICAgY2Fz
ZSBWZXJ0aWNhbEFsaWduOjpCYXNlbGluZTogewotICAgICAgICAgICAgaWYgKGxheW91dEJveC5p
c0lubGluZUJsb2NrQm94KCkgJiYgbGF5b3V0Qm94LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQoKSkgewotICAgICAgICAgICAgICAgIC8vIElubGluZS1ibG9ja3Mgd2l0aCBpbmxp
bmUgY29udGVudCBhbHdheXMgaGF2ZSBiYXNlbGluZXMuCi0gICAgICAgICAgICAgICAgYXV0byYg
Zm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUoKS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRp
bmdTdGF0ZShkb3duY2FzdDxDb250YWluZXJCb3g+KGxheW91dEJveCkpOwotICAgICAgICAgICAg
ICAgIC8vIFNwZWMgbWFrZXMgdXMgZ2VuZXJhdGUgYXQgbGVhc3Qgb25lIGxpbmUgLWV2ZW4gaWYg
aXQgaXMgZW1wdHkuCi0gICAgICAgICAgICAgICAgYXV0byYgbGFzdExpbmVCb3ggPSBmb3JtYXR0
aW5nU3RhdGUuZGlzcGxheUlubGluZUNvbnRlbnQoKS0+bGluZUJveGVzLmxhc3QoKTsKLSAgICAg
ICAgICAgICAgICBhdXRvIGlubGluZUJsb2NrQmFzZWxpbmUgPSBsYXN0TGluZUJveC5iYXNlbGlu
ZSgpOwotICAgICAgICAgICAgICAgIGF1dG8gYmVmb3JlSGVpZ2h0ID0gYm94R2VvbWV0cnkubWFy
Z2luQmVmb3JlKCkgKyBib3hHZW9tZXRyeS5ib3JkZXJUb3AoKSArIGJveEdlb21ldHJ5LnBhZGRp
bmdUb3AoKS52YWx1ZU9yKDApOworICAgICAgICBpZiAocnVuLmlzQ29udGFpbmVyRW5kKCkpIHsK
KyAgICAgICAgICAgIC8vIFRoZSBsaW5lJ3MgYmFzZWxpbmUgYW5kIGhlaWdodCBoYXZlIGFscmVh
ZHkgYmVlbiBhZGp1c3RlZCBhdCBDb250YWluZXJTdGFydC4KKyAgICAgICAgICAgIEFTU0VSVChp
bmxpbmVDb250YWluZXJOZXN0aW5nTGV2ZWwpOworICAgICAgICAgICAgLS1pbmxpbmVDb250YWlu
ZXJOZXN0aW5nTGV2ZWw7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogCi0gICAg
ICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2VudElmR3JlYXRlcihpbmxpbmVCbG9ja0Jhc2Vs
aW5lLmFzY2VudCgpKTsKLSAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0RGVzY2VudElmR3Jl
YXRlcihpbmxpbmVCbG9ja0Jhc2VsaW5lLmRlc2NlbnQoKSk7Ci0gICAgICAgICAgICAgICAgbV9s
aW5lQm94LnNldEJhc2VsaW5lT2Zmc2V0SWZHcmVhdGVyKGJlZm9yZUhlaWdodCArIGxhc3RMaW5l
Qm94LmJhc2VsaW5lT2Zmc2V0KCkpOwotICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dp
Y2FsSGVpZ2h0SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCk7Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIC8vIE5vbiBpbmxpbmUtYmxvY2sgYm94ZXMgc2l0IG9uIHRoZSBi
YXNlbGluZSAoaW5jbHVkaW5nIHRoZWlyIGJvdHRvbSBtYXJnaW4pLgotICAgICAgICAgICAgICAg
IG1fbGluZUJveC5zZXRBc2NlbnRJZkdyZWF0ZXIobWFyZ2luQm94SGVpZ2h0KTsKLSAgICAgICAg
ICAgICAgICAvLyBJZ25vcmUgbmVnYXRpdmUgZGVzY2VudCAoeWVzLCBuZWdhdGl2ZSBkZXNjZW50
IGlzIGEgdGhpbmcpLgotICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0
SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCArIHN0ZDo6bWF4PElubGluZUxheW91dFVuaXQ+KDAs
IHVzZWRCYXNlbGluZS5kZXNjZW50KCkpKTsKKyAgICAgICAgaWYgKHJ1bi5pc0JveCgpKSB7Cisg
ICAgICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0
cnlGb3JCb3gobGF5b3V0Qm94KTsKKyAgICAgICAgICAgIGF1dG8gbWFyZ2luQm94SGVpZ2h0ID0g
Ym94R2VvbWV0cnkubWFyZ2luQm94SGVpZ2h0KCk7CisKKyAgICAgICAgICAgIHN3aXRjaCAoc3R5
bGUudmVydGljYWxBbGlnbigpKSB7CisgICAgICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OkJh
c2VsaW5lOiB7CisgICAgICAgICAgICAgICAgaWYgKGxheW91dEJveC5pc0lubGluZUJsb2NrQm94
KCkgJiYgbGF5b3V0Qm94LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSkgewor
ICAgICAgICAgICAgICAgICAgICAvLyBJbmxpbmUtYmxvY2tzIHdpdGggaW5saW5lIGNvbnRlbnQg
YWx3YXlzIGhhdmUgYmFzZWxpbmVzLgorICAgICAgICAgICAgICAgICAgICBhdXRvJiBmb3JtYXR0
aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRl
KGRvd25jYXN0PENvbnRhaW5lckJveD4obGF5b3V0Qm94KSk7CisgICAgICAgICAgICAgICAgICAg
IC8vIFNwZWMgbWFrZXMgdXMgZ2VuZXJhdGUgYXQgbGVhc3Qgb25lIGxpbmUgLWV2ZW4gaWYgaXQg
aXMgZW1wdHkuCisgICAgICAgICAgICAgICAgICAgIGF1dG8mIGxhc3RMaW5lQm94ID0gZm9ybWF0
dGluZ1N0YXRlLmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxpbmVCb3hlcy5sYXN0KCk7CisgICAg
ICAgICAgICAgICAgICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IGxhc3RMaW5lQm94LmJh
c2VsaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gYmVmb3JlSGVpZ2h0ID0gYm94R2Vv
bWV0cnkubWFyZ2luQmVmb3JlKCkgKyBib3hHZW9tZXRyeS5ib3JkZXJUb3AoKSArIGJveEdlb21l
dHJ5LnBhZGRpbmdUb3AoKS52YWx1ZU9yKDApOworCisgICAgICAgICAgICAgICAgICAgIG1fbGlu
ZUJveC5zZXRBc2NlbnRJZkdyZWF0ZXIoaW5saW5lQmxvY2tCYXNlbGluZS5hc2NlbnQoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXREZXNjZW50SWZHcmVhdGVyKGlubGluZUJs
b2NrQmFzZWxpbmUuZGVzY2VudCgpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9saW5lQm94LnNl
dEJhc2VsaW5lT2Zmc2V0SWZHcmVhdGVyKGJlZm9yZUhlaWdodCArIGxhc3RMaW5lQm94LmJhc2Vs
aW5lT2Zmc2V0KCkpOworICAgICAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhl
aWdodElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIE5vbiBpbmxpbmUtYmxvY2sgYm94ZXMgc2l0IG9uIHRo
ZSBiYXNlbGluZSAoaW5jbHVkaW5nIHRoZWlyIGJvdHRvbSBtYXJnaW4pLgorICAgICAgICAgICAg
ICAgICAgICBtX2xpbmVCb3guc2V0QXNjZW50SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCk7Cisg
ICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBuZWdhdGl2ZSBkZXNjZW50ICh5ZXMsIG5lZ2F0
aXZlIGRlc2NlbnQgaXMgYSB0aGluZykuCisgICAgICAgICAgICAgICAgICAgIG1fbGluZUJveC5z
ZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCArIHN0ZDo6bWF4PElubGlu
ZUxheW91dFVuaXQ+KDAsIG1fbGluZUJveC5iYXNlbGluZSgpLmRlc2NlbnQoKSkpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6VG9w
OgotICAgICAgICAgICAgLy8gVG9wIGFsaWduIGNvbnRlbnQgbmV2ZXIgY2hhbmdlcyB0aGUgYmFz
ZWxpbmUsIGl0IG9ubHkgcHVzaGVzIHRoZSBib3R0b20gb2YgdGhlIGxpbmUgZnVydGhlciBkb3du
LgotICAgICAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIobWFyZ2lu
Qm94SGVpZ2h0KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFZlcnRpY2FsQWxp
Z246OkJvdHRvbTogewotICAgICAgICAgICAgLy8gQm90dG9tIGFsaWduZWQsIHRhbGwgY29udGVu
dCBwdXNoZXMgdGhlIGJhc2VsaW5lIGZ1cnRoZXIgZG93biBmcm9tIHRoZSBsaW5lIHRvcC4KLSAg
ICAgICAgICAgIGF1dG8gbGluZUxvZ2ljYWxIZWlnaHQgPSBtX2xpbmVCb3gubG9naWNhbEhlaWdo
dCgpOwotICAgICAgICAgICAgaWYgKG1hcmdpbkJveEhlaWdodCA+IGxpbmVMb2dpY2FsSGVpZ2h0
KSB7CisgICAgICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlRvcDoKKyAgICAgICAgICAgICAg
ICAvLyBUb3AgYWxpZ24gY29udGVudCBuZXZlciBjaGFuZ2VzIHRoZSBiYXNlbGluZSwgaXQgb25s
eSBwdXNoZXMgdGhlIGJvdHRvbSBvZiB0aGUgbGluZSBmdXJ0aGVyIGRvd24uCiAgICAgICAgICAg
ICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIobWFyZ2luQm94SGVpZ2h0
KTsKLSAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0QmFzZWxpbmVPZmZzZXRJZkdyZWF0ZXIo
bV9saW5lQm94LmJhc2VsaW5lT2Zmc2V0KCkgKyAobWFyZ2luQm94SGVpZ2h0IC0gbGluZUxvZ2lj
YWxIZWlnaHQpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVmVy
dGljYWxBbGlnbjo6Qm90dG9tOiB7CisgICAgICAgICAgICAgICAgLy8gQm90dG9tIGFsaWduZWQs
IHRhbGwgY29udGVudCBwdXNoZXMgdGhlIGJhc2VsaW5lIGZ1cnRoZXIgZG93biBmcm9tIHRoZSBs
aW5lIHRvcC4KKyAgICAgICAgICAgICAgICBhdXRvIGxpbmVMb2dpY2FsSGVpZ2h0ID0gbV9saW5l
Qm94LmxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAgICAgICBpZiAobWFyZ2luQm94SGVpZ2h0
ID4gbGluZUxvZ2ljYWxIZWlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9saW5lQm94LnNl
dExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIobWFyZ2luQm94SGVpZ2h0KTsKKyAgICAgICAgICAgICAg
ICAgICAgbV9saW5lQm94LnNldEJhc2VsaW5lT2Zmc2V0SWZHcmVhdGVyKG1fbGluZUJveC5iYXNl
bGluZU9mZnNldCgpICsgKG1hcmdpbkJveEhlaWdodCAtIGxpbmVMb2dpY2FsSGVpZ2h0KSk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9JTVBMRU1FTlRF
RF9ZRVQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIElubGluZUxheW91dFVuaXQgTGluZUJ1aWxkZXI6OnJ1
bkNvbnRlbnRIZWlnaHQoY29uc3QgUnVuJiBydW4pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaApp
bmRleCAwZDBiZmVlMGZiNTMuLjg0OTZlYzBmOTc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5oCkBA
IC0xODMsNyArMTgzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFsaWduSG9yaXpvbnRhbGx5KGNv
bnN0IEhhbmdpbmdDb250ZW50JiwgSXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50KTsKICAgICB2
b2lkIGFsaWduQ29udGVudFZlcnRpY2FsbHkoKTsKIAotICAgIHZvaWQgYWRqdXN0QmFzZWxpbmVB
bmRMaW5lSGVpZ2h0KGNvbnN0IFJ1biYsIElubGluZUJveCYgcGFyZW50SW5saW5lQm94LCBjb25z
dCBJbmxpbmVCb3g6OkJhc2VsaW5lJik7CisgICAgdm9pZCBhZGp1c3RCYXNlbGluZUFuZExpbmVI
ZWlnaHQoKTsKICAgICBJbmxpbmVMYXlvdXRVbml0IHJ1bkNvbnRlbnRIZWlnaHQoY29uc3QgUnVu
JikgY29uc3Q7CiAKICAgICB2b2lkIGp1c3RpZnlSdW5zKElubGluZUxheW91dFVuaXQgYXZhaWxh
YmxlV2lkdGgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407065</attachid>
            <date>2020-08-22 20:01:16 -0700</date>
            <delta_ts>2020-08-23 05:45:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch.txt</filename>
            <type>text/plain</type>
            <size>15677</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">Y29tbWl0IDYyZjFiMjBkYmM4MmFiY2MyNWE3NjRhMDY5YTVjNjU0NjBiNzczNTcKQXV0aG9yOiBB
bGFuIEtpbnNsZXkgPHphbGFuQGFwcGxlLmNvbT4KRGF0ZTogICBTYXQgQXVnIDIyIDE5OjQ0OjA3
IDIwMjAgLTA3MDAKCiAgICBmb29iYXIKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGY3OWRlOGM1ZjkzLi42MGEzMzdmYjBh
OWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wOC0yMiAgWmFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdW0lGQ10gTW92ZSBhbGwgbGluZSBoZWlnaHQg
YW5kIGJhc2VsaW5lIGFkanVzdG1lbnQgbG9naWMgdG8gTGluZUJ1aWxkZXI6OmFkanVzdEJhc2Vs
aW5lQW5kTGluZUhlaWdodAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE0NDc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2lubGluZS10ZXh0LW91dHNp
ZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9m
LWlubGluZS1jb250YWluZXItc2ltcGxlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA4LTIyICBFbWls
aW8gQ29ib3Mgw4FsdmFyZXogIDxlbWlsaW9AY3Jpc2FsLmlvPgogCiAgICAgICAgIEltcG9ydCBj
c3MtY29udGVudCB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbGF5b3V0Zm9y
bWF0dGluZ2NvbnRleHQvaW5saW5lLXRleHQtb3V0c2lkZS1vZi1pbmxpbmUtY29udGFpbmVyLXNp
bXBsZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29u
dGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWluZXItc2ltcGxlLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZjY4MzM5
NGFhY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRp
bmdjb250ZXh0L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRFbmFibGVkPXRy
dWUgaW50ZXJuYWw6TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQ9ZmFs
c2UgXSAtLT4KKzxzdHlsZT4KK2RpdiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cisg
ICAgd2lkdGg6IDM1MHB4OworICAgIGhlaWdodDogMjBweDsKK30KKzwvc3R5bGU+Cis8ZGl2Pjwv
ZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvaW5saW5lLXRleHQtb3V0c2lkZS1vZi1pbmxp
bmUtY29udGFpbmVyLXNpbXBsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0
aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWluZXItc2ltcGxl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41Mjc5Mzc5ZGZl
ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdj
b250ZXh0L2lubGluZS10ZXh0LW91dHNpZGUtb2YtaW5saW5lLWNvbnRhaW5lci1zaW1wbGUuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkxh
eW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxlZD10cnVlIGludGVybmFsOkxheW91dEZvcm1hdHRp
bmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkPWZhbHNlIF0gLS0+Cis8c3R5bGU+Citib2R5IHsK
KyAgZm9udC1mYW1pbHk6IEFoZW07CisgIGNvbG9yOiBncmVlbjsKK30KKworZGl2IHsKKyAgZm9u
dC1zaXplOiAyMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgcG9zaXRpb246IGFi
c29sdXRlOworfQorCitzcGFuIHsKKyAgZm9udC1zaXplOiAxMHB4OworfQorPC9zdHlsZT4KKzxk
aXY+PHNwYW4+dGV4dCBpbnNpZGU8L3NwYW4+dGV4dCBvdXRzaWRlPC9kaXY+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggM2MxMGYyYTQyNWVhLi5jMzU0MWNlZDFmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMC0wOC0yMiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtMRkNdW0lGQ10gTW92ZSBhbGwgbGluZSBoZWlnaHQgYW5kIGJhc2VsaW5lIGFkanVzdG1lbnQg
bG9naWMgdG8gTGluZUJ1aWxkZXI6OmFkanVzdEJhc2VsaW5lQW5kTGluZUhlaWdodAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDc0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9sYXlv
dXRmb3JtYXR0aW5nY29udGV4dC9pbmxpbmUtdGV4dC1vdXRzaWRlLW9mLWlubGluZS1jb250YWlu
ZXItc2ltcGxlLmh0bWwKKworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6
OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmFkanVzdEJh
c2VsaW5lQW5kTGluZUhlaWdodCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZUJ1aWxkZXIuaDoKKwogMjAyMC0wOC0yMiAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gYWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVp
Z2h0IHNob3VsZCB0YWtlIHRoZSBwYXJlbnQgaW5saW5lIGJveC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVy
LmNwcAppbmRleCA2YjU3ZjFkODUyODAuLjJjZmMxYTc3NTUwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWls
ZGVyLmNwcApAQCAtMTE4LDI2ICsxMTgsNyBAQCBMaW5lQnVpbGRlcjo6UnVuTGlzdCBMaW5lQnVp
bGRlcjo6Y2xvc2UoSXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50IGlzTGFzdExpbmVXaQogICAg
ICAgICByZXR1cm4gV1RGTW92ZShtX3J1bnMpOwogCiAgICAgYXV0byBoYW5naW5nQ29udGVudCA9
IGNvbGxlY3RIYW5naW5nQ29udGVudChpc0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQpOwotICAg
IHVuc2lnbmVkIGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCA9IDA7Ci0gICAgYXV0byBoYXNT
ZWVuVGV4dE9yTGluZUJyZWFrID0gZmFsc2U7Ci0gICAgZm9yIChhdXRvJiBydW4gOiBtX3J1bnMp
IHsKLSAgICAgICAgcnVuLnNldExvZ2ljYWxIZWlnaHQocnVuQ29udGVudEhlaWdodChydW4pKTsK
LSAgICAgICAgaW5saW5lQ29udGFpbmVyTmVzdGluZ0xldmVsID0gcnVuLmlzQ29udGFpbmVyU3Rh
cnQoKSA/IGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCArIDEgOiBydW4uaXNDb250YWluZXJF
bmQoKSA/IGlubGluZUNvbnRhaW5lck5lc3RpbmdMZXZlbCAtIDEgOiBpbmxpbmVDb250YWluZXJO
ZXN0aW5nTGV2ZWw7Ci0gICAgICAgIGF1dG8gcnVuSXNUZXh0T3JMaW5lQnJlYWsgPSBydW4uaXNU
ZXh0KCkgfHwgcnVuLmlzTGluZUJyZWFrKCk7Ci0gICAgICAgIGlmIChydW5Jc1RleHRPckxpbmVC
cmVhaykgewotICAgICAgICAgICAgLy8gRm9yIHRleHQgY29udGVudCB3ZSBzZXQgdGhlIGJhc2Vs
aW5lIGVpdGhlciB0aHJvdWdoIHRoZSBpbml0aWFsIHN0cnV0IChzZXQgYnkgdGhlIGZvcm1hdHRp
bmcgY29udGV4dCByb290KSBvcgotICAgICAgICAgICAgLy8gdGhyb3VnaCB0aGUgaW5saW5lIGNv
bnRhaW5lciAoc3RhcnQpLiBOb3JtYWxseSB0aGUgdGV4dCBjb250ZW50IGl0c2VsZiBkb2VzIG5v
dCBzdHJldGNoIHRoZSBsaW5lLgotICAgICAgICAgICAgaWYgKGhhc1NlZW5UZXh0T3JMaW5lQnJl
YWspCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBoYXNTZWVuVGV4dE9y
TGluZUJyZWFrID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmICghbV9pbml0aWFsU3RydXQpCi0gICAg
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoaW5saW5lQ29udGFpbmVyTmVz
dGluZ0xldmVsKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAg
IGF1dG8mIHVzZWRCYXNlbGluZSA9IHJ1bklzVGV4dE9yTGluZUJyZWFrID8gKm1faW5pdGlhbFN0
cnV0IDogbV9saW5lQm94LmJhc2VsaW5lKCk7Ci0gICAgICAgIGFkanVzdEJhc2VsaW5lQW5kTGlu
ZUhlaWdodChydW4sIG1fbGluZUJveCwgdXNlZEJhc2VsaW5lKTsKLSAgICB9CisgICAgYWRqdXN0
QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KCk7CiAgICAgaWYgKGlzVmlzdWFsbHlFbXB0eSgpKSB7CiAg
ICAgICAgIG1fbGluZUJveC5yZXNldEJhc2VsaW5lKCk7CiAgICAgICAgIG1fbGluZUJveC5zZXRM
b2dpY2FsSGVpZ2h0KHsgfSk7CkBAIC01NjgsODUgKzU0OSwxMTEgQEAgdm9pZCBMaW5lQnVpbGRl
cjo6YXBwZW5kTGluZUJyZWFrKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0pCiAgICAgbV9y
dW5zLmFwcGVuZCh7IGRvd25jYXN0PElubGluZVNvZnRMaW5lQnJlYWtJdGVtPihpbmxpbmVJdGVt
KSwgY29udGVudExvZ2ljYWxXaWR0aCgpIH0pOwogfQogCi12b2lkIExpbmVCdWlsZGVyOjphZGp1
c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3QgUnVuJiBydW4sIExpbmVCb3gmIC8qcGFyZW50
SW5saW5lQm94Ki8sIGNvbnN0IExpbmVCb3g6OkJhc2VsaW5lJiB1c2VkQmFzZWxpbmUpCit2b2lk
IExpbmVCdWlsZGVyOjphZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoKQogewotICAgIGlmIChy
dW4uaXNUZXh0KCkgfHwgcnVuLmlzTGluZUJyZWFrKCkpIHsKLSAgICAgICAgbV9saW5lQm94LnNl
dEFzY2VudElmR3JlYXRlcih1c2VkQmFzZWxpbmUuYXNjZW50KCkpOwotICAgICAgICBtX2xpbmVC
b3guc2V0RGVzY2VudElmR3JlYXRlcih1c2VkQmFzZWxpbmUuZGVzY2VudCgpKTsKLSAgICAgICAg
bV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJZkdyZWF0ZXIodXNlZEJhc2VsaW5lLmhlaWdodCgp
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICB1bnNpZ25lZCBpbmxpbmVDb250YWluZXJO
ZXN0aW5nTGV2ZWwgPSAwOworICAgIGF1dG8gaGFzU2VlbkRpcmVjdFRleHRPckxpbmVCcmVhayA9
IGZhbHNlOworICAgIGZvciAoYXV0byYgcnVuIDogbV9ydW5zKSB7CisgICAgICAgIGF1dG8mIGxh
eW91dEJveCA9IHJ1bi5sYXlvdXRCb3goKTsKKyAgICAgICAgYXV0byYgc3R5bGUgPSBsYXlvdXRC
b3guc3R5bGUoKTsKIAotICAgIGF1dG8mIGxheW91dEJveCA9IHJ1bi5sYXlvdXRCb3goKTsKLSAg
ICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwotICAgIGlmIChydW4uaXNDb250YWlu
ZXJTdGFydCgpKSB7Ci0gICAgICAgIC8vIElubGluZSBjb250YWluZXJzIHN0cmV0Y2ggdGhlIGxp
bmUgYnkgdGhlaXIgZm9udCBzaXplLgotICAgICAgICAvLyBWZXJ0aWNhbCBtYXJnaW5zLCBwYWRk
aW5nIGFuZCBib3JkZXJzIGRvbid0IGNvbnRyaWJ1dGUgdG8gdGhlIGxpbmUgaGVpZ2h0LgotICAg
ICAgICBhdXRvJiBmb250TWV0cmljcyA9IHN0eWxlLmZvbnRNZXRyaWNzKCk7Ci0gICAgICAgIGlm
IChzdHlsZS52ZXJ0aWNhbEFsaWduKCkgPT0gVmVydGljYWxBbGlnbjo6QmFzZWxpbmUpIHsKLSAg
ICAgICAgICAgIGF1dG8gaGFsZkxlYWRpbmcgPSBoYWxmTGVhZGluZ01ldHJpY3MoZm9udE1ldHJp
Y3MsIHN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKLSAgICAgICAgICAgIC8vIEJvdGggaGFs
ZmxlYWRpbmcgYXNjZW50IGFuZCBkZXNjZW50IGNvdWxkIGJlIG5lZ2F0aXZlICh0YWxsIGZvbnQg
dnMuIHNtYWxsIGxpbmUtaGVpZ2h0IHZhbHVlKQotICAgICAgICAgICAgaWYgKGhhbGZMZWFkaW5n
LmRlc2NlbnQoKSA+IDApCi0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldERlc2NlbnRJZkdy
ZWF0ZXIoaGFsZkxlYWRpbmcuZGVzY2VudCgpKTsKLSAgICAgICAgICAgIGlmIChoYWxmTGVhZGlu
Zy5hc2NlbnQoKSA+IDApCi0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2VudElmR3Jl
YXRlcihoYWxmTGVhZGluZy5hc2NlbnQoKSk7Ci0gICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9n
aWNhbEhlaWdodElmR3JlYXRlcih1c2VkQmFzZWxpbmUuaGVpZ2h0KCkpOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKGZvbnRN
ZXRyaWNzLmhlaWdodCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgcnVuLnNl
dExvZ2ljYWxIZWlnaHQocnVuQ29udGVudEhlaWdodChydW4pKTsKIAotICAgIGlmIChydW4uaXND
b250YWluZXJFbmQoKSkgewotICAgICAgICAvLyBUaGUgbGluZSdzIGJhc2VsaW5lIGFuZCBoZWln
aHQgaGF2ZSBhbHJlYWR5IGJlZW4gYWRqdXN0ZWQgYXQgQ29udGFpbmVyU3RhcnQuCi0gICAgICAg
IHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChydW4uaXNUZXh0KCkgfHwgcnVuLmlzTGluZUJy
ZWFrKCkpIHsKKyAgICAgICAgICAgIC8vIEZvciB0ZXh0IGNvbnRlbnQgd2Ugc2V0IHRoZSBiYXNl
bGluZSBlaXRoZXIgdGhyb3VnaCB0aGUgaW5pdGlhbCBzdHJ1dCAoc2V0IGJ5IHRoZSBmb3JtYXR0
aW5nIGNvbnRleHQgcm9vdCkgb3IKKyAgICAgICAgICAgIC8vIHRocm91Z2ggdGhlIGlubGluZSBj
b250YWluZXIgKHN0YXJ0KS4gTm9ybWFsbHkgdGhlIHRleHQgY29udGVudCBpdHNlbGYgZG9lcyBu
b3Qgc3RyZXRjaCB0aGUgbGluZS4KKyAgICAgICAgICAgIGlmICghbV9pbml0aWFsU3RydXQpIHsK
KyAgICAgICAgICAgICAgICAvLyBXZSBhcmUgaW4gc3RhbmRhcmRzIG1vZGUgd2hlcmUgdGhlIGJh
c2VsaW5lIGFuZCBsaW5lIGhlaWdodCBhcmUgZXhwbGljdC4KKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbmxpbmVDb250YWluZXJOZXN0
aW5nTGV2ZWwpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IGFkanVzdGVkIHRo
ZSBsaW5lIGhlaWdodC9iYXNlbGluZSB0aHJvdWdoIHRoZSBwYXJlbnQgaW5saW5lIGNvbnRhaW5l
ci4gCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoaGFzU2VlbkRpcmVjdFRleHRPckxpbmVCcmVhaykgeworICAgICAgICAgICAgICAgIC8v
IGUuZyBkaXY+Zmlyc3QgdGV4dDwvZGl2PiBvciA8ZGl2PjxzcGFuPm5lc3RlZDxzcGFuPmZpcnN0
IGRpcmVjdCB0ZXh0PC9kaXY+LgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaGFzU2VlbkRpcmVjdFRleHRPckxpbmVCcmVhayA9IHRydWU7Cisg
ICAgICAgICAgICAvLyBXZSBhcmUgaW4gcXVpcmtzIG1vZGUgd2hlcmUgdGhlIGZvbnQtbWV0cmlj
cyBtaWdodCBjaGFuZ2UgdGhlIGxpbmUgbGluZSBoZWlnaHQvYmFzZWxpbmUgYW5kIHRoaXMgaXMg
dGhlIGZpcnN0IHRleHQgY29udGVudCBvbiB0aGUgbGluZQorICAgICAgICAgICAgLy8gb3V0c2lk
ZSBvZiBhbiBpbmxpbmUgY29udGFpbmVyLgorICAgICAgICAgICAgbV9saW5lQm94LnNldEFzY2Vu
dElmR3JlYXRlcihtX2luaXRpYWxTdHJ1dC0+YXNjZW50KCkpOworICAgICAgICAgICAgbV9saW5l
Qm94LnNldERlc2NlbnRJZkdyZWF0ZXIobV9pbml0aWFsU3RydXQtPmRlc2NlbnQoKSk7CisgICAg
ICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlcihtX2luaXRpYWxTdHJ1
dC0+aGVpZ2h0KCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAotICAgIGlm
IChydW4uaXNCb3goKSkgewotICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdD
b250ZXh0KCkuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsKLSAgICAgICAgYXV0byBtYXJnaW5C
b3hIZWlnaHQgPSBib3hHZW9tZXRyeS5tYXJnaW5Cb3hIZWlnaHQoKTsKKyAgICAgICAgaWYgKHJ1
bi5pc0NvbnRhaW5lclN0YXJ0KCkpIHsKKyAgICAgICAgICAgICsraW5saW5lQ29udGFpbmVyTmVz
dGluZ0xldmVsOworICAgICAgICAgICAgLy8gSW5saW5lIGNvbnRhaW5lcnMgc3RyZXRjaCB0aGUg
bGluZSBieSB0aGVpciBmb250IHNpemUuCisgICAgICAgICAgICAvLyBWZXJ0aWNhbCBtYXJnaW5z
LCBwYWRkaW5nIGFuZCBib3JkZXJzIGRvbid0IGNvbnRyaWJ1dGUgdG8gdGhlIGxpbmUgaGVpZ2h0
LgorICAgICAgICAgICAgYXV0byYgZm9udE1ldHJpY3MgPSBzdHlsZS5mb250TWV0cmljcygpOwor
ICAgICAgICAgICAgaWYgKHN0eWxlLnZlcnRpY2FsQWxpZ24oKSA9PSBWZXJ0aWNhbEFsaWduOjpC
YXNlbGluZSkgeworICAgICAgICAgICAgICAgIGF1dG8gaGFsZkxlYWRpbmcgPSBoYWxmTGVhZGlu
Z01ldHJpY3MoZm9udE1ldHJpY3MsIHN0eWxlLmNvbXB1dGVkTGluZUhlaWdodCgpKTsKKyAgICAg
ICAgICAgICAgICAvLyBCb3RoIGhhbGZsZWFkaW5nIGFzY2VudCBhbmQgZGVzY2VudCBjb3VsZCBi
ZSBuZWdhdGl2ZSAodGFsbCBmb250IHZzLiBzbWFsbCBsaW5lLWhlaWdodCB2YWx1ZSkKKyAgICAg
ICAgICAgICAgICBpZiAoaGFsZkxlYWRpbmcuZGVzY2VudCgpID4gMCkKKyAgICAgICAgICAgICAg
ICAgICAgbV9saW5lQm94LnNldERlc2NlbnRJZkdyZWF0ZXIoaGFsZkxlYWRpbmcuZGVzY2VudCgp
KTsKKyAgICAgICAgICAgICAgICBpZiAoaGFsZkxlYWRpbmcuYXNjZW50KCkgPiAwKQorICAgICAg
ICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0QXNjZW50SWZHcmVhdGVyKGhhbGZMZWFkaW5nLmFz
Y2VudCgpKTsKKyAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3Jl
YXRlcihtX2xpbmVCb3guYmFzZWxpbmUoKS5oZWlnaHQoKSk7CisgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3JlYXRlcihmb250
TWV0cmljcy5oZWlnaHQoKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogCi0g
ICAgICAgIHN3aXRjaCAoc3R5bGUudmVydGljYWxBbGlnbigpKSB7Ci0gICAgICAgIGNhc2UgVmVy
dGljYWxBbGlnbjo6QmFzZWxpbmU6IHsKLSAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbmxp
bmVCbG9ja0JveCgpICYmIGxheW91dEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250
ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBJbmxpbmUtYmxvY2tzIHdpdGggaW5saW5lIGNv
bnRlbnQgYWx3YXlzIGhhdmUgYmFzZWxpbmVzLgotICAgICAgICAgICAgICAgIGF1dG8mIGZvcm1h
dHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3Rh
dGUoZG93bmNhc3Q8Q29udGFpbmVyQm94PihsYXlvdXRCb3gpKTsKLSAgICAgICAgICAgICAgICAv
LyBTcGVjIG1ha2VzIHVzIGdlbmVyYXRlIGF0IGxlYXN0IG9uZSBsaW5lIC1ldmVuIGlmIGl0IGlz
IGVtcHR5LgotICAgICAgICAgICAgICAgIGF1dG8mIGxhc3RMaW5lQm94ID0gZm9ybWF0dGluZ1N0
YXRlLmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxpbmVCb3hlcy5sYXN0KCk7Ci0gICAgICAgICAg
ICAgICAgYXV0byBpbmxpbmVCbG9ja0Jhc2VsaW5lID0gbGFzdExpbmVCb3guYmFzZWxpbmUoKTsK
LSAgICAgICAgICAgICAgICBhdXRvIGJlZm9yZUhlaWdodCA9IGJveEdlb21ldHJ5Lm1hcmdpbkJl
Zm9yZSgpICsgYm94R2VvbWV0cnkuYm9yZGVyVG9wKCkgKyBib3hHZW9tZXRyeS5wYWRkaW5nVG9w
KCkudmFsdWVPcigwKTsKKyAgICAgICAgaWYgKHJ1bi5pc0NvbnRhaW5lckVuZCgpKSB7CisgICAg
ICAgICAgICAvLyBUaGUgbGluZSdzIGJhc2VsaW5lIGFuZCBoZWlnaHQgaGF2ZSBhbHJlYWR5IGJl
ZW4gYWRqdXN0ZWQgYXQgQ29udGFpbmVyU3RhcnQuCisgICAgICAgICAgICBBU1NFUlQoaW5saW5l
Q29udGFpbmVyTmVzdGluZ0xldmVsKTsKKyAgICAgICAgICAgIC0taW5saW5lQ29udGFpbmVyTmVz
dGluZ0xldmVsOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KIAotICAgICAgICAg
ICAgICAgIG1fbGluZUJveC5zZXRBc2NlbnRJZkdyZWF0ZXIoaW5saW5lQmxvY2tCYXNlbGluZS5h
c2NlbnQoKSk7Ci0gICAgICAgICAgICAgICAgbV9saW5lQm94LnNldERlc2NlbnRJZkdyZWF0ZXIo
aW5saW5lQmxvY2tCYXNlbGluZS5kZXNjZW50KCkpOwotICAgICAgICAgICAgICAgIG1fbGluZUJv
eC5zZXRCYXNlbGluZU9mZnNldElmR3JlYXRlcihiZWZvcmVIZWlnaHQgKyBsYXN0TGluZUJveC5i
YXNlbGluZU9mZnNldCgpKTsKLSAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhl
aWdodElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAvLyBOb24gaW5saW5lLWJsb2NrIGJveGVzIHNpdCBvbiB0aGUgYmFzZWxp
bmUgKGluY2x1ZGluZyB0aGVpciBib3R0b20gbWFyZ2luKS4KLSAgICAgICAgICAgICAgICBtX2xp
bmVCb3guc2V0QXNjZW50SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCk7Ci0gICAgICAgICAgICAg
ICAgLy8gSWdub3JlIG5lZ2F0aXZlIGRlc2NlbnQgKHllcywgbmVnYXRpdmUgZGVzY2VudCBpcyBh
IHRoaW5nKS4KLSAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9naWNhbEhlaWdodElmR3Jl
YXRlcihtYXJnaW5Cb3hIZWlnaHQgKyBzdGQ6Om1heDxJbmxpbmVMYXlvdXRVbml0PigwLCB1c2Vk
QmFzZWxpbmUuZGVzY2VudCgpKSk7CisgICAgICAgIGlmIChydW4uaXNCb3goKSkgeworICAgICAg
ICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9y
Qm94KGxheW91dEJveCk7CisgICAgICAgICAgICBhdXRvIG1hcmdpbkJveEhlaWdodCA9IGJveEdl
b21ldHJ5Lm1hcmdpbkJveEhlaWdodCgpOworCisgICAgICAgICAgICBzd2l0Y2ggKHN0eWxlLnZl
cnRpY2FsQWxpZ24oKSkgeworICAgICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCYXNlbGlu
ZTogeworICAgICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbmxpbmVCbG9ja0JveCgpICYm
IGxheW91dEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgLy8gSW5saW5lLWJsb2NrcyB3aXRoIGlubGluZSBjb250ZW50IGFsd2F5
cyBoYXZlIGJhc2VsaW5lcy4KKyAgICAgICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0
YXRlID0gbGF5b3V0U3RhdGUoKS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShkb3du
Y2FzdDxDb250YWluZXJCb3g+KGxheW91dEJveCkpOworICAgICAgICAgICAgICAgICAgICAvLyBT
cGVjIG1ha2VzIHVzIGdlbmVyYXRlIGF0IGxlYXN0IG9uZSBsaW5lIC1ldmVuIGlmIGl0IGlzIGVt
cHR5LgorICAgICAgICAgICAgICAgICAgICBhdXRvJiBsYXN0TGluZUJveCA9IGZvcm1hdHRpbmdT
dGF0ZS5kaXNwbGF5SW5saW5lQ29udGVudCgpLT5saW5lQm94ZXMubGFzdCgpOworICAgICAgICAg
ICAgICAgICAgICBhdXRvIGlubGluZUJsb2NrQmFzZWxpbmUgPSBsYXN0TGluZUJveC5iYXNlbGlu
ZSgpOworICAgICAgICAgICAgICAgICAgICBhdXRvIGJlZm9yZUhlaWdodCA9IGJveEdlb21ldHJ5
Lm1hcmdpbkJlZm9yZSgpICsgYm94R2VvbWV0cnkuYm9yZGVyVG9wKCkgKyBib3hHZW9tZXRyeS5w
YWRkaW5nVG9wKCkudmFsdWVPcigwKTsKKworICAgICAgICAgICAgICAgICAgICBtX2xpbmVCb3gu
c2V0QXNjZW50SWZHcmVhdGVyKGlubGluZUJsb2NrQmFzZWxpbmUuYXNjZW50KCkpOworICAgICAg
ICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0RGVzY2VudElmR3JlYXRlcihpbmxpbmVCbG9ja0Jh
c2VsaW5lLmRlc2NlbnQoKSk7CisgICAgICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRCYXNl
bGluZU9mZnNldElmR3JlYXRlcihiZWZvcmVIZWlnaHQgKyBsYXN0TGluZUJveC5iYXNlbGluZU9m
ZnNldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9saW5lQm94LnNldExvZ2ljYWxIZWlnaHRJ
ZkdyZWF0ZXIobWFyZ2luQm94SGVpZ2h0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAvLyBOb24gaW5saW5lLWJsb2NrIGJveGVzIHNpdCBvbiB0aGUgYmFz
ZWxpbmUgKGluY2x1ZGluZyB0aGVpciBib3R0b20gbWFyZ2luKS4KKyAgICAgICAgICAgICAgICAg
ICAgbV9saW5lQm94LnNldEFzY2VudElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQpOworICAgICAg
ICAgICAgICAgICAgICAvLyBJZ25vcmUgbmVnYXRpdmUgZGVzY2VudCAoeWVzLCBuZWdhdGl2ZSBk
ZXNjZW50IGlzIGEgdGhpbmcpLgorICAgICAgICAgICAgICAgICAgICBtX2xpbmVCb3guc2V0TG9n
aWNhbEhlaWdodElmR3JlYXRlcihtYXJnaW5Cb3hIZWlnaHQgKyBzdGQ6Om1heDxJbmxpbmVMYXlv
dXRVbml0PigwLCBtX2xpbmVCb3guYmFzZWxpbmUoKS5kZXNjZW50KCkpKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlRvcDoKLSAg
ICAgICAgICAgIC8vIFRvcCBhbGlnbiBjb250ZW50IG5ldmVyIGNoYW5nZXMgdGhlIGJhc2VsaW5l
LCBpdCBvbmx5IHB1c2hlcyB0aGUgYm90dG9tIG9mIHRoZSBsaW5lIGZ1cnRoZXIgZG93bi4KLSAg
ICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKG1hcmdpbkJveEhl
aWdodCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpC
b3R0b206IHsKLSAgICAgICAgICAgIC8vIEJvdHRvbSBhbGlnbmVkLCB0YWxsIGNvbnRlbnQgcHVz
aGVzIHRoZSBiYXNlbGluZSBmdXJ0aGVyIGRvd24gZnJvbSB0aGUgbGluZSB0b3AuCi0gICAgICAg
ICAgICBhdXRvIGxpbmVMb2dpY2FsSGVpZ2h0ID0gbV9saW5lQm94LmxvZ2ljYWxIZWlnaHQoKTsK
LSAgICAgICAgICAgIGlmIChtYXJnaW5Cb3hIZWlnaHQgPiBsaW5lTG9naWNhbEhlaWdodCkgewor
ICAgICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpUb3A6CisgICAgICAgICAgICAgICAgLy8g
VG9wIGFsaWduIGNvbnRlbnQgbmV2ZXIgY2hhbmdlcyB0aGUgYmFzZWxpbmUsIGl0IG9ubHkgcHVz
aGVzIHRoZSBib3R0b20gb2YgdGhlIGxpbmUgZnVydGhlciBkb3duLgogICAgICAgICAgICAgICAg
IG1fbGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCk7Ci0g
ICAgICAgICAgICAgICAgbV9saW5lQm94LnNldEJhc2VsaW5lT2Zmc2V0SWZHcmVhdGVyKG1fbGlu
ZUJveC5iYXNlbGluZU9mZnNldCgpICsgKG1hcmdpbkJveEhlaWdodCAtIGxpbmVMb2dpY2FsSGVp
Z2h0KSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZlcnRpY2Fs
QWxpZ246OkJvdHRvbTogeworICAgICAgICAgICAgICAgIC8vIEJvdHRvbSBhbGlnbmVkLCB0YWxs
IGNvbnRlbnQgcHVzaGVzIHRoZSBiYXNlbGluZSBmdXJ0aGVyIGRvd24gZnJvbSB0aGUgbGluZSB0
b3AuCisgICAgICAgICAgICAgICAgYXV0byBsaW5lTG9naWNhbEhlaWdodCA9IG1fbGluZUJveC5s
b2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgaWYgKG1hcmdpbkJveEhlaWdodCA+IGxp
bmVMb2dpY2FsSGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGluZUJveC5zZXRMb2dp
Y2FsSGVpZ2h0SWZHcmVhdGVyKG1hcmdpbkJveEhlaWdodCk7CisgICAgICAgICAgICAgICAgICAg
IG1fbGluZUJveC5zZXRCYXNlbGluZU9mZnNldElmR3JlYXRlcihtX2xpbmVCb3guYmFzZWxpbmVP
ZmZzZXQoKSArIChtYXJnaW5Cb3hIZWlnaHQgLSBsaW5lTG9naWNhbEhlaWdodCkpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBB
U1NFUlRfTk9UX0lNUExFTUVOVEVEX1lFVCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVU
KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQotICAgICAgICByZXR1cm47CiAgICAgfQotICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCiBJbmxpbmVMYXlvdXRVbml0IExpbmVCdWlsZGVyOjpydW5Db250
ZW50SGVpZ2h0KGNvbnN0IFJ1biYgcnVuKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKaW5kZXgg
MGQwYmZlZTBmYjUzLi44NDk2ZWMwZjk3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaApAQCAtMTgz
LDcgKzE4Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhbGlnbkhvcml6b250YWxseShjb25zdCBI
YW5naW5nQ29udGVudCYsIElzTGFzdExpbmVXaXRoSW5saW5lQ29udGVudCk7CiAgICAgdm9pZCBh
bGlnbkNvbnRlbnRWZXJ0aWNhbGx5KCk7CiAKLSAgICB2b2lkIGFkanVzdEJhc2VsaW5lQW5kTGlu
ZUhlaWdodChjb25zdCBSdW4mLCBMaW5lQm94JiBwYXJlbnRJbmxpbmVCb3gsIGNvbnN0IExpbmVC
b3g6OkJhc2VsaW5lJik7CisgICAgdm9pZCBhZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoKTsK
ICAgICBJbmxpbmVMYXlvdXRVbml0IHJ1bkNvbnRlbnRIZWlnaHQoY29uc3QgUnVuJikgY29uc3Q7
CiAKICAgICB2b2lkIGp1c3RpZnlSdW5zKElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>