<?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>127837</bug_id>
          
          <creation_ts>2014-01-29 03:15:16 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] getComputedStyle() not using author&apos;s order when showing named grid lines</short_desc>
          <delta_ts>2014-03-17 10:31:08 -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>CSS</component>
          <version>528+ (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>
          
          <blocked>129041</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyatt</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rego</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973332</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-01-29 03:15:16 -0800</bug_when>
    <thetext>It&apos;s easy to check that with a declaration like:

-webkit-grid-definition-columns:  &quot;first&quot; &quot;nav&quot; 10px &quot;last&quot;;

the return value of getComputedStyle() is

&quot;nav&quot; &quot;first&quot; 10px &quot;last&quot;

It isn&apos;t really critical because the name refers to the same position independently of the order, but it looks weird from the author&apos;s POV as the names are not in the order they were written. The reason why it happens is because we&apos;re just taking the names from a HashMap where we store the information about the named grid lines, so the insertion order is not guaranteed at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979837</commentid>
    <comment_count>1</comment_count>
      <attachid>223959</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-12 04:39:22 -0800</bug_when>
    <thetext>Created attachment 223959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982401</commentid>
    <comment_count>2</comment_count>
      <attachid>223959</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-19 10:18:12 -0800</bug_when>
    <thetext>Comment on attachment 223959
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.h:1313
&gt; +    void setOrderedNamedGridColumnLines(const OrderedNamedGridLinesMap&amp; orderedNamedGridColumnLines) { SET_VAR(rareNonInheritedData.access()-&gt;m_grid, m_orderedNamedGridColumnLines, orderedNamedGridColumnLines); }
&gt; +    void setOrderedNamedGridRowLines(const OrderedNamedGridLinesMap&amp; orderedNamedGridRowLines) { SET_VAR(rareNonInheritedData.access()-&gt;m_grid, m_orderedNamedGridRowLines, orderedNamedGridRowLines); }

SET_VAR(foo.access()-&gt;bar, ...) is a bad pattern since it will always cause a copy-on-write of the &quot;foo&quot; object.
The point of the SET_VAR macro is to avoid creating objects when overwriting with identical values, and we&apos;re losing that optimization here (and in the code surrounding it too!)

&gt; Source/WebCore/rendering/style/StyleGridData.h:66
&gt;      NamedGridLinesMap m_namedGridColumnLines;
&gt;      NamedGridLinesMap m_namedGridRowLines;
&gt;  
&gt; +    OrderedNamedGridLinesMap m_orderedNamedGridColumnLines;
&gt; +    OrderedNamedGridLinesMap m_orderedNamedGridRowLines;

This object is starting to look really heavy. Are we sure this is the right direction to be going?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982407</commentid>
    <comment_count>3</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-19 10:29:55 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 223959 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=223959&amp;action=review

&gt; &gt; Source/WebCore/rendering/style/StyleGridData.h:66
&gt; &gt;      NamedGridLinesMap m_namedGridColumnLines;
&gt; &gt;      NamedGridLinesMap m_namedGridRowLines;
&gt; &gt;  
&gt; &gt; +    OrderedNamedGridLinesMap m_orderedNamedGridColumnLines;
&gt; &gt; +    OrderedNamedGridLinesMap m_orderedNamedGridRowLines;
&gt; 
&gt; This object is starting to look really heavy. Are we sure this is the right direction to be going?

That&apos;s indeed a good question. I tried to include the ordering information in the already available structures (mainly because the vector of ordered named grid lines is just used for getcomputedstyle() but the resulting code was much more complicated. Perhaps I could try again, even penalizing a bit the readability of that uncommon use case, in exchange of a lighter object. Sounds like a plan?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991240</commentid>
    <comment_count>4</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-17 09:19:06 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 223959 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=223959&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/StyleGridData.h:66
&gt; &gt;      NamedGridLinesMap m_namedGridColumnLines;
&gt; &gt;      NamedGridLinesMap m_namedGridRowLines;
&gt; &gt;  
&gt; &gt; +    OrderedNamedGridLinesMap m_orderedNamedGridColumnLines;
&gt; &gt; +    OrderedNamedGridLinesMap m_orderedNamedGridRowLines;
&gt; 
&gt; This object is starting to look really heavy. Are we sure this is the right direction to be going?

BTW I&apos;m going to remove the NamedGridLinesMap objects in a follow up patch (for bug 130010) so this wouldn&apos;t be a big deal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991280</commentid>
    <comment_count>5</comment_count>
      <attachid>223959</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-03-17 10:16:24 -0700</bug_when>
    <thetext>Comment on attachment 223959
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991294</commentid>
    <comment_count>6</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-03-17 10:31:08 -0700</bug_when>
    <thetext>Committed r165742: &lt;http://trac.webkit.org/changeset/165742&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223959</attachid>
            <date>2014-02-12 04:39:22 -0800</date>
            <delta_ts>2014-03-17 10:16:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127837-20140212133920.patch</filename>
            <type>text/plain</type>
            <size>33997</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2M1M2YzNWU5NmYxNWRi
ZDNmN2IwZjhiMTAxZTlmZWMyYTcyMGQ4OC4uODAyYWExYjIwODU2ZjI1YzMxZjAzN2JiZGQ5MTdl
MzIwM2MwYmY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAxLTI5ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIGdldENvbXB1dGVkU3R5bGUoKSBub3QgdXNpbmcgYXV0aG9yJ3Mgb3JkZXIgd2hl
biBzaG93aW5nIG5hbWVkIGdyaWQgbGluZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNzgzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgY291cGxlIG9mIG5ldyBWZWN0b3JzIHRvIHN0b3Jl
IHRoZSBuYW1lcyBvZiB0aGUgZ3JpZCBsaW5lcworICAgICAgICByZXNwZWN0aW5nIHRoZWlyIG9y
ZGVyLiBUaGV5IHdpbGwgYmUgdXNlZCB0byBnZXQgdGhlIHJpZ2h0IG91dGNvbWUKKyAgICAgICAg
Zm9yIGdldENvbXB1dGVkU3R5bGUoKS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkVmFsdWVzRm9yTmFtZWRHcmlk
TGluZXNBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlRm9yR3JpZFRyYWNrTGlzdCk6
CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlR3JpZFRyYWNrTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBs
eVByb3BlcnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZUdyaWREYXRhOjpTdHlsZUdyaWREYXRhKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvU3R5bGVHcmlkRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHcmlkRGF0YTo6
b3BlcmF0b3I9PSk6CisKIDIwMTQtMDItMTEgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFy
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0gU3VwcG9ydCBjYWxjKCkg
YnJlYWR0aCBzaXplIHR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMThhMGFiMTQ3ZjFkNDVmMGI0N2FlYjNlZjc1NjJk
OTIxOTE5YjFhYy4uNDA1MjE5ZmEwNjcwZDE5NmQwZTQyMGFlOTMxZmEwNGFiYjM2ZmNkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKQEAgLTk4NCwzMiArOTg0LDI0IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBzcGVj
aWZpZWRWYWx1ZUZvckdyaWRUcmFja1NpemUoY29uc3QgR3JpZFRyYWNrU2l6ZSYKICAgICByZXR1
cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgYWRkVmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4
KGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBuYW1lZEdyaWRMaW5lcywgc2l6ZV90IGksIENTU1Zh
bHVlTGlzdCYgbGlzdCkKLXsKLSAgICAvLyBOb3RlIHRoYXQgdGhpcyB3b24ndCByZXR1cm4gdGhl
IHJlc3VsdHMgaW4gdGhlIG9yZGVyIHNwZWNpZmllZCBpbiB0aGUgc3R5bGUgc2hlZXQsCi0gICAg
Ly8gd2hpY2ggaXMgcHJvYmFibHkgZmluZSBhcyB3ZSBzdGlsbCAqZG8qIHJldHVybiBhbGwgdGhl
IGV4cGVjdGVkIHZhbHVlcy4KLSAgICBOYW1lZEdyaWRMaW5lc01hcDo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBuYW1lZEdyaWRMaW5lcy5iZWdpbigpOwotICAgIE5hbWVkR3JpZExpbmVzTWFwOjpjb25z
dF9pdGVyYXRvciBlbmQgPSBuYW1lZEdyaWRMaW5lcy5lbmQoKTsKLSAgICBmb3IgKDsgaXQgIT0g
ZW5kOyArK2l0KSB7Ci0gICAgICAgIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBsaW5lc0luZGV4ZXMg
PSBpdC0+dmFsdWU7Ci0gICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgbGluZXNJbmRleGVz
LnNpemUoKTsgKytqKSB7Ci0gICAgICAgICAgICBpZiAobGluZXNJbmRleGVzW2pdICE9IGkpCi0g
ICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGxpc3QuYXBwZW5kKGNzc1Zh
bHVlUG9vbCgpLmNyZWF0ZVZhbHVlKGl0LT5rZXksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RS
SU5HKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KK3N0YXRpYyB2b2lk
IGFkZFZhbHVlc0Zvck5hbWVkR3JpZExpbmVzQXRJbmRleChjb25zdCBPcmRlcmVkTmFtZWRHcmlk
TGluZXNNYXAmIG9yZGVyZWROYW1lZEdyaWRMaW5lcywgc2l6ZV90IGksIENTU1ZhbHVlTGlzdCYg
bGlzdCkKK3sKKyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbmFtZWRHcmlkTGluZXMgPSBvcmRl
cmVkTmFtZWRHcmlkTGluZXMuZ2V0KGkpOworICAgIGlmIChuYW1lZEdyaWRMaW5lcy5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFtZWRH
cmlkTGluZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIGxpc3QuYXBwZW5kKGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZVZhbHVlKG5hbWVkR3JpZExpbmVzW2ldLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NU
UklORykpOwogfQogCiBzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tM
aXN0KEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIFJlbmRlck9iamVjdCogcmVu
ZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyVmlldyogcmVuZGVyVmlldykK
IHsKICAgICBjb25zdCBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4mIHRyYWNrU2l6ZXMgPSBkaXJlY3Rp
b24gPT0gRm9yQ29sdW1ucyA/IHN0eWxlLT5ncmlkQ29sdW1ucygpIDogc3R5bGUtPmdyaWRSb3dz
KCk7Ci0gICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkR3JpZExpbmVzID0gZGlyZWN0
aW9uID09IEZvckNvbHVtbnMgPyBzdHlsZS0+bmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IHN0eWxl
LT5uYW1lZEdyaWRSb3dMaW5lcygpOworICAgIGNvbnN0IE9yZGVyZWROYW1lZEdyaWRMaW5lc01h
cCYgb3JkZXJlZE5hbWVkR3JpZExpbmVzID0gZGlyZWN0aW9uID09IEZvckNvbHVtbnMgPyBzdHls
ZS0+b3JkZXJlZE5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBzdHlsZS0+b3JkZXJlZE5hbWVkR3Jp
ZFJvd0xpbmVzKCk7CiAKICAgICAvLyBIYW5kbGUgdGhlICdub25lJyBjYXNlIGhlcmUuCiAgICAg
aWYgKCF0cmFja1NpemVzLnNpemUoKSkgewotICAgICAgICBBU1NFUlQobmFtZWRHcmlkTGluZXMu
aXNFbXB0eSgpKTsKKyAgICAgICAgQVNTRVJUKG9yZGVyZWROYW1lZEdyaWRMaW5lcy5pc0VtcHR5
KCkpOwogICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVl
KENTU1ZhbHVlTm9uZSk7CiAgICAgfQogCkBAIC0xMDIxLDE4ICsxMDEzLDE4IEBAIHN0YXRpYyBQ
YXNzUmVmPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRUcmFja0xpc3QoR3JpZFRyYWNrU2l6aW5nRGly
ZWN0aW9uIGRpcmVjdGlvCiAgICAgICAgIEFTU0VSVCh0cmFja1Bvc2l0aW9ucy5zaXplKCkgLSAx
ID49IHRyYWNrU2l6ZXMuc2l6ZSgpKTsKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgdHJhY2tTaXplcy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgYWRkVmFsdWVzRm9yTmFt
ZWRHcmlkTGluZXNBdEluZGV4KG5hbWVkR3JpZExpbmVzLCBpLCBsaXN0LmdldCgpKTsKKyAgICAg
ICAgICAgIGFkZFZhbHVlc0Zvck5hbWVkR3JpZExpbmVzQXRJbmRleChvcmRlcmVkTmFtZWRHcmlk
TGluZXMsIGksIGxpc3QuZ2V0KCkpOwogICAgICAgICAgICAgbGlzdC5nZXQoKS5hcHBlbmQoem9v
bUFkanVzdGVkUGl4ZWxWYWx1ZSh0cmFja1Bvc2l0aW9uc1tpICsgMV0gLSB0cmFja1Bvc2l0aW9u
c1tpXSwgc3R5bGUpKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCB0cmFja1NpemVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBh
ZGRWYWx1ZXNGb3JOYW1lZEdyaWRMaW5lc0F0SW5kZXgobmFtZWRHcmlkTGluZXMsIGksIGxpc3Qu
Z2V0KCkpOworICAgICAgICAgICAgYWRkVmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4KG9y
ZGVyZWROYW1lZEdyaWRMaW5lcywgaSwgbGlzdC5nZXQoKSk7CiAgICAgICAgICAgICBsaXN0Lmdl
dCgpLmFwcGVuZChzcGVjaWZpZWRWYWx1ZUZvckdyaWRUcmFja1NpemUodHJhY2tTaXplc1tpXSwg
c3R5bGUsIHJlbmRlclZpZXcpKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFRob3NlIGFy
ZSB0aGUgdHJhaWxpbmcgPGlkZW50PiogYWxsb3dlZCBpbiB0aGUgc3ludGF4LgotICAgIGFkZFZh
bHVlc0Zvck5hbWVkR3JpZExpbmVzQXRJbmRleChuYW1lZEdyaWRMaW5lcywgdHJhY2tTaXplcy5z
aXplKCksIGxpc3QuZ2V0KCkpOworICAgIGFkZFZhbHVlc0Zvck5hbWVkR3JpZExpbmVzQXRJbmRl
eChvcmRlcmVkTmFtZWRHcmlkTGluZXMsIHRyYWNrU2l6ZXMuc2l6ZSgpLCBsaXN0LmdldCgpKTsK
ICAgICByZXR1cm4gc3RkOjptb3ZlKGxpc3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKaW5kZXggMmNlY2Y3Y2JiZTA2MGU1NzZjM2I1OTVlNjlmZDBjNjhkZGMxMjIzZi4u
ZmNiYTNiODM2OTdhOGNkOTk0MGYyNzMyOTk2M2Y0Y2Q2Mjk2OWRhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTkxNSw3ICsxOTE1LDcgQEAgc3RhdGljIGJvb2wgY3Jl
YXRlR3JpZFRyYWNrU2l6ZShDU1NWYWx1ZSogdmFsdWUsIEdyaWRUcmFja1NpemUmIHRyYWNrU2l6
ZSwgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgY3JlYXRlR3JpZFRy
YWNrTGlzdChDU1NWYWx1ZSogdmFsdWUsIFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgdHJhY2tTaXpl
cywgTmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkR3JpZExpbmVzLCBjb25zdCBTdHlsZVJlc29sdmVy
OjpTdGF0ZSYgc3RhdGUpCitzdGF0aWMgYm9vbCBjcmVhdGVHcmlkVHJhY2tMaXN0KENTU1ZhbHVl
KiB2YWx1ZSwgVmVjdG9yPEdyaWRUcmFja1NpemU+JiB0cmFja1NpemVzLCBOYW1lZEdyaWRMaW5l
c01hcCYgbmFtZWRHcmlkTGluZXMsIE9yZGVyZWROYW1lZEdyaWRMaW5lc01hcCYgb3JkZXJlZE5h
bWVkR3JpZExpbmVzLCBjb25zdCBTdHlsZVJlc29sdmVyOjpTdGF0ZSYgc3RhdGUpCiB7CiAgICAg
Ly8gSGFuZGxlICdub25lJy4KICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgewpA
QCAtMTkzMiw4ICsxOTMyLDExIEBAIHN0YXRpYyBib29sIGNyZWF0ZUdyaWRUcmFja0xpc3QoQ1NT
VmFsdWUqIHZhbHVlLCBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4mIHRyYWNrU2l6CiAgICAgICAgIGlm
IChjdXJyVmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkgewogICAgICAgICAgICAgQ1NTUHJpbWl0
aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gdG9DU1NQcmltaXRpdmVWYWx1ZShjdXJyVmFsdWUp
OwogICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1N0cmluZygpKSB7Ci0gICAgICAg
ICAgICAgICAgTmFtZWRHcmlkTGluZXNNYXA6OkFkZFJlc3VsdCByZXN1bHQgPSBuYW1lZEdyaWRM
aW5lcy5hZGQocHJpbWl0aXZlVmFsdWUtPmdldFN0cmluZ1ZhbHVlKCksIFZlY3RvcjxzaXplX3Q+
KCkpOworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lZEdyaWRMaW5lID0gcHJpbWl0aXZlVmFs
dWUtPmdldFN0cmluZ1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgTmFtZWRHcmlkTGluZXNNYXA6
OkFkZFJlc3VsdCByZXN1bHQgPSBuYW1lZEdyaWRMaW5lcy5hZGQobmFtZWRHcmlkTGluZSwgVmVj
dG9yPHNpemVfdD4oKSk7CiAgICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5h
cHBlbmQoY3VycmVudE5hbWVkR3JpZExpbmUpOworICAgICAgICAgICAgICAgIE9yZGVyZWROYW1l
ZEdyaWRMaW5lc01hcDo6QWRkUmVzdWx0IG9yZGVyZWRSZXN1bHQgPSBvcmRlcmVkTmFtZWRHcmlk
TGluZXMuYWRkKGN1cnJlbnROYW1lZEdyaWRMaW5lLCBWZWN0b3I8U3RyaW5nPigpKTsKKyAgICAg
ICAgICAgICAgICBvcmRlcmVkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQobmFtZWRHcmlk
TGluZSk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTI2NTksMzggKzI2NjIsNDYgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3Bl
cnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgaWYgKGlzSW5o
ZXJpdCkgewogICAgICAgICAgICAgbV9zdGF0ZS5zdHlsZSgpLT5zZXRHcmlkQ29sdW1ucyhtX3N0
YXRlLnBhcmVudFN0eWxlKCktPmdyaWRDb2x1bW5zKCkpOwogICAgICAgICAgICAgbV9zdGF0ZS5z
dHlsZSgpLT5zZXROYW1lZEdyaWRDb2x1bW5MaW5lcyhtX3N0YXRlLnBhcmVudFN0eWxlKCktPm5h
bWVkR3JpZENvbHVtbkxpbmVzKCkpOworICAgICAgICAgICAgbV9zdGF0ZS5zdHlsZSgpLT5zZXRP
cmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMobV9zdGF0ZS5wYXJlbnRTdHlsZSgpLT5vcmRlcmVk
TmFtZWRHcmlkQ29sdW1uTGluZXMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKGlzSW5pdGlhbCkgewogICAgICAgICAgICAgbV9zdGF0ZS5zdHlsZSgpLT5z
ZXRHcmlkQ29sdW1ucyhSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRDb2x1bW5zKCkpOwogICAgICAg
ICAgICAgbV9zdGF0ZS5zdHlsZSgpLT5zZXROYW1lZEdyaWRDb2x1bW5MaW5lcyhSZW5kZXJTdHls
ZTo6aW5pdGlhbE5hbWVkR3JpZENvbHVtbkxpbmVzKCkpOworICAgICAgICAgICAgbV9zdGF0ZS5z
dHlsZSgpLT5zZXRPcmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMoUmVuZGVyU3R5bGU6OmluaXRp
YWxPcmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgVmVjdG9yPEdyaWRUcmFja1NpemU+IHRyYWNrU2l6ZXM7CiAgICAg
ICAgIE5hbWVkR3JpZExpbmVzTWFwIG5hbWVkR3JpZExpbmVzOwotICAgICAgICBpZiAoIWNyZWF0
ZUdyaWRUcmFja0xpc3QodmFsdWUsIHRyYWNrU2l6ZXMsIG5hbWVkR3JpZExpbmVzLCBzdGF0ZSkp
CisgICAgICAgIE9yZGVyZWROYW1lZEdyaWRMaW5lc01hcCBvcmRlcmVkTmFtZWRHcmlkTGluZXM7
CisgICAgICAgIGlmICghY3JlYXRlR3JpZFRyYWNrTGlzdCh2YWx1ZSwgdHJhY2tTaXplcywgbmFt
ZWRHcmlkTGluZXMsIG9yZGVyZWROYW1lZEdyaWRMaW5lcywgc3RhdGUpKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRHcmlkQ29sdW1ucyh0cmFja1NpemVz
KTsKICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0TmFtZWRHcmlkQ29sdW1uTGluZXMobmFtZWRH
cmlkTGluZXMpOworICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRPcmRlcmVkTmFtZWRHcmlkQ29s
dW1uTGluZXMob3JkZXJlZE5hbWVkR3JpZExpbmVzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFRlbXBsYXRlUm93czogewogICAgICAgICBp
ZiAoaXNJbmhlcml0KSB7CiAgICAgICAgICAgICBtX3N0YXRlLnN0eWxlKCktPnNldEdyaWRSb3dz
KG1fc3RhdGUucGFyZW50U3R5bGUoKS0+Z3JpZFJvd3MoKSk7CiAgICAgICAgICAgICBtX3N0YXRl
LnN0eWxlKCktPnNldE5hbWVkR3JpZFJvd0xpbmVzKG1fc3RhdGUucGFyZW50U3R5bGUoKS0+bmFt
ZWRHcmlkUm93TGluZXMoKSk7CisgICAgICAgICAgICBtX3N0YXRlLnN0eWxlKCktPnNldE9yZGVy
ZWROYW1lZEdyaWRSb3dMaW5lcyhtX3N0YXRlLnBhcmVudFN0eWxlKCktPm9yZGVyZWROYW1lZEdy
aWRSb3dMaW5lcygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBp
ZiAoaXNJbml0aWFsKSB7CiAgICAgICAgICAgICBtX3N0YXRlLnN0eWxlKCktPnNldEdyaWRSb3dz
KFJlbmRlclN0eWxlOjppbml0aWFsR3JpZFJvd3MoKSk7CiAgICAgICAgICAgICBtX3N0YXRlLnN0
eWxlKCktPnNldE5hbWVkR3JpZFJvd0xpbmVzKFJlbmRlclN0eWxlOjppbml0aWFsTmFtZWRHcmlk
Um93TGluZXMoKSk7CisgICAgICAgICAgICBtX3N0YXRlLnN0eWxlKCktPnNldE9yZGVyZWROYW1l
ZEdyaWRSb3dMaW5lcyhSZW5kZXJTdHlsZTo6aW5pdGlhbE9yZGVyZWROYW1lZEdyaWRSb3dMaW5l
cygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBWZWN0b3I8R3Jp
ZFRyYWNrU2l6ZT4gdHJhY2tTaXplczsKICAgICAgICAgTmFtZWRHcmlkTGluZXNNYXAgbmFtZWRH
cmlkTGluZXM7Ci0gICAgICAgIGlmICghY3JlYXRlR3JpZFRyYWNrTGlzdCh2YWx1ZSwgdHJhY2tT
aXplcywgbmFtZWRHcmlkTGluZXMsIHN0YXRlKSkKKyAgICAgICAgT3JkZXJlZE5hbWVkR3JpZExp
bmVzTWFwIG9yZGVyZWROYW1lZEdyaWRMaW5lczsKKyAgICAgICAgaWYgKCFjcmVhdGVHcmlkVHJh
Y2tMaXN0KHZhbHVlLCB0cmFja1NpemVzLCBuYW1lZEdyaWRMaW5lcywgb3JkZXJlZE5hbWVkR3Jp
ZExpbmVzLCBzdGF0ZSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHN0YXRlLnN0eWxl
KCktPnNldEdyaWRSb3dzKHRyYWNrU2l6ZXMpOwogICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRO
YW1lZEdyaWRSb3dMaW5lcyhuYW1lZEdyaWRMaW5lcyk7CisgICAgICAgIHN0YXRlLnN0eWxlKCkt
PnNldE9yZGVyZWROYW1lZEdyaWRSb3dMaW5lcyhvcmRlcmVkTmFtZWRHcmlkTGluZXMpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCmluZGV4IGMzZDg2ODM1YjJiYmExNGRhMjg5YmIzODRlZTBlNGI0MTc0Njc1
NTUuLjI5YTc0ZjU5Zjk1ZjY0YmFjODQ2MzZhZDYyY2Q0OGFjYjlhNWJlZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03NzMsNiArNzczLDgg
QEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgZ3JpZFJvd3MoKSBj
b25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5tX2dyaWRSb3dzOyB9
CiAgICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkR3JpZENvbHVtbkxpbmVzKCkgY29u
c3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9uYW1lZEdyaWRDb2x1
bW5MaW5lczsgfQogICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBuYW1lZEdyaWRSb3dMaW5l
cygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQtPm1fbmFtZWRH
cmlkUm93TGluZXM7IH0KKyAgICBjb25zdCBPcmRlcmVkTmFtZWRHcmlkTGluZXNNYXAmIG9yZGVy
ZWROYW1lZEdyaWRDb2x1bW5MaW5lcygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX2dyaWQtPm1fb3JkZXJlZE5hbWVkR3JpZENvbHVtbkxpbmVzOyB9CisgICAgY29uc3Qg
T3JkZXJlZE5hbWVkR3JpZExpbmVzTWFwJiBvcmRlcmVkTmFtZWRHcmlkUm93TGluZXMoKSBjb25z
dCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5tX29yZGVyZWROYW1lZEdy
aWRSb3dMaW5lczsgfQogICAgIGNvbnN0IE5hbWVkR3JpZEFyZWFNYXAmIG5hbWVkR3JpZEFyZWEo
KSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5tX25hbWVkR3Jp
ZEFyZWE7IH0KICAgICBzaXplX3QgbmFtZWRHcmlkQXJlYVJvd0NvdW50KCkgY29uc3QgeyByZXR1
cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9uYW1lZEdyaWRBcmVhUm93Q291bnQ7
IH0KICAgICBzaXplX3QgbmFtZWRHcmlkQXJlYUNvbHVtbkNvdW50KCkgY29uc3QgeyByZXR1cm4g
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9uYW1lZEdyaWRBcmVhQ29sdW1uQ291bnQ7
IH0KQEAgLTEzMDcsNiArMTMwOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEdyaWRSb3dzKGNv
bnN0IFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgbGVuZ3RocykgeyBTRVRfVkFSKHJhcmVOb25Jbmhl
cml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWQsIG1fZ3JpZFJvd3MsIGxlbmd0aHMpOyB9CiAgICAg
dm9pZCBzZXROYW1lZEdyaWRDb2x1bW5MaW5lcyhjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgbmFt
ZWRHcmlkQ29sdW1uTGluZXMpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3Mo
KS0+bV9ncmlkLCBtX25hbWVkR3JpZENvbHVtbkxpbmVzLCBuYW1lZEdyaWRDb2x1bW5MaW5lcyk7
IH0KICAgICB2b2lkIHNldE5hbWVkR3JpZFJvd0xpbmVzKGNvbnN0IE5hbWVkR3JpZExpbmVzTWFw
JiBuYW1lZEdyaWRSb3dMaW5lcykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2Vz
cygpLT5tX2dyaWQsIG1fbmFtZWRHcmlkUm93TGluZXMsIG5hbWVkR3JpZFJvd0xpbmVzKTsgfQor
ICAgIHZvaWQgc2V0T3JkZXJlZE5hbWVkR3JpZENvbHVtbkxpbmVzKGNvbnN0IE9yZGVyZWROYW1l
ZEdyaWRMaW5lc01hcCYgb3JkZXJlZE5hbWVkR3JpZENvbHVtbkxpbmVzKSB7IFNFVF9WQVIocmFy
ZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZCwgbV9vcmRlcmVkTmFtZWRHcmlkQ29s
dW1uTGluZXMsIG9yZGVyZWROYW1lZEdyaWRDb2x1bW5MaW5lcyk7IH0KKyAgICB2b2lkIHNldE9y
ZGVyZWROYW1lZEdyaWRSb3dMaW5lcyhjb25zdCBPcmRlcmVkTmFtZWRHcmlkTGluZXNNYXAmIG9y
ZGVyZWROYW1lZEdyaWRSb3dMaW5lcykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFj
Y2VzcygpLT5tX2dyaWQsIG1fb3JkZXJlZE5hbWVkR3JpZFJvd0xpbmVzLCBvcmRlcmVkTmFtZWRH
cmlkUm93TGluZXMpOyB9CiAgICAgdm9pZCBzZXROYW1lZEdyaWRBcmVhKGNvbnN0IE5hbWVkR3Jp
ZEFyZWFNYXAmIG5hbWVkR3JpZEFyZWEpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5h
Y2Nlc3MoKS0+bV9ncmlkLCBtX25hbWVkR3JpZEFyZWEsIG5hbWVkR3JpZEFyZWEpOyB9CiAgICAg
dm9pZCBzZXROYW1lZEdyaWRBcmVhUm93Q291bnQoc2l6ZV90IHJvd0NvdW50KSB7IFNFVF9WQVIo
cmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZCwgbV9uYW1lZEdyaWRBcmVhUm93
Q291bnQsIHJvd0NvdW50KTsgfQogICAgIHZvaWQgc2V0TmFtZWRHcmlkQXJlYUNvbHVtbkNvdW50
KHNpemVfdCBjb2x1bW5Db3VudCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2Vz
cygpLT5tX2dyaWQsIG1fbmFtZWRHcmlkQXJlYUNvbHVtbkNvdW50LCBjb2x1bW5Db3VudCk7IH0K
QEAgLTE3NzIsNiArMTc3Niw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTmFtZWRHcmlkTGluZXNN
YXAgaW5pdGlhbE5hbWVkR3JpZENvbHVtbkxpbmVzKCkgeyByZXR1cm4gTmFtZWRHcmlkTGluZXNN
YXAoKTsgfQogICAgIHN0YXRpYyBOYW1lZEdyaWRMaW5lc01hcCBpbml0aWFsTmFtZWRHcmlkUm93
TGluZXMoKSB7IHJldHVybiBOYW1lZEdyaWRMaW5lc01hcCgpOyB9CiAKKyAgICBzdGF0aWMgT3Jk
ZXJlZE5hbWVkR3JpZExpbmVzTWFwIGluaXRpYWxPcmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMo
KSB7IHJldHVybiBPcmRlcmVkTmFtZWRHcmlkTGluZXNNYXAoKTsgfQorICAgIHN0YXRpYyBPcmRl
cmVkTmFtZWRHcmlkTGluZXNNYXAgaW5pdGlhbE9yZGVyZWROYW1lZEdyaWRSb3dMaW5lcygpIHsg
cmV0dXJuIE9yZGVyZWROYW1lZEdyaWRMaW5lc01hcCgpOyB9CisKICAgICAvLyAnYXV0bycgaXMg
dGhlIGRlZmF1bHQuCiAgICAgc3RhdGljIEdyaWRQb3NpdGlvbiBpbml0aWFsR3JpZEl0ZW1Db2x1
bW5TdGFydCgpIHsgcmV0dXJuIEdyaWRQb3NpdGlvbigpOyB9CiAgICAgc3RhdGljIEdyaWRQb3Np
dGlvbiBpbml0aWFsR3JpZEl0ZW1Db2x1bW5FbmQoKSB7IHJldHVybiBHcmlkUG9zaXRpb24oKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuY3Bw
CmluZGV4IDEwZWNjYzBkOGMzZDRhNzY4MTVkNmM3MmJiY2MzMjQzZWI4MDFjZDEuLjgxNjUzMGFj
ZGNlOWZkYzZlZWQwMmIxMmUzMmYyZWY1MjYwNGFiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5jcHAKQEAgLTM1LDYgKzM1LDggQEAgU3R5
bGVHcmlkRGF0YTo6U3R5bGVHcmlkRGF0YSgpCiAgICAgLCBtX2dyaWRSb3dzKFJlbmRlclN0eWxl
Ojppbml0aWFsR3JpZFJvd3MoKSkKICAgICAsIG1fbmFtZWRHcmlkQ29sdW1uTGluZXMoUmVuZGVy
U3R5bGU6OmluaXRpYWxOYW1lZEdyaWRDb2x1bW5MaW5lcygpKQogICAgICwgbV9uYW1lZEdyaWRS
b3dMaW5lcyhSZW5kZXJTdHlsZTo6aW5pdGlhbE5hbWVkR3JpZFJvd0xpbmVzKCkpCisgICAgLCBt
X29yZGVyZWROYW1lZEdyaWRDb2x1bW5MaW5lcyhSZW5kZXJTdHlsZTo6aW5pdGlhbE9yZGVyZWRO
YW1lZEdyaWRDb2x1bW5MaW5lcygpKQorICAgICwgbV9vcmRlcmVkTmFtZWRHcmlkUm93TGluZXMo
UmVuZGVyU3R5bGU6OmluaXRpYWxPcmRlcmVkTmFtZWRHcmlkUm93TGluZXMoKSkKICAgICAsIG1f
Z3JpZEF1dG9GbG93KFJlbmRlclN0eWxlOjppbml0aWFsR3JpZEF1dG9GbG93KCkpCiAgICAgLCBt
X2dyaWRBdXRvUm93cyhSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRBdXRvUm93cygpKQogICAgICwg
bV9ncmlkQXV0b0NvbHVtbnMoUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkQXV0b0NvbHVtbnMoKSkK
QEAgLTUwLDYgKzUyLDggQEAgaW5saW5lIFN0eWxlR3JpZERhdGE6OlN0eWxlR3JpZERhdGEoY29u
c3QgU3R5bGVHcmlkRGF0YSYgbykKICAgICAsIG1fZ3JpZFJvd3Moby5tX2dyaWRSb3dzKQogICAg
ICwgbV9uYW1lZEdyaWRDb2x1bW5MaW5lcyhvLm1fbmFtZWRHcmlkQ29sdW1uTGluZXMpCiAgICAg
LCBtX25hbWVkR3JpZFJvd0xpbmVzKG8ubV9uYW1lZEdyaWRSb3dMaW5lcykKKyAgICAsIG1fb3Jk
ZXJlZE5hbWVkR3JpZENvbHVtbkxpbmVzKG8ubV9vcmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMp
CisgICAgLCBtX29yZGVyZWROYW1lZEdyaWRSb3dMaW5lcyhvLm1fb3JkZXJlZE5hbWVkR3JpZFJv
d0xpbmVzKQogICAgICwgbV9ncmlkQXV0b0Zsb3coby5tX2dyaWRBdXRvRmxvdykKICAgICAsIG1f
Z3JpZEF1dG9Sb3dzKG8ubV9ncmlkQXV0b1Jvd3MpCiAgICAgLCBtX2dyaWRBdXRvQ29sdW1ucyhv
Lm1fZ3JpZEF1dG9Db2x1bW5zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlR3JpZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUdyaWREYXRhLmgKaW5kZXggN2ZlNGM5NTg4MWQ2ODJlM2I2NGQ3OGFjYzJjYmVmMDY3NDc2
YWIzZi4uNTAzY2FkN2NlMTdmNGY4OWU4YzdmZjM2YzUzNjg1MjY2Mjk0NGM4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oCkBAIC0zNyw2ICsz
Nyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFZl
Y3RvcjxzaXplX3Q+PiBOYW1lZEdyaWRMaW5lc01hcDsKK3R5cGVkZWYgSGFzaE1hcDxzaXplX3Qs
IFZlY3RvcjxTdHJpbmc+LCBXVEY6OkludEhhc2g8c2l6ZV90PiwgV1RGOjpVbnNpZ25lZFdpdGha
ZXJvS2V5SGFzaFRyYWl0czxzaXplX3Q+PiBPcmRlcmVkTmFtZWRHcmlkTGluZXNNYXA7CiAKIGNs
YXNzIFN0eWxlR3JpZERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxTdHlsZUdyaWREYXRhPiB7CiBw
dWJsaWM6CkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgU3R5bGVHcmlkRGF0YSYgbykgY29uc3QKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBjb21w
YXJpbmcgdHdvIGhhc2hlcyBkb2Vzbid0IGxvb2sgZ3JlYXQgZm9yIHBlcmZvcm1hbmNlLiBTb21l
dGhpbmcgdG8ga2VlcCBpbiBtaW5kIGdvaW5nIGZvcndhcmQuCi0gICAgICAgIHJldHVybiBtX2dy
aWRDb2x1bW5zID09IG8ubV9ncmlkQ29sdW1ucyAmJiBtX2dyaWRSb3dzID09IG8ubV9ncmlkUm93
cyAmJiBtX2dyaWRBdXRvRmxvdyA9PSBvLm1fZ3JpZEF1dG9GbG93ICYmIG1fZ3JpZEF1dG9Sb3dz
ID09IG8ubV9ncmlkQXV0b1Jvd3MgJiYgbV9ncmlkQXV0b0NvbHVtbnMgPT0gby5tX2dyaWRBdXRv
Q29sdW1ucyAmJiBtX25hbWVkR3JpZENvbHVtbkxpbmVzID09IG8ubV9uYW1lZEdyaWRDb2x1bW5M
aW5lcyAmJiBtX25hbWVkR3JpZFJvd0xpbmVzID09IG8ubV9uYW1lZEdyaWRSb3dMaW5lcyAmJiBt
X25hbWVkR3JpZEFyZWEgPT0gby5tX25hbWVkR3JpZEFyZWEgJiYgbV9uYW1lZEdyaWRBcmVhID09
IG8ubV9uYW1lZEdyaWRBcmVhICYmIG1fbmFtZWRHcmlkQXJlYVJvd0NvdW50ID09IG8ubV9uYW1l
ZEdyaWRBcmVhUm93Q291bnQgJiYgbV9uYW1lZEdyaWRBcmVhQ29sdW1uQ291bnQgPT0gby5tX25h
bWVkR3JpZEFyZWFDb2x1bW5Db3VudDsKKyAgICAgICAgcmV0dXJuIG1fZ3JpZENvbHVtbnMgPT0g
by5tX2dyaWRDb2x1bW5zICYmIG1fZ3JpZFJvd3MgPT0gby5tX2dyaWRSb3dzICYmIG1fZ3JpZEF1
dG9GbG93ID09IG8ubV9ncmlkQXV0b0Zsb3cgJiYgbV9ncmlkQXV0b1Jvd3MgPT0gby5tX2dyaWRB
dXRvUm93cyAmJiBtX2dyaWRBdXRvQ29sdW1ucyA9PSBvLm1fZ3JpZEF1dG9Db2x1bW5zICYmIG1f
bmFtZWRHcmlkQ29sdW1uTGluZXMgPT0gby5tX25hbWVkR3JpZENvbHVtbkxpbmVzICYmIG1fbmFt
ZWRHcmlkUm93TGluZXMgPT0gby5tX25hbWVkR3JpZFJvd0xpbmVzICYmIG1fbmFtZWRHcmlkQXJl
YSA9PSBvLm1fbmFtZWRHcmlkQXJlYSAmJiBtX25hbWVkR3JpZEFyZWEgPT0gby5tX25hbWVkR3Jp
ZEFyZWEgJiYgbV9uYW1lZEdyaWRBcmVhUm93Q291bnQgPT0gby5tX25hbWVkR3JpZEFyZWFSb3dD
b3VudCAmJiBtX25hbWVkR3JpZEFyZWFDb2x1bW5Db3VudCA9PSBvLm1fbmFtZWRHcmlkQXJlYUNv
bHVtbkNvdW50ICYmIG1fb3JkZXJlZE5hbWVkR3JpZFJvd0xpbmVzID09IG8ubV9vcmRlcmVkTmFt
ZWRHcmlkUm93TGluZXMgJiYgbV9vcmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMgPT0gby5tX29y
ZGVyZWROYW1lZEdyaWRDb2x1bW5MaW5lczsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yIT0o
Y29uc3QgU3R5bGVHcmlkRGF0YSYgbykgY29uc3QKQEAgLTYxLDYgKzYyLDkgQEAgcHVibGljOgog
ICAgIE5hbWVkR3JpZExpbmVzTWFwIG1fbmFtZWRHcmlkQ29sdW1uTGluZXM7CiAgICAgTmFtZWRH
cmlkTGluZXNNYXAgbV9uYW1lZEdyaWRSb3dMaW5lczsKIAorICAgIE9yZGVyZWROYW1lZEdyaWRM
aW5lc01hcCBtX29yZGVyZWROYW1lZEdyaWRDb2x1bW5MaW5lczsKKyAgICBPcmRlcmVkTmFtZWRH
cmlkTGluZXNNYXAgbV9vcmRlcmVkTmFtZWRHcmlkUm93TGluZXM7CisKICAgICBHcmlkQXV0b0Zs
b3cgbV9ncmlkQXV0b0Zsb3c7CiAKICAgICBHcmlkVHJhY2tTaXplIG1fZ3JpZEF1dG9Sb3dzOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGYyNGIyNjEzNTFjY2ZhMGQ3OTM5NmZmOTEzYjlhZTVkM2JhNmE4MWMuLmY5NzM5N2Ex
MmM3YWRhNDIyM2E4NDFlMTZhODM5NDE3MzllZDYwNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxNC0wMS0yOSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBnZXRDb21wdXRlZFN0eWxlKCkgbm90IHVzaW5nIGF1
dGhvcidzIG9yZGVyIHdoZW4gc2hvd2luZyBuYW1lZCBncmlkIGxpbmVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHcmlkIGxpbmUgbmFtZXMgYXJlIG5v
dyBzaG93biB1c2luZyB0aGUgZXhhY3Qgc2FtZSBvcmRlciBhcyB0aGUgb25lIHVzZWQgaW4gdGhl
IENTUy4KKworICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZS1n
ZXQtc2V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9uYW1l
ZC1ncmlkLWxpbmUtZ2V0LXNldC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0
L25vbi1uYW1lZC1ncmlkLWxpbmUtZ2V0LXNldC1leHBlY3RlZC50eHQ6CisKIDIwMTQtMDItMTEg
IFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NT
UyBHcmlkIExheW91dF0gU3VwcG9ydCBjYWxjKCkgYnJlYWR0aCBzaXplIHR5cGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVkLWdyaWQtbGluZS1nZXQt
c2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVk
LWdyaWQtbGluZS1nZXQtc2V0LWV4cGVjdGVkLnR4dAppbmRleCAwZjVmMWFjN2RlYTQ3MDYyYmNh
YzZkZTUwZTc5ZWZmZDNiZWE2N2YxLi5jYTYxMGJkOGU5YmI1YjQwMDc5ZjFlYjJlYTU5MzljNTVi
N2Q4Nzg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9uYW1l
ZC1ncmlkLWxpbmUtZ2V0LXNldC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MtZ3JpZC1sYXlvdXQvbmFtZWQtZ3JpZC1saW5lLWdldC1zZXQtZXhwZWN0ZWQudHh0CkBAIC0x
NCw5ICsxNCw5IEBAIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhBdXRvV2l0
aENoaWxkcmVuRWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsCiBQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGdyaWRXaXRoQXV0b1dpdGhDaGlsZHJlbkVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtcm93cycpIGlzICIyMnB4IGxhc3QiCiBQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRXaXRoTWluTWF4LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiZmlyc3QgODBweCIKIFBB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhNaW5NYXgsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtcm93cycpIGlzICIzMDBweCBsYXN0IgotUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aEZpeGVkTXVsdGlwbGUsICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICJuYXYgZmly
c3QgMTBweCBsYXN0IgotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aEZpeGVk
TXVsdGlwbGUsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtcm93
cycpIGlzICJuYXYgZmlyc3QgMTVweCBsYXN0IgotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShncmlkV2l0aFBlcmNlbnRhZ2VTYW1lU3RyaW5nTXVsdGlwbGVUaW1lcywgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIm5hdiBmaXJzdCA4
MHB4IG5hdiAxMjBweCBsYXN0IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0
aEZpeGVkTXVsdGlwbGUsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxh
dGUtY29sdW1ucycpIGlzICJmaXJzdCBuYXYgMTBweCBsYXN0IgorUEFTUyB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShncmlkV2l0aEZpeGVkTXVsdGlwbGUsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtdGVtcGxhdGUtcm93cycpIGlzICJmaXJzdCBuYXYgMTVweCBsYXN0IgorUEFT
UyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aFBlcmNlbnRhZ2VTYW1lU3RyaW5nTXVs
dGlwbGVUaW1lcywgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zJykgaXMgImZpcnN0IG5hdiA4MHB4IG5hdiAxMjBweCBsYXN0IgogUEFTUyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aFBlcmNlbnRhZ2VTYW1lU3RyaW5nTXVsdGlwbGVUaW1l
cywgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dzJykgaXMg
ImZpcnN0IG5hdjIgMTUwcHggbmF2MiA0NTBweCBsYXN0IgogCiBUZXN0IGdldHRpbmcgYW5kIHNl
dHRpbmcgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMgYW5kIC13ZWJraXQtZ3JpZC10ZW1w
bGF0ZS1yb3dzIHRocm91Z2ggSlMKQEAgLTU2LDExICs1NiwxMSBAQCBQQVNTIGdldENvbXB1dGVk
U3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0
ZS1jb2x1bQogUEFTUyBlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRUZW1wbGF0ZUNvbHVtbnMgaXMg
ImZpcnN0IG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCAtd2Via2l0LW1heC1jb250ZW50KSIK
IFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1ncmlkLXRlbXBsYXRlLXJvd3MnKSBpcyAiMHB4IGxhc3QiCiBQQVNTIGVsZW1lbnQuc3R5
bGUud2Via2l0R3JpZFRlbXBsYXRlUm93cyBpcyAibWlubWF4KC13ZWJraXQtbWF4LWNvbnRlbnQs
IC13ZWJraXQtbWluLWNvbnRlbnQpIGxhc3QiCi1QQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykg
aXMgIm5hdiBmaXJzdCAwcHggbGFzdCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAn
JykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAi
Zmlyc3QgbmF2IDBweCBsYXN0IgogUEFTUyBlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRUZW1wbGF0
ZUNvbHVtbnMgaXMgImZpcnN0IG5hdiBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtp
dC1tYXgtY29udGVudCkgbGFzdCIKLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJyku
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLXJvd3MnKSBpcyAibmF2IGZp
cnN0IDBweCBsYXN0IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtcm93cycpIGlzICJmaXJzdCBuYXYgMHB4
IGxhc3QiCiBQQVNTIGVsZW1lbnQuc3R5bGUud2Via2l0R3JpZFRlbXBsYXRlUm93cyBpcyAiZmly
c3QgbmF2IG1pbm1heCgtd2Via2l0LW1heC1jb250ZW50LCAtd2Via2l0LW1pbi1jb250ZW50KSBs
YXN0IgotUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICJuYXYgZmlyc3QgMHB4IG5hdiAw
cHggbGFzdCIKK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAiZmlyc3QgbmF2IDBweCBu
YXYgMHB4IGxhc3QiCiBQQVNTIGVsZW1lbnQuc3R5bGUud2Via2l0R3JpZFRlbXBsYXRlQ29sdW1u
cyBpcyAiZmlyc3QgbmF2IG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCAtd2Via2l0LW1heC1j
b250ZW50KSBuYXYgYXV0byBsYXN0IgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtcm93cycpIGlzICJmaXJz
dCBuYXYyIDBweCBuYXYyIDE1cHggbGFzdCIKIFBBU1MgZWxlbWVudC5zdHlsZS53ZWJraXRHcmlk
VGVtcGxhdGVSb3dzIGlzICJmaXJzdCBuYXYyIG1pbm1heCgtd2Via2l0LW1heC1jb250ZW50LCAt
d2Via2l0LW1pbi1jb250ZW50KSBuYXYyIG1pbm1heCgxMHB4LCAxNXB4KSBsYXN0IgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvbmFtZWQtZ3JpZC1saW5lLWdl
dC1zZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25hbWVkLWdyaWQt
bGluZS1nZXQtc2V0Lmh0bWwKaW5kZXggYTljMTk3MWM1YmRlMmQxNmFmNjM1YjljZmMwMGYyNDAz
OTQ5ZDk1NC4uOGJiNDBmNzRiYmYzYTk0M2RkYTJjNWE5MDI3MTA5NGI4MmM1NmJlMiAxMDA3NTUK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvbmFtZWQtZ3JpZC1saW5lLWdl
dC1zZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9uYW1lZC1n
cmlkLWxpbmUtZ2V0LXNldC5odG1sCkBAIC02NSw4ICs2NSw4IEBAIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKICAgICB0ZXN0R3JpZFRlbXBsYXRlc1ZhbHVlcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZ3JpZFdpdGhBdXRvRWxlbWVudCIpLCAiZmlyc3QgMHB4IiwgIjBweCBsYXN0Iik7CiAgICAg
dGVzdEdyaWRUZW1wbGF0ZXNWYWx1ZXMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRXaXRo
QXV0b1dpdGhDaGlsZHJlbkVsZW1lbnQiKSwgImZpcnN0IDc3cHgiLCAiMjJweCBsYXN0Iik7CiAg
ICAgdGVzdEdyaWRUZW1wbGF0ZXNWYWx1ZXMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRX
aXRoTWluTWF4IiksICJmaXJzdCA4MHB4IiwgIjMwMHB4IGxhc3QiKTsKLSAgICB0ZXN0R3JpZFRl
bXBsYXRlc1ZhbHVlcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZFdpdGhGaXhlZE11bHRp
cGxlIiksICJuYXYgZmlyc3QgMTBweCBsYXN0IiwgIm5hdiBmaXJzdCAxNXB4IGxhc3QiKTsKLSAg
ICB0ZXN0R3JpZFRlbXBsYXRlc1ZhbHVlcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZFdp
dGhQZXJjZW50YWdlU2FtZVN0cmluZ011bHRpcGxlVGltZXMiKSwgIm5hdiBmaXJzdCA4MHB4IG5h
diAxMjBweCBsYXN0IiwgImZpcnN0IG5hdjIgMTUwcHggbmF2MiA0NTBweCBsYXN0Iik7CisgICAg
dGVzdEdyaWRUZW1wbGF0ZXNWYWx1ZXMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRXaXRo
Rml4ZWRNdWx0aXBsZSIpLCAiZmlyc3QgbmF2IDEwcHggbGFzdCIsICJmaXJzdCBuYXYgMTVweCBs
YXN0Iik7CisgICAgdGVzdEdyaWRUZW1wbGF0ZXNWYWx1ZXMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImdyaWRXaXRoUGVyY2VudGFnZVNhbWVTdHJpbmdNdWx0aXBsZVRpbWVzIiksICJmaXJzdCBu
YXYgODBweCBuYXYgMTIwcHggbGFzdCIsICJmaXJzdCBuYXYyIDE1MHB4IG5hdjIgNDUwcHggbGFz
dCIpOwogCiAgICAgZGVidWcoIiIpOwogICAgIGRlYnVnKCJUZXN0IGdldHRpbmcgYW5kIHNldHRp
bmcgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMgYW5kIC13ZWJraXQtZ3JpZC10ZW1wbGF0
ZS1yb3dzIHRocm91Z2ggSlMiKTsKQEAgLTc5LDggKzc5LDggQEAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogICAgIHRlc3RHcmlkVGVtcGxhdGVzU2V0SlNWYWx1ZXMoIidmaXJzdCcgbWlubWF4KDIy
ZW0sIC13ZWJraXQtbWF4LWNvbnRlbnQpIiwgIm1pbm1heCgtd2Via2l0LW1heC1jb250ZW50LCA1
ZW0pICdsYXN0JyIsICJmaXJzdCAyMjBweCIsICI1MHB4IGxhc3QiLCAiZmlyc3QgbWlubWF4KDIy
ZW0sIC13ZWJraXQtbWF4LWNvbnRlbnQpIiwgIm1pbm1heCgtd2Via2l0LW1heC1jb250ZW50LCA1
ZW0pIGxhc3QiKTsKICAgICB0ZXN0R3JpZFRlbXBsYXRlc1NldEpTVmFsdWVzKCInZmlyc3QnIG1p
bm1heCgyMmVtLCAtd2Via2l0LW1pbi1jb250ZW50KSIsICJtaW5tYXgoLXdlYmtpdC1taW4tY29u
dGVudCwgNWVtKSAnbGFzdCciLCAiZmlyc3QgMjIwcHgiLCAiNTBweCBsYXN0IiwgImZpcnN0IG1p
bm1heCgyMmVtLCAtd2Via2l0LW1pbi1jb250ZW50KSIsICJtaW5tYXgoLXdlYmtpdC1taW4tY29u
dGVudCwgNWVtKSBsYXN0Iik7CiAgICAgdGVzdEdyaWRUZW1wbGF0ZXNTZXRKU1ZhbHVlcygiJ2Zp
cnN0JyBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtpdC1tYXgtY29udGVudCkiLCAi
bWlubWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIC13ZWJraXQtbWluLWNvbnRlbnQpICdsYXN0JyIs
ICJmaXJzdCAwcHgiLCAiMHB4IGxhc3QiLCAiZmlyc3QgbWlubWF4KC13ZWJraXQtbWluLWNvbnRl
bnQsIC13ZWJraXQtbWF4LWNvbnRlbnQpIiwgIm1pbm1heCgtd2Via2l0LW1heC1jb250ZW50LCAt
d2Via2l0LW1pbi1jb250ZW50KSBsYXN0Iik7Ci0gICAgdGVzdEdyaWRUZW1wbGF0ZXNTZXRKU1Zh
bHVlcygiJ2ZpcnN0JyAnbmF2JyBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtpdC1t
YXgtY29udGVudCkgJ2xhc3QnIiwgIidmaXJzdCcgJ25hdicgbWlubWF4KC13ZWJraXQtbWF4LWNv
bnRlbnQsIC13ZWJraXQtbWluLWNvbnRlbnQpICdsYXN0JyIsICJuYXYgZmlyc3QgMHB4IGxhc3Qi
LCAibmF2IGZpcnN0IDBweCBsYXN0IiwgImZpcnN0IG5hdiBtaW5tYXgoLXdlYmtpdC1taW4tY29u
dGVudCwgLXdlYmtpdC1tYXgtY29udGVudCkgbGFzdCIsICJmaXJzdCBuYXYgbWlubWF4KC13ZWJr
aXQtbWF4LWNvbnRlbnQsIC13ZWJraXQtbWluLWNvbnRlbnQpIGxhc3QiKTsKLSAgICB0ZXN0R3Jp
ZFRlbXBsYXRlc1NldEpTVmFsdWVzKCInZmlyc3QnICduYXYnIG1pbm1heCgtd2Via2l0LW1pbi1j
b250ZW50LCAtd2Via2l0LW1heC1jb250ZW50KSAnbmF2JyBhdXRvICdsYXN0JyIsICInZmlyc3Qn
ICduYXYyJyBtaW5tYXgoLXdlYmtpdC1tYXgtY29udGVudCwgLXdlYmtpdC1taW4tY29udGVudCkg
J25hdjInIG1pbm1heCgxMHB4LCAxNXB4KSAnbGFzdCciLCAibmF2IGZpcnN0IDBweCBuYXYgMHB4
IGxhc3QiLCAiZmlyc3QgbmF2MiAwcHggbmF2MiAxNXB4IGxhc3QiLCAiZmlyc3QgbmF2IG1pbm1h
eCgtd2Via2l0LW1pbi1jb250ZW50LCAtd2Via2l0LW1heC1jb250ZW50KSBuYXYgYXV0byBsYXN0
IiwgImZpcnN0IG5hdjIgbWlubWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIC13ZWJraXQtbWluLWNv
bnRlbnQpIG5hdjIgbWlubWF4KDEwcHgsIDE1cHgpIGxhc3QiKTsKKyAgICB0ZXN0R3JpZFRlbXBs
YXRlc1NldEpTVmFsdWVzKCInZmlyc3QnICduYXYnIG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50
LCAtd2Via2l0LW1heC1jb250ZW50KSAnbGFzdCciLCAiJ2ZpcnN0JyAnbmF2JyBtaW5tYXgoLXdl
YmtpdC1tYXgtY29udGVudCwgLXdlYmtpdC1taW4tY29udGVudCkgJ2xhc3QnIiwgImZpcnN0IG5h
diAwcHggbGFzdCIsICJmaXJzdCBuYXYgMHB4IGxhc3QiLCAiZmlyc3QgbmF2IG1pbm1heCgtd2Vi
a2l0LW1pbi1jb250ZW50LCAtd2Via2l0LW1heC1jb250ZW50KSBsYXN0IiwgImZpcnN0IG5hdiBt
aW5tYXgoLXdlYmtpdC1tYXgtY29udGVudCwgLXdlYmtpdC1taW4tY29udGVudCkgbGFzdCIpOwor
ICAgIHRlc3RHcmlkVGVtcGxhdGVzU2V0SlNWYWx1ZXMoIidmaXJzdCcgJ25hdicgbWlubWF4KC13
ZWJraXQtbWluLWNvbnRlbnQsIC13ZWJraXQtbWF4LWNvbnRlbnQpICduYXYnIGF1dG8gJ2xhc3Qn
IiwgIidmaXJzdCcgJ25hdjInIG1pbm1heCgtd2Via2l0LW1heC1jb250ZW50LCAtd2Via2l0LW1p
bi1jb250ZW50KSAnbmF2MicgbWlubWF4KDEwcHgsIDE1cHgpICdsYXN0JyIsICJmaXJzdCBuYXYg
MHB4IG5hdiAwcHggbGFzdCIsICJmaXJzdCBuYXYyIDBweCBuYXYyIDE1cHggbGFzdCIsICJmaXJz
dCBuYXYgbWlubWF4KC13ZWJraXQtbWluLWNvbnRlbnQsIC13ZWJraXQtbWF4LWNvbnRlbnQpIG5h
diBhdXRvIGxhc3QiLCAiZmlyc3QgbmF2MiBtaW5tYXgoLXdlYmtpdC1tYXgtY29udGVudCwgLXdl
YmtpdC1taW4tY29udGVudCkgbmF2MiBtaW5tYXgoMTBweCwgMTVweCkgbGFzdCIpOwogICAgIHRl
c3RHcmlkVGVtcGxhdGVzU2V0SlNWYWx1ZXMoIidmb28nICdiYXInIGF1dG8gJ2ZvbycgYXV0byAn
YmFyJyIsICInZm9vJyAnYmFyJyBhdXRvICdmb28nIGF1dG8gJ2JhciciLCAiZm9vIGJhciAwcHgg
Zm9vIDBweCBiYXIiLCAiZm9vIGJhciAwcHggZm9vIDBweCBiYXIiLCAiZm9vIGJhciBhdXRvIGZv
byBhdXRvIGJhciIsICJmb28gYmFyIGF1dG8gZm9vIGF1dG8gYmFyIik7CiAKICAgICBkZWJ1Zygi
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ub24tbmFt
ZWQtZ3JpZC1saW5lLWdldC1zZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvbm9uLW5hbWVkLWdyaWQtbGluZS1nZXQtc2V0LWV4cGVjdGVkLnR4dAppbmRl
eCAyYjA2NTQ1ZTlkZTM3MmRlNjA1OWQwMGRmYjQ0NTNmOWFkYzQwZDBhLi42YTgzM2ZhZDM2OGE1
YzNjYWZkNTkyYzg4Y2JhZjA3YTNmYmMzYmEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1ncmlkLWxheW91dC9ub24tbmFtZWQtZ3JpZC1saW5lLWdldC1zZXQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25vbi1uYW1lZC1ncmlkLWxp
bmUtZ2V0LXNldC1leHBlY3RlZC50eHQKQEAgLTEyLDkgKzEyLDkgQEAgUEFTUyB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShncmlkV2l0aEF1dG9FbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC0KIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhBdXRvRWxlbWVu
dCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dzJykgaXMg
ImF1dG8gbGFzdCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZFdpdGhNaW5NYXgs
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlz
ICJmaXJzdCBtaW5tYXgoMTAlLCAxNXB4KSIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
Z3JpZFdpdGhNaW5NYXgsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxh
dGUtcm93cycpIGlzICJtaW5tYXgoMjBweCwgNTAlKSBsYXN0IgotUEFTUyB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShncmlkV2l0aEZpeGVkTXVsdGlwbGUsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICJuYXYgZmlyc3QgMTBweCBsYXN0Igot
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aEZpeGVkTXVsdGlwbGUsICcnKS5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtcm93cycpIGlzICJuYXYgZmly
c3QgMTVweCBsYXN0IgotUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aFBlcmNl
bnRhZ2VTYW1lU3RyaW5nTXVsdGlwbGVUaW1lcywgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJr
aXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgIm5hdiBmaXJzdCAxMCUgbmF2IDE1JSBsYXN0
IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0aEZpeGVkTXVsdGlwbGUsICcn
KS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICJm
aXJzdCBuYXYgMTBweCBsYXN0IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkV2l0
aEZpeGVkTXVsdGlwbGUsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxh
dGUtcm93cycpIGlzICJmaXJzdCBuYXYgMTVweCBsYXN0IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShncmlkV2l0aFBlcmNlbnRhZ2VTYW1lU3RyaW5nTXVsdGlwbGVUaW1lcywgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgImZpcnN0
IG5hdiAxMCUgbmF2IDE1JSBsYXN0IgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlk
V2l0aFBlcmNlbnRhZ2VTYW1lU3RyaW5nTXVsdGlwbGVUaW1lcywgJycpLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dzJykgaXMgImZpcnN0IG5hdjIgMjUlIG5hdjIg
NzUlIGxhc3QiCiAKIFRlc3QgZ2V0dGluZyBhbmQgc2V0dGluZyBncmlkLXRlbXBsYXRlLWNvbHVt
bnMgYW5kIGdyaWQtdGVtcGxhdGUtcm93cyB0aHJvdWdoIEpTCkBAIC01NCwxMSArNTQsMTEgQEAg
UEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Vi
a2l0LWdyaWQtdGVtcGxhdGUtY29sdW0KIFBBU1MgZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkVGVt
cGxhdGVDb2x1bW5zIGlzICJmaXJzdCBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtp
dC1tYXgtY29udGVudCkiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dzJykgaXMgIm1pbm1heCgtd2Vi
a2l0LW1heC1jb250ZW50LCAtd2Via2l0LW1pbi1jb250ZW50KSBsYXN0IgogUEFTUyBlbGVtZW50
LnN0eWxlLndlYmtpdEdyaWRUZW1wbGF0ZVJvd3MgaXMgIm1pbm1heCgtd2Via2l0LW1heC1jb250
ZW50LCAtd2Via2l0LW1pbi1jb250ZW50KSBsYXN0IgotUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1u
cycpIGlzICJuYXYgZmlyc3QgbWlubWF4KC13ZWJraXQtbWluLWNvbnRlbnQsIC13ZWJraXQtbWF4
LWNvbnRlbnQpIGxhc3QiCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFBy
b3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJykgaXMgImZpcnN0IG5h
diBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtpdC1tYXgtY29udGVudCkgbGFzdCIK
IFBBU1MgZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkVGVtcGxhdGVDb2x1bW5zIGlzICJmaXJzdCBu
YXYgbWlubWF4KC13ZWJraXQtbWluLWNvbnRlbnQsIC13ZWJraXQtbWF4LWNvbnRlbnQpIGxhc3Qi
Ci1QQVNTIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dzJykgaXMgIm5hdiBmaXJzdCBtaW5tYXgoLXdlYmtpdC1t
YXgtY29udGVudCwgLXdlYmtpdC1taW4tY29udGVudCkgbGFzdCIKK1BBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRl
LXJvd3MnKSBpcyAiZmlyc3QgbmF2IG1pbm1heCgtd2Via2l0LW1heC1jb250ZW50LCAtd2Via2l0
LW1pbi1jb250ZW50KSBsYXN0IgogUEFTUyBlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRUZW1wbGF0
ZVJvd3MgaXMgImZpcnN0IG5hdiBtaW5tYXgoLXdlYmtpdC1tYXgtY29udGVudCwgLXdlYmtpdC1t
aW4tY29udGVudCkgbGFzdCIKLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnMnKSBpcyAibmF2IGZp
cnN0IG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCAtd2Via2l0LW1heC1jb250ZW50KSBuYXYg
YXV0byBsYXN0IgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1ucycpIGlzICJmaXJzdCBuYXYgbWlu
bWF4KC13ZWJraXQtbWluLWNvbnRlbnQsIC13ZWJraXQtbWF4LWNvbnRlbnQpIG5hdiBhdXRvIGxh
c3QiCiBQQVNTIGVsZW1lbnQuc3R5bGUud2Via2l0R3JpZFRlbXBsYXRlQ29sdW1ucyBpcyAiZmly
c3QgbmF2IG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCAtd2Via2l0LW1heC1jb250ZW50KSBu
YXYgYXV0byBsYXN0IgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtdGVtcGxhdGUtcm93cycpIGlzICJmaXJzdCBuYXYyIG1p
bm1heCgtd2Via2l0LW1heC1jb250ZW50LCAtd2Via2l0LW1pbi1jb250ZW50KSBuYXYyIG1pbm1h
eCgxMHB4LCAxNXB4KSBsYXN0IgogUEFTUyBlbGVtZW50LnN0eWxlLndlYmtpdEdyaWRUZW1wbGF0
ZVJvd3MgaXMgImZpcnN0IG5hdjIgbWlubWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIC13ZWJraXQt
bWluLWNvbnRlbnQpIG5hdjIgbWlubWF4KDEwcHgsIDE1cHgpIGxhc3QiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ub24tbmFtZWQtZ3JpZC1saW5lLWdldC1z
ZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25vbi1uYW1lZC1ncmlk
LWxpbmUtZ2V0LXNldC5odG1sCmluZGV4IDBlYTdlM2VjNDUyZGNlMWNjZDliZDMyNWRlYzEyMGVk
ODcwNDE5MjcuLjQ5Y2ExMzc1ZTg2YjI4ODM4OTRmZTZlNzU5MzU4MjNhOWIwMTBmZWQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25vbi1uYW1lZC1ncmlkLWxp
bmUtZ2V0LXNldC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L25v
bi1uYW1lZC1ncmlkLWxpbmUtZ2V0LXNldC5odG1sCkBAIC02MCw4ICs2MCw4IEBAIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKICAgICB0ZXN0R3JpZFRlbXBsYXRlc1ZhbHVlcyhkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZ3JpZFdpdGhQZXJjZW50RWxlbWVudCIpLCAiNTMlIGxhc3QiLCAiMjclIGxh
c3QiKTsKICAgICB0ZXN0R3JpZFRlbXBsYXRlc1ZhbHVlcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZ3JpZFdpdGhBdXRvRWxlbWVudCIpLCAiZmlyc3QgYXV0byIsICJhdXRvIGxhc3QiKTsKICAg
ICB0ZXN0R3JpZFRlbXBsYXRlc1ZhbHVlcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZFdp
dGhNaW5NYXgiKSwgImZpcnN0IG1pbm1heCgxMCUsIDE1cHgpIiwgIm1pbm1heCgyMHB4LCA1MCUp
IGxhc3QiKTsKLSAgICB0ZXN0R3JpZFRlbXBsYXRlc1ZhbHVlcyhkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZ3JpZFdpdGhGaXhlZE11bHRpcGxlIiksICJuYXYgZmlyc3QgMTBweCBsYXN0IiwgIm5h
diBmaXJzdCAxNXB4IGxhc3QiKTsKLSAgICB0ZXN0R3JpZFRlbXBsYXRlc1ZhbHVlcyhkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZ3JpZFdpdGhQZXJjZW50YWdlU2FtZVN0cmluZ011bHRpcGxlVGlt
ZXMiKSwgIm5hdiBmaXJzdCAxMCUgbmF2IDE1JSBsYXN0IiwgImZpcnN0IG5hdjIgMjUlIG5hdjIg
NzUlIGxhc3QiKTsKKyAgICB0ZXN0R3JpZFRlbXBsYXRlc1ZhbHVlcyhkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZ3JpZFdpdGhGaXhlZE11bHRpcGxlIiksICJmaXJzdCBuYXYgMTBweCBsYXN0Iiwg
ImZpcnN0IG5hdiAxNXB4IGxhc3QiKTsKKyAgICB0ZXN0R3JpZFRlbXBsYXRlc1ZhbHVlcyhkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZFdpdGhQZXJjZW50YWdlU2FtZVN0cmluZ011bHRpcGxl
VGltZXMiKSwgImZpcnN0IG5hdiAxMCUgbmF2IDE1JSBsYXN0IiwgImZpcnN0IG5hdjIgMjUlIG5h
djIgNzUlIGxhc3QiKTsKIAogICAgIGRlYnVnKCIiKTsKICAgICBkZWJ1ZygiVGVzdCBnZXR0aW5n
IGFuZCBzZXR0aW5nIGdyaWQtdGVtcGxhdGUtY29sdW1ucyBhbmQgZ3JpZC10ZW1wbGF0ZS1yb3dz
IHRocm91Z2ggSlMiKTsKQEAgLTc0LDggKzc0LDggQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQog
ICAgIHRlc3ROb25HcmlkVGVtcGxhdGVzU2V0SlNWYWx1ZXMoIidmaXJzdCcgbWlubWF4KDIyZW0s
IC13ZWJraXQtbWF4LWNvbnRlbnQpIiwgIm1pbm1heCgtd2Via2l0LW1heC1jb250ZW50LCA1ZW0p
ICdsYXN0JyIsICJmaXJzdCBtaW5tYXgoMjIwcHgsIC13ZWJraXQtbWF4LWNvbnRlbnQpIiwgIm1p
bm1heCgtd2Via2l0LW1heC1jb250ZW50LCA1MHB4KSBsYXN0IiwgImZpcnN0IG1pbm1heCgyMmVt
LCAtd2Via2l0LW1heC1jb250ZW50KSIsICJtaW5tYXgoLXdlYmtpdC1tYXgtY29udGVudCwgNWVt
KSBsYXN0IiwgImZpcnN0IG1pbm1heCgyMjBweCwgLXdlYmtpdC1tYXgtY29udGVudCkiLCAibWlu
bWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIDUwcHgpIGxhc3QiLCAibWlubWF4KC13ZWJraXQtbWF4
LWNvbnRlbnQsIDUwcHgpIGxhc3QiKTsKICAgICB0ZXN0Tm9uR3JpZFRlbXBsYXRlc1NldEpTVmFs
dWVzKCInZmlyc3QnIG1pbm1heCgyMmVtLCAtd2Via2l0LW1pbi1jb250ZW50KSIsICJtaW5tYXgo
LXdlYmtpdC1taW4tY29udGVudCwgNWVtKSAnbGFzdCciLCAiZmlyc3QgbWlubWF4KDIyMHB4LCAt
d2Via2l0LW1pbi1jb250ZW50KSIsICJtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgNTBweCkg
bGFzdCIsICJmaXJzdCBtaW5tYXgoMjJlbSwgLXdlYmtpdC1taW4tY29udGVudCkiLCAibWlubWF4
KC13ZWJraXQtbWluLWNvbnRlbnQsIDVlbSkgbGFzdCIsICJmaXJzdCBtaW5tYXgoMjIwcHgsIC13
ZWJraXQtbWluLWNvbnRlbnQpIiwgIm1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCA1MHB4KSBs
YXN0IiwgIm1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCA1MHB4KSBsYXN0Iik7CiAgICAgdGVz
dE5vbkdyaWRUZW1wbGF0ZXNTZXRKU1ZhbHVlcygiJ2ZpcnN0JyBtaW5tYXgoLXdlYmtpdC1taW4t
Y29udGVudCwgLXdlYmtpdC1tYXgtY29udGVudCkiLCAibWlubWF4KC13ZWJraXQtbWF4LWNvbnRl
bnQsIC13ZWJraXQtbWluLWNvbnRlbnQpICdsYXN0JyIsICJmaXJzdCBtaW5tYXgoLXdlYmtpdC1t
aW4tY29udGVudCwgLXdlYmtpdC1tYXgtY29udGVudCkiLCAibWlubWF4KC13ZWJraXQtbWF4LWNv
bnRlbnQsIC13ZWJraXQtbWluLWNvbnRlbnQpIGxhc3QiLCAiZmlyc3QgbWlubWF4KC13ZWJraXQt
bWluLWNvbnRlbnQsIC13ZWJraXQtbWF4LWNvbnRlbnQpIiwgIm1pbm1heCgtd2Via2l0LW1heC1j
b250ZW50LCAtd2Via2l0LW1pbi1jb250ZW50KSBsYXN0Iik7Ci0gICAgdGVzdE5vbkdyaWRUZW1w
bGF0ZXNTZXRKU1ZhbHVlcygiJ2ZpcnN0JyAnbmF2JyBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVu
dCwgLXdlYmtpdC1tYXgtY29udGVudCkgJ2xhc3QnIiwgIidmaXJzdCcgJ25hdicgbWlubWF4KC13
ZWJraXQtbWF4LWNvbnRlbnQsIC13ZWJraXQtbWluLWNvbnRlbnQpICdsYXN0JyIsICJuYXYgZmly
c3QgbWlubWF4KC13ZWJraXQtbWluLWNvbnRlbnQsIC13ZWJraXQtbWF4LWNvbnRlbnQpIGxhc3Qi
LCAibmF2IGZpcnN0IG1pbm1heCgtd2Via2l0LW1heC1jb250ZW50LCAtd2Via2l0LW1pbi1jb250
ZW50KSBsYXN0IiwgImZpcnN0IG5hdiBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtp
dC1tYXgtY29udGVudCkgbGFzdCIsICJmaXJzdCBuYXYgbWlubWF4KC13ZWJraXQtbWF4LWNvbnRl
bnQsIC13ZWJraXQtbWluLWNvbnRlbnQpIGxhc3QiKTsKLSAgICB0ZXN0Tm9uR3JpZFRlbXBsYXRl
c1NldEpTVmFsdWVzKCInZmlyc3QnICduYXYnIG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCAt
d2Via2l0LW1heC1jb250ZW50KSAnbmF2JyBhdXRvICdsYXN0JyIsICInZmlyc3QnICduYXYyJyBt
aW5tYXgoLXdlYmtpdC1tYXgtY29udGVudCwgLXdlYmtpdC1taW4tY29udGVudCkgJ25hdjInIG1p
bm1heCgxMHB4LCAxNXB4KSAnbGFzdCciLCAibmF2IGZpcnN0IG1pbm1heCgtd2Via2l0LW1pbi1j
b250ZW50LCAtd2Via2l0LW1heC1jb250ZW50KSBuYXYgYXV0byBsYXN0IiwgImZpcnN0IG5hdjIg
bWlubWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIC13ZWJraXQtbWluLWNvbnRlbnQpIG5hdjIgbWlu
bWF4KDEwcHgsIDE1cHgpIGxhc3QiLCAiZmlyc3QgbmF2IG1pbm1heCgtd2Via2l0LW1pbi1jb250
ZW50LCAtd2Via2l0LW1heC1jb250ZW50KSBuYXYgYXV0byBsYXN0IiwgImZpcnN0IG5hdjIgbWlu
bWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIC13ZWJraXQtbWluLWNvbnRlbnQpIG5hdjIgbWlubWF4
KDEwcHgsIDE1cHgpIGxhc3QiKTs7CisgICAgdGVzdE5vbkdyaWRUZW1wbGF0ZXNTZXRKU1ZhbHVl
cygiJ2ZpcnN0JyAnbmF2JyBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtpdC1tYXgt
Y29udGVudCkgJ2xhc3QnIiwgIidmaXJzdCcgJ25hdicgbWlubWF4KC13ZWJraXQtbWF4LWNvbnRl
bnQsIC13ZWJraXQtbWluLWNvbnRlbnQpICdsYXN0JyIsICJmaXJzdCBuYXYgbWlubWF4KC13ZWJr
aXQtbWluLWNvbnRlbnQsIC13ZWJraXQtbWF4LWNvbnRlbnQpIGxhc3QiLCAiZmlyc3QgbmF2IG1p
bm1heCgtd2Via2l0LW1heC1jb250ZW50LCAtd2Via2l0LW1pbi1jb250ZW50KSBsYXN0IiwgImZp
cnN0IG5hdiBtaW5tYXgoLXdlYmtpdC1taW4tY29udGVudCwgLXdlYmtpdC1tYXgtY29udGVudCkg
bGFzdCIsICJmaXJzdCBuYXYgbWlubWF4KC13ZWJraXQtbWF4LWNvbnRlbnQsIC13ZWJraXQtbWlu
LWNvbnRlbnQpIGxhc3QiKTsKKyAgICB0ZXN0Tm9uR3JpZFRlbXBsYXRlc1NldEpTVmFsdWVzKCIn
Zmlyc3QnICduYXYnIG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCAtd2Via2l0LW1heC1jb250
ZW50KSAnbmF2JyBhdXRvICdsYXN0JyIsICInZmlyc3QnICduYXYyJyBtaW5tYXgoLXdlYmtpdC1t
YXgtY29udGVudCwgLXdlYmtpdC1taW4tY29udGVudCkgJ25hdjInIG1pbm1heCgxMHB4LCAxNXB4
KSAnbGFzdCciLCAiZmlyc3QgbmF2IG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCAtd2Via2l0
LW1heC1jb250ZW50KSBuYXYgYXV0byBsYXN0IiwgImZpcnN0IG5hdjIgbWlubWF4KC13ZWJraXQt
bWF4LWNvbnRlbnQsIC13ZWJraXQtbWluLWNvbnRlbnQpIG5hdjIgbWlubWF4KDEwcHgsIDE1cHgp
IGxhc3QiLCAiZmlyc3QgbmF2IG1pbm1heCgtd2Via2l0LW1pbi1jb250ZW50LCAtd2Via2l0LW1h
eC1jb250ZW50KSBuYXYgYXV0byBsYXN0IiwgImZpcnN0IG5hdjIgbWlubWF4KC13ZWJraXQtbWF4
LWNvbnRlbnQsIC13ZWJraXQtbWluLWNvbnRlbnQpIG5hdjIgbWlubWF4KDEwcHgsIDE1cHgpIGxh
c3QiKTs7CiAgICAgdGVzdE5vbkdyaWRUZW1wbGF0ZXNTZXRKU1ZhbHVlcygiJ2ZvbycgJ2Jhcicg
YXV0byAnZm9vJyBhdXRvICdiYXInIiwgIidmb28nICdiYXInIGF1dG8gJ2ZvbycgYXV0byAnYmFy
JyIsICJmb28gYmFyIGF1dG8gZm9vIGF1dG8gYmFyIiwgImZvbyBiYXIgYXV0byBmb28gYXV0byBi
YXIiLCAiZm9vIGJhciBhdXRvIGZvbyBhdXRvIGJhciIsICJmb28gYmFyIGF1dG8gZm9vIGF1dG8g
YmFyIik7CiAKICAgICBkZWJ1ZygiIik7Cg==
</data>
<flag name="review"
          id="248038"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>