<?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>213963</bug_id>
          
          <creation_ts>2020-07-04 13:05:36 -0700</creation_ts>
          <short_desc>[LFC][BFC] Move PositiveAndNegativeVerticalMargin to UsedVerticalMargin</short_desc>
          <delta_ts>2020-07-04 14:18:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1668825</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-07-04 13:05:36 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668831</commentid>
    <comment_count>1</comment_count>
      <attachid>403532</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-07-04 13:11:34 -0700</bug_when>
    <thetext>Created attachment 403532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668838</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-04 14:17:08 -0700</bug_when>
    <thetext>Committed r263946: &lt;https://trac.webkit.org/changeset/263946&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403532.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668839</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-04 14:18:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/65098954&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403532</attachid>
            <date>2020-07-04 13:11:34 -0700</date>
            <delta_ts>2020-07-04 14:17:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213963-20200704131133.patch</filename>
            <type>text/plain</type>
            <size>31473</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDkxNmI1OGRjNGJmNGIw
MTk0MzhlODBmMWRjODRiYWU4YzZhYWJkNS4uMmZlMjZlZmRjYmZlZmUzYzM1NzU2M2NiZmU0ZGIy
MGEwMTA0YWUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA3LTA0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bQkZDXSBNb3ZlIFBv
c2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbiB0byBVc2VkVmVydGljYWxNYXJnaW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzk2MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0IFVz
ZWRWZXJ0aWNhbE1hcmdpbiBpcyBub3QgdXNlZCBpbiBEaXNwbGF5OjpCb3gsIHdlIGNhbiBtZXJn
ZWQgdGhlc2UgMiBsYXlvdXQgc3RydWN0dXJlcy4KKworICAgICAgICAqIGxheW91dC9NYXJnaW5U
eXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpVc2VkVmVydGljYWxNYXJnaW46OlBv
c2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXM6OmlzTm9uWmVybyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OlBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFs
dWVzOjppc05vblplcm8gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9u
Rm9yQm94QW5kQW5jZXN0b3JzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdTdGF0ZTo6aGFzVXNlZFZlcnRpY2FsTWFyZ2lu
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nU3RhdGU6
OnNldFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ1N0YXRlOjpoYXNQb3NpdGl2ZUFuZE5l
Z2F0aXZlVmVydGljYWxNYXJnaW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdTdGF0ZTo6cG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2Fs
TWFyZ2luIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6Y29tcHV0ZWRQb3NpdGl2ZUFuZE5l
Z2F0aXZlTWFyZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpblZhbHVlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFw
c2U6OnVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnBvc2l0
aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdp
bkJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpN
YXJnaW5Db2xsYXBzZTo6Y29sbGFwc2VkVmVydGljYWxWYWx1ZXMpOgorICAgICAgICAqIGxheW91
dC9ibG9ja2Zvcm1hdHRpbmcvUHJlY29tcHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29s
bGFwc2U6OnByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNl
OjpwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUgY29uc3QpOgorICAgICAg
ICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBlckJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZVdy
YXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luRm9yVGFi
bGVCb3gpOgorCiAyMDIwLTA3LTA0ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0xGQ11bQkZDXSBSZW1vdmUgcmVkdW5kYW50IG91dC1vZi1mbG93IGhlaWdodC1h
bmQtbWFyZ2luIGhhbmRsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTWFy
Z2luVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9NYXJnaW5UeXBlcy5oCmluZGV4IDhi
ZTdiOWY1ODI5ZjlkZjU1OWE3ZjU1MDhkMGU0NWViNDc3Y2MyM2UuLjMyOTY4Y2RiZGM0MTI0YzQ4
OGQwOTQ4OGQyZGRjY2I2ZDZhMGY3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9NYXJnaW5UeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9NYXJnaW5UeXBlcy5o
CkBAIC01MCw2ICs1MCwyNSBAQCBzdHJ1Y3QgVXNlZFZlcnRpY2FsTWFyZ2luIHsKICAgICAgICAg
Ym9vbCBpc0NvbGxhcHNlZFRocm91Z2ggeyBmYWxzZSB9OwogICAgIH07CiAgICAgQ29sbGFwc2Vk
VmFsdWVzIGNvbGxhcHNlZFZhbHVlczsKKworICAgIC8vIEZJWE1FOiBUaGlzIHN0cnVjdHVyZSBt
aWdodCBuZWVkIHRvIGNoYW5nZSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjYWNoZWQgdmFsdWUgaXMg
bm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBib3gncyBjb21wdXRlZCBtYXJnaW4gdmFs
dWUuCisgICAgLy8gVGhpcyBvbmx5IG1hdHRlcnMgaW4gY2FzZSBvZiBjb2xsYXBzZSB0aHJvdWdo
IG1hcmdpbnMgd2hlbiB0aGV5IGNvbGxhcHNlIGludG8gYW5vdGhlciBzaWJsaW5nIGJveC4KKyAg
ICAvLyA8ZGl2IHN0eWxlPSJtYXJnaW46IDFweCI+PC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luOiAx
MHB4Ij48L2Rpdj4gPC0gdGhlIHNlY29uZCBkaXYncyBiZWZvcmUvYWZ0ZXIgbWFyaW5ncyBjb2xs
YXBzZSB0aHJvdWdoIGFuZCB0aGUgc2FtZSB0aW1lIHRoZXkgY29sbGFwc2UgaW50bworICAgIC8v
IHRoZSBmaXJzdCBkaXYuIFdoZW4gdGhlIHBhcmVudCBjb21wdXRlcyBpdHMgYmVmb3JlIG1hcmdp
biwgaXQgc2hvdWxkIHNlZSB0aGUgc2Vjb25kIGRpdidzIGNvbGxhcHNlZCB0aHJvdWdoIG1hcmdp
biBhcyB0aGUgdmFsdWUgdG8gY29sbGFwc2Ugd2lkdGggKGFkam9pbmluZyBtYXJnaW4gdmFsdWUp
LgorICAgIC8vIFNvIHdoaWxlIHRoZSBmaXJzdCBkaXYncyBiZWZvcmUgbWFyZ2luIGlzIG5vdCAx
MHB4LCB0aGUgY2FjaGVkIHZhbHVlIGlzIDEwcHggc28gdGhhdCB3aGVuIHdlIGNvbXB1dGUgdGhl
IHBhcmVudCdzIG1hcmdpbiB3ZSBqdXN0IG5lZWQgdG8gY2hlY2sgdGhlIGZpcnN0CisgICAgLy8g
aW5mbG93IGNoaWxkJ3MgY2FjaGVkIG1hcmdpbiB2YWx1ZXMuCisgICAgc3RydWN0IFBvc2l0aXZl
QW5kTmVnYXRpdmVQYWlyIHsKKyAgICAgICAgc3RydWN0IFZhbHVlcyB7CisgICAgICAgICAgICBi
b29sIGlzTm9uWmVybygpIGNvbnN0IHsgcmV0dXJuIHBvc2l0aXZlLnZhbHVlT3IoMCkgfHwgbmVn
YXRpdmUudmFsdWVPcigwKTsgfQorCisgICAgICAgICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBw
b3NpdGl2ZTsKKyAgICAgICAgICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IG5lZ2F0aXZlOworICAg
ICAgICAgICAgYm9vbCBpc1F1aXJrIHsgZmFsc2UgfTsKKyAgICAgICAgfTsKKyAgICAgICAgVmFs
dWVzIGJlZm9yZTsKKyAgICAgICAgVmFsdWVzIGFmdGVyOworICAgIH07CisgICAgUG9zaXRpdmVB
bmROZWdhdGl2ZVBhaXIgcG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlczsKIH07CiAKIHN0YXRpYyBp
bmxpbmUgTGF5b3V0VW5pdCBtYXJnaW5CZWZvcmUoY29uc3QgVXNlZFZlcnRpY2FsTWFyZ2luJiB1
c2VkVmVydGljYWxNYXJnaW4pCkBAIC03NCwyOSArOTMsMTEgQEAgc3RydWN0IFVzZWRIb3Jpem9u
dGFsTWFyZ2luIHsKICAgICBMYXlvdXRVbml0IGVuZDsKIH07CiAKLS8vIEZJWE1FOiBUaGlzIHN0
cnVjdHVyZSBtaWdodCBuZWVkIHRvIGNoYW5nZSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjYWNoZWQg
dmFsdWUgaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBib3gncyBjb21wdXRlZCBt
YXJnaW4gdmFsdWUuCi0vLyBUaGlzIG9ubHkgbWF0dGVycyBpbiBjYXNlIG9mIGNvbGxhcHNlIHRo
cm91Z2ggbWFyZ2lucyB3aGVuIHRoZXkgY29sbGFwc2UgaW50byBhbm90aGVyIHNpYmxpbmcgYm94
LgotLy8gPGRpdiBzdHlsZT0ibWFyZ2luOiAxcHgiPjwvZGl2PjxkaXYgc3R5bGU9Im1hcmdpbjog
MTBweCI+PC9kaXY+IDwtIHRoZSBzZWNvbmQgZGl2J3MgYmVmb3JlL2FmdGVyIG1hcmluZ3MgY29s
bGFwc2UgdGhyb3VnaCBhbmQgdGhlIHNhbWUgdGltZSB0aGV5IGNvbGxhcHNlIGludG8KLS8vIHRo
ZSBmaXJzdCBkaXYuIFdoZW4gdGhlIHBhcmVudCBjb21wdXRlcyBpdHMgYmVmb3JlIG1hcmdpbiwg
aXQgc2hvdWxkIHNlZSB0aGUgc2Vjb25kIGRpdidzIGNvbGxhcHNlZCB0aHJvdWdoIG1hcmdpbiBh
cyB0aGUgdmFsdWUgdG8gY29sbGFwc2Ugd2lkdGggKGFkam9pbmluZyBtYXJnaW4gdmFsdWUpLgot
Ly8gU28gd2hpbGUgdGhlIGZpcnN0IGRpdidzIGJlZm9yZSBtYXJnaW4gaXMgbm90IDEwcHgsIHRo
ZSBjYWNoZWQgdmFsdWUgaXMgMTBweCBzbyB0aGF0IHdoZW4gd2UgY29tcHV0ZSB0aGUgcGFyZW50
J3MgbWFyZ2luIHdlIGp1c3QgbmVlZCB0byBjaGVjayB0aGUgZmlyc3QKLS8vIGluZmxvdyBjaGls
ZCdzIGNhY2hlZCBtYXJnaW4gdmFsdWVzLgotc3RydWN0IFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0
aWNhbE1hcmdpbiB7Ci0gICAgc3RydWN0IFZhbHVlcyB7Ci0gICAgICAgIGJvb2wgaXNOb25aZXJv
KCkgY29uc3QgeyByZXR1cm4gcG9zaXRpdmUudmFsdWVPcigwKSB8fCBuZWdhdGl2ZS52YWx1ZU9y
KDApOyB9Ci0KLSAgICAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gcG9zaXRpdmU7Ci0gICAgICAg
IE9wdGlvbmFsPExheW91dFVuaXQ+IG5lZ2F0aXZlOwotICAgICAgICBib29sIGlzUXVpcmsgeyBm
YWxzZSB9OwotICAgIH07Ci0gICAgVmFsdWVzIGJlZm9yZTsKLSAgICBWYWx1ZXMgYWZ0ZXI7Ci19
OwotCiBzdHJ1Y3QgUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgewogICAgIExheW91dFVuaXQgdXNl
ZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gY29sbGFwc2VkVmFsdWUudmFsdWVPcihub25Db2xsYXBz
ZWRWYWx1ZSk7IH0KICAgICBMYXlvdXRVbml0IG5vbkNvbGxhcHNlZFZhbHVlOwogICAgIE9wdGlv
bmFsPExheW91dFVuaXQ+IGNvbGxhcHNlZFZhbHVlOwotICAgIFBvc2l0aXZlQW5kTmVnYXRpdmVW
ZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIHBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW5CZWZvcmU7Cisg
ICAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHBv
c2l0aXZlQW5kTmVnYXRpdmVNYXJnaW5CZWZvcmU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmNwcAppbmRleCA0YWFiMzBiZjIyZTFiNGRkZDEwNmQzOGQwODk4ZTFmMTFhOTlm
MTMwLi5hYzUxMjg4Y2JmY2I4YWZkODNlMzVhYWEyOTRkMzk5NzE0ZGViYTUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTI1OCwxMiArMjU4LDExIEBAIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6cHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JCb3hBbmRBbmNl
c3RvcnMoY29uc3QKICAgICAgICAgYXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZ2VvbWV0
cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKCphbmNlc3RvciwgY29uc3RyYWludHNGb3JBbmNl
c3Rvci5ob3Jpem9udGFsKTsKICAgICAgICAgYXV0byB1c2VkTm9uQ29sbGFwc2VkTWFyZ2luID0g
VXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgeyBjb21wdXRlZFZlcnRpY2Fs
TWFyZ2luLmJlZm9yZS52YWx1ZU9yKDApLCBjb21wdXRlZFZlcnRpY2FsTWFyZ2luLmFmdGVyLnZh
bHVlT3IoMCkgfTsKICAgICAgICAgYXV0byBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZSA9IG1hcmdp
bkNvbGxhcHNlKCkucHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoKmFuY2VzdG9yLCB1c2VkTm9uQ29s
bGFwc2VkTWFyZ2luKTsKLSAgICAgICAgZm9ybWF0dGluZ1N0YXRlKCkuc2V0UG9zaXRpdmVBbmRO
ZWdhdGl2ZVZlcnRpY2FsTWFyZ2luKCphbmNlc3RvciwgeyBwcmVjb21wdXRlZE1hcmdpbkJlZm9y
ZS5wb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luQmVmb3JlLCB7IH0gfSk7CiAKICAgICAgICAgYXV0
byYgZGlzcGxheUJveCA9IGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3goKmFuY2VzdG9yKTsK
ICAgICAgICAgYXV0byBub25Db2xsYXBzZWRWYWx1ZXMgPSBVc2VkVmVydGljYWxNYXJnaW46Ok5v
bkNvbGxhcHNlZFZhbHVlcyB7IHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlLm5vbkNvbGxhcHNlZFZh
bHVlLCB7IH0gfTsKICAgICAgICAgYXV0byBjb2xsYXBzZWRWYWx1ZXMgPSBVc2VkVmVydGljYWxN
YXJnaW46OkNvbGxhcHNlZFZhbHVlcyB7IHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlLmNvbGxhcHNl
ZFZhbHVlLCB7IH0sIGZhbHNlIH07Ci0gICAgICAgIGF1dG8gdmVydGljYWxNYXJnaW4gPSBVc2Vk
VmVydGljYWxNYXJnaW4geyBub25Db2xsYXBzZWRWYWx1ZXMsIGNvbGxhcHNlZFZhbHVlcyB9Owor
ICAgICAgICBhdXRvIHZlcnRpY2FsTWFyZ2luID0gVXNlZFZlcnRpY2FsTWFyZ2luIHsgbm9uQ29s
bGFwc2VkVmFsdWVzLCBjb2xsYXBzZWRWYWx1ZXMsIHsgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUu
cG9zaXRpdmVBbmROZWdhdGl2ZU1hcmdpbkJlZm9yZSwgeyB9IH0gfTsKIAogICAgICAgICBmb3Jt
YXR0aW5nU3RhdGUoKS5zZXRVc2VkVmVydGljYWxNYXJnaW4oKmFuY2VzdG9yLCB2ZXJ0aWNhbE1h
cmdpbik7CiAgICAgICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4oeyBtYXJnaW5CZWZv
cmUodmVydGljYWxNYXJnaW4pLCBtYXJnaW5BZnRlcih2ZXJ0aWNhbE1hcmdpbikgfSk7CkBAIC0z
NjcsMTAgKzM2Niw4IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdo
dEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QKICAgICAvLyAyLiBBZGp1c3Qg
dmVydGljYWwgcG9zaXRpb24gdXNpbmcgdGhlIGNvbGxhcHNlZCB2YWx1ZXMuCiAgICAgLy8gMy4g
QWRqdXN0IHByZXZpb3VzIGluLWZsb3cgc2libGluZyBtYXJnaW4gYWZ0ZXIgdXNpbmcgdGhpcyBt
YXJnaW4uCiAgICAgYXV0byBtYXJnaW5Db2xsYXBzZSA9IHRoaXMtPm1hcmdpbkNvbGxhcHNlKCk7
Ci0gICAgYXV0byBjb2xsYXBzZWRBbmRQb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzID0gbWFyZ2luQ29s
bGFwc2UuY29sbGFwc2VkVmVydGljYWxWYWx1ZXMobGF5b3V0Qm94LCBjb250ZW50SGVpZ2h0QW5k
TWFyZ2luLm5vbkNvbGxhcHNlZE1hcmdpbik7CisgICAgYXV0byB2ZXJ0aWNhbE1hcmdpbiA9IG1h
cmdpbkNvbGxhcHNlLmNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKGxheW91dEJveCwgY29udGVudEhl
aWdodEFuZE1hcmdpbi5ub25Db2xsYXBzZWRNYXJnaW4pOwogICAgIC8vIENhY2hlIHRoZSBjb21w
dXRlZCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgbWFyZ2luIHZhbHVlIHBhaXIuCi0gICAgZm9ybWF0
dGluZ1N0YXRlKCkuc2V0UG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luKGxheW91dEJv
eCwgY29sbGFwc2VkQW5kUG9zaXRpdmVOZWdhdGl2ZVZhbHVlcy5wb3NpdGl2ZUFuZE5lZ2F0aXZl
VmVydGljYWxWYWx1ZXMpOwotICAgIGF1dG8gdmVydGljYWxNYXJnaW4gPSBVc2VkVmVydGljYWxN
YXJnaW4geyBjb250ZW50SGVpZ2h0QW5kTWFyZ2luLm5vbkNvbGxhcHNlZE1hcmdpbiwgY29sbGFw
c2VkQW5kUG9zaXRpdmVOZWdhdGl2ZVZhbHVlcy5jb2xsYXBzZWRWYWx1ZXMgfTsKICAgICBmb3Jt
YXR0aW5nU3RhdGUoKS5zZXRVc2VkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94LCB2ZXJ0aWNhbE1h
cmdpbik7CiAKICNpZiBBU1NFUlRfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaApp
bmRleCA0YzZhZWFkMzA3MjI1YzM5YzQ3M2U1MjhlYzhjNDdlZDAyYzViYmNhLi41MDdmYTI5N2Ew
Y2Y3NGQyZjE2ZWFhZDViOTdlZTY1OTVmNWU3YTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuaApAQCAtOTksMTEgKzk5LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgY2xhc3MgaW1w
bGVtZW50cyBtYXJnaW4gY29sbGFwc2luZyBmb3IgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0Lgog
ICAgIGNsYXNzIE1hcmdpbkNvbGxhcHNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0cnVjdCBD
b2xsYXBzZWRBbmRQb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzIHsKLSAgICAgICAgICAgIFVzZWRWZXJ0
aWNhbE1hcmdpbjo6Q29sbGFwc2VkVmFsdWVzIGNvbGxhcHNlZFZhbHVlczsKLSAgICAgICAgICAg
IFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbiBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVy
dGljYWxWYWx1ZXM7Ci0gICAgICAgIH07Ci0gICAgICAgIENvbGxhcHNlZEFuZFBvc2l0aXZlTmVn
YXRpdmVWYWx1ZXMgY29sbGFwc2VkVmVydGljYWxWYWx1ZXMoY29uc3QgQm94JiwgVXNlZFZlcnRp
Y2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOworICAgICAgICBVc2VkVmVydGljYWxNYXJn
aW4gY29sbGFwc2VkVmVydGljYWxWYWx1ZXMoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2lu
OjpOb25Db2xsYXBzZWRWYWx1ZXMpOwogCiAgICAgICAgIFByZWNvbXB1dGVkTWFyZ2luQmVmb3Jl
IHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6
Tm9uQ29sbGFwc2VkVmFsdWVzKTsKICAgICAgICAgTGF5b3V0VW5pdCBtYXJnaW5CZWZvcmVJZ25v
cmluZ0NvbGxhcHNpbmdUaHJvdWdoKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9u
Q29sbGFwc2VkVmFsdWVzKTsKQEAgLTEyNywxNSArMTIzLDE1IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgTWFyZ2luQ29sbGFwc2UoY29uc3QgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYpOwogCiAgICAg
ICAgIGVudW0gY2xhc3MgTWFyZ2luVHlwZSB7IEJlZm9yZSwgQWZ0ZXIgfTsKLSAgICAgICAgUG9z
aXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZVZh
bHVlcyhjb25zdCBCb3gmLCBNYXJnaW5UeXBlKSBjb25zdDsKLSAgICAgICAgUG9zaXRpdmVBbmRO
ZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9y
ZShjb25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcykgY29u
c3Q7Ci0gICAgICAgIFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIHBv
c2l0aXZlTmVnYXRpdmVNYXJnaW5BZnRlcihjb25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46
Ok5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3Q7CisgICAgICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6
UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBwb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNv
bnN0IEJveCYsIE1hcmdpblR5cGUpIGNvbnN0OworICAgICAgICBVc2VkVmVydGljYWxNYXJnaW46
OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJl
Zm9yZShjb25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcykg
Y29uc3Q7CisgICAgICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBh
aXI6OlZhbHVlcyBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIoY29uc3QgQm94JiwgVXNlZFZl
cnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OwogCi0gICAgICAgIFBvc2l0
aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIHByZWNvbXB1dGVkUG9zaXRpdmVO
ZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNv
bGxhcHNlZFZhbHVlcykgY29uc3Q7Ci0gICAgICAgIFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNh
bE1hcmdpbjo6VmFsdWVzIHByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyhjb25zdCBC
b3gmKSBjb25zdDsKKyAgICAgICAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0
aXZlUGFpcjo6VmFsdWVzIHByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShj
b25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3Q7
CisgICAgICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZh
bHVlcyBwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JikgY29uc3Q7
CiAKLSAgICAgICAgUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgY29t
cHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNh
bE1hcmdpbjo6VmFsdWVzLCBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVl
cykgY29uc3Q7Ci0gICAgICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IG1hcmdpblZhbHVlKFBvc2l0
aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzKSBjb25zdDsKKyAgICAgICAgVXNl
ZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIGNvbXB1dGVk
UG9zaXRpdmVBbmROZWdhdGl2ZU1hcmdpbihVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5k
TmVnYXRpdmVQYWlyOjpWYWx1ZXMsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdh
dGl2ZVBhaXI6OlZhbHVlcykgY29uc3Q7CisgICAgICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IG1h
cmdpblZhbHVlKFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZh
bHVlcykgY29uc3Q7CiAKICAgICAgICAgYm9vbCBoYXNDbGVhcmFuY2UoY29uc3QgQm94JikgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tGb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nU3RhdGUuaAppbmRleCBmYTQ1N2ZlMTUyYTAyZTE2Y2RmYTEz
YzAzZThkMWUyMDA4YTgzZjBiLi5mYjI4YzkyZDcxODRjMDIzMTljYzM5NDhlOGFmZDc1ZDZmNWZi
NjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Js
b2NrRm9ybWF0dGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oCkBAIC00MCwxNSArNDAsMTEgQEAgcHVibGlj
OgogICAgIEJsb2NrRm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9hdGluZ1N0YXRlPiYmLCBMYXlvdXRT
dGF0ZSYpOwogICAgIH5CbG9ja0Zvcm1hdHRpbmdTdGF0ZSgpOwogCi0gICAgdm9pZCBzZXRQb3Np
dGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIFBvc2l0
aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbiB2ZXJ0aWNhbE1hcmdpbikgeyBtX3Bvc2l0aXZl
QW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbi5zZXQoJmxheW91dEJveCwgdmVydGljYWxNYXJnaW4p
OyB9Ci0gICAgYm9vbCBoYXNQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4oY29uc3Qg
Qm94JiBsYXlvdXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRp
Y2FsTWFyZ2luLmNvbnRhaW5zKCZsYXlvdXRCb3gpOyB9Ci0gICAgUG9zaXRpdmVBbmROZWdhdGl2
ZVZlcnRpY2FsTWFyZ2luIHBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbihjb25zdCBC
b3gmIGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGlj
YWxNYXJnaW4uZ2V0KCZsYXlvdXRCb3gpOyB9Ci0KICAgICB2b2lkIHNldFVzZWRWZXJ0aWNhbE1h
cmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgVXNlZFZlcnRpY2FsTWFyZ2luJiB1c2Vk
VmVydGljYWxNYXJnaW4pIHsgbV91c2VkVmVydGljYWxNYXJnaW5zLnNldCgmbGF5b3V0Qm94LCB1
c2VkVmVydGljYWxNYXJnaW4pOyB9CiAgICAgVXNlZFZlcnRpY2FsTWFyZ2luIHVzZWRWZXJ0aWNh
bE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV91c2VkVmVydGlj
YWxNYXJnaW5zLmdldCgmbGF5b3V0Qm94KTsgfQorICAgIGJvb2wgaGFzVXNlZFZlcnRpY2FsTWFy
Z2luKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdCB7IHJldHVybiBtX3VzZWRWZXJ0aWNhbE1h
cmdpbnMuY29udGFpbnMoJmxheW91dEJveCk7IH0KIAogcHJpdmF0ZToKLSAgICBIYXNoTWFwPGNv
bnN0IEJveCosIFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbj4gbV9wb3NpdGl2ZUFu
ZE5lZ2F0aXZlVmVydGljYWxNYXJnaW47CiAgICAgSGFzaE1hcDxjb25zdCBCb3gqLCBVc2VkVmVy
dGljYWxNYXJnaW4+IG1fdXNlZFZlcnRpY2FsTWFyZ2luczsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29s
bGFwc2UuY3BwCmluZGV4IDFlOTU1ZmZhMzZjYTg3NjhlYmQ0ZTZjMWM3Y2ZjYjIyMTkwOTNlZGUu
LjcxYzc2YTU2MzFiODgxODhlZWRiZGY3OWNhMWZjZGNlZjYyZTIxOWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdp
bkNvbGxhcHNlLmNwcApAQCAtNDMzLDkgKzQzMyw5IEBAIGJvb2wgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbnNDb2xsYXBzZVRocm91Z2goY29uc3QgQm94JiBs
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdp
bjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpjb21wdXRl
ZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4oUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFy
Z2luOjpWYWx1ZXMgYSwgUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMg
YikgY29uc3QKK1VzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZh
bHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6Y29tcHV0ZWRQb3Np
dGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdh
dGl2ZVBhaXI6OlZhbHVlcyBhLCBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRp
dmVQYWlyOjpWYWx1ZXMgYikgY29uc3QKIHsKLSAgICBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGlj
YWxNYXJnaW46OlZhbHVlcyBjb21wdXRlZFZhbHVlczsKKyAgICBVc2VkVmVydGljYWxNYXJnaW46
OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgY29tcHV0ZWRWYWx1ZXM7CiAgICAgaWYg
KGEucG9zaXRpdmUgJiYgYi5wb3NpdGl2ZSkKICAgICAgICAgY29tcHV0ZWRWYWx1ZXMucG9zaXRp
dmUgPSBzdGQ6Om1heCgqYS5wb3NpdGl2ZSwgKmIucG9zaXRpdmUpOwogICAgIGVsc2UKQEAgLTQ1
Niw3ICs0NTYsNyBAQCBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZQogICAgIHJldHVybiBjb21wdXRl
ZFZhbHVlczsKIH0KIAotT3B0aW9uYWw8TGF5b3V0VW5pdD4gQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpblZhbHVlKFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNh
bE1hcmdpbjo6VmFsdWVzIG1hcmdpblZhbHVlcykgY29uc3QKK09wdGlvbmFsPExheW91dFVuaXQ+
IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5WYWx1ZShVc2Vk
VmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgbWFyZ2luVmFs
dWVzKSBjb25zdAogewogICAgIC8vIFdoZW4gdHdvIG9yIG1vcmUgbWFyZ2lucyBjb2xsYXBzZSwg
dGhlIHJlc3VsdGluZyBtYXJnaW4gd2lkdGggaXMgdGhlIG1heGltdW0gb2YgdGhlIGNvbGxhcHNp
bmcgbWFyZ2lucycgd2lkdGhzLgogICAgIC8vIEluIHRoZSBjYXNlIG9mIG5lZ2F0aXZlIG1hcmdp
bnMsIHRoZSBtYXhpbXVtIG9mIHRoZSBhYnNvbHV0ZSB2YWx1ZXMgb2YgdGhlIG5lZ2F0aXZlIGFk
am9pbmluZyBtYXJnaW5zIGlzIGRlZHVjdGVkIGZyb20gdGhlIG1heGltdW0KQEAgLTQ5MywxNSAr
NDkzLDE2IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnVw
ZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nCiAgICAgICAgICAgICBjb2xsYXBzZWRW
ZXJ0aWNhbE1hcmdpbkJlZm9yZSA9IGNvbGxhcHNlZFZlcnRpY2FsTWFyZ2luQWZ0ZXI7CiAKICAg
ICAgICAgLy8gVXBkYXRlIHBvc2l0aXZlL25lZ2F0aXZlIGNhY2hlLgotICAgICAgICBhdXRvIHBy
ZXZpb3VzU2libGluZ1Bvc2l0aXZlTmVnYXRpdmVNYXJnaW4gPSBibG9ja0Zvcm1hdHRpbmdTdGF0
ZS5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4ocHJldmlvdXNTaWJsaW5nKTsKLSAg
ICAgICAgYXV0byBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlID0gYmxvY2tGb3JtYXR0aW5n
U3RhdGUucG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luKCpjdXJyZW50Qm94KS5iZWZv
cmU7CisgICAgICAgIGF1dG8gcHJldmlvdXNTaWJsaW5nUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbiA9
IGJsb2NrRm9ybWF0dGluZ1N0YXRlLnVzZWRWZXJ0aWNhbE1hcmdpbihwcmV2aW91c1NpYmxpbmcp
LnBvc2l0aXZlQW5kTmVnYXRpdmVWYWx1ZXM7CisgICAgICAgIGF1dG8gcG9zaXRpdmVOZWdhdGl2
ZU1hcmdpbkJlZm9yZSA9IGJsb2NrRm9ybWF0dGluZ1N0YXRlLnVzZWRWZXJ0aWNhbE1hcmdpbigq
Y3VycmVudEJveCkucG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlcy5iZWZvcmU7CiAKLSAgICAgICAg
cHJldmlvdXNTaWJsaW5nUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbi5hZnRlciA9IG1hcmdpbkNvbGxh
cHNlLmNvbXB1dGVkUG9zaXRpdmVBbmROZWdhdGl2ZU1hcmdpbihwb3NpdGl2ZU5lZ2F0aXZlTWFy
Z2luQmVmb3JlLCBwcmV2aW91c1NpYmxpbmdQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luLmFmdGVyKTsK
KyAgICAgICAgYXV0byBhZGp1c3RlZFByZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFyZ2luID0gcHJl
dmlvdXNTaWJsaW5nVmVydGljYWxNYXJnaW47CisgICAgICAgIGFkanVzdGVkUHJldmlvdXNTaWJs
aW5nVmVydGljYWxNYXJnaW4ucG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlcy5hZnRlciA9IG1hcmdp
bkNvbGxhcHNlLmNvbXB1dGVkUG9zaXRpdmVBbmROZWdhdGl2ZU1hcmdpbihwb3NpdGl2ZU5lZ2F0
aXZlTWFyZ2luQmVmb3JlLCBwcmV2aW91c1NpYmxpbmdQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luLmFm
dGVyKTsKICAgICAgICAgaWYgKG1hcmdpbnNDb2xsYXBzZVRocm91Z2gpIHsKLSAgICAgICAgICAg
IHByZXZpb3VzU2libGluZ1Bvc2l0aXZlTmVnYXRpdmVNYXJnaW4uYmVmb3JlID0gbWFyZ2luQ29s
bGFwc2UuY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKHByZXZpb3VzU2libGluZ1Bv
c2l0aXZlTmVnYXRpdmVNYXJnaW4uYmVmb3JlLCBwcmV2aW91c1NpYmxpbmdQb3NpdGl2ZU5lZ2F0
aXZlTWFyZ2luLmFmdGVyKTsKLSAgICAgICAgICAgIHByZXZpb3VzU2libGluZ1Bvc2l0aXZlTmVn
YXRpdmVNYXJnaW4uYWZ0ZXIgPSBwcmV2aW91c1NpYmxpbmdQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2lu
LmJlZm9yZTsKKyAgICAgICAgICAgIGFkanVzdGVkUHJldmlvdXNTaWJsaW5nVmVydGljYWxNYXJn
aW4ucG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlcy5iZWZvcmUgPSBtYXJnaW5Db2xsYXBzZS5jb21w
dXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4ocHJldmlvdXNTaWJsaW5nUG9zaXRpdmVOZWdh
dGl2ZU1hcmdpbi5iZWZvcmUsIGFkanVzdGVkUHJldmlvdXNTaWJsaW5nVmVydGljYWxNYXJnaW4u
cG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlcy5hZnRlcik7CisgICAgICAgICAgICBhZGp1c3RlZFBy
ZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFyZ2luLnBvc2l0aXZlQW5kTmVnYXRpdmVWYWx1ZXMuYWZ0
ZXIgPSBhZGp1c3RlZFByZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFyZ2luLnBvc2l0aXZlQW5kTmVn
YXRpdmVWYWx1ZXMuYmVmb3JlOwogICAgICAgICB9Ci0gICAgICAgIGJsb2NrRm9ybWF0dGluZ1N0
YXRlLnNldFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbihwcmV2aW91c1NpYmxpbmcs
IHByZXZpb3VzU2libGluZ1Bvc2l0aXZlTmVnYXRpdmVNYXJnaW4pOworICAgICAgICBibG9ja0Zv
cm1hdHRpbmdTdGF0ZS5zZXRVc2VkVmVydGljYWxNYXJnaW4ocHJldmlvdXNTaWJsaW5nLCBhZGp1
c3RlZFByZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFyZ2luKTsKIAogICAgICAgICBpZiAoIW1hcmdp
bnNDb2xsYXBzZVRocm91Z2gpCiAgICAgICAgICAgICBicmVhazsKQEAgLTUxMCwyNSArNTExLDI1
IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnVwZGF0ZU1h
cmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nCiAgICAgfQogfQogCi1Qb3NpdGl2ZUFuZE5lZ2F0
aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5D
b2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCwgTWFy
Z2luVHlwZSBtYXJnaW5UeXBlKSBjb25zdAorVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFu
ZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxh
cHNlOjpwb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBNYXJnaW5U
eXBlIG1hcmdpblR5cGUpIGNvbnN0CiB7CiAgICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3RhdGUg
PSBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4obGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5n
U3RhdGVGb3JCb3gobGF5b3V0Qm94KSk7CiAgICAgLy8gQnkgdGhlIHRpbWUgd2UgZ2V0IGhlcmUg
aW4gQkZDIGxheW91dCB0byBnYXRoZXIgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIG1hcmdpbiB2YWx1
ZXMgZm9yIGVpdGhlciBhIHByZXZpb3VzIHNpYmxpbmcgb3IgYSBjaGlsZCBib3gsCiAgICAgLy8g
d2UgbXVzaCBoYXZlIGNvbXB1dGVkIGFuZCBjYWNoZWQgdGhvc2UgdmFsdWVzLgotICAgIEFTU0VS
VChibG9ja0Zvcm1hdHRpbmdTdGF0ZS5oYXNQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJn
aW4obGF5b3V0Qm94KSk7Ci0gICAgYXV0byBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJn
aW4gPSBibG9ja0Zvcm1hdHRpbmdTdGF0ZS5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJn
aW4obGF5b3V0Qm94KTsKKyAgICBBU1NFUlQoYmxvY2tGb3JtYXR0aW5nU3RhdGUuaGFzVXNlZFZl
cnRpY2FsTWFyZ2luKGxheW91dEJveCkpOworICAgIGF1dG8gcG9zaXRpdmVBbmROZWdhdGl2ZVZl
cnRpY2FsTWFyZ2luID0gYmxvY2tGb3JtYXR0aW5nU3RhdGUudXNlZFZlcnRpY2FsTWFyZ2luKGxh
eW91dEJveCkucG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlczsKICAgICByZXR1cm4gbWFyZ2luVHlw
ZSA9PSBNYXJnaW5UeXBlOjpCZWZvcmUgPyBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJn
aW4uYmVmb3JlIDogcG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luLmFmdGVyOyAKIH0K
IAotUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUo
Y29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFs
dWVzIG5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3QKK1VzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRp
dmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5D
b2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJv
eCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFs
dWVzKSBjb25zdAogewotICAgIGF1dG8gZmlyc3RDaGlsZENvbGxhcHNlZE1hcmdpbkJlZm9yZSA9
IFsmXSgpIC0+IFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIHsKKyAg
ICBhdXRvIGZpcnN0Q2hpbGRDb2xsYXBzZWRNYXJnaW5CZWZvcmUgPSBbJl0oKSAtPiBVc2VkVmVy
dGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgewogICAgICAgICBp
ZiAoIW1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhGaXJzdEluRmxvd0NoaWxkTWFyZ2luQmVmb3Jl
KGxheW91dEJveCkpCiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICByZXR1cm4gcG9z
aXRpdmVOZWdhdGl2ZVZhbHVlcygqZG93bmNhc3Q8Q29udGFpbmVyQm94PihsYXlvdXRCb3gpLmZp
cnN0SW5GbG93Q2hpbGQoKSwgTWFyZ2luVHlwZTo6QmVmb3JlKTsKICAgICB9OwogCi0gICAgYXV0
byBwcmV2aW91U2libGluZ0NvbGxhcHNlZE1hcmdpbkFmdGVyID0gWyZdKCkgLT4gUG9zaXRpdmVB
bmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgeworICAgIGF1dG8gcHJldmlvdVNpYmxp
bmdDb2xsYXBzZWRNYXJnaW5BZnRlciA9IFsmXSgpIC0+IFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9z
aXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyB7CiAgICAgICAgIGlmICghbWFyZ2luQmVmb3Jl
Q29sbGFwc2VzV2l0aFByZXZpb3VzU2libGluZ01hcmdpbkFmdGVyKGxheW91dEJveCkpCiAgICAg
ICAgICAgICByZXR1cm4geyB9OwogICAgICAgICByZXR1cm4gcG9zaXRpdmVOZWdhdGl2ZVZhbHVl
cygqbGF5b3V0Qm94LnByZXZpb3VzSW5GbG93U2libGluZygpLCBNYXJnaW5UeXBlOjpBZnRlcik7
CkBAIC01NDEsNyArNTQyLDcgQEAgUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpW
YWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2UKICAgICBpZiAoY29s
bGFwc2VkTWFyZ2luQmVmb3JlLmlzUXVpcmsgJiYgZm9ybWF0dGluZ0NvbnRleHQoKS5xdWlya3Mo
KS5zaG91bGRJZ25vcmVDb2xsYXBzZWRRdWlya01hcmdpbihsYXlvdXRCb3gpKQogICAgICAgICBj
b2xsYXBzZWRNYXJnaW5CZWZvcmUgPSB7IH07CiAKLSAgICBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVy
dGljYWxNYXJnaW46OlZhbHVlcyBub25Db2xsYXBzZWRCZWZvcmU7CisgICAgVXNlZFZlcnRpY2Fs
TWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIG5vbkNvbGxhcHNlZEJlZm9y
ZTsKICAgICBpZiAobm9uQ29sbGFwc2VkVmFsdWVzLmJlZm9yZSA+IDApCiAgICAgICAgIG5vbkNv
bGxhcHNlZEJlZm9yZSA9IHsgbm9uQ29sbGFwc2VkVmFsdWVzLmJlZm9yZSwgeyB9LCBsYXlvdXRC
b3guc3R5bGUoKS5oYXNNYXJnaW5CZWZvcmVRdWlyaygpIH07CiAgICAgZWxzZSBpZiAobm9uQ29s
bGFwc2VkVmFsdWVzLmJlZm9yZSA8IDApCkBAIC01NTAsOSArNTUxLDkgQEAgUG9zaXRpdmVBbmRO
ZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFy
Z2luQ29sbGFwc2UKICAgICByZXR1cm4gY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2lu
KGNvbGxhcHNlZE1hcmdpbkJlZm9yZSwgbm9uQ29sbGFwc2VkQmVmb3JlKTsKIH0KIAotUG9zaXRp
dmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6TWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVNYXJnaW5BZnRlcihjb25zdCBCb3gm
IGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29s
bGFwc2VkVmFsdWVzKSBjb25zdAorVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0
aXZlUGFpcjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpw
b3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0
aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIG5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3QK
IHsKLSAgICBhdXRvIGxhc3RDaGlsZENvbGxhcHNlZE1hcmdpbkFmdGVyID0gWyZdKCkgLT4gUG9z
aXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgeworICAgIGF1dG8gbGFzdENo
aWxkQ29sbGFwc2VkTWFyZ2luQWZ0ZXIgPSBbJl0oKSAtPiBVc2VkVmVydGljYWxNYXJnaW46OlBv
c2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgewogICAgICAgICBpZiAoIW1hcmdpbkFmdGVy
Q29sbGFwc2VzV2l0aExhc3RJbkZsb3dDaGlsZE1hcmdpbkFmdGVyKGxheW91dEJveCkpCiAgICAg
ICAgICAgICByZXR1cm4geyB9OwogICAgICAgICByZXR1cm4gcG9zaXRpdmVOZWdhdGl2ZVZhbHVl
cygqZG93bmNhc3Q8Q29udGFpbmVyQm94PihsYXlvdXRCb3gpLmxhc3RJbkZsb3dDaGlsZCgpLCBN
YXJnaW5UeXBlOjpBZnRlcik7CkBAIC01NjAsNyArNTYxLDcgQEAgUG9zaXRpdmVBbmROZWdhdGl2
ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29s
bGFwc2UKIAogICAgIC8vIFdlIGRvbid0IGtub3cgeWV0IHRoZSBtYXJnaW4gYmVmb3JlIHZhbHVl
IG9mIHRoZSBuZXh0IHNpYmxpbmcuIExldCdzIGp1c3QgcHJldGVuZCBpdCBkb2VzIG5vdCBoYXZl
IG9uZSBhbmQgCiAgICAgLy8gdXBkYXRlIGl0IGxhdGVyIHdoZW4gd2UgY29tcHV0ZSB0aGUgbmV4
dCBzaWJsaW5nJ3MgbWFyZ2luIGJlZm9yZS4gU2VlIHVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlv
dXNTaWJsaW5nLgotICAgIFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVz
IG5vbkNvbGxhcHNlZEFmdGVyOworICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmRO
ZWdhdGl2ZVBhaXI6OlZhbHVlcyBub25Db2xsYXBzZWRBZnRlcjsKICAgICBpZiAobm9uQ29sbGFw
c2VkVmFsdWVzLmFmdGVyID4gMCkKICAgICAgICAgbm9uQ29sbGFwc2VkQWZ0ZXIgPSB7IG5vbkNv
bGxhcHNlZFZhbHVlcy5hZnRlciwgeyB9LCBsYXlvdXRCb3guc3R5bGUoKS5oYXNNYXJnaW5BZnRl
clF1aXJrKCkgfTsKICAgICBlbHNlIGlmIChub25Db2xsYXBzZWRWYWx1ZXMuYWZ0ZXIgPCAwKQpA
QCAtNTc1LDE0ICs1NzYsMTQgQEAgTGF5b3V0VW5pdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpN
YXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW4KICAgICByZXR1cm4g
bWFyZ2luVmFsdWUocG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShsYXlvdXRCb3gsIG5vbkNv
bGxhcHNlZFZhbHVlcykpLnZhbHVlT3Iobm9uQ29sbGFwc2VkVmFsdWVzLmJlZm9yZSk7CiB9CiAK
LUJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpDb2xsYXBzZWRBbmRQb3Np
dGl2ZU5lZ2F0aXZlVmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNl
Ojpjb2xsYXBzZWRWZXJ0aWNhbFZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRp
Y2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKQorVXNlZFZl
cnRpY2FsTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpjb2xs
YXBzZWRWZXJ0aWNhbFZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFy
Z2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKQogewogICAgIEFTU0VS
VChsYXlvdXRCb3guaXNCbG9ja0xldmVsQm94KCkpOwogICAgIC8vIDEuIEdldCBtaW4vbWF4IG1h
cmdpbiB0b3AgdmFsdWVzIGZyb20gdGhlIGZpcnN0IGluLWZsb3cgY2hpbGQgaWYgd2UgYXJlIGNv
bGxhcHNpbmcgbWFyZ2luIHRvcCB3aXRoIGl0LgogICAgIC8vIDIuIEdldCBtaW4vbWF4IG1hcmdp
biB0b3AgdmFsdWVzIGZyb20gdGhlIHByZXZpb3VzIGluLWZsb3cgc2libGluZywgaWYgd2UgYXJl
IGNvbGxhcHNpbmcgbWFyZ2luIHRvcCB3aXRoIGl0LgogICAgIC8vIDMuIEdldCB0aGlzIGxheW91
dCBib3gncyBjb21wdXRlZCBtYXJnaW4gdG9wIHZhbHVlLgogICAgIC8vIDQuIFVwZGF0ZSB0aGUg
bWluL21heCB2YWx1ZSBhbmQgY29tcHV0ZSB0aGUgZmluYWwgbWFyZ2luLgotICAgIGF1dG8gcG9z
aXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luID0gUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRp
Y2FsTWFyZ2luIHsgdGhpcy0+cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShsYXlvdXRCb3gs
IG5vbkNvbGxhcHNlZFZhbHVlcyksIHRoaXMtPnBvc2l0aXZlTmVnYXRpdmVNYXJnaW5BZnRlcihs
YXlvdXRCb3gsIG5vbkNvbGxhcHNlZFZhbHVlcykgfTsKKyAgICBhdXRvIHBvc2l0aXZlQW5kTmVn
YXRpdmVWZXJ0aWNhbE1hcmdpbiA9IFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdh
dGl2ZVBhaXIgeyB0aGlzLT5wb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGxheW91dEJveCwg
bm9uQ29sbGFwc2VkVmFsdWVzKSwgdGhpcy0+cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGxh
eW91dEJveCwgbm9uQ29sbGFwc2VkVmFsdWVzKSB9OwogCiAgICAgYXV0byBtYXJnaW5zQ29sbGFw
c2VUaHJvdWdoID0gdGhpcy0+bWFyZ2luc0NvbGxhcHNlVGhyb3VnaChsYXlvdXRCb3gpOwogICAg
IGlmIChtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKSB7CkBAIC01OTIsMTQgKzU5MywxNSBAQCBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6Q29sbGFwc2VkQW5kUG9zaXRpdmVO
ZWdhdGl2ZVZhbHVlcyBCbG9jawogCiAgICAgYXV0byBoYXNDb2xsYXBzZWRNYXJnaW5CZWZvcmUg
PSBtYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoRmlyc3RJbkZsb3dDaGlsZE1hcmdpbkJlZm9yZShs
YXlvdXRCb3gpIHx8IG1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQcmV2aW91c1NpYmxpbmdNYXJn
aW5BZnRlcihsYXlvdXRCb3gpOwogICAgIGF1dG8gaGFzQ29sbGFwc2VkTWFyZ2luQWZ0ZXIgPSBt
YXJnaW5BZnRlckNvbGxhcHNlc1dpdGhMYXN0SW5GbG93Q2hpbGRNYXJnaW5BZnRlcihsYXlvdXRC
b3gpOworICAgIGF1dG8gdXNlZFZlcnRpY2FsTWFyZ2luID0gVXNlZFZlcnRpY2FsTWFyZ2luIHsg
bm9uQ29sbGFwc2VkVmFsdWVzLCB7IH0sIHBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdp
biB9OwogCiAgICAgaWYgKChoYXNDb2xsYXBzZWRNYXJnaW5CZWZvcmUgJiYgaGFzQ29sbGFwc2Vk
TWFyZ2luQWZ0ZXIpIHx8IG1hcmdpbnNDb2xsYXBzZVRocm91Z2gpCi0gICAgICAgIHJldHVybiB7
IHsgbWFyZ2luVmFsdWUocG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luLmJlZm9yZSks
IG1hcmdpblZhbHVlKHBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbi5hZnRlciksIG1h
cmdpbnNDb2xsYXBzZVRocm91Z2ggfSwgcG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2lu
IH07Ci0gICAgaWYgKGhhc0NvbGxhcHNlZE1hcmdpbkJlZm9yZSkKLSAgICAgICAgcmV0dXJuIHsg
eyBtYXJnaW5WYWx1ZShwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4uYmVmb3JlKSwg
eyB9LCBmYWxzZSB9LCBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4gfTsKLSAgICBp
ZiAoaGFzQ29sbGFwc2VkTWFyZ2luQWZ0ZXIpCi0gICAgICAgIHJldHVybiB7IHsgeyB9LCBtYXJn
aW5WYWx1ZShwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4uYWZ0ZXIpLCBmYWxzZSB9
LCBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4gfTsKLSAgICByZXR1cm4geyB7IHsg
fSwgeyB9LCBmYWxzZSB9LCBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4gfTsKKyAg
ICAgICAgdXNlZFZlcnRpY2FsTWFyZ2luLmNvbGxhcHNlZFZhbHVlcyA9IHsgbWFyZ2luVmFsdWUo
cG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luLmJlZm9yZSksIG1hcmdpblZhbHVlKHBv
c2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbi5hZnRlciksIG1hcmdpbnNDb2xsYXBzZVRo
cm91Z2ggfTsKKyAgICBlbHNlIGlmIChoYXNDb2xsYXBzZWRNYXJnaW5CZWZvcmUpCisgICAgICAg
IHVzZWRWZXJ0aWNhbE1hcmdpbi5jb2xsYXBzZWRWYWx1ZXMgPSB7IG1hcmdpblZhbHVlKHBvc2l0
aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbi5iZWZvcmUpLCB7IH0sIGZhbHNlIH07CisgICAg
ZWxzZSBpZiAoaGFzQ29sbGFwc2VkTWFyZ2luQWZ0ZXIpCisgICAgICAgIHVzZWRWZXJ0aWNhbE1h
cmdpbi5jb2xsYXBzZWRWYWx1ZXMgPSB7IHsgfSwgbWFyZ2luVmFsdWUocG9zaXRpdmVBbmROZWdh
dGl2ZVZlcnRpY2FsTWFyZ2luLmFmdGVyKSwgZmFsc2UgfTsKKyAgICByZXR1cm4gdXNlZFZlcnRp
Y2FsTWFyZ2luOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xs
YXBzZS5jcHAKaW5kZXggYTU4YzVmNmQ0NDQ2MmNjM2YwMmNkN2UzMzExYWI4YWRiMTI4ZDJiOC4u
ZGVmYjNkNTU0ZmU2OGRlNDI3MzFmZjhlMmQ0YjIwZWFiZjY1OWVjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9QcmVjb21wdXRlZEJsb2NrTWFyZ2lu
Q29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
UHJlY29tcHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAtMzgsMTEgKzM4LDExIEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAotUG9zaXRpdmVBbmROZWdh
dGl2ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2lu
Q29sbGFwc2U6OnByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyhjb25zdCBCb3gmIGxh
eW91dEJveCkgY29uc3QKK1VzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBh
aXI6OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cHJlY29t
cHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAog
ewogICAgIGF1dG8mIGJsb2NrRm9ybWF0dGluZ1N0YXRlID0gZG93bmNhc3Q8QmxvY2tGb3JtYXR0
aW5nU3RhdGU+KGxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9yQm94KGxheW91dEJveCkp
OwotICAgIGlmIChibG9ja0Zvcm1hdHRpbmdTdGF0ZS5oYXNQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVy
dGljYWxNYXJnaW4obGF5b3V0Qm94KSkKLSAgICAgICAgcmV0dXJuIGJsb2NrRm9ybWF0dGluZ1N0
YXRlLnBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbihsYXlvdXRCb3gpLmJlZm9yZTsK
KyAgICBpZiAoYmxvY2tGb3JtYXR0aW5nU3RhdGUuaGFzVXNlZFZlcnRpY2FsTWFyZ2luKGxheW91
dEJveCkpCisgICAgICAgIHJldHVybiBibG9ja0Zvcm1hdHRpbmdTdGF0ZS51c2VkVmVydGljYWxN
YXJnaW4obGF5b3V0Qm94KS5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFsdWVzLmJlZm9yZTsKIAogICAg
IGF1dG8gZ2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5KCk7CiAgICAgYXV0
byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBnZW9tZXRyeS5jb25zdHJhaW50c0ZvckluRmxvd0Nv
bnRlbnQobGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKS5ob3Jpem9udGFsOwpAQCAtNTEsMjAg
KzUxLDIwIEBAIFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlCiAgICAgcmV0dXJuIHByZWNvbXB1dGVk
UG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShsYXlvdXRCb3gsIG5vbkNvbGxhcHNlZE1hcmdp
bik7CiB9CiAKLVBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwcmVjb21wdXRlZFBvc2l0aXZlTmVn
YXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbE1hcmdp
bjo6Tm9uQ29sbGFwc2VkVmFsdWVzIG5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3QKK1VzZWRWZXJ0
aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFy
Z2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNv
bGxhcHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0CiB7Ci0gICAgYXV0byBmaXJz
dENoaWxkQ29sbGFwc2VkTWFyZ2luQmVmb3JlID0gWyZdKCkgLT4gUG9zaXRpdmVBbmROZWdhdGl2
ZVZlcnRpY2FsTWFyZ2luOjpWYWx1ZXMgeworICAgIGF1dG8gZmlyc3RDaGlsZENvbGxhcHNlZE1h
cmdpbkJlZm9yZSA9IFsmXSgpIC0+IFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdh
dGl2ZVBhaXI6OlZhbHVlcyB7CiAgICAgICAgIGlmICghbWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0
aEZpcnN0SW5GbG93Q2hpbGRNYXJnaW5CZWZvcmUobGF5b3V0Qm94KSkKICAgICAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgICAgIHJldHVybiBwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVWYWx1
ZXMoKmRvd25jYXN0PENvbnRhaW5lckJveD4obGF5b3V0Qm94KS5maXJzdEluRmxvd0NoaWxkKCkp
OwogICAgIH07CiAKLSAgICBhdXRvIHByZXZpb3VTaWJsaW5nQ29sbGFwc2VkTWFyZ2luQWZ0ZXIg
PSBbJl0oKSAtPiBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyB7Cisg
ICAgYXV0byBwcmV2aW91U2libGluZ0NvbGxhcHNlZE1hcmdpbkFmdGVyID0gWyZdKCkgLT4gVXNl
ZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHsKICAgICAg
ICAgaWYgKCFtYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUHJldmlvdXNTaWJsaW5nTWFyZ2luQWZ0
ZXIobGF5b3V0Qm94KSkKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIGF1dG8mIHBy
ZXZpb3VzSW5GbG93U2libGluZyA9ICpsYXlvdXRCb3gucHJldmlvdXNJbkZsb3dTaWJsaW5nKCk7
CiAgICAgICAgIGF1dG8mIGJsb2NrRm9ybWF0dGluZ1N0YXRlID0gZG93bmNhc3Q8QmxvY2tGb3Jt
YXR0aW5nU3RhdGU+KGxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9yQm94KHByZXZpb3Vz
SW5GbG93U2libGluZykpOwotICAgICAgICByZXR1cm4gYmxvY2tGb3JtYXR0aW5nU3RhdGUucG9z
aXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luKHByZXZpb3VzSW5GbG93U2libGluZykuYWZ0
ZXI7CisgICAgICAgIHJldHVybiBibG9ja0Zvcm1hdHRpbmdTdGF0ZS51c2VkVmVydGljYWxNYXJn
aW4ocHJldmlvdXNJbkZsb3dTaWJsaW5nKS5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFsdWVzLmFmdGVy
OwogICAgIH07CiAKICAgICAvLyAxLiBHYXRoZXIgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIG1hcmdp
biB2YWx1ZXMgZnJvbSBmaXJzdCBjaGlsZCBpZiBtYXJnaW5zIGFyZSBhZGpvaW5pbmcuCkBAIC03
NCw3ICs3NCw3IEBAIFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFsdWVzIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlCiAgICAgaWYgKGNvbGxhcHNlZE1h
cmdpbkJlZm9yZS5pc1F1aXJrICYmIGZvcm1hdHRpbmdDb250ZXh0KCkucXVpcmtzKCkuc2hvdWxk
SWdub3JlQ29sbGFwc2VkUXVpcmtNYXJnaW4obGF5b3V0Qm94KSkKICAgICAgICAgY29sbGFwc2Vk
TWFyZ2luQmVmb3JlID0geyB9OwogCi0gICAgYXV0byBub25Db2xsYXBzZWRCZWZvcmUgPSBQb3Np
dGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyB7IH07CisgICAgYXV0byBub25D
b2xsYXBzZWRCZWZvcmUgPSBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQ
YWlyOjpWYWx1ZXMgeyB9OwogICAgIGlmIChub25Db2xsYXBzZWRWYWx1ZXMuYmVmb3JlID4gMCkK
ICAgICAgICAgbm9uQ29sbGFwc2VkQmVmb3JlID0geyBub25Db2xsYXBzZWRWYWx1ZXMuYmVmb3Jl
LCB7IH0sIGxheW91dEJveC5zdHlsZSgpLmhhc01hcmdpbkJlZm9yZVF1aXJrKCkgfTsKICAgICBl
bHNlIGlmIChub25Db2xsYXBzZWRWYWx1ZXMuYmVmb3JlIDwgMCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBl
ckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5jcHAKaW5kZXggMzQyZjIzYWFmNTdmYjViNzhhODk5OWE0YjhjNjQ2MTZmOWFmNjYwNC4uYTZk
MTk5MmEyNWFlNDA5ZmQ0Mzk2YWRhODc0YWIxYzAxY2U4NTEzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVy
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKQEAgLTIyMCwxMCArMjIwLDggQEAgdm9pZCBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luRm9yVGFibGVCb3goY29uc3QKICAg
ICBhdXRvIGhlaWdodEFuZE1hcmdpbiA9IGdlb21ldHJ5KCkuaW5GbG93SGVpZ2h0QW5kTWFyZ2lu
KHRhYmxlQm94LCBjb25zdHJhaW50cy5ob3Jpem9udGFsLCB7IHF1aXJrcygpLm92ZXJyaWRlVGFi
bGVIZWlnaHQodGFibGVCb3gpIH0pOwogCiAgICAgYXV0byBtYXJnaW5Db2xsYXBzZSA9IHRoaXMt
Pm1hcmdpbkNvbGxhcHNlKCk7Ci0gICAgYXV0byBjb2xsYXBzZWRBbmRQb3NpdGl2ZU5lZ2F0aXZl
VmFsdWVzID0gbWFyZ2luQ29sbGFwc2UuY29sbGFwc2VkVmVydGljYWxWYWx1ZXModGFibGVCb3gs
IGhlaWdodEFuZE1hcmdpbi5ub25Db2xsYXBzZWRNYXJnaW4pOworICAgIGF1dG8gdmVydGljYWxN
YXJnaW4gPSBtYXJnaW5Db2xsYXBzZS5jb2xsYXBzZWRWZXJ0aWNhbFZhbHVlcyh0YWJsZUJveCwg
aGVpZ2h0QW5kTWFyZ2luLm5vbkNvbGxhcHNlZE1hcmdpbik7CiAgICAgLy8gQ2FjaGUgdGhlIGNv
bXB1dGVkIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBtYXJnaW4gdmFsdWUgcGFpci4KLSAgICBmb3Jt
YXR0aW5nU3RhdGUoKS5zZXRQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4odGFibGVC
b3gsIGNvbGxhcHNlZEFuZFBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMucG9zaXRpdmVBbmROZWdhdGl2
ZVZlcnRpY2FsVmFsdWVzKTsKLSAgICBhdXRvIHZlcnRpY2FsTWFyZ2luID0gVXNlZFZlcnRpY2Fs
TWFyZ2luIHsgaGVpZ2h0QW5kTWFyZ2luLm5vbkNvbGxhcHNlZE1hcmdpbiwgY29sbGFwc2VkQW5k
UG9zaXRpdmVOZWdhdGl2ZVZhbHVlcy5jb2xsYXBzZWRWYWx1ZXMgfTsKICAgICBmb3JtYXR0aW5n
U3RhdGUoKS5zZXRVc2VkVmVydGljYWxNYXJnaW4odGFibGVCb3gsIHZlcnRpY2FsTWFyZ2luKTsK
IAogICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KHRh
YmxlQm94KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>