<?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>149764</bug_id>
          
          <creation_ts>2015-10-02 15:03:37 -0700</creation_ts>
          <short_desc>[CSS Grid Layout] Don&apos;t need to reset auto-margins during grid items layout</short_desc>
          <delta_ts>2015-10-06 12:24:27 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Javier Fernandez">jfernandez</reporter>
          <assigned_to name="Javier Fernandez">jfernandez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rego</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1130319</commentid>
    <comment_count>0</comment_count>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2015-10-02 15:03:37 -0700</bug_when>
    <thetext>When dealing with auto-margins alignment we were reseting auto values for margins, when grid items don&apos;t need to be laid out, just before using them to set the grid items location. 

This operation can be avoided if we just compute them, when required, during the execution of the stretching logic. 

This change could help us to avoid performing extra layout calls on some grid items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130346</commentid>
    <comment_count>1</comment_count>
      <attachid>262361</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2015-10-02 16:32:06 -0700</bug_when>
    <thetext>Created attachment 262361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130982</commentid>
    <comment_count>2</comment_count>
      <attachid>262361</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-06 09:22:10 -0700</bug_when>
    <thetext>Comment on attachment 262361
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=262361&amp;action=review

&gt; Source/WebCore/rendering/RenderGrid.cpp:1505
&gt; +    const RenderStyle* parentStyle = &amp;style();

Better to leave this as a reference and put the &amp; at each call site. That helps us in the future when we change the functions to take references instead of pointers.

&gt; Source/WebCore/rendering/RenderGrid.cpp:1527
&gt; +    const RenderStyle* parentStyle = &amp;style();

Ditto.

&gt; Source/WebCore/rendering/RenderGrid.cpp:1652
&gt; +        // In order to properly adjust the Self Alignment values we need to consider the offset between tracks.

Not sure why it’s good to capitalize the words “Self Alignment”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131026</commentid>
    <comment_count>3</comment_count>
      <attachid>262524</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2015-10-06 10:49:17 -0700</bug_when>
    <thetext>Created attachment 262524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131080</commentid>
    <comment_count>4</comment_count>
      <attachid>262524</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 12:24:23 -0700</bug_when>
    <thetext>Comment on attachment 262524
Patch

Clearing flags on attachment: 262524

Committed r190633: &lt;http://trac.webkit.org/changeset/190633&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131081</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 12:24:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262361</attachid>
            <date>2015-10-02 16:32:06 -0700</date>
            <delta_ts>2015-10-06 10:49:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149764-20151003013138.patch</filename>
            <type>text/plain</type>
            <size>14423</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM1ZmI1NjRhZWM4NzRl
NGJhNmY0NWI2NTJmNDlkMTE1MmM5YzU0NS4uNGNjMTljMGI2OTRkZDllMGUyYWQ2ZjhiOTBmN2Zj
ODAwZGNiYTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTEwLTAyICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIERvbid0IG5lZWQgdG8gcmVzZXQgYXV0by1tYXJnaW5zIGR1cmluZyBncmlkIGl0
ZW1zIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ5NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGEgcmVmYWN0b3Jpbmcgb2YgdGhlIGF1dG8tbWFyZ2lu
IGFsaWdubWVudCBjb2RlIGZvciBncmlkCisgICAgICAgIGl0ZW1zIHNvIGl0IHVzZXMgc3RhcnQv
ZW5kIGFuZCBiZWZvcmUvYWZ0ZXIgbWFyZ2luIGxvZ2ljIHRlcm1zLgorCisgICAgICAgIEkgYWRk
aXRpb24sIGl0IGF2b2lkcyByZXNldHRpbmcgdGhlIGF1dG8tbWFyZ2luIHZhbHVlcywgd2hpY2gg
cmVxdWlyZXMgYW4gZXh0cmEKKyAgICAgICAgbGF5b3V0LCBiZWZvcmUgYXBwbHlpbmcgdGhlIGFs
aWdubWVudCBsb2dpYy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBu
byBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRlTWFyZ2luTG9naWNhbEhlaWdo
dEZvckNoaWxkKTogQ29tcHV0aW5nIG1hcmdpbnMgaWYgY2hpbGQgbmVlZHMgbGF5b3V0LgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6YXZhaWxhYmxlQWxpZ25tZW50U3BhY2VGb3JDaGls
ZEJlZm9yZVN0cmV0Y2hpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6dXBkYXRl
QXV0b01hcmdpbnNJblJvd0F4aXNJZk5lZWRlZCk6IFVzaW5nIHN0YXJ0L2VuZCBsb2dpY2FsIG1h
cmdpbnMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjp1cGRhdGVBdXRvTWFyZ2luc0lu
Q29sdW1uQXhpc0lmTmVlZGVkKTogVXNpbmcgYmVmb3JlL2FmdGVyIGxvZ2ljYWwgbWFyZ2lucy4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbHVtbkF4aXNPZmZzZXRGb3JDaGlsZCk6
IEp1c3QgYWRkZWQgY29tbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJvd0F4
aXNPZmZzZXRGb3JDaGlsZCk6IEp1c3QgYWRkZWQgY29tbWVudC4KKwogMjAxNS0xMC0wMiAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxOTA1MjAsIHNvbWUgdGVzdHMgYXNzZXJ0IC8gY3Jhc2guCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggZjdmMzY2NDdjN2QwOTI2OGI2ZWUz
MjNlNzA1MTEzMTk5NjAzZjJlNi4uZmI4Nzk2YzkwOWI4YjlkMmI1NzQ4Y2RmZDRkMTg1ZTgzMjZh
NGQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTI3MCw4
ICsxMjcwLDYgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQogICAgICAgICAg
ICAgfHwgKCghb2xkT3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCB8
fCBvbGRPdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0LnZhbHVlKCkg
IT0gb3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCkKICAgICAgICAg
ICAgICAgICAmJiBjaGlsZC0+aGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkpKQogICAgICAgICAg
ICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHJlc2V0QXV0b01hcmdpbnNBbmRMb2dpY2FsVG9wSW5Db2x1bW5BeGlzKCpjaGls
ZCk7CiAKICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExv
Z2ljYWxXaWR0aChvdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgpOwog
ICAgICAgICBjaGlsZC0+c2V0T3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhl
aWdodChvdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KTsKQEAgLTE0
MTIsOSArMTQxMCwyNCBAQCBMYXlvdXRVbml0IFJlbmRlckdyaWQ6Om1hcmdpbkxvZ2ljYWxIZWln
aHRGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiBpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID8gY2hpbGQudmVydGljYWxNYXJnaW5FeHRlbnQoKSA6IGNo
aWxkLmhvcml6b250YWxNYXJnaW5FeHRlbnQoKTsKIH0KIAorTGF5b3V0VW5pdCBSZW5kZXJHcmlk
Ojpjb21wdXRlTWFyZ2luTG9naWNhbEhlaWdodEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hp
bGQpIGNvbnN0Cit7CisgICAgaWYgKCFjaGlsZC5zdHlsZSgpLmhhc01hcmdpbigpKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIExheW91dFVuaXQgbWFyZ2luQmVmb3JlOworICAgIExheW91dFVu
aXQgbWFyZ2luQWZ0ZXI7CisgICAgY2hpbGQuY29tcHV0ZUJsb2NrRGlyZWN0aW9uTWFyZ2lucyh0
aGlzLCBtYXJnaW5CZWZvcmUsIG1hcmdpbkFmdGVyKTsKKworICAgIHJldHVybiBtYXJnaW5CZWZv
cmUgKyBtYXJnaW5BZnRlcjsKK30KKwogTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjphdmFpbGFibGVB
bGlnbm1lbnRTcGFjZUZvckNoaWxkQmVmb3JlU3RyZXRjaGluZyhMYXlvdXRVbml0IGdyaWRBcmVh
QnJlYWR0aEZvckNoaWxkLCBjb25zdCBSZW5kZXJCb3gmIGNoaWxkKSBjb25zdAogewotICAgIHJl
dHVybiBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZCAtIG1hcmdpbkxvZ2ljYWxIZWlnaHRGb3JDaGls
ZChjaGlsZCk7CisgICAgLy8gQmVjYXVzZSB3ZSB3YW50IHRvIGF2b2lkIG11bHRpcGxlIGxheW91
dHMsIHN0cmV0Y2hpbmcgbG9naWMgbWlnaHQgYmUgcGVyZm9ybWVkIGJlZm9yZQorICAgIC8vIGNo
aWxkcmVuIGFyZSBsYWlkIG91dCwgc28gd2UgY2FuJ3QgdXNlIHRoZSBjaGlsZCBjYWNoZWQgdmFs
dWVzLiBIZW5jZSwgd2UgbmVlZCB0bworICAgIC8vIGNvbXB1dGUgbWFyZ2lucyBpbiBvcmRlciB0
byBkZXRlcm1pbmUgdGhlIGF2YWlsYWJsZSBoZWlnaHQgYmVmb3JlIHN0cmV0Y2hpbmcuCisgICAg
cmV0dXJuIGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkIC0gKGNoaWxkLm5lZWRzTGF5b3V0KCkgPyBj
b21wdXRlTWFyZ2luTG9naWNhbEhlaWdodEZvckNoaWxkKGNoaWxkKSA6IG1hcmdpbkxvZ2ljYWxI
ZWlnaHRGb3JDaGlsZChjaGlsZCkpOwogfQogCiAvLyBGSVhNRTogVGhpcyBsb2dpYyBpcyBzaGFy
ZWQgYnkgUmVuZGVyRmxleGlibGVCb3gsIHNvIGl0IHNob3VsZCBiZSBtb3ZlZCB0byBSZW5kZXJC
b3guCkBAIC0xNDgxLDU3ICsxNDk0LDI0IEBAIGJvb2wgUmVuZGVyR3JpZDo6aGFzQXV0b01hcmdp
bnNJblJvd0F4aXMoY29uc3QgUmVuZGVyQm94JiBjaGlsZCkgY29uc3QKIH0KIAogLy8gRklYTUU6
IFRoaXMgbG9naWMgaXMgc2hhcmVkIGJ5IFJlbmRlckZsZXhpYmxlQm94LCBzbyBpdCBzaG91bGQg
YmUgbW92ZWQgdG8gUmVuZGVyQm94Lgotdm9pZCBSZW5kZXJHcmlkOjpyZXNldEF1dG9NYXJnaW5z
QW5kTG9naWNhbFRvcEluQ29sdW1uQXhpcyhSZW5kZXJCb3gmIGNoaWxkKQotewotICAgIGlmICho
YXNBdXRvTWFyZ2luc0luQ29sdW1uQXhpcyhjaGlsZCkgfHwgY2hpbGQubmVlZHNMYXlvdXQoKSkg
ewotICAgICAgICBjaGlsZC5jbGVhck92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKLSAg
ICAgICAgY2hpbGQudXBkYXRlTG9naWNhbEhlaWdodCgpOwotICAgICAgICBpZiAoaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSkgewotICAgICAgICAgICAgaWYgKGNoaWxkLnN0eWxlKCkubWFyZ2lu
VG9wKCkuaXNBdXRvKCkpCi0gICAgICAgICAgICAgICAgY2hpbGQuc2V0TWFyZ2luVG9wKDApOwot
ICAgICAgICAgICAgaWYgKGNoaWxkLnN0eWxlKCkubWFyZ2luQm90dG9tKCkuaXNBdXRvKCkpCi0g
ICAgICAgICAgICAgICAgY2hpbGQuc2V0TWFyZ2luQm90dG9tKDApOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgaWYgKGNoaWxkLnN0eWxlKCkubWFyZ2luTGVmdCgpLmlzQXV0bygpKQot
ICAgICAgICAgICAgICAgIGNoaWxkLnNldE1hcmdpbkxlZnQoMCk7Ci0gICAgICAgICAgICBpZiAo
Y2hpbGQuc3R5bGUoKS5tYXJnaW5SaWdodCgpLmlzQXV0bygpKQotICAgICAgICAgICAgICAgIGNo
aWxkLnNldE1hcmdpblJpZ2h0KDApOwotICAgICAgICB9Ci0KLSAgICB9Ci19Ci0KLS8vIEZJWE1F
OiBUaGlzIGxvZ2ljIGlzIHNoYXJlZCBieSBSZW5kZXJGbGV4aWJsZUJveCwgc28gaXQgc2hvdWxk
IGJlIG1vdmVkIHRvIFJlbmRlckJveC4KIHZvaWQgUmVuZGVyR3JpZDo6dXBkYXRlQXV0b01hcmdp
bnNJblJvd0F4aXNJZk5lZWRlZChSZW5kZXJCb3gmIGNoaWxkKQogewogICAgIEFTU0VSVCghY2hp
bGQuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOwotICAgIEFTU0VSVChjaGlsZC5vdmVycmlkZUNv
bnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoKSk7CiAKICAgICBMYXlvdXRVbml0IGF2
YWlsYWJsZUFsaWdubWVudFNwYWNlID0gY2hpbGQub3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250
ZW50TG9naWNhbFdpZHRoKCkudmFsdWUoKSAtIGNoaWxkLmxvZ2ljYWxXaWR0aCgpOwogICAgIGlm
IChhdmFpbGFibGVBbGlnbm1lbnRTcGFjZSA8PSAwKQogICAgICAgICByZXR1cm47CiAKLSAgICBi
b29sIGlzSG9yaXpvbnRhbCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7Ci0gICAgTGVuZ3Ro
IHRvcE9yTGVmdCA9IGlzSG9yaXpvbnRhbCA/IGNoaWxkLnN0eWxlKCkubWFyZ2luTGVmdCgpIDog
Y2hpbGQuc3R5bGUoKS5tYXJnaW5Ub3AoKTsKLSAgICBMZW5ndGggYm90dG9tT3JSaWdodCA9IGlz
SG9yaXpvbnRhbCA/IGNoaWxkLnN0eWxlKCkubWFyZ2luUmlnaHQoKSA6IGNoaWxkLnN0eWxlKCku
bWFyZ2luQm90dG9tKCk7Ci0gICAgaWYgKHRvcE9yTGVmdC5pc0F1dG8oKSAmJiBib3R0b21PclJp
Z2h0LmlzQXV0bygpKSB7Ci0gICAgICAgIGlmIChpc0hvcml6b250YWwpIHsKLSAgICAgICAgICAg
IGNoaWxkLnNldE1hcmdpbkxlZnQoYXZhaWxhYmxlQWxpZ25tZW50U3BhY2UgLyAyKTsKLSAgICAg
ICAgICAgIGNoaWxkLnNldE1hcmdpblJpZ2h0KGF2YWlsYWJsZUFsaWdubWVudFNwYWNlIC8gMik7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBjaGlsZC5zZXRNYXJnaW5Ub3AoYXZhaWxh
YmxlQWxpZ25tZW50U3BhY2UgLyAyKTsKLSAgICAgICAgICAgIGNoaWxkLnNldE1hcmdpbkJvdHRv
bShhdmFpbGFibGVBbGlnbm1lbnRTcGFjZSAvIDIpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlm
ICh0b3BPckxlZnQuaXNBdXRvKCkpIHsKLSAgICAgICAgaWYgKGlzSG9yaXpvbnRhbCkKLSAgICAg
ICAgICAgIGNoaWxkLnNldE1hcmdpbkxlZnQoYXZhaWxhYmxlQWxpZ25tZW50U3BhY2UpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBjaGlsZC5zZXRNYXJnaW5Ub3AoYXZhaWxhYmxlQWxpZ25t
ZW50U3BhY2UpOwotICAgIH0gZWxzZSBpZiAoYm90dG9tT3JSaWdodC5pc0F1dG8oKSkgewotICAg
ICAgICBpZiAoaXNIb3Jpem9udGFsKQotICAgICAgICAgICAgY2hpbGQuc2V0TWFyZ2luUmlnaHQo
YXZhaWxhYmxlQWxpZ25tZW50U3BhY2UpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjaGls
ZC5zZXRNYXJnaW5Cb3R0b20oYXZhaWxhYmxlQWxpZ25tZW50U3BhY2UpOworICAgIGNvbnN0IFJl
bmRlclN0eWxlKiBwYXJlbnRTdHlsZSA9ICZzdHlsZSgpOworICAgIExlbmd0aCBtYXJnaW5TdGFy
dCA9IGNoaWxkLnN0eWxlKCkubWFyZ2luU3RhcnRVc2luZyhwYXJlbnRTdHlsZSk7CisgICAgTGVu
Z3RoIG1hcmdpbkVuZCA9IGNoaWxkLnN0eWxlKCkubWFyZ2luRW5kVXNpbmcocGFyZW50U3R5bGUp
OworICAgIGlmIChtYXJnaW5TdGFydC5pc0F1dG8oKSAmJiBtYXJnaW5FbmQuaXNBdXRvKCkpIHsK
KyAgICAgICAgY2hpbGQuc2V0TWFyZ2luU3RhcnQoYXZhaWxhYmxlQWxpZ25tZW50U3BhY2UgLyAy
LCBwYXJlbnRTdHlsZSk7CisgICAgICAgIGNoaWxkLnNldE1hcmdpbkVuZChhdmFpbGFibGVBbGln
bm1lbnRTcGFjZSAvIDIsIHBhcmVudFN0eWxlKTsKKyAgICB9IGVsc2UgaWYgKG1hcmdpblN0YXJ0
LmlzQXV0bygpKSB7CisgICAgICAgIGNoaWxkLnNldE1hcmdpblN0YXJ0KGF2YWlsYWJsZUFsaWdu
bWVudFNwYWNlLCBwYXJlbnRTdHlsZSk7CisgICAgfSBlbHNlIGlmIChtYXJnaW5FbmQuaXNBdXRv
KCkpIHsKKyAgICAgICAgY2hpbGQuc2V0TWFyZ2luRW5kKGF2YWlsYWJsZUFsaWdubWVudFNwYWNl
LCBwYXJlbnRTdHlsZSk7CiAgICAgfQogfQogCkBAIC0xNTM5LDMzICsxNTE5LDIxIEBAIHZvaWQg
UmVuZGVyR3JpZDo6dXBkYXRlQXV0b01hcmdpbnNJblJvd0F4aXNJZk5lZWRlZChSZW5kZXJCb3gm
IGNoaWxkKQogdm9pZCBSZW5kZXJHcmlkOjp1cGRhdGVBdXRvTWFyZ2luc0luQ29sdW1uQXhpc0lm
TmVlZGVkKFJlbmRlckJveCYgY2hpbGQpCiB7CiAgICAgQVNTRVJUKCFjaGlsZC5pc091dE9mRmxv
d1Bvc2l0aW9uZWQoKSk7Ci0gICAgQVNTRVJUKGNoaWxkLm92ZXJyaWRlQ29udGFpbmluZ0Jsb2Nr
Q29udGVudExvZ2ljYWxIZWlnaHQoKSk7CiAKICAgICBMYXlvdXRVbml0IGF2YWlsYWJsZUFsaWdu
bWVudFNwYWNlID0gY2hpbGQub3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhl
aWdodCgpLnZhbHVlKCkgLSBjaGlsZC5sb2dpY2FsSGVpZ2h0KCk7CiAgICAgaWYgKGF2YWlsYWJs
ZUFsaWdubWVudFNwYWNlIDw9IDApCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgaXNIb3Jp
em9udGFsID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKLSAgICBMZW5ndGggdG9wT3JMZWZ0
ID0gaXNIb3Jpem9udGFsID8gY2hpbGQuc3R5bGUoKS5tYXJnaW5Ub3AoKSA6IGNoaWxkLnN0eWxl
KCkubWFyZ2luTGVmdCgpOwotICAgIExlbmd0aCBib3R0b21PclJpZ2h0ID0gaXNIb3Jpem9udGFs
ID8gY2hpbGQuc3R5bGUoKS5tYXJnaW5Cb3R0b20oKSA6IGNoaWxkLnN0eWxlKCkubWFyZ2luUmln
aHQoKTsKLSAgICBpZiAodG9wT3JMZWZ0LmlzQXV0bygpICYmIGJvdHRvbU9yUmlnaHQuaXNBdXRv
KCkpIHsKLSAgICAgICAgaWYgKGlzSG9yaXpvbnRhbCkgewotICAgICAgICAgICAgY2hpbGQuc2V0
TWFyZ2luVG9wKGF2YWlsYWJsZUFsaWdubWVudFNwYWNlIC8gMik7Ci0gICAgICAgICAgICBjaGls
ZC5zZXRNYXJnaW5Cb3R0b20oYXZhaWxhYmxlQWxpZ25tZW50U3BhY2UgLyAyKTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIGNoaWxkLnNldE1hcmdpbkxlZnQoYXZhaWxhYmxlQWxpZ25t
ZW50U3BhY2UgLyAyKTsKLSAgICAgICAgICAgIGNoaWxkLnNldE1hcmdpblJpZ2h0KGF2YWlsYWJs
ZUFsaWdubWVudFNwYWNlIC8gMik7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHRvcE9yTGVm
dC5pc0F1dG8oKSkgewotICAgICAgICBpZiAoaXNIb3Jpem9udGFsKQotICAgICAgICAgICAgY2hp
bGQuc2V0TWFyZ2luVG9wKGF2YWlsYWJsZUFsaWdubWVudFNwYWNlKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY2hpbGQuc2V0TWFyZ2luTGVmdChhdmFpbGFibGVBbGlnbm1lbnRTcGFjZSk7
Ci0gICAgfSBlbHNlIGlmIChib3R0b21PclJpZ2h0LmlzQXV0bygpKSB7Ci0gICAgICAgIGlmIChp
c0hvcml6b250YWwpCi0gICAgICAgICAgICBjaGlsZC5zZXRNYXJnaW5Cb3R0b20oYXZhaWxhYmxl
QWxpZ25tZW50U3BhY2UpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjaGlsZC5zZXRNYXJn
aW5SaWdodChhdmFpbGFibGVBbGlnbm1lbnRTcGFjZSk7CisgICAgY29uc3QgUmVuZGVyU3R5bGUq
IHBhcmVudFN0eWxlID0gJnN0eWxlKCk7CisgICAgTGVuZ3RoIG1hcmdpbkJlZm9yZSA9IGNoaWxk
LnN0eWxlKCkubWFyZ2luQmVmb3JlVXNpbmcocGFyZW50U3R5bGUpOworICAgIExlbmd0aCBtYXJn
aW5BZnRlciA9IGNoaWxkLnN0eWxlKCkubWFyZ2luQWZ0ZXJVc2luZyhwYXJlbnRTdHlsZSk7Cisg
ICAgaWYgKG1hcmdpbkJlZm9yZS5pc0F1dG8oKSAmJiBtYXJnaW5BZnRlci5pc0F1dG8oKSkgewor
ICAgICAgICBjaGlsZC5zZXRNYXJnaW5CZWZvcmUoYXZhaWxhYmxlQWxpZ25tZW50U3BhY2UgLyAy
LCBwYXJlbnRTdHlsZSk7CisgICAgICAgIGNoaWxkLnNldE1hcmdpbkFmdGVyKGF2YWlsYWJsZUFs
aWdubWVudFNwYWNlIC8gMiwgcGFyZW50U3R5bGUpOworICAgIH0gZWxzZSBpZiAobWFyZ2luQmVm
b3JlLmlzQXV0bygpKSB7CisgICAgICAgIGNoaWxkLnNldE1hcmdpbkJlZm9yZShhdmFpbGFibGVB
bGlnbm1lbnRTcGFjZSwgcGFyZW50U3R5bGUpOworICAgIH0gZWxzZSBpZiAobWFyZ2luQWZ0ZXIu
aXNBdXRvKCkpIHsKKyAgICAgICAgY2hpbGQuc2V0TWFyZ2luQWZ0ZXIoYXZhaWxhYmxlQWxpZ25t
ZW50U3BhY2UsIHBhcmVudFN0eWxlKTsKICAgICB9CiB9CiAKQEAgLTE2ODEsNiArMTY0OSw3IEBA
IExheW91dFVuaXQgUmVuZGVyR3JpZDo6Y29sdW1uQXhpc09mZnNldEZvckNoaWxkKGNvbnN0IFJl
bmRlckJveCYgY2hpbGQpIGNvbnN0CiAgICAgICAgIHVuc2lnbmVkIGNoaWxkRW5kTGluZSA9IGNv
b3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb24ubmV4dCgpLnRvSW50KCk7CiAgICAg
ICAgIExheW91dFVuaXQgZW5kT2ZSb3cgPSBtX3Jvd1Bvc2l0aW9uc1tjaGlsZEVuZExpbmVdOwog
ICAgICAgICBMYXlvdXRVbml0IGNoaWxkQnJlYWR0aCA9IGNoaWxkLmxvZ2ljYWxIZWlnaHQoKSAr
IGNoaWxkLm1hcmdpbkxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgLy8gSW4gb3JkZXIgdG8gcHJv
cGVybHkgYWRqdXN0IHRoZSBTZWxmIEFsaWdubWVudCB2YWx1ZXMgd2UgbmVlZCB0byBjb25zaWRl
ciB0aGUgb2Zmc2V0IGJldHdlZW4gdHJhY2tzLgogICAgICAgICBpZiAoY2hpbGRFbmRMaW5lIC0g
Y2hpbGRTdGFydExpbmUgPiAxICYmIGNoaWxkRW5kTGluZSA8IG1fcm93UG9zaXRpb25zLnNpemUo
KSAtIDEpCiAgICAgICAgICAgICBlbmRPZlJvdyAtPSBvZmZzZXRCZXR3ZWVuVHJhY2tzKHN0eWxl
KCkucmVzb2x2ZWRBbGlnbkNvbnRlbnREaXN0cmlidXRpb24oKSwgbV9yb3dQb3NpdGlvbnMsIGNo
aWxkQnJlYWR0aCk7CiAgICAgICAgIExheW91dFVuaXQgb2Zmc2V0RnJvbVN0YXJ0UG9zaXRpb24g
PSBjb21wdXRlT3ZlcmZsb3dBbGlnbm1lbnRPZmZzZXQoUmVuZGVyU3R5bGU6OnJlc29sdmVBbGln
bm1lbnRPdmVyZmxvdyhzdHlsZSgpLCBjaGlsZC5zdHlsZSgpKSwgZW5kT2ZSb3cgLSBzdGFydE9m
Um93LCBjaGlsZEJyZWFkdGgpOwpAQCAtMTcxMCw2ICsxNjc5LDcgQEAgTGF5b3V0VW5pdCBSZW5k
ZXJHcmlkOjpyb3dBeGlzT2Zmc2V0Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCkgY29u
c3QKICAgICAgICAgdW5zaWduZWQgY2hpbGRFbmRMaW5lID0gY29vcmRpbmF0ZS5jb2x1bW5zLnJl
c29sdmVkRmluYWxQb3NpdGlvbi5uZXh0KCkudG9JbnQoKTsKICAgICAgICAgTGF5b3V0VW5pdCBl
bmRPZkNvbHVtbiA9IG1fY29sdW1uUG9zaXRpb25zW2NoaWxkRW5kTGluZV07CiAgICAgICAgIExh
eW91dFVuaXQgY2hpbGRCcmVhZHRoID0gY2hpbGQubG9naWNhbFdpZHRoKCkgKyBjaGlsZC5tYXJn
aW5Mb2dpY2FsV2lkdGgoKTsKKyAgICAgICAgLy8gSW4gb3JkZXIgdG8gcHJvcGVybHkgYWRqdXN0
IHRoZSBTZWxmIEFsaWdubWVudCB2YWx1ZXMgd2UgbmVlZCB0byBjb25zaWRlciB0aGUgb2Zmc2V0
IGJldHdlZW4gdHJhY2tzLgogICAgICAgICBpZiAoY2hpbGRFbmRMaW5lIC0gY2hpbGRTdGFydExp
bmUgPiAxICYmIGNoaWxkRW5kTGluZSA8IG1fY29sdW1uUG9zaXRpb25zLnNpemUoKSAtIDEpCiAg
ICAgICAgICAgICBlbmRPZkNvbHVtbiAtPSBvZmZzZXRCZXR3ZWVuVHJhY2tzKHN0eWxlKCkucmVz
b2x2ZWRKdXN0aWZ5Q29udGVudERpc3RyaWJ1dGlvbigpLCBtX2NvbHVtblBvc2l0aW9ucywgY2hp
bGRCcmVhZHRoKTsKICAgICAgICAgTGF5b3V0VW5pdCBvZmZzZXRGcm9tU3RhcnRQb3NpdGlvbiA9
IGNvbXB1dGVPdmVyZmxvd0FsaWdubWVudE9mZnNldChSZW5kZXJTdHlsZTo6cmVzb2x2ZUp1c3Rp
ZmljYXRpb25PdmVyZmxvdyhzdHlsZSgpLCBjaGlsZC5zdHlsZSgpKSwgZW5kT2ZDb2x1bW4gLSBz
dGFydE9mQ29sdW1uLCBjaGlsZEJyZWFkdGgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY0ZDdhNGI0NGEyNWVlM2RlNzY5
NWMzMTMxZjhiMGYyZDUxZGFkZWMuLjExY2EzNDdmYmIxZGU3MDI2NzJmYzA5OGYzNjllODk2MTVj
ZWI0MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNS0xMC0wMiAgSmF2aWVyIEZlcm5hbmRl
eiAgPGpmZXJuYW5kZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBE
b24ndCBuZWVkIHRvIHJlc2V0IGF1dG8tbWFyZ2lucyBkdXJpbmcgZ3JpZCBpdGVtcyBsYXlvdXQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTc2NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQg
YSBkdXBsaWNhdGVkIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtaXRlbS1zaG91bGQtbm90LWJlLXN0cmV0Y2hlZC13aGVuLWhlaWdodC1vci1tYXJn
aW4tY2hhbmdlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWl0ZW0tc2hvdWxkLW5vdC1iZS1zdHJldGNoZWQtd2hlbi1oZWlnaHQtb3It
bWFyZ2luLWNoYW5nZS5odG1sOiBSZW1vdmVkLgorCiAyMDE1LTEwLTAyICBEZXZpbiBSb3Vzc28g
IDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENv
cHlpbmcgaW5saW5lIHN0eWxlIHRleHQgcHV0cyAidW5kZWZpbmVkIiBpbiB0aGUgcGFzdGVib2Fy
ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVt
LXNob3VsZC1ub3QtYmUtc3RyZXRjaGVkLXdoZW4taGVpZ2h0LW9yLW1hcmdpbi1jaGFuZ2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXNo
b3VsZC1ub3QtYmUtc3RyZXRjaGVkLXdoZW4taGVpZ2h0LW9yLW1hcmdpbi1jaGFuZ2UtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTUwZTBlMGZiM2NkMGFmNzQz
ZjM1N2U3YmNhM2M3ODBiN2ZiYjdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1z
aG91bGQtbm90LWJlLXN0cmV0Y2hlZC13aGVuLWhlaWdodC1vci1tYXJnaW4tY2hhbmdlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotVGhlIGdyaWRzIGJlbG93IGhh
ZCBpbml0aWFsbHkgJ3N0cmV0Y2hlZCcgaXRlbXMsIGJ1dCB3ZSBoYXZlIGNoYW5nZWQgJ2hlaWdo
dCcgYW5kICdtYXJnaW4nIHRvIHZhbHVlcyB3aGljaCBkb24ndCBhbGxvdyBzdHJldGNoLiBUaGlz
IHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgbGF5b3V0IGFsZ29yaXRobSBwcm9wZXJseSBkZXRlY3Rz
IHN1Y2ggY2hhbmdlcyBhbmQgY2xlYXIgdGhlIG92ZXJyaWRlIGhlaWdodCBhY2NvcmRpbmdseS4K
LQotUEFTUwotUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1pdGVtLXNob3VsZC1ub3QtYmUtc3RyZXRjaGVkLXdoZW4taGVpZ2h0LW9yLW1hcmdp
bi1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRl
bS1zaG91bGQtbm90LWJlLXN0cmV0Y2hlZC13aGVuLWhlaWdodC1vci1tYXJnaW4tY2hhbmdlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiNGYzMGY4YWNkNDE4Yjc2YzA3ZjNh
Nzc3ODczOTRkZmZhN2E4ODIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXNob3Vs
ZC1ub3QtYmUtc3RyZXRjaGVkLXdoZW4taGVpZ2h0LW9yLW1hcmdpbi1jaGFuZ2UuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MPgotPGxpbmsgaHJlZj0i
cmVzb3VyY2VzL2dyaWQuY3NzIiByZWw9InN0eWxlc2hlZXQiPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotLmdyaWQgewot
ICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZTogMjAwcHggMjAwcHggLyAyMDBweCAyMDBweDsKLSAg
ICB3aWR0aDogLXdlYmtpdC1maXQtY29udGVudDsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci19
Ci0jZnJvbUZpeGVkSGVpZ2h0IHsgaGVpZ2h0OiAxMDBweDsgfQotI2Zyb21NYXJnaW5BdXRvIHsg
bWFyZ2luOiBhdXRvOyB9Ci08L3N0eWxlPgotPHA+VGhlIGdyaWRzIGJlbG93IGhhZCBpbml0aWFs
bHkgJ3N0cmV0Y2hlZCcgaXRlbXMsIGJ1dCB3ZSBoYXZlIGNoYW5nZWQgJ2hlaWdodCcgYW5kICdt
YXJnaW4nIHRvIHZhbHVlcyB3aGljaCBkb24ndCBhbGxvdyBzdHJldGNoLiBUaGlzIHRlc3QgdmVy
aWZpZXMgdGhhdCB0aGUgbGF5b3V0IGFsZ29yaXRobSBwcm9wZXJseSBkZXRlY3RzIHN1Y2ggY2hh
bmdlcyBhbmQgY2xlYXIgdGhlIG92ZXJyaWRlIGhlaWdodCBhY2NvcmRpbmdseS48L3A+Ci08ZGl2
IGNsYXNzPSJncmlkIj4KLSAgICA8ZGl2IGlkPSJ0b0ZpeGVkSGVpZ2h0IiBjbGFzcz0iZmlyc3RS
b3dGaXJzdENvbHVtbiIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+Ci0gICAgPGRp
diBjbGFzcz0iZmlyc3RSb3dTZWNvbmRDb2x1bW4iIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAi
PjwvZGl2PgotICAgIDxkaXYgY2xhc3M9InNlY29uZFJvd0ZpcnN0Q29sdW1uIiBkYXRhLWV4cGVj
dGVkLWhlaWdodD0iMjAwIj48L2Rpdj4KLSAgICA8ZGl2IGlkPSJmcm9tRml4ZWRIZWlnaHQiIGNs
YXNzPSJzZWNvbmRSb3dTZWNvbmRDb2x1bW4iIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIyMDAiPjwv
ZGl2PgotPC9kaXY+Ci08ZGl2IGNsYXNzPSJncmlkIj4KLSAgICA8ZGl2IGlkPSJ0b01hcmdpbkF1
dG8iIGNsYXNzPSJmaXJzdFJvd0ZpcnN0Q29sdW1uIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAw
Ij4KLSAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMDBweCI+PC9kaXY+Ci0gICAgPC9kaXY+
Ci0gICAgPGRpdiBjbGFzcz0iZmlyc3RSb3dTZWNvbmRDb2x1bW4iIGRhdGEtZXhwZWN0ZWQtaGVp
Z2h0PSIyMDAiPjwvZGl2PgotICAgIDxkaXYgY2xhc3M9InNlY29uZFJvd0ZpcnN0Q29sdW1uIiBk
YXRhLWV4cGVjdGVkLWhlaWdodD0iMjAwIj48L2Rpdj4KLSAgICA8ZGl2IGlkPSJmcm9tTWFyZ2lu
QXV0byIgY2xhc3M9InNlY29uZFJvd1NlY29uZENvbHVtbiIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjIwMCI+Ci0gICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTAwcHgiPjwvZGl2PgotICAgIDwv
ZGl2PgotPC9kaXY+Ci08c2NyaXB0PgotZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwotZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImZyb21GaXhlZEhlaWdodCIpLnN0eWxlLmhlaWdodCA9ICJhdXRv
IjsKLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b0ZpeGVkSGVpZ2h0Iikuc3R5bGUuaGVpZ2h0
ID0gIjEwMHB4IjsKLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcm9tTWFyZ2luQXV0byIpLnN0
eWxlLm1hcmdpbiA9ICIwIjsKLWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b01hcmdpbkF1dG8i
KS5zdHlsZS5tYXJnaW4gPSAiYXV0byI7Ci1jaGVja0xheW91dCgiLmdyaWQiKTsKLTwvc2NyaXB0
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262524</attachid>
            <date>2015-10-06 10:49:17 -0700</date>
            <delta_ts>2015-10-06 12:24:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149764-20151006194846.patch</filename>
            <type>text/plain</type>
            <size>14427</size>
            <attacher name="Javier Fernandez">jfernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM1ZmI1NjRhZWM4NzRl
NGJhNmY0NWI2NTJmNDlkMTE1MmM5YzU0NS4uZjI4M2Y3MzRiMDUxYjZmMGU1ODIxMzQzMjY5M2M2
M2E2NTY2MzgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE1LTEwLTAyICBKYXZp
ZXIgRmVybmFuZGV6ICA8amZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIERvbid0IG5lZWQgdG8gcmVzZXQgYXV0by1tYXJnaW5zIGR1cmluZyBncmlkIGl0
ZW1zIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ5NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbXBsZW1lbnRzIGEgcmVmYWN0b3Jpbmcgb2YgdGhlIGF1dG8tbWFyZ2luIGFs
aWdubWVudCBjb2RlIGZvciBncmlkCisgICAgICAgIGl0ZW1zIHNvIGl0IHVzZXMgc3RhcnQvZW5k
IGFuZCBiZWZvcmUvYWZ0ZXIgbWFyZ2luIGxvZ2ljIHRlcm1zLgorCisgICAgICAgIEkgYWRkaXRp
b24sIGl0IGF2b2lkcyByZXNldHRpbmcgdGhlIGF1dG8tbWFyZ2luIHZhbHVlcywgd2hpY2ggcmVx
dWlyZXMgYW4gZXh0cmEKKyAgICAgICAgbGF5b3V0LCBiZWZvcmUgYXBwbHlpbmcgdGhlIGFsaWdu
bWVudCBsb2dpYy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBi
ZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRlTWFyZ2luTG9naWNhbEhlaWdodEZv
ckNoaWxkKTogQ29tcHV0aW5nIG1hcmdpbnMgaWYgY2hpbGQgbmVlZHMgbGF5b3V0LgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6YXZhaWxhYmxlQWxpZ25tZW50U3BhY2VGb3JDaGlsZEJl
Zm9yZVN0cmV0Y2hpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6dXBkYXRlQXV0
b01hcmdpbnNJblJvd0F4aXNJZk5lZWRlZCk6IFVzaW5nIHN0YXJ0L2VuZCBsb2dpY2FsIG1hcmdp
bnMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjp1cGRhdGVBdXRvTWFyZ2luc0luQ29s
dW1uQXhpc0lmTmVlZGVkKTogVXNpbmcgYmVmb3JlL2FmdGVyIGxvZ2ljYWwgbWFyZ2lucy4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbHVtbkF4aXNPZmZzZXRGb3JDaGlsZCk6IEp1
c3QgYWRkZWQgY29tbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJvd0F4aXNP
ZmZzZXRGb3JDaGlsZCk6IEp1c3QgYWRkZWQgY29tbWVudC4KKwogMjAxNS0xMC0wMiAgSm9zZXBo
IFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIxOTA1MjAsIHNvbWUgdGVzdHMgYXNzZXJ0IC8gY3Jhc2guCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggZjdmMzY2NDdjN2QwOTI2OGI2ZWUzMjNl
NzA1MTEzMTk5NjAzZjJlNi4uOTFkYTM0MWExNWE0MTM2ZTQ1YTRlZjNkMjEyNTJmZDlhMGNiMDgx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTI3MCw4ICsx
MjcwLDYgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQogICAgICAgICAgICAg
fHwgKCghb2xkT3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCB8fCBv
bGRPdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0LnZhbHVlKCkgIT0g
b3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCkKICAgICAgICAgICAg
ICAgICAmJiBjaGlsZC0+aGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkpKQogICAgICAgICAgICAg
Y2hpbGQtPnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHJlc2V0QXV0b01hcmdpbnNBbmRMb2dpY2FsVG9wSW5Db2x1bW5BeGlzKCpjaGlsZCk7
CiAKICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2lj
YWxXaWR0aChvdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgpOwogICAg
ICAgICBjaGlsZC0+c2V0T3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdo
dChvdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KTsKQEAgLTE0MTIs
OSArMTQxMCwyNCBAQCBMYXlvdXRVbml0IFJlbmRlckdyaWQ6Om1hcmdpbkxvZ2ljYWxIZWlnaHRG
b3JDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiBpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpID8gY2hpbGQudmVydGljYWxNYXJnaW5FeHRlbnQoKSA6IGNoaWxk
Lmhvcml6b250YWxNYXJnaW5FeHRlbnQoKTsKIH0KIAorTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpj
b21wdXRlTWFyZ2luTG9naWNhbEhlaWdodEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQp
IGNvbnN0Cit7CisgICAgaWYgKCFjaGlsZC5zdHlsZSgpLmhhc01hcmdpbigpKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIExheW91dFVuaXQgbWFyZ2luQmVmb3JlOworICAgIExheW91dFVuaXQg
bWFyZ2luQWZ0ZXI7CisgICAgY2hpbGQuY29tcHV0ZUJsb2NrRGlyZWN0aW9uTWFyZ2lucyh0aGlz
LCBtYXJnaW5CZWZvcmUsIG1hcmdpbkFmdGVyKTsKKworICAgIHJldHVybiBtYXJnaW5CZWZvcmUg
KyBtYXJnaW5BZnRlcjsKK30KKwogTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjphdmFpbGFibGVBbGln
bm1lbnRTcGFjZUZvckNoaWxkQmVmb3JlU3RyZXRjaGluZyhMYXlvdXRVbml0IGdyaWRBcmVhQnJl
YWR0aEZvckNoaWxkLCBjb25zdCBSZW5kZXJCb3gmIGNoaWxkKSBjb25zdAogewotICAgIHJldHVy
biBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZCAtIG1hcmdpbkxvZ2ljYWxIZWlnaHRGb3JDaGlsZChj
aGlsZCk7CisgICAgLy8gQmVjYXVzZSB3ZSB3YW50IHRvIGF2b2lkIG11bHRpcGxlIGxheW91dHMs
IHN0cmV0Y2hpbmcgbG9naWMgbWlnaHQgYmUgcGVyZm9ybWVkIGJlZm9yZQorICAgIC8vIGNoaWxk
cmVuIGFyZSBsYWlkIG91dCwgc28gd2UgY2FuJ3QgdXNlIHRoZSBjaGlsZCBjYWNoZWQgdmFsdWVz
LiBIZW5jZSwgd2UgbmVlZCB0bworICAgIC8vIGNvbXB1dGUgbWFyZ2lucyBpbiBvcmRlciB0byBk
ZXRlcm1pbmUgdGhlIGF2YWlsYWJsZSBoZWlnaHQgYmVmb3JlIHN0cmV0Y2hpbmcuCisgICAgcmV0
dXJuIGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkIC0gKGNoaWxkLm5lZWRzTGF5b3V0KCkgPyBjb21w
dXRlTWFyZ2luTG9naWNhbEhlaWdodEZvckNoaWxkKGNoaWxkKSA6IG1hcmdpbkxvZ2ljYWxIZWln
aHRGb3JDaGlsZChjaGlsZCkpOwogfQogCiAvLyBGSVhNRTogVGhpcyBsb2dpYyBpcyBzaGFyZWQg
YnkgUmVuZGVyRmxleGlibGVCb3gsIHNvIGl0IHNob3VsZCBiZSBtb3ZlZCB0byBSZW5kZXJCb3gu
CkBAIC0xNDgxLDU3ICsxNDk0LDI0IEBAIGJvb2wgUmVuZGVyR3JpZDo6aGFzQXV0b01hcmdpbnNJ
blJvd0F4aXMoY29uc3QgUmVuZGVyQm94JiBjaGlsZCkgY29uc3QKIH0KIAogLy8gRklYTUU6IFRo
aXMgbG9naWMgaXMgc2hhcmVkIGJ5IFJlbmRlckZsZXhpYmxlQm94LCBzbyBpdCBzaG91bGQgYmUg
bW92ZWQgdG8gUmVuZGVyQm94Lgotdm9pZCBSZW5kZXJHcmlkOjpyZXNldEF1dG9NYXJnaW5zQW5k
TG9naWNhbFRvcEluQ29sdW1uQXhpcyhSZW5kZXJCb3gmIGNoaWxkKQotewotICAgIGlmIChoYXNB
dXRvTWFyZ2luc0luQ29sdW1uQXhpcyhjaGlsZCkgfHwgY2hpbGQubmVlZHNMYXlvdXQoKSkgewot
ICAgICAgICBjaGlsZC5jbGVhck92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKLSAgICAg
ICAgY2hpbGQudXBkYXRlTG9naWNhbEhlaWdodCgpOwotICAgICAgICBpZiAoaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSkgewotICAgICAgICAgICAgaWYgKGNoaWxkLnN0eWxlKCkubWFyZ2luVG9w
KCkuaXNBdXRvKCkpCi0gICAgICAgICAgICAgICAgY2hpbGQuc2V0TWFyZ2luVG9wKDApOwotICAg
ICAgICAgICAgaWYgKGNoaWxkLnN0eWxlKCkubWFyZ2luQm90dG9tKCkuaXNBdXRvKCkpCi0gICAg
ICAgICAgICAgICAgY2hpbGQuc2V0TWFyZ2luQm90dG9tKDApOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgaWYgKGNoaWxkLnN0eWxlKCkubWFyZ2luTGVmdCgpLmlzQXV0bygpKQotICAg
ICAgICAgICAgICAgIGNoaWxkLnNldE1hcmdpbkxlZnQoMCk7Ci0gICAgICAgICAgICBpZiAoY2hp
bGQuc3R5bGUoKS5tYXJnaW5SaWdodCgpLmlzQXV0bygpKQotICAgICAgICAgICAgICAgIGNoaWxk
LnNldE1hcmdpblJpZ2h0KDApOwotICAgICAgICB9Ci0KLSAgICB9Ci19Ci0KLS8vIEZJWE1FOiBU
aGlzIGxvZ2ljIGlzIHNoYXJlZCBieSBSZW5kZXJGbGV4aWJsZUJveCwgc28gaXQgc2hvdWxkIGJl
IG1vdmVkIHRvIFJlbmRlckJveC4KIHZvaWQgUmVuZGVyR3JpZDo6dXBkYXRlQXV0b01hcmdpbnNJ
blJvd0F4aXNJZk5lZWRlZChSZW5kZXJCb3gmIGNoaWxkKQogewogICAgIEFTU0VSVCghY2hpbGQu
aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOwotICAgIEFTU0VSVChjaGlsZC5vdmVycmlkZUNvbnRh
aW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoKSk7CiAKICAgICBMYXlvdXRVbml0IGF2YWls
YWJsZUFsaWdubWVudFNwYWNlID0gY2hpbGQub3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50
TG9naWNhbFdpZHRoKCkudmFsdWUoKSAtIGNoaWxkLmxvZ2ljYWxXaWR0aCgpOwogICAgIGlmIChh
dmFpbGFibGVBbGlnbm1lbnRTcGFjZSA8PSAwKQogICAgICAgICByZXR1cm47CiAKLSAgICBib29s
IGlzSG9yaXpvbnRhbCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7Ci0gICAgTGVuZ3RoIHRv
cE9yTGVmdCA9IGlzSG9yaXpvbnRhbCA/IGNoaWxkLnN0eWxlKCkubWFyZ2luTGVmdCgpIDogY2hp
bGQuc3R5bGUoKS5tYXJnaW5Ub3AoKTsKLSAgICBMZW5ndGggYm90dG9tT3JSaWdodCA9IGlzSG9y
aXpvbnRhbCA/IGNoaWxkLnN0eWxlKCkubWFyZ2luUmlnaHQoKSA6IGNoaWxkLnN0eWxlKCkubWFy
Z2luQm90dG9tKCk7Ci0gICAgaWYgKHRvcE9yTGVmdC5pc0F1dG8oKSAmJiBib3R0b21PclJpZ2h0
LmlzQXV0bygpKSB7Ci0gICAgICAgIGlmIChpc0hvcml6b250YWwpIHsKLSAgICAgICAgICAgIGNo
aWxkLnNldE1hcmdpbkxlZnQoYXZhaWxhYmxlQWxpZ25tZW50U3BhY2UgLyAyKTsKLSAgICAgICAg
ICAgIGNoaWxkLnNldE1hcmdpblJpZ2h0KGF2YWlsYWJsZUFsaWdubWVudFNwYWNlIC8gMik7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBjaGlsZC5zZXRNYXJnaW5Ub3AoYXZhaWxhYmxl
QWxpZ25tZW50U3BhY2UgLyAyKTsKLSAgICAgICAgICAgIGNoaWxkLnNldE1hcmdpbkJvdHRvbShh
dmFpbGFibGVBbGlnbm1lbnRTcGFjZSAvIDIpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmICh0
b3BPckxlZnQuaXNBdXRvKCkpIHsKLSAgICAgICAgaWYgKGlzSG9yaXpvbnRhbCkKLSAgICAgICAg
ICAgIGNoaWxkLnNldE1hcmdpbkxlZnQoYXZhaWxhYmxlQWxpZ25tZW50U3BhY2UpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBjaGlsZC5zZXRNYXJnaW5Ub3AoYXZhaWxhYmxlQWxpZ25tZW50
U3BhY2UpOwotICAgIH0gZWxzZSBpZiAoYm90dG9tT3JSaWdodC5pc0F1dG8oKSkgewotICAgICAg
ICBpZiAoaXNIb3Jpem9udGFsKQotICAgICAgICAgICAgY2hpbGQuc2V0TWFyZ2luUmlnaHQoYXZh
aWxhYmxlQWxpZ25tZW50U3BhY2UpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjaGlsZC5z
ZXRNYXJnaW5Cb3R0b20oYXZhaWxhYmxlQWxpZ25tZW50U3BhY2UpOworICAgIGNvbnN0IFJlbmRl
clN0eWxlJiBwYXJlbnRTdHlsZSA9IHN0eWxlKCk7CisgICAgTGVuZ3RoIG1hcmdpblN0YXJ0ID0g
Y2hpbGQuc3R5bGUoKS5tYXJnaW5TdGFydFVzaW5nKCZwYXJlbnRTdHlsZSk7CisgICAgTGVuZ3Ro
IG1hcmdpbkVuZCA9IGNoaWxkLnN0eWxlKCkubWFyZ2luRW5kVXNpbmcoJnBhcmVudFN0eWxlKTsK
KyAgICBpZiAobWFyZ2luU3RhcnQuaXNBdXRvKCkgJiYgbWFyZ2luRW5kLmlzQXV0bygpKSB7Cisg
ICAgICAgIGNoaWxkLnNldE1hcmdpblN0YXJ0KGF2YWlsYWJsZUFsaWdubWVudFNwYWNlIC8gMiwg
JnBhcmVudFN0eWxlKTsKKyAgICAgICAgY2hpbGQuc2V0TWFyZ2luRW5kKGF2YWlsYWJsZUFsaWdu
bWVudFNwYWNlIC8gMiwgJnBhcmVudFN0eWxlKTsKKyAgICB9IGVsc2UgaWYgKG1hcmdpblN0YXJ0
LmlzQXV0bygpKSB7CisgICAgICAgIGNoaWxkLnNldE1hcmdpblN0YXJ0KGF2YWlsYWJsZUFsaWdu
bWVudFNwYWNlLCAmcGFyZW50U3R5bGUpOworICAgIH0gZWxzZSBpZiAobWFyZ2luRW5kLmlzQXV0
bygpKSB7CisgICAgICAgIGNoaWxkLnNldE1hcmdpbkVuZChhdmFpbGFibGVBbGlnbm1lbnRTcGFj
ZSwgJnBhcmVudFN0eWxlKTsKICAgICB9CiB9CiAKQEAgLTE1MzksMzMgKzE1MTksMjEgQEAgdm9p
ZCBSZW5kZXJHcmlkOjp1cGRhdGVBdXRvTWFyZ2luc0luUm93QXhpc0lmTmVlZGVkKFJlbmRlckJv
eCYgY2hpbGQpCiB2b2lkIFJlbmRlckdyaWQ6OnVwZGF0ZUF1dG9NYXJnaW5zSW5Db2x1bW5BeGlz
SWZOZWVkZWQoUmVuZGVyQm94JiBjaGlsZCkKIHsKICAgICBBU1NFUlQoIWNoaWxkLmlzT3V0T2ZG
bG93UG9zaXRpb25lZCgpKTsKLSAgICBBU1NFUlQoY2hpbGQub3ZlcnJpZGVDb250YWluaW5nQmxv
Y2tDb250ZW50TG9naWNhbEhlaWdodCgpKTsKIAogICAgIExheW91dFVuaXQgYXZhaWxhYmxlQWxp
Z25tZW50U3BhY2UgPSBjaGlsZC5vdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2Fs
SGVpZ2h0KCkudmFsdWUoKSAtIGNoaWxkLmxvZ2ljYWxIZWlnaHQoKTsKICAgICBpZiAoYXZhaWxh
YmxlQWxpZ25tZW50U3BhY2UgPD0gMCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBpc0hv
cml6b250YWwgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwotICAgIExlbmd0aCB0b3BPckxl
ZnQgPSBpc0hvcml6b250YWwgPyBjaGlsZC5zdHlsZSgpLm1hcmdpblRvcCgpIDogY2hpbGQuc3R5
bGUoKS5tYXJnaW5MZWZ0KCk7Ci0gICAgTGVuZ3RoIGJvdHRvbU9yUmlnaHQgPSBpc0hvcml6b250
YWwgPyBjaGlsZC5zdHlsZSgpLm1hcmdpbkJvdHRvbSgpIDogY2hpbGQuc3R5bGUoKS5tYXJnaW5S
aWdodCgpOwotICAgIGlmICh0b3BPckxlZnQuaXNBdXRvKCkgJiYgYm90dG9tT3JSaWdodC5pc0F1
dG8oKSkgewotICAgICAgICBpZiAoaXNIb3Jpem9udGFsKSB7Ci0gICAgICAgICAgICBjaGlsZC5z
ZXRNYXJnaW5Ub3AoYXZhaWxhYmxlQWxpZ25tZW50U3BhY2UgLyAyKTsKLSAgICAgICAgICAgIGNo
aWxkLnNldE1hcmdpbkJvdHRvbShhdmFpbGFibGVBbGlnbm1lbnRTcGFjZSAvIDIpOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgY2hpbGQuc2V0TWFyZ2luTGVmdChhdmFpbGFibGVBbGln
bm1lbnRTcGFjZSAvIDIpOwotICAgICAgICAgICAgY2hpbGQuc2V0TWFyZ2luUmlnaHQoYXZhaWxh
YmxlQWxpZ25tZW50U3BhY2UgLyAyKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAodG9wT3JM
ZWZ0LmlzQXV0bygpKSB7Ci0gICAgICAgIGlmIChpc0hvcml6b250YWwpCi0gICAgICAgICAgICBj
aGlsZC5zZXRNYXJnaW5Ub3AoYXZhaWxhYmxlQWxpZ25tZW50U3BhY2UpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBjaGlsZC5zZXRNYXJnaW5MZWZ0KGF2YWlsYWJsZUFsaWdubWVudFNwYWNl
KTsKLSAgICB9IGVsc2UgaWYgKGJvdHRvbU9yUmlnaHQuaXNBdXRvKCkpIHsKLSAgICAgICAgaWYg
KGlzSG9yaXpvbnRhbCkKLSAgICAgICAgICAgIGNoaWxkLnNldE1hcmdpbkJvdHRvbShhdmFpbGFi
bGVBbGlnbm1lbnRTcGFjZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNoaWxkLnNldE1h
cmdpblJpZ2h0KGF2YWlsYWJsZUFsaWdubWVudFNwYWNlKTsKKyAgICBjb25zdCBSZW5kZXJTdHls
ZSYgcGFyZW50U3R5bGUgPSBzdHlsZSgpOworICAgIExlbmd0aCBtYXJnaW5CZWZvcmUgPSBjaGls
ZC5zdHlsZSgpLm1hcmdpbkJlZm9yZVVzaW5nKCZwYXJlbnRTdHlsZSk7CisgICAgTGVuZ3RoIG1h
cmdpbkFmdGVyID0gY2hpbGQuc3R5bGUoKS5tYXJnaW5BZnRlclVzaW5nKCZwYXJlbnRTdHlsZSk7
CisgICAgaWYgKG1hcmdpbkJlZm9yZS5pc0F1dG8oKSAmJiBtYXJnaW5BZnRlci5pc0F1dG8oKSkg
eworICAgICAgICBjaGlsZC5zZXRNYXJnaW5CZWZvcmUoYXZhaWxhYmxlQWxpZ25tZW50U3BhY2Ug
LyAyLCAmcGFyZW50U3R5bGUpOworICAgICAgICBjaGlsZC5zZXRNYXJnaW5BZnRlcihhdmFpbGFi
bGVBbGlnbm1lbnRTcGFjZSAvIDIsICZwYXJlbnRTdHlsZSk7CisgICAgfSBlbHNlIGlmIChtYXJn
aW5CZWZvcmUuaXNBdXRvKCkpIHsKKyAgICAgICAgY2hpbGQuc2V0TWFyZ2luQmVmb3JlKGF2YWls
YWJsZUFsaWdubWVudFNwYWNlLCAmcGFyZW50U3R5bGUpOworICAgIH0gZWxzZSBpZiAobWFyZ2lu
QWZ0ZXIuaXNBdXRvKCkpIHsKKyAgICAgICAgY2hpbGQuc2V0TWFyZ2luQWZ0ZXIoYXZhaWxhYmxl
QWxpZ25tZW50U3BhY2UsICZwYXJlbnRTdHlsZSk7CiAgICAgfQogfQogCkBAIC0xNjgxLDYgKzE2
NDksNyBAQCBMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmNvbHVtbkF4aXNPZmZzZXRGb3JDaGlsZChj
b25zdCBSZW5kZXJCb3gmIGNoaWxkKSBjb25zdAogICAgICAgICB1bnNpZ25lZCBjaGlsZEVuZExp
bmUgPSBjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0aW9uLm5leHQoKS50b0ludCgp
OwogICAgICAgICBMYXlvdXRVbml0IGVuZE9mUm93ID0gbV9yb3dQb3NpdGlvbnNbY2hpbGRFbmRM
aW5lXTsKICAgICAgICAgTGF5b3V0VW5pdCBjaGlsZEJyZWFkdGggPSBjaGlsZC5sb2dpY2FsSGVp
Z2h0KCkgKyBjaGlsZC5tYXJnaW5Mb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIC8vIEluIG9yZGVy
IHRvIHByb3Blcmx5IGFkanVzdCB0aGUgU2VsZiBBbGlnbm1lbnQgdmFsdWVzIHdlIG5lZWQgdG8g
Y29uc2lkZXIgdGhlIG9mZnNldCBiZXR3ZWVuIHRyYWNrcy4KICAgICAgICAgaWYgKGNoaWxkRW5k
TGluZSAtIGNoaWxkU3RhcnRMaW5lID4gMSAmJiBjaGlsZEVuZExpbmUgPCBtX3Jvd1Bvc2l0aW9u
cy5zaXplKCkgLSAxKQogICAgICAgICAgICAgZW5kT2ZSb3cgLT0gb2Zmc2V0QmV0d2VlblRyYWNr
cyhzdHlsZSgpLnJlc29sdmVkQWxpZ25Db250ZW50RGlzdHJpYnV0aW9uKCksIG1fcm93UG9zaXRp
b25zLCBjaGlsZEJyZWFkdGgpOwogICAgICAgICBMYXlvdXRVbml0IG9mZnNldEZyb21TdGFydFBv
c2l0aW9uID0gY29tcHV0ZU92ZXJmbG93QWxpZ25tZW50T2Zmc2V0KFJlbmRlclN0eWxlOjpyZXNv
bHZlQWxpZ25tZW50T3ZlcmZsb3coc3R5bGUoKSwgY2hpbGQuc3R5bGUoKSksIGVuZE9mUm93IC0g
c3RhcnRPZlJvdywgY2hpbGRCcmVhZHRoKTsKQEAgLTE3MTAsNiArMTY3OSw3IEBAIExheW91dFVu
aXQgUmVuZGVyR3JpZDo6cm93QXhpc09mZnNldEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hp
bGQpIGNvbnN0CiAgICAgICAgIHVuc2lnbmVkIGNoaWxkRW5kTGluZSA9IGNvb3JkaW5hdGUuY29s
dW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb24ubmV4dCgpLnRvSW50KCk7CiAgICAgICAgIExheW91
dFVuaXQgZW5kT2ZDb2x1bW4gPSBtX2NvbHVtblBvc2l0aW9uc1tjaGlsZEVuZExpbmVdOwogICAg
ICAgICBMYXlvdXRVbml0IGNoaWxkQnJlYWR0aCA9IGNoaWxkLmxvZ2ljYWxXaWR0aCgpICsgY2hp
bGQubWFyZ2luTG9naWNhbFdpZHRoKCk7CisgICAgICAgIC8vIEluIG9yZGVyIHRvIHByb3Blcmx5
IGFkanVzdCB0aGUgU2VsZiBBbGlnbm1lbnQgdmFsdWVzIHdlIG5lZWQgdG8gY29uc2lkZXIgdGhl
IG9mZnNldCBiZXR3ZWVuIHRyYWNrcy4KICAgICAgICAgaWYgKGNoaWxkRW5kTGluZSAtIGNoaWxk
U3RhcnRMaW5lID4gMSAmJiBjaGlsZEVuZExpbmUgPCBtX2NvbHVtblBvc2l0aW9ucy5zaXplKCkg
LSAxKQogICAgICAgICAgICAgZW5kT2ZDb2x1bW4gLT0gb2Zmc2V0QmV0d2VlblRyYWNrcyhzdHls
ZSgpLnJlc29sdmVkSnVzdGlmeUNvbnRlbnREaXN0cmlidXRpb24oKSwgbV9jb2x1bW5Qb3NpdGlv
bnMsIGNoaWxkQnJlYWR0aCk7CiAgICAgICAgIExheW91dFVuaXQgb2Zmc2V0RnJvbVN0YXJ0UG9z
aXRpb24gPSBjb21wdXRlT3ZlcmZsb3dBbGlnbm1lbnRPZmZzZXQoUmVuZGVyU3R5bGU6OnJlc29s
dmVKdXN0aWZpY2F0aW9uT3ZlcmZsb3coc3R5bGUoKSwgY2hpbGQuc3R5bGUoKSksIGVuZE9mQ29s
dW1uIC0gc3RhcnRPZkNvbHVtbiwgY2hpbGRCcmVhZHRoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NGQ3YTRiNDRhMjVl
ZTNkZTc2OTVjMzEzMWY4YjBmMmQ1MWRhZGVjLi4xNWVjYmU3ZjI4YjRkMTkxMDQ5OTdmNmE4Yjkz
YTExMTZiY2I0NmM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMTAtMDIgIEphdmllciBG
ZXJuYW5kZXogIDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NTUyBHcmlkIExh
eW91dF0gRG9uJ3QgbmVlZCB0byByZXNldCBhdXRvLW1hcmdpbnMgZHVyaW5nIGdyaWQgaXRlbXMg
bGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDk3NjQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZW1v
dmVkIGEgZHVwbGljYXRlZCBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWl0ZW0tc2hvdWxkLW5vdC1iZS1zdHJldGNoZWQtd2hlbi1oZWlnaHQtb3It
bWFyZ2luLWNoYW5nZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvZ3JpZC1pdGVtLXNob3VsZC1ub3QtYmUtc3RyZXRjaGVkLXdoZW4taGVpZ2h0
LW9yLW1hcmdpbi1jaGFuZ2UuaHRtbDogUmVtb3ZlZC4KKwogMjAxNS0xMC0wMiAgRGV2aW4gUm91
c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBDb3B5aW5nIGlubGluZSBzdHlsZSB0ZXh0IHB1dHMgInVuZGVmaW5lZCIgaW4gdGhlIHBhc3Rl
Ym9hcmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
aXRlbS1zaG91bGQtbm90LWJlLXN0cmV0Y2hlZC13aGVuLWhlaWdodC1vci1tYXJnaW4tY2hhbmdl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRl
bS1zaG91bGQtbm90LWJlLXN0cmV0Y2hlZC13aGVuLWhlaWdodC1vci1tYXJnaW4tY2hhbmdlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDk1MGUwZTBmYjNjZDBh
Zjc0M2YzNTdlN2JjYTNjNzgwYjdmYmI3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0
ZW0tc2hvdWxkLW5vdC1iZS1zdHJldGNoZWQtd2hlbi1oZWlnaHQtb3ItbWFyZ2luLWNoYW5nZS1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVRoZSBncmlkcyBiZWxv
dyBoYWQgaW5pdGlhbGx5ICdzdHJldGNoZWQnIGl0ZW1zLCBidXQgd2UgaGF2ZSBjaGFuZ2VkICdo
ZWlnaHQnIGFuZCAnbWFyZ2luJyB0byB2YWx1ZXMgd2hpY2ggZG9uJ3QgYWxsb3cgc3RyZXRjaC4g
VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIGxheW91dCBhbGdvcml0aG0gcHJvcGVybHkgZGV0
ZWN0cyBzdWNoIGNoYW5nZXMgYW5kIGNsZWFyIHRoZSBvdmVycmlkZSBoZWlnaHQgYWNjb3JkaW5n
bHkuCi0KLVBBU1MKLVBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQt
bGF5b3V0L2dyaWQtaXRlbS1zaG91bGQtbm90LWJlLXN0cmV0Y2hlZC13aGVuLWhlaWdodC1vci1t
YXJnaW4tY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlk
LWl0ZW0tc2hvdWxkLW5vdC1iZS1zdHJldGNoZWQtd2hlbi1oZWlnaHQtb3ItbWFyZ2luLWNoYW5n
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjRmMzBmOGFjZDQxOGI3NmMw
N2YzYTc3Nzg3Mzk0ZGZmYTdhODgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1z
aG91bGQtbm90LWJlLXN0cmV0Y2hlZC13aGVuLWhlaWdodC1vci1tYXJnaW4tY2hhbmdlLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08IURPQ1RZUEUgSFRNTD4KLTxsaW5rIGhy
ZWY9InJlc291cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLS5ncmlk
IHsKLSAgICAtd2Via2l0LWdyaWQtdGVtcGxhdGU6IDIwMHB4IDIwMHB4IC8gMjAwcHggMjAwcHg7
Ci0gICAgd2lkdGg6IC13ZWJraXQtZml0LWNvbnRlbnQ7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZl
OwotfQotI2Zyb21GaXhlZEhlaWdodCB7IGhlaWdodDogMTAwcHg7IH0KLSNmcm9tTWFyZ2luQXV0
byB7IG1hcmdpbjogYXV0bzsgfQotPC9zdHlsZT4KLTxwPlRoZSBncmlkcyBiZWxvdyBoYWQgaW5p
dGlhbGx5ICdzdHJldGNoZWQnIGl0ZW1zLCBidXQgd2UgaGF2ZSBjaGFuZ2VkICdoZWlnaHQnIGFu
ZCAnbWFyZ2luJyB0byB2YWx1ZXMgd2hpY2ggZG9uJ3QgYWxsb3cgc3RyZXRjaC4gVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgdGhlIGxheW91dCBhbGdvcml0aG0gcHJvcGVybHkgZGV0ZWN0cyBzdWNo
IGNoYW5nZXMgYW5kIGNsZWFyIHRoZSBvdmVycmlkZSBoZWlnaHQgYWNjb3JkaW5nbHkuPC9wPgot
PGRpdiBjbGFzcz0iZ3JpZCI+Ci0gICAgPGRpdiBpZD0idG9GaXhlZEhlaWdodCIgY2xhc3M9ImZp
cnN0Um93Rmlyc3RDb2x1bW4iIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPjwvZGl2PgotICAg
IDxkaXYgY2xhc3M9ImZpcnN0Um93U2Vjb25kQ29sdW1uIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0i
MjAwIj48L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJzZWNvbmRSb3dGaXJzdENvbHVtbiIgZGF0YS1l
eHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+Ci0gICAgPGRpdiBpZD0iZnJvbUZpeGVkSGVpZ2h0
IiBjbGFzcz0ic2Vjb25kUm93U2Vjb25kQ29sdW1uIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMjAw
Ij48L2Rpdj4KLTwvZGl2PgotPGRpdiBjbGFzcz0iZ3JpZCI+Ci0gICAgPGRpdiBpZD0idG9NYXJn
aW5BdXRvIiBjbGFzcz0iZmlyc3RSb3dGaXJzdENvbHVtbiIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjEwMCI+Ci0gICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTAwcHgiPjwvZGl2PgotICAgIDwv
ZGl2PgotICAgIDxkaXYgY2xhc3M9ImZpcnN0Um93U2Vjb25kQ29sdW1uIiBkYXRhLWV4cGVjdGVk
LWhlaWdodD0iMjAwIj48L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJzZWNvbmRSb3dGaXJzdENvbHVt
biIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwMCI+PC9kaXY+Ci0gICAgPGRpdiBpZD0iZnJvbU1h
cmdpbkF1dG8iIGNsYXNzPSJzZWNvbmRSb3dTZWNvbmRDb2x1bW4iIGRhdGEtZXhwZWN0ZWQtaGVp
Z2h0PSIyMDAiPgotICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEwMHB4Ij48L2Rpdj4KLSAg
ICA8L2Rpdj4KLTwvZGl2PgotPHNjcmlwdD4KLWRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKLWRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcm9tRml4ZWRIZWlnaHQiKS5zdHlsZS5oZWlnaHQgPSAi
YXV0byI7Ci1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9GaXhlZEhlaWdodCIpLnN0eWxlLmhl
aWdodCA9ICIxMDBweCI7Ci1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnJvbU1hcmdpbkF1dG8i
KS5zdHlsZS5tYXJnaW4gPSAiMCI7Ci1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9NYXJnaW5B
dXRvIikuc3R5bGUubWFyZ2luID0gImF1dG8iOwotY2hlY2tMYXlvdXQoIi5ncmlkIik7Ci08L3Nj
cmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>