<?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>105548</bug_id>
          
          <creation_ts>2012-12-20 09:59:37 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] Add the plumbing to parse -webkit-grid-{column,row}-span</short_desc>
          <delta_ts>2013-02-22 13:12:44 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          
          <blocked>60731</blocked>
    
    <blocked>103314</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Xan Lopez">xan.lopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>795515</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2012-12-20 09:59:37 -0800</bug_when>
    <thetext>First step towards fixing bug #103314, I&apos;ll attach the first patch shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796241</commentid>
    <comment_count>1</comment_count>
      <attachid>180500</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2012-12-21 04:52:15 -0800</bug_when>
    <thetext>Created attachment 180500
column-row-span.diff

As done in previous features, this only adds the parsing bits, no effects on layout yet.

The two things I consider are probably up for debate:

- I use GridPosition to store the span, it might be better to create a new type (GridSpan?)
- I actually store the span in the item data. Perhaps it would be better to store a second GridPosition (m_gridColumnEnd, m_gridRowEnd?), and figure out the span doing end-start.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804806</commentid>
    <comment_count>2</comment_count>
      <attachid>180500</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-10 16:11:23 -0800</bug_when>
    <thetext>Comment on attachment 180500
column-row-span.diff

&gt; The two things I consider are probably up for debate:
&gt; - I use GridPosition to store the span, it might be better to create a new type (GridSpan?)
&gt; - I actually store the span in the item data. Perhaps it would be better to store a second GridPosition (m_gridColumnEnd, m_gridRowEnd?), and figure out the span doing end-start.

I don&apos;t think it makes sense to have GridPosition embeds the span information: it will be difficult not to store both the span and the end GridPosition as dynamic updates could easily add / remove or update one or the other - including changing the order in which they occur. Also the end GridPosition would override the span if present which adds some complexity and could make the transition tricky if we try to save on storing the spans.

Also, we should be careful not to move the parsing too much forward with respect to implementing the layout (if only to keep some feature detection for the early adopters). The current grammar is correlated with a subset of the layout that is powerful enough (auto sizing, minmax), yet whose complexity is manageable. Adding support for spanning columns / rows adds a lot of complexity which I would rather delay until minmax implementation is stable enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820248</commentid>
    <comment_count>3</comment_count>
      <attachid>180500</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-30 09:04:10 -0800</bug_when>
    <thetext>Comment on attachment 180500
column-row-span.diff

We are up to a point where I would be fine to see this patch land (minmax layout is working). Xan, do you feel like adding a version that keeps the span as an int. We would keep the extra GridPosition to handle grid-definition-{columns|rows}.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821720</commentid>
    <comment_count>4</comment_count>
      <attachid>180500</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-31 11:11:18 -0800</bug_when>
    <thetext>Comment on attachment 180500
column-row-span.diff

The specification has changed and they removed grid-{column|row}-span. Talking with Tab, it seems we should wait a bit before diving into this as it could change next week at the W3C face-to-face (I should have checked the facts first before saying we are ready).

r-&apos;ing the patch for now, we can always revive it if the situation changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839849</commentid>
    <comment_count>5</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-22 13:12:44 -0800</bug_when>
    <thetext>The specification has completely changed and the concept of grid-{column,row}-span was removed, inlined into grid-{start|end} / grid-{before|after}. Example:

grid-start: 3; grid-end: span 2;

(Beware that now integers corresponds to the matching edge, ie 3 from the &apos;start&apos; and spans to 2 from the &apos;end&apos;)

I don&apos;t think we can salvage anything from this patch. Feel free to reopen if I missed something.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180500</attachid>
            <date>2012-12-21 04:52:15 -0800</date>
            <delta_ts>2013-01-31 11:11:17 -0800</delta_ts>
            <desc>column-row-span.diff</desc>
            <filename>column-row-span.diff</filename>
            <type>text/plain</type>
            <size>21372</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA2MmYzOGQ5Njg0ZGI2NWRkNjc5NGM4MTU1NmZlZDZmYWVlZmU2YTZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhhbkBpZ2FsaWEuY29tPgpEYXRlOiBGcmks
IDIxIERlYyAyMDEyIDEzOjQ0OjI4ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEFkZCB0aGUgcGx1bWJpbmcgdG8gcGFyc2UKIC13ZWJraXQtZ3JpZC17Y29sdW1u
LHJvd30tc3BhbiAgICAKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDU1NDgKCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICBBZGQgYmFzaWMgcGx1
bWJpbmcgdG8gcGFyc2UgdGhlIGNvbHVtbi9yb3cgc3BhbiBwcm9wZXJ0aWVzLiBObwogICAgZWZm
ZWN0IG9uIGxheW91dCB5ZXQuCgogICAgVGVzdDogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1p
dGVtLWNvbHVtbi1yb3ctc3Bhbi1nZXQtc2V0Lmh0bWwKCiAgICAqIGNzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwOgogICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CiAgICBSZXR1cm4gdGhlIHNwYW4gdmFsdWVzLgog
ICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFs
dWUpOiBQYXJzZSB0aGUgbmV3IHByb3BlcnRpZXMuCiAgICAqIGNzcy9DU1NQcm9wZXJ0eS5jcHA6
CiAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkpOiBBZGQgbmV3
IHByb3BlcnRpZXMgdG8KICAgIHRoZSBzd2l0Y2guCiAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVz
LmluOgogICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CiAgICAoV2ViQ29yZTo6Y3JlYXRlR3Jp
ZFNwYW4pOiBNZXRob2QgdG8gY29udmVydCBmcm9tIHRoZSBDU1NWYWx1ZSB0bwogICAgdGhlIHNw
YW4gdmFsdWUuCiAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eSk6IFNl
dCB0aGUgc3BhbiB2YWx1ZXMuCiAgICAqIHJlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaDoK
ICAgIChXZWJDb3JlOjpHcmlkUG9zaXRpb246OkdyaWRQb3NpdGlvbik6CiAgICAoR3JpZFBvc2l0
aW9uKTogQWxsb3cgdG8gY29uc3RydWN0IGEgR3JpZFBvc2l0aW9uIHdpdGggYW4gaW50ZWdlcgog
ICAgdmFsdWUsIHRvIGJlIHVzZWQgZm9yIHRoZSBkZWZhdWx0IHNwYW4gdmFsdWVzICgnMScpLgog
ICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKICAgICogcmVuZGVyaW5nL3N0eWxl
L1N0eWxlR3JpZEl0ZW1EYXRhLmNwcDoKICAgIChXZWJDb3JlOjpTdHlsZUdyaWRJdGVtRGF0YTo6
U3R5bGVHcmlkSXRlbURhdGEpOiBJbml0aWFsaXplIHRoZQogICAgZGVmYXVsdCBzcGFuIHZhbHVl
cy4KICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmg6CiAgICAoV2ViQ29y
ZTo6U3R5bGVHcmlkSXRlbURhdGE6Om9wZXJhdG9yPT0pOiBDb25zaWRlciB0aGUgc3BhbiB2YWx1
ZXMKICAgIHdoZW4gZG9pbmcgdGhlID09IGNvbXBhcmlzb24uCiAgICAoU3R5bGVHcmlkSXRlbURh
dGEpOiBBZGQgdGhlIHNwYW4gdG8gdGhlIGl0ZW0gZGF0YS4gV2UgdXNlIGEKICAgIEdyaWRQb3Np
dGlvbiwgYnV0IG9ubHkgaW50ZWdlciBhbmQgaWRlbnRpZmllciB2YWx1ZXMgd2lsbCBiZQogICAg
YWxsb3dlZC4KCiAgICBMYXlvdXRUZXN0czoKCiAgICBbQ1NTIEdyaWQgTGF5b3V0XSBBZGQgdGhl
IHBsdW1iaW5nIHRvIHBhcnNlIC13ZWJraXQtZ3JpZC17Y29sdW1uLHJvd30tc3BhbgogICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTU0OAoKICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVt
LWNvbHVtbi1yb3ctc3Bhbi1nZXQtc2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAqIGZhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93LXNwYW4tZ2V0LXNldC5odG1sOiBB
ZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTAgKysrCiAuLi4vZ3JpZC1pdGVtLWNvbHVtbi1yb3ctc3Bhbi1nZXQtc2V0LWV4
cGVjdGVkLnR4dCB8ICAgMjYgKysrKysrCiAuLi4vZ3JpZC1pdGVtLWNvbHVtbi1yb3ctc3Bhbi1n
ZXQtc2V0Lmh0bWwgICAgICAgICB8ICAgODIgKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MCArKysrKysr
KysrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCB8
ICAgIDUgKwogU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgICAgICAgICAgICAgICAg
ICAgfCAgICA3ICsrCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwICAgICAgICAg
ICAgICAgICB8ICAgIDIgKwogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4g
ICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cCAgICAgICAgICAgICAgIHwgICAyNSArKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9HcmlkUG9zaXRpb24uaCAgICAgIHwgICAgNiArKwogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmggICAgICAgfCAgICA5ICsrCiAuLi4vV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuY3BwICB8ICAgIDQgKwogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmggfCAgICA0ICstCiAxMyBmaWxl
cyBjaGFuZ2VkLCAyMjEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1u
LXJvdy1zcGFuLWdldC1zZXQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNvbHVtbi1yb3ctc3Bhbi1nZXQt
c2V0Lmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMTcwOGQ5NC4uZmQwM2FmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDEyLTEyLTIxICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBb
Q1NTIEdyaWQgTGF5b3V0XSBBZGQgdGhlIHBsdW1iaW5nIHRvIHBhcnNlIC13ZWJraXQtZ3JpZC17
Y29sdW1uLHJvd30tc3BhbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA1NTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1zcGFu
LWdldC1zZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxh
eW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1zcGFuLWdldC1zZXQuaHRtbDogQWRkZWQuCisKIDIw
MTItMTItMTkgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJlLXNraXBwaW5nIHRvdWNoLWlucHV0LWVsZW1lbnQtY2hhbmctZG9jdW1lbnRzLmh0bWwgc2lu
Y2UgaXQncyBzdGlsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1pdGVtLWNvbHVtbi1yb3ctc3Bhbi1nZXQtc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jb2x1bW4tcm93LXNwYW4tZ2V0
LXNldC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU0
MGY1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0
L2dyaWQtaXRlbS1jb2x1bW4tcm93LXNwYW4tZ2V0LXNldC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyNiBAQAorVGVzdCB0aGF0IHNldHRpbmcgYW5kIGdldHRpbmcgLXdlYmtpdC1ncmlkLWNvbHVt
bi1zcGFuIGFuZCAtd2Via2l0LWdyaWQtcm93LXNwYW4gd29ya3MgYXMgZXhwZWN0ZWQKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3QgZ2V0dGluZyAtd2Via2l0LWdyaWQtY29s
dW1uLXNwYW4gYW5kIC13ZWJraXQtZ3JpZC1yb3ctc3BhbiBzZXQgdGhyb3VnaCBDU1MKK1BBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1jb2x1bW4tc3BhbicpIGlzICcxJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRF
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdy1zcGFuJykgaXMg
JzEnCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoQ29sdW1uU3BhbiwgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSBpcyAnMScKK1BBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShncmlkSXRlbVdpdGhDb2x1bW5TcGFuLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1ncmlkLWNvbHVtbi1zcGFuJykgaXMgJzUnCitQQVNTIGdldENvbXB1dGVkU3R5bGUo
Z3JpZEl0ZW1XaXRoUm93U3BhbiwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1y
b3cnKSBpcyAnMicKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhSb3dTcGFuLCAn
JykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdy1zcGFuJykgaXMgJzMnCitQQVNT
IGdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoQ29sdW1uUm93U3BhbiwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3cnKSBpcyAnNycKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShncmlkSXRlbVdpdGhDb2x1bW5Sb3dTcGFuLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtp
dC1ncmlkLWNvbHVtbicpIGlzICc1JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0
aENvbHVtblJvd1NwYW4sICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93LXNw
YW4nKSBpcyAnMycKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhDb2x1bW5Sb3dT
cGFuLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbi1zcGFuJykgaXMg
JzEwJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0aE11bHRpcGxlVmFsdWVzRm9y
U3BhbiwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1yb3ctc3BhbicpIGlzICcx
JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0aE11bHRpcGxlVmFsdWVzRm9yU3Bh
biwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4tc3BhbicpIGlzICcx
JworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtY29sdW1uLXNwYW4nKSBpcyAnNScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShl
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdy1zcGFuJykgaXMg
JzEyJworUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtY29sdW1uLXNwYW4nKSBpcyAnMScKK1BBU1MgZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdy1zcGFuJykg
aXMgJzEnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVt
LWNvbHVtbi1yb3ctc3Bhbi1nZXQtc2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWl0ZW0tY29sdW1uLXJvdy1zcGFuLWdldC1zZXQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDVhZGZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNvbHVtbi1yb3ctc3Bhbi1n
ZXQtc2V0Lmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLm92
ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NTR3JpZExheW91dEVuYWJsZWQiLCAxKTsKKzwvc2Ny
aXB0PgorPHN0eWxlPgorLmdyaWRJdGVtV2l0aENvbHVtblNwYW4geworICAgIC13ZWJraXQtZ3Jp
ZC1jb2x1bW46IDE7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbi1zcGFuOiA1OworfQorCisuZ3Jp
ZEl0ZW1XaXRoUm93U3BhbiB7CisgICAgLXdlYmtpdC1ncmlkLXJvdzogMjsKKyAgICAtd2Via2l0
LWdyaWQtcm93LXNwYW46IDM7Cit9CisKKy5ncmlkSXRlbVdpdGhDb2x1bW5Sb3dTcGFuIHsKKyAg
ICAtd2Via2l0LWdyaWQtY29sdW1uOiA1OworICAgIC13ZWJraXQtZ3JpZC1yb3c6IDc7CisgICAg
LXdlYmtpdC1ncmlkLWNvbHVtbi1zcGFuOiAxMDsKKyAgICAtd2Via2l0LWdyaWQtcm93LXNwYW46
IDM7Cit9CisKKy5ncmlkSXRlbVdpdGhNdWx0aXBsZVZhbHVlc0ZvclNwYW4geworICAgIC13ZWJr
aXQtZ3JpZC1jb2x1bW4tc3BhbjogMSAyIDM7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzwhLS0gVGhlIGZpcnN0IGhhcyBubyBwcm9wZXJ0aWVzIHNldCBvbiBpdC4gLS0+Cis8ZGl2IGlk
PSJncmlkRWxlbWVudCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkSXRlbVdpdGhDb2x1bW5TcGFu
IiBpZD0iZ3JpZEl0ZW1XaXRoQ29sdW1uU3BhbiI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkSXRl
bVdpdGhSb3dTcGFuIiBpZD0iZ3JpZEl0ZW1XaXRoUm93U3BhbiI+PC9kaXY+Cis8ZGl2IGNsYXNz
PSJncmlkSXRlbVdpdGhDb2x1bW5Sb3dTcGFuIiBpZD0iZ3JpZEl0ZW1XaXRoQ29sdW1uUm93U3Bh
biI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkSXRlbVdpdGhNdWx0aXBsZVZhbHVlc0ZvclNwYW4i
IGlkPSJncmlkSXRlbVdpdGhNdWx0aXBsZVZhbHVlc0ZvclNwYW4iPjwvZGl2PgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbignVGVzdCB0aGF0IHNldHRpbmcgYW5kIGdldHRpbmcgLXdlYmtpdC1n
cmlkLWNvbHVtbi1zcGFuIGFuZCAtd2Via2l0LWdyaWQtcm93LXNwYW4gd29ya3MgYXMgZXhwZWN0
ZWQnKTsKKworICAgIGRlYnVnKCJUZXN0IGdldHRpbmcgLXdlYmtpdC1ncmlkLWNvbHVtbi1zcGFu
IGFuZCAtd2Via2l0LWdyaWQtcm93LXNwYW4gc2V0IHRocm91Z2ggQ1NTIik7CisgICAgdmFyIGdy
aWRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRFbGVtZW50Iik7CisgICAg
c2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWdyaWQtY29sdW1uLXNwYW4nKSIsICInMSciKTsKKyAgICBzaG91bGRCZSgi
Z2V0Q29tcHV0ZWRTdHlsZShncmlkRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC1yb3ctc3BhbicpIiwgIicxJyIpOworCisgICAgdmFyIGdyaWRJdGVtV2l0aFBvc2l0
aXZlSW50ZWdlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkSXRlbVdpdGhDb2x1bW5T
cGFuIik7CisgICAgc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoQ29sdW1u
U3BhbiwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInMSci
KTsKKyAgICBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhDb2x1bW5TcGFu
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbi1zcGFuJykiLCAiJzUn
Iik7CisKKyAgICB2YXIgZ3JpZEl0ZW1XaXRoUG9zaXRpdmVJbnRlZ2VyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImdyaWRJdGVtV2l0aFJvd1NwYW4iKTsKKyAgICBzaG91bGRCZSgiZ2V0Q29t
cHV0ZWRTdHlsZShncmlkSXRlbVdpdGhSb3dTcGFuLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1ncmlkLXJvdycpIiwgIicyJyIpOworICAgIHNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxl
KGdyaWRJdGVtV2l0aFJvd1NwYW4sICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
cm93LXNwYW4nKSIsICInMyciKTsKKworICAgIHZhciBncmlkSXRlbVdpdGhQb3NpdGl2ZUludGVn
ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZEl0ZW1XaXRoQ29sdW1uUm93U3BhbiIp
OworICAgIHNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGdyaWRJdGVtV2l0aENvbHVtblJvd1Nw
YW4sICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtcm93JykiLCAiJzcnIik7Cisg
ICAgc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoQ29sdW1uUm93U3Bhbiwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4nKSIsICInNSciKTsKKyAg
ICBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShncmlkSXRlbVdpdGhDb2x1bW5Sb3dTcGFuLCAn
JykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdy1zcGFuJykiLCAiJzMnIik7Cisg
ICAgc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoQ29sdW1uUm93U3Bhbiwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4tc3BhbicpIiwgIicxMCci
KTsKKworICAgIHZhciBncmlkSXRlbVdpdGhQb3NpdGl2ZUludGVnZXIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZ3JpZEl0ZW1XaXRoTXVsdGlwbGVWYWx1ZXNGb3JTcGFuIik7CisgICAgc2hv
dWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoTXVsdGlwbGVWYWx1ZXNGb3JTcGFu
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdy1zcGFuJykiLCAiJzEnIik7
CisgICAgc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZ3JpZEl0ZW1XaXRoTXVsdGlwbGVWYWx1
ZXNGb3JTcGFuLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWNvbHVtbi1zcGFu
JykiLCAiJzEnIik7CisKKyAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICBlbGVtZW50
LnN0eWxlLndlYmtpdEdyaWRDb2x1bW5TcGFuID0gIjUiOworICAgIGVsZW1lbnQuc3R5bGUud2Vi
a2l0R3JpZFJvd1NwYW4gPSAiMTIiOworICAgIHNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtY29sdW1uLXNwYW4nKSIs
ICInNSciKTsKKyAgICBzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXJvdy1zcGFuJykiLCAiJzEyJyIpOworCisgICAg
ZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQ29s
dW1uU3BhbiA9ICIxIDIgMyI7CisgICAgZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkUm93U3BhbiA9
ICI0IDUgNiI7CisgICAgc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1jb2x1bW4tc3BhbicpIiwgIicxJyIpOworICAg
IHNob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtcm93LXNwYW4nKSIsICInMSciKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDNhMWE1NC4uOTZiZGUxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQzIEBACisyMDEyLTEyLTIxICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4K
KworICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBBZGQgdGhlIHBsdW1iaW5nIHRvIHBhcnNlIC13
ZWJraXQtZ3JpZC17Y29sdW1uLHJvd30tc3BhbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGJhc2ljIHBsdW1iaW5nIHRvIHBhcnNlIHRoZSBjb2x1
bW4vcm93IHNwYW4gcHJvcGVydGllcy4gTm8KKyAgICAgICAgZWZmZWN0IG9uIGxheW91dCB5ZXQu
CisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNvbHVtbi1y
b3ctc3Bhbi1nZXQtc2V0Lmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgUmV0dXJuIHRoZSBzcGFuIHZhbHVl
cy4KKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6cGFyc2VWYWx1ZSk6IFBhcnNlIHRoZSBuZXcgcHJvcGVydGllcy4KKyAgICAgICAgKiBj
c3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHk6OmlzSW5o
ZXJpdGVkUHJvcGVydHkpOiBBZGQgbmV3IHByb3BlcnRpZXMgdG8KKyAgICAgICAgdGhlIHN3aXRj
aC4KKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5pbjoKKyAgICAgICAgKiBjc3MvU3R5
bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVHcmlkU3Bhbik6IE1ldGhv
ZCB0byBjb252ZXJ0IGZyb20gdGhlIENTU1ZhbHVlIHRvCisgICAgICAgIHRoZSBzcGFuIHZhbHVl
LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eSk6IFNldCB0
aGUgc3BhbiB2YWx1ZXMuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9uOjpHcmlkUG9zaXRpb24pOgorICAgICAg
ICAoR3JpZFBvc2l0aW9uKTogQWxsb3cgdG8gY29uc3RydWN0IGEgR3JpZFBvc2l0aW9uIHdpdGgg
YW4gaW50ZWdlcgorICAgICAgICB2YWx1ZSwgdG8gYmUgdXNlZCBmb3IgdGhlIGRlZmF1bHQgc3Bh
biB2YWx1ZXMgKCcxJykuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlR3JpZEl0ZW1EYXRhOjpTdHlsZUdyaWRJdGVtRGF0YSk6IEluaXRp
YWxpemUgdGhlCisgICAgICAgIGRlZmF1bHQgc3BhbiB2YWx1ZXMuCisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUdy
aWRJdGVtRGF0YTo6b3BlcmF0b3I9PSk6IENvbnNpZGVyIHRoZSBzcGFuIHZhbHVlcworICAgICAg
ICB3aGVuIGRvaW5nIHRoZSA9PSBjb21wYXJpc29uLgorICAgICAgICAoU3R5bGVHcmlkSXRlbURh
dGEpOiBBZGQgdGhlIHNwYW4gdG8gdGhlIGl0ZW0gZGF0YS4gV2UgdXNlIGEKKyAgICAgICAgR3Jp
ZFBvc2l0aW9uLCBidXQgb25seSBpbnRlZ2VyIGFuZCBpZGVudGlmaWVyIHZhbHVlcyB3aWxsIGJl
CisgICAgICAgIGFsbG93ZWQuCisKIDIwMTItMTItMDQgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtDU1NdIExlbmdodEZ1bmN0aW9ucyBtZXRob2RzIHNob3VsZCBy
ZWNlaXZlIGEgY29uc3QgUmVuZGVyVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBmMjE1NzZmLi5iZjdlNzllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cApAQCAtMTg2MSw2ICsxODYxLDExIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0CiAgICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkUm93OgogICAgICAgICAgICAgcmV0dXJuIHZhbHVl
Rm9yR3JpZFBvc2l0aW9uKHN0eWxlLT5ncmlkSXRlbVJvdygpKTsKIAorICAgICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0R3JpZENvbHVtblNwYW46CisgICAgICAgICAgICByZXR1cm4gdmFsdWVG
b3JHcmlkUG9zaXRpb24oc3R5bGUtPmdyaWRJdGVtQ29sdW1uU3BhbigpKTsKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dTcGFuOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVl
Rm9yR3JpZFBvc2l0aW9uKHN0eWxlLT5ncmlkSXRlbVJvd1NwYW4oKSk7CisKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUhlaWdodDoKICAgICAgICAgICAgIGlmIChyZW5kZXJlcikgewogICAgICAg
ICAgICAgICAgIC8vIEFjY29yZGluZyB0byBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyL3Zpc3Vk
ZXQuaHRtbCN0aGUtaGVpZ2h0LXByb3BlcnR5LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRl
eCBkZDEwMTk1Li4xODM1OTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMjUwNyw2
ICsyNTA3LDEzIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJv
cElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSBpZCA9PSBDU1NW
YWx1ZUF1dG8gfHwgdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlcik7CiAgICAgICAgIGJyZWFrOwog
CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW5TcGFuOgorICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRHcmlkUm93U3BhbjoKKyAgICAgICAgaWYgKCFjc3NHcmlkTGF5b3V0RW5h
YmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB2YWxpZFByaW1pdGl2
ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIpOworICAgICAgICBicmVhazsKKwogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5Db2xsYXBzZTogewogICAgICAgICBpZiAobnVtID09
IDEpIHsKICAgICAgICAgICAgIFNob3J0aGFuZFNjb3BlIHNjb3BlKHRoaXMsIENTU1Byb3BlcnR5
V2Via2l0TWFyZ2luQ29sbGFwc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKaW5kZXgg
YjI1MTIwMy4uYTBhNzc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCkBAIC01Nzgs
NiArNTc4LDggQEAgYm9vbCBDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uOgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRHcmlkUm93OgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uU3Bh
bjoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd1NwYW46CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdExpbmVDbGFtcDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TG9naWNh
bFdpZHRoOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMb2dpY2FsSGVpZ2h0OgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgppbmRleCAxYjM0ZWRjLi44ZjYzZjM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMjk0LDYgKzI5NCw4IEBAIHot
aW5kZXgKIC13ZWJraXQtZ3JpZC1yb3dzCiAtd2Via2l0LWdyaWQtY29sdW1uCiAtd2Via2l0LWdy
aWQtcm93Cistd2Via2l0LWdyaWQtY29sdW1uLXNwYW4KKy13ZWJraXQtZ3JpZC1yb3ctc3Bhbgog
LXdlYmtpdC1oaWdobGlnaHQKIC13ZWJraXQtaHlwaGVuYXRlLWNoYXJhY3RlcgogLXdlYmtpdC1o
eXBoZW5hdGUtbGltaXQtYWZ0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRl
eCBmNmZmM2Q0Li5hNjZkMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBA
IC0yODM0LDYgKzI4MzQsMTcgQEAgc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRyYWNrTGlzdChDU1NW
YWx1ZSogdmFsdWUsIFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgdHJhY2tTaXoKICAgICByZXR1cm4g
Y3JlYXRlR3JpZFRyYWNrR3JvdXAodmFsdWUsIHNlbGVjdG9yLCB0cmFja1NpemVzKTsKIH0KIAor
c3RhdGljIGJvb2wgY3JlYXRlR3JpZFNwYW4oQ1NTVmFsdWUgKnZhbHVlLCBHcmlkUG9zaXRpb24m
IHNwYW4pCit7CisgICAgLy8gRm9yIG5vdywgd2Ugb25seSBhY2NlcHQ6IDxpbnRlZ2VyPgorICAg
IGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CisgICAgQVNTRVJUKHByaW1pdGl2ZVZhbHVlLT5pc051
bWJlcigpKTsKKyAgICBzcGFuLnNldEludGVnZXJQb3NpdGlvbihwcmltaXRpdmVWYWx1ZS0+Z2V0
SW50VmFsdWUoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CiAKIHN0YXRpYyBib29sIGNyZWF0ZUdy
aWRQb3NpdGlvbihDU1NWYWx1ZSogdmFsdWUsIEdyaWRQb3NpdGlvbiYgcG9zaXRpb24pCiB7CkBA
IC0zNzExLDYgKzM3MjIsMjAgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENT
U1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgbV9zdHlsZS0+c2V0R3Jp
ZEl0ZW1Sb3cocm93KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0R3JpZENvbHVtblNwYW46IHsKKyAgICAgICAgR3JpZFBvc2l0aW9uIGNvbHVtblNw
YW47CisgICAgICAgIGlmICghY3JlYXRlR3JpZFNwYW4odmFsdWUsIGNvbHVtblNwYW4pKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBtX3N0eWxlLT5zZXRHcmlkSXRlbUNvbHVtblNwYW4o
Y29sdW1uU3Bhbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEdyaWRSb3dTcGFuOiB7CisgICAgICAgIEdyaWRQb3NpdGlvbiByb3dTcGFuOworICAg
ICAgICBpZiAoIWNyZWF0ZUdyaWRTcGFuKHZhbHVlLCByb3dTcGFuKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgbV9zdHlsZS0+c2V0R3JpZEl0ZW1Sb3dTcGFuKHJvd1NwYW4pOworICAg
ICAgICByZXR1cm47CisgICAgfQogICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgYXJlIGltcGxlbWVu
dGVkIGluIHRoZSBTdHlsZUJ1aWxkZXIgbG9va3VwIHRhYmxlLgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kQXR0YWNobWVudDoKICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZENs
aXA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uLmgKaW5k
ZXggM2Y4ZmU5Ny4uNTIzNDJjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0dyaWRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9HcmlkUG9zaXRpb24uaApAQCAtNDYsNiArNDYsMTIgQEAgcHVibGljOgogICAgIHsKICAgICB9
CiAKKyAgICBHcmlkUG9zaXRpb24oaW50IHBvc2l0aW9uKQorICAgICAgICA6IG1fdHlwZShJbnRl
Z2VyUG9zaXRpb24pCisgICAgICAgICwgbV9pbnRlZ2VyUG9zaXRpb24ocG9zaXRpb24pCisgICAg
eworICAgIH0KKwogICAgIGJvb2wgaXNQb3NpdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGludGVnZXJQ
b3NpdGlvbigpID4gMDsgfQogCiAgICAgR3JpZFBvc2l0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCmluZGV4IDU1ZjU2MTAuLmI5ZmEyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03NjUsNiArNzY1LDkgQEAgcHVibGljOgogICAg
IGNvbnN0IEdyaWRQb3NpdGlvbiYgZ3JpZEl0ZW1Db2x1bW4oKSBjb25zdCB7IHJldHVybiByYXJl
Tm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkSXRlbS0+bV9ncmlkQ29sdW1uOyB9CiAgICAgY29uc3Qg
R3JpZFBvc2l0aW9uJiBncmlkSXRlbVJvdygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX2dyaWRJdGVtLT5tX2dyaWRSb3c7IH0KIAorICAgIGNvbnN0IEdyaWRQb3NpdGlv
biYgZ3JpZEl0ZW1Db2x1bW5TcGFuKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fZ3JpZEl0ZW0tPm1fZ3JpZENvbHVtblNwYW47IH0KKyAgICBjb25zdCBHcmlkUG9zaXRp
b24mIGdyaWRJdGVtUm93U3BhbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX2dyaWRJdGVtLT5tX2dyaWRSb3dTcGFuOyB9CisKICAgICBjb25zdCBTaGFkb3dEYXRhKiBi
b3hTaGFkb3coKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ib3hTaGFk
b3cuZ2V0KCk7IH0KICAgICB2b2lkIGdldEJveFNoYWRvd0V4dGVudChMYXlvdXRVbml0JiB0b3As
IExheW91dFVuaXQmIHJpZ2h0LCBMYXlvdXRVbml0JiBib3R0b20sIExheW91dFVuaXQmIGxlZnQp
IGNvbnN0IHsgZ2V0U2hhZG93RXh0ZW50KGJveFNoYWRvdygpLCB0b3AsIHJpZ2h0LCBib3R0b20s
IGxlZnQpOyB9CiAgICAgTGF5b3V0Qm94RXh0ZW50IGdldEJveFNoYWRvd0luc2V0RXh0ZW50KCkg
Y29uc3QgeyByZXR1cm4gZ2V0U2hhZG93SW5zZXRFeHRlbnQoYm94U2hhZG93KCkpOyB9CkBAIC0x
MjUxLDYgKzEyNTQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRHcmlkUm93cyhjb25zdCBWZWN0
b3I8R3JpZFRyYWNrU2l6ZT4mIGxlbmd0aHMpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0
YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRSb3dzLCBsZW5ndGhzKTsgfQogICAgIHZvaWQgc2V0
R3JpZEl0ZW1Db2x1bW4oY29uc3QgR3JpZFBvc2l0aW9uJiBjb2x1bW5Qb3NpdGlvbikgeyBTRVRf
VkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWRJdGVtLCBtX2dyaWRDb2x1
bW4sIGNvbHVtblBvc2l0aW9uKTsgfQogICAgIHZvaWQgc2V0R3JpZEl0ZW1Sb3coY29uc3QgR3Jp
ZFBvc2l0aW9uJiByb3dQb3NpdGlvbikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFj
Y2VzcygpLT5tX2dyaWRJdGVtLCBtX2dyaWRSb3csIHJvd1Bvc2l0aW9uKTsgfQorICAgIHZvaWQg
c2V0R3JpZEl0ZW1Db2x1bW5TcGFuKGNvbnN0IEdyaWRQb3NpdGlvbiYgY29sdW1uU3BhbikgeyBT
RVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWRJdGVtLCBtX2dyaWRD
b2x1bW5TcGFuLCBjb2x1bW5TcGFuKTsgfQorICAgIHZvaWQgc2V0R3JpZEl0ZW1Sb3dTcGFuKGNv
bnN0IEdyaWRQb3NpdGlvbiYgcm93U3BhbikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LmFjY2VzcygpLT5tX2dyaWRJdGVtLCBtX2dyaWRSb3dTcGFuLCByb3dTcGFuKTsgfQogCiAgICAg
dm9pZCBzZXRNYXJxdWVlSW5jcmVtZW50KGNvbnN0IExlbmd0aCYgZikgeyBTRVRfVkFSKHJhcmVO
b25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX21hcnF1ZWUsIGluY3JlbWVudCwgZik7IH0KICAg
ICB2b2lkIHNldE1hcnF1ZWVTcGVlZChpbnQgZikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLmFjY2VzcygpLT5tX21hcnF1ZWUsIHNwZWVkLCBmKTsgfQpAQCAtMTY1NCw2ICsxNjU5LDEw
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgR3JpZFBvc2l0aW9uIGluaXRpYWxHcmlkSXRlbUNvbHVt
bigpIHsgcmV0dXJuIEdyaWRQb3NpdGlvbigpOyB9CiAgICAgc3RhdGljIEdyaWRQb3NpdGlvbiBp
bml0aWFsR3JpZEl0ZW1Sb3coKSB7IHJldHVybiBHcmlkUG9zaXRpb24oKTsgfQogCisgICAgLy8g
VGhlIGluaXRpYWwgdmFsdWUgaXMgJzEnIGZvciBjb2x1bW4gYW5kIHJvdyBzcGFuCisgICAgc3Rh
dGljIEdyaWRQb3NpdGlvbiBpbml0aWFsR3JpZEl0ZW1Db2x1bW5TcGFuKCkgeyByZXR1cm4gR3Jp
ZFBvc2l0aW9uKDEpOyB9CisgICAgc3RhdGljIEdyaWRQb3NpdGlvbiBpbml0aWFsR3JpZEl0ZW1S
b3dTcGFuKCkgeyByZXR1cm4gR3JpZFBvc2l0aW9uKDEpOyB9CisKICAgICBzdGF0aWMgdW5zaWdu
ZWQgaW5pdGlhbFRhYlNpemUoKSB7IHJldHVybiA4OyB9CiAKICAgICBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBpbml0aWFsTGluZUdyaWQoKSB7IHJldHVybiBudWxsQXRvbTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5jcHAK
aW5kZXggNGVkYjllZC4uM2YzMmM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlR3JpZEl0ZW1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRlbURhdGEuY3BwCkBAIC0zNyw2ICszNyw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIFN0eWxlR3JpZEl0ZW1EYXRhOjpTdHlsZUdyaWRJdGVtRGF0YSgpCiAg
ICAgOiBtX2dyaWRDb2x1bW4oUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkSXRlbUNvbHVtbigpKQog
ICAgICwgbV9ncmlkUm93KFJlbmRlclN0eWxlOjppbml0aWFsR3JpZEl0ZW1Sb3coKSkKKyAgICAs
IG1fZ3JpZENvbHVtblNwYW4oUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkSXRlbUNvbHVtblNwYW4o
KSkKKyAgICAsIG1fZ3JpZFJvd1NwYW4oUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkSXRlbVJvd1Nw
YW4oKSkKIHsKIH0KIApAQCAtNDQsNiArNDYsOCBAQCBTdHlsZUdyaWRJdGVtRGF0YTo6U3R5bGVH
cmlkSXRlbURhdGEoY29uc3QgU3R5bGVHcmlkSXRlbURhdGEmIG8pCiAgICAgOiBSZWZDb3VudGVk
PFN0eWxlR3JpZEl0ZW1EYXRhPigpCiAgICAgLCBtX2dyaWRDb2x1bW4oby5tX2dyaWRDb2x1bW4p
CiAgICAgLCBtX2dyaWRSb3coby5tX2dyaWRSb3cpCisgICAgLCBtX2dyaWRDb2x1bW5TcGFuKG8u
bV9ncmlkQ29sdW1uU3BhbikKKyAgICAsIG1fZ3JpZFJvd1NwYW4oby5tX2dyaWRSb3dTcGFuKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVH
cmlkSXRlbURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJ
dGVtRGF0YS5oCmluZGV4IDJmNzQ4N2IuLjYzOTNhODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWRJdGVtRGF0YS5oCkBAIC00Niw3ICs0Niw3IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHlsZUdyaWRJdGVtRGF0YSYg
bykgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2dyaWRDb2x1bW4gPT0gby5tX2dyaWRD
b2x1bW4gJiYgbV9ncmlkUm93ID09IG8ubV9ncmlkUm93OworICAgICAgICByZXR1cm4gbV9ncmlk
Q29sdW1uID09IG8ubV9ncmlkQ29sdW1uICYmIG1fZ3JpZFJvdyA9PSBvLm1fZ3JpZFJvdyAmJiBt
X2dyaWRDb2x1bW5TcGFuID09IG8ubV9ncmlkQ29sdW1uU3BhbiAmJiBtX2dyaWRSb3dTcGFuID09
IG8ubV9ncmlkUm93U3BhbjsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3R5
bGVHcmlkSXRlbURhdGEmIG8pIGNvbnN0CkBAIC01Nyw2ICs1Nyw4IEBAIHB1YmxpYzoKICAgICBH
cmlkUG9zaXRpb24gbV9ncmlkQ29sdW1uOwogICAgIEdyaWRQb3NpdGlvbiBtX2dyaWRSb3c7CiAK
KyAgICBHcmlkUG9zaXRpb24gbV9ncmlkQ29sdW1uU3BhbjsKKyAgICBHcmlkUG9zaXRpb24gbV9n
cmlkUm93U3BhbjsKIHByaXZhdGU6CiAgICAgU3R5bGVHcmlkSXRlbURhdGEoKTsKICAgICBTdHls
ZUdyaWRJdGVtRGF0YShjb25zdCBTdHlsZUdyaWRJdGVtRGF0YSYpOwotLSAKMS43LjcuNgoK
</data>
<flag name="review"
          id="197788"
          type_id="1"
          status="-"
          setter="jchaffraix"
    />
          </attachment>
      

    </bug>

</bugzilla>