<?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>140144</bug_id>
          
          <creation_ts>2015-01-06 13:29:38 -0800</creation_ts>
          <short_desc>AX: Add support for CSS4 :focus-within pseudo</short_desc>
          <delta_ts>2016-06-22 16:35:43 -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>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://drafts.csswg.org/selectors-4/#the-focus-within-pseudo</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Craig">jcraig</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>50167214</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fesch</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1059137</commentid>
    <comment_count>0</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2015-01-06 13:29:38 -0800</bug_when>
    <thetext>AX: Add support for CSS4 :focus-within pseudo
http://dev.w3.org/csswg/selectors-4/#focus-within-pseudo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059138</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-01-06 13:29:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/19389705&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059141</commentid>
    <comment_count>2</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2015-01-06 13:32:41 -0800</bug_when>
    <thetext>This would be a good addition for accessibility and full keyboard access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059142</commentid>
    <comment_count>3</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2015-01-06 13:35:26 -0800</bug_when>
    <thetext>Seems like it&apos;s equivalent to the recently-removed CSS4 subject selector.
&quot;!* *:focus&quot; == &quot;*:focus-within&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204401</commentid>
    <comment_count>4</comment_count>
      <attachid>281810</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-21 20:21:15 -0700</bug_when>
    <thetext>Created attachment 281810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204654</commentid>
    <comment_count>5</comment_count>
      <attachid>281810</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-22 14:04:49 -0700</bug_when>
    <thetext>Comment on attachment 281810
Patch

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

&gt; Source/WebCore/dom/ContainerNode.cpp:108
&gt; -    if (!child.renderer() &amp;&amp; !child.isNamedFlowContentNode() &amp;&amp; !childIsHTMLSlotElement)
&gt; +    bool isElement = is&lt;Element&gt;(child);
&gt; +    if (!child.renderer() &amp;&amp; !childIsHTMLSlotElement
&gt; +        &amp;&amp; !(isElement &amp;&amp; downcast&lt;Element&gt;(child).isNamedFlowContentElement()))

It would have been nicer to do the NamedFlow bit freeing dance separately.

&gt; Source/WebCore/dom/Element.h:761
&gt; +inline void Element::setHasFocusWithin(bool flag)
&gt; +{
&gt; +    setFlag(flag, HasFocusWithin);
&gt; +    if (styleAffectedByFocusWithin())
&gt; +        setNeedsStyleRecalc();
&gt; +}

Would it be sufficient to invalidate only when the flag value changes?

&gt; LayoutTests/fast/css/css-selector-text.html:313
&gt; +testSelectorRoundTrip(&quot;a[b]:default&quot;);
&gt; +testSelectorRoundTrip(&quot;a.b:default&quot;);
&gt; +testSelectorRoundTrip(&quot;a#b:default&quot;);
&gt; +testSelectorRoundTrip(&quot;a[b].c#d:default&quot;);

Is there anything sufficiently complicated here to test the SelectorChecker path?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204657</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-06-22 14:07:13 -0700</bug_when>
    <thetext>&gt; Is there anything sufficiently complicated here to test the SelectorChecker
&gt; path?

Quoted wrong test but the question still applies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204697</commentid>
    <comment_count>7</comment_count>
      <attachid>281878</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-22 15:31:06 -0700</bug_when>
    <thetext>Created attachment 281878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204716</commentid>
    <comment_count>8</comment_count>
      <attachid>281878</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-22 16:35:39 -0700</bug_when>
    <thetext>Comment on attachment 281878
Patch

Clearing flags on attachment: 281878

Committed r202358: &lt;http://trac.webkit.org/changeset/202358&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1204717</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-22 16:35:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281810</attachid>
            <date>2016-06-21 20:21:15 -0700</date>
            <delta_ts>2016-06-22 15:31:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140144-20160621202107.patch</filename>
            <type>text/plain</type>
            <size>50424</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIwMTlhMDhiN2NjMzZj
YTJlN2JhNTdjNTBjNjBiNzZmMDU2MmQ2Zi4uOGYzODUyMjU1ZjBmZTI3MTJlZWRjZTIxNTc0MDBm
YTJlZjYxNDc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE2LTA2LTIxICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBBZGQgc3Vw
cG9ydCBmb3IgQ1NTNCA6Zm9jdXMtd2l0aGluIHBzZXVkbworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzL3BzZXVkby1mb2N1cy13
aXRoaW4tYmFzaWNzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzL3BzZXVkby1mb2N1cy13
aXRoaW4taW5zaWRlLXNoYWRvdy1kb20uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvcHNl
dWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTEuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTIuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9zZWxlY3RvcnMvZm9jdXMtd2l0aGluLXN0eWxlLXVwZGF0ZS5odG1sCisKKyAg
ICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0
b3I6OnNlbGVjdG9yVGV4dCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAgICAg
ICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNo
ZWNrZXI6OmNoZWNrT25lKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENv
bXBhdGliaWxpdHlFbGVtZW50TWFwLmluOgorICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBp
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OmFkZFBzZXVkb0Ns
YXNzVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudE1hdGNoaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50
SGFzRm9jdXNXaXRoaW4pOgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmRlc3Ryb3lSZW5kZXJUcmVlSWZOZWVkZWQpOgorICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6On5FbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldEZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OnVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpzZXRJc05hbWVkRmxvd0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmNsZWFySXNOYW1lZEZsb3dDb250ZW50RWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzZXRTdHlsZUFmZmVjdGVkQnlGb2N1c1dpdGhpbik6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50OjpyYXJlRGF0YVN0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0aGluKToK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJhcmVEYXRhSXNOYW1lZEZsb3dDb250ZW50RWxl
bWVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6Omhhc0ZvY3VzV2l0aGluKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnN0eWxlQWZm
ZWN0ZWRCeUZvY3VzV2l0aGluKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmlzTmFtZWRG
bG93Q29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0SGFzRm9j
dXNXaXRoaW4pOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6c3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpzZXRTdHlsZUFmZmVjdGVkQnlGb2N1c1dp
dGhpbik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OmlzTmFtZWRGbG93Q29u
dGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpzZXRJc05h
bWVkRmxvd0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0
YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6
cmVzZXRDb21wdXRlZFN0eWxlKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6ZmxhZ0hhc0ZvY3VzV2l0aGluKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmlzTmFtZWRGbG93Q29udGVudE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6c2V0SXNOYW1lZEZsb3dDb250ZW50Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpjbGVhcklzTmFtZWRGbG93Q29udGVudE5vZGUpOiBEZWxldGVkLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpjbGVhckNvbnRlbnRFbGVtZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudEVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjp1bnJlZ2lz
dGVyTmFtZWRGbG93Q29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6bmV4dE5vZGVJ
bnNpZGVDb250ZW50RWxlbWVudCk6CisgICAgICAgICogc3R5bGUvUmVuZGVyVHJlZVVwZGF0ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZUVsZW1lbnRS
ZW5kZXJlcik6CisgICAgICAgICogc3R5bGUvU3R5bGVSZWxhdGlvbnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OmNvbW1pdFJlbGF0aW9uc1RvUmVuZGVyU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OmNvbW1pdFJlbGF0aW9ucyk6CisgICAgICAgICogc3R5bGUvU3R5bGVS
ZWxhdGlvbnMuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0
aEVsZW1lbnQpOgorCiAyMDE2LTA2LTE5ICBHYXZpbiAmIEVsbGllIEJhcnJhY2xvdWdoICA8YmFy
cmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGVhZ2VybHkgcmVpZnkgRE9NIFBy
b3RvdHlwZSBwcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCA1NjBj
NDJkY2I0ODMxMjhmZmNmOTZiMzk0NjE2ZjE1NGMxM2RjODM3Li5kZWI0NzBlMjJjZmExN2E4ODgw
YTljZjZhMDk1NzNmMGQyZDZkN2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAg
LTQ5Nyw2ICs0OTcsOSBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dChjb25zdCBT
dHJpbmcmIHJpZ2h0U2lkZSkgY29uc3QKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0NsYXNzRm9jdXM6CiAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpmb2N1
cyIpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NGb2N1c1dpdGhpbjoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0
ZXJhbCgiOmZvY3VzLXdpdGhpbiIpOworICAgICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKICAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
RnV0dXJlOgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6ZnV0dXJlIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDQ4YjJjNjBjZDdiYWUyNjI4MDBmY2EyODI3YjNm
ZGVkMmE2ZjliZjAuLmE4ZmU1OTFhMDdkZDNhYWQ5YWM3NzllOGMwN2U0NGFiZDA0MTE5NTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0xMTIsNiArMTEyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAgICAgUHNldWRvQ2xhc3NIb3ZlciwKICAgICAgICAgICAgIFBzZXVk
b0NsYXNzRHJhZywKICAgICAgICAgICAgIFBzZXVkb0NsYXNzRm9jdXMsCisgICAgICAgICAgICBQ
c2V1ZG9DbGFzc0ZvY3VzV2l0aGluLAogICAgICAgICAgICAgUHNldWRvQ2xhc3NBY3RpdmUsCiAg
ICAgICAgICAgICBQc2V1ZG9DbGFzc0NoZWNrZWQsCiAgICAgICAgICAgICBQc2V1ZG9DbGFzc0Vu
YWJsZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDYwMDcwN2Q5
MDAwN2U1ZjM5YjhkMjI0NzFiNzI5NmVmYzQ5NzkwYzYuLmJjNzQ3ZWE2MTBhMDY4ZmY1M2I2Nzlj
ZjMwNzkzNGNjMjRlYmI2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3Rv
ckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3Bw
CkBAIC05NDQsNiArOTQ0LDkgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKENoZWNr
aW5nQ29udGV4dCYgY2hlY2tpbmdDb250ZXh0LCBjb25zdCBMb2NhbENvbnQKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ZvY3VzOgogICAg
ICAgICAgICAgcmV0dXJuIG1hdGNoZXNGb2N1c1BzZXVkb0NsYXNzKGVsZW1lbnQpOworICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ZvY3VzV2l0aGluOgorICAgICAgICAgICAg
YWRkU3R5bGVSZWxhdGlvbihjaGVja2luZ0NvbnRleHQsIGVsZW1lbnQsIFN0eWxlOjpSZWxhdGlv
bjo6QWZmZWN0ZWRCeUZvY3VzV2l0aGluKTsKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50Lmhh
c0ZvY3VzV2l0aGluKCk7CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzSG92
ZXI6CiAgICAgICAgICAgICBpZiAobV9zdHJpY3RQYXJzaW5nIHx8IGVsZW1lbnQuaXNMaW5rKCkg
fHwgY2FuTWF0Y2hIb3Zlck9yQWN0aXZlSW5RdWlya3NNb2RlKGNvbnRleHQpKSB7CiAgICAgICAg
ICAgICAgICAgYWRkU3R5bGVSZWxhdGlvbihjaGVja2luZ0NvbnRleHQsIGVsZW1lbnQsIFN0eWxl
OjpSZWxhdGlvbjo6QWZmZWN0ZWRCeUhvdmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW4gYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVt
ZW50TWFwLmluCmluZGV4IDcyMjBkMThiOGQ0ZDExMTVhMTk2YzhkYTQyZDE1YjRiZmYwMDA4NzIu
Ljc4ZmRkNWM3MGM3NmNlNjMwMmRiMDU2OTY3OGVhOWMyNTE1YjkxZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1l
bnRNYXAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRD
b21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbgpAQCAtMjUsNiArMjUsNyBAQCBmaXJzdC1sZXR0ZXIs
IFBzZXVkb0NsYXNzVW5rbm93biwgUHNldWRvRWxlbWVudEZpcnN0TGV0dGVyCiBmaXJzdC1saW5l
LCBQc2V1ZG9DbGFzc1Vua25vd24sIFBzZXVkb0VsZW1lbnRGaXJzdExpbmUKIGZpcnN0LW9mLXR5
cGUKIGZvY3VzCitmb2N1cy13aXRoaW4KIGhvcml6b250YWwKIGhvc3QKIGhvdmVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXggMDBhMjEwOTU5MWY1OGY2
YmE3MGI5MTVjYzdhNTgzMTZhZTQ2ZjgwZi4uNjM5ODVkNDI2NTAwNjY1Zjc0ZDFlNGMyMTYzZGJm
MmRkMDhhOTIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29t
cGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNw
cApAQCAtMzIzLDYgKzMyMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZW5lcmF0ZUVsZW1lbnRJ
c1Jvb3QoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzKTsKICAgICB2b2lkIGdlbmVy
YXRlRWxlbWVudElzU2NvcGVSb290KEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcyk7
CiAgICAgdm9pZCBnZW5lcmF0ZUVsZW1lbnRJc1RhcmdldChBc3NlbWJsZXI6Okp1bXBMaXN0JiBm
YWlsdXJlQ2FzZXMpOworICAgIHZvaWQgZ2VuZXJhdGVFbGVtZW50SGFzRm9jdXNXaXRoaW4oQXNz
ZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzKTsKIAogICAgIC8vIEhlbHBlcnMuCiAgICAg
dm9pZCBnZW5lcmF0ZUFkZFN0eWxlUmVsYXRpb25JZlJlc29sdmluZ1N0eWxlKEFzc2VtYmxlcjo6
UmVnaXN0ZXJJRCBlbGVtZW50LCBTdHlsZTo6UmVsYXRpb246OlR5cGUsIE9wdGlvbmFsPEFzc2Vt
Ymxlcjo6UmVnaXN0ZXJJRD4gdmFsdWUgPSB7IH0pOwpAQCAtNjc0LDYgKzY3NSw3IEBAIHN0YXRp
YyBpbmxpbmUgRnVuY3Rpb25UeXBlIGFkZFBzZXVkb0NsYXNzVHlwZShjb25zdCBDU1NTZWxlY3Rv
ciYgc2VsZWN0b3IsIFNlbGVjCiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYXN0
Q2hpbGQ6CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NPbmx5Q2hpbGQ6CiAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NQbGFjZWhvbGRlclNob3duOgorICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRm9jdXNXaXRoaW46CiAgICAgICAgIGZyYWdtZW50LnBz
ZXVkb0NsYXNzZXMuYWRkKHR5cGUpOwogICAgICAgICBpZiAoc2VsZWN0b3JDb250ZXh0ID09IFNl
bGVjdG9yQ29udGV4dDo6UXVlcnlTZWxlY3RvcikKICAgICAgICAgICAgIHJldHVybiBGdW5jdGlv
blR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKQEAgLTI1NzgsNiArMjU4MCw5IEBAIHZvaWQg
U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRNYXRjaGluZyhBc3NlbWJsZXI6
Okp1bXBMaXN0JiBtYXRjaGluCiAgICAgaWYgKGZyYWdtZW50LnBzZXVkb0NsYXNzZXMuY29udGFp
bnMoQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVGFyZ2V0KSkKICAgICAgICAgZ2VuZXJhdGVFbGVt
ZW50SXNUYXJnZXQobWF0Y2hpbmdQb3N0VGFnTmFtZUZhaWx1cmVDYXNlcyk7CiAKKyAgICBpZiAo
ZnJhZ21lbnQucHNldWRvQ2xhc3Nlcy5jb250YWlucyhDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NG
b2N1c1dpdGhpbikpCisgICAgICAgIGdlbmVyYXRlRWxlbWVudEhhc0ZvY3VzV2l0aGluKG1hdGNo
aW5nUG9zdFRhZ05hbWVGYWlsdXJlQ2FzZXMpOworCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGZyYWdtZW50LnVub3B0aW1pemVkUHNldWRvQ2xhc3Nlcy5zaXplKCk7ICsraSkKICAgICAg
ICAgZ2VuZXJhdGVFbGVtZW50RnVuY3Rpb25DYWxsVGVzdChtYXRjaGluZ1Bvc3RUYWdOYW1lRmFp
bHVyZUNhc2VzLCBmcmFnbWVudC51bm9wdGltaXplZFBzZXVkb0NsYXNzZXNbaV0pOwogCkBAIC0z
NzkxLDYgKzM3OTYsMTIgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxl
bWVudElzVGFyZ2V0KEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmUKICAgICBmYWlsdXJlQ2Fz
ZXMuYXBwZW5kKG1fYXNzZW1ibGVyLmJyYW5jaFB0cihBc3NlbWJsZXI6Ok5vdEVxdWFsLCBBc3Nl
bWJsZXI6OkFkZHJlc3MoZG9jdW1lbnQsIERvY3VtZW50Ojpjc3NUYXJnZXRNZW1vcnlPZmZzZXQo
KSksIGVsZW1lbnRBZGRyZXNzUmVnaXN0ZXIpKTsKIH0KIAordm9pZCBTZWxlY3RvckNvZGVHZW5l
cmF0b3I6OmdlbmVyYXRlRWxlbWVudEhhc0ZvY3VzV2l0aGluKEFzc2VtYmxlcjo6SnVtcExpc3Qm
IGZhaWx1cmVDYXNlcykKK3sKKyAgICBnZW5lcmF0ZUFkZFN0eWxlUmVsYXRpb25JZlJlc29sdmlu
Z1N0eWxlKGVsZW1lbnRBZGRyZXNzUmVnaXN0ZXIsIFN0eWxlOjpSZWxhdGlvbjo6QWZmZWN0ZWRC
eUZvY3VzV2l0aGluKTsKKyAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKG1fYXNzZW1ibGVyLmJyYW5j
aFRlc3QzMihBc3NlbWJsZXI6Olplcm8sIEFzc2VtYmxlcjo6QWRkcmVzcyhlbGVtZW50QWRkcmVz
c1JlZ2lzdGVyLCBOb2RlOjpub2RlRmxhZ3NNZW1vcnlPZmZzZXQoKSksIEFzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKE5vZGU6OmZsYWdIYXNGb2N1c1dpdGhpbigpKSkpOworfQorCiB2b2lkIFNlbGVj
dG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50SXNGaXJzdExpbmsoQXNzZW1ibGVyOjpK
dW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBBc3NlbWJsZXI6OlJlZ2lzdGVySUQgZWxlbWVudCkKIHsK
ICAgICBMb2NhbFJlZ2lzdGVyIGN1cnJlbnRFbGVtZW50KG1fcmVnaXN0ZXJBbGxvY2F0b3IpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IGRhNmVhZTcwY2Q3YWYzOGYzYWYz
OTdjODA3MmEyYjdjODhlY2Q4YjAuLjIyNzZiNDIyZmY4ODRkMDY2M2Q3ZWJiZjIxMzM0MzdlYTlk
YmU5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTEwMyw5ICsxMDMs
MTEgQEAgc3RhdGljIGlubGluZSB2b2lkIGRlc3Ryb3lSZW5kZXJUcmVlSWZOZWVkZWQoTm9kZSYg
Y2hpbGQpCiAgICAgYm9vbCBjaGlsZElzSFRNTFNsb3RFbGVtZW50ID0gZmFsc2U7CiAgICAgY2hp
bGRJc0hUTUxTbG90RWxlbWVudCA9IGlzPEhUTUxTbG90RWxlbWVudD4oY2hpbGQpOwogICAgIC8v
IEZJWE1FOiBHZXQgcmlkIG9mIHRoZSBuYW1lZCBmbG93IHRlc3QuCi0gICAgaWYgKCFjaGlsZC5y
ZW5kZXJlcigpICYmICFjaGlsZC5pc05hbWVkRmxvd0NvbnRlbnROb2RlKCkgJiYgIWNoaWxkSXNI
VE1MU2xvdEVsZW1lbnQpCisgICAgYm9vbCBpc0VsZW1lbnQgPSBpczxFbGVtZW50PihjaGlsZCk7
CisgICAgaWYgKCFjaGlsZC5yZW5kZXJlcigpICYmICFjaGlsZElzSFRNTFNsb3RFbGVtZW50Cisg
ICAgICAgICYmICEoaXNFbGVtZW50ICYmIGRvd25jYXN0PEVsZW1lbnQ+KGNoaWxkKS5pc05hbWVk
Rmxvd0NvbnRlbnRFbGVtZW50KCkpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKGlzPEVsZW1l
bnQ+KGNoaWxkKSkKKyAgICBpZiAoaXNFbGVtZW50KQogICAgICAgICBSZW5kZXJUcmVlVXBkYXRl
cjo6dGVhckRvd25SZW5kZXJlcnMoZG93bmNhc3Q8RWxlbWVudD4oY2hpbGQpKTsKICAgICBlbHNl
IGlmIChpczxUZXh0PihjaGlsZCkpCiAgICAgICAgIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93
blJlbmRlcmVyKGRvd25jYXN0PFRleHQ+KGNoaWxkKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5k
ZXggNDgwNjkyOWQyNTk5YWU3MjQyMGE0YzdmYTg5OGI4ZjJkM2MyMTI0Yi4uMWMyOTY0NWIzNzU3
NWJjZTkzNTkwNGEzODk5NGQ1MDA2ZTk1ZjRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAt
MTgyLDggKzE4Miw4IEBAIEVsZW1lbnQ6On5FbGVtZW50KCkKICAgICBpZiAoZG9jdW1lbnQoKS5o
YXNMaXZpbmdSZW5kZXJUcmVlKCkpIHsKICAgICAgICAgLy8gV2hlbiB0aGUgZG9jdW1lbnQgaXMg
bm90IGRlc3Ryb3llZCwgYW4gZWxlbWVudCB0aGF0IHdhcyBwYXJ0IG9mIGEgbmFtZWQgZmxvdwog
ICAgICAgICAvLyBjb250ZW50IG5vZGVzIHNob3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRo
ZSBjb250ZW50IG5vZGVzIGNvbGxlY3Rpb24KLSAgICAgICAgLy8gYW5kIHRoZSBpc05hbWVkRmxv
d0NvbnRlbnROb2RlIGZsYWcgcmVzZXQuCi0gICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFpc05hbWVkRmxvd0NvbnRlbnROb2RlKCkpOworICAgICAgICAvLyBhbmQgdGhl
IGlzTmFtZWRGbG93Q29udGVudEVsZW1lbnQgZmxhZyByZXNldC4KKyAgICAgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIWlzTmFtZWRGbG93Q29udGVudEVsZW1lbnQoKSk7CiAg
ICAgfQogI2VuZGlmCiAKQEAgLTYwMSw2ICs2MDEsOSBAQCB2b2lkIEVsZW1lbnQ6OnNldEZvY3Vz
KGJvb2wgZmxhZykKIAogICAgIGRvY3VtZW50KCkudXNlckFjdGlvbkVsZW1lbnRzKCkuc2V0Rm9j
dXNlZCh0aGlzLCBmbGFnKTsKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CisKKyAgICBmb3Ig
KEVsZW1lbnQqIGVsZW1lbnQgPSB0aGlzOyBlbGVtZW50OyBlbGVtZW50ID0gZWxlbWVudC0+cGFy
ZW50T3JTaGFkb3dIb3N0RWxlbWVudCgpKQorICAgICAgICBlbGVtZW50LT5zZXRIYXNGb2N1c1dp
dGhpbihmbGFnKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzZXRIb3ZlcmVkKGJvb2wgZmxhZykKQEAg
LTE2MjAsNyArMTYyMyw3IEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9k
ZSYgaW5zZXJ0aW9uUG9pbnQpCiAKIHZvaWQgRWxlbWVudDo6dW5yZWdpc3Rlck5hbWVkRmxvd0Nv
bnRlbnRFbGVtZW50KCkKIHsKLSAgICBpZiAoaXNOYW1lZEZsb3dDb250ZW50Tm9kZSgpICYmIGRv
Y3VtZW50KCkucmVuZGVyVmlldygpKQorICAgIGlmIChpc05hbWVkRmxvd0NvbnRlbnRFbGVtZW50
KCkgJiYgZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCkpCiAgICAgICAgIGRvY3VtZW50KCkucmVuZGVy
VmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLnVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50
RWxlbWVudCgqdGhpcyk7CiB9CiAKQEAgLTE5MDgsNiArMTkxMSwxNiBAQCB2b2lkIEVsZW1lbnQ6
OnNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IGNvbnN0IFF1YQogICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBKU0xh
enlFdmVudExpc3RlbmVyOjpjcmVhdGUoKnRoaXMsIGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZVZh
bHVlKSk7CiB9CiAKK3ZvaWQgRWxlbWVudDo6c2V0SXNOYW1lZEZsb3dDb250ZW50RWxlbWVudCgp
Cit7CisgICAgZW5zdXJlRWxlbWVudFJhcmVEYXRhKCkuc2V0SXNOYW1lZEZsb3dDb250ZW50RWxl
bWVudCh0cnVlKTsKK30KKwordm9pZCBFbGVtZW50OjpjbGVhcklzTmFtZWRGbG93Q29udGVudEVs
ZW1lbnQoKQoreworICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldElzTmFtZWRGbG93Q29u
dGVudEVsZW1lbnQoZmFsc2UpOworfQorCiB2b2lkIEVsZW1lbnQ6OnJlbW92ZUFsbEV2ZW50TGlz
dGVuZXJzKCkKIHsKICAgICBDb250YWluZXJOb2RlOjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygp
OwpAQCAtMjU2NSw2ICsyNTc4LDExIEBAIHZvaWQgRWxlbWVudDo6c2V0U3R5bGVBZmZlY3RlZEJ5
RW1wdHkoKQogICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldFN0eWxlQWZmZWN0ZWRCeUVt
cHR5KHRydWUpOwogfQogCit2b2lkIEVsZW1lbnQ6OnNldFN0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0
aGluKCkKK3sKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5zZXRTdHlsZUFmZmVjdGVkQnlG
b2N1c1dpdGhpbih0cnVlKTsKK30KKwogdm9pZCBFbGVtZW50OjpzZXRDaGlsZHJlbkFmZmVjdGVk
QnlBY3RpdmUoKQogewogICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldENoaWxkcmVuQWZm
ZWN0ZWRCeUFjdGl2ZSh0cnVlKTsKQEAgLTI2MTAsNiArMjYyOCwxOCBAQCBib29sIEVsZW1lbnQ6
OnJhcmVEYXRhU3R5bGVBZmZlY3RlZEJ5RW1wdHkoKSBjb25zdAogICAgIHJldHVybiBlbGVtZW50
UmFyZURhdGEoKS0+c3R5bGVBZmZlY3RlZEJ5RW1wdHkoKTsKIH0KIAorYm9vbCBFbGVtZW50Ojpy
YXJlRGF0YVN0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0aGluKCkgY29uc3QKK3sKKyAgICBBU1NFUlQo
aGFzUmFyZURhdGEoKSk7CisgICAgcmV0dXJuIGVsZW1lbnRSYXJlRGF0YSgpLT5zdHlsZUFmZmVj
dGVkQnlGb2N1c1dpdGhpbigpOworfQorCitib29sIEVsZW1lbnQ6OnJhcmVEYXRhSXNOYW1lZEZs
b3dDb250ZW50RWxlbWVudCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGhhc1JhcmVEYXRhKCkpOwor
ICAgIHJldHVybiBlbGVtZW50UmFyZURhdGEoKS0+aXNOYW1lZEZsb3dDb250ZW50RWxlbWVudCgp
OworfQorCiBib29sIEVsZW1lbnQ6OnJhcmVEYXRhQ2hpbGRyZW5BZmZlY3RlZEJ5QWN0aXZlKCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaGFzUmFyZURhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRl
eCBiMzEwMjNiZjgzZDc4MjJlZjk5MGFlOGU4NjNjMzIxY2EyZThjZjM0Li4xZjU3MmRmZjliZGM4
MGU1NmY1YWQ2NzBmZDhlYTgyYWQ1ZWJkNGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI2Nywx
MCArMjY3LDEyIEBAIHB1YmxpYzoKICAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGlz
VXNlckFjdGlvbkVsZW1lbnQoKSAmJiBpc1VzZXJBY3Rpb25FbGVtZW50QWN0aXZlKCk7IH0KICAg
ICBib29sIGhvdmVyZWQoKSBjb25zdCB7IHJldHVybiBpc1VzZXJBY3Rpb25FbGVtZW50KCkgJiYg
aXNVc2VyQWN0aW9uRWxlbWVudEhvdmVyZWQoKTsgfQogICAgIGJvb2wgZm9jdXNlZCgpIGNvbnN0
IHsgcmV0dXJuIGlzVXNlckFjdGlvbkVsZW1lbnQoKSAmJiBpc1VzZXJBY3Rpb25FbGVtZW50Rm9j
dXNlZCgpOyB9CisgICAgYm9vbCBoYXNGb2N1c1dpdGhpbigpIGNvbnN0IHsgcmV0dXJuIGdldEZs
YWcoSGFzRm9jdXNXaXRoaW4pOyB9OwogCiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29s
IGZsYWcgPSB0cnVlLCBib29sIHBhdXNlID0gZmFsc2UpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRI
b3ZlcmVkKGJvb2wgZmxhZyA9IHRydWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29s
IGZsYWcpOworICAgIHZvaWQgc2V0SGFzRm9jdXNXaXRoaW4oYm9vbCBmbGFnKTsKIAogICAgIGJv
b2wgdGFiSW5kZXhTZXRFeHBsaWNpdGx5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzRm9jdXMoKSBjb25zdDsKQEAgLTI5MCw2ICsyOTIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBN
ZXRob2RzIGZvciBpbmRpY2F0aW5nIHRoZSBzdHlsZSBpcyBhZmZlY3RlZCBieSBkeW5hbWljIHVw
ZGF0ZXMgKGUuZy4sIGNoaWxkcmVuIGNoYW5naW5nLCBvdXIgcG9zaXRpb24gY2hhbmdpbmcgaW4g
b3VyIHNpYmxpbmcgbGlzdCwgZXRjLikKICAgICBib29sIHN0eWxlQWZmZWN0ZWRCeUVtcHR5KCkg
Y29uc3QgeyByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0YVN0eWxlQWZmZWN0ZWRCeUVt
cHR5KCk7IH0KKyAgICBib29sIHN0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0aGluKCkgY29uc3QgeyBy
ZXR1cm4gaGFzUmFyZURhdGEoKSAmJiByYXJlRGF0YVN0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0aGlu
KCk7IH0KICAgICBib29sIGNoaWxkcmVuQWZmZWN0ZWRCeUhvdmVyKCkgY29uc3QgeyByZXR1cm4g
Z2V0RmxhZyhDaGlsZHJlbkFmZmVjdGVkQnlIb3ZlclJ1bGVzRmxhZyk7IH0KICAgICBib29sIGNo
aWxkcmVuQWZmZWN0ZWRCeUFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYg
cmFyZURhdGFDaGlsZHJlbkFmZmVjdGVkQnlBY3RpdmUoKTsgfQogICAgIGJvb2wgY2hpbGRyZW5B
ZmZlY3RlZEJ5RHJhZygpIGNvbnN0IHsgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgcmFyZURhdGFD
aGlsZHJlbkFmZmVjdGVkQnlEcmFnKCk7IH0KQEAgLTMwMyw2ICszMDYsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBoYXNGbGFnc1NldER1cmluZ1N0eWxpbmdPZkNoaWxkcmVuKCkgY29uc3Q7CiAKICAg
ICB2b2lkIHNldFN0eWxlQWZmZWN0ZWRCeUVtcHR5KCk7CisgICAgdm9pZCBzZXRTdHlsZUFmZmVj
dGVkQnlGb2N1c1dpdGhpbigpOwogICAgIHZvaWQgc2V0Q2hpbGRyZW5BZmZlY3RlZEJ5SG92ZXIo
KSB7IHNldEZsYWcoQ2hpbGRyZW5BZmZlY3RlZEJ5SG92ZXJSdWxlc0ZsYWcpOyB9CiAgICAgdm9p
ZCBzZXRDaGlsZHJlbkFmZmVjdGVkQnlBY3RpdmUoKTsKICAgICB2b2lkIHNldENoaWxkcmVuQWZm
ZWN0ZWRCeURyYWcoKTsKQEAgLTUxNSw2ICs1MTksMTAgQEAgcHVibGljOgogICAgIHVzaW5nIENv
bnRhaW5lck5vZGU6OnNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXI7CiAgICAgdm9pZCBzZXRBdHRy
aWJ1dGVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKTsK
IAorICAgIGJvb2wgaXNOYW1lZEZsb3dDb250ZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGhh
c1JhcmVEYXRhKCkgJiYgcmFyZURhdGFJc05hbWVkRmxvd0NvbnRlbnRFbGVtZW50KCk7IH0KKyAg
ICB2b2lkIHNldElzTmFtZWRGbG93Q29udGVudEVsZW1lbnQoKTsKKyAgICB2b2lkIGNsZWFySXNO
YW1lZEZsb3dDb250ZW50RWxlbWVudCgpOworCiBwcm90ZWN0ZWQ6CiAgICAgRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBDb25zdHJ1Y3Rpb25UeXBlKTsKIApAQCAtNjAx
LDYgKzYwOSw4IEBAIHByaXZhdGU6CiAgICAgY29uc3QgUmVuZGVyU3R5bGUmIHJlc29sdmVDb21w
dXRlZFN0eWxlKCk7CiAKICAgICBib29sIHJhcmVEYXRhU3R5bGVBZmZlY3RlZEJ5RW1wdHkoKSBj
b25zdDsKKyAgICBib29sIHJhcmVEYXRhU3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4oKSBjb25z
dDsKKyAgICBib29sIHJhcmVEYXRhSXNOYW1lZEZsb3dDb250ZW50RWxlbWVudCgpIGNvbnN0Owog
ICAgIGJvb2wgcmFyZURhdGFDaGlsZHJlbkFmZmVjdGVkQnlIb3ZlcigpIGNvbnN0OwogICAgIGJv
b2wgcmFyZURhdGFDaGlsZHJlbkFmZmVjdGVkQnlBY3RpdmUoKSBjb25zdDsKICAgICBib29sIHJh
cmVEYXRhQ2hpbGRyZW5BZmZlY3RlZEJ5RHJhZygpIGNvbnN0OwpAQCAtNzQzLDYgKzc1MywxMyBA
QCBpbmxpbmUgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKGNvbnN0IEVsZW1lbnQmIGVs
ZW1lbnQpCiAgICAgcmV0dXJuIGVsZW1lbnQuaXNIVE1MRWxlbWVudCgpICYmIGVsZW1lbnQuZG9j
dW1lbnQoKS5pc0hUTUxEb2N1bWVudCgpOwogfQogCitpbmxpbmUgdm9pZCBFbGVtZW50OjpzZXRI
YXNGb2N1c1dpdGhpbihib29sIGZsYWcpCit7CisgICAgc2V0RmxhZyhmbGFnLCBIYXNGb2N1c1dp
dGhpbik7CisgICAgaWYgKHN0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0aGluKCkpCisgICAgICAgIHNl
dE5lZWRzU3R5bGVSZWNhbGMoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkVsZW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudFJhcmVEYXRhLmgKaW5kZXggOTFkMTMyMzliMWNlMmI3ODU2YmRlNzU3MWFiM2I4N2Q3
Y2EwM2JkNi4uYzgxOTBkNWY0ZTBhZTNlZjMyZjAxY2U5MWViNmEzNzc0MWU5OWJjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAyMDE0LCAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBEYXZp
ZCBTbWl0aCA8Y2F0ZmlzaC5tYW5AZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTU4LDkgKzU4
LDE1IEBAIHB1YmxpYzoKICAgICBib29sIHN0eWxlQWZmZWN0ZWRCeUVtcHR5KCkgY29uc3QgeyBy
ZXR1cm4gbV9zdHlsZUFmZmVjdGVkQnlFbXB0eTsgfQogICAgIHZvaWQgc2V0U3R5bGVBZmZlY3Rl
ZEJ5RW1wdHkoYm9vbCB2YWx1ZSkgeyBtX3N0eWxlQWZmZWN0ZWRCeUVtcHR5ID0gdmFsdWU7IH0K
IAorICAgIGJvb2wgc3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4oKSBjb25zdCB7IHJldHVybiBt
X3N0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0aGluOyB9CisgICAgdm9pZCBzZXRTdHlsZUFmZmVjdGVk
QnlGb2N1c1dpdGhpbihib29sIHZhbHVlKSB7IG1fc3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4g
PSB2YWx1ZTsgfQorCiAgICAgUmVnaW9uT3ZlcnNldFN0YXRlIHJlZ2lvbk92ZXJzZXRTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVnaW9uT3ZlcnNldFN0YXRlOyB9CiAgICAgdm9pZCBzZXRSZWdp
b25PdmVyc2V0U3RhdGUoUmVnaW9uT3ZlcnNldFN0YXRlIHN0YXRlKSB7IG1fcmVnaW9uT3ZlcnNl
dFN0YXRlID0gc3RhdGU7IH0KIAorICAgIGJvb2wgaXNOYW1lZEZsb3dDb250ZW50RWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNOYW1lZEZsb3dDb250ZW50RWxlbWVudDsgfQorICAgIHZvaWQg
c2V0SXNOYW1lZEZsb3dDb250ZW50RWxlbWVudChib29sIHZhbHVlKSB7IG1faXNOYW1lZEZsb3dD
b250ZW50RWxlbWVudCA9IHZhbHVlOyB9CisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgYm9vbCBjb250YWluc0Z1bGxTY3JlZW5FbGVtZW50KCkgeyByZXR1cm4gbV9jb250YWluc0Z1
bGxTY3JlZW5FbGVtZW50OyB9CiAgICAgdm9pZCBzZXRDb250YWluc0Z1bGxTY3JlZW5FbGVtZW50
KGJvb2wgdmFsdWUpIHsgbV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50ID0gdmFsdWU7IH0KQEAg
LTExNiw2ICsxMjIsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fdGFiSW5kZXhXYXNTZXRF
eHBsaWNpdGx5IDogMTsKICAgICB1bnNpZ25lZCBtX25lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRl
U29vbkFmdGVyQXR0YWNoIDogMTsKICAgICB1bnNpZ25lZCBtX3N0eWxlQWZmZWN0ZWRCeUVtcHR5
IDogMTsKKyAgICB1bnNpZ25lZCBtX3N0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0aGluIDogMTsKICNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgdW5zaWduZWQgbV9jb250YWluc0Z1bGxTY3Jl
ZW5FbGVtZW50IDogMTsKICNlbmRpZgpAQCAtMTMwLDYgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAg
dW5zaWduZWQgbV9jaGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyA6IDE7
CiAgICAgdW5zaWduZWQgbV9jaGlsZHJlbkFmZmVjdGVkQnlQcm9wZXJ0eUJhc2VkQmFja3dhcmRQ
b3NpdGlvbmFsUnVsZXMgOiAxOwogICAgIHVuc2lnbmVkIG1faGFzRGlzcGxheUNvbnRlbnRzIDog
MTsKKyAgICB1bnNpZ25lZCBtX2lzTmFtZWRGbG93Q29udGVudEVsZW1lbnQgOiAxOwogCiAgICAg
UmVnaW9uT3ZlcnNldFN0YXRlIG1fcmVnaW9uT3ZlcnNldFN0YXRlOwogCkBAIC0xNjAsNiArMTY4
LDcgQEAgaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKFJlbmRlckVsZW1l
bnQqIHJlbmRlcmVyKQogICAgICwgbV90YWJJbmRleFdhc1NldEV4cGxpY2l0bHkoZmFsc2UpCiAg
ICAgLCBtX25lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFmdGVyQXR0YWNoKGZhbHNlKQog
ICAgICwgbV9zdHlsZUFmZmVjdGVkQnlFbXB0eShmYWxzZSkKKyAgICAsIG1fc3R5bGVBZmZlY3Rl
ZEJ5Rm9jdXNXaXRoaW4oZmFsc2UpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICwg
bV9jb250YWluc0Z1bGxTY3JlZW5FbGVtZW50KGZhbHNlKQogI2VuZGlmCkBAIC0xNzEsNiArMTgw
LDcgQEAgaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKFJlbmRlckVsZW1l
bnQqIHJlbmRlcmVyKQogICAgICwgbV9jaGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9u
YWxSdWxlcyhmYWxzZSkKICAgICAsIG1fY2hpbGRyZW5BZmZlY3RlZEJ5UHJvcGVydHlCYXNlZEJh
Y2t3YXJkUG9zaXRpb25hbFJ1bGVzKGZhbHNlKQogICAgICwgbV9oYXNEaXNwbGF5Q29udGVudHMo
ZmFsc2UpCisgICAgLCBtX2lzTmFtZWRGbG93Q29udGVudEVsZW1lbnQoZmFsc2UpCiAgICAgLCBt
X3JlZ2lvbk92ZXJzZXRTdGF0ZShSZWdpb25VbmRlZmluZWQpCiAgICAgLCBtX21pbmltdW1TaXpl
Rm9yUmVzaXppbmcoZGVmYXVsdE1pbmltdW1TaXplRm9yUmVzaXppbmcoKSkKIHsKQEAgLTIwMCw2
ICsyMTAsNyBAQCBpbmxpbmUgdm9pZCBFbGVtZW50UmFyZURhdGE6OnJlc2V0Q29tcHV0ZWRTdHls
ZSgpCiAgICAgbV9jb21wdXRlZFN0eWxlID0gbnVsbHB0cjsKICAgICBtX2hhc0Rpc3BsYXlDb250
ZW50cyA9IGZhbHNlOwogICAgIHNldFN0eWxlQWZmZWN0ZWRCeUVtcHR5KGZhbHNlKTsKKyAgICBz
ZXRTdHlsZUFmZmVjdGVkQnlGb2N1c1dpdGhpbihmYWxzZSk7CiAgICAgc2V0Q2hpbGRJbmRleCgw
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggNmU3Mjk3ODU1MzVmODM1ZWJlZGJlMDg1MWUwZDQ2ZTgw
OWQwNjRjZC4uOTI3YTc3MWVkNzRmMjUyMDVkMjkzMWE2ZTZlYmU5ZDM4ODNhMmVhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCkBAIC0yNDcsNyArMjQ3LDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNEb2N1bWVudEZy
YWdtZW50KCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc0RvY3VtZW50RnJhZ21lbnRGbGFnKTsg
fQogICAgIGJvb2wgaXNTaGFkb3dSb290KCkgY29uc3QgeyByZXR1cm4gaXNEb2N1bWVudEZyYWdt
ZW50KCkgJiYgaXNUcmVlU2NvcGUoKTsgfQogCi0gICAgYm9vbCBpc05hbWVkRmxvd0NvbnRlbnRO
b2RlKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc05hbWVkRmxvd0NvbnRlbnROb2RlRmxhZyk7
IH0KICAgICBib29sIGhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpIGNvbnN0IHsgcmV0
dXJuIGdldEZsYWcoSGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzRmxhZyk7IH0KIAogICAg
IGJvb2wgaGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXMoKSBjb25zdCB7IHJldHVybiBnZXRGbGFn
KEhhc1N5bnRoZXRpY0F0dHJDaGlsZE5vZGVzRmxhZyk7IH0KQEAgLTMzNyw5ICszMzYsNiBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0xpbmsoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzTGlua0Zs
YWcpOyB9CiAgICAgdm9pZCBzZXRJc0xpbmsoYm9vbCBmbGFnKSB7IHNldEZsYWcoZmxhZywgSXNM
aW5rRmxhZyk7IH0KIAotICAgIHZvaWQgc2V0SXNOYW1lZEZsb3dDb250ZW50Tm9kZSgpIHsgc2V0
RmxhZyhJc05hbWVkRmxvd0NvbnRlbnROb2RlRmxhZyk7IH0KLSAgICB2b2lkIGNsZWFySXNOYW1l
ZEZsb3dDb250ZW50Tm9kZSgpIHsgY2xlYXJGbGFnKElzTmFtZWRGbG93Q29udGVudE5vZGVGbGFn
KTsgfQotCiAgICAgYm9vbCBoYXNFdmVudFRhcmdldERhdGEoKSBjb25zdCB7IHJldHVybiBnZXRG
bGFnKEhhc0V2ZW50VGFyZ2V0RGF0YUZsYWcpOyB9CiAgICAgdm9pZCBzZXRIYXNFdmVudFRhcmdl
dERhdGEoYm9vbCBmbGFnKSB7IHNldEZsYWcoZmxhZywgSGFzRXZlbnRUYXJnZXREYXRhRmxhZyk7
IH0KIApAQCAtNTcyLDYgKzU2OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgaW50MzJfdCBmbGFn
SXNFbGVtZW50KCkgeyByZXR1cm4gSXNFbGVtZW50RmxhZzsgfQogICAgIHN0YXRpYyBpbnQzMl90
IGZsYWdJc0hUTUwoKSB7IHJldHVybiBJc0hUTUxGbGFnOyB9CiAgICAgc3RhdGljIGludDMyX3Qg
ZmxhZ0lzTGluaygpIHsgcmV0dXJuIElzTGlua0ZsYWc7IH0KKyAgICBzdGF0aWMgaW50MzJfdCBm
bGFnSGFzRm9jdXNXaXRoaW4oKSB7IHJldHVybiBIYXNGb2N1c1dpdGhpbjsgfQogICAgIHN0YXRp
YyBpbnQzMl90IGZsYWdIYXNSYXJlRGF0YSgpIHsgcmV0dXJuIEhhc1JhcmVEYXRhRmxhZzsgfQog
ICAgIHN0YXRpYyBpbnQzMl90IGZsYWdJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkKCkgeyByZXR1
cm4gSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWc7IH0KICAgICBzdGF0aWMgaW50MzJfdCBm
bGFnQ2hpbGRyZW5BZmZlY3RlZEJ5Rmlyc3RDaGlsZFJ1bGVzRmxhZygpIHsgcmV0dXJuIENoaWxk
cmVuQWZmZWN0ZWRCeUZpcnN0Q2hpbGRSdWxlc0ZsYWc7IH0KQEAgLTYwMiw3ICs1OTksNyBAQCBw
cm90ZWN0ZWQ6CiAKICAgICAgICAgU3R5bGVDaGFuZ2VNYXNrID0gMSA8PCBub2RlU3R5bGVDaGFu
Z2VTaGlmdCB8IDEgPDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMSkgfCAxIDw8IChub2RlU3R5
bGVDaGFuZ2VTaGlmdCArIDIpLAogICAgICAgICBJc0VkaXRpbmdUZXh0T3JVbnJlc29sdmVkQ3Vz
dG9tRWxlbWVudEZsYWcgPSAxIDw8IDE3LAotICAgICAgICBJc05hbWVkRmxvd0NvbnRlbnROb2Rl
RmxhZyA9IDEgPDwgMTgsCisgICAgICAgIEhhc0ZvY3VzV2l0aGluID0gMSA8PCAxOCwKICAgICAg
ICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAxOSwKICAgICAgICAgSGFz
Q3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjAsCiAgICAgICAgIEhhc0V2
ZW50VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIxLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcAppbmRleCBjMmJlMTAwZmY1MGRjM2U1ZTcz
MWE1N2YwZjUyMzc4ZmQ0OTBiZDU5Li4zYzk2ZmJlNWIwYTMyOGUxOWJiYmZiYzc1ZDZhYzI3MWY3
ZTE3YjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRG
bG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRG
bG93VGhyZWFkLmNwcApAQCAtNzQsMTAgKzc0LDEwIEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkOjpjbGVhckNvbnRlbnRFbGVtZW50cygpCiB7CiAgICAgZm9yIChhdXRvJiBjb250ZW50RWxl
bWVudCA6IG1fY29udGVudEVsZW1lbnRzKSB7CiAgICAgICAgIEFTU0VSVChjb250ZW50RWxlbWVu
dCk7Ci0gICAgICAgIEFTU0VSVChjb250ZW50RWxlbWVudC0+aXNOYW1lZEZsb3dDb250ZW50Tm9k
ZSgpKTsKKyAgICAgICAgQVNTRVJUKGNvbnRlbnRFbGVtZW50LT5pc05hbWVkRmxvd0NvbnRlbnRF
bGVtZW50KCkpOwogICAgICAgICBBU1NFUlQoJmNvbnRlbnRFbGVtZW50LT5kb2N1bWVudCgpID09
ICZkb2N1bWVudCgpKTsKICAgICAgICAgCi0gICAgICAgIGNvbnRlbnRFbGVtZW50LT5jbGVhcklz
TmFtZWRGbG93Q29udGVudE5vZGUoKTsKKyAgICAgICAgY29udGVudEVsZW1lbnQtPmNsZWFySXNO
YW1lZEZsb3dDb250ZW50RWxlbWVudCgpOwogICAgIH0KICAgICAKICAgICBtX2NvbnRlbnRFbGVt
ZW50cy5jbGVhcigpOwpAQCAtNDk3LDcgKzQ5Nyw3IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkOjpyZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnRFbGVtZW50KEVsZW1lbnQmIGNvbnRlbnRFbGVt
CiB7CiAgICAgQVNTRVJUKCZjb250ZW50RWxlbWVudC5kb2N1bWVudCgpID09ICZkb2N1bWVudCgp
KTsKIAotICAgIGNvbnRlbnRFbGVtZW50LnNldElzTmFtZWRGbG93Q29udGVudE5vZGUoKTsKKyAg
ICBjb250ZW50RWxlbWVudC5zZXRJc05hbWVkRmxvd0NvbnRlbnRFbGVtZW50KCk7CiAKICAgICBy
ZXNldE1hcmtGb3JEZXN0cnVjdGlvbigpOwogCkBAIC01MTgsMTAgKzUxOCwxMCBAQCB2b2lkIFJl
bmRlck5hbWVkRmxvd1RocmVhZDo6cmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50RWxlbWVudChFbGVt
ZW50JiBjb250ZW50RWxlbQogdm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnVucmVnaXN0ZXJO
YW1lZEZsb3dDb250ZW50RWxlbWVudChFbGVtZW50JiBjb250ZW50RWxlbWVudCkKIHsKICAgICBB
U1NFUlQobV9jb250ZW50RWxlbWVudHMuY29udGFpbnMoJmNvbnRlbnRFbGVtZW50KSk7Ci0gICAg
QVNTRVJUKGNvbnRlbnRFbGVtZW50LmlzTmFtZWRGbG93Q29udGVudE5vZGUoKSk7CisgICAgQVNT
RVJUKGNvbnRlbnRFbGVtZW50LmlzTmFtZWRGbG93Q29udGVudEVsZW1lbnQoKSk7CiAgICAgQVNT
RVJUKCZjb250ZW50RWxlbWVudC5kb2N1bWVudCgpID09ICZkb2N1bWVudCgpKTsKIAotICAgIGNv
bnRlbnRFbGVtZW50LmNsZWFySXNOYW1lZEZsb3dDb250ZW50Tm9kZSgpOworICAgIGNvbnRlbnRF
bGVtZW50LmNsZWFySXNOYW1lZEZsb3dDb250ZW50RWxlbWVudCgpOwogICAgIG1fY29udGVudEVs
ZW1lbnRzLnJlbW92ZSgmY29udGVudEVsZW1lbnQpOwogCiAgICAgaWYgKGNhbkJlRGVzdHJveWVk
KCkpCkBAIC02MTYsNyArNjE2LDcgQEAgc3RhdGljIGJvb2wgYm94SW50ZXJzZWN0c1JlZ2lvbihM
YXlvdXRVbml0IGxvZ2ljYWxUb3BGb3JCb3gsIExheW91dFVuaXQgbG9naWNhbEIKIC8vIFJldHJp
ZXZlIHRoZSBuZXh0IG5vZGUgdG8gYmUgdmlzaXRlZCB3aGlsZSBjb21wdXRpbmcgdGhlIHJhbmdl
cyBpbnNpZGUgYSByZWdpb24uCiBzdGF0aWMgTm9kZSogbmV4dE5vZGVJbnNpZGVDb250ZW50RWxl
bWVudChjb25zdCBOb2RlJiBjdXJyTm9kZSwgY29uc3QgRWxlbWVudCogY29udGVudEVsZW1lbnQp
CiB7Ci0gICAgQVNTRVJUKGNvbnRlbnRFbGVtZW50ICYmIGNvbnRlbnRFbGVtZW50LT5pc05hbWVk
Rmxvd0NvbnRlbnROb2RlKCkpOworICAgIEFTU0VSVChjb250ZW50RWxlbWVudCAmJiBjb250ZW50
RWxlbWVudC0+aXNOYW1lZEZsb3dDb250ZW50RWxlbWVudCgpKTsKIAogICAgIGlmIChjdXJyTm9k
ZS5yZW5kZXJlcigpICYmIGN1cnJOb2RlLnJlbmRlcmVyKCktPmlzU1ZHUm9vdCgpKQogICAgICAg
ICByZXR1cm4gTm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oY3Vyck5vZGUsIGNv
bnRlbnRFbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRy
ZWVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVVcGRhdGVyLmNw
cAppbmRleCAwOTFkYWY5NzE2NGY3ZjhlY2I1YTkwZWM4ZjVhZTE4NGY5ODc4YmE3Li4xOGI2MTlk
NTVkMzM4MTIxMTUyNWMyNTY3ZGZjZGM2NDhlNGJjYjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SZW5kZXJUcmVlVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCkBAIC0yNDAsNyArMjQwLDcgQEAgc3RhdGljIGJvb2wg
cHNldWRvU3R5bGVDYWNoZUlzSW52YWxpZChSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgUmVuZGVy
U3R5bGUqIG5ld1MKIAogdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxlbWVudFJlbmRl
cmVyKEVsZW1lbnQmIGVsZW1lbnQsIFN0eWxlOjpFbGVtZW50VXBkYXRlJiB1cGRhdGUpCiB7Ci0g
ICAgYm9vbCBzaG91bGRUZWFyRG93blJlbmRlcmVycyA9IHVwZGF0ZS5jaGFuZ2UgPT0gU3R5bGU6
OkRldGFjaCAmJiAoZWxlbWVudC5yZW5kZXJlcigpIHx8IGVsZW1lbnQuaXNOYW1lZEZsb3dDb250
ZW50Tm9kZSgpKTsKKyAgICBib29sIHNob3VsZFRlYXJEb3duUmVuZGVyZXJzID0gdXBkYXRlLmNo
YW5nZSA9PSBTdHlsZTo6RGV0YWNoICYmIChlbGVtZW50LnJlbmRlcmVyKCkgfHwgZWxlbWVudC5p
c05hbWVkRmxvd0NvbnRlbnRFbGVtZW50KCkpOwogICAgIGlmIChzaG91bGRUZWFyRG93blJlbmRl
cmVycykKICAgICAgICAgdGVhckRvd25SZW5kZXJlcnMoZWxlbWVudCwgVGVhcmRvd25UeXBlOjpL
ZWVwSG92ZXJBbmRBY3RpdmUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlbGF0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0aW9ucy5j
cHAKaW5kZXggNThlYTZhNTZiOGQzNmRhNGY4YzY3N2UyZWQzNTliNmUwY2RhMGIzMy4uNDVmNWZk
ZWM4OWMyOTA5OTg0ZGIwY2MzNTkxMTI3ZTE0ZDU2NDhjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZWxhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVsYXRpb25zLmNwcApAQCAtNzIsNiArNzIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVs
YXRpb25zPiBjb21taXRSZWxhdGlvbnNUb1JlbmRlclN0eWxlKFJlbmRlclN0eWxlJiBzdHlsZSwg
Y29ucwogICAgICAgICBjYXNlIFJlbGF0aW9uOjpVbmlxdWU6CiAgICAgICAgICAgICBzdHlsZS5z
ZXRVbmlxdWUoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJlbGF0aW9uOjpB
ZmZlY3RlZEJ5Rm9jdXNXaXRoaW46CiAgICAgICAgIGNhc2UgUmVsYXRpb246OkFmZmVjdGVkQnlQ
cmV2aW91c1NpYmxpbmc6CiAgICAgICAgIGNhc2UgUmVsYXRpb246OkFmZmVjdHNOZXh0U2libGlu
ZzoKICAgICAgICAgY2FzZSBSZWxhdGlvbjo6Q2hpbGRyZW5BZmZlY3RlZEJ5QmFja3dhcmRQb3Np
dGlvbmFsUnVsZXM6CkBAIC0xMDIsNiArMTAzLDkgQEAgdm9pZCBjb21taXRSZWxhdGlvbnMoc3Rk
Ojp1bmlxdWVfcHRyPFJlbGF0aW9ucz4gcmVsYXRpb25zLCBVcGRhdGUmIHVwZGF0ZSkKICAgICAg
ICAgY2FzZSBSZWxhdGlvbjo6QWZmZWN0ZWRCeUVtcHR5OgogICAgICAgICAgICAgZWxlbWVudC5z
ZXRTdHlsZUFmZmVjdGVkQnlFbXB0eSgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgUmVsYXRpb246OkFmZmVjdGVkQnlGb2N1c1dpdGhpbjoKKyAgICAgICAgICAgIGVsZW1lbnQu
c2V0U3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4oKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFJlbGF0aW9uOjpBZmZlY3RlZEJ5SG92ZXI6CiAgICAgICAgICAgICBlbGVtZW50
LnNldENoaWxkcmVuQWZmZWN0ZWRCeUhvdmVyKCk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVsYXRpb25zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlbGF0aW9ucy5oCmluZGV4IGI3YjQwYTIwMzExN2NmMjliNDAzOWY5
MmNiOWE1NjliOTliNTFmNDUuLjdjNmY0Nzc5N2I4MzhmNDdhNjNiOGIwMzkxNDAxOWRhYzBlZTE4
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVsYXRpb25zLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZWxhdGlvbnMuaApAQCAtNDIsNiArNDIsNyBA
QCBzdHJ1Y3QgUmVsYXRpb24gewogICAgICAgICBBZmZlY3RlZEJ5QWN0aXZlLAogICAgICAgICBB
ZmZlY3RlZEJ5RHJhZywKICAgICAgICAgQWZmZWN0ZWRCeUVtcHR5LAorICAgICAgICBBZmZlY3Rl
ZEJ5Rm9jdXNXaXRoaW4sCiAgICAgICAgIEFmZmVjdGVkQnlIb3ZlciwKICAgICAgICAgQWZmZWN0
ZWRCeVByZXZpb3VzU2libGluZywKICAgICAgICAgLy8gRm9yIEFmZmVjdHNOZXh0U2libGluZyAn
dmFsdWUnIHRlbGxzIGhvdyBtYW55IGVsZW1lbnQgc2libGluZ3MgdG8gbWFyayBzdGFydGluZyB3
aXRoICdlbGVtZW50Jy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hh
cmluZ1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29s
dmVyLmNwcAppbmRleCBiYTE2YTliYjU4NGRmM2YxMjdlMTI1OGYwNmJjYTI5M2U2OGQ5ZTk2Li5k
NWNkNDgzMzA4MTcwZjI4YzFlNjFhNmYxMmQ3YzQ5MmZmNmJhYjY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCkBAIC0yMzAsNiArMjMwLDggQEAg
Ym9vbCBTaGFyaW5nUmVzb2x2ZXI6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudChjb25zdCBDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBTdHkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChj
YW5kaWRhdGVFbGVtZW50LmFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHlsZSgpIHx8IGNhbmRp
ZGF0ZUVsZW1lbnQuc3R5bGVJc0FmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmIChjYW5kaWRhdGVFbGVtZW50LnN0eWxlQWZmZWN0ZWRCeUZv
Y3VzV2l0aGluKCkgfHwgZWxlbWVudC5zdHlsZUFmZmVjdGVkQnlGb2N1c1dpdGhpbigpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvJiBjYW5kaWRhdGVFbGVtZW50SWQgPSBjYW5k
aWRhdGVFbGVtZW50LmlkRm9yU3R5bGVSZXNvbHV0aW9uKCk7CiAgICAgaWYgKCFjYW5kaWRhdGVF
bGVtZW50SWQuaXNOdWxsKCkgJiYgbV9ydWxlU2V0cy5mZWF0dXJlcygpLmlkc0luUnVsZXMuY29u
dGFpbnMoY2FuZGlkYXRlRWxlbWVudElkLmltcGwoKSkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjljNjVmNTMwNDkyMGUx
YjVlZGI3NDNmNmJmYzdkOTI4MjUxOTY2Yi4uZjQ3YzE5YmRlZWRiOGFmZTEyZmUyNTk2NzZjN2Qx
YWUwZDNjNTA5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTA2LTIxICBCZW5qYW1pbiBQ
b3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBBZGQgc3VwcG9ydCBm
b3IgQ1NTNCA6Zm9jdXMtd2l0aGluIHBzZXVkbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2Nzcy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvY3NzL2Nzcy1zZXQtc2VsZWN0b3ItdGV4dC5odG1sOgorICAgICAgICAqIGZhc3Qv
Y3NzL3BzZXVkby1mb2N1cy13aXRoaW4tYmFzaWNzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4tYmFzaWNzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4taW5zaWRlLXNoYWRvdy1kb20t
ZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdp
dGhpbi1pbnNpZGUtc2hhZG93LWRvbS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9w
c2V1ZG8tZm9jdXMtd2l0aGluLXN0eWxlLXNoYXJpbmctMS1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLXN0eWxlLXNoYXJpbmctMS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLXN0eWxl
LXNoYXJpbmctMi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9wc2V1
ZG8tZm9jdXMtd2l0aGluLXN0eWxlLXNoYXJpbmctMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3NlbGVjdG9ycy9mb2N1cy13aXRoaW4tc3R5bGUtdXBkYXRlLmh0bWw6IEFkZGVkLgorCiAy
MDE2LTA2LTIwICBBZGFtIEJlcmdrdmlzdCAgPGFkYW0uYmVyZ2t2aXN0QGVyaWNzc29uLmNvbT4K
IAogICAgICAgICBXZWJSVEM6IFJUQ0ljZUNhbmRpZGF0ZSBpbml0IGRpY3Rpb25hcnkgZG9uJ3Qg
aGFuZGxlIGV4cGxpY2l0IG51bGwgb3IgdW5kZWZpbmVkIHZhbHVlcyBjb3JyZWN0bHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dApp
bmRleCAyMzkzMGIzNjk3ZGI0YzVjNDk4ZWNkNjQ2MDFhMjBhZTRmYjMzZmM1Li4yMTZjMDcyM2Zj
NWI3YjE1MDQ2MDU3NGY0M2JiYjc2ODA2NzljMWJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CkBAIC0yMTYsNiArMjE2LDI2
IEBAIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnYS5iOjotd2Via2l0LWlucHV0LXBsYWNl
aG9sZGVyIHsgfScpIGlzICdhLmI6Oi13ZWJrCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
J2EjYjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IH0nKSBpcyAnYSNiOjotd2Via2l0LWlu
cHV0LXBsYWNlaG9sZGVyIHsgfScKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnYVtiXS5j
I2Q6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgeyB9JykgaXMgJ2FbYl0uYyNkOjotd2Via2l0
LWlucHV0LXBsYWNlaG9sZGVyIHsgfScKIAorUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdh
W2JdOmRlZmF1bHQgeyB9JykgaXMgJ2FbYl06ZGVmYXVsdCB7IH0nCitQQVNTIHBhcnNlVGhlblNl
cmlhbGl6ZVJ1bGUoJ2EuYjpkZWZhdWx0IHsgfScpIGlzICdhLmI6ZGVmYXVsdCB7IH0nCitQQVNT
IHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJ2EjYjpkZWZhdWx0IHsgfScpIGlzICdhI2I6ZGVmYXVs
dCB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJ2FbYl0uYyNkOmRlZmF1bHQgeyB9
JykgaXMgJ2FbYl0uYyNkOmRlZmF1bHQgeyB9JworCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1
bGUoJ2FbYl06aW4tcmFuZ2UgeyB9JykgaXMgJ2FbYl06aW4tcmFuZ2UgeyB9JworUEFTUyBwYXJz
ZVRoZW5TZXJpYWxpemVSdWxlKCdhLmI6aW4tcmFuZ2UgeyB9JykgaXMgJ2EuYjppbi1yYW5nZSB7
IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJ2EjYjppbi1yYW5nZSB7IH0nKSBpcyAn
YSNiOmluLXJhbmdlIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnYVtiXS5jI2Q6
aW4tcmFuZ2UgeyB9JykgaXMgJ2FbYl0uYyNkOmluLXJhbmdlIHsgfScKKworUEFTUyBwYXJzZVRo
ZW5TZXJpYWxpemVSdWxlKCdhW2JdOm91dC1vZi1yYW5nZSB7IH0nKSBpcyAnYVtiXTpvdXQtb2Yt
cmFuZ2UgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdhLmI6b3V0LW9mLXJhbmdl
IHsgfScpIGlzICdhLmI6b3V0LW9mLXJhbmdlIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXpl
UnVsZSgnYSNiOm91dC1vZi1yYW5nZSB7IH0nKSBpcyAnYSNiOm91dC1vZi1yYW5nZSB7IH0nCitQ
QVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJ2FbYl0uYyNkOm91dC1vZi1yYW5nZSB7IH0nKSBp
cyAnYVtiXS5jI2Q6b3V0LW9mLXJhbmdlIHsgfScKKworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVS
dWxlKCdhW2JdOmZvY3VzLXdpdGhpbiB7IH0nKSBpcyAnYVtiXTpmb2N1cy13aXRoaW4geyB9Jwor
UEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdhLmI6Zm9jdXMtd2l0aGluIHsgfScpIGlzICdh
LmI6Zm9jdXMtd2l0aGluIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnYSNiOmZv
Y3VzLXdpdGhpbiB7IH0nKSBpcyAnYSNiOmZvY3VzLXdpdGhpbiB7IH0nCitQQVNTIHBhcnNlVGhl
blNlcmlhbGl6ZVJ1bGUoJ2FbYl0uYyNkOmZvY3VzLXdpdGhpbiB7IH0nKSBpcyAnYVtiXS5jI2Q6
Zm9jdXMtd2l0aGluIHsgfScKKwogUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdpbnB1dDpu
b3QoW3R5cGU9ImZpbGUiXSk6Zm9jdXMgeyB9JykgaXMgJ2lucHV0Om5vdChbdHlwZT0iZmlsZSJd
KTpmb2N1cyB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzotd2Via2l0LWFueShb
dHlwZT0iZmlsZSJdKSB7IH0nKSBpcyAnOi13ZWJraXQtYW55KFt0eXBlPSJmaWxlIl0pIHsgfScK
IFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnOi13ZWJraXQtYW55KDpob3ZlcikgeyB9Jykg
aXMgJzotd2Via2l0LWFueSg6aG92ZXIpIHsgfScKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mt
c2VsZWN0b3ItdGV4dC5odG1sCmluZGV4IGNkNzEwMzQyY2ExNGI0OGYwYmJhM2ViZThhYmJjZGQ4
ZjE0ZmM3MWEuLmQ1NWI1MDIzZjZjOGQ1Yjc1Y2Q3MDY2MTA1NzAzZGI3MWI1ZDIxNGMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQuaHRtbApAQCAtMzA3LDYgKzMw
NywzNCBAQCB0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImFbYl0uYyNkOjotd2Via2l0LWlucHV0LXBs
YWNlaG9sZGVyIik7CiAKIGRlYnVnKCcnKTsKIAordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhW2Jd
OmRlZmF1bHQiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYS5iOmRlZmF1bHQiKTsKK3Rlc3RT
ZWxlY3RvclJvdW5kVHJpcCgiYSNiOmRlZmF1bHQiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgi
YVtiXS5jI2Q6ZGVmYXVsdCIpOworCitkZWJ1ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJp
cCgiYVtiXTppbi1yYW5nZSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhLmI6aW4tcmFuZ2Ui
KTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYSNiOmluLXJhbmdlIik7Cit0ZXN0U2VsZWN0b3JS
b3VuZFRyaXAoImFbYl0uYyNkOmluLXJhbmdlIik7CisKK2RlYnVnKCcnKTsKKwordGVzdFNlbGVj
dG9yUm91bmRUcmlwKCJhW2JdOm91dC1vZi1yYW5nZSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlw
KCJhLmI6b3V0LW9mLXJhbmdlIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImEjYjpvdXQtb2Yt
cmFuZ2UiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYVtiXS5jI2Q6b3V0LW9mLXJhbmdlIik7
CisKK2RlYnVnKCcnKTsKKwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhW2JdOmZvY3VzLXdpdGhp
biIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhLmI6Zm9jdXMtd2l0aGluIik7Cit0ZXN0U2Vs
ZWN0b3JSb3VuZFRyaXAoImEjYjpmb2N1cy13aXRoaW4iKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJp
cCgiYVtiXS5jI2Q6Zm9jdXMtd2l0aGluIik7CisKK2RlYnVnKCcnKTsKKwogdGVzdFNlbGVjdG9y
Um91bmRUcmlwKCdpbnB1dDpub3QoW3R5cGU9ImZpbGUiXSk6Zm9jdXMnKTsKIHRlc3RTZWxlY3Rv
clJvdW5kVHJpcCgnOi13ZWJraXQtYW55KFt0eXBlPSJmaWxlIl0pJyk7CiB0ZXN0U2VsZWN0b3JS
b3VuZFRyaXAoJzotd2Via2l0LWFueSg6aG92ZXIpJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBiYzk3
Zjc5M2Q2OGVlZjU5MjE1ZDExNzA0OGZiNDc1NDdkYmNhNjIzLi5kMmI3MjZlYzZlZmE1MGQ3YWM4
MWI0OTc3MTkyMDQ3MzBjMTQ5NGUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
c3Mtc2V0LXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2Nzcy1zZXQtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQKQEAgLTIxOCw2ICsyMTgsMjYg
QEAgUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYS5iOjotd2Via2l0LWlucHV0LXBsYWNl
aG9sZGVyJykgaXMgJ2EuYjo6LXdlYmtpdC0KIFBBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQo
J2EjYjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcicpIGlzICdhI2I6Oi13ZWJraXQtaW5wdXQt
cGxhY2Vob2xkZXInCiBQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhW2JdLmMjZDo6LXdl
YmtpdC1pbnB1dC1wbGFjZWhvbGRlcicpIGlzICdhW2JdLmMjZDo6LXdlYmtpdC1pbnB1dC1wbGFj
ZWhvbGRlcicKIAorUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYVtiXTpkZWZhdWx0Jykg
aXMgJ2FbYl06ZGVmYXVsdCcKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2EuYjpkZWZh
dWx0JykgaXMgJ2EuYjpkZWZhdWx0JworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYSNi
OmRlZmF1bHQnKSBpcyAnYSNiOmRlZmF1bHQnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0
KCdhW2JdLmMjZDpkZWZhdWx0JykgaXMgJ2FbYl0uYyNkOmRlZmF1bHQnCisKK1BBU1Mgc2V0VGhl
blJlYWRTZWxlY3RvclRleHQoJ2FbYl06aW4tcmFuZ2UnKSBpcyAnYVtiXTppbi1yYW5nZScKK1BB
U1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2EuYjppbi1yYW5nZScpIGlzICdhLmI6aW4tcmFu
Z2UnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhI2I6aW4tcmFuZ2UnKSBpcyAnYSNi
OmluLXJhbmdlJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYVtiXS5jI2Q6aW4tcmFu
Z2UnKSBpcyAnYVtiXS5jI2Q6aW4tcmFuZ2UnCisKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRl
eHQoJ2FbYl06b3V0LW9mLXJhbmdlJykgaXMgJ2FbYl06b3V0LW9mLXJhbmdlJworUEFTUyBzZXRU
aGVuUmVhZFNlbGVjdG9yVGV4dCgnYS5iOm91dC1vZi1yYW5nZScpIGlzICdhLmI6b3V0LW9mLXJh
bmdlJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYSNiOm91dC1vZi1yYW5nZScpIGlz
ICdhI2I6b3V0LW9mLXJhbmdlJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYVtiXS5j
I2Q6b3V0LW9mLXJhbmdlJykgaXMgJ2FbYl0uYyNkOm91dC1vZi1yYW5nZScKKworUEFTUyBzZXRU
aGVuUmVhZFNlbGVjdG9yVGV4dCgnYVtiXTpmb2N1cy13aXRoaW4nKSBpcyAnYVtiXTpmb2N1cy13
aXRoaW4nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhLmI6Zm9jdXMtd2l0aGluJykg
aXMgJ2EuYjpmb2N1cy13aXRoaW4nCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhI2I6
Zm9jdXMtd2l0aGluJykgaXMgJ2EjYjpmb2N1cy13aXRoaW4nCitQQVNTIHNldFRoZW5SZWFkU2Vs
ZWN0b3JUZXh0KCdhW2JdLmMjZDpmb2N1cy13aXRoaW4nKSBpcyAnYVtiXS5jI2Q6Zm9jdXMtd2l0
aGluJworCiBQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdpbnB1dDpub3QoW3R5cGU9ImZp
bGUiXSk6Zm9jdXMnKSBpcyAnaW5wdXQ6bm90KFt0eXBlPSJmaWxlIl0pOmZvY3VzJwogUEFTUyBz
ZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnOi13ZWJraXQtYW55KFt0eXBlPSJmaWxlIl0pJykgaXMg
Jzotd2Via2l0LWFueShbdHlwZT0iZmlsZSJdKScKIFBBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRl
eHQoJzotd2Via2l0LWFueSg6aG92ZXIpJykgaXMgJzotd2Via2l0LWFueSg6aG92ZXIpJwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQuaHRtbAppbmRleCAz
MTNjY2EyYjhmZDhkZmViNThkM2NmOWJlODE1NjY4MzJjYWMwY2VhLi44YmFmODIwNmU1YzYzMzgy
MjI2MWMyNGYxMTM4MmJiNzE0YWViNzlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
c3Mtc2V0LXNlbGVjdG9yLXRleHQuaHRtbApAQCAtMzExLDYgKzMxMSwzNCBAQCB0ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoImFbYl0uYyNkOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIik7CiAKIGRl
YnVnKCcnKTsKIAordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhW2JdOmRlZmF1bHQiKTsKK3Rlc3RT
ZWxlY3RvclJvdW5kVHJpcCgiYS5iOmRlZmF1bHQiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgi
YSNiOmRlZmF1bHQiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYVtiXS5jI2Q6ZGVmYXVsdCIp
OworCitkZWJ1ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYVtiXTppbi1yYW5nZSIp
OwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhLmI6aW4tcmFuZ2UiKTsKK3Rlc3RTZWxlY3RvclJv
dW5kVHJpcCgiYSNiOmluLXJhbmdlIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImFbYl0uYyNk
OmluLXJhbmdlIik7CisKK2RlYnVnKCcnKTsKKwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhW2Jd
Om91dC1vZi1yYW5nZSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhLmI6b3V0LW9mLXJhbmdl
Iik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImEjYjpvdXQtb2YtcmFuZ2UiKTsKK3Rlc3RTZWxl
Y3RvclJvdW5kVHJpcCgiYVtiXS5jI2Q6b3V0LW9mLXJhbmdlIik7CisKK2RlYnVnKCcnKTsKKwor
dGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhW2JdOmZvY3VzLXdpdGhpbiIpOwordGVzdFNlbGVjdG9y
Um91bmRUcmlwKCJhLmI6Zm9jdXMtd2l0aGluIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImEj
Yjpmb2N1cy13aXRoaW4iKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYVtiXS5jI2Q6Zm9jdXMt
d2l0aGluIik7CisKK2RlYnVnKCcnKTsKKwogdGVzdFNlbGVjdG9yUm91bmRUcmlwKCdpbnB1dDpu
b3QoW3R5cGU9ImZpbGUiXSk6Zm9jdXMnKTsKIHRlc3RTZWxlY3RvclJvdW5kVHJpcCgnOi13ZWJr
aXQtYW55KFt0eXBlPSJmaWxlIl0pJyk7CiB0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJzotd2Via2l0
LWFueSg6aG92ZXIpJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8t
Zm9jdXMtd2l0aGluLWJhc2ljcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cHNldWRvLWZvY3VzLXdpdGhpbi1iYXNpY3MtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWZm
ZGI1YTM0NjIxMTgzNzUzMzRkOThmMDNjODE3N2IwZTIxYTAwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1iYXNpY3MtZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sIGNsYXNzPSJmb2N1
cy13aXRoaW4iPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgKiB7CisgICAgICAgIGJvcmRlcjogbm9u
ZTsKKyAgICB9CisgICAgLmZvY3VzLXdpdGhpbiB7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlk
IGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBjbGFzcz0iZm9jdXMtd2l0
aGluIj4KKyAgICA8Zm9ybSBpZD0iZm9ybSI+CisgICAgPC9mb3JtPgorICAgIDxkaXYgY2xhc3M9
ImZvY3VzLXdpdGhpbiI+CisgICAgICAgIDxpbnB1dCBmb3JtPSJmb3JtIiBpZD0iaW5wdXQiIGF1
dG9mb2N1cyAgY2xhc3M9ImZvY3VzLXdpdGhpbiI+CisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0IikuZm9jdXMoKTsKKyAgICA8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3BzZXVkby1mb2N1cy13aXRoaW4tYmFzaWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9wc2V1ZG8tZm9jdXMtd2l0aGluLWJhc2ljcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNDY4ZDM3Mzc4
MTVmYjJhYjIzODg4NjczZjZhOTZlMmM3YjI3N2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLWJhc2ljcy5odG1sCkBAIC0wLDAgKzEs
MjMgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAqIHsK
KyAgICAgICAgYm9yZGVyOiBub25lOworICAgIH0KKyAgICA6Zm9jdXMtd2l0aGluIHsKKyAgICAg
ICAgYm9yZGVyOiAycHggc29saWQgZ3JlZW47CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxmb3JtIGlkPSJmb3JtIj4KKyAgICA8L2Zvcm0+CisgICAgPGRpdj4KKyAgICAg
ICAgPGlucHV0IGZvcm09ImZvcm0iIGlkPSJpbnB1dCIgYXV0b2ZvY3VzPgorICAgIDwvZGl2Pgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIpLmZv
Y3VzKCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLWluc2lkZS1zaGFkb3ctZG9tLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLWlu
c2lkZS1zaGFkb3ctZG9tLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RkMmI0YmQ5Y2FlMzM2
NTZkYWQ4ODkyYWNlMjMwMDQ4YjVjZGU4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4taW5zaWRlLXNoYWRvdy1kb20tZXhwZWN0ZWQu
aHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sIGNsYXNzPSJmb2N1
cy13aXRoaW4iPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgKiB7CisgICAgICAgIGJvcmRlcjogbm9u
ZTsKKyAgICB9CisgICAgLmZvY3VzLXdpdGhpbiB7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlk
IGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBjbGFzcz0iZm9jdXMtd2l0
aGluIj4KKyAgICA8ZGl2IGlkPSJyb290IiBjbGFzcz0iZm9jdXMtd2l0aGluIj4KKyAgICA8L2Rp
dj4KKyAgICA8c2NyaXB0PgorICAgICAgICBsZXQgcm9vdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncm9vdCcpOworICAgICAgICBsZXQgZmlyc3RSb290ID0gcm9vdEVsZW1lbnQu
YXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworICAgICAgICBsZXQgaW5zaWRlRGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGluc2lkZURpdi5pbm5lclRl
eHQgPSAiRm9vYmFyIjsKKyAgICAgICAgaW5zaWRlRGl2LmNsYXNzTmFtZSA9ICJmb2N1cy13aXRo
aW4iOworICAgICAgICBsZXQgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aW5wdXQiKQorICAgICAgICBpbnB1dEVsZW1lbnQuY2xhc3NOYW1lID0gImZvY3VzLXdpdGhpbiI7
CisgICAgICAgIGluc2lkZURpdi5hcHBlbmRDaGlsZChpbnB1dEVsZW1lbnQpOworICAgICAgICBm
aXJzdFJvb3QuYXBwZW5kQ2hpbGQoaW5zaWRlRGl2KTsKKyAgICAgICAgaW5wdXRFbGVtZW50LmZv
Y3VzKCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLWluc2lkZS1zaGFkb3ctZG9tLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLWluc2lkZS1zaGFk
b3ctZG9tLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI5ODVlZjBkODM4NTAzNGQ4N2M3Y2IzZDA2MjEyMjFl
YTYxZmYyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkby1m
b2N1cy13aXRoaW4taW5zaWRlLXNoYWRvdy1kb20uaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURP
Q1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgKiB7CisgICAgICAgIGJv
cmRlcjogbm9uZTsKKyAgICB9CisgICAgOmZvY3VzLXdpdGhpbiB7CisgICAgICAgIGJvcmRlcjog
MnB4IHNvbGlkIGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
ZGl2IGlkPSJyb290Ij4KKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgICBsZXQgcm9v
dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm9vdCcpOworICAgICAgICBsZXQg
Zmlyc3RSb290ID0gcm9vdEVsZW1lbnQuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOwor
ICAgICAgICBsZXQgaW5zaWRlRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgICAgIGluc2lkZURpdi5pbm5lclRleHQgPSAiRm9vYmFyIjsKKyAgICAgICAgbGV0IGlucHV0
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikKKyAgICAgICAgaW5zaWRl
RGl2LmFwcGVuZENoaWxkKGlucHV0RWxlbWVudCk7CisgICAgICAgIGZpcnN0Um9vdC5hcHBlbmRD
aGlsZChpbnNpZGVEaXYpOworICAgICAgICBpbnB1dEVsZW1lbnQuZm9jdXMoKTsKKyAgICA8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L3BzZXVkby1mb2N1cy13aXRoaW4tc3R5bGUtc2hhcmluZy0xLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLXN0eWxlLXNoYXJpbmctMS1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyMzMzODFhNDA2Nzg4NmU4NzBhYjRiOGEyNjJlYTAxN2Nl
ZDE3MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8tZm9j
dXMtd2l0aGluLXN0eWxlLXNoYXJpbmctMS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjQgQEAK
KzwhRE9DVFlQRSBIVE1MPgorPGh0bWwgY2xhc3M9ImZvY3VzLXdpdGhpbiI+Cis8aGVhZD4KKzxz
dHlsZT4KKyAgICAqIHsKKyAgICAgICAgYm9yZGVyOiBub25lOworICAgIH0KKyAgICAuZm9jdXMt
d2l0aGluIHsKKyAgICAgICAgYm9yZGVyOiAycHggc29saWQgZ3JlZW47CisgICAgfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5IGNsYXNzPSJmb2N1cy13aXRoaW4iPgorICAgIDxkaXYgY2xhc3M9
ImZvY3VzLXdpdGhpbiI+CisgICAgICAgIDxpbnB1dCBmb3JtPSJmb3JtIiBpZD0iaW5wdXQiIGF1
dG9mb2N1cyAgY2xhc3M9ImZvY3VzLXdpdGhpbiI+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAg
ICAgICAgRm9vCisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgQmFyCisgICAgPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1
ZG8tZm9jdXMtd2l0aGluLXN0eWxlLXNoYXJpbmctMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTEuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NTFhMzAyMjE0ODMxMTVlOGEyNmUxYWQyMWRlZWM4YTY5YmNhNWFhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5n
LTEuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+
Cis8c3R5bGU+CisgICAgKiB7CisgICAgICAgIGJvcmRlcjogbm9uZTsKKyAgICB9CisgICAgOmZv
Y3VzLXdpdGhpbiB7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGdyZWVuOworICAgIH0KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2PgorICAgICAgICA8aW5wdXQgZm9ybT0i
Zm9ybSIgaWQ9ImlucHV0IiBhdXRvZm9jdXM+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAg
ICAgRm9vCisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgQmFyCisgICAgPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8t
Zm9jdXMtd2l0aGluLXN0eWxlLXNoYXJpbmctMi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTItZXhwZWN0ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42YWY5MDk2NTRhNzE5YjI3MGY2MmY4NjcwZGViMDc2ZWFmOWE4OTIwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhp
bi1zdHlsZS1zaGFyaW5nLTItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZ
UEUgSFRNTD4KKzxodG1sIGNsYXNzPSJmb2N1cy13aXRoaW4iPgorPGhlYWQ+Cis8c3R5bGU+Cisg
ICAgKiB7CisgICAgICAgIGJvcmRlcjogbm9uZTsKKyAgICB9CisgICAgLmZvY3VzLXdpdGhpbiB7
CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keSBjbGFzcz0iZm9jdXMtd2l0aGluIj4KKyAgICA8ZGl2IGNsYXNzPSJmb2N1cy13
aXRoaW4iPgorICAgICAgICA8aW5wdXQ+CisgICAgICAgIDxpbnB1dD4KKyAgICAgICAgPGlucHV0
PgorICAgICAgICA8aW5wdXQgY2xhc3M9ImZvY3VzLXdpdGhpbiI+CisgICAgICAgIDxpbnB1dD4K
KyAgICAgICAgPGlucHV0PgorICAgICAgICA8aW5wdXQ+CisgICAgPC9kaXY+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgbGV0IG1pZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImlucHV0IilbM107CisgICAgICAgIG1pZElucHV0LmZvY3VzKCk7CisgICAgPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8t
Zm9jdXMtd2l0aGluLXN0eWxlLXNoYXJpbmctMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWY5
Mjg0YzFkY2E2OThiODNiNWE3MzZmZjUxODhiNjE3MmMzZjIxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTIu
aHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+CisgICAgKiB7CisgICAgICAgIGJvcmRlcjogbm9uZTsKKyAgICB9CisgICAgOmZvY3Vz
LXdpdGhpbiB7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGdyZWVuOworICAgIH0KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2PgorICAgICAgICA8aW5wdXQ+CisgICAgICAg
IDxpbnB1dD4KKyAgICAgICAgPGlucHV0PgorICAgICAgICA8aW5wdXQ+CisgICAgICAgIDxpbnB1
dD4KKyAgICAgICAgPGlucHV0PgorICAgICAgICA8aW5wdXQ+CisgICAgPC9kaXY+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgbGV0IG1pZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImlucHV0IilbM107CisgICAgICAgIG1pZElucHV0LmZvY3VzKCk7CisgICAgPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9y
cy9mb2N1cy13aXRoaW4tc3R5bGUtdXBkYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVj
dG9ycy9mb2N1cy13aXRoaW4tc3R5bGUtdXBkYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTRiOGFlOWEw
MzVmODNmYzQwNzc4YzE4YWViN2IxYWQ4NTkzMWFmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2ZvY3VzLXdpdGhpbi1zdHlsZS11cGRhdGUuaHRtbApAQCAt
MCwwICsxLDE3MCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBpZD0iaHRtbCI+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHN0eWxlIGlkPSJzdHlsZSI+CisqIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKK30K
Kzpmb2N1cy13aXRoaW4geworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxLCAyLCAzKTsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisgICAgPGRpdiBpZD0id2Via2l0
LXRlc3QiPgorICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIxIj4KKyAgICAgICAgICAgIDxkaXYg
aWQ9InNpYmxpbmcxIj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InNpYmxpbmcyIj4KKyAg
ICAgICAgICAgICAgICA8aW5wdXQgaWQ9InRhcmdldDEiPgorICAgICAgICAgICAgPC9kaXY+Cisg
ICAgICAgICAgICA8ZGl2IGlkPSJzaWJsaW5nMyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8ZGl2IGlkPSJjb250YWluZXIyIj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InNpYmxpbmc0
Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InNpYmxpbmc1Ij4KKyAgICAgICAgICAgICAg
ICA8dGV4dGFyZWEgaWQ9InRhcmdldDIiPjwvdGV4dGFyZWE+CisgICAgICAgICAgICA8L2Rpdj4K
KyAgICAgICAgICAgIDxkaXYgaWQ9InNpYmxpbmc2Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgPC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRpb24o
J0NoZWNrIHRoZSBiYXNpYyBmZWF0dXJlcyBvZiB0aGUgOmZvY3VzLXdpdGhpbiBwc2V1ZG8gY2xh
c3MnKTsKKworZnVuY3Rpb24gZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3Rvcigp
IHsKKyAgICBsZXQgZWxlbWVudHMgPSBbXTsKKyAgICBmb3IgKGxldCBlbGVtZW50IG9mIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSkgeworICAgICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHls
ZShlbGVtZW50KS5iYWNrZ3JvdW5kQ29sb3IgPT09ICdyZ2IoMSwgMiwgMyknKSB7CisgICAgICAg
ICAgICBlbGVtZW50cy5wdXNoKGVsZW1lbnQuaWQpOworICAgICAgICB9CisgICAgfQorICAgIHJl
dHVybiBlbGVtZW50czsKK30KKworZnVuY3Rpb24gZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGlu
U2VsZWN0b3IoKSB7CisgICAgbGV0IGVsZW1lbnRzID0gW107CisgICAgZm9yIChsZXQgZWxlbWVu
dCBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6Zm9jdXMtd2l0aGluIikpIHsKKyAgICAg
ICAgZWxlbWVudHMucHVzaChlbGVtZW50LmlkKTsKKyAgICB9CisgICAgcmV0dXJuIGVsZW1lbnRz
OworfQorCitkZWJ1ZygiSW5pdGlhbCBTdGF0ZSIpOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5bGVk
V2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbXScpOworc2hvdWxkQmUoJ2VsZW1lbnRzTWF0
Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnW10nKTsKKworZGVidWcoIkZvY3VzIHRhcmdl
dDEiKTsKK3ZhciB0YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDEiKTsK
K3RhcmdldDEuZm9jdXMoKTsKK3Nob3VsZEJlKCdlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhp
blNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVy
MSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKK3Nob3VsZEJlKCdlbGVtZW50c01hdGNoaW5n
Rm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0Iiwg
ImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7CisKK2RlYnVnKCJGb2N1cyB0
YXJnZXQyIik7Cit2YXIgdGFyZ2V0MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQy
Iik7Cit0YXJnZXQyLmZvY3VzKCk7CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNX
aXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRh
aW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRj
aGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVz
dCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScpOworCitkZWJ1ZygiU2V0
IGRpc3BsYXkgbm9uZSBvbiB0YXJnZXQyIik7Cit0YXJnZXQyLnN0eWxlLmRpc3BsYXkgPSAibm9u
ZSI7CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywg
J1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUi
LCAidGFyZ2V0MiJdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2Vs
ZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwg
InNpYmxpbmc1IiwgInRhcmdldDIiXScpOworc2hvdWxkQmVUcnVlKCd0YXJnZXQyLm1hdGNoZXMo
Ijpmb2N1cyIpJyk7CisKK2RlYnVnKCJGb2N1cyB0YXJnZXQxIik7Cit0YXJnZXQxLmZvY3VzKCk7
CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1si
aHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAi
dGFyZ2V0MSJdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0
b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNp
YmxpbmcyIiwgInRhcmdldDEiXScpOworCitkZWJ1ZygiVHJ5IHRvIGZvY3VzIHRhcmdldDIiKTsK
K3RhcmdldDIuZm9jdXMoKTsKK3Nob3VsZEJlKCdlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhp
blNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVy
MSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKK3Nob3VsZEJlKCdlbGVtZW50c01hdGNoaW5n
Rm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0Iiwg
ImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7CitzaG91bGRCZVRydWUoJ3Rh
cmdldDEubWF0Y2hlcygiOmZvY3VzIiknKTsKK3Nob3VsZEJlRmFsc2UoJ3RhcmdldDIubWF0Y2hl
cygiOmZvY3VzIiknKTsKKworZGVidWcoIlNldCBkaXNwbGF5IGJhY2sgb24gdGFyZ2V0MiIpOwor
dGFyZ2V0Mi5zdHlsZS5kaXNwbGF5ID0gInJldmVydCI7CitzaG91bGRCZSgnZWxlbWVudHNTdHls
ZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10
ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7CitzaG91bGRCZSgn
ZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIs
ICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwgInRhcmdldDEiXScpOwor
CitkZWJ1ZygiRm9jdXMgdGFyZ2V0MiIpOwordGFyZ2V0Mi5mb2N1cygpOworc2hvdWxkQmUoJ2Vs
ZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIs
ICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScpOwor
c2hvdWxkQmUoJ2VsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnWyJodG1s
IiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIsICJ0YXJn
ZXQyIl0nKTsKKworZGVidWcoIlNldCBkaXNwbGF5IG5vbmUgb24gY29udGFpbmVyMiIpOwordmFy
IGNvbnRhaW5lcjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyMiIpOworY29u
dGFpbmVyMi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5bGVk
V2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVz
dCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScpOworc2hvdWxkQmUoJ2Vs
ZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAi
d2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIsICJ0YXJnZXQyIl0nKTsKK3No
b3VsZEJlVHJ1ZSgndGFyZ2V0Mi5tYXRjaGVzKCI6Zm9jdXMiKScpOworCitkZWJ1ZygiRm9jdXMg
dGFyZ2V0MSIpOwordGFyZ2V0MS5mb2N1cygpOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5bGVkV2l0
aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIs
ICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwgInRhcmdldDEiXScpOworc2hvdWxkQmUoJ2VsZW1l
bnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Vi
a2l0LXRlc3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKKworZGVi
dWcoIlRyeSB0byBmb2N1cyB0YXJnZXQyIik7Cit0YXJnZXQyLmZvY3VzKCk7CitzaG91bGRCZSgn
ZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5
IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7
CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0
bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwgInRh
cmdldDEiXScpOworc2hvdWxkQmVUcnVlKCd0YXJnZXQxLm1hdGNoZXMoIjpmb2N1cyIpJyk7Citz
aG91bGRCZUZhbHNlKCd0YXJnZXQyLm1hdGNoZXMoIjpmb2N1cyIpJyk7CisKK2RlYnVnKCJTZXQg
ZGlzcGxheSBiYWNrIG9uIGNvbnRhaW5lcjIiKTsKK3ZhciBjb250YWluZXIyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lcjIiKTsKK2NvbnRhaW5lcjIuc3R5bGUuZGlzcGxheSA9
ICJyZXZlcnQiOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0
b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNp
YmxpbmcyIiwgInRhcmdldDEiXScpOworc2hvdWxkQmUoJ2VsZW1lbnRzTWF0Y2hpbmdGb2N1c1dp
dGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFp
bmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKKworZGVidWcoIkRldGFjaCBjb250YWlu
ZXIxIGZyb20gdGhlIGRvY3VtZW50Iik7Cit2YXIgY29udGFpbmVyMSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb250YWluZXIxIik7Citjb250YWluZXIxLnBhcmVudEVsZW1lbnQucmVtb3Zl
Q2hpbGQoY29udGFpbmVyMSk7CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRo
aW5TZWxlY3RvcigpJywgJ1tdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0
aGluU2VsZWN0b3IoKScsICdbXScpOworc2hvdWxkQmUoJ2NvbnRhaW5lcjEucXVlcnlTZWxlY3Rv
ckFsbCgiOmZvY3VzLXdpdGhpbiIpLmxlbmd0aCcsICcwJyk7CitzaG91bGRCZUZhbHNlKCd0YXJn
ZXQxLm1hdGNoZXMoIjpmb2N1cyIpJyk7CitzaG91bGRCZUZhbHNlKCd0YXJnZXQyLm1hdGNoZXMo
Ijpmb2N1cyIpJyk7CisKK2RlYnVnKCJUcnkgdG8gZm9jdXMgdGFyZ2V0MSIpOwordGFyZ2V0MS5m
b2N1cygpOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3Io
KScsICdbXScpOworc2hvdWxkQmUoJ2VsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9y
KCknLCAnW10nKTsKK3Nob3VsZEJlKCdjb250YWluZXIxLnF1ZXJ5U2VsZWN0b3JBbGwoIjpmb2N1
cy13aXRoaW4iKS5sZW5ndGgnLCAnMCcpOworc2hvdWxkQmVGYWxzZSgndGFyZ2V0MS5tYXRjaGVz
KCI6Zm9jdXMiKScpOworc2hvdWxkQmVGYWxzZSgndGFyZ2V0Mi5tYXRjaGVzKCI6Zm9jdXMiKScp
OworCitkZWJ1ZygiRm9jdXMgdGFyZ2V0MiIpOwordGFyZ2V0Mi5mb2N1cygpOworc2hvdWxkQmUo
J2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9k
eSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScp
Oworc2hvdWxkQmUoJ2VsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnWyJo
dG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIsICJ0
YXJnZXQyIl0nKTsKKworZGVidWcoIkF0dGFjaCBjb250YWluZXIxIGluIGNvbnRhaW5lcjIiKTsK
K2NvbnRhaW5lcjIuYXBwZW5kQ2hpbGQoY29udGFpbmVyMSk7CitzaG91bGRCZSgnZWxlbWVudHNT
dHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtp
dC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdJyk7CitzaG91bGRC
ZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9k
eSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScp
OworCitkZWJ1ZygiRm9jdXMgdGFyZ2V0MSIpOwordGFyZ2V0MS5mb2N1cygpOworc2hvdWxkQmUo
J2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9k
eSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgImNvbnRhaW5lcjEiLCAic2libGluZzIi
LCAidGFyZ2V0MSJdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2Vs
ZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwg
ImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7CisKK2RlYnVnKCJNb3ZlIHRh
cmdldDEgaW4gY29udGFpbmVyMiIpOworY29udGFpbmVyMi5hcHBlbmRDaGlsZCh0YXJnZXQxKTsK
K3Nob3VsZEJlKCdlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnW10n
KTsKK3Nob3VsZEJlKCdlbGVtZW50c01hdGNoaW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1td
Jyk7CitzaG91bGRCZUZhbHNlKCd0YXJnZXQxLm1hdGNoZXMoIjpmb2N1cyIpJyk7CitzaG91bGRC
ZUZhbHNlKCd0YXJnZXQyLm1hdGNoZXMoIjpmb2N1cyIpJyk7CisKK2djKCk7CisKKy8vIENsZWFu
IHVwIHRoZSB0ZXN0LgorZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlYmtpdC10ZXN0Iikuc3R5
bGUuZGlzcGxheSA9ICJub25lIjsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZSIpLmlu
bmVySFRNTCA9ICIiOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281878</attachid>
            <date>2016-06-22 15:31:06 -0700</date>
            <delta_ts>2016-06-22 16:35:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140144-20160622153058.patch</filename>
            <type>text/plain</type>
            <size>69443</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyMzMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU0OWJjNjNkMjQyYTkx
MjE2ZDEyNDU3MzliNzMxNjQ1MmE1NTQ5My4uMmJiOTMwZjVkZWMwOTRiMGVlNTI2ODFiZDZlM2M2
ZDVjOTgwNDk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE2LTA2LTIyICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBBZGQgc3Vw
cG9ydCBmb3IgQ1NTNCA6Zm9jdXMtd2l0aGluIHBzZXVkbworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzL3BzZXVkby1mb2N1cy13
aXRoaW4tYmFzaWNzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzL3BzZXVkby1mb2N1cy13
aXRoaW4taW5zaWRlLXNoYWRvdy1kb20uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvcHNl
dWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTEuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTIuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9zZWxlY3RvcnMvZm9jdXMtd2l0aGluLXN0eWxlLXVwZGF0ZS5odG1sCisKKyAg
ICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0
b3I6OnNlbGVjdG9yVGV4dCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAgICAg
ICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNo
ZWNrZXI6OmNoZWNrT25lKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENv
bXBhdGliaWxpdHlFbGVtZW50TWFwLmluOgorICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBp
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OmFkZFBzZXVkb0Ns
YXNzVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudE1hdGNoaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50
SGFzRm9jdXNXaXRoaW4pOgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmRlc3Ryb3lSZW5kZXJUcmVlSWZOZWVkZWQpOgorICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6On5FbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldEZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OnVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpzZXRJc05hbWVkRmxvd0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmNsZWFySXNOYW1lZEZsb3dDb250ZW50RWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50OjpzZXRTdHlsZUFmZmVjdGVkQnlGb2N1c1dpdGhpbik6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50OjpyYXJlRGF0YVN0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0aGluKToK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJhcmVEYXRhSXNOYW1lZEZsb3dDb250ZW50RWxl
bWVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6Omhhc0ZvY3VzV2l0aGluKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnN0eWxlQWZm
ZWN0ZWRCeUZvY3VzV2l0aGluKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmlzTmFtZWRG
bG93Q29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0SGFzRm9j
dXNXaXRoaW4pOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6c3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpzZXRTdHlsZUFmZmVjdGVkQnlGb2N1c1dp
dGhpbik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OmlzTmFtZWRGbG93Q29u
dGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjpzZXRJc05h
bWVkRmxvd0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0
YTo6RWxlbWVudFJhcmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6
cmVzZXRDb21wdXRlZFN0eWxlKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6ZmxhZ0hhc0ZvY3VzV2l0aGluKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OmlzTmFtZWRGbG93Q29udGVudE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6c2V0SXNOYW1lZEZsb3dDb250ZW50Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpjbGVhcklzTmFtZWRGbG93Q29udGVudE5vZGUpOiBEZWxldGVkLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpjbGVhckNvbnRlbnRFbGVtZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudEVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjp1bnJlZ2lz
dGVyTmFtZWRGbG93Q29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6bmV4dE5vZGVJ
bnNpZGVDb250ZW50RWxlbWVudCk6CisgICAgICAgICogc3R5bGUvUmVuZGVyVHJlZVVwZGF0ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZUVsZW1lbnRS
ZW5kZXJlcik6CisgICAgICAgICogc3R5bGUvU3R5bGVSZWxhdGlvbnMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OmNvbW1pdFJlbGF0aW9uc1RvUmVuZGVyU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OmNvbW1pdFJlbGF0aW9ucyk6CisgICAgICAgICogc3R5bGUvU3R5bGVS
ZWxhdGlvbnMuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2hhcmluZ1Jlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0
aEVsZW1lbnQpOgorCiAyMDE2LTA2LTIyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIE1lZGlhIGNvbnRyb2xzIHN0b3Agd29ya2luZyBhZnRlciBleGl0aW5nIFBp
UApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggNTYwYzQyZGNiNDgzMTI4ZmZjZjk2
YjM5NDYxNmYxNTRjMTNkYzgzNy4uZGViNDcwZTIyY2ZhMTdhODg4MGE5Y2Y2YTA5NTczZjBkMmQ2
ZDdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC00OTcsNiArNDk3LDkgQEAg
U3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUp
IGNvbnN0CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ZvY3VzOgog
ICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6Zm9jdXMiKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRm9j
dXNXaXRoaW46CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpmb2N1cy13aXRo
aW4iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAg
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0Z1dHVyZToKICAgICAgICAg
ICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmZ1dHVyZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuaAppbmRleCA0OGIyYzYwY2Q3YmFlMjYyODAwZmNhMjgyN2IzZmRlZDJhNmY5YmYwLi5hOGZl
NTkxYTA3ZGQzYWFkOWFjNzc5ZThjMDdlNDRhYmQwNDExOTU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3IuaApAQCAtMTEyLDYgKzExMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
ICAgIFBzZXVkb0NsYXNzSG92ZXIsCiAgICAgICAgICAgICBQc2V1ZG9DbGFzc0RyYWcsCiAgICAg
ICAgICAgICBQc2V1ZG9DbGFzc0ZvY3VzLAorICAgICAgICAgICAgUHNldWRvQ2xhc3NGb2N1c1dp
dGhpbiwKICAgICAgICAgICAgIFBzZXVkb0NsYXNzQWN0aXZlLAogICAgICAgICAgICAgUHNldWRv
Q2xhc3NDaGVja2VkLAogICAgICAgICAgICAgUHNldWRvQ2xhc3NFbmFibGVkLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCA2MDA3MDdkOTAwMDdlNWYzOWI4ZDIyNDcx
YjcyOTZlZmM0OTc5MGM2Li5iYzc0N2VhNjEwYTA2OGZmNTNiNjc5Y2YzMDc5MzRjYzI0ZWJiNmEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtOTQ0LDYgKzk0NCw5
IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZShDaGVja2luZ0NvbnRleHQmIGNoZWNr
aW5nQ29udGV4dCwgY29uc3QgTG9jYWxDb250CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1czoKICAgICAgICAgICAgIHJldHVybiBt
YXRjaGVzRm9jdXNQc2V1ZG9DbGFzcyhlbGVtZW50KTsKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NGb2N1c1dpdGhpbjoKKyAgICAgICAgICAgIGFkZFN0eWxlUmVsYXRpb24o
Y2hlY2tpbmdDb250ZXh0LCBlbGVtZW50LCBTdHlsZTo6UmVsYXRpb246OkFmZmVjdGVkQnlGb2N1
c1dpdGhpbik7CisgICAgICAgICAgICByZXR1cm4gZWxlbWVudC5oYXNGb2N1c1dpdGhpbigpOwog
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0hvdmVyOgogICAgICAgICAgICAg
aWYgKG1fc3RyaWN0UGFyc2luZyB8fCBlbGVtZW50LmlzTGluaygpIHx8IGNhbk1hdGNoSG92ZXJP
ckFjdGl2ZUluUXVpcmtzTW9kZShjb250ZXh0KSkgewogICAgICAgICAgICAgICAgIGFkZFN0eWxl
UmVsYXRpb24oY2hlY2tpbmdDb250ZXh0LCBlbGVtZW50LCBTdHlsZTo6UmVsYXRpb246OkFmZmVj
dGVkQnlIb3Zlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1
ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbgppbmRleCA3
MjIwZDE4YjhkNGQxMTE1YTE5NmM4ZGE0MmQxNWI0YmZmMDAwODcyLi43OGZkZDVjNzBjNzZjZTYz
MDJkYjA1Njk2NzhlYTljMjUxNWI5MWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1l
bnRNYXAuaW4KQEAgLTI1LDYgKzI1LDcgQEAgZmlyc3QtbGV0dGVyLCBQc2V1ZG9DbGFzc1Vua25v
d24sIFBzZXVkb0VsZW1lbnRGaXJzdExldHRlcgogZmlyc3QtbGluZSwgUHNldWRvQ2xhc3NVbmtu
b3duLCBQc2V1ZG9FbGVtZW50Rmlyc3RMaW5lCiBmaXJzdC1vZi10eXBlCiBmb2N1cworZm9jdXMt
d2l0aGluCiBob3Jpem9udGFsCiBob3N0CiBob3ZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1Nl
bGVjdG9yQ29tcGlsZXIuY3BwCmluZGV4IDAwYTIxMDk1OTFmNThmNmJhNzBiOTE1Y2M3YTU4MzE2
YWU0NmY4MGYuLjYzOTg1ZDQyNjUwMDY2NWY3NGQxZTRjMjE2M2RiZjJkZDA4YTkyMGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTMyMyw2ICszMjMs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2VuZXJhdGVFbGVtZW50SXNSb290KEFzc2VtYmxlcjo6
SnVtcExpc3QmIGZhaWx1cmVDYXNlcyk7CiAgICAgdm9pZCBnZW5lcmF0ZUVsZW1lbnRJc1Njb3Bl
Um9vdChBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpOwogICAgIHZvaWQgZ2VuZXJh
dGVFbGVtZW50SXNUYXJnZXQoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzKTsKKyAg
ICB2b2lkIGdlbmVyYXRlRWxlbWVudEhhc0ZvY3VzV2l0aGluKEFzc2VtYmxlcjo6SnVtcExpc3Qm
IGZhaWx1cmVDYXNlcyk7CiAKICAgICAvLyBIZWxwZXJzLgogICAgIHZvaWQgZ2VuZXJhdGVBZGRT
dHlsZVJlbGF0aW9uSWZSZXNvbHZpbmdTdHlsZShBc3NlbWJsZXI6OlJlZ2lzdGVySUQgZWxlbWVu
dCwgU3R5bGU6OlJlbGF0aW9uOjpUeXBlLCBPcHRpb25hbDxBc3NlbWJsZXI6OlJlZ2lzdGVySUQ+
IHZhbHVlID0geyB9KTsKQEAgLTY3NCw2ICs2NzUsNyBAQCBzdGF0aWMgaW5saW5lIEZ1bmN0aW9u
VHlwZSBhZGRQc2V1ZG9DbGFzc1R5cGUoY29uc3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yLCBTZWxl
YwogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTGFzdENoaWxkOgogICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzT25seUNoaWxkOgogICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzUGxhY2Vob2xkZXJTaG93bjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzc0ZvY3VzV2l0aGluOgogICAgICAgICBmcmFnbWVudC5wc2V1ZG9DbGFzc2VzLmFkZCh0
eXBlKTsKICAgICAgICAgaWYgKHNlbGVjdG9yQ29udGV4dCA9PSBTZWxlY3RvckNvbnRleHQ6OlF1
ZXJ5U2VsZWN0b3IpCiAgICAgICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxl
Y3RvckNoZWNrZXI7CkBAIC0yNTc4LDYgKzI1ODAsOSBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVy
YXRvcjo6Z2VuZXJhdGVFbGVtZW50TWF0Y2hpbmcoQXNzZW1ibGVyOjpKdW1wTGlzdCYgbWF0Y2hp
bgogICAgIGlmIChmcmFnbWVudC5wc2V1ZG9DbGFzc2VzLmNvbnRhaW5zKENTU1NlbGVjdG9yOjpQ
c2V1ZG9DbGFzc1RhcmdldCkpCiAgICAgICAgIGdlbmVyYXRlRWxlbWVudElzVGFyZ2V0KG1hdGNo
aW5nUG9zdFRhZ05hbWVGYWlsdXJlQ2FzZXMpOwogCisgICAgaWYgKGZyYWdtZW50LnBzZXVkb0Ns
YXNzZXMuY29udGFpbnMoQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRm9jdXNXaXRoaW4pKQorICAg
ICAgICBnZW5lcmF0ZUVsZW1lbnRIYXNGb2N1c1dpdGhpbihtYXRjaGluZ1Bvc3RUYWdOYW1lRmFp
bHVyZUNhc2VzKTsKKwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcmFnbWVudC51bm9w
dGltaXplZFBzZXVkb0NsYXNzZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgIGdlbmVyYXRlRWxlbWVu
dEZ1bmN0aW9uQ2FsbFRlc3QobWF0Y2hpbmdQb3N0VGFnTmFtZUZhaWx1cmVDYXNlcywgZnJhZ21l
bnQudW5vcHRpbWl6ZWRQc2V1ZG9DbGFzc2VzW2ldKTsKIApAQCAtMzc5MSw2ICszNzk2LDEyIEBA
IHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRJc1RhcmdldChBc3Nl
bWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlCiAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChtX2Fzc2Vt
Ymxlci5icmFuY2hQdHIoQXNzZW1ibGVyOjpOb3RFcXVhbCwgQXNzZW1ibGVyOjpBZGRyZXNzKGRv
Y3VtZW50LCBEb2N1bWVudDo6Y3NzVGFyZ2V0TWVtb3J5T2Zmc2V0KCkpLCBlbGVtZW50QWRkcmVz
c1JlZ2lzdGVyKSk7CiB9CiAKK3ZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVs
ZW1lbnRIYXNGb2N1c1dpdGhpbihBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpCit7
CisgICAgZ2VuZXJhdGVBZGRTdHlsZVJlbGF0aW9uSWZSZXNvbHZpbmdTdHlsZShlbGVtZW50QWRk
cmVzc1JlZ2lzdGVyLCBTdHlsZTo6UmVsYXRpb246OkFmZmVjdGVkQnlGb2N1c1dpdGhpbik7Cisg
ICAgZmFpbHVyZUNhc2VzLmFwcGVuZChtX2Fzc2VtYmxlci5icmFuY2hUZXN0MzIoQXNzZW1ibGVy
OjpaZXJvLCBBc3NlbWJsZXI6OkFkZHJlc3MoZWxlbWVudEFkZHJlc3NSZWdpc3RlciwgTm9kZTo6
bm9kZUZsYWdzTWVtb3J5T2Zmc2V0KCkpLCBBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihOb2RlOjpm
bGFnSGFzRm9jdXNXaXRoaW4oKSkpKTsKK30KKwogdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmdlbmVyYXRlRWxlbWVudElzRmlyc3RMaW5rKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVD
YXNlcywgQXNzZW1ibGVyOjpSZWdpc3RlcklEIGVsZW1lbnQpCiB7CiAgICAgTG9jYWxSZWdpc3Rl
ciBjdXJyZW50RWxlbWVudChtX3JlZ2lzdGVyQWxsb2NhdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcAppbmRleCBkYTZlYWU3MGNkN2FmMzhmM2FmMzk3YzgwNzJhMmI3Yzg4ZWNk
OGIwLi4yMjc2YjQyMmZmODg0ZDA2NjNkN2ViYmYyMTMzNDM3ZWE5ZGJlOWI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0xMDMsOSArMTAzLDExIEBAIHN0YXRpYyBpbmxp
bmUgdm9pZCBkZXN0cm95UmVuZGVyVHJlZUlmTmVlZGVkKE5vZGUmIGNoaWxkKQogICAgIGJvb2wg
Y2hpbGRJc0hUTUxTbG90RWxlbWVudCA9IGZhbHNlOwogICAgIGNoaWxkSXNIVE1MU2xvdEVsZW1l
bnQgPSBpczxIVE1MU2xvdEVsZW1lbnQ+KGNoaWxkKTsKICAgICAvLyBGSVhNRTogR2V0IHJpZCBv
ZiB0aGUgbmFtZWQgZmxvdyB0ZXN0LgotICAgIGlmICghY2hpbGQucmVuZGVyZXIoKSAmJiAhY2hp
bGQuaXNOYW1lZEZsb3dDb250ZW50Tm9kZSgpICYmICFjaGlsZElzSFRNTFNsb3RFbGVtZW50KQor
ICAgIGJvb2wgaXNFbGVtZW50ID0gaXM8RWxlbWVudD4oY2hpbGQpOworICAgIGlmICghY2hpbGQu
cmVuZGVyZXIoKSAmJiAhY2hpbGRJc0hUTUxTbG90RWxlbWVudAorICAgICAgICAmJiAhKGlzRWxl
bWVudCAmJiBkb3duY2FzdDxFbGVtZW50PihjaGlsZCkuaXNOYW1lZEZsb3dDb250ZW50RWxlbWVu
dCgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChpczxFbGVtZW50PihjaGlsZCkpCisgICAg
aWYgKGlzRWxlbWVudCkKICAgICAgICAgUmVuZGVyVHJlZVVwZGF0ZXI6OnRlYXJEb3duUmVuZGVy
ZXJzKGRvd25jYXN0PEVsZW1lbnQ+KGNoaWxkKSk7CiAgICAgZWxzZSBpZiAoaXM8VGV4dD4oY2hp
bGQpKQogICAgICAgICBSZW5kZXJUcmVlVXBkYXRlcjo6dGVhckRvd25SZW5kZXJlcihkb3duY2Fz
dDxUZXh0PihjaGlsZCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGI4YmU3MWNjN2Y5OWY0
ZGE2Y2YwYjE4OGRjODM5MTU2Y2NjMWZhNjMuLmI4ZTljZDI1OWFhMmJhZWQ3Mzg3NzU1NjgzMWQz
ZjQyNzRiN2EzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTE4Miw4ICsxODIsOCBAQCBF
bGVtZW50Ojp+RWxlbWVudCgpCiAgICAgaWYgKGRvY3VtZW50KCkuaGFzTGl2aW5nUmVuZGVyVHJl
ZSgpKSB7CiAgICAgICAgIC8vIFdoZW4gdGhlIGRvY3VtZW50IGlzIG5vdCBkZXN0cm95ZWQsIGFu
IGVsZW1lbnQgdGhhdCB3YXMgcGFydCBvZiBhIG5hbWVkIGZsb3cKICAgICAgICAgLy8gY29udGVu
dCBub2RlcyBzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgY29udGVudCBub2RlcyBj
b2xsZWN0aW9uCi0gICAgICAgIC8vIGFuZCB0aGUgaXNOYW1lZEZsb3dDb250ZW50Tm9kZSBmbGFn
IHJlc2V0LgotICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighaXNOYW1l
ZEZsb3dDb250ZW50Tm9kZSgpKTsKKyAgICAgICAgLy8gYW5kIHRoZSBpc05hbWVkRmxvd0NvbnRl
bnRFbGVtZW50IGZsYWcgcmVzZXQuCisgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFpc05hbWVkRmxvd0NvbnRlbnRFbGVtZW50KCkpOwogICAgIH0KICNlbmRpZgogCkBA
IC02MDEsNiArNjAxLDkgQEAgdm9pZCBFbGVtZW50OjpzZXRGb2N1cyhib29sIGZsYWcpCiAKICAg
ICBkb2N1bWVudCgpLnVzZXJBY3Rpb25FbGVtZW50cygpLnNldEZvY3VzZWQodGhpcywgZmxhZyk7
CiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOworCisgICAgZm9yIChFbGVtZW50KiBlbGVtZW50
ID0gdGhpczsgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudE9yU2hhZG93SG9zdEVs
ZW1lbnQoKSkKKyAgICAgICAgZWxlbWVudC0+c2V0SGFzRm9jdXNXaXRoaW4oZmxhZyk7CiB9CiAK
IHZvaWQgRWxlbWVudDo6c2V0SG92ZXJlZChib29sIGZsYWcpCkBAIC0xNjIwLDcgKzE2MjMsNyBA
QCB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmIGluc2VydGlvblBvaW50
KQogCiB2b2lkIEVsZW1lbnQ6OnVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50RWxlbWVudCgpCiB7
Ci0gICAgaWYgKGlzTmFtZWRGbG93Q29udGVudE5vZGUoKSAmJiBkb2N1bWVudCgpLnJlbmRlclZp
ZXcoKSkKKyAgICBpZiAoaXNOYW1lZEZsb3dDb250ZW50RWxlbWVudCgpICYmIGRvY3VtZW50KCku
cmVuZGVyVmlldygpKQogICAgICAgICBkb2N1bWVudCgpLnJlbmRlclZpZXcoKS0+Zmxvd1RocmVh
ZENvbnRyb2xsZXIoKS51bnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudEVsZW1lbnQoKnRoaXMpOwog
fQogCkBAIC0xOTA4LDYgKzE5MTEsMTYgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVFdmVu
dExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBRdWEKICAgICBz
ZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgSlNMYXp5RXZlbnRMaXN0ZW5lcjo6
Y3JlYXRlKCp0aGlzLCBhdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGVWYWx1ZSkpOwogfQogCit2b2lk
IEVsZW1lbnQ6OnNldElzTmFtZWRGbG93Q29udGVudEVsZW1lbnQoKQoreworICAgIGVuc3VyZUVs
ZW1lbnRSYXJlRGF0YSgpLnNldElzTmFtZWRGbG93Q29udGVudEVsZW1lbnQodHJ1ZSk7Cit9CisK
K3ZvaWQgRWxlbWVudDo6Y2xlYXJJc05hbWVkRmxvd0NvbnRlbnRFbGVtZW50KCkKK3sKKyAgICBl
bnN1cmVFbGVtZW50UmFyZURhdGEoKS5zZXRJc05hbWVkRmxvd0NvbnRlbnRFbGVtZW50KGZhbHNl
KTsKK30KKwogdm9pZCBFbGVtZW50OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiB7CiAgICAg
Q29udGFpbmVyTm9kZTo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKQEAgLTI1NjIsNiArMjU3
NSwxMSBAQCB2b2lkIEVsZW1lbnQ6OnNldFN0eWxlQWZmZWN0ZWRCeUVtcHR5KCkKICAgICBlbnN1
cmVFbGVtZW50UmFyZURhdGEoKS5zZXRTdHlsZUFmZmVjdGVkQnlFbXB0eSh0cnVlKTsKIH0KIAor
dm9pZCBFbGVtZW50OjpzZXRTdHlsZUFmZmVjdGVkQnlGb2N1c1dpdGhpbigpCit7CisgICAgZW5z
dXJlRWxlbWVudFJhcmVEYXRhKCkuc2V0U3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4odHJ1ZSk7
Cit9CisKIHZvaWQgRWxlbWVudDo6c2V0Q2hpbGRyZW5BZmZlY3RlZEJ5QWN0aXZlKCkKIHsKICAg
ICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5zZXRDaGlsZHJlbkFmZmVjdGVkQnlBY3RpdmUodHJ1
ZSk7CkBAIC0yNjA3LDYgKzI2MjUsMTggQEAgYm9vbCBFbGVtZW50OjpyYXJlRGF0YVN0eWxlQWZm
ZWN0ZWRCeUVtcHR5KCkgY29uc3QKICAgICByZXR1cm4gZWxlbWVudFJhcmVEYXRhKCktPnN0eWxl
QWZmZWN0ZWRCeUVtcHR5KCk7CiB9CiAKK2Jvb2wgRWxlbWVudDo6cmFyZURhdGFTdHlsZUFmZmVj
dGVkQnlGb2N1c1dpdGhpbigpIGNvbnN0Cit7CisgICAgQVNTRVJUKGhhc1JhcmVEYXRhKCkpOwor
ICAgIHJldHVybiBlbGVtZW50UmFyZURhdGEoKS0+c3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4o
KTsKK30KKworYm9vbCBFbGVtZW50OjpyYXJlRGF0YUlzTmFtZWRGbG93Q29udGVudEVsZW1lbnQo
KSBjb25zdAoreworICAgIEFTU0VSVChoYXNSYXJlRGF0YSgpKTsKKyAgICByZXR1cm4gZWxlbWVu
dFJhcmVEYXRhKCktPmlzTmFtZWRGbG93Q29udGVudEVsZW1lbnQoKTsKK30KKwogYm9vbCBFbGVt
ZW50OjpyYXJlRGF0YUNoaWxkcmVuQWZmZWN0ZWRCeUFjdGl2ZSgpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKGhhc1JhcmVEYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMzBlMDUzZTE5YzE5OTdm
ODQ4MmIzYTQyN2UxYzYzZDlmNjIzY2NmNC4uYTZiYjIxMjk3NDQwNTUwNTZiYTg0YjA3MzU5NDRj
NjA1OTg2MmRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yNzMsMTAgKzI3MywxMiBAQCBwdWJs
aWM6CiAgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBpc1VzZXJBY3Rpb25FbGVtZW50
KCkgJiYgaXNVc2VyQWN0aW9uRWxlbWVudEFjdGl2ZSgpOyB9CiAgICAgYm9vbCBob3ZlcmVkKCkg
Y29uc3QgeyByZXR1cm4gaXNVc2VyQWN0aW9uRWxlbWVudCgpICYmIGlzVXNlckFjdGlvbkVsZW1l
bnRIb3ZlcmVkKCk7IH0KICAgICBib29sIGZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBpc1VzZXJB
Y3Rpb25FbGVtZW50KCkgJiYgaXNVc2VyQWN0aW9uRWxlbWVudEZvY3VzZWQoKTsgfQorICAgIGJv
b2wgaGFzRm9jdXNXaXRoaW4oKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKEhhc0ZvY3VzV2l0aGlu
KTsgfTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBmbGFnID0gdHJ1ZSwgYm9v
bCBwYXVzZSA9IGZhbHNlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SG92ZXJlZChib29sIGZsYWcg
PSB0cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCBmbGFnKTsKKyAgICB2b2lk
IHNldEhhc0ZvY3VzV2l0aGluKGJvb2wgZmxhZyk7CiAKICAgICBib29sIHRhYkluZGV4U2V0RXhw
bGljaXRseSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7
CkBAIC0yOTYsNiArMjk4LDcgQEAgcHVibGljOgogCiAgICAgLy8gTWV0aG9kcyBmb3IgaW5kaWNh
dGluZyB0aGUgc3R5bGUgaXMgYWZmZWN0ZWQgYnkgZHluYW1pYyB1cGRhdGVzIChlLmcuLCBjaGls
ZHJlbiBjaGFuZ2luZywgb3VyIHBvc2l0aW9uIGNoYW5naW5nIGluIG91ciBzaWJsaW5nIGxpc3Qs
IGV0Yy4pCiAgICAgYm9vbCBzdHlsZUFmZmVjdGVkQnlFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIGhh
c1JhcmVEYXRhKCkgJiYgcmFyZURhdGFTdHlsZUFmZmVjdGVkQnlFbXB0eSgpOyB9CisgICAgYm9v
bCBzdHlsZUFmZmVjdGVkQnlGb2N1c1dpdGhpbigpIGNvbnN0IHsgcmV0dXJuIGhhc1JhcmVEYXRh
KCkgJiYgcmFyZURhdGFTdHlsZUFmZmVjdGVkQnlGb2N1c1dpdGhpbigpOyB9CiAgICAgYm9vbCBj
aGlsZHJlbkFmZmVjdGVkQnlIb3ZlcigpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoQ2hpbGRyZW5B
ZmZlY3RlZEJ5SG92ZXJSdWxlc0ZsYWcpOyB9CiAgICAgYm9vbCBjaGlsZHJlbkFmZmVjdGVkQnlB
Y3RpdmUoKSBjb25zdCB7IHJldHVybiBoYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhQ2hpbGRyZW5B
ZmZlY3RlZEJ5QWN0aXZlKCk7IH0KICAgICBib29sIGNoaWxkcmVuQWZmZWN0ZWRCeURyYWcoKSBj
b25zdCB7IHJldHVybiBoYXNSYXJlRGF0YSgpICYmIHJhcmVEYXRhQ2hpbGRyZW5BZmZlY3RlZEJ5
RHJhZygpOyB9CkBAIC0zMDksNiArMzEyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzRmxhZ3NT
ZXREdXJpbmdTdHlsaW5nT2ZDaGlsZHJlbigpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRTdHlsZUFm
ZmVjdGVkQnlFbXB0eSgpOworICAgIHZvaWQgc2V0U3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4o
KTsKICAgICB2b2lkIHNldENoaWxkcmVuQWZmZWN0ZWRCeUhvdmVyKCkgeyBzZXRGbGFnKENoaWxk
cmVuQWZmZWN0ZWRCeUhvdmVyUnVsZXNGbGFnKTsgfQogICAgIHZvaWQgc2V0Q2hpbGRyZW5BZmZl
Y3RlZEJ5QWN0aXZlKCk7CiAgICAgdm9pZCBzZXRDaGlsZHJlbkFmZmVjdGVkQnlEcmFnKCk7CkBA
IC01MjEsNiArNTI1LDEwIEBAIHB1YmxpYzoKICAgICB1c2luZyBDb250YWluZXJOb2RlOjpzZXRB
dHRyaWJ1dGVFdmVudExpc3RlbmVyOwogICAgIHZvaWQgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5l
cihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSk7CiAKKyAgICBib29sIGlzTmFt
ZWRGbG93Q29udGVudEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBoYXNSYXJlRGF0YSgpICYmIHJh
cmVEYXRhSXNOYW1lZEZsb3dDb250ZW50RWxlbWVudCgpOyB9CisgICAgdm9pZCBzZXRJc05hbWVk
Rmxvd0NvbnRlbnRFbGVtZW50KCk7CisgICAgdm9pZCBjbGVhcklzTmFtZWRGbG93Q29udGVudEVs
ZW1lbnQoKTsKKwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSk7CiAKQEAgLTYwNyw2ICs2MTUsOCBAQCBwcml2
YXRlOgogICAgIGNvbnN0IFJlbmRlclN0eWxlJiByZXNvbHZlQ29tcHV0ZWRTdHlsZSgpOwogCiAg
ICAgYm9vbCByYXJlRGF0YVN0eWxlQWZmZWN0ZWRCeUVtcHR5KCkgY29uc3Q7CisgICAgYm9vbCBy
YXJlRGF0YVN0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0aGluKCkgY29uc3Q7CisgICAgYm9vbCByYXJl
RGF0YUlzTmFtZWRGbG93Q29udGVudEVsZW1lbnQoKSBjb25zdDsKICAgICBib29sIHJhcmVEYXRh
Q2hpbGRyZW5BZmZlY3RlZEJ5SG92ZXIoKSBjb25zdDsKICAgICBib29sIHJhcmVEYXRhQ2hpbGRy
ZW5BZmZlY3RlZEJ5QWN0aXZlKCkgY29uc3Q7CiAgICAgYm9vbCByYXJlRGF0YUNoaWxkcmVuQWZm
ZWN0ZWRCeURyYWcoKSBjb25zdDsKQEAgLTc0OSw2ICs3NTksMTUgQEAgaW5saW5lIGJvb2wgc2hv
dWxkSWdub3JlQXR0cmlidXRlQ2FzZShjb25zdCBFbGVtZW50JiBlbGVtZW50KQogICAgIHJldHVy
biBlbGVtZW50LmlzSFRNTEVsZW1lbnQoKSAmJiBlbGVtZW50LmRvY3VtZW50KCkuaXNIVE1MRG9j
dW1lbnQoKTsKIH0KIAoraW5saW5lIHZvaWQgRWxlbWVudDo6c2V0SGFzRm9jdXNXaXRoaW4oYm9v
bCBmbGFnKQoreworICAgIGlmIChoYXNGb2N1c1dpdGhpbigpID09IGZsYWcpCisgICAgICAgIHJl
dHVybjsKKyAgICBzZXRGbGFnKGZsYWcsIEhhc0ZvY3VzV2l0aGluKTsKKyAgICBpZiAoc3R5bGVB
ZmZlY3RlZEJ5Rm9jdXNXaXRoaW4oKSkKKyAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVH
SU4oV2ViQ29yZTo6RWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRl
eCA5MWQxMzIzOWIxY2UyYjc4NTZiZGU3NTcxYWIzYjg3ZDdjYTAzYmQ2Li5jODE5MGQ1ZjRlMGFl
M2VmMzJmMDFjZTkxZWI2YTM3NzQxZTk5YmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwg
MjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDgsIDIwMDksIDIwMTAsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IERhdmlkIFNtaXRoIDxjYXRmaXNoLm1hbkBn
bWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNTgsOSArNTgsMTUgQEAgcHVibGljOgogICAgIGJv
b2wgc3R5bGVBZmZlY3RlZEJ5RW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlQWZmZWN0ZWRC
eUVtcHR5OyB9CiAgICAgdm9pZCBzZXRTdHlsZUFmZmVjdGVkQnlFbXB0eShib29sIHZhbHVlKSB7
IG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHkgPSB2YWx1ZTsgfQogCisgICAgYm9vbCBzdHlsZUFmZmVj
dGVkQnlGb2N1c1dpdGhpbigpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGVBZmZlY3RlZEJ5Rm9jdXNX
aXRoaW47IH0KKyAgICB2b2lkIHNldFN0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0aGluKGJvb2wgdmFs
dWUpIHsgbV9zdHlsZUFmZmVjdGVkQnlGb2N1c1dpdGhpbiA9IHZhbHVlOyB9CisKICAgICBSZWdp
b25PdmVyc2V0U3RhdGUgcmVnaW9uT3ZlcnNldFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWdp
b25PdmVyc2V0U3RhdGU7IH0KICAgICB2b2lkIHNldFJlZ2lvbk92ZXJzZXRTdGF0ZShSZWdpb25P
dmVyc2V0U3RhdGUgc3RhdGUpIHsgbV9yZWdpb25PdmVyc2V0U3RhdGUgPSBzdGF0ZTsgfQogCisg
ICAgYm9vbCBpc05hbWVkRmxvd0NvbnRlbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9pc05h
bWVkRmxvd0NvbnRlbnRFbGVtZW50OyB9CisgICAgdm9pZCBzZXRJc05hbWVkRmxvd0NvbnRlbnRF
bGVtZW50KGJvb2wgdmFsdWUpIHsgbV9pc05hbWVkRmxvd0NvbnRlbnRFbGVtZW50ID0gdmFsdWU7
IH0KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIGNvbnRhaW5zRnVsbFNj
cmVlbkVsZW1lbnQoKSB7IHJldHVybiBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQ7IH0KICAg
ICB2b2lkIHNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoYm9vbCB2YWx1ZSkgeyBtX2NvbnRh
aW5zRnVsbFNjcmVlbkVsZW1lbnQgPSB2YWx1ZTsgfQpAQCAtMTE2LDYgKzEyMiw3IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV90YWJJbmRleFdhc1NldEV4cGxpY2l0bHkgOiAxOwogICAgIHVu
c2lnbmVkIG1fbmVlZHNGb2N1c0FwcGVhcmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2ggOiAxOwog
ICAgIHVuc2lnbmVkIG1fc3R5bGVBZmZlY3RlZEJ5RW1wdHkgOiAxOworICAgIHVuc2lnbmVkIG1f
c3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4gOiAxOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKICAgICB1bnNpZ25lZCBtX2NvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQgOiAxOwogI2VuZGlm
CkBAIC0xMzAsNiArMTM3LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2NoaWxkcmVuQWZm
ZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVzIDogMTsKICAgICB1bnNpZ25lZCBtX2NoaWxk
cmVuQWZmZWN0ZWRCeVByb3BlcnR5QmFzZWRCYWNrd2FyZFBvc2l0aW9uYWxSdWxlcyA6IDE7CiAg
ICAgdW5zaWduZWQgbV9oYXNEaXNwbGF5Q29udGVudHMgOiAxOworICAgIHVuc2lnbmVkIG1faXNO
YW1lZEZsb3dDb250ZW50RWxlbWVudCA6IDE7CiAKICAgICBSZWdpb25PdmVyc2V0U3RhdGUgbV9y
ZWdpb25PdmVyc2V0U3RhdGU7CiAKQEAgLTE2MCw2ICsxNjgsNyBAQCBpbmxpbmUgRWxlbWVudFJh
cmVEYXRhOjpFbGVtZW50UmFyZURhdGEoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIpCiAgICAgLCBt
X3RhYkluZGV4V2FzU2V0RXhwbGljaXRseShmYWxzZSkKICAgICAsIG1fbmVlZHNGb2N1c0FwcGVh
cmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2goZmFsc2UpCiAgICAgLCBtX3N0eWxlQWZmZWN0ZWRC
eUVtcHR5KGZhbHNlKQorICAgICwgbV9zdHlsZUFmZmVjdGVkQnlGb2N1c1dpdGhpbihmYWxzZSkK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLCBtX2NvbnRhaW5zRnVsbFNjcmVlbkVs
ZW1lbnQoZmFsc2UpCiAjZW5kaWYKQEAgLTE3MSw2ICsxODAsNyBAQCBpbmxpbmUgRWxlbWVudFJh
cmVEYXRhOjpFbGVtZW50UmFyZURhdGEoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIpCiAgICAgLCBt
X2NoaWxkcmVuQWZmZWN0ZWRCeUJhY2t3YXJkUG9zaXRpb25hbFJ1bGVzKGZhbHNlKQogICAgICwg
bV9jaGlsZHJlbkFmZmVjdGVkQnlQcm9wZXJ0eUJhc2VkQmFja3dhcmRQb3NpdGlvbmFsUnVsZXMo
ZmFsc2UpCiAgICAgLCBtX2hhc0Rpc3BsYXlDb250ZW50cyhmYWxzZSkKKyAgICAsIG1faXNOYW1l
ZEZsb3dDb250ZW50RWxlbWVudChmYWxzZSkKICAgICAsIG1fcmVnaW9uT3ZlcnNldFN0YXRlKFJl
Z2lvblVuZGVmaW5lZCkKICAgICAsIG1fbWluaW11bVNpemVGb3JSZXNpemluZyhkZWZhdWx0TWlu
aW11bVNpemVGb3JSZXNpemluZygpKQogewpAQCAtMjAwLDYgKzIxMCw3IEBAIGlubGluZSB2b2lk
IEVsZW1lbnRSYXJlRGF0YTo6cmVzZXRDb21wdXRlZFN0eWxlKCkKICAgICBtX2NvbXB1dGVkU3R5
bGUgPSBudWxscHRyOwogICAgIG1faGFzRGlzcGxheUNvbnRlbnRzID0gZmFsc2U7CiAgICAgc2V0
U3R5bGVBZmZlY3RlZEJ5RW1wdHkoZmFsc2UpOworICAgIHNldFN0eWxlQWZmZWN0ZWRCeUZvY3Vz
V2l0aGluKGZhbHNlKTsKICAgICBzZXRDaGlsZEluZGV4KDApOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRl
eCA2ZTcyOTc4NTUzNWY4MzVlYmVkYmUwODUxZTBkNDZlODA5ZDA2NGNkLi45MjdhNzcxZWQ3NGYy
NTIwNWQyOTMxYTZlNmViZTlkMzg4M2EyZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTI0Nyw3ICsyNDcs
NiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0RvY3VtZW50RnJhZ21lbnQoKSBjb25zdCB7IHJldHVy
biBnZXRGbGFnKElzRG9jdW1lbnRGcmFnbWVudEZsYWcpOyB9CiAgICAgYm9vbCBpc1NoYWRvd1Jv
b3QoKSBjb25zdCB7IHJldHVybiBpc0RvY3VtZW50RnJhZ21lbnQoKSAmJiBpc1RyZWVTY29wZSgp
OyB9CiAKLSAgICBib29sIGlzTmFtZWRGbG93Q29udGVudE5vZGUoKSBjb25zdCB7IHJldHVybiBn
ZXRGbGFnKElzTmFtZWRGbG93Q29udGVudE5vZGVGbGFnKTsgfQogICAgIGJvb2wgaGFzQ3VzdG9t
U3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhIYXNDdXN0b21T
dHlsZVJlc29sdmVDYWxsYmFja3NGbGFnKTsgfQogCiAgICAgYm9vbCBoYXNTeW50aGV0aWNBdHRy
Q2hpbGROb2RlcygpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSGFzU3ludGhldGljQXR0ckNoaWxk
Tm9kZXNGbGFnKTsgfQpAQCAtMzM3LDkgKzMzNiw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzTGlu
aygpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNMaW5rRmxhZyk7IH0KICAgICB2b2lkIHNldElz
TGluayhib29sIGZsYWcpIHsgc2V0RmxhZyhmbGFnLCBJc0xpbmtGbGFnKTsgfQogCi0gICAgdm9p
ZCBzZXRJc05hbWVkRmxvd0NvbnRlbnROb2RlKCkgeyBzZXRGbGFnKElzTmFtZWRGbG93Q29udGVu
dE5vZGVGbGFnKTsgfQotICAgIHZvaWQgY2xlYXJJc05hbWVkRmxvd0NvbnRlbnROb2RlKCkgeyBj
bGVhckZsYWcoSXNOYW1lZEZsb3dDb250ZW50Tm9kZUZsYWcpOyB9Ci0KICAgICBib29sIGhhc0V2
ZW50VGFyZ2V0RGF0YSgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSGFzRXZlbnRUYXJnZXREYXRh
RmxhZyk7IH0KICAgICB2b2lkIHNldEhhc0V2ZW50VGFyZ2V0RGF0YShib29sIGZsYWcpIHsgc2V0
RmxhZyhmbGFnLCBIYXNFdmVudFRhcmdldERhdGFGbGFnKTsgfQogCkBAIC01NzIsNiArNTY4LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBpbnQzMl90IGZsYWdJc0VsZW1lbnQoKSB7IHJldHVybiBJ
c0VsZW1lbnRGbGFnOyB9CiAgICAgc3RhdGljIGludDMyX3QgZmxhZ0lzSFRNTCgpIHsgcmV0dXJu
IElzSFRNTEZsYWc7IH0KICAgICBzdGF0aWMgaW50MzJfdCBmbGFnSXNMaW5rKCkgeyByZXR1cm4g
SXNMaW5rRmxhZzsgfQorICAgIHN0YXRpYyBpbnQzMl90IGZsYWdIYXNGb2N1c1dpdGhpbigpIHsg
cmV0dXJuIEhhc0ZvY3VzV2l0aGluOyB9CiAgICAgc3RhdGljIGludDMyX3QgZmxhZ0hhc1JhcmVE
YXRhKCkgeyByZXR1cm4gSGFzUmFyZURhdGFGbGFnOyB9CiAgICAgc3RhdGljIGludDMyX3QgZmxh
Z0lzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWQoKSB7IHJldHVybiBJc1BhcnNpbmdDaGlsZHJlbkZp
bmlzaGVkRmxhZzsgfQogICAgIHN0YXRpYyBpbnQzMl90IGZsYWdDaGlsZHJlbkFmZmVjdGVkQnlG
aXJzdENoaWxkUnVsZXNGbGFnKCkgeyByZXR1cm4gQ2hpbGRyZW5BZmZlY3RlZEJ5Rmlyc3RDaGls
ZFJ1bGVzRmxhZzsgfQpAQCAtNjAyLDcgKzU5OSw3IEBAIHByb3RlY3RlZDoKIAogICAgICAgICBT
dHlsZUNoYW5nZU1hc2sgPSAxIDw8IG5vZGVTdHlsZUNoYW5nZVNoaWZ0IHwgMSA8PCAobm9kZVN0
eWxlQ2hhbmdlU2hpZnQgKyAxKSB8IDEgPDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMiksCiAg
ICAgICAgIElzRWRpdGluZ1RleHRPclVucmVzb2x2ZWRDdXN0b21FbGVtZW50RmxhZyA9IDEgPDwg
MTcsCi0gICAgICAgIElzTmFtZWRGbG93Q29udGVudE5vZGVGbGFnID0gMSA8PCAxOCwKKyAgICAg
ICAgSGFzRm9jdXNXaXRoaW4gPSAxIDw8IDE4LAogICAgICAgICBIYXNTeW50aGV0aWNBdHRyQ2hp
bGROb2Rlc0ZsYWcgPSAxIDw8IDE5LAogICAgICAgICBIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxs
YmFja3NGbGFnID0gMSA8PCAyMCwKICAgICAgICAgSGFzRXZlbnRUYXJnZXREYXRhRmxhZyA9IDEg
PDwgMjEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRG
bG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dU
aHJlYWQuY3BwCmluZGV4IGMyYmUxMDBmZjUwZGMzZTVlNzMxYTU3ZjBmNTIzNzhmZDQ5MGJkNTku
LjNjOTZmYmU1YjBhMzI4ZTE5YmJiZmJjNzVkNmFjMjcxZjdlMTdiOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCkBAIC03NCwx
MCArNzQsMTAgQEAgdm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNsZWFyQ29udGVudEVsZW1l
bnRzKCkKIHsKICAgICBmb3IgKGF1dG8mIGNvbnRlbnRFbGVtZW50IDogbV9jb250ZW50RWxlbWVu
dHMpIHsKICAgICAgICAgQVNTRVJUKGNvbnRlbnRFbGVtZW50KTsKLSAgICAgICAgQVNTRVJUKGNv
bnRlbnRFbGVtZW50LT5pc05hbWVkRmxvd0NvbnRlbnROb2RlKCkpOworICAgICAgICBBU1NFUlQo
Y29udGVudEVsZW1lbnQtPmlzTmFtZWRGbG93Q29udGVudEVsZW1lbnQoKSk7CiAgICAgICAgIEFT
U0VSVCgmY29udGVudEVsZW1lbnQtPmRvY3VtZW50KCkgPT0gJmRvY3VtZW50KCkpOwogICAgICAg
ICAKLSAgICAgICAgY29udGVudEVsZW1lbnQtPmNsZWFySXNOYW1lZEZsb3dDb250ZW50Tm9kZSgp
OworICAgICAgICBjb250ZW50RWxlbWVudC0+Y2xlYXJJc05hbWVkRmxvd0NvbnRlbnRFbGVtZW50
KCk7CiAgICAgfQogICAgIAogICAgIG1fY29udGVudEVsZW1lbnRzLmNsZWFyKCk7CkBAIC00OTcs
NyArNDk3LDcgQEAgdm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlZ2lzdGVyTmFtZWRGbG93
Q29udGVudEVsZW1lbnQoRWxlbWVudCYgY29udGVudEVsZW0KIHsKICAgICBBU1NFUlQoJmNvbnRl
bnRFbGVtZW50LmRvY3VtZW50KCkgPT0gJmRvY3VtZW50KCkpOwogCi0gICAgY29udGVudEVsZW1l
bnQuc2V0SXNOYW1lZEZsb3dDb250ZW50Tm9kZSgpOworICAgIGNvbnRlbnRFbGVtZW50LnNldElz
TmFtZWRGbG93Q29udGVudEVsZW1lbnQoKTsKIAogICAgIHJlc2V0TWFya0ZvckRlc3RydWN0aW9u
KCk7CiAKQEAgLTUxOCwxMCArNTE4LDEwIEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpy
ZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnRFbGVtZW50KEVsZW1lbnQmIGNvbnRlbnRFbGVtCiB2b2lk
IFJlbmRlck5hbWVkRmxvd1RocmVhZDo6dW5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnRFbGVtZW50
KEVsZW1lbnQmIGNvbnRlbnRFbGVtZW50KQogewogICAgIEFTU0VSVChtX2NvbnRlbnRFbGVtZW50
cy5jb250YWlucygmY29udGVudEVsZW1lbnQpKTsKLSAgICBBU1NFUlQoY29udGVudEVsZW1lbnQu
aXNOYW1lZEZsb3dDb250ZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQoY29udGVudEVsZW1lbnQuaXNO
YW1lZEZsb3dDb250ZW50RWxlbWVudCgpKTsKICAgICBBU1NFUlQoJmNvbnRlbnRFbGVtZW50LmRv
Y3VtZW50KCkgPT0gJmRvY3VtZW50KCkpOwogCi0gICAgY29udGVudEVsZW1lbnQuY2xlYXJJc05h
bWVkRmxvd0NvbnRlbnROb2RlKCk7CisgICAgY29udGVudEVsZW1lbnQuY2xlYXJJc05hbWVkRmxv
d0NvbnRlbnRFbGVtZW50KCk7CiAgICAgbV9jb250ZW50RWxlbWVudHMucmVtb3ZlKCZjb250ZW50
RWxlbWVudCk7CiAKICAgICBpZiAoY2FuQmVEZXN0cm95ZWQoKSkKQEAgLTYxNiw3ICs2MTYsNyBA
QCBzdGF0aWMgYm9vbCBib3hJbnRlcnNlY3RzUmVnaW9uKExheW91dFVuaXQgbG9naWNhbFRvcEZv
ckJveCwgTGF5b3V0VW5pdCBsb2dpY2FsQgogLy8gUmV0cmlldmUgdGhlIG5leHQgbm9kZSB0byBi
ZSB2aXNpdGVkIHdoaWxlIGNvbXB1dGluZyB0aGUgcmFuZ2VzIGluc2lkZSBhIHJlZ2lvbi4KIHN0
YXRpYyBOb2RlKiBuZXh0Tm9kZUluc2lkZUNvbnRlbnRFbGVtZW50KGNvbnN0IE5vZGUmIGN1cnJO
b2RlLCBjb25zdCBFbGVtZW50KiBjb250ZW50RWxlbWVudCkKIHsKLSAgICBBU1NFUlQoY29udGVu
dEVsZW1lbnQgJiYgY29udGVudEVsZW1lbnQtPmlzTmFtZWRGbG93Q29udGVudE5vZGUoKSk7Cisg
ICAgQVNTRVJUKGNvbnRlbnRFbGVtZW50ICYmIGNvbnRlbnRFbGVtZW50LT5pc05hbWVkRmxvd0Nv
bnRlbnRFbGVtZW50KCkpOwogCiAgICAgaWYgKGN1cnJOb2RlLnJlbmRlcmVyKCkgJiYgY3Vyck5v
ZGUucmVuZGVyZXIoKS0+aXNTVkdSb290KCkpCiAgICAgICAgIHJldHVybiBOb2RlVHJhdmVyc2Fs
OjpuZXh0U2tpcHBpbmdDaGlsZHJlbihjdXJyTm9kZSwgY29udGVudEVsZW1lbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4IGVjMzVjOTQ3Nzg0NTJm
ODU5MGJkZTJiZjA3MzY1ZjRlZTAyMWM0NmIuLjQ0YTk0YTgwOWQ1ZDBmMDVkYWYyMmIzNjExNzdl
ZjQxNGI0MzFkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1JlbmRlclRyZWVV
cGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SZW5kZXJUcmVlVXBkYXRlci5j
cHAKQEAgLTI0MCw3ICsyNDAsNyBAQCBzdGF0aWMgYm9vbCBwc2V1ZG9TdHlsZUNhY2hlSXNJbnZh
bGlkKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBSZW5kZXJTdHlsZSogbmV3UwogCiB2b2lkIFJl
bmRlclRyZWVVcGRhdGVyOjp1cGRhdGVFbGVtZW50UmVuZGVyZXIoRWxlbWVudCYgZWxlbWVudCwg
U3R5bGU6OkVsZW1lbnRVcGRhdGUmIHVwZGF0ZSkKIHsKLSAgICBib29sIHNob3VsZFRlYXJEb3du
UmVuZGVyZXJzID0gdXBkYXRlLmNoYW5nZSA9PSBTdHlsZTo6RGV0YWNoICYmIChlbGVtZW50LnJl
bmRlcmVyKCkgfHwgZWxlbWVudC5pc05hbWVkRmxvd0NvbnRlbnROb2RlKCkpOworICAgIGJvb2wg
c2hvdWxkVGVhckRvd25SZW5kZXJlcnMgPSB1cGRhdGUuY2hhbmdlID09IFN0eWxlOjpEZXRhY2gg
JiYgKGVsZW1lbnQucmVuZGVyZXIoKSB8fCBlbGVtZW50LmlzTmFtZWRGbG93Q29udGVudEVsZW1l
bnQoKSk7CiAgICAgaWYgKHNob3VsZFRlYXJEb3duUmVuZGVyZXJzKQogICAgICAgICB0ZWFyRG93
blJlbmRlcmVycyhlbGVtZW50LCBUZWFyZG93blR5cGU6OktlZXBIb3ZlckFuZEFjdGl2ZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVsYXRpb25zLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVsYXRpb25zLmNwcAppbmRleCA1OGVhNmE1NmI4ZDM2
ZGE0ZjhjNjc3ZTJlZDM1OWI2ZTBjZGEwYjMzLi40NWY1ZmRlYzg5YzI5MDk5ODRkYjBjYzM1OTEx
MjdlMTRkNTY0OGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlbGF0
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZWxhdGlvbnMuY3BwCkBA
IC03Miw2ICs3Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZWxhdGlvbnM+IGNvbW1pdFJlbGF0aW9u
c1RvUmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zCiAgICAgICAgIGNhc2UgUmVs
YXRpb246OlVuaXF1ZToKICAgICAgICAgICAgIHN0eWxlLnNldFVuaXF1ZSgpOwogICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVsYXRpb246OkFmZmVjdGVkQnlGb2N1c1dpdGhpbjoK
ICAgICAgICAgY2FzZSBSZWxhdGlvbjo6QWZmZWN0ZWRCeVByZXZpb3VzU2libGluZzoKICAgICAg
ICAgY2FzZSBSZWxhdGlvbjo6QWZmZWN0c05leHRTaWJsaW5nOgogICAgICAgICBjYXNlIFJlbGF0
aW9uOjpDaGlsZHJlbkFmZmVjdGVkQnlCYWNrd2FyZFBvc2l0aW9uYWxSdWxlczoKQEAgLTEwMiw2
ICsxMDMsOSBAQCB2b2lkIGNvbW1pdFJlbGF0aW9ucyhzdGQ6OnVuaXF1ZV9wdHI8UmVsYXRpb25z
PiByZWxhdGlvbnMsIFVwZGF0ZSYgdXBkYXRlKQogICAgICAgICBjYXNlIFJlbGF0aW9uOjpBZmZl
Y3RlZEJ5RW1wdHk6CiAgICAgICAgICAgICBlbGVtZW50LnNldFN0eWxlQWZmZWN0ZWRCeUVtcHR5
KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSZWxhdGlvbjo6QWZmZWN0ZWRC
eUZvY3VzV2l0aGluOgorICAgICAgICAgICAgZWxlbWVudC5zZXRTdHlsZUFmZmVjdGVkQnlGb2N1
c1dpdGhpbigpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUmVsYXRpb246OkFm
ZmVjdGVkQnlIb3ZlcjoKICAgICAgICAgICAgIGVsZW1lbnQuc2V0Q2hpbGRyZW5BZmZlY3RlZEJ5
SG92ZXIoKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVSZWxhdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVsYXRp
b25zLmgKaW5kZXggYjdiNDBhMjAzMTE3Y2YyOWI0MDM5ZjkyY2I5YTU2OWI5OWI1MWY0NS4uN2M2
ZjQ3Nzk3YjgzOGY0N2E2M2I4YjAzOTE0MDE5ZGFjMGVlMThlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZWxhdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVJlbGF0aW9ucy5oCkBAIC00Miw2ICs0Miw3IEBAIHN0cnVjdCBSZWxhdGlvbiB7CiAg
ICAgICAgIEFmZmVjdGVkQnlBY3RpdmUsCiAgICAgICAgIEFmZmVjdGVkQnlEcmFnLAogICAgICAg
ICBBZmZlY3RlZEJ5RW1wdHksCisgICAgICAgIEFmZmVjdGVkQnlGb2N1c1dpdGhpbiwKICAgICAg
ICAgQWZmZWN0ZWRCeUhvdmVyLAogICAgICAgICBBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nLAog
ICAgICAgICAvLyBGb3IgQWZmZWN0c05leHRTaWJsaW5nICd2YWx1ZScgdGVsbHMgaG93IG1hbnkg
ZWxlbWVudCBzaWJsaW5ncyB0byBtYXJrIHN0YXJ0aW5nIHdpdGggJ2VsZW1lbnQnLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuY3BwCmluZGV4IGJhMTZhOWJi
NTg0ZGYzZjEyN2UxMjU4ZjA2YmNhMjkzZTY4ZDllOTYuLmQ1Y2Q0ODMzMDgxNzBmMjhjMWU2MWE2
ZjEyZDdjNDkyZmY2YmFiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
U2hhcmluZ1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJp
bmdSZXNvbHZlci5jcHAKQEAgLTIzMCw2ICsyMzAsOCBAQCBib29sIFNoYXJpbmdSZXNvbHZlcjo6
Y2FuU2hhcmVTdHlsZVdpdGhFbGVtZW50KGNvbnN0IENvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0
eQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGNhbmRpZGF0ZUVsZW1lbnQuYWZmZWN0
c05leHRTaWJsaW5nRWxlbWVudFN0eWxlKCkgfHwgY2FuZGlkYXRlRWxlbWVudC5zdHlsZUlzQWZm
ZWN0ZWRCeVByZXZpb3VzU2libGluZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KGNhbmRpZGF0ZUVsZW1lbnQuc3R5bGVBZmZlY3RlZEJ5Rm9jdXNXaXRoaW4oKSB8fCBlbGVtZW50
LnN0eWxlQWZmZWN0ZWRCeUZvY3VzV2l0aGluKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGF1dG8mIGNhbmRpZGF0ZUVsZW1lbnRJZCA9IGNhbmRpZGF0ZUVsZW1lbnQuaWRGb3JTdHls
ZVJlc29sdXRpb24oKTsKICAgICBpZiAoIWNhbmRpZGF0ZUVsZW1lbnRJZC5pc051bGwoKSAmJiBt
X3J1bGVTZXRzLmZlYXR1cmVzKCkuaWRzSW5SdWxlcy5jb250YWlucyhjYW5kaWRhdGVFbGVtZW50
SWQuaW1wbCgpKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAwYTgyMTNmNmIyMTEyZmNkNmQwZDlkY2IwMmQzNTdmNWRkODM2
ZGVhLi42NGQ1Y2U5Y2RhN2E1ZWE4Y2JlZTBkNWY4ZDg5NzAzZTg3OWRmZjFmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjUgQEAKKzIwMTYtMDYtMjIgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQVg6IEFkZCBzdXBwb3J0IGZvciBDU1M0IDpmb2N1cy13aXRoaW4g
cHNldWRvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDAxNDQKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICAq
IGZhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2Nzcy1zZXQt
c2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvY3NzLXNldC1z
ZWxlY3Rvci10ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhp
bi1iYXNpY3MtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcHNldWRv
LWZvY3VzLXdpdGhpbi1iYXNpY3MuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcHNl
dWRvLWZvY3VzLXdpdGhpbi1pbnNpZGUtc2hhZG93LWRvbS1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLWluc2lkZS1zaGFkb3ctZG9t
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4tc3R5
bGUtc2hhcmluZy0xLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3Bz
ZXVkby1mb2N1cy13aXRoaW4tc3R5bGUtc2hhcmluZy0xLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4tc3R5bGUtc2hhcmluZy0yLWV4cGVjdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4tc3R5bGUt
c2hhcmluZy0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL2ZvY3VzLXdp
dGhpbi1zdHlsZS11cGRhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Nl
bGVjdG9ycy9mb2N1cy13aXRoaW4tc3R5bGUtdXBkYXRlLmh0bWw6IEFkZGVkLgorCiAyMDE2LTA2
LTIyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICB3aW5k
b3cuc2hvd01vZGFsRGlhbG9nIGRvZXNuJ3Qgd29yayBpbiBEdW1wUmVuZGVyVHJlZSBvbiBXaW5k
b3dzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC1leHBl
Y3RlZC50eHQKaW5kZXggMjM5MzBiMzY5N2RiNGM1YzQ5OGVjZDY0NjAxYTIwYWU0ZmIzM2ZjNS4u
MjE2YzA3MjNmYzViN2IxNTA0NjA1NzRmNDNiYmI3NjgwNjc5YzFiYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMjE2
LDYgKzIxNiwyNiBAQCBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJ2EuYjo6LXdlYmtpdC1p
bnB1dC1wbGFjZWhvbGRlciB7IH0nKSBpcyAnYS5iOjotd2ViawogUEFTUyBwYXJzZVRoZW5TZXJp
YWxpemVSdWxlKCdhI2I6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgeyB9JykgaXMgJ2EjYjo6
LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1
bGUoJ2FbYl0uYyNkOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsgfScpIGlzICdhW2JdLmMj
ZDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7IH0nCiAKK1BBU1MgcGFyc2VUaGVuU2VyaWFs
aXplUnVsZSgnYVtiXTpkZWZhdWx0IHsgfScpIGlzICdhW2JdOmRlZmF1bHQgeyB9JworUEFTUyBw
YXJzZVRoZW5TZXJpYWxpemVSdWxlKCdhLmI6ZGVmYXVsdCB7IH0nKSBpcyAnYS5iOmRlZmF1bHQg
eyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdhI2I6ZGVmYXVsdCB7IH0nKSBpcyAn
YSNiOmRlZmF1bHQgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdhW2JdLmMjZDpk
ZWZhdWx0IHsgfScpIGlzICdhW2JdLmMjZDpkZWZhdWx0IHsgfScKKworUEFTUyBwYXJzZVRoZW5T
ZXJpYWxpemVSdWxlKCdhW2JdOmluLXJhbmdlIHsgfScpIGlzICdhW2JdOmluLXJhbmdlIHsgfScK
K1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnYS5iOmluLXJhbmdlIHsgfScpIGlzICdhLmI6
aW4tcmFuZ2UgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdhI2I6aW4tcmFuZ2Ug
eyB9JykgaXMgJ2EjYjppbi1yYW5nZSB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUo
J2FbYl0uYyNkOmluLXJhbmdlIHsgfScpIGlzICdhW2JdLmMjZDppbi1yYW5nZSB7IH0nCisKK1BB
U1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnYVtiXTpvdXQtb2YtcmFuZ2UgeyB9JykgaXMgJ2Fb
Yl06b3V0LW9mLXJhbmdlIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnYS5iOm91
dC1vZi1yYW5nZSB7IH0nKSBpcyAnYS5iOm91dC1vZi1yYW5nZSB7IH0nCitQQVNTIHBhcnNlVGhl
blNlcmlhbGl6ZVJ1bGUoJ2EjYjpvdXQtb2YtcmFuZ2UgeyB9JykgaXMgJ2EjYjpvdXQtb2YtcmFu
Z2UgeyB9JworUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdhW2JdLmMjZDpvdXQtb2YtcmFu
Z2UgeyB9JykgaXMgJ2FbYl0uYyNkOm91dC1vZi1yYW5nZSB7IH0nCisKK1BBU1MgcGFyc2VUaGVu
U2VyaWFsaXplUnVsZSgnYVtiXTpmb2N1cy13aXRoaW4geyB9JykgaXMgJ2FbYl06Zm9jdXMtd2l0
aGluIHsgfScKK1BBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVsZSgnYS5iOmZvY3VzLXdpdGhpbiB7
IH0nKSBpcyAnYS5iOmZvY3VzLXdpdGhpbiB7IH0nCitQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1
bGUoJ2EjYjpmb2N1cy13aXRoaW4geyB9JykgaXMgJ2EjYjpmb2N1cy13aXRoaW4geyB9JworUEFT
UyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCdhW2JdLmMjZDpmb2N1cy13aXRoaW4geyB9JykgaXMg
J2FbYl0uYyNkOmZvY3VzLXdpdGhpbiB7IH0nCisKIFBBU1MgcGFyc2VUaGVuU2VyaWFsaXplUnVs
ZSgnaW5wdXQ6bm90KFt0eXBlPSJmaWxlIl0pOmZvY3VzIHsgfScpIGlzICdpbnB1dDpub3QoW3R5
cGU9ImZpbGUiXSk6Zm9jdXMgeyB9JwogUEFTUyBwYXJzZVRoZW5TZXJpYWxpemVSdWxlKCc6LXdl
YmtpdC1hbnkoW3R5cGU9ImZpbGUiXSkgeyB9JykgaXMgJzotd2Via2l0LWFueShbdHlwZT0iZmls
ZSJdKSB7IH0nCiBQQVNTIHBhcnNlVGhlblNlcmlhbGl6ZVJ1bGUoJzotd2Via2l0LWFueSg6aG92
ZXIpIHsgfScpIGlzICc6LXdlYmtpdC1hbnkoOmhvdmVyKSB7IH0nCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY3NzLXNlbGVjdG9yLXRleHQuaHRtbAppbmRleCBjZDcxMDM0MmNhMTRiNDhmMGJiYTNl
YmU4YWJiY2RkOGYxNGZjNzFhLi5kNTViNTAyM2Y2YzhkNWI3NWNkNzA2NjEwNTcwM2RiNzFiNWQy
MTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jc3Mtc2VsZWN0b3ItdGV4dC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZWxlY3Rvci10ZXh0Lmh0bWwKQEAg
LTMwNyw2ICszMDcsMzQgQEAgdGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhW2JdLmMjZDo6LXdlYmtp
dC1pbnB1dC1wbGFjZWhvbGRlciIpOwogCiBkZWJ1ZygnJyk7CiAKK3Rlc3RTZWxlY3RvclJvdW5k
VHJpcCgiYVtiXTpkZWZhdWx0Iik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImEuYjpkZWZhdWx0
Iik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImEjYjpkZWZhdWx0Iik7Cit0ZXN0U2VsZWN0b3JS
b3VuZFRyaXAoImFbYl0uYyNkOmRlZmF1bHQiKTsKKworZGVidWcoJycpOworCit0ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoImFbYl06aW4tcmFuZ2UiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYS5i
OmluLXJhbmdlIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImEjYjppbi1yYW5nZSIpOwordGVz
dFNlbGVjdG9yUm91bmRUcmlwKCJhW2JdLmMjZDppbi1yYW5nZSIpOworCitkZWJ1ZygnJyk7CisK
K3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYVtiXTpvdXQtb2YtcmFuZ2UiKTsKK3Rlc3RTZWxlY3Rv
clJvdW5kVHJpcCgiYS5iOm91dC1vZi1yYW5nZSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJh
I2I6b3V0LW9mLXJhbmdlIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImFbYl0uYyNkOm91dC1v
Zi1yYW5nZSIpOworCitkZWJ1ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYVtiXTpm
b2N1cy13aXRoaW4iKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYS5iOmZvY3VzLXdpdGhpbiIp
OwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhI2I6Zm9jdXMtd2l0aGluIik7Cit0ZXN0U2VsZWN0
b3JSb3VuZFRyaXAoImFbYl0uYyNkOmZvY3VzLXdpdGhpbiIpOworCitkZWJ1ZygnJyk7CisKIHRl
c3RTZWxlY3RvclJvdW5kVHJpcCgnaW5wdXQ6bm90KFt0eXBlPSJmaWxlIl0pOmZvY3VzJyk7CiB0
ZXN0U2VsZWN0b3JSb3VuZFRyaXAoJzotd2Via2l0LWFueShbdHlwZT0iZmlsZSJdKScpOwogdGVz
dFNlbGVjdG9yUm91bmRUcmlwKCc6LXdlYmtpdC1hbnkoOmhvdmVyKScpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZXQtc2VsZWN0b3ItdGV4dC1leHBlY3RlZC50eHQK
aW5kZXggYmM5N2Y3OTNkNjhlZWY1OTIxNWQxMTcwNDhmYjQ3NTQ3ZGJjYTYyMy4uZDJiNzI2ZWM2
ZWZhNTBkN2FjODFiNDk3NzE5MjA0NzMwYzE0OTRlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jc3Mtc2V0LXNlbGVjdG9yLXRleHQtZXhwZWN0ZWQudHh0CkBAIC0yMTgs
NiArMjE4LDI2IEBAIFBBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2EuYjo6LXdlYmtpdC1p
bnB1dC1wbGFjZWhvbGRlcicpIGlzICdhLmI6Oi13ZWJraXQtCiBQQVNTIHNldFRoZW5SZWFkU2Vs
ZWN0b3JUZXh0KCdhI2I6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXInKSBpcyAnYSNiOjotd2Vi
a2l0LWlucHV0LXBsYWNlaG9sZGVyJwogUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYVti
XS5jI2Q6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXInKSBpcyAnYVtiXS5jI2Q6Oi13ZWJraXQt
aW5wdXQtcGxhY2Vob2xkZXInCiAKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2FbYl06
ZGVmYXVsdCcpIGlzICdhW2JdOmRlZmF1bHQnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0
KCdhLmI6ZGVmYXVsdCcpIGlzICdhLmI6ZGVmYXVsdCcKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3Rv
clRleHQoJ2EjYjpkZWZhdWx0JykgaXMgJ2EjYjpkZWZhdWx0JworUEFTUyBzZXRUaGVuUmVhZFNl
bGVjdG9yVGV4dCgnYVtiXS5jI2Q6ZGVmYXVsdCcpIGlzICdhW2JdLmMjZDpkZWZhdWx0JworCitQ
QVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhW2JdOmluLXJhbmdlJykgaXMgJ2FbYl06aW4t
cmFuZ2UnCitQQVNTIHNldFRoZW5SZWFkU2VsZWN0b3JUZXh0KCdhLmI6aW4tcmFuZ2UnKSBpcyAn
YS5iOmluLXJhbmdlJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYSNiOmluLXJhbmdl
JykgaXMgJ2EjYjppbi1yYW5nZScKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2FbYl0u
YyNkOmluLXJhbmdlJykgaXMgJ2FbYl0uYyNkOmluLXJhbmdlJworCitQQVNTIHNldFRoZW5SZWFk
U2VsZWN0b3JUZXh0KCdhW2JdOm91dC1vZi1yYW5nZScpIGlzICdhW2JdOm91dC1vZi1yYW5nZScK
K1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2EuYjpvdXQtb2YtcmFuZ2UnKSBpcyAnYS5i
Om91dC1vZi1yYW5nZScKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2EjYjpvdXQtb2Yt
cmFuZ2UnKSBpcyAnYSNiOm91dC1vZi1yYW5nZScKK1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRl
eHQoJ2FbYl0uYyNkOm91dC1vZi1yYW5nZScpIGlzICdhW2JdLmMjZDpvdXQtb2YtcmFuZ2UnCisK
K1BBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJ2FbYl06Zm9jdXMtd2l0aGluJykgaXMgJ2Fb
Yl06Zm9jdXMtd2l0aGluJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnYS5iOmZvY3Vz
LXdpdGhpbicpIGlzICdhLmI6Zm9jdXMtd2l0aGluJworUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9y
VGV4dCgnYSNiOmZvY3VzLXdpdGhpbicpIGlzICdhI2I6Zm9jdXMtd2l0aGluJworUEFTUyBzZXRU
aGVuUmVhZFNlbGVjdG9yVGV4dCgnYVtiXS5jI2Q6Zm9jdXMtd2l0aGluJykgaXMgJ2FbYl0uYyNk
OmZvY3VzLXdpdGhpbicKKwogUEFTUyBzZXRUaGVuUmVhZFNlbGVjdG9yVGV4dCgnaW5wdXQ6bm90
KFt0eXBlPSJmaWxlIl0pOmZvY3VzJykgaXMgJ2lucHV0Om5vdChbdHlwZT0iZmlsZSJdKTpmb2N1
cycKIFBBU1Mgc2V0VGhlblJlYWRTZWxlY3RvclRleHQoJzotd2Via2l0LWFueShbdHlwZT0iZmls
ZSJdKScpIGlzICc6LXdlYmtpdC1hbnkoW3R5cGU9ImZpbGUiXSknCiBQQVNTIHNldFRoZW5SZWFk
U2VsZWN0b3JUZXh0KCc6LXdlYmtpdC1hbnkoOmhvdmVyKScpIGlzICc6LXdlYmtpdC1hbnkoOmhv
dmVyKScKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nzcy1zZXQtc2VsZWN0b3It
dGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0Lmh0
bWwKaW5kZXggMzEzY2NhMmI4ZmQ4ZGZlYjU4ZDNjZjliZTgxNTY2ODMyY2FjMGNlYS4uOGJhZjgy
MDZlNWM2MzM4MjIyNjFjMjRmMTEzODJiYjcxNGFlYjc5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY3NzLXNldC1zZWxlY3Rvci10ZXh0Lmh0bWwKQEAgLTMxMSw2ICszMTEsMzQgQEAg
dGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhW2JdLmMjZDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRl
ciIpOwogCiBkZWJ1ZygnJyk7CiAKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYVtiXTpkZWZhdWx0
Iik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImEuYjpkZWZhdWx0Iik7Cit0ZXN0U2VsZWN0b3JS
b3VuZFRyaXAoImEjYjpkZWZhdWx0Iik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImFbYl0uYyNk
OmRlZmF1bHQiKTsKKworZGVidWcoJycpOworCit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImFbYl06
aW4tcmFuZ2UiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYS5iOmluLXJhbmdlIik7Cit0ZXN0
U2VsZWN0b3JSb3VuZFRyaXAoImEjYjppbi1yYW5nZSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlw
KCJhW2JdLmMjZDppbi1yYW5nZSIpOworCitkZWJ1ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5k
VHJpcCgiYVtiXTpvdXQtb2YtcmFuZ2UiKTsKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYS5iOm91
dC1vZi1yYW5nZSIpOwordGVzdFNlbGVjdG9yUm91bmRUcmlwKCJhI2I6b3V0LW9mLXJhbmdlIik7
Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImFbYl0uYyNkOm91dC1vZi1yYW5nZSIpOworCitkZWJ1
ZygnJyk7CisKK3Rlc3RTZWxlY3RvclJvdW5kVHJpcCgiYVtiXTpmb2N1cy13aXRoaW4iKTsKK3Rl
c3RTZWxlY3RvclJvdW5kVHJpcCgiYS5iOmZvY3VzLXdpdGhpbiIpOwordGVzdFNlbGVjdG9yUm91
bmRUcmlwKCJhI2I6Zm9jdXMtd2l0aGluIik7Cit0ZXN0U2VsZWN0b3JSb3VuZFRyaXAoImFbYl0u
YyNkOmZvY3VzLXdpdGhpbiIpOworCitkZWJ1ZygnJyk7CisKIHRlc3RTZWxlY3RvclJvdW5kVHJp
cCgnaW5wdXQ6bm90KFt0eXBlPSJmaWxlIl0pOmZvY3VzJyk7CiB0ZXN0U2VsZWN0b3JSb3VuZFRy
aXAoJzotd2Via2l0LWFueShbdHlwZT0iZmlsZSJdKScpOwogdGVzdFNlbGVjdG9yUm91bmRUcmlw
KCc6LXdlYmtpdC1hbnkoOmhvdmVyKScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcHNldWRvLWZvY3VzLXdpdGhpbi1iYXNpY3MtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4tYmFzaWNzLWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGFmZmRiNWEzNDYyMTE4Mzc1MzM0ZDk4ZjAzYzgxNzdiMGUyMWEwMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4tYmFzaWNz
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBj
bGFzcz0iZm9jdXMtd2l0aGluIj4KKzxoZWFkPgorPHN0eWxlPgorICAgICogeworICAgICAgICBi
b3JkZXI6IG5vbmU7CisgICAgfQorICAgIC5mb2N1cy13aXRoaW4geworICAgICAgICBib3JkZXI6
IDJweCBzb2xpZCBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgY2xhc3M9
ImZvY3VzLXdpdGhpbiI+CisgICAgPGZvcm0gaWQ9ImZvcm0iPgorICAgIDwvZm9ybT4KKyAgICA8
ZGl2IGNsYXNzPSJmb2N1cy13aXRoaW4iPgorICAgICAgICA8aW5wdXQgZm9ybT0iZm9ybSIgaWQ9
ImlucHV0IiBhdXRvZm9jdXMgIGNsYXNzPSJmb2N1cy13aXRoaW4iPgorICAgIDwvZGl2PgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIpLmZvY3Vz
KCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLWJhc2ljcy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1iYXNpY3MuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MzQ2OGQzNzM3ODE1ZmIyYWIyMzg4ODY3M2Y2YTk2ZTJjN2IyNzdiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1iYXNpY3MuaHRtbApA
QCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
CisgICAgKiB7CisgICAgICAgIGJvcmRlcjogbm9uZTsKKyAgICB9CisgICAgOmZvY3VzLXdpdGhp
biB7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgICA8Zm9ybSBpZD0iZm9ybSI+CisgICAgPC9mb3JtPgorICAgIDxk
aXY+CisgICAgICAgIDxpbnB1dCBmb3JtPSJmb3JtIiBpZD0iaW5wdXQiIGF1dG9mb2N1cz4KKyAg
ICA8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
aW5wdXQiKS5mb2N1cygpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1pbnNpZGUtc2hh
ZG93LWRvbS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWZvY3Vz
LXdpdGhpbi1pbnNpZGUtc2hhZG93LWRvbS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkZDJi
NGJkOWNhZTMzNjU2ZGFkODg5MmFjZTIzMDA0OGI1Y2RlOGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLWluc2lkZS1zaGFkb3ctZG9t
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBj
bGFzcz0iZm9jdXMtd2l0aGluIj4KKzxoZWFkPgorPHN0eWxlPgorICAgICogeworICAgICAgICBi
b3JkZXI6IG5vbmU7CisgICAgfQorICAgIC5mb2N1cy13aXRoaW4geworICAgICAgICBib3JkZXI6
IDJweCBzb2xpZCBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgY2xhc3M9
ImZvY3VzLXdpdGhpbiI+CisgICAgPGRpdiBpZD0icm9vdCIgY2xhc3M9ImZvY3VzLXdpdGhpbiI+
CisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgbGV0IHJvb3RFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKTsKKyAgICAgICAgbGV0IGZpcnN0Um9vdCA9IHJv
b3RFbGVtZW50LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKKyAgICAgICAgbGV0IGlu
c2lkZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBpbnNpZGVE
aXYuaW5uZXJUZXh0ID0gIkZvb2JhciI7CisgICAgICAgIGluc2lkZURpdi5jbGFzc05hbWUgPSAi
Zm9jdXMtd2l0aGluIjsKKyAgICAgICAgbGV0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlucHV0IikKKyAgICAgICAgaW5wdXRFbGVtZW50LmNsYXNzTmFtZSA9ICJmb2N1
cy13aXRoaW4iOworICAgICAgICBpbnNpZGVEaXYuYXBwZW5kQ2hpbGQoaW5wdXRFbGVtZW50KTsK
KyAgICAgICAgZmlyc3RSb290LmFwcGVuZENoaWxkKGluc2lkZURpdik7CisgICAgICAgIGlucHV0
RWxlbWVudC5mb2N1cygpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1pbnNpZGUtc2hh
ZG93LWRvbS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1p
bnNpZGUtc2hhZG93LWRvbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiOTg1ZWYwZDgzODUwMzRkODdjN2Ni
M2QwNjIxMjIxZWE2MWZmMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9wc2V1ZG8tZm9jdXMtd2l0aGluLWluc2lkZS1zaGFkb3ctZG9tLmh0bWwKQEAgLTAsMCArMSwy
NyBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICogewor
ICAgICAgICBib3JkZXI6IG5vbmU7CisgICAgfQorICAgIDpmb2N1cy13aXRoaW4geworICAgICAg
ICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGRpdiBpZD0icm9vdCI+CisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgbGV0IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKTsKKyAg
ICAgICAgbGV0IGZpcnN0Um9vdCA9IHJvb3RFbGVtZW50LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Ns
b3NlZCd9KTsKKyAgICAgICAgbGV0IGluc2lkZURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgICAgICBpbnNpZGVEaXYuaW5uZXJUZXh0ID0gIkZvb2JhciI7CisgICAgICAg
IGxldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpCisgICAg
ICAgIGluc2lkZURpdi5hcHBlbmRDaGlsZChpbnB1dEVsZW1lbnQpOworICAgICAgICBmaXJzdFJv
b3QuYXBwZW5kQ2hpbGQoaW5zaWRlRGl2KTsKKyAgICAgICAgaW5wdXRFbGVtZW50LmZvY3VzKCk7
CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9wc2V1ZG8tZm9jdXMtd2l0aGluLXN0eWxlLXNoYXJpbmctMS1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFy
aW5nLTEtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjMzMzgxYTQwNjc4ODZlODcwYWI0Yjhh
MjYyZWEwMTdjZWQxNzMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTEtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sIGNsYXNzPSJmb2N1cy13aXRoaW4iPgor
PGhlYWQ+Cis8c3R5bGU+CisgICAgKiB7CisgICAgICAgIGJvcmRlcjogbm9uZTsKKyAgICB9Cisg
ICAgLmZvY3VzLXdpdGhpbiB7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGdyZWVuOworICAg
IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBjbGFzcz0iZm9jdXMtd2l0aGluIj4KKyAgICA8
ZGl2IGNsYXNzPSJmb2N1cy13aXRoaW4iPgorICAgICAgICA8aW5wdXQgZm9ybT0iZm9ybSIgaWQ9
ImlucHV0IiBhdXRvZm9jdXMgIGNsYXNzPSJmb2N1cy13aXRoaW4iPgorICAgIDwvZGl2PgorICAg
IDxkaXY+CisgICAgICAgIEZvbworICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIEJhcgor
ICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTEuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4tc3R5bGUtc2hhcmluZy0xLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjUxYTMwMjIxNDgzMTE1ZThhMjZlMWFkMjFkZWVjOGE2OWJjYTVhYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4tc3R5
bGUtc2hhcmluZy0xLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPgorICAgICogeworICAgICAgICBib3JkZXI6IG5vbmU7CisgICAg
fQorICAgIDpmb2N1cy13aXRoaW4geworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsK
KyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdj4KKyAgICAgICAgPGlu
cHV0IGZvcm09ImZvcm0iIGlkPSJpbnB1dCIgYXV0b2ZvY3VzPgorICAgIDwvZGl2PgorICAgIDxk
aXY+CisgICAgICAgIEZvbworICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIEJhcgorICAg
IDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTItZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4tc3R5bGUtc2hhcmluZy0yLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFmOTA5NjU0YTcxOWIyNzBmNjJmODY3MGRlYjA3NmVh
ZjlhODkyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkby1m
b2N1cy13aXRoaW4tc3R5bGUtc2hhcmluZy0yLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyOCBA
QAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbCBjbGFzcz0iZm9jdXMtd2l0aGluIj4KKzxoZWFkPgor
PHN0eWxlPgorICAgICogeworICAgICAgICBib3JkZXI6IG5vbmU7CisgICAgfQorICAgIC5mb2N1
cy13aXRoaW4geworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsKKyAgICB9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHkgY2xhc3M9ImZvY3VzLXdpdGhpbiI+CisgICAgPGRpdiBjbGFz
cz0iZm9jdXMtd2l0aGluIj4KKyAgICAgICAgPGlucHV0PgorICAgICAgICA8aW5wdXQ+CisgICAg
ICAgIDxpbnB1dD4KKyAgICAgICAgPGlucHV0IGNsYXNzPSJmb2N1cy13aXRoaW4iPgorICAgICAg
ICA8aW5wdXQ+CisgICAgICAgIDxpbnB1dD4KKyAgICAgICAgPGlucHV0PgorICAgIDwvZGl2Pgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGxldCBtaWRJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpbnB1dCIpWzNdOworICAgICAgICBtaWRJbnB1dC5mb2N1cygpOworICAgIDwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvcHNldWRvLWZvY3VzLXdpdGhpbi1zdHlsZS1zaGFyaW5nLTIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4tc3R5bGUtc2hhcmluZy0yLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTFmOTI4NGMxZGNhNjk4YjgzYjVhNzM2ZmY1MTg4YjYxNzJjM2YyMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkby1mb2N1cy13aXRoaW4tc3R5bGUt
c2hhcmluZy0yLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorICAgICogeworICAgICAgICBib3JkZXI6IG5vbmU7CisgICAgfQor
ICAgIDpmb2N1cy13aXRoaW4geworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBncmVlbjsKKyAg
ICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdj4KKyAgICAgICAgPGlucHV0
PgorICAgICAgICA8aW5wdXQ+CisgICAgICAgIDxpbnB1dD4KKyAgICAgICAgPGlucHV0PgorICAg
ICAgICA8aW5wdXQ+CisgICAgICAgIDxpbnB1dD4KKyAgICAgICAgPGlucHV0PgorICAgIDwvZGl2
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGxldCBtaWRJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJpbnB1dCIpWzNdOworICAgICAgICBtaWRJbnB1dC5mb2N1cygpOworICAg
IDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zZWxlY3RvcnMvZm9jdXMtd2l0aGluLXN0eWxlLXVwZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9mb2N1cy13aXRoaW4tc3R5bGUtdXBkYXRlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMjcxMTQ1Njc1NDc0OTU4YTlhMDNiNzUyYjA5ZmYyYjUxNTY1ZjBm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvZm9jdXMtd2l0
aGluLXN0eWxlLXVwZGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3NyBAQAorQ2hlY2sgdGhl
IGJhc2ljIGZlYXR1cmVzIG9mIHRoZSA6Zm9jdXMtd2l0aGluIHBzZXVkbyBjbGFzcworCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW5pdGlhbCBTdGF0ZQorUEFTUyBlbGVtZW50c1N0
eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgW10KK1BBU1MgZWxlbWVudHNNYXRjaGlu
Z0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbXQorRm9jdXMgdGFyZ2V0MQorUEFTUyBlbGVtZW50
c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Vi
a2l0LXRlc3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0KK1BBU1MgZWxl
bWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3
ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwgInRhcmdldDEiXQorRm9jdXMg
dGFyZ2V0MgorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMg
WyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIs
ICJ0YXJnZXQyIl0KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBp
cyBbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1
IiwgInRhcmdldDIiXQorU2V0IGRpc3BsYXkgbm9uZSBvbiB0YXJnZXQyCitQQVNTIGVsZW1lbnRz
U3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3ZWJr
aXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXQorUEFTUyBlbGVt
ZW50c01hdGNoaW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpIGlzIFsiaHRtbCIsICJib2R5IiwgIndl
YmtpdC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdCitQQVNTIHRh
cmdldDIubWF0Y2hlcygiOmZvY3VzIikgaXMgdHJ1ZQorRm9jdXMgdGFyZ2V0MQorUEFTUyBlbGVt
ZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAi
d2Via2l0LXRlc3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0KK1BBU1Mg
ZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIs
ICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwgInRhcmdldDEiXQorVHJ5
IHRvIGZvY3VzIHRhcmdldDIKK1BBU1MgZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxl
Y3RvcigpIGlzIFsiaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjEiLCAi
c2libGluZzIiLCAidGFyZ2V0MSJdCitQQVNTIGVsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNl
bGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMSIs
ICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0KK1BBU1MgdGFyZ2V0MS5tYXRjaGVzKCI6Zm9jdXMiKSBp
cyB0cnVlCitQQVNTIHRhcmdldDIubWF0Y2hlcygiOmZvY3VzIikgaXMgZmFsc2UKK1NldCBkaXNw
bGF5IGJhY2sgb24gdGFyZ2V0MgorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNl
bGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMSIs
ICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGlu
U2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIx
IiwgInNpYmxpbmcyIiwgInRhcmdldDEiXQorRm9jdXMgdGFyZ2V0MgorUEFTUyBlbGVtZW50c1N0
eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Via2l0
LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIsICJ0YXJnZXQyIl0KK1BBU1MgZWxlbWVu
dHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3ZWJr
aXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXQorU2V0IGRpc3Bs
YXkgbm9uZSBvbiBjb250YWluZXIyCitQQVNTIGVsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGlu
U2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIy
IiwgInNpYmxpbmc1IiwgInRhcmdldDIiXQorUEFTUyBlbGVtZW50c01hdGNoaW5nRm9jdXNXaXRo
aW5TZWxlY3RvcigpIGlzIFsiaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5l
cjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdCitQQVNTIHRhcmdldDIubWF0Y2hlcygiOmZvY3Vz
IikgaXMgdHJ1ZQorRm9jdXMgdGFyZ2V0MQorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dp
dGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFp
bmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3Vz
V2l0aGluU2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250
YWluZXIxIiwgInNpYmxpbmcyIiwgInRhcmdldDEiXQorVHJ5IHRvIGZvY3VzIHRhcmdldDIKK1BB
U1MgZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpIGlzIFsiaHRtbCIsICJi
b2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJd
CitQQVNTIGVsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwg
ImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQx
Il0KK1BBU1MgdGFyZ2V0MS5tYXRjaGVzKCI6Zm9jdXMiKSBpcyB0cnVlCitQQVNTIHRhcmdldDIu
bWF0Y2hlcygiOmZvY3VzIikgaXMgZmFsc2UKK1NldCBkaXNwbGF5IGJhY2sgb24gY29udGFpbmVy
MgorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1s
IiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJn
ZXQxIl0KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbImh0
bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwgInRh
cmdldDEiXQorRGV0YWNoIGNvbnRhaW5lcjEgZnJvbSB0aGUgZG9jdW1lbnQKK1BBU1MgZWxlbWVu
dHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpIGlzIFtdCitQQVNTIGVsZW1lbnRzTWF0
Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgW10KK1BBU1MgY29udGFpbmVyMS5xdWVyeVNl
bGVjdG9yQWxsKCI6Zm9jdXMtd2l0aGluIikubGVuZ3RoIGlzIDAKK1BBU1MgdGFyZ2V0MS5tYXRj
aGVzKCI6Zm9jdXMiKSBpcyBmYWxzZQorUEFTUyB0YXJnZXQyLm1hdGNoZXMoIjpmb2N1cyIpIGlz
IGZhbHNlCitUcnkgdG8gZm9jdXMgdGFyZ2V0MQorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1
c1dpdGhpblNlbGVjdG9yKCkgaXMgW10KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGlu
U2VsZWN0b3IoKSBpcyBbXQorUEFTUyBjb250YWluZXIxLnF1ZXJ5U2VsZWN0b3JBbGwoIjpmb2N1
cy13aXRoaW4iKS5sZW5ndGggaXMgMAorUEFTUyB0YXJnZXQxLm1hdGNoZXMoIjpmb2N1cyIpIGlz
IGZhbHNlCitQQVNTIHRhcmdldDIubWF0Y2hlcygiOmZvY3VzIikgaXMgZmFsc2UKK0ZvY3VzIHRh
cmdldDIKK1BBU1MgZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpIGlzIFsi
aHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUiLCAi
dGFyZ2V0MiJdCitQQVNTIGVsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMg
WyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIs
ICJ0YXJnZXQyIl0KK0F0dGFjaCBjb250YWluZXIxIGluIGNvbnRhaW5lcjIKK1BBU1MgZWxlbWVu
dHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpIGlzIFsiaHRtbCIsICJib2R5IiwgIndl
YmtpdC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdCitQQVNTIGVs
ZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAi
d2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIsICJ0YXJnZXQyIl0KK0ZvY3Vz
IHRhcmdldDEKK1BBU1MgZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpIGlz
IFsiaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjIiLCAiY29udGFpbmVy
MSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0
aGluU2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWlu
ZXIyIiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdCitNb3ZlIHRhcmdldDEg
aW4gY29udGFpbmVyMgorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9y
KCkgaXMgW10KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBb
XQorUEFTUyB0YXJnZXQxLm1hdGNoZXMoIjpmb2N1cyIpIGlzIGZhbHNlCitQQVNTIHRhcmdldDIu
bWF0Y2hlcygiOmZvY3VzIikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVj
dG9ycy9mb2N1cy13aXRoaW4tc3R5bGUtdXBkYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Nl
bGVjdG9ycy9mb2N1cy13aXRoaW4tc3R5bGUtdXBkYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTRiOGFl
OWEwMzVmODNmYzQwNzc4YzE4YWViN2IxYWQ4NTkzMWFmMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2ZvY3VzLXdpdGhpbi1zdHlsZS11cGRhdGUuaHRtbApA
QCAtMCwwICsxLDE3MCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBpZD0iaHRtbCI+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHN0eWxlIGlkPSJzdHlsZSI+CisqIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsK
K30KKzpmb2N1cy13aXRoaW4geworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxLCAyLCAzKTsK
K30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisgICAgPGRpdiBpZD0id2Vi
a2l0LXRlc3QiPgorICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIxIj4KKyAgICAgICAgICAgIDxk
aXYgaWQ9InNpYmxpbmcxIj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InNpYmxpbmcyIj4K
KyAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9InRhcmdldDEiPgorICAgICAgICAgICAgPC9kaXY+
CisgICAgICAgICAgICA8ZGl2IGlkPSJzaWJsaW5nMyI+PC9kaXY+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIyIj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InNpYmxp
bmc0Ij48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InNpYmxpbmc1Ij4KKyAgICAgICAgICAg
ICAgICA8dGV4dGFyZWEgaWQ9InRhcmdldDIiPjwvdGV4dGFyZWE+CisgICAgICAgICAgICA8L2Rp
dj4KKyAgICAgICAgICAgIDxkaXYgaWQ9InNpYmxpbmc2Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+
CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworZGVzY3JpcHRp
b24oJ0NoZWNrIHRoZSBiYXNpYyBmZWF0dXJlcyBvZiB0aGUgOmZvY3VzLXdpdGhpbiBwc2V1ZG8g
Y2xhc3MnKTsKKworZnVuY3Rpb24gZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3Rv
cigpIHsKKyAgICBsZXQgZWxlbWVudHMgPSBbXTsKKyAgICBmb3IgKGxldCBlbGVtZW50IG9mIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIioiKSkgeworICAgICAgICBpZiAoZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtZW50KS5iYWNrZ3JvdW5kQ29sb3IgPT09ICdyZ2IoMSwgMiwgMyknKSB7CisgICAg
ICAgICAgICBlbGVtZW50cy5wdXNoKGVsZW1lbnQuaWQpOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiBlbGVtZW50czsKK30KKworZnVuY3Rpb24gZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0
aGluU2VsZWN0b3IoKSB7CisgICAgbGV0IGVsZW1lbnRzID0gW107CisgICAgZm9yIChsZXQgZWxl
bWVudCBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6Zm9jdXMtd2l0aGluIikpIHsKKyAg
ICAgICAgZWxlbWVudHMucHVzaChlbGVtZW50LmlkKTsKKyAgICB9CisgICAgcmV0dXJuIGVsZW1l
bnRzOworfQorCitkZWJ1ZygiSW5pdGlhbCBTdGF0ZSIpOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5
bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbXScpOworc2hvdWxkQmUoJ2VsZW1lbnRz
TWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnW10nKTsKKworZGVidWcoIkZvY3VzIHRh
cmdldDEiKTsKK3ZhciB0YXJnZXQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDEi
KTsKK3RhcmdldDEuZm9jdXMoKTsKK3Nob3VsZEJlKCdlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dp
dGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFp
bmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKK3Nob3VsZEJlKCdlbGVtZW50c01hdGNo
aW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0
IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7CisKK2RlYnVnKCJGb2N1
cyB0YXJnZXQyIik7Cit2YXIgdGFyZ2V0MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJn
ZXQyIik7Cit0YXJnZXQyLmZvY3VzKCk7CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9j
dXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNv
bnRhaW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdJyk7CitzaG91bGRCZSgnZWxlbWVudHNN
YXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQt
dGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScpOworCitkZWJ1Zygi
U2V0IGRpc3BsYXkgbm9uZSBvbiB0YXJnZXQyIik7Cit0YXJnZXQyLnN0eWxlLmRpc3BsYXkgPSAi
bm9uZSI7CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3Rvcigp
JywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGlu
ZzUiLCAidGFyZ2V0MiJdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGlu
U2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIy
IiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScpOworc2hvdWxkQmVUcnVlKCd0YXJnZXQyLm1hdGNo
ZXMoIjpmb2N1cyIpJyk7CisKK2RlYnVnKCJGb2N1cyB0YXJnZXQxIik7Cit0YXJnZXQxLmZvY3Vz
KCk7CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywg
J1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIi
LCAidGFyZ2V0MSJdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2Vs
ZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwg
InNpYmxpbmcyIiwgInRhcmdldDEiXScpOworCitkZWJ1ZygiVHJ5IHRvIGZvY3VzIHRhcmdldDIi
KTsKK3RhcmdldDIuZm9jdXMoKTsKK3Nob3VsZEJlKCdlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dp
dGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFp
bmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKK3Nob3VsZEJlKCdlbGVtZW50c01hdGNo
aW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0
IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7CitzaG91bGRCZVRydWUo
J3RhcmdldDEubWF0Y2hlcygiOmZvY3VzIiknKTsKK3Nob3VsZEJlRmFsc2UoJ3RhcmdldDIubWF0
Y2hlcygiOmZvY3VzIiknKTsKKworZGVidWcoIlNldCBkaXNwbGF5IGJhY2sgb24gdGFyZ2V0MiIp
OwordGFyZ2V0Mi5zdHlsZS5kaXNwbGF5ID0gInJldmVydCI7CitzaG91bGRCZSgnZWxlbWVudHNT
dHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtp
dC10ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7CitzaG91bGRC
ZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9k
eSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwgInRhcmdldDEiXScp
OworCitkZWJ1ZygiRm9jdXMgdGFyZ2V0MiIpOwordGFyZ2V0Mi5mb2N1cygpOworc2hvdWxkQmUo
J2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9k
eSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScp
Oworc2hvdWxkQmUoJ2VsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnWyJo
dG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIsICJ0
YXJnZXQyIl0nKTsKKworZGVidWcoIlNldCBkaXNwbGF5IG5vbmUgb24gY29udGFpbmVyMiIpOwor
dmFyIGNvbnRhaW5lcjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyMiIpOwor
Y29udGFpbmVyMi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5
bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQt
dGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScpOworc2hvdWxkQmUo
J2VsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHki
LCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIsICJ0YXJnZXQyIl0nKTsK
K3Nob3VsZEJlVHJ1ZSgndGFyZ2V0Mi5tYXRjaGVzKCI6Zm9jdXMiKScpOworCitkZWJ1ZygiRm9j
dXMgdGFyZ2V0MSIpOwordGFyZ2V0MS5mb2N1cygpOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5bGVk
V2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVz
dCIsICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwgInRhcmdldDEiXScpOworc2hvdWxkQmUoJ2Vs
ZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAi
d2Via2l0LXRlc3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKKwor
ZGVidWcoIlRyeSB0byBmb2N1cyB0YXJnZXQyIik7Cit0YXJnZXQyLmZvY3VzKCk7CitzaG91bGRC
ZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJi
b2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJd
Jyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdb
Imh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwg
InRhcmdldDEiXScpOworc2hvdWxkQmVUcnVlKCd0YXJnZXQxLm1hdGNoZXMoIjpmb2N1cyIpJyk7
CitzaG91bGRCZUZhbHNlKCd0YXJnZXQyLm1hdGNoZXMoIjpmb2N1cyIpJyk7CisKK2RlYnVnKCJT
ZXQgZGlzcGxheSBiYWNrIG9uIGNvbnRhaW5lcjIiKTsKK3ZhciBjb250YWluZXIyID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lcjIiKTsKK2NvbnRhaW5lcjIuc3R5bGUuZGlzcGxh
eSA9ICJyZXZlcnQiOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2Vs
ZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwg
InNpYmxpbmcyIiwgInRhcmdldDEiXScpOworc2hvdWxkQmUoJ2VsZW1lbnRzTWF0Y2hpbmdGb2N1
c1dpdGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29u
dGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKKworZGVidWcoIkRldGFjaCBjb250
YWluZXIxIGZyb20gdGhlIGRvY3VtZW50Iik7Cit2YXIgY29udGFpbmVyMSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb250YWluZXIxIik7Citjb250YWluZXIxLnBhcmVudEVsZW1lbnQucmVt
b3ZlQ2hpbGQoY29udGFpbmVyMSk7CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNX
aXRoaW5TZWxlY3RvcigpJywgJ1tdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3Vz
V2l0aGluU2VsZWN0b3IoKScsICdbXScpOworc2hvdWxkQmUoJ2NvbnRhaW5lcjEucXVlcnlTZWxl
Y3RvckFsbCgiOmZvY3VzLXdpdGhpbiIpLmxlbmd0aCcsICcwJyk7CitzaG91bGRCZUZhbHNlKCd0
YXJnZXQxLm1hdGNoZXMoIjpmb2N1cyIpJyk7CitzaG91bGRCZUZhbHNlKCd0YXJnZXQyLm1hdGNo
ZXMoIjpmb2N1cyIpJyk7CisKK2RlYnVnKCJUcnkgdG8gZm9jdXMgdGFyZ2V0MSIpOwordGFyZ2V0
MS5mb2N1cygpOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0
b3IoKScsICdbXScpOworc2hvdWxkQmUoJ2VsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVj
dG9yKCknLCAnW10nKTsKK3Nob3VsZEJlKCdjb250YWluZXIxLnF1ZXJ5U2VsZWN0b3JBbGwoIjpm
b2N1cy13aXRoaW4iKS5sZW5ndGgnLCAnMCcpOworc2hvdWxkQmVGYWxzZSgndGFyZ2V0MS5tYXRj
aGVzKCI6Zm9jdXMiKScpOworc2hvdWxkQmVGYWxzZSgndGFyZ2V0Mi5tYXRjaGVzKCI6Zm9jdXMi
KScpOworCitkZWJ1ZygiRm9jdXMgdGFyZ2V0MiIpOwordGFyZ2V0Mi5mb2N1cygpOworc2hvdWxk
QmUoJ2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAi
Ym9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIi
XScpOworc2hvdWxkQmUoJ2VsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAn
WyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIs
ICJ0YXJnZXQyIl0nKTsKKworZGVidWcoIkF0dGFjaCBjb250YWluZXIxIGluIGNvbnRhaW5lcjIi
KTsKK2NvbnRhaW5lcjIuYXBwZW5kQ2hpbGQoY29udGFpbmVyMSk7CitzaG91bGRCZSgnZWxlbWVu
dHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndl
YmtpdC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdJyk7CitzaG91
bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAi
Ym9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIi
XScpOworCitkZWJ1ZygiRm9jdXMgdGFyZ2V0MSIpOwordGFyZ2V0MS5mb2N1cygpOworc2hvdWxk
QmUoJ2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAi
Ym9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgImNvbnRhaW5lcjEiLCAic2libGlu
ZzIiLCAidGFyZ2V0MSJdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGlu
U2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIy
IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7CisKK2RlYnVnKCJNb3Zl
IHRhcmdldDEgaW4gY29udGFpbmVyMiIpOworY29udGFpbmVyMi5hcHBlbmRDaGlsZCh0YXJnZXQx
KTsKK3Nob3VsZEJlKCdlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAn
W10nKTsKK3Nob3VsZEJlKCdlbGVtZW50c01hdGNoaW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpJywg
J1tdJyk7CitzaG91bGRCZUZhbHNlKCd0YXJnZXQxLm1hdGNoZXMoIjpmb2N1cyIpJyk7CitzaG91
bGRCZUZhbHNlKCd0YXJnZXQyLm1hdGNoZXMoIjpmb2N1cyIpJyk7CisKK2djKCk7CisKKy8vIENs
ZWFuIHVwIHRoZSB0ZXN0LgorZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlYmtpdC10ZXN0Iiku
c3R5bGUuZGlzcGxheSA9ICJub25lIjsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZSIp
LmlubmVySFRNTCA9ICIiOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2ZvY3VzLXdpdGhpbi13aXRoLXNlbGVjdG9yLWNoZWNrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvZm9jdXMtd2l0aGluLXdp
dGgtc2VsZWN0b3ItY2hlY2tlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNhNTUyYTE5NzFi
MTQ2ZmViODI5MTkxNzFlMjMwZTgzN2Y2OGI3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2VsZWN0b3JzL2ZvY3VzLXdpdGhpbi13aXRoLXNlbGVjdG9yLWNoZWNrZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzcgQEAKK1Rlc3QgOmZvY3VzLXdpdGhpbiB3aXRoIHNlbGVj
dG9ycyBub3QgY29tcGlsZWQgYnkgQ1NTIEpJVAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworSW5pdGlhbCBTdGF0ZQorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNl
bGVjdG9yKCkgaXMgW10KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3Io
KSBpcyBbXQorRm9jdXMgdGFyZ2V0MQorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhp
blNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVy
MSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0
aGluU2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWlu
ZXIxIiwgInNpYmxpbmcyIiwgInRhcmdldDEiXQorRm9jdXMgdGFyZ2V0MgorUEFTUyBlbGVtZW50
c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Vi
a2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIsICJ0YXJnZXQyIl0KK1BBU1MgZWxl
bWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3
ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXQorU2V0IGRp
c3BsYXkgbm9uZSBvbiB0YXJnZXQyCitQQVNTIGVsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGlu
U2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIy
IiwgInNpYmxpbmc1IiwgInRhcmdldDIiXQorUEFTUyBlbGVtZW50c01hdGNoaW5nRm9jdXNXaXRo
aW5TZWxlY3RvcigpIGlzIFsiaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5l
cjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdCitQQVNTIHRhcmdldDIubWF0Y2hlcygiOmZvY3Vz
IikgaXMgdHJ1ZQorRm9jdXMgdGFyZ2V0MQorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dp
dGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFp
bmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3Vz
V2l0aGluU2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250
YWluZXIxIiwgInNpYmxpbmcyIiwgInRhcmdldDEiXQorVHJ5IHRvIGZvY3VzIHRhcmdldDIKK1BB
U1MgZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpIGlzIFsiaHRtbCIsICJi
b2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJd
CitQQVNTIGVsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwg
ImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQx
Il0KK1BBU1MgdGFyZ2V0MS5tYXRjaGVzKCI6Zm9jdXMiKSBpcyB0cnVlCitQQVNTIHRhcmdldDIu
bWF0Y2hlcygiOmZvY3VzIikgaXMgZmFsc2UKK1NldCBkaXNwbGF5IGJhY2sgb24gdGFyZ2V0Mgor
UEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwg
ImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQx
Il0KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbImh0bWwi
LCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwgInRhcmdl
dDEiXQorRm9jdXMgdGFyZ2V0MgorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNl
bGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIs
ICJzaWJsaW5nNSIsICJ0YXJnZXQyIl0KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGlu
U2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIy
IiwgInNpYmxpbmc1IiwgInRhcmdldDIiXQorU2V0IGRpc3BsYXkgbm9uZSBvbiBjb250YWluZXIy
CitQQVNTIGVsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbImh0bWwi
LCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdl
dDIiXQorUEFTUyBlbGVtZW50c01hdGNoaW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpIGlzIFsiaHRt
bCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUiLCAidGFy
Z2V0MiJdCitQQVNTIHRhcmdldDIubWF0Y2hlcygiOmZvY3VzIikgaXMgdHJ1ZQorRm9jdXMgdGFy
Z2V0MQorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJo
dG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0
YXJnZXQxIl0KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBb
Imh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwg
InRhcmdldDEiXQorVHJ5IHRvIGZvY3VzIHRhcmdldDIKK1BBU1MgZWxlbWVudHNTdHlsZWRXaXRo
Rm9jdXNXaXRoaW5TZWxlY3RvcigpIGlzIFsiaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0Iiwg
ImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdCitQQVNTIGVsZW1lbnRzTWF0Y2hp
bmdGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3Qi
LCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0KK1BBU1MgdGFyZ2V0MS5tYXRj
aGVzKCI6Zm9jdXMiKSBpcyB0cnVlCitQQVNTIHRhcmdldDIubWF0Y2hlcygiOmZvY3VzIikgaXMg
ZmFsc2UKK1NldCBkaXNwbGF5IGJhY2sgb24gY29udGFpbmVyMgorUEFTUyBlbGVtZW50c1N0eWxl
ZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRl
c3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0KK1BBU1MgZWxlbWVudHNN
YXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQt
dGVzdCIsICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwgInRhcmdldDEiXQorRGV0YWNoIGNvbnRh
aW5lcjEgZnJvbSB0aGUgZG9jdW1lbnQKK1BBU1MgZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRo
aW5TZWxlY3RvcigpIGlzIFtdCitQQVNTIGVsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVj
dG9yKCkgaXMgW10KK1BBU1MgY29udGFpbmVyMS5xdWVyeVNlbGVjdG9yQWxsKCI6Zm9jdXMtd2l0
aGluIikubGVuZ3RoIGlzIDAKK1BBU1MgdGFyZ2V0MS5tYXRjaGVzKCI6Zm9jdXMiKSBpcyBmYWxz
ZQorUEFTUyB0YXJnZXQyLm1hdGNoZXMoIjpmb2N1cyIpIGlzIGZhbHNlCitUcnkgdG8gZm9jdXMg
dGFyZ2V0MQorUEFTUyBlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMg
W10KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbXQorUEFT
UyBjb250YWluZXIxLnF1ZXJ5U2VsZWN0b3JBbGwoIjpmb2N1cy13aXRoaW4iKS5sZW5ndGggaXMg
MAorUEFTUyB0YXJnZXQxLm1hdGNoZXMoIjpmb2N1cyIpIGlzIGZhbHNlCitQQVNTIHRhcmdldDIu
bWF0Y2hlcygiOmZvY3VzIikgaXMgZmFsc2UKK0ZvY3VzIHRhcmdldDIKK1BBU1MgZWxlbWVudHNT
dHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpIGlzIFsiaHRtbCIsICJib2R5IiwgIndlYmtp
dC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdCitQQVNTIGVsZW1l
bnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Vi
a2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIsICJ0YXJnZXQyIl0KK0F0dGFjaCBj
b250YWluZXIxIGluIGNvbnRhaW5lcjIKK1BBU1MgZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRo
aW5TZWxlY3RvcigpIGlzIFsiaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5l
cjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdCitQQVNTIGVsZW1lbnRzTWF0Y2hpbmdGb2N1c1dp
dGhpblNlbGVjdG9yKCkgaXMgWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFp
bmVyMiIsICJzaWJsaW5nNSIsICJ0YXJnZXQyIl0KK0ZvY3VzIHRhcmdldDEKK1BBU1MgZWxlbWVu
dHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpIGlzIFsiaHRtbCIsICJib2R5IiwgIndl
YmtpdC10ZXN0IiwgImNvbnRhaW5lcjIiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJn
ZXQxIl0KK1BBU1MgZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbImh0
bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgImNvbnRhaW5lcjEiLCAi
c2libGluZzIiLCAidGFyZ2V0MSJdCitNb3ZlIHRhcmdldDEgaW4gY29udGFpbmVyMgorUEFTUyBl
bGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCkgaXMgW10KK1BBU1MgZWxlbWVu
dHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSBpcyBbXQorUEFTUyB0YXJnZXQxLm1hdGNo
ZXMoIjpmb2N1cyIpIGlzIGZhbHNlCitQQVNTIHRhcmdldDIubWF0Y2hlcygiOmZvY3VzIikgaXMg
ZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9mb2N1cy13aXRoaW4td2l0
aC1zZWxlY3Rvci1jaGVja2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9mb2N1
cy13aXRoaW4td2l0aC1zZWxlY3Rvci1jaGVja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U2ZjU0NDAz
MDk1NzE4ZTJjNjhjN2U4MDNkNzg0NmNkODM4Zjk5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL2ZvY3VzLXdpdGhpbi13aXRoLXNlbGVjdG9yLWNoZWNrZXIu
aHRtbApAQCAtMCwwICsxLDE3MyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBpZD0iaHRtbCI+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHN0eWxlIGlkPSJzdHlsZSI+CisqIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3
aGl0ZTsKKyAgICBjb2xvcjogcmdiKDIsIDMsIDQpOworfQorOm1hdGNoZXMoOnJvb3QsIDpudGgt
b2YtdHlwZShuKSwgOm5vdCgjc3BlY2lmaWNpdHktdHJpY2spLCA6bnRoLWxhc3Qtb2YtdHlwZShu
KSk6Zm9jdXMtd2l0aGluIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMSwgMiwgMyk7Cit9
Cis6bWF0Y2hlcyg6cm9vdCwgOm50aC1sYXN0LW9mLXR5cGUobiksIDpub3QoI3NwZWNpZmljaXR5
LXRyaWNrKSk6Zm9jdXMtd2l0aGluIHsKKyAgICBjb2xvcjogcmdiKDUsIDYsIDcpOworfQorPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKyAgICA8ZGl2IGlkPSJ3ZWJraXQtdGVz
dCI+CisgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lcjEiPgorICAgICAgICAgICAgPGRpdiBpZD0i
c2libGluZzEiPjwvZGl2PgorICAgICAgICAgICAgPGRpdiBpZD0ic2libGluZzIiPgorICAgICAg
ICAgICAgICAgIDxpbnB1dCBpZD0idGFyZ2V0MSI+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgICAgIDxkaXYgaWQ9InNpYmxpbmczIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxkaXYgaWQ9ImNvbnRhaW5lcjIiPgorICAgICAgICAgICAgPGRpdiBpZD0ic2libGluZzQiPjwv
ZGl2PgorICAgICAgICAgICAgPGRpdiBpZD0ic2libGluZzUiPgorICAgICAgICAgICAgICAgIDx0
ZXh0YXJlYSBpZD0idGFyZ2V0MiI+PC90ZXh0YXJlYT4KKyAgICAgICAgICAgIDwvZGl2PgorICAg
ICAgICAgICAgPGRpdiBpZD0ic2libGluZzYiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8
L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbignVGVz
dCA6Zm9jdXMtd2l0aGluIHdpdGggc2VsZWN0b3JzIG5vdCBjb21waWxlZCBieSBDU1MgSklUJyk7
CisKK2Z1bmN0aW9uIGVsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKSB7Cisg
ICAgbGV0IGVsZW1lbnRzID0gW107CisgICAgZm9yIChsZXQgZWxlbWVudCBvZiBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCIqIikpIHsKKyAgICAgICAgbGV0IGNvbXB1dGVkU3R5bGUgPSBnZXRD
b21wdXRlZFN0eWxlKGVsZW1lbnQpOworICAgICAgICBpZiAoY29tcHV0ZWRTdHlsZS5iYWNrZ3Jv
dW5kQ29sb3IgPT09ICdyZ2IoMSwgMiwgMyknICYmIGNvbXB1dGVkU3R5bGUuY29sb3IgPT09ICdy
Z2IoNSwgNiwgNyknKSB7CisgICAgICAgICAgICBlbGVtZW50cy5wdXNoKGVsZW1lbnQuaWQpOwor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBlbGVtZW50czsKK30KKworZnVuY3Rpb24gZWxl
bWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKSB7CisgICAgbGV0IGVsZW1lbnRzID0g
W107CisgICAgZm9yIChsZXQgZWxlbWVudCBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6
bWF0Y2hlcyg6cm9vdCwgOm50aC1vZi10eXBlKG4pLCA6bm90KCNzcGVjaWZpY2l0eS10cmljayks
IDpudGgtbGFzdC1vZi10eXBlKG4pKTpmb2N1cy13aXRoaW4iKSkgeworICAgICAgICBlbGVtZW50
cy5wdXNoKGVsZW1lbnQuaWQpOworICAgIH0KKyAgICByZXR1cm4gZWxlbWVudHM7Cit9CisKK2Rl
YnVnKCJJbml0aWFsIFN0YXRlIik7CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNX
aXRoaW5TZWxlY3RvcigpJywgJ1tdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3Vz
V2l0aGluU2VsZWN0b3IoKScsICdbXScpOworCitkZWJ1ZygiRm9jdXMgdGFyZ2V0MSIpOwordmFy
IHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0MSIpOwordGFyZ2V0MS5m
b2N1cygpOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3Io
KScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNpYmxp
bmcyIiwgInRhcmdldDEiXScpOworc2hvdWxkQmUoJ2VsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhp
blNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVy
MSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKKworZGVidWcoIkZvY3VzIHRhcmdldDIiKTsK
K3ZhciB0YXJnZXQyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldDIiKTsKK3Rhcmdl
dDIuZm9jdXMoKTsKK3Nob3VsZEJlKCdlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVj
dG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJz
aWJsaW5nNSIsICJ0YXJnZXQyIl0nKTsKK3Nob3VsZEJlKCdlbGVtZW50c01hdGNoaW5nRm9jdXNX
aXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRh
aW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdJyk7CisKK2RlYnVnKCJTZXQgZGlzcGxheSBu
b25lIG9uIHRhcmdldDIiKTsKK3RhcmdldDIuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKK3Nob3Vs
ZEJlKCdlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwg
ImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMiIsICJzaWJsaW5nNSIsICJ0YXJnZXQy
Il0nKTsKK3Nob3VsZEJlKCdlbGVtZW50c01hdGNoaW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpJywg
J1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUi
LCAidGFyZ2V0MiJdJyk7CitzaG91bGRCZVRydWUoJ3RhcmdldDIubWF0Y2hlcygiOmZvY3VzIikn
KTsKKworZGVidWcoIkZvY3VzIHRhcmdldDEiKTsKK3RhcmdldDEuZm9jdXMoKTsKK3Nob3VsZEJl
KCdlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJv
ZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0n
KTsKK3Nob3VsZEJlKCdlbGVtZW50c01hdGNoaW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1si
aHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAi
dGFyZ2V0MSJdJyk7CisKK2RlYnVnKCJUcnkgdG8gZm9jdXMgdGFyZ2V0MiIpOwordGFyZ2V0Mi5m
b2N1cygpOworc2hvdWxkQmUoJ2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3Io
KScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNpYmxp
bmcyIiwgInRhcmdldDEiXScpOworc2hvdWxkQmUoJ2VsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhp
blNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29udGFpbmVy
MSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKK3Nob3VsZEJlVHJ1ZSgndGFyZ2V0MS5tYXRj
aGVzKCI6Zm9jdXMiKScpOworc2hvdWxkQmVGYWxzZSgndGFyZ2V0Mi5tYXRjaGVzKCI6Zm9jdXMi
KScpOworCitkZWJ1ZygiU2V0IGRpc3BsYXkgYmFjayBvbiB0YXJnZXQyIik7Cit0YXJnZXQyLnN0
eWxlLmRpc3BsYXkgPSAicmV2ZXJ0IjsKK3Nob3VsZEJlKCdlbGVtZW50c1N0eWxlZFdpdGhGb2N1
c1dpdGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAiY29u
dGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKK3Nob3VsZEJlKCdlbGVtZW50c01h
dGNoaW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10
ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7CisKK2RlYnVnKCJG
b2N1cyB0YXJnZXQyIik7Cit0YXJnZXQyLmZvY3VzKCk7CitzaG91bGRCZSgnZWxlbWVudHNTdHls
ZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10
ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdJyk7CitzaG91bGRCZSgn
ZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIs
ICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScpOwor
CitkZWJ1ZygiU2V0IGRpc3BsYXkgbm9uZSBvbiBjb250YWluZXIyIik7Cit2YXIgY29udGFpbmVy
MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIyIik7Citjb250YWluZXIyLnN0
eWxlLmRpc3BsYXkgPSAibm9uZSI7CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNX
aXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRh
aW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRj
aGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVz
dCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScpOworc2hvdWxkQmVUcnVl
KCd0YXJnZXQyLm1hdGNoZXMoIjpmb2N1cyIpJyk7CisKK2RlYnVnKCJGb2N1cyB0YXJnZXQxIik7
Cit0YXJnZXQxLmZvY3VzKCk7CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRo
aW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5l
cjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGlu
Z0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIs
ICJjb250YWluZXIxIiwgInNpYmxpbmcyIiwgInRhcmdldDEiXScpOworCitkZWJ1ZygiVHJ5IHRv
IGZvY3VzIHRhcmdldDIiKTsKK3RhcmdldDIuZm9jdXMoKTsKK3Nob3VsZEJlKCdlbGVtZW50c1N0
eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0
LXRlc3QiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKK3Nob3VsZEJl
KCdlbGVtZW50c01hdGNoaW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5
IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAidGFyZ2V0MSJdJyk7
CitzaG91bGRCZVRydWUoJ3RhcmdldDEubWF0Y2hlcygiOmZvY3VzIiknKTsKK3Nob3VsZEJlRmFs
c2UoJ3RhcmdldDIubWF0Y2hlcygiOmZvY3VzIiknKTsKKworZGVidWcoIlNldCBkaXNwbGF5IGJh
Y2sgb24gY29udGFpbmVyMiIpOwordmFyIGNvbnRhaW5lcjIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29udGFpbmVyMiIpOworY29udGFpbmVyMi5zdHlsZS5kaXNwbGF5ID0gInJldmVydCI7
CitzaG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1si
aHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjEiLCAic2libGluZzIiLCAi
dGFyZ2V0MSJdJyk7CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0
b3IoKScsICdbImh0bWwiLCAiYm9keSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIxIiwgInNp
YmxpbmcyIiwgInRhcmdldDEiXScpOworCitkZWJ1ZygiRGV0YWNoIGNvbnRhaW5lcjEgZnJvbSB0
aGUgZG9jdW1lbnQiKTsKK3ZhciBjb250YWluZXIxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnRhaW5lcjEiKTsKK2NvbnRhaW5lcjEucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChjb250
YWluZXIxKTsKK3Nob3VsZEJlKCdlbGVtZW50c1N0eWxlZFdpdGhGb2N1c1dpdGhpblNlbGVjdG9y
KCknLCAnW10nKTsKK3Nob3VsZEJlKCdlbGVtZW50c01hdGNoaW5nRm9jdXNXaXRoaW5TZWxlY3Rv
cigpJywgJ1tdJyk7CitzaG91bGRCZSgnY29udGFpbmVyMS5xdWVyeVNlbGVjdG9yQWxsKCI6Zm9j
dXMtd2l0aGluIikubGVuZ3RoJywgJzAnKTsKK3Nob3VsZEJlRmFsc2UoJ3RhcmdldDEubWF0Y2hl
cygiOmZvY3VzIiknKTsKK3Nob3VsZEJlRmFsc2UoJ3RhcmdldDIubWF0Y2hlcygiOmZvY3VzIikn
KTsKKworZGVidWcoIlRyeSB0byBmb2N1cyB0YXJnZXQxIik7Cit0YXJnZXQxLmZvY3VzKCk7Citz
aG91bGRCZSgnZWxlbWVudHNTdHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1tdJyk7
CitzaG91bGRCZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbXScp
Oworc2hvdWxkQmUoJ2NvbnRhaW5lcjEucXVlcnlTZWxlY3RvckFsbCgiOmZvY3VzLXdpdGhpbiIp
Lmxlbmd0aCcsICcwJyk7CitzaG91bGRCZUZhbHNlKCd0YXJnZXQxLm1hdGNoZXMoIjpmb2N1cyIp
Jyk7CitzaG91bGRCZUZhbHNlKCd0YXJnZXQyLm1hdGNoZXMoIjpmb2N1cyIpJyk7CisKK2RlYnVn
KCJGb2N1cyB0YXJnZXQyIik7Cit0YXJnZXQyLmZvY3VzKCk7CitzaG91bGRCZSgnZWxlbWVudHNT
dHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtp
dC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdJyk7CitzaG91bGRC
ZSgnZWxlbWVudHNNYXRjaGluZ0ZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbImh0bWwiLCAiYm9k
eSIsICJ3ZWJraXQtdGVzdCIsICJjb250YWluZXIyIiwgInNpYmxpbmc1IiwgInRhcmdldDIiXScp
OworCitkZWJ1ZygiQXR0YWNoIGNvbnRhaW5lcjEgaW4gY29udGFpbmVyMiIpOworY29udGFpbmVy
Mi5hcHBlbmRDaGlsZChjb250YWluZXIxKTsKK3Nob3VsZEJlKCdlbGVtZW50c1N0eWxlZFdpdGhG
b2N1c1dpdGhpblNlbGVjdG9yKCknLCAnWyJodG1sIiwgImJvZHkiLCAid2Via2l0LXRlc3QiLCAi
Y29udGFpbmVyMiIsICJzaWJsaW5nNSIsICJ0YXJnZXQyIl0nKTsKK3Nob3VsZEJlKCdlbGVtZW50
c01hdGNoaW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtp
dC10ZXN0IiwgImNvbnRhaW5lcjIiLCAic2libGluZzUiLCAidGFyZ2V0MiJdJyk7CisKK2RlYnVn
KCJGb2N1cyB0YXJnZXQxIik7Cit0YXJnZXQxLmZvY3VzKCk7CitzaG91bGRCZSgnZWxlbWVudHNT
dHlsZWRXaXRoRm9jdXNXaXRoaW5TZWxlY3RvcigpJywgJ1siaHRtbCIsICJib2R5IiwgIndlYmtp
dC10ZXN0IiwgImNvbnRhaW5lcjIiLCAiY29udGFpbmVyMSIsICJzaWJsaW5nMiIsICJ0YXJnZXQx
Il0nKTsKK3Nob3VsZEJlKCdlbGVtZW50c01hdGNoaW5nRm9jdXNXaXRoaW5TZWxlY3RvcigpJywg
J1siaHRtbCIsICJib2R5IiwgIndlYmtpdC10ZXN0IiwgImNvbnRhaW5lcjIiLCAiY29udGFpbmVy
MSIsICJzaWJsaW5nMiIsICJ0YXJnZXQxIl0nKTsKKworZGVidWcoIk1vdmUgdGFyZ2V0MSBpbiBj
b250YWluZXIyIik7Citjb250YWluZXIyLmFwcGVuZENoaWxkKHRhcmdldDEpOworc2hvdWxkQmUo
J2VsZW1lbnRzU3R5bGVkV2l0aEZvY3VzV2l0aGluU2VsZWN0b3IoKScsICdbXScpOworc2hvdWxk
QmUoJ2VsZW1lbnRzTWF0Y2hpbmdGb2N1c1dpdGhpblNlbGVjdG9yKCknLCAnW10nKTsKK3Nob3Vs
ZEJlRmFsc2UoJ3RhcmdldDEubWF0Y2hlcygiOmZvY3VzIiknKTsKK3Nob3VsZEJlRmFsc2UoJ3Rh
cmdldDIubWF0Y2hlcygiOmZvY3VzIiknKTsKKworLy8gQ2xlYW4gdXAgdGhlIHRlc3QuCitkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgid2Via2l0LXRlc3QiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUi
OworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0eWxlIikuaW5uZXJIVE1MID0gIiI7CisKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>