<?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>206050</bug_id>
          
          <creation_ts>2020-01-09 18:44:04 -0800</creation_ts>
          <short_desc>[LFC] Replace FormattingContext::EscapeTypes with EscapeReasons</short_desc>
          <delta_ts>2020-01-10 07:20:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</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>1604980</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-01-09 18:44:04 -0800</bug_when>
    <thetext>to be more explicit about why certain escapes are allowed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604981</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-09 18:44:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/58466862&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604985</commentid>
    <comment_count>2</comment_count>
      <attachid>387308</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-09 18:51:45 -0800</bug_when>
    <thetext>Created attachment 387308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605012</commentid>
    <comment_count>3</comment_count>
      <attachid>387313</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-09 21:36:44 -0800</bug_when>
    <thetext>Created attachment 387313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605039</commentid>
    <comment_count>4</comment_count>
      <attachid>387313</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-10 02:16:42 -0800</bug_when>
    <thetext>Comment on attachment 387313
Patch

No escapes allowed for any reason!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605091</commentid>
    <comment_count>5</comment_count>
      <attachid>387313</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-10 07:06:45 -0800</bug_when>
    <thetext>Comment on attachment 387313
Patch

Clearing flags on attachment: 387313

Committed r254336: &lt;https://trac.webkit.org/changeset/254336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605092</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-10 07:06:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605097</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-01-10 07:20:27 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #4)
&gt; Comment on attachment 387313 [details]
&gt; Patch
&gt; 
&gt; No escapes allowed for any reason!
Only the good escapes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387308</attachid>
            <date>2020-01-09 18:51:45 -0800</date>
            <delta_ts>2020-01-09 19:36:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206050-20200109185144.patch</filename>
            <type>text/plain</type>
            <size>22640</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI4ZjljMTNlYWRlYjI1
NTEzNmE3NDg5OWU2YWJhMTI1MGY3N2EzMy4uMWMzMzgwNmQzZDkzZWJkMTNhMGEzOGVkOGM0NDMx
OWI0Y2QwODk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTAxLTA5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gUmVwbGFjZSBGb3Jt
YXR0aW5nQ29udGV4dDo6RXNjYXBlVHlwZXMgd2l0aCBFc2NhcGVSZWFzb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYwNTAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU4NDY2ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdpdGggInJlYXNvbnMiIHdlIGNhbiBleHBsYWluIGJldHRlciB3aHkg
Y2VydGFpbiBmb3JtYXR0aW5nIGNvbnRleHQgZXNjYXBlcyBhcmUgYWxsb3dlZC4KKworICAgICAg
ICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpnZW9tZXRyeUZvckJveCBjb25zdCk6CisgICAgICAgICog
bGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6OmNvbnRlbnRIZWlnaHRGb3JGb3JtYXR0aW5nQ29udGV4dFJvb3Qg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OnN0YXRpY1ZlcnRpY2FsUG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpdGlvbmVkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjpzdGF0aWNIb3Jpem9udGFsUG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpdGlvbmVkIGNvbnN0KToK
KyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpoZWlnaHRWYWx1ZU9m
TmVhcmVzdENvbnRhaW5pbmdCbG9ja1dpdGhGaXhlZEhlaWdodCk6CisgICAgICAgICogbGF5b3V0
L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpG
bG9hdGluZ0NvbnRleHQ6OmFic29sdXRlRGlzcGxheUJveENvb3JkaW5hdGVzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0OjptYXBUb0Zsb2F0aW5nU3Rh
dGVSb290IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0
OjptYXBUb3BUb0Zsb2F0aW5nU3RhdGVSb290IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6RmxvYXRpbmdDb250ZXh0OjptYXBQb2ludEZyb21Gb3JtYXR0aW5nQ29udGV4dFJvb3RU
b0Zsb2F0aW5nU3RhdGVSb290IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvdGFibGVmb3JtYXR0
aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlQW5kRGlzdHJpYnV0ZUV4dHJhSG9yaXpv
bnRhbFNwYWNlKToKKwogMjAyMC0wMS0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgZW5jb2RlcnMgYW5kIGRlY29kZXJzIGZvciBt
b3JlIGZvbnQtcmVsYXRlZCBlbnRpdGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0
aW5nQ29udGV4dC5jcHAKaW5kZXggZWIxNjNhZDU0ODBmOWRmOGExNjU3Zjg5YmJhM2Y0NWIyYTky
N2Y3Ny4uZWE2YmIwYTZiYmE5NjE1MWVjMzIxZTgwYjE5YmRlMTNjMTZkMmI4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0yMTEsNDQgKzIxMSw0
NSBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjptYXBSaWdodFRvRm9ybWF0dGluZ0Nv
bnRleHRSb290KGNvbnN0IEJveCYgbGF5b3V0QgogICAgIHJldHVybiBtYXBIb3Jpem9udGFsUG9z
aXRpb25Ub0FuY2VzdG9yKCp0aGlzLCBnZW9tZXRyeUZvckJveChsYXlvdXRCb3gpLnJpZ2h0KCks
ICpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCksIHJvb3QoKSk7CiB9CiAKLWNvbnN0IERpc3Bs
YXk6OkJveCYgRm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yQm94KGNvbnN0IEJveCYgbGF5
b3V0Qm94LCBPcHRpb25hbDxFc2NhcGVUeXBlPiBlc2NhcGVUeXBlKSBjb25zdAorY29uc3QgRGlz
cGxheTo6Qm94JiBGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0cnlGb3JCb3goY29uc3QgQm94JiBs
YXlvdXRCb3gsIE9wdGlvbmFsPEVzY2FwZVJlYXNvbj4gZXNjYXBlUmVhc29uKSBjb25zdAogewot
ICAgIFVOVVNFRF9QQVJBTShlc2NhcGVUeXBlKTsKKyAgICBVTlVTRURfUEFSQU0oZXNjYXBlUmVh
c29uKTsKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGF1dG8gaXNPa1RvQWNjZXNzRGlzcGxheUJv
eCA9IFsmXSB7Ci0gICAgICAgIC8vIDEuIEhpZ2hseSBjb21tb24gY2FzZSBvZiBhY2Nlc3Npbmcg
dGhlIGZvcm1hdHRpbmcgcm9vdCdzIGRpc3BsYXkgYm94IGl0c2VsZi4gVGhpcyBpcyBmb3JtYXR0
aW5nIGNvbnRleHQgZXNjYXBpbmcgaW4gdGhlIHN0cmljdCBzZW5zZSwgc2luY2UKLSAgICAgICAg
Ly8gdGhlIGZvcm1hdHRpbmcgY29udGV4dCByb290IGJveCBsaXZlcyBpbiB0aGUgcGFyZW50IGZv
cm1hdHRpbmcgY29udGV4dC4KKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgbm9uLWVzY2FwZSBjYXNl
IG9mIGFjY2Vzc2luZyBhIGJveCdzIGdlb21ldHJ5IGluZm9ybWF0aW9uIHdpdGhpbiB0aGUgc2Ft
ZSBmb3JtYXR0aW5nIGNvbnRleHQuCisgICAgICAgIGlmICgmbGF5b3V0Qm94LmZvcm1hdHRpbmdD
b250ZXh0Um9vdCgpID09ICZyb290KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
ICAgICAvLyBGSVhNRTogVGhpcyBpcyBmb3JtYXR0aW5nIGNvbnRleHQgZXNjYXBpbmcgaW4gdGhl
IHN0cmljdCBzZW5zZSwgc2luY2UgdGhlIGZvcm1hdHRpbmcgY29udGV4dCByb290IGJveCBsaXZl
cyBpbiB0aGUgcGFyZW50IGZvcm1hdHRpbmcgY29udGV4dC4KICAgICAgICAgLy8gVGhpcyBoYXBw
ZW5zIGUuZy4gd2hlbiBhIGJsb2NrIGxldmVsIGJveCBib3ggbmVlZHMgdG8gc3RyZXRjaCBob3Jp
em9udGFsbHkgYW5kIGNoZWNrcyBpdHMgY29udGFpbmluZyBibG9jayBmb3IgaG9yaXpvbnRhbCBz
cGFjZSAodGhpcyBzaG91bGQgcHJvYmFibHkgYmUgbGltaXRlZCB0byByZWFkaW5nIGhvcml6b250
YWwgY29uc3RyYWludCB2YWx1ZXMpLgogICAgICAgICBpZiAoJmxheW91dEJveCA9PSAmcm9vdCgp
KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAgICAgLy8gMi4gU3BlY2lhbCBjYXNl
IHdoZW4gYWNjZXNzaW5nIHRoZSBJQ0IncyBkaXNwbGF5IGJveAotICAgICAgICBpZiAobGF5b3V0
Qm94LmlzSW5pdGlhbENvbnRhaW5pbmdCbG9jaygpKSB7Ci0gICAgICAgICAgICAvLyBUaGVyZSBo
YXMgdG8gYmUgYSB2YWxpZCByZWFzb24gdG8gYWNjZXNzIHRoZSBJQ0IuCi0gICAgICAgICAgICBp
ZiAoIWVzY2FwZVR5cGUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg
ICAgcmV0dXJuICplc2NhcGVUeXBlID09IEVzY2FwZVR5cGU6OkFjY2Vzc1BhcmVudEZvcm1hdHRp
bmdDb250ZXh0IHx8ICplc2NhcGVUeXBlID09IEVzY2FwZVR5cGU6OkFjY2Vzc0FuY2VzdG9yRm9y
bWF0dGluZ0NvbnRleHQ7CisgICAgICAgIGlmICgqZXNjYXBlUmVhc29uID09IEVzY2FwZVJlYXNv
bjo6TmVlZHNHZW9tZXRyeUZyb21Fc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0KSB7CisgICAg
ICAgICAgICAvLyBUaGlzIGlzIHRoZSBjYXNlIHdoZW4gYSBmb3JtYXR0aW5nIHJvb3QgY29sbGVj
dHMgZ2VvbWV0cnkgaW5mb3JtYXRpb24gZnJvbSB0aGUgZXN0YWJsaXNoZWQKKyAgICAgICAgICAg
IC8vIGZvcm1hdHRpbmcgY29udGV4dCB0byBiZSBhYmxlIHRvIGRldGVybWluZSB3aWR0aC9oZWln
aHQuCisgICAgICAgICAgICAvLyBlLmcgPGRpdj50ZXh0IGNvbnRlbnQ8L2Rpdj4uIFRoZSA8ZGl2
PiBpcyBhIGZvcm1hdHRpbmcgcm9vdCBvZiB0aGUgSUZDLgorICAgICAgICAgICAgLy8gSW4gb3Jk
ZXIgdG8gY29tcHV0ZSB0aGUgaGVpZ2h0IG9mIHRoZSA8ZGl2Piwgd2UgbmVlZCB0byBsb29rIGlu
c2lkZSB0aGUgSUZDIGFuZCBnYXRoZXIgZ2VvbWV0cnkgaW5mb3JtYXRpb24uCisgICAgICAgICAg
ICByZXR1cm4gJmxheW91dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKS5mb3JtYXR0aW5nQ29u
dGV4dFJvb3QoKSA9PSAmcm9vdCgpOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gMy4gTW9zdCBj
b21tb24gY2FzZSBvZiBhY2Nlc3NpbmcgYm94L2NvbnRhaW5pbmcgYmxvY2sgZGlzcGxheSBib3gg
d2l0aGluIHRoZSBzYW1lIGZvcm1hdHRpbmcgY29udGV4dCB0cmVlLgotICAgICAgICBpZiAoJmxh
eW91dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSA9PSAmcm9vdCgpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICAgICAgaWYgKCFlc2NhcGVUeXBlKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgICAgIC8vIDQuIEFjY2Vzc2luZyBjaGlsZCBmb3JtYXR0aW5nIGNv
bnRleHQgc3VidHJlZSBpcyByZWxhdGl2ZWx5IHJhcmUuIEl0IGhhcHBlbnMgd2hlbiBlLmcgYSBz
aHJpbmsgdG8gZml0IChvdXQtb2YtZmxvdyBibG9jayBsZXZlbCkgYm94IGNoZWNrcyB0aGUgY29u
dGVudCB3aWR0aC4KLSAgICAgICAgLy8gQ2hlY2tpbmcgdGhlIGNvbnRlbnQgd2lkdGggbWVhbnMg
dG8gZ2V0IGRpc3BsYXkgYm94ZXMgZnJvbSB0aGUgZXN0YWJsaXNoZWQgZm9ybWF0dGluZyBjb250
ZXh0ICh3ZSB0cnkgdG8gYWNjZXNzIGRpc3BsYXkgYm94ZXMgaW4gYSBjaGlsZCBmb3JtYXR0aW5n
IGNvbnRleHQpCi0gICAgICAgIGlmICgqZXNjYXBlVHlwZSA9PSBFc2NhcGVUeXBlOjpBY2Nlc3ND
aGlsZEZvcm1hdHRpbmdDb250ZXh0ICYmICZsYXlvdXRCb3guZm9ybWF0dGluZ0NvbnRleHRSb290
KCkuZm9ybWF0dGluZ0NvbnRleHRSb290KCkgPT0gJnJvb3QoKSkKKyAgICAgICAgaWYgKCplc2Nh
cGVSZWFzb24gPT0gRXNjYXBlUmVhc29uOjpPdXRPZkZsb3dCb3hOZWVkc0luRmxvd0dlb21ldHJ5
KSB7CisgICAgICAgICAgICAvLyBXaGVuIGNvbXB1dGluZyB0aGUgc3RhdGljIHBvc2l0aW9uIG9m
IGFuIG91dC1vZi1mbG93IGJveCwgd2UgbmVlZCB0byBnYXRoZXIgc2libGluZy9wYXJlbnQgZ2Vv
bWV0cnkgaW5mb3JtYXRpb24KKyAgICAgICAgICAgIC8vIGFzIGlmIHRoZSBvdXQtb2YtZmxvdyBi
b3ggd2FzIGEgc2ltcGxlIGluZmxvdyBib3guCisgICAgICAgICAgICAvLyBOb3cgc2luY2UgdGhl
IG91dC1vZi1mbG93IGFuZCB0aGUgc2libGluZy9wYXJlbnQgYm94ZXMgY291bGQgdmVyeSB3ZWxs
IGJlIGluIGRpZmZlcmVudCBjb250YWluaW5nIGJsb2NrIHN1YnRyZWVzCisgICAgICAgICAgICAv
LyB0aGUgZm9ybWF0dGluZyBjb250ZXh0IHRoZXkgbGl2ZSBpbiBjb3VsZCBhbHNvIGJlIHZlcnkg
ZGlmZmVyZW50LgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KIAotICAgICAg
ICAvLyA1LiBGbG9hdCBib3ggdG9wL2xlZnQgdmFsdWVzIGFyZSBtYXBwZWQgcmVsYXRpdmUgdG8g
dGhlIEZsb2F0U3RhdGUncyByb290LiBJbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0cyhBKSBpbmhl
cml0IGZsb2F0cyBmcm9tIHBhcmVudAotICAgICAgICAvLyBibG9jayBmb3JtYXR0aW5nIGNvbnRl
eHRzKEIpLiBGbG9hdHMgaW4gdGhlc2UgaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dHMoQSkgbmVl
ZCB0byBiZSBtYXBwZWQgdG8gdGhlIHBhcmVudCwgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0KEIp
LgotICAgICAgICBpZiAoKmVzY2FwZVR5cGUgPT0gRXNjYXBlVHlwZTo6QWNjZXNzUGFyZW50Rm9y
bWF0dGluZ0NvbnRleHQgJiYgJmxheW91dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSA9PSAm
cm9vdCgpLmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIGlmICgqZXNjYXBlUmVhc29uID09IEVzY2FwZVJlYXNvbjo6RmxvYXRCb3hOZWVk
c1RvQmVJbkFic29sdXRlQ29vcmRpbmF0ZXMpIHsKKyAgICAgICAgICAgIC8vIEZsb2F0IGJveCB0
b3AvbGVmdCB2YWx1ZXMgYXJlIG1hcHBlZCByZWxhdGl2ZSB0byB0aGUgRmxvYXRTdGF0ZSdzIHJv
b3QuIElubGluZSBmb3JtYXR0aW5nIGNvbnRleHRzKEEpIGluaGVyaXQgZmxvYXRzIGZyb20gcGFy
ZW50CisgICAgICAgICAgICAvLyBibG9jayBmb3JtYXR0aW5nIGNvbnRleHRzKEIpLiBGbG9hdHMg
aW4gdGhlc2UgaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dHMoQSkgbmVlZCB0byBiZSBtYXBwZWQg
dG8gdGhlIHBhcmVudCwgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0KEIpLgorICAgICAgICAgICAg
YXV0byYgZm9ybWF0dGluZ0NvbnRleHRSb290ID0gbGF5b3V0Qm94LmZvcm1hdHRpbmdDb250ZXh0
Um9vdCgpOworICAgICAgICAgICAgcmV0dXJuICZmb3JtYXR0aW5nQ29udGV4dFJvb3QgPT0gJnJv
b3QoKSB8fCAmZm9ybWF0dGluZ0NvbnRleHRSb290ID09ICZyb290KCkuZm9ybWF0dGluZ0NvbnRl
eHRSb290KCk7CisgICAgICAgIH0KIAotICAgICAgICAvLyA2LiBGaW5kaW5nIHRoZSBmaXJzdCBj
b250YWluaW5nIGJsb2NrIHdpdGggZml4ZWQgaGVpZ2h0IHF1aXJrLiBTZWUgUXVpcmtzOjpoZWln
aHRWYWx1ZU9mTmVhcmVzdENvbnRhaW5pbmdCbG9ja1dpdGhGaXhlZEhlaWdodAotICAgICAgICBp
ZiAoKmVzY2FwZVR5cGUgPT0gRXNjYXBlVHlwZTo6QWNjZXNzQW5jZXN0b3JGb3JtYXR0aW5nQ29u
dGV4dCkgeworICAgICAgICBpZiAoKmVzY2FwZVJlYXNvbiA9PSBFc2NhcGVSZWFzb246OkZpbmRG
aXhlZEhlaWdodEFuY2VzdG9yUXVpcmspIHsKKyAgICAgICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0
IGNvbnRhaW5pbmcgYmxvY2sgd2l0aCBmaXhlZCBoZWlnaHQgcXVpcmsuIFNlZSBRdWlya3M6Omhl
aWdodFZhbHVlT2ZOZWFyZXN0Q29udGFpbmluZ0Jsb2NrV2l0aEZpeGVkSGVpZ2h0CiAgICAgICAg
ICAgICBhdXRvJiB0YXJnZXRGb3JtYXR0aW5nUm9vdCA9IGxheW91dEJveC5mb3JtYXR0aW5nQ29u
dGV4dFJvb3QoKTsKICAgICAgICAgICAgIGF1dG8qIGFuY2VzdG9yRm9ybWF0dGluZ0NvbnRleHRS
b290ID0gJnJvb3QoKS5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKTsKICAgICAgICAgICAgIHdoaWxl
ICh0cnVlKSB7CkBAIC0yNTgsMTUgKzI1OSwxOCBAQCBjb25zdCBEaXNwbGF5OjpCb3gmIEZvcm1h
dHRpbmdDb250ZXh0OjpnZW9tZXRyeUZvckJveChjb25zdCBCb3gmIGxheW91dEJveCwgT3B0aQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgYW5jZXN0
b3JGb3JtYXR0aW5nQ29udGV4dFJvb3QgPSAmYW5jZXN0b3JGb3JtYXR0aW5nQ29udGV4dFJvb3Qt
PmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gNy4gVGFibGVzIGFyZSB3cmFwcGVk
IGluIGEgMiBsZXZlbCBmb3JtYXR0aW5nIGNvbnRleHQgc3RydWN0dXJlLiBBIDx0YWJsZT4gZWxl
bWVudCBpbml0aWF0ZXMgYSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgZm9yIGl0cyBwcmluY2lw
YWwgdGFibGUgYm94Ci0gICAgICAgIC8vIHdoZXJlIHRoZSBjYXB0aW9uIGFuZCB0aGUgdGFibGUg
Y29udGVudCBsaXZlLiBJdCBhbHNvIGluaXRpYXRlcyBhIHRhYmxlIHdyYXBwZXIgYm94IHdoaWNo
IGVzdGFibGlzaGVzIHRoZSB0YWJsZSBmb3JtYXR0aW5nIGNvbnRleHQuCi0gICAgICAgIC8vIElu
IG1hbnkgY2FzZXMgdGhlIFRGQyBuZWVkcyBhY2Nlc3MgdG8gdGhlIHBhcmVudCAoZ2VuZXJhdGVk
KSBCRkMuCi0gICAgICAgIGlmICgqZXNjYXBlVHlwZSA9PSBFc2NhcGVUeXBlOjpUYWJsZUZvcm1h
dHRpbmdDb250ZXh0QWNjZXNzUGFyZW50VGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4
dAotICAgICAgICAgICAgJiYgKCZsYXlvdXRCb3ggPT0gJnJvb3QoKS5mb3JtYXR0aW5nQ29udGV4
dFJvb3QoKSB8fCAmbGF5b3V0Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpID09ICZyb290KCku
Zm9ybWF0dGluZ0NvbnRleHRSb290KCkpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIGlmICgqZXNjYXBlUmVhc29uID09IEVzY2FwZVJlYXNvbjo6VGFibGVOZWVkc0FjY2Vzc1Rv
VGFibGVXcmFwcGVyKSB7CisgICAgICAgICAgICAvLyBUYWJsZXMgYXJlIHdyYXBwZWQgaW4gYSAy
IGxldmVsIGZvcm1hdHRpbmcgY29udGV4dCBzdHJ1Y3R1cmUuIEEgPHRhYmxlPiBlbGVtZW50IGlu
aXRpYXRlcyBhIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCBmb3IgaXRzIHByaW5jaXBhbCB0YWJs
ZSBib3gKKyAgICAgICAgICAgIC8vIHdoZXJlIHRoZSBjYXB0aW9uIGFuZCB0aGUgdGFibGUgY29u
dGVudCBsaXZlLiBJdCBhbHNvIGluaXRpYXRlcyBhIHRhYmxlIHdyYXBwZXIgYm94IHdoaWNoIGVz
dGFibGlzaGVzIHRoZSB0YWJsZSBmb3JtYXR0aW5nIGNvbnRleHQuCisgICAgICAgICAgICAvLyBJ
biBtYW55IGNhc2VzIHRoZSBURkMgbmVlZHMgYWNjZXNzIHRvIHRoZSBwYXJlbnQgKGdlbmVyYXRl
ZCkgQkZDLgorICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ0NvbnRleHRSb290ID0gbGF5b3V0
Qm94LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpOworICAgICAgICAgICAgcmV0dXJuICZmb3JtYXR0
aW5nQ29udGV4dFJvb3QgPT0gJnJvb3QoKS5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKTsKKyAgICAg
ICAgfQogCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zv
cm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRl
eHQuaAppbmRleCBhZmRmMGEyY2ZiNWExOTE5N2YxODZiNjIwM2Q2NTMzMzA5YzEzZDFlLi5hNzE4
YThhZTlhZTQ5MTIwYWIzMTVmN2FlMWY5YmRjZmVmNGYyMDdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtODQsMTMgKzg0LDE0IEBAIHB1YmxpYzoKICAg
ICBib29sIGlzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiByb290KCku
ZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpOyB9CiAgICAgYm9vbCBpc1RhYmxl
Rm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiByb290KCkuZXN0YWJsaXNoZXNUYWJs
ZUZvcm1hdHRpbmdDb250ZXh0KCk7IH0KIAotICAgIGVudW0gY2xhc3MgRXNjYXBlVHlwZSB7Ci0g
ICAgICAgIEFjY2Vzc0NoaWxkRm9ybWF0dGluZ0NvbnRleHQsCi0gICAgICAgIEFjY2Vzc1BhcmVu
dEZvcm1hdHRpbmdDb250ZXh0LAotICAgICAgICBBY2Nlc3NBbmNlc3RvckZvcm1hdHRpbmdDb250
ZXh0LAotICAgICAgICBUYWJsZUZvcm1hdHRpbmdDb250ZXh0QWNjZXNzUGFyZW50VGFibGVXcmFw
cGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dAorICAgIGVudW0gY2xhc3MgRXNjYXBlUmVhc29uIHsK
KyAgICAgICAgTmVlZHNHZW9tZXRyeUZyb21Fc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0LAor
ICAgICAgICBPdXRPZkZsb3dCb3hOZWVkc0luRmxvd0dlb21ldHJ5LAorICAgICAgICBGbG9hdEJv
eE5lZWRzVG9CZUluQWJzb2x1dGVDb29yZGluYXRlcywKKyAgICAgICAgRmluZEZpeGVkSGVpZ2h0
QW5jZXN0b3JRdWlyaywKKyAgICAgICAgVGFibGVOZWVkc0FjY2Vzc1RvVGFibGVXcmFwcGVyCiAg
ICAgfTsKLSAgICBjb25zdCBEaXNwbGF5OjpCb3gmIGdlb21ldHJ5Rm9yQm94KGNvbnN0IEJveCYs
IE9wdGlvbmFsPEVzY2FwZVR5cGU+ID0gV1RGOjpudWxsb3B0KSBjb25zdDsKKyAgICBjb25zdCBE
aXNwbGF5OjpCb3gmIGdlb21ldHJ5Rm9yQm94KGNvbnN0IEJveCYsIE9wdGlvbmFsPEVzY2FwZVJl
YXNvbj4gPSBXVEY6Om51bGxvcHQpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAgdXNpbmcgTGF5
b3V0UXVldWUgPSBWZWN0b3I8Y29uc3QgQm94Kj47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXggZWVmNjY1MjdjNThmOTc5
ODJiN2Y5MWRjZDMwMmRhZWI4MTUwZDNjMy4uYmQ1NzllYjk2ZmU3NTE2Y2RmNmIwODk0Nzg0ODcw
YWU4ZTZlNmNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5n
Q29udGV4dEdlb21ldHJ5LmNwcApAQCAtMTM4LDggKzEzOCw4IEBAIExheW91dFVuaXQgRm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb250ZW50SGVpZ2h0Rm9yRm9ybWF0dGluZ0NvbnRleHRS
b290KGNvCiAgICAgICAgIGJvdHRvbSA9IGxpbmVCb3hlcy5sYXN0KCkubG9naWNhbEJvdHRvbSgp
OwogICAgIH0gZWxzZSBpZiAoZm9ybWF0dGluZ1Jvb3RDb250YWluZXIuZXN0YWJsaXNoZXNCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0KCkgfHwgZm9ybWF0dGluZ1Jvb3RDb250YWluZXIuZXN0YWJsaXNo
ZXNUYWJsZUZvcm1hdHRpbmdDb250ZXh0KCkgfHwgZm9ybWF0dGluZ1Jvb3RDb250YWluZXIuaXNE
b2N1bWVudEJveCgpKSB7CiAgICAgICAgIGlmIChmb3JtYXR0aW5nUm9vdENvbnRhaW5lci5oYXNJ
bkZsb3dDaGlsZCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBmaXJzdEJveEdlb21ldHJ5ID0gZm9y
bWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmZvcm1hdHRpbmdSb290Q29udGFpbmVyLmZp
cnN0SW5GbG93Q2hpbGQoKSwgRXNjYXBlVHlwZTo6QWNjZXNzQ2hpbGRGb3JtYXR0aW5nQ29udGV4
dCk7Ci0gICAgICAgICAgICBhdXRvJiBsYXN0Qm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4
dC5nZW9tZXRyeUZvckJveCgqZm9ybWF0dGluZ1Jvb3RDb250YWluZXIubGFzdEluRmxvd0NoaWxk
KCksIEVzY2FwZVR5cGU6OkFjY2Vzc0NoaWxkRm9ybWF0dGluZ0NvbnRleHQpOworICAgICAgICAg
ICAgYXV0byYgZmlyc3RCb3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9y
Qm94KCpmb3JtYXR0aW5nUm9vdENvbnRhaW5lci5maXJzdEluRmxvd0NoaWxkKCksIEVzY2FwZVJl
YXNvbjo6TmVlZHNHZW9tZXRyeUZyb21Fc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0KTsKKyAg
ICAgICAgICAgIGF1dG8mIGxhc3RCb3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21l
dHJ5Rm9yQm94KCpmb3JtYXR0aW5nUm9vdENvbnRhaW5lci5sYXN0SW5GbG93Q2hpbGQoKSwgRXNj
YXBlUmVhc29uOjpOZWVkc0dlb21ldHJ5RnJvbUVzdGFibGlzaGVkRm9ybWF0dGluZ0NvbnRleHQp
OwogICAgICAgICAgICAgdG9wID0gZmlyc3RCb3hHZW9tZXRyeS5yZWN0V2l0aE1hcmdpbigpLnRv
cCgpOwogICAgICAgICAgICAgYm90dG9tID0gbGFzdEJveEdlb21ldHJ5LnJlY3RXaXRoTWFyZ2lu
KCkuYm90dG9tKCk7CiAgICAgICAgIH0KQEAgLTIyNywxOCArMjI3LDE4IEBAIExheW91dFVuaXQg
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0aWNWZXJ0aWNhbFBvc2l0aW9uRm9yT3V0
T2ZGbG93UG9zaXRpCiAgICAgTGF5b3V0VW5pdCB0b3A7CiAgICAgaWYgKGF1dG8qIHByZXZpb3Vz
SW5GbG93U2libGluZyA9IGxheW91dEJveC5wcmV2aW91c0luRmxvd1NpYmxpbmcoKSkgewogICAg
ICAgICAvLyBBZGQgc2libGluZyBvZmZzZXQKLSAgICAgICAgYXV0byYgcHJldmlvdXNJbkZsb3dC
b3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpwcmV2aW91c0lu
Rmxvd1NpYmxpbmcsIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVUeXBlOjpBY2Nlc3NDaGlsZEZv
cm1hdHRpbmdDb250ZXh0KTsKKyAgICAgICAgYXV0byYgcHJldmlvdXNJbkZsb3dCb3hHZW9tZXRy
eSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpwcmV2aW91c0luRmxvd1NpYmxp
bmcsIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb246Ok91dE9mRmxvd0JveE5lZWRzSW5G
bG93R2VvbWV0cnkpOwogICAgICAgICB0b3AgKz0gcHJldmlvdXNJbkZsb3dCb3hHZW9tZXRyeS5i
b3R0b20oKSArIHByZXZpb3VzSW5GbG93Qm94R2VvbWV0cnkubm9uQ29sbGFwc2VkTWFyZ2luQWZ0
ZXIoKTsKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQobGF5b3V0Qm94LnBhcmVudCgpKTsK
LSAgICAgICAgdG9wID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmxheW91dEJv
eC5wYXJlbnQoKSwgRm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVR5cGU6OkFjY2Vzc0NoaWxkRm9y
bWF0dGluZ0NvbnRleHQpLmNvbnRlbnRCb3hUb3AoKTsKKyAgICAgICAgdG9wID0gZm9ybWF0dGlu
Z0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5wYXJlbnQoKSwgRm9ybWF0dGluZ0Nv
bnRleHQ6OkVzY2FwZVJlYXNvbjo6T3V0T2ZGbG93Qm94TmVlZHNJbkZsb3dHZW9tZXRyeSkuY29u
dGVudEJveFRvcCgpOwogICAgIH0KIAogICAgIC8vIFJlc29sdmUgdG9wIGFsbCB0aGUgd2F5IHVw
IHRvIHRoZSBjb250YWluaW5nIGJsb2NrLgogICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9jayA9ICps
YXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7CiAgICAgLy8gU3RhcnQgd2l0aCB0aGUgcGFyZW50
IHNpbmNlIHdlIHByZXRlbmQgdGhhdCB0aGlzIGJveCBpcyBub3JtYWwgZmxvdy4KICAgICBmb3Ig
KGF1dG8qIGNvbnRhaW5lciA9IGxheW91dEJveC5wYXJlbnQoKTsgY29udGFpbmVyICE9ICZjb250
YWluaW5nQmxvY2s7IGNvbnRhaW5lciA9IGNvbnRhaW5lci0+Y29udGFpbmluZ0Jsb2NrKCkpIHsK
LSAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZv
ckJveCgqY29udGFpbmVyLCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzQ2hp
bGRGb3JtYXR0aW5nQ29udGV4dCk7CisgICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0
dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5lciwgRm9ybWF0dGluZ0NvbnRleHQ6
OkVzY2FwZVJlYXNvbjo6T3V0T2ZGbG93Qm94TmVlZHNJbkZsb3dHZW9tZXRyeSk7CiAgICAgICAg
IC8vIERpc3BsYXk6OkJveDo6dG9wIGlzIHRoZSBib3JkZXIgYm94IHRvcCBwb3NpdGlvbiBpbiBp
dHMgY29udGFpbmluZyBibG9jaydzIGNvb3JkaW5hdGUgc3lzdGVtLgogICAgICAgICB0b3AgKz0g
Ym94R2VvbWV0cnkudG9wKCk7CiAgICAgICAgIEFTU0VSVCghY29udGFpbmVyLT5pc1Bvc2l0aW9u
ZWQoKSB8fCBsYXlvdXRCb3guaXNGaXhlZFBvc2l0aW9uZWQoKSk7CkBAIC0yNTUsMTMgKzI1NSwx
MyBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6c3RhdGljSG9yaXpv
bnRhbFBvc2l0aW9uRm9yT3V0T2ZGbG93UG9zaQogICAgIC8vIFN0YXJ0IHdpdGggdGhpcyBib3gn
cyBib3JkZXIgYm94IG9mZnNldCBmcm9tIHRoZSBwYXJlbnQncyBib3JkZXIgYm94LgogICAgIGF1
dG8mIGZvcm1hdHRpbmdDb250ZXh0ID0gdGhpcy0+Zm9ybWF0dGluZ0NvbnRleHQoKTsKICAgICBB
U1NFUlQobGF5b3V0Qm94LnBhcmVudCgpKTsKLSAgICBhdXRvIGxlZnQgPSBmb3JtYXR0aW5nQ29u
dGV4dC5nZW9tZXRyeUZvckJveCgqbGF5b3V0Qm94LnBhcmVudCgpLCBGb3JtYXR0aW5nQ29udGV4
dDo6RXNjYXBlVHlwZTo6QWNjZXNzQ2hpbGRGb3JtYXR0aW5nQ29udGV4dCkuY29udGVudEJveExl
ZnQoKTsKKyAgICBhdXRvIGxlZnQgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgq
bGF5b3V0Qm94LnBhcmVudCgpLCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpPdXRP
ZkZsb3dCb3hOZWVkc0luRmxvd0dlb21ldHJ5KS5jb250ZW50Qm94TGVmdCgpOwogCiAgICAgLy8g
UmVzb2x2ZSBsZWZ0IGFsbCB0aGUgd2F5IHVwIHRvIHRoZSBjb250YWluaW5nIGJsb2NrLgogICAg
IGF1dG8mIGNvbnRhaW5pbmdCbG9jayA9ICpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7CiAg
ICAgLy8gU3RhcnQgd2l0aCB0aGUgcGFyZW50IHNpbmNlIHdlIHByZXRlbmQgdGhhdCB0aGlzIGJv
eCBpcyBub3JtYWwgZmxvdy4KICAgICBmb3IgKGF1dG8qIGNvbnRhaW5lciA9IGxheW91dEJveC5w
YXJlbnQoKTsgY29udGFpbmVyICE9ICZjb250YWluaW5nQmxvY2s7IGNvbnRhaW5lciA9IGNvbnRh
aW5lci0+Y29udGFpbmluZ0Jsb2NrKCkpIHsKLSAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBm
b3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFpbmVyLCBGb3JtYXR0aW5nQ29u
dGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzQ2hpbGRGb3JtYXR0aW5nQ29udGV4dCk7CisgICAgICAg
IGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmNv
bnRhaW5lciwgRm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVJlYXNvbjo6T3V0T2ZGbG93Qm94TmVl
ZHNJbkZsb3dHZW9tZXRyeSk7CiAgICAgICAgIC8vIERpc3BsYXk6OkJveDo6bGVmdCBpcyB0aGUg
Ym9yZGVyIGJveCBsZWZ0IHBvc2l0aW9uIGluIGl0cyBjb250YWluaW5nIGJsb2NrJ3MgY29vcmRp
bmF0ZSBzeXN0ZW0uCiAgICAgICAgIGxlZnQgKz0gYm94R2VvbWV0cnkubGVmdCgpOwogICAgICAg
ICBBU1NFUlQoIWNvbnRhaW5lci0+aXNQb3NpdGlvbmVkKCkgfHwgbGF5b3V0Qm94LmlzRml4ZWRQ
b3NpdGlvbmVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0UXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dFF1aXJrcy5jcHAKaW5kZXggZWNiMjMwZjE2ZjhmNmI0OGVlMDBjMjgyZDc1YjIyMzE0NjNm
NzFhNi4uZjdhZmUxNDBjNzNmNzgzYzQzNjg4OWJhNTM1MzI0MDdmOTkzYzkyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCkBAIC00
OCw5ICs0OCw5IEBAIExheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aGVpZ2h0
VmFsdWVPZk5lYXJlc3RDb250YWluaW5nQmxvY2tXaXRoRml4CiAgICAgICAgIC8vIElmIHRoZSBv
bmx5IGZpeGVkIHZhbHVlIGJveCB3ZSBmaW5kIGlzIHRoZSBJQ0IsIHRoZW4gaWdub3JlIHRoZSBi
b2R5IGFuZCB0aGUgZG9jdW1lbnQgKHZlcnRpY2FsKSBtYXJnaW4sIHBhZGRpbmcgYW5kIGJvcmRl
ci4gU28gbXVjaCBxdWlya2luZXNzLgogICAgICAgICAvLyAtYW5kIGl0J3MgdG90YWxseSBpbnNh
bmUgYmVjYXVzZSBub3cgd2UgZnJlZWx5IHRyYXZlbCBhY3Jvc3MgZm9ybWF0dGluZyBjb250ZXh0
IGJvdW5kYXJpZXMgYW5kIGNvbXB1dGVkIG1hcmdpbnMgYXJlIG5vbmV4aXN0ZW50LgogICAgICAg
ICBpZiAoY29udGFpbmluZ0Jsb2NrLT5pc0JvZHlCb3goKSB8fCBjb250YWluaW5nQmxvY2stPmlz
RG9jdW1lbnRCb3goKSkgewotICAgICAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0
aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrLCBGb3JtYXR0aW5nQ29u
dGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzQW5jZXN0b3JGb3JtYXR0aW5nQ29udGV4dCk7CisgICAg
ICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9y
Qm94KCpjb250YWluaW5nQmxvY2ssIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZp
bmRGaXhlZEhlaWdodEFuY2VzdG9yUXVpcmspOwogCi0gICAgICAgICAgICBhdXRvJiBjb250YWlu
aW5nQmxvY2tEaXNwbGF5Qm94ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmNv
bnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCksIEZvcm1hdHRpbmdDb250ZXh0OjpFc2Nh
cGVUeXBlOjpBY2Nlc3NBbmNlc3RvckZvcm1hdHRpbmdDb250ZXh0KTsKKyAgICAgICAgICAgIGF1
dG8mIGNvbnRhaW5pbmdCbG9ja0Rpc3BsYXlCb3ggPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRy
eUZvckJveCgqY29udGFpbmluZ0Jsb2NrLT5jb250YWluaW5nQmxvY2soKSwgRm9ybWF0dGluZ0Nv
bnRleHQ6OkVzY2FwZVJlYXNvbjo6RmluZEZpeGVkSGVpZ2h0QW5jZXN0b3JRdWlyayk7CiAgICAg
ICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9IEdlb21ldHJ5Ojpob3Jpem9udGFs
Q29uc3RyYWludHNGb3JJbkZsb3coY29udGFpbmluZ0Jsb2NrRGlzcGxheUJveCk7CiAgICAgICAg
ICAgICBhdXRvIHZlcnRpY2FsTWFyZ2luID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnkoKS5j
b21wdXRlZFZlcnRpY2FsTWFyZ2luKCpjb250YWluaW5nQmxvY2ssIGhvcml6b250YWxDb25zdHJh
aW50cyk7CiAgICAgICAgICAgICBhdXRvIHZlcnRpY2FsUGFkZGluZyA9IGJveEdlb21ldHJ5LnBh
ZGRpbmdUb3AoKS52YWx1ZU9yKDApICsgYm94R2VvbWV0cnkucGFkZGluZ0JvdHRvbSgpLnZhbHVl
T3IoMCk7CkBAIC02MSw3ICs2MSw3IEBAIExheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6OlF1
aXJrczo6aGVpZ2h0VmFsdWVPZk5lYXJlc3RDb250YWluaW5nQmxvY2tXaXRoRml4CiAgICAgICAg
IGNvbnRhaW5pbmdCbG9jayA9IGNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCk7CiAg
ICAgfQogICAgIC8vIEluaXRpYWwgY29udGFpbmluZyBibG9jayBoYXMgdG8gaGF2ZSBhIGhlaWdo
dC4KLSAgICByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94
LmluaXRpYWxDb250YWluaW5nQmxvY2soKSwgRm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVR5cGU6
OkFjY2Vzc0FuY2VzdG9yRm9ybWF0dGluZ0NvbnRleHQpLmNvbnRlbnRCb3goKS5oZWlnaHQoKSAt
IGJvZHlBbmREb2N1bWVudFZlcnRpY2FsTWFyZ2luUGFkZGluZ0FuZEJvcmRlcjsKKyAgICByZXR1
cm4gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94LmluaXRpYWxDb250
YWluaW5nQmxvY2soKSwgRm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVJlYXNvbjo6RmluZEZpeGVk
SGVpZ2h0QW5jZXN0b3JRdWlyaykuY29udGVudEJveCgpLmhlaWdodCgpIC0gYm9keUFuZERvY3Vt
ZW50VmVydGljYWxNYXJnaW5QYWRkaW5nQW5kQm9yZGVyOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKaW5kZXggMTg3MDRkZTk1
NWM1NGM3MzI4Y2Y3NWNlOWZkYWRlYzUwYjI2OTE5OC4uODcyMGE4ZmIxNWI0ZWQ4MzdiZmYyMzg2
NTBlNzNiNTRjZDY5YWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0
cy9GbG9hdGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMv
RmxvYXRpbmdDb250ZXh0LmNwcApAQCAtNDI1LDcgKzQyNSw3IEBAIEZsb2F0aW5nQ29udGV4dDo6
QWJzb2x1dGVDb29yZGluYXRlVmFsdWVzRm9yRmxvYXRBdm9pZGVyIEZsb2F0aW5nQ29udGV4dDo6
YWJzb2x1CiAgICAgYXV0byBkaXNwbGF5Qm94ID0gbWFwVG9GbG9hdGluZ1N0YXRlUm9vdChmbG9h
dEF2b2lkZXIpOwogCiAgICAgaWYgKCZjb250YWluaW5nQmxvY2sgPT0gJmZsb2F0aW5nU3RhdGUo
KS5yb290KCkpIHsKLSAgICAgICAgYXV0byBjb250YWluaW5nQmxvY2tHZW9tZXRyeSA9IGZvcm1h
dHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Jsb2NrLCBGb3JtYXR0aW5n
Q29udGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzUGFyZW50Rm9ybWF0dGluZ0NvbnRleHQpOworICAg
ICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5n
ZW9tZXRyeUZvckJveChjb250YWluaW5nQmxvY2ssIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVS
ZWFzb246OkZsb2F0Qm94TmVlZHNUb0JlSW5BYnNvbHV0ZUNvb3JkaW5hdGVzKTsKICAgICAgICAg
cmV0dXJuIHsgZGlzcGxheUJveCwgeyB9LCB7ICBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250
ZW50Qm94TGVmdCgpLCBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250ZW50Qm94UmlnaHQoKSB9
IH07CiAgICAgfQogICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrQWJzb2x1dGVEaXNwbGF5Qm94ID0g
bWFwVG9GbG9hdGluZ1N0YXRlUm9vdChjb250YWluaW5nQmxvY2spOwpAQCAtNDM2LDEwICs0MzYs
MTAgQEAgRmxvYXRpbmdDb250ZXh0OjpBYnNvbHV0ZUNvb3JkaW5hdGVWYWx1ZXNGb3JGbG9hdEF2
b2lkZXIgRmxvYXRpbmdDb250ZXh0OjphYnNvbHUKIERpc3BsYXk6OkJveCBGbG9hdGluZ0NvbnRl
eHQ6Om1hcFRvRmxvYXRpbmdTdGF0ZVJvb3QoY29uc3QgQm94JiBmbG9hdEJveCkgY29uc3QKIHsK
ICAgICBhdXRvJiBmbG9hdGluZ1N0YXRlUm9vdCA9IGZsb2F0aW5nU3RhdGUoKS5yb290KCk7Ci0g
ICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94
KGZsb2F0Qm94LCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzUGFyZW50Rm9y
bWF0dGluZ0NvbnRleHQpOworICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRl
eHQoKS5nZW9tZXRyeUZvckJveChmbG9hdEJveCwgRm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVJl
YXNvbjo6RmxvYXRCb3hOZWVkc1RvQmVJbkFic29sdXRlQ29vcmRpbmF0ZXMpOwogICAgIGF1dG8g
dG9wTGVmdCA9IGJveEdlb21ldHJ5LnRvcExlZnQoKTsKICAgICBmb3IgKGF1dG8qIGNvbnRhaW5p
bmdCbG9jayA9IGZsb2F0Qm94LmNvbnRhaW5pbmdCbG9jaygpOyBjb250YWluaW5nQmxvY2sgJiYg
Y29udGFpbmluZ0Jsb2NrICE9ICZmbG9hdGluZ1N0YXRlUm9vdDsgY29udGFpbmluZ0Jsb2NrID0g
Y29udGFpbmluZ0Jsb2NrLT5jb250YWluaW5nQmxvY2soKSkKLSAgICAgICAgdG9wTGVmdC5tb3Zl
QnkoZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrLCBG
b3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzUGFyZW50Rm9ybWF0dGluZ0NvbnRl
eHQpLnRvcExlZnQoKSk7CisgICAgICAgIHRvcExlZnQubW92ZUJ5KGZvcm1hdHRpbmdDb250ZXh0
KCkuZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5pbmdCbG9jaywgRm9ybWF0dGluZ0NvbnRleHQ6OkVz
Y2FwZVJlYXNvbjo6RmxvYXRCb3hOZWVkc1RvQmVJbkFic29sdXRlQ29vcmRpbmF0ZXMpLnRvcExl
ZnQoKSk7CiAKICAgICBhdXRvIG1hcHBlZERpc3BsYXlCb3ggPSBEaXNwbGF5OjpCb3goYm94R2Vv
bWV0cnkpOwogICAgIG1hcHBlZERpc3BsYXlCb3guc2V0VG9wTGVmdCh0b3BMZWZ0KTsKQEAgLTQ0
OSw5ICs0NDksOSBAQCBEaXNwbGF5OjpCb3ggRmxvYXRpbmdDb250ZXh0OjptYXBUb0Zsb2F0aW5n
U3RhdGVSb290KGNvbnN0IEJveCYgZmxvYXRCb3gpIGNvbnN0CiBMYXlvdXRVbml0IEZsb2F0aW5n
Q29udGV4dDo6bWFwVG9wVG9GbG9hdGluZ1N0YXRlUm9vdChjb25zdCBCb3gmIGZsb2F0Qm94KSBj
b25zdAogewogICAgIGF1dG8mIGZsb2F0aW5nU3RhdGVSb290ID0gZmxvYXRpbmdTdGF0ZSgpLnJv
b3QoKTsKLSAgICBhdXRvIHRvcCA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3go
ZmxvYXRCb3gsIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVUeXBlOjpBY2Nlc3NQYXJlbnRGb3Jt
YXR0aW5nQ29udGV4dCkudG9wKCk7CisgICAgYXV0byB0b3AgPSBmb3JtYXR0aW5nQ29udGV4dCgp
Lmdlb21ldHJ5Rm9yQm94KGZsb2F0Qm94LCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29u
OjpGbG9hdEJveE5lZWRzVG9CZUluQWJzb2x1dGVDb29yZGluYXRlcykudG9wKCk7CiAgICAgZm9y
IChhdXRvKiBjb250YWluZXIgPSBmbG9hdEJveC5jb250YWluaW5nQmxvY2soKTsgY29udGFpbmVy
ICYmIGNvbnRhaW5lciAhPSAmZmxvYXRpbmdTdGF0ZVJvb3Q7IGNvbnRhaW5lciA9IGNvbnRhaW5l
ci0+Y29udGFpbmluZ0Jsb2NrKCkpCi0gICAgICAgIHRvcCArPSBmb3JtYXR0aW5nQ29udGV4dCgp
Lmdlb21ldHJ5Rm9yQm94KCpjb250YWluZXIsIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVUeXBl
OjpBY2Nlc3NQYXJlbnRGb3JtYXR0aW5nQ29udGV4dCkudG9wKCk7CisgICAgICAgIHRvcCArPSBm
b3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KCpjb250YWluZXIsIEZvcm1hdHRpbmdD
b250ZXh0OjpFc2NhcGVSZWFzb246OkZsb2F0Qm94TmVlZHNUb0JlSW5BYnNvbHV0ZUNvb3JkaW5h
dGVzKS50b3AoKTsKICAgICByZXR1cm4gdG9wOwogfQogCkBAIC00NjMsNyArNDYzLDcgQEAgUG9p
bnQgRmxvYXRpbmdDb250ZXh0OjptYXBQb2ludEZyb21Gb3JtYXR0aW5nQ29udGV4dFJvb3RUb0Zs
b2F0aW5nU3RhdGVSb290KFBvaW4KICAgICAgICAgcmV0dXJuIHBvc2l0aW9uOwogICAgIGF1dG8g
bWFwcGVkUG9zaXRpb24gPSBwb3NpdGlvbjsKICAgICBmb3IgKGF1dG8qIGNvbnRhaW5lciA9ICZm
cm9tOyBjb250YWluZXIgJiYgY29udGFpbmVyICE9ICZ0bzsgY29udGFpbmVyID0gY29udGFpbmVy
LT5jb250YWluaW5nQmxvY2soKSkKLSAgICAgICAgbWFwcGVkUG9zaXRpb24ubW92ZUJ5KGZvcm1h
dHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5lciwgRm9ybWF0dGluZ0NvbnRl
eHQ6OkVzY2FwZVR5cGU6OkFjY2Vzc1BhcmVudEZvcm1hdHRpbmdDb250ZXh0KS50b3BMZWZ0KCkp
OworICAgICAgICBtYXBwZWRQb3NpdGlvbi5tb3ZlQnkoZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9t
ZXRyeUZvckJveCgqY29udGFpbmVyLCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpG
bG9hdEJveE5lZWRzVG9CZUluQWJzb2x1dGVDb29yZGluYXRlcykudG9wTGVmdCgpKTsKICAgICBy
ZXR1cm4gbWFwcGVkUG9zaXRpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3Bw
CmluZGV4IDNjYjljYTNmN2M0MjMyZWE3Nzk3NzY5M2I5ZTliNjI4NWU0M2Y1YmQuLjZiNmYwZGI0
YWQ1ZmZlMmE1ZjEwMzQ2YzVhYjRlNjc3MzY3OTA2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdD
b250ZXh0LmNwcApAQCAtMzE2LDcgKzMxNiw3IEBAIHZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4
dDo6Y29tcHV0ZUFuZERpc3RyaWJ1dGVFeHRyYUhvcml6b250YWxTcGFjZSgpCiAgICAgfTsKIAog
ICAgIGF1dG8mIHRhYmxlQm94ID0gcm9vdCgpOwotICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lk
dGggPSBnZW9tZXRyeUZvckJveCgqdGFibGVCb3guY29udGFpbmluZ0Jsb2NrKCksIEVzY2FwZVR5
cGU6OlRhYmxlRm9ybWF0dGluZ0NvbnRleHRBY2Nlc3NQYXJlbnRUYWJsZVdyYXBwZXJCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0KS5jb250ZW50Qm94V2lkdGgoKTsKKyAgICBhdXRvIGNvbnRhaW5pbmdC
bG9ja1dpZHRoID0gZ2VvbWV0cnlGb3JCb3goKnRhYmxlQm94LmNvbnRhaW5pbmdCbG9jaygpLCBF
c2NhcGVSZWFzb246OlRhYmxlTmVlZHNBY2Nlc3NUb1RhYmxlV3JhcHBlcikuY29udGVudEJveFdp
ZHRoKCk7CiAgICAgYXV0byBjb250ZW50V2lkdGggPSBnZW9tZXRyeSgpLmNvbXB1dGVkQ29udGVu
dFdpZHRoKHRhYmxlQm94LCBjb250YWluaW5nQmxvY2tXaWR0aCk7CiAgICAgaWYgKGNvbnRlbnRX
aWR0aCkgewogICAgICAgICBpZiAoKmNvbnRlbnRXaWR0aCA+IHRhYmxlV2lkdGhDb25zdHJhaW50
cy5taW5pbXVtKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387313</attachid>
            <date>2020-01-09 21:36:44 -0800</date>
            <delta_ts>2020-01-10 07:06:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206050-20200109213643.patch</filename>
            <type>text/plain</type>
            <size>25578</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI4ZjljMTNlYWRlYjI1
NTEzNmE3NDg5OWU2YWJhMTI1MGY3N2EzMy4uOTM1ZWEwNWIyZTM3YWY5ZTJjNGUwZTYxNmRjYjA5
OGVmYjNmNDc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTAxLTA5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gUmVwbGFjZSBGb3Jt
YXR0aW5nQ29udGV4dDo6RXNjYXBlVHlwZXMgd2l0aCBFc2NhcGVSZWFzb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYwNTAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU4NDY2ODYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEVzY2FwZVJlYXNvbiBpcyBtb3JlIGV4cGxpY2l0IGFib3V0IHdoeSBj
ZXJ0YWluIGZvcm1hdHRpbmcgY29udGV4dCBlc2NhcGVzIGFyZSBhbGxvd2VkLgorCisgICAgICAg
ICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Omdlb21ldHJ5Rm9yQm94IGNvbnN0KToKKyAgICAgICAgKiBs
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHRHZW9tZXRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6Y29udGVudEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeTo6c3RhdGljVmVydGljYWxQb3NpdGlvbkZvck91dE9mRmxvd1Bvc2l0aW9uZWQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OnN0YXRpY0hvcml6b250YWxQb3NpdGlvbkZvck91dE9mRmxvd1Bvc2l0aW9uZWQgY29uc3QpOgor
ICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmhlaWdodFZhbHVlT2ZO
ZWFyZXN0Q29udGFpbmluZ0Jsb2NrV2l0aEZpeGVkSGVpZ2h0KToKKyAgICAgICAgKiBsYXlvdXQv
ZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZs
b2F0aW5nQ29udGV4dDo6YWJzb2x1dGVEaXNwbGF5Qm94Q29vcmRpbmF0ZXMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ0NvbnRleHQ6Om1hcFRvRmxvYXRpbmdTdGF0
ZVJvb3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ0NvbnRleHQ6
Om1hcFRvcFRvRmxvYXRpbmdTdGF0ZVJvb3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpGbG9hdGluZ0NvbnRleHQ6Om1hcFBvaW50RnJvbUZvcm1hdHRpbmdDb250ZXh0Um9vdFRv
RmxvYXRpbmdTdGF0ZVJvb3QgY29uc3QpOgorICAgICAgICAqIGxheW91dC90YWJsZWZvcm1hdHRp
bmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OlRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVBbmREaXN0cmlidXRlRXh0cmFIb3Jpem9u
dGFsU3BhY2UpOgorCiAyMDIwLTAxLTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBlbmNvZGVycyBhbmQgZGVjb2RlcnMgZm9yIG1v
cmUgZm9udC1yZWxhdGVkIGVudGl0aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0LmNwcAppbmRleCBlYjE2M2FkNTQ4MGY5ZGY4YTE2NTdmODliYmEzZjQ1YjJhOTI3
Zjc3Li4zOGM0YzEwMjAzOTUwZjQzNTQ2ZTIwNzQzMWFhNGY1ZTMxZThkOTI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTIxMSw0NCArMjExLDYx
IEBAIExheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6Om1hcFJpZ2h0VG9Gb3JtYXR0aW5nQ29u
dGV4dFJvb3QoY29uc3QgQm94JiBsYXlvdXRCCiAgICAgcmV0dXJuIG1hcEhvcml6b250YWxQb3Np
dGlvblRvQW5jZXN0b3IoKnRoaXMsIGdlb21ldHJ5Rm9yQm94KGxheW91dEJveCkucmlnaHQoKSwg
KmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSwgcm9vdCgpKTsKIH0KIAotY29uc3QgRGlzcGxh
eTo6Qm94JiBGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0cnlGb3JCb3goY29uc3QgQm94JiBsYXlv
dXRCb3gsIE9wdGlvbmFsPEVzY2FwZVR5cGU+IGVzY2FwZVR5cGUpIGNvbnN0Citjb25zdCBEaXNw
bGF5OjpCb3gmIEZvcm1hdHRpbmdDb250ZXh0OjpnZW9tZXRyeUZvckJveChjb25zdCBCb3gmIGxh
eW91dEJveCwgT3B0aW9uYWw8RXNjYXBlUmVhc29uPiBlc2NhcGVSZWFzb24pIGNvbnN0CiB7Ci0g
ICAgVU5VU0VEX1BBUkFNKGVzY2FwZVR5cGUpOworICAgIFVOVVNFRF9QQVJBTShlc2NhcGVSZWFz
b24pOwogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgYXV0byBpc09rVG9BY2Nlc3NEaXNwbGF5Qm94
ID0gWyZdIHsKLSAgICAgICAgLy8gMS4gSGlnaGx5IGNvbW1vbiBjYXNlIG9mIGFjY2Vzc2luZyB0
aGUgZm9ybWF0dGluZyByb290J3MgZGlzcGxheSBib3ggaXRzZWxmLiBUaGlzIGlzIGZvcm1hdHRp
bmcgY29udGV4dCBlc2NhcGluZyBpbiB0aGUgc3RyaWN0IHNlbnNlLCBzaW5jZQotICAgICAgICAv
LyB0aGUgZm9ybWF0dGluZyBjb250ZXh0IHJvb3QgYm94IGxpdmVzIGluIHRoZSBwYXJlbnQgZm9y
bWF0dGluZyBjb250ZXh0LgotICAgICAgICAvLyBUaGlzIGhhcHBlbnMgZS5nLiB3aGVuIGEgYmxv
Y2sgbGV2ZWwgYm94IGJveCBuZWVkcyB0byBzdHJldGNoIGhvcml6b250YWxseSBhbmQgY2hlY2tz
IGl0cyBjb250YWluaW5nIGJsb2NrIGZvciBob3Jpem9udGFsIHNwYWNlICh0aGlzIHNob3VsZCBw
cm9iYWJseSBiZSBsaW1pdGVkIHRvIHJlYWRpbmcgaG9yaXpvbnRhbCBjb25zdHJhaW50IHZhbHVl
cykuCi0gICAgICAgIGlmICgmbGF5b3V0Qm94ID09ICZyb290KCkpCisgICAgICAgIGlmICghbGF5
b3V0Qm94LmlzSW5pdGlhbENvbnRhaW5pbmdCbG9jaygpICYmICZsYXlvdXRCb3guZm9ybWF0dGlu
Z0NvbnRleHRSb290KCkgPT0gJnJvb3QoKSkgeworICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUg
bm9uLWVzY2FwZSBjYXNlIG9mIGFjY2Vzc2luZyBhIGJveCdzIGdlb21ldHJ5IGluZm9ybWF0aW9u
IHdpdGhpbiB0aGUgc2FtZSBmb3JtYXR0aW5nIGNvbnRleHQuCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLQotICAgICAgICAvLyAyLiBTcGVjaWFsIGNhc2Ugd2hlbiBhY2Nlc3NpbmcgdGhlIElD
QidzIGRpc3BsYXkgYm94Ci0gICAgICAgIGlmIChsYXlvdXRCb3guaXNJbml0aWFsQ29udGFpbmlu
Z0Jsb2NrKCkpIHsKLSAgICAgICAgICAgIC8vIFRoZXJlIGhhcyB0byBiZSBhIHZhbGlkIHJlYXNv
biB0byBhY2Nlc3MgdGhlIElDQi4KLSAgICAgICAgICAgIGlmICghZXNjYXBlVHlwZSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gKmVzY2FwZVR5cGUg
PT0gRXNjYXBlVHlwZTo6QWNjZXNzUGFyZW50Rm9ybWF0dGluZ0NvbnRleHQgfHwgKmVzY2FwZVR5
cGUgPT0gRXNjYXBlVHlwZTo6QWNjZXNzQW5jZXN0b3JGb3JtYXR0aW5nQ29udGV4dDsKICAgICAg
ICAgfQogCi0gICAgICAgIC8vIDMuIE1vc3QgY29tbW9uIGNhc2Ugb2YgYWNjZXNzaW5nIGJveC9j
b250YWluaW5nIGJsb2NrIGRpc3BsYXkgYm94IHdpdGhpbiB0aGUgc2FtZSBmb3JtYXR0aW5nIGNv
bnRleHQgdHJlZS4KLSAgICAgICAgaWYgKCZsYXlvdXRCb3guZm9ybWF0dGluZ0NvbnRleHRSb290
KCkgPT0gJnJvb3QoKSkKKyAgICAgICAgaWYgKCZsYXlvdXRCb3ggPT0gJnJvb3QoKSkgeworICAg
ICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgZm9ybWF0dGluZyBjb250ZXh0IGVzY2FwaW5nIGlu
IHRoZSBzdHJpY3Qgc2Vuc2UsIHNpbmNlIHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdCBib3gg
bGl2ZXMgaW4gdGhlIHBhcmVudCBmb3JtYXR0aW5nIGNvbnRleHQuCisgICAgICAgICAgICAvLyBU
aGlzIGhhcHBlbnMgZS5nLiB3aGVuIGEgYmxvY2sgbGV2ZWwgYm94IGJveCBuZWVkcyB0byBzdHJl
dGNoIGhvcml6b250YWxseSBhbmQgY2hlY2tzIGl0cyBjb250YWluaW5nIGJsb2NrIGZvciBob3Jp
em9udGFsIHNwYWNlICh0aGlzIHNob3VsZCBwcm9iYWJseSBiZSBsaW1pdGVkIHRvIHJlYWRpbmcg
aG9yaXpvbnRhbCBjb25zdHJhaW50IHZhbHVlcykuCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQogCi0gICAgICAgIGlmICghZXNjYXBlVHlwZSkKKyAgICAgICAgaWYgKCFlc2Nh
cGVSZWFzb24pIHsKKyAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgYW55IGFjY2VzcyBpcyBj
b25zaWRlcmVkIGFuIGVzY2FwZS4KICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQogCi0gICAgICAgIC8vIDQuIEFjY2Vzc2luZyBjaGlsZCBmb3JtYXR0aW5nIGNvbnRleHQgc3Vi
dHJlZSBpcyByZWxhdGl2ZWx5IHJhcmUuIEl0IGhhcHBlbnMgd2hlbiBlLmcgYSBzaHJpbmsgdG8g
Zml0IChvdXQtb2YtZmxvdyBibG9jayBsZXZlbCkgYm94IGNoZWNrcyB0aGUgY29udGVudCB3aWR0
aC4KLSAgICAgICAgLy8gQ2hlY2tpbmcgdGhlIGNvbnRlbnQgd2lkdGggbWVhbnMgdG8gZ2V0IGRp
c3BsYXkgYm94ZXMgZnJvbSB0aGUgZXN0YWJsaXNoZWQgZm9ybWF0dGluZyBjb250ZXh0ICh3ZSB0
cnkgdG8gYWNjZXNzIGRpc3BsYXkgYm94ZXMgaW4gYSBjaGlsZCBmb3JtYXR0aW5nIGNvbnRleHQp
Ci0gICAgICAgIGlmICgqZXNjYXBlVHlwZSA9PSBFc2NhcGVUeXBlOjpBY2Nlc3NDaGlsZEZvcm1h
dHRpbmdDb250ZXh0ICYmICZsYXlvdXRCb3guZm9ybWF0dGluZ0NvbnRleHRSb290KCkuZm9ybWF0
dGluZ0NvbnRleHRSb290KCkgPT0gJnJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBpZiAoKmVzY2FwZVJlYXNvbiA9PSBFc2NhcGVSZWFzb246OkJvZHlTdHJlY2hlc1Rv
Vmlld3BvcnRRdWlyaykgeworICAgICAgICAgICAgQVNTRVJUKGxheW91dFN0YXRlKCkuaW5RdWly
a3NNb2RlKCkpOworICAgICAgICAgICAgcmV0dXJuIGxheW91dEJveC5pc0luaXRpYWxDb250YWlu
aW5nQmxvY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgqZXNjYXBlUmVhc29uID09IEVz
Y2FwZVJlYXNvbjo6U3Ryb2tlT3ZlcmZsb3dOZWVkc1ZpZXdwb3J0R2VvbWV0cnkpCisgICAgICAg
ICAgICByZXR1cm4gbGF5b3V0Qm94LmlzSW5pdGlhbENvbnRhaW5pbmdCbG9jaygpOworCisgICAg
ICAgIGlmICgqZXNjYXBlUmVhc29uID09IEVzY2FwZVJlYXNvbjo6TmVlZHNHZW9tZXRyeUZyb21F
c3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0KSB7CisgICAgICAgICAgICAvLyBUaGlzIGlzIHRo
ZSBjYXNlIHdoZW4gYSBmb3JtYXR0aW5nIHJvb3QgY29sbGVjdHMgZ2VvbWV0cnkgaW5mb3JtYXRp
b24gZnJvbSB0aGUgZXN0YWJsaXNoZWQKKyAgICAgICAgICAgIC8vIGZvcm1hdHRpbmcgY29udGV4
dCB0byBiZSBhYmxlIHRvIGRldGVybWluZSB3aWR0aC9oZWlnaHQuCisgICAgICAgICAgICAvLyBl
LmcgPGRpdj50ZXh0IGNvbnRlbnQ8L2Rpdj4uIFRoZSA8ZGl2PiBpcyBhIGZvcm1hdHRpbmcgcm9v
dCBvZiB0aGUgSUZDLgorICAgICAgICAgICAgLy8gSW4gb3JkZXIgdG8gY29tcHV0ZSB0aGUgaGVp
Z2h0IG9mIHRoZSA8ZGl2Piwgd2UgbmVlZCB0byBsb29rIGluc2lkZSB0aGUgSUZDIGFuZCBnYXRo
ZXIgZ2VvbWV0cnkgaW5mb3JtYXRpb24uCisgICAgICAgICAgICByZXR1cm4gJmxheW91dEJveC5m
b3JtYXR0aW5nQ29udGV4dFJvb3QoKS5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSA9PSAmcm9vdCgp
OworICAgICAgICB9CiAKLSAgICAgICAgLy8gNS4gRmxvYXQgYm94IHRvcC9sZWZ0IHZhbHVlcyBh
cmUgbWFwcGVkIHJlbGF0aXZlIHRvIHRoZSBGbG9hdFN0YXRlJ3Mgcm9vdC4gSW5saW5lIGZvcm1h
dHRpbmcgY29udGV4dHMoQSkgaW5oZXJpdCBmbG9hdHMgZnJvbSBwYXJlbnQKLSAgICAgICAgLy8g
YmxvY2sgZm9ybWF0dGluZyBjb250ZXh0cyhCKS4gRmxvYXRzIGluIHRoZXNlIGlubGluZSBmb3Jt
YXR0aW5nIGNvbnRleHRzKEEpIG5lZWQgdG8gYmUgbWFwcGVkIHRvIHRoZSBwYXJlbnQsIGJsb2Nr
IGZvcm1hdHRpbmcgY29udGV4dChCKS4KLSAgICAgICAgaWYgKCplc2NhcGVUeXBlID09IEVzY2Fw
ZVR5cGU6OkFjY2Vzc1BhcmVudEZvcm1hdHRpbmdDb250ZXh0ICYmICZsYXlvdXRCb3guZm9ybWF0
dGluZ0NvbnRleHRSb290KCkgPT0gJnJvb3QoKS5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSkKKyAg
ICAgICAgaWYgKCplc2NhcGVSZWFzb24gPT0gRXNjYXBlUmVhc29uOjpPdXRPZkZsb3dCb3hOZWVk
c0luRmxvd0dlb21ldHJ5KSB7CisgICAgICAgICAgICAvLyBXaGVuIGNvbXB1dGluZyB0aGUgc3Rh
dGljIHBvc2l0aW9uIG9mIGFuIG91dC1vZi1mbG93IGJveCwgd2UgbmVlZCB0byBnYXRoZXIgc2li
bGluZy9wYXJlbnQgZ2VvbWV0cnkgaW5mb3JtYXRpb24KKyAgICAgICAgICAgIC8vIGFzIGlmIHRo
ZSBvdXQtb2YtZmxvdyBib3ggd2FzIGEgc2ltcGxlIGluZmxvdyBib3guCisgICAgICAgICAgICAv
LyBOb3cgc2luY2UgdGhlIG91dC1vZi1mbG93IGFuZCB0aGUgc2libGluZy9wYXJlbnQgYm94ZXMg
Y291bGQgdmVyeSB3ZWxsIGJlIGluIGRpZmZlcmVudCBjb250YWluaW5nIGJsb2NrIHN1YnRyZWVz
CisgICAgICAgICAgICAvLyB0aGUgZm9ybWF0dGluZyBjb250ZXh0IHRoZXkgbGl2ZSBpbiBjb3Vs
ZCBhbHNvIGJlIHZlcnkgZGlmZmVyZW50LgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoKmVzY2FwZVJlYXNvbiA9PSBFc2NhcGVSZWFzb246OkZsb2F0
Qm94TmVlZHNUb0JlSW5BYnNvbHV0ZUNvb3JkaW5hdGVzKSB7CisgICAgICAgICAgICAvLyBGbG9h
dCBib3ggdG9wL2xlZnQgdmFsdWVzIGFyZSBtYXBwZWQgcmVsYXRpdmUgdG8gdGhlIEZsb2F0U3Rh
dGUncyByb290LiBJbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0cyhBKSBpbmhlcml0IGZsb2F0cyBm
cm9tIHBhcmVudAorICAgICAgICAgICAgLy8gYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0cyhCKS4g
RmxvYXRzIGluIHRoZXNlIGlubGluZSBmb3JtYXR0aW5nIGNvbnRleHRzKEEpIG5lZWQgdG8gYmUg
bWFwcGVkIHRvIHRoZSBwYXJlbnQsIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dChCKS4KKyAgICAg
ICAgICAgIGF1dG8mIGZvcm1hdHRpbmdDb250ZXh0Um9vdCA9IGxheW91dEJveC5mb3JtYXR0aW5n
Q29udGV4dFJvb3QoKTsKKyAgICAgICAgICAgIHJldHVybiAmZm9ybWF0dGluZ0NvbnRleHRSb290
ID09ICZyb290KCkgfHwgJmZvcm1hdHRpbmdDb250ZXh0Um9vdCA9PSAmcm9vdCgpLmZvcm1hdHRp
bmdDb250ZXh0Um9vdCgpOworICAgICAgICB9CiAKLSAgICAgICAgLy8gNi4gRmluZGluZyB0aGUg
Zmlyc3QgY29udGFpbmluZyBibG9jayB3aXRoIGZpeGVkIGhlaWdodCBxdWlyay4gU2VlIFF1aXJr
czo6aGVpZ2h0VmFsdWVPZk5lYXJlc3RDb250YWluaW5nQmxvY2tXaXRoRml4ZWRIZWlnaHQKLSAg
ICAgICAgaWYgKCplc2NhcGVUeXBlID09IEVzY2FwZVR5cGU6OkFjY2Vzc0FuY2VzdG9yRm9ybWF0
dGluZ0NvbnRleHQpIHsKKyAgICAgICAgaWYgKCplc2NhcGVSZWFzb24gPT0gRXNjYXBlUmVhc29u
OjpGaW5kRml4ZWRIZWlnaHRBbmNlc3RvclF1aXJrKSB7CisgICAgICAgICAgICBBU1NFUlQobGF5
b3V0U3RhdGUoKS5pblF1aXJrc01vZGUoKSk7CisgICAgICAgICAgICAvLyBGaW5kIHRoZSBmaXJz
dCBjb250YWluaW5nIGJsb2NrIHdpdGggZml4ZWQgaGVpZ2h0IHF1aXJrLiBTZWUgUXVpcmtzOjpo
ZWlnaHRWYWx1ZU9mTmVhcmVzdENvbnRhaW5pbmdCbG9ja1dpdGhGaXhlZEhlaWdodAogICAgICAg
ICAgICAgYXV0byYgdGFyZ2V0Rm9ybWF0dGluZ1Jvb3QgPSBsYXlvdXRCb3guZm9ybWF0dGluZ0Nv
bnRleHRSb290KCk7CiAgICAgICAgICAgICBhdXRvKiBhbmNlc3RvckZvcm1hdHRpbmdDb250ZXh0
Um9vdCA9ICZyb290KCkuZm9ybWF0dGluZ0NvbnRleHRSb290KCk7CiAgICAgICAgICAgICB3aGls
ZSAodHJ1ZSkgewpAQCAtMjU4LDE1ICsyNzUsMTcgQEAgY29uc3QgRGlzcGxheTo6Qm94JiBGb3Jt
YXR0aW5nQ29udGV4dDo6Z2VvbWV0cnlGb3JCb3goY29uc3QgQm94JiBsYXlvdXRCb3gsIE9wdGkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGFuY2Vz
dG9yRm9ybWF0dGluZ0NvbnRleHRSb290ID0gJmFuY2VzdG9yRm9ybWF0dGluZ0NvbnRleHRSb290
LT5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIDcuIFRhYmxlcyBhcmUgd3JhcHBl
ZCBpbiBhIDIgbGV2ZWwgZm9ybWF0dGluZyBjb250ZXh0IHN0cnVjdHVyZS4gQSA8dGFibGU+IGVs
ZW1lbnQgaW5pdGlhdGVzIGEgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IGZvciBpdHMgcHJpbmNp
cGFsIHRhYmxlIGJveAotICAgICAgICAvLyB3aGVyZSB0aGUgY2FwdGlvbiBhbmQgdGhlIHRhYmxl
IGNvbnRlbnQgbGl2ZS4gSXQgYWxzbyBpbml0aWF0ZXMgYSB0YWJsZSB3cmFwcGVyIGJveCB3aGlj
aCBlc3RhYmxpc2hlcyB0aGUgdGFibGUgZm9ybWF0dGluZyBjb250ZXh0LgotICAgICAgICAvLyBJ
biBtYW55IGNhc2VzIHRoZSBURkMgbmVlZHMgYWNjZXNzIHRvIHRoZSBwYXJlbnQgKGdlbmVyYXRl
ZCkgQkZDLgotICAgICAgICBpZiAoKmVzY2FwZVR5cGUgPT0gRXNjYXBlVHlwZTo6VGFibGVGb3Jt
YXR0aW5nQ29udGV4dEFjY2Vzc1BhcmVudFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQKLSAgICAgICAgICAgICYmICgmbGF5b3V0Qm94ID09ICZyb290KCkuZm9ybWF0dGluZ0NvbnRl
eHRSb290KCkgfHwgJmxheW91dEJveC5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKSA9PSAmcm9vdCgp
LmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBpZiAoKmVzY2FwZVJlYXNvbiA9PSBFc2NhcGVSZWFzb246OlRhYmxlTmVlZHNBY2Nlc3NU
b1RhYmxlV3JhcHBlcikgeworICAgICAgICAgICAgLy8gVGFibGVzIGFyZSB3cmFwcGVkIGluIGEg
MiBsZXZlbCBmb3JtYXR0aW5nIGNvbnRleHQgc3RydWN0dXJlLiBBIDx0YWJsZT4gZWxlbWVudCBp
bml0aWF0ZXMgYSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgZm9yIGl0cyBwcmluY2lwYWwgdGFi
bGUgYm94CisgICAgICAgICAgICAvLyB3aGVyZSB0aGUgY2FwdGlvbiBhbmQgdGhlIHRhYmxlIGNv
bnRlbnQgbGl2ZS4gSXQgYWxzbyBpbml0aWF0ZXMgYSB0YWJsZSB3cmFwcGVyIGJveCB3aGljaCBl
c3RhYmxpc2hlcyB0aGUgdGFibGUgZm9ybWF0dGluZyBjb250ZXh0LgorICAgICAgICAgICAgLy8g
SW4gbWFueSBjYXNlcyB0aGUgVEZDIG5lZWRzIGFjY2VzcyB0byB0aGUgcGFyZW50IChnZW5lcmF0
ZWQpIEJGQy4KKyAgICAgICAgICAgIHJldHVybiAmbGF5b3V0Qm94ID09ICZyb290KCkuZm9ybWF0
dGluZ0NvbnRleHRSb290KCk7CisgICAgICAgIH0KIAorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggYWZkZjBhMmNmYjVhMTkxOTdmMTg2
YjYyMDNkNjUzMzMwOWMxM2QxZS4uNTI3M2RhNDBhN2JmZTE2MjZmZGY1ZWY1NjJkZjMxZTI2ZDFl
YWZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTg0
LDEzICs4NCwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0lubGluZUZvcm1hdHRpbmdDb250ZXh0
KCkgY29uc3QgeyByZXR1cm4gcm9vdCgpLmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQoKTsgfQogICAgIGJvb2wgaXNUYWJsZUZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1
cm4gcm9vdCgpLmVzdGFibGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpOyB9CiAKLSAgICBl
bnVtIGNsYXNzIEVzY2FwZVR5cGUgewotICAgICAgICBBY2Nlc3NDaGlsZEZvcm1hdHRpbmdDb250
ZXh0LAotICAgICAgICBBY2Nlc3NQYXJlbnRGb3JtYXR0aW5nQ29udGV4dCwKLSAgICAgICAgQWNj
ZXNzQW5jZXN0b3JGb3JtYXR0aW5nQ29udGV4dCwKLSAgICAgICAgVGFibGVGb3JtYXR0aW5nQ29u
dGV4dEFjY2Vzc1BhcmVudFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQKKyAgICBl
bnVtIGNsYXNzIEVzY2FwZVJlYXNvbiB7CisgICAgICAgIE5lZWRzR2VvbWV0cnlGcm9tRXN0YWJs
aXNoZWRGb3JtYXR0aW5nQ29udGV4dCwKKyAgICAgICAgT3V0T2ZGbG93Qm94TmVlZHNJbkZsb3dH
ZW9tZXRyeSwKKyAgICAgICAgRmxvYXRCb3hOZWVkc1RvQmVJbkFic29sdXRlQ29vcmRpbmF0ZXMs
CisgICAgICAgIEZpbmRGaXhlZEhlaWdodEFuY2VzdG9yUXVpcmssCisgICAgICAgIEJvZHlTdHJl
Y2hlc1RvVmlld3BvcnRRdWlyaywKKyAgICAgICAgU3Ryb2tlT3ZlcmZsb3dOZWVkc1ZpZXdwb3J0
R2VvbWV0cnksCisgICAgICAgIFRhYmxlTmVlZHNBY2Nlc3NUb1RhYmxlV3JhcHBlcgogICAgIH07
Ci0gICAgY29uc3QgRGlzcGxheTo6Qm94JiBnZW9tZXRyeUZvckJveChjb25zdCBCb3gmLCBPcHRp
b25hbDxFc2NhcGVUeXBlPiA9IFdURjo6bnVsbG9wdCkgY29uc3Q7CisgICAgY29uc3QgRGlzcGxh
eTo6Qm94JiBnZW9tZXRyeUZvckJveChjb25zdCBCb3gmLCBPcHRpb25hbDxFc2NhcGVSZWFzb24+
ID0gV1RGOjpudWxsb3B0KSBjb25zdDsKIAogcHJvdGVjdGVkOgogICAgIHVzaW5nIExheW91dFF1
ZXVlID0gVmVjdG9yPGNvbnN0IEJveCo+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IGVlZjY2NTI3YzU4Zjk3OTgyYjdm
OTFkY2QzMDJkYWViODE1MGQzYzMuLjU5MDA1MWQxMmEzMzkzNWQ1MGFlY2QyNTYyY2ViZjY5NjJm
Nzc0MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4
dEdlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRl
eHRHZW9tZXRyeS5jcHAKQEAgLTEzOCw4ICsxMzgsOCBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6Y29udGVudEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChj
bwogICAgICAgICBib3R0b20gPSBsaW5lQm94ZXMubGFzdCgpLmxvZ2ljYWxCb3R0b20oKTsKICAg
ICB9IGVsc2UgaWYgKGZvcm1hdHRpbmdSb290Q29udGFpbmVyLmVzdGFibGlzaGVzQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dCgpIHx8IGZvcm1hdHRpbmdSb290Q29udGFpbmVyLmVzdGFibGlzaGVzVGFi
bGVGb3JtYXR0aW5nQ29udGV4dCgpIHx8IGZvcm1hdHRpbmdSb290Q29udGFpbmVyLmlzRG9jdW1l
bnRCb3goKSkgewogICAgICAgICBpZiAoZm9ybWF0dGluZ1Jvb3RDb250YWluZXIuaGFzSW5GbG93
Q2hpbGQoKSkgewotICAgICAgICAgICAgYXV0byYgZmlyc3RCb3hHZW9tZXRyeSA9IGZvcm1hdHRp
bmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpmb3JtYXR0aW5nUm9vdENvbnRhaW5lci5maXJzdElu
Rmxvd0NoaWxkKCksIEVzY2FwZVR5cGU6OkFjY2Vzc0NoaWxkRm9ybWF0dGluZ0NvbnRleHQpOwot
ICAgICAgICAgICAgYXV0byYgbGFzdEJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2Vv
bWV0cnlGb3JCb3goKmZvcm1hdHRpbmdSb290Q29udGFpbmVyLmxhc3RJbkZsb3dDaGlsZCgpLCBF
c2NhcGVUeXBlOjpBY2Nlc3NDaGlsZEZvcm1hdHRpbmdDb250ZXh0KTsKKyAgICAgICAgICAgIGF1
dG8mIGZpcnN0Qm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgq
Zm9ybWF0dGluZ1Jvb3RDb250YWluZXIuZmlyc3RJbkZsb3dDaGlsZCgpLCBFc2NhcGVSZWFzb246
Ok5lZWRzR2VvbWV0cnlGcm9tRXN0YWJsaXNoZWRGb3JtYXR0aW5nQ29udGV4dCk7CisgICAgICAg
ICAgICBhdXRvJiBsYXN0Qm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZv
ckJveCgqZm9ybWF0dGluZ1Jvb3RDb250YWluZXIubGFzdEluRmxvd0NoaWxkKCksIEVzY2FwZVJl
YXNvbjo6TmVlZHNHZW9tZXRyeUZyb21Fc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0KTsKICAg
ICAgICAgICAgIHRvcCA9IGZpcnN0Qm94R2VvbWV0cnkucmVjdFdpdGhNYXJnaW4oKS50b3AoKTsK
ICAgICAgICAgICAgIGJvdHRvbSA9IGxhc3RCb3hHZW9tZXRyeS5yZWN0V2l0aE1hcmdpbigpLmJv
dHRvbSgpOwogICAgICAgICB9CkBAIC0yMjcsMTggKzIyNywxOCBAQCBMYXlvdXRVbml0IEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6c3RhdGljVmVydGljYWxQb3NpdGlvbkZvck91dE9mRmxv
d1Bvc2l0aQogICAgIExheW91dFVuaXQgdG9wOwogICAgIGlmIChhdXRvKiBwcmV2aW91c0luRmxv
d1NpYmxpbmcgPSBsYXlvdXRCb3gucHJldmlvdXNJbkZsb3dTaWJsaW5nKCkpIHsKICAgICAgICAg
Ly8gQWRkIHNpYmxpbmcgb2Zmc2V0Ci0gICAgICAgIGF1dG8mIHByZXZpb3VzSW5GbG93Qm94R2Vv
bWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqcHJldmlvdXNJbkZsb3dT
aWJsaW5nLCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzQ2hpbGRGb3JtYXR0
aW5nQ29udGV4dCk7CisgICAgICAgIGF1dG8mIHByZXZpb3VzSW5GbG93Qm94R2VvbWV0cnkgPSBm
b3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqcHJldmlvdXNJbkZsb3dTaWJsaW5nLCBF
c2NhcGVSZWFzb246Ok91dE9mRmxvd0JveE5lZWRzSW5GbG93R2VvbWV0cnkpOwogICAgICAgICB0
b3AgKz0gcHJldmlvdXNJbkZsb3dCb3hHZW9tZXRyeS5ib3R0b20oKSArIHByZXZpb3VzSW5GbG93
Qm94R2VvbWV0cnkubm9uQ29sbGFwc2VkTWFyZ2luQWZ0ZXIoKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBBU1NFUlQobGF5b3V0Qm94LnBhcmVudCgpKTsKLSAgICAgICAgdG9wID0gZm9ybWF0dGlu
Z0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5wYXJlbnQoKSwgRm9ybWF0dGluZ0Nv
bnRleHQ6OkVzY2FwZVR5cGU6OkFjY2Vzc0NoaWxkRm9ybWF0dGluZ0NvbnRleHQpLmNvbnRlbnRC
b3hUb3AoKTsKKyAgICAgICAgdG9wID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3go
KmxheW91dEJveC5wYXJlbnQoKSwgRXNjYXBlUmVhc29uOjpPdXRPZkZsb3dCb3hOZWVkc0luRmxv
d0dlb21ldHJ5KS5jb250ZW50Qm94VG9wKCk7CiAgICAgfQogCiAgICAgLy8gUmVzb2x2ZSB0b3Ag
YWxsIHRoZSB3YXkgdXAgdG8gdGhlIGNvbnRhaW5pbmcgYmxvY2suCiAgICAgYXV0byYgY29udGFp
bmluZ0Jsb2NrID0gKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKTsKICAgICAvLyBTdGFydCB3
aXRoIHRoZSBwYXJlbnQgc2luY2Ugd2UgcHJldGVuZCB0aGF0IHRoaXMgYm94IGlzIG5vcm1hbCBm
bG93LgogICAgIGZvciAoYXV0byogY29udGFpbmVyID0gbGF5b3V0Qm94LnBhcmVudCgpOyBjb250
YWluZXIgIT0gJmNvbnRhaW5pbmdCbG9jazsgY29udGFpbmVyID0gY29udGFpbmVyLT5jb250YWlu
aW5nQmxvY2soKSkgewotICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250
ZXh0Lmdlb21ldHJ5Rm9yQm94KCpjb250YWluZXIsIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVU
eXBlOjpBY2Nlc3NDaGlsZEZvcm1hdHRpbmdDb250ZXh0KTsKKyAgICAgICAgYXV0byYgYm94R2Vv
bWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFpbmVyLCBFc2Nh
cGVSZWFzb246Ok91dE9mRmxvd0JveE5lZWRzSW5GbG93R2VvbWV0cnkpOwogICAgICAgICAvLyBE
aXNwbGF5OjpCb3g6OnRvcCBpcyB0aGUgYm9yZGVyIGJveCB0b3AgcG9zaXRpb24gaW4gaXRzIGNv
bnRhaW5pbmcgYmxvY2sncyBjb29yZGluYXRlIHN5c3RlbS4KICAgICAgICAgdG9wICs9IGJveEdl
b21ldHJ5LnRvcCgpOwogICAgICAgICBBU1NFUlQoIWNvbnRhaW5lci0+aXNQb3NpdGlvbmVkKCkg
fHwgbGF5b3V0Qm94LmlzRml4ZWRQb3NpdGlvbmVkKCkpOwpAQCAtMjU1LDEzICsyNTUsMTMgQEAg
TGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnN0YXRpY0hvcml6b250YWxQ
b3NpdGlvbkZvck91dE9mRmxvd1Bvc2kKICAgICAvLyBTdGFydCB3aXRoIHRoaXMgYm94J3MgYm9y
ZGVyIGJveCBvZmZzZXQgZnJvbSB0aGUgcGFyZW50J3MgYm9yZGVyIGJveC4KICAgICBhdXRvJiBm
b3JtYXR0aW5nQ29udGV4dCA9IHRoaXMtPmZvcm1hdHRpbmdDb250ZXh0KCk7CiAgICAgQVNTRVJU
KGxheW91dEJveC5wYXJlbnQoKSk7Ci0gICAgYXV0byBsZWZ0ID0gZm9ybWF0dGluZ0NvbnRleHQu
Z2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5wYXJlbnQoKSwgRm9ybWF0dGluZ0NvbnRleHQ6OkVz
Y2FwZVR5cGU6OkFjY2Vzc0NoaWxkRm9ybWF0dGluZ0NvbnRleHQpLmNvbnRlbnRCb3hMZWZ0KCk7
CisgICAgYXV0byBsZWZ0ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmxheW91
dEJveC5wYXJlbnQoKSwgRXNjYXBlUmVhc29uOjpPdXRPZkZsb3dCb3hOZWVkc0luRmxvd0dlb21l
dHJ5KS5jb250ZW50Qm94TGVmdCgpOwogCiAgICAgLy8gUmVzb2x2ZSBsZWZ0IGFsbCB0aGUgd2F5
IHVwIHRvIHRoZSBjb250YWluaW5nIGJsb2NrLgogICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9jayA9
ICpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7CiAgICAgLy8gU3RhcnQgd2l0aCB0aGUgcGFy
ZW50IHNpbmNlIHdlIHByZXRlbmQgdGhhdCB0aGlzIGJveCBpcyBub3JtYWwgZmxvdy4KICAgICBm
b3IgKGF1dG8qIGNvbnRhaW5lciA9IGxheW91dEJveC5wYXJlbnQoKTsgY29udGFpbmVyICE9ICZj
b250YWluaW5nQmxvY2s7IGNvbnRhaW5lciA9IGNvbnRhaW5lci0+Y29udGFpbmluZ0Jsb2NrKCkp
IHsKLSAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRy
eUZvckJveCgqY29udGFpbmVyLCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNz
Q2hpbGRGb3JtYXR0aW5nQ29udGV4dCk7CisgICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9y
bWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5lciwgRXNjYXBlUmVhc29uOjpP
dXRPZkZsb3dCb3hOZWVkc0luRmxvd0dlb21ldHJ5KTsKICAgICAgICAgLy8gRGlzcGxheTo6Qm94
OjpsZWZ0IGlzIHRoZSBib3JkZXIgYm94IGxlZnQgcG9zaXRpb24gaW4gaXRzIGNvbnRhaW5pbmcg
YmxvY2sncyBjb29yZGluYXRlIHN5c3RlbS4KICAgICAgICAgbGVmdCArPSBib3hHZW9tZXRyeS5s
ZWZ0KCk7CiAgICAgICAgIEFTU0VSVCghY29udGFpbmVyLT5pc1Bvc2l0aW9uZWQoKSB8fCBsYXlv
dXRCb3guaXNGaXhlZFBvc2l0aW9uZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAppbmRleCBlY2IyMzBmMTZmOGY2YjQ4ZWUwMGMy
ODJkNzViMjIzMTQ2M2Y3MWE2Li5mN2FmZTE0MGM3M2Y3ODNjNDM2ODg5YmE1MzUzMjQwN2Y5OTNj
OTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRR
dWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dFF1
aXJrcy5jcHAKQEAgLTQ4LDkgKzQ4LDkgQEAgTGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6
UXVpcmtzOjpoZWlnaHRWYWx1ZU9mTmVhcmVzdENvbnRhaW5pbmdCbG9ja1dpdGhGaXgKICAgICAg
ICAgLy8gSWYgdGhlIG9ubHkgZml4ZWQgdmFsdWUgYm94IHdlIGZpbmQgaXMgdGhlIElDQiwgdGhl
biBpZ25vcmUgdGhlIGJvZHkgYW5kIHRoZSBkb2N1bWVudCAodmVydGljYWwpIG1hcmdpbiwgcGFk
ZGluZyBhbmQgYm9yZGVyLiBTbyBtdWNoIHF1aXJraW5lc3MuCiAgICAgICAgIC8vIC1hbmQgaXQn
cyB0b3RhbGx5IGluc2FuZSBiZWNhdXNlIG5vdyB3ZSBmcmVlbHkgdHJhdmVsIGFjcm9zcyBmb3Jt
YXR0aW5nIGNvbnRleHQgYm91bmRhcmllcyBhbmQgY29tcHV0ZWQgbWFyZ2lucyBhcmUgbm9uZXhp
c3RlbnQuCiAgICAgICAgIGlmIChjb250YWluaW5nQmxvY2stPmlzQm9keUJveCgpIHx8IGNvbnRh
aW5pbmdCbG9jay0+aXNEb2N1bWVudEJveCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBib3hHZW9t
ZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2ss
IEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVUeXBlOjpBY2Nlc3NBbmNlc3RvckZvcm1hdHRpbmdD
b250ZXh0KTsKKyAgICAgICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRl
eHQuZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5pbmdCbG9jaywgRm9ybWF0dGluZ0NvbnRleHQ6OkVz
Y2FwZVJlYXNvbjo6RmluZEZpeGVkSGVpZ2h0QW5jZXN0b3JRdWlyayk7CiAKLSAgICAgICAgICAg
IGF1dG8mIGNvbnRhaW5pbmdCbG9ja0Rpc3BsYXlCb3ggPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9t
ZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrLT5jb250YWluaW5nQmxvY2soKSwgRm9ybWF0dGlu
Z0NvbnRleHQ6OkVzY2FwZVR5cGU6OkFjY2Vzc0FuY2VzdG9yRm9ybWF0dGluZ0NvbnRleHQpOwor
ICAgICAgICAgICAgYXV0byYgY29udGFpbmluZ0Jsb2NrRGlzcGxheUJveCA9IGZvcm1hdHRpbmdD
b250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2stPmNvbnRhaW5pbmdCbG9jaygp
LCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpGaW5kRml4ZWRIZWlnaHRBbmNlc3Rv
clF1aXJrKTsKICAgICAgICAgICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0gR2VvbWV0
cnk6Omhvcml6b250YWxDb25zdHJhaW50c0ZvckluRmxvdyhjb250YWluaW5nQmxvY2tEaXNwbGF5
Qm94KTsKICAgICAgICAgICAgIGF1dG8gdmVydGljYWxNYXJnaW4gPSBmb3JtYXR0aW5nQ29udGV4
dC5nZW9tZXRyeSgpLmNvbXB1dGVkVmVydGljYWxNYXJnaW4oKmNvbnRhaW5pbmdCbG9jaywgaG9y
aXpvbnRhbENvbnN0cmFpbnRzKTsKICAgICAgICAgICAgIGF1dG8gdmVydGljYWxQYWRkaW5nID0g
Ym94R2VvbWV0cnkucGFkZGluZ1RvcCgpLnZhbHVlT3IoMCkgKyBib3hHZW9tZXRyeS5wYWRkaW5n
Qm90dG9tKCkudmFsdWVPcigwKTsKQEAgLTYxLDcgKzYxLDcgQEAgTGF5b3V0VW5pdCBGb3JtYXR0
aW5nQ29udGV4dDo6UXVpcmtzOjpoZWlnaHRWYWx1ZU9mTmVhcmVzdENvbnRhaW5pbmdCbG9ja1dp
dGhGaXgKICAgICAgICAgY29udGFpbmluZ0Jsb2NrID0gY29udGFpbmluZ0Jsb2NrLT5jb250YWlu
aW5nQmxvY2soKTsKICAgICB9CiAgICAgLy8gSW5pdGlhbCBjb250YWluaW5nIGJsb2NrIGhhcyB0
byBoYXZlIGEgaGVpZ2h0LgotICAgIHJldHVybiBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZv
ckJveChsYXlvdXRCb3guaW5pdGlhbENvbnRhaW5pbmdCbG9jaygpLCBGb3JtYXR0aW5nQ29udGV4
dDo6RXNjYXBlVHlwZTo6QWNjZXNzQW5jZXN0b3JGb3JtYXR0aW5nQ29udGV4dCkuY29udGVudEJv
eCgpLmhlaWdodCgpIC0gYm9keUFuZERvY3VtZW50VmVydGljYWxNYXJnaW5QYWRkaW5nQW5kQm9y
ZGVyOworICAgIHJldHVybiBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveChsYXlvdXRC
b3guaW5pdGlhbENvbnRhaW5pbmdCbG9jaygpLCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVh
c29uOjpGaW5kRml4ZWRIZWlnaHRBbmNlc3RvclF1aXJrKS5jb250ZW50Qm94KCkuaGVpZ2h0KCkg
LSBib2R5QW5kRG9jdW1lbnRWZXJ0aWNhbE1hcmdpblBhZGRpbmdBbmRCb3JkZXI7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tG
b3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCmluZGV4IGY0MDFlYmVi
NDI3NzdkMWJhOTU1Njg4OTk1ODNlMzA5MDgxMGM0YTQuLjI5M2Y5MGI2NmZmODA3OWE0YTA2MTg5
YmEyYjEwN2ZiMjM1NjU1OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVp
cmtzLmNwcApAQCAtNjksNyArNjksNyBAQCBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6c3RyZXRjaGVkSW5GbG93SGVpZ2h0KGNvbgogICAgIGF1
dG8mIGRvY3VtZW50Qm94ID0gbGF5b3V0Qm94LmlzRG9jdW1lbnRCb3goKSA/IGxheW91dEJveCA6
ICpsYXlvdXRCb3gucGFyZW50KCk7CiAgICAgYXV0byYgZG9jdW1lbnRCb3hHZW9tZXRyeSA9IGZv
cm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KGRvY3VtZW50Qm94KTsKIAotICAgIGF1dG8m
IGluaXRpYWxDb250YWluaW5nQmxvY2tHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21l
dHJ5Rm9yQm94KGluaXRpYWxDb250YWluaW5nQmxvY2sobGF5b3V0Qm94KSk7CisgICAgYXV0byYg
aW5pdGlhbENvbnRhaW5pbmdCbG9ja0dlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0
cnlGb3JCb3goaW5pdGlhbENvbnRhaW5pbmdCbG9jayhsYXlvdXRCb3gpLCBFc2NhcGVSZWFzb246
OkJvZHlTdHJlY2hlc1RvVmlld3BvcnRRdWlyayk7CiAgICAgYXV0byBzdHJlY2hlZEhlaWdodCA9
IGluaXRpYWxDb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250ZW50Qm94SGVpZ2h0KCk7CiAgICAg
c3RyZWNoZWRIZWlnaHQgLT0gZG9jdW1lbnRCb3hHZW9tZXRyeS52ZXJ0aWNhbEJvcmRlcigpICsg
ZG9jdW1lbnRCb3hHZW9tZXRyeS52ZXJ0aWNhbFBhZGRpbmcoKS52YWx1ZU9yKDApOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKaW5kZXgg
MTg3MDRkZTk1NWM1NGM3MzI4Y2Y3NWNlOWZkYWRlYzUwYjI2OTE5OC4uODcyMGE4ZmIxNWI0ZWQ4
MzdiZmYyMzg2NTBlNzNiNTRjZDY5YWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcApAQCAtNDI1LDcgKzQyNSw3IEBAIEZsb2F0aW5n
Q29udGV4dDo6QWJzb2x1dGVDb29yZGluYXRlVmFsdWVzRm9yRmxvYXRBdm9pZGVyIEZsb2F0aW5n
Q29udGV4dDo6YWJzb2x1CiAgICAgYXV0byBkaXNwbGF5Qm94ID0gbWFwVG9GbG9hdGluZ1N0YXRl
Um9vdChmbG9hdEF2b2lkZXIpOwogCiAgICAgaWYgKCZjb250YWluaW5nQmxvY2sgPT0gJmZsb2F0
aW5nU3RhdGUoKS5yb290KCkpIHsKLSAgICAgICAgYXV0byBjb250YWluaW5nQmxvY2tHZW9tZXRy
eSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Jsb2NrLCBG
b3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzUGFyZW50Rm9ybWF0dGluZ0NvbnRl
eHQpOworICAgICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5ID0gZm9ybWF0dGluZ0Nv
bnRleHQoKS5nZW9tZXRyeUZvckJveChjb250YWluaW5nQmxvY2ssIEZvcm1hdHRpbmdDb250ZXh0
OjpFc2NhcGVSZWFzb246OkZsb2F0Qm94TmVlZHNUb0JlSW5BYnNvbHV0ZUNvb3JkaW5hdGVzKTsK
ICAgICAgICAgcmV0dXJuIHsgZGlzcGxheUJveCwgeyB9LCB7ICBjb250YWluaW5nQmxvY2tHZW9t
ZXRyeS5jb250ZW50Qm94TGVmdCgpLCBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250ZW50Qm94
UmlnaHQoKSB9IH07CiAgICAgfQogICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrQWJzb2x1dGVEaXNw
bGF5Qm94ID0gbWFwVG9GbG9hdGluZ1N0YXRlUm9vdChjb250YWluaW5nQmxvY2spOwpAQCAtNDM2
LDEwICs0MzYsMTAgQEAgRmxvYXRpbmdDb250ZXh0OjpBYnNvbHV0ZUNvb3JkaW5hdGVWYWx1ZXNG
b3JGbG9hdEF2b2lkZXIgRmxvYXRpbmdDb250ZXh0OjphYnNvbHUKIERpc3BsYXk6OkJveCBGbG9h
dGluZ0NvbnRleHQ6Om1hcFRvRmxvYXRpbmdTdGF0ZVJvb3QoY29uc3QgQm94JiBmbG9hdEJveCkg
Y29uc3QKIHsKICAgICBhdXRvJiBmbG9hdGluZ1N0YXRlUm9vdCA9IGZsb2F0aW5nU3RhdGUoKS5y
b290KCk7Ci0gICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21l
dHJ5Rm9yQm94KGZsb2F0Qm94LCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNz
UGFyZW50Rm9ybWF0dGluZ0NvbnRleHQpOworICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0
dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChmbG9hdEJveCwgRm9ybWF0dGluZ0NvbnRleHQ6
OkVzY2FwZVJlYXNvbjo6RmxvYXRCb3hOZWVkc1RvQmVJbkFic29sdXRlQ29vcmRpbmF0ZXMpOwog
ICAgIGF1dG8gdG9wTGVmdCA9IGJveEdlb21ldHJ5LnRvcExlZnQoKTsKICAgICBmb3IgKGF1dG8q
IGNvbnRhaW5pbmdCbG9jayA9IGZsb2F0Qm94LmNvbnRhaW5pbmdCbG9jaygpOyBjb250YWluaW5n
QmxvY2sgJiYgY29udGFpbmluZ0Jsb2NrICE9ICZmbG9hdGluZ1N0YXRlUm9vdDsgY29udGFpbmlu
Z0Jsb2NrID0gY29udGFpbmluZ0Jsb2NrLT5jb250YWluaW5nQmxvY2soKSkKLSAgICAgICAgdG9w
TGVmdC5tb3ZlQnkoZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveCgqY29udGFpbmlu
Z0Jsb2NrLCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzUGFyZW50Rm9ybWF0
dGluZ0NvbnRleHQpLnRvcExlZnQoKSk7CisgICAgICAgIHRvcExlZnQubW92ZUJ5KGZvcm1hdHRp
bmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5pbmdCbG9jaywgRm9ybWF0dGluZ0Nv
bnRleHQ6OkVzY2FwZVJlYXNvbjo6RmxvYXRCb3hOZWVkc1RvQmVJbkFic29sdXRlQ29vcmRpbmF0
ZXMpLnRvcExlZnQoKSk7CiAKICAgICBhdXRvIG1hcHBlZERpc3BsYXlCb3ggPSBEaXNwbGF5OjpC
b3goYm94R2VvbWV0cnkpOwogICAgIG1hcHBlZERpc3BsYXlCb3guc2V0VG9wTGVmdCh0b3BMZWZ0
KTsKQEAgLTQ0OSw5ICs0NDksOSBAQCBEaXNwbGF5OjpCb3ggRmxvYXRpbmdDb250ZXh0OjptYXBU
b0Zsb2F0aW5nU3RhdGVSb290KGNvbnN0IEJveCYgZmxvYXRCb3gpIGNvbnN0CiBMYXlvdXRVbml0
IEZsb2F0aW5nQ29udGV4dDo6bWFwVG9wVG9GbG9hdGluZ1N0YXRlUm9vdChjb25zdCBCb3gmIGZs
b2F0Qm94KSBjb25zdAogewogICAgIGF1dG8mIGZsb2F0aW5nU3RhdGVSb290ID0gZmxvYXRpbmdT
dGF0ZSgpLnJvb3QoKTsKLSAgICBhdXRvIHRvcCA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0
cnlGb3JCb3goZmxvYXRCb3gsIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVUeXBlOjpBY2Nlc3NQ
YXJlbnRGb3JtYXR0aW5nQ29udGV4dCkudG9wKCk7CisgICAgYXV0byB0b3AgPSBmb3JtYXR0aW5n
Q29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGZsb2F0Qm94LCBGb3JtYXR0aW5nQ29udGV4dDo6RXNj
YXBlUmVhc29uOjpGbG9hdEJveE5lZWRzVG9CZUluQWJzb2x1dGVDb29yZGluYXRlcykudG9wKCk7
CiAgICAgZm9yIChhdXRvKiBjb250YWluZXIgPSBmbG9hdEJveC5jb250YWluaW5nQmxvY2soKTsg
Y29udGFpbmVyICYmIGNvbnRhaW5lciAhPSAmZmxvYXRpbmdTdGF0ZVJvb3Q7IGNvbnRhaW5lciA9
IGNvbnRhaW5lci0+Y29udGFpbmluZ0Jsb2NrKCkpCi0gICAgICAgIHRvcCArPSBmb3JtYXR0aW5n
Q29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KCpjb250YWluZXIsIEZvcm1hdHRpbmdDb250ZXh0OjpF
c2NhcGVUeXBlOjpBY2Nlc3NQYXJlbnRGb3JtYXR0aW5nQ29udGV4dCkudG9wKCk7CisgICAgICAg
IHRvcCArPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KCpjb250YWluZXIsIEZv
cm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZsb2F0Qm94TmVlZHNUb0JlSW5BYnNvbHV0
ZUNvb3JkaW5hdGVzKS50b3AoKTsKICAgICByZXR1cm4gdG9wOwogfQogCkBAIC00NjMsNyArNDYz
LDcgQEAgUG9pbnQgRmxvYXRpbmdDb250ZXh0OjptYXBQb2ludEZyb21Gb3JtYXR0aW5nQ29udGV4
dFJvb3RUb0Zsb2F0aW5nU3RhdGVSb290KFBvaW4KICAgICAgICAgcmV0dXJuIHBvc2l0aW9uOwog
ICAgIGF1dG8gbWFwcGVkUG9zaXRpb24gPSBwb3NpdGlvbjsKICAgICBmb3IgKGF1dG8qIGNvbnRh
aW5lciA9ICZmcm9tOyBjb250YWluZXIgJiYgY29udGFpbmVyICE9ICZ0bzsgY29udGFpbmVyID0g
Y29udGFpbmVyLT5jb250YWluaW5nQmxvY2soKSkKLSAgICAgICAgbWFwcGVkUG9zaXRpb24ubW92
ZUJ5KGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5lciwgRm9ybWF0
dGluZ0NvbnRleHQ6OkVzY2FwZVR5cGU6OkFjY2Vzc1BhcmVudEZvcm1hdHRpbmdDb250ZXh0KS50
b3BMZWZ0KCkpOworICAgICAgICBtYXBwZWRQb3NpdGlvbi5tb3ZlQnkoZm9ybWF0dGluZ0NvbnRl
eHQoKS5nZW9tZXRyeUZvckJveCgqY29udGFpbmVyLCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBl
UmVhc29uOjpGbG9hdEJveE5lZWRzVG9CZUluQWJzb2x1dGVDb29yZGluYXRlcykudG9wTGVmdCgp
KTsKICAgICByZXR1cm4gbWFwcGVkUG9zaXRpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmNwcAppbmRleCA4NThkYzNiODMyOGM3MTQ2ZDQ0NTQxZjA5ZGI5MmE0ODA2Yjk0
NTY5Li5lMmM0MTI5YTUxMmQ2ZTQzODY1Mjg5Zjk4NjQ4ZDNlZDU1NmM1YzNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC00NjYsNyArNDY2LDcgQEAgdm9pZCBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6c2V0RGlzcGxheUJveGVzRm9yTGluZShjb25zdCBMaW5lTGF5
b3V0Q29udGV4dDo6TGkKICAgICAgICAgLy8gSUNCIGlzIG5vdCB0aGUgcmVhbCBJQ0Igd2hlbiBs
eW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkIGlzIG9uLgogICAgICAgICBp
bml0aWFsQ29udGFpbmdCbG9ja1NpemUgPSBsYXlvdXRTdGF0ZSgpLnZpZXdwb3J0U2l6ZSgpOwog
ICAgIH0gZWxzZQotICAgICAgICBpbml0aWFsQ29udGFpbmdCbG9ja1NpemUgPSBnZW9tZXRyeUZv
ckJveChyb290KCkuaW5pdGlhbENvbnRhaW5pbmdCbG9jaygpKS5jb250ZW50Qm94KCkuc2l6ZSgp
OworICAgICAgICBpbml0aWFsQ29udGFpbmdCbG9ja1NpemUgPSBnZW9tZXRyeUZvckJveChyb290
KCkuaW5pdGlhbENvbnRhaW5pbmdCbG9jaygpLCBFc2NhcGVSZWFzb246OlN0cm9rZU92ZXJmbG93
TmVlZHNWaWV3cG9ydEdlb21ldHJ5KS5jb250ZW50Qm94KCkuc2l6ZSgpOwogICAgIGF1dG8mIGlu
bGluZUNvbnRlbnQgPSBmb3JtYXR0aW5nU3RhdGUuZW5zdXJlRGlzcGxheUlubGluZUNvbnRlbnQo
KTsKICAgICBhdXRvIGxpbmVJbmRleCA9IGlubGluZUNvbnRlbnQubGluZUJveGVzLnNpemUoKTsK
ICAgICBpbmxpbmVDb250ZW50LmxpbmVCb3hlcy5hcHBlbmQobGluZUNvbnRlbnQubGluZUJveCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxl
Rm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0
dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCAzY2I5Y2EzZjdjNDIzMmVhNzc5
Nzc2OTNiOWU5YjYyODVlNDNmNWJkLi42YjZmMGRiNGFkNWZmZTJhNWYxMDM0NmM1YWI0ZTY3NzM2
NzkwNjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5n
L1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90
YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTMxNiw3ICszMTYs
NyBAQCB2b2lkIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVBbmREaXN0cmlidXRlRXh0
cmFIb3Jpem9udGFsU3BhY2UoKQogICAgIH07CiAKICAgICBhdXRvJiB0YWJsZUJveCA9IHJvb3Qo
KTsKLSAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0gZ2VvbWV0cnlGb3JCb3goKnRhYmxl
Qm94LmNvbnRhaW5pbmdCbG9jaygpLCBFc2NhcGVUeXBlOjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0
QWNjZXNzUGFyZW50VGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dCkuY29udGVudEJv
eFdpZHRoKCk7CisgICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IGdlb21ldHJ5Rm9yQm94
KCp0YWJsZUJveC5jb250YWluaW5nQmxvY2soKSwgRXNjYXBlUmVhc29uOjpUYWJsZU5lZWRzQWNj
ZXNzVG9UYWJsZVdyYXBwZXIpLmNvbnRlbnRCb3hXaWR0aCgpOwogICAgIGF1dG8gY29udGVudFdp
ZHRoID0gZ2VvbWV0cnkoKS5jb21wdXRlZENvbnRlbnRXaWR0aCh0YWJsZUJveCwgY29udGFpbmlu
Z0Jsb2NrV2lkdGgpOwogICAgIGlmIChjb250ZW50V2lkdGgpIHsKICAgICAgICAgaWYgKCpjb250
ZW50V2lkdGggPiB0YWJsZVdpZHRoQ29uc3RyYWludHMubWluaW11bSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>