<?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>89577</bug_id>
          
          <creation_ts>2012-06-20 09:40:24 -0700</creation_ts>
          <short_desc>Implement the script-nonce Content Security Policy directive.</short_desc>
          <delta_ts>2012-07-04 23:45:59 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>90564</dependson>
          <blocked>85558</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>653556</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-20 09:40:24 -0700</bug_when>
    <thetext>CSP 1.1 defines the (experimental) script-nonce directive[1] as a mechanism for allowing only specific inline scripts. We should experiment with it behind the newly-landed ENABLE_CSP_NEXT flag. I&apos;ll upload a WIP patch to give us something concrete to talk about: it doesn&apos;t yet hide the functionality behind the flag, and I&apos;m not convinced that the interaction with `script-src` is correct.

I&apos;ll upload the patch and add specific questions inline.

[1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-nonce--experimental</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653569</commentid>
    <comment_count>1</comment_count>
      <attachid>148588</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-20 09:56:19 -0700</bug_when>
    <thetext>Created attachment 148588
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653576</commentid>
    <comment_count>2</comment_count>
      <attachid>148588</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-20 10:04:38 -0700</bug_when>
    <thetext>Comment on attachment 148588
WIP

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

A few questions inline. Thanks!

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:763
&gt; +    return checkNonceAndReportViolation(nonce, consoleMessage, contextURL, contextLine);

I&apos;m not sure this is correct: we only check `script-src` iff script-nonce isn&apos;t set. This means that `script-src &apos;self&apos;; script-nonce myawesomenonce` allows script to run on the page. I _think_ this is correct behavior, but I&apos;m not sure if the spec&apos;s language precludes it. In particular, I&apos;m not sure if &quot;Whenever the user agent would execute a script from a script element&quot; means &quot;If CSP would otherwise allow a script element to execute&quot; or &quot;If there&apos;s a script element on the page that the browser understands&quot;.

Adam? :)

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:970
&gt; +    DEFINE_STATIC_LOCAL(String, scriptNonce, (&quot;script-nonce&quot;));

if ENABLE(CSP_NEXT)

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:1005
&gt; +    else if (equalIgnoringCase(name, scriptNonce))

if ENABLE(CSP_NEXT)

&gt; LayoutTests/ChangeLog:13
&gt; +        * http/tests/security/contentSecurityPolicy/scriptnonce-blocked.html: Added.

Once the `script-src` and `script-nonce` interaction is clear to me, I&apos;ll add some tests for that combination.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653621</commentid>
    <comment_count>3</comment_count>
      <attachid>148588</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-20 10:38:06 -0700</bug_when>
    <thetext>Comment on attachment 148588
WIP

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

&gt; Source/WebCore/html/HTMLAttributeNames.in:161
&gt; +nonce

We should add this to HTMLScriptElement.idl (behind the ENABLE flag)

&gt;&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:763
&gt;&gt; +    return checkNonceAndReportViolation(nonce, consoleMessage, contextURL, contextLine);
&gt; 
&gt; I&apos;m not sure this is correct: we only check `script-src` iff script-nonce isn&apos;t set. This means that `script-src &apos;self&apos;; script-nonce myawesomenonce` allows script to run on the page. I _think_ this is correct behavior, but I&apos;m not sure if the spec&apos;s language precludes it. In particular, I&apos;m not sure if &quot;Whenever the user agent would execute a script from a script element&quot; means &quot;If CSP would otherwise allow a script element to execute&quot; or &quot;If there&apos;s a script element on the page that the browser understands&quot;.
&gt; 
&gt; Adam? :)

I had in mind that you&apos;d need to satisfy both script-src and script-nonce independently.  So, script-src &apos;self&apos;; script-nonce awesome would only allow a script of it&apos;s URL both from a URL that&apos;s same-origin with &apos;self&apos; and had an appropriate nonce.  Maybe that&apos;s too restrictive?

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:923
&gt; +    if (!m_scriptNonce.isEmpty()) {

I wonder if we should distinguish between isNull and isEmpty.  We could use isNull to represent &quot;no script-nonce directive&quot; and isEmpty to represent &quot;a script-nonce directive with an empty value&quot;.  That&apos;s basically what we do with HTML attributes.

&gt; Source/WebCore/page/ContentSecurityPolicy.h:71
&gt; -    bool allowInlineScript(const String&amp; contextURL, const WTF::OrdinalNumber&amp; contextLine) const;
&gt; +    bool allowInlineScript(const String&amp; nonce, const String&amp; contextURL, const WTF::OrdinalNumber&amp; contextLine) const;

The script-nonce directive is supposed to apply to out-of-line script too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654554</commentid>
    <comment_count>4</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-06-21 08:29:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 148588 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=148588&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLAttributeNames.in:161
&gt; &gt; +nonce
&gt; 
&gt; We should add this to HTMLScriptElement.idl (behind the ENABLE flag)

Will do.

&gt; &gt;&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:763
&gt; &gt;&gt; +    return checkNonceAndReportViolation(nonce, consoleMessage, contextURL, contextLine);
&gt; &gt; 
&gt;
&gt; I had in mind that you&apos;d need to satisfy both script-src and script-nonce independently.  So, script-src &apos;self&apos;; script-nonce awesome would only allow a script of it&apos;s URL both from a URL that&apos;s same-origin with &apos;self&apos; and had an appropriate nonce.  Maybe that&apos;s too restrictive?

It makes sense.

So, if I had `script-src &apos;unsafe-inline&apos;; script-nonce mynonce`, then:

    &lt;script nonce=&apos;mynonce&apos;&gt;// script goes here&lt;/script&gt;

would execute,

    &lt;script&gt;//script&lt;/script&gt;

would not execute, and

    &lt;a onclick=&quot;javascript&quot;&gt;

would not trigger?

&gt; &gt; Source/WebCore/page/ContentSecurityPolicy.cpp:923
&gt; &gt; +    if (!m_scriptNonce.isEmpty()) {
&gt; 
&gt; I wonder if we should distinguish between isNull and isEmpty.  We could use isNull to represent &quot;no script-nonce directive&quot; and isEmpty to represent &quot;a script-nonce directive with an empty value&quot;.  That&apos;s basically what we do with HTML attributes.

Do we want to support empty nonces? I&apos;m not sure I see the value.

&gt; 
&gt; &gt; Source/WebCore/page/ContentSecurityPolicy.h:71
&gt; &gt; -    bool allowInlineScript(const String&amp; contextURL, const WTF::OrdinalNumber&amp; contextLine) const;
&gt; &gt; +    bool allowInlineScript(const String&amp; nonce, const String&amp; contextURL, const WTF::OrdinalNumber&amp; contextLine) const;
&gt; 
&gt; The script-nonce directive is supposed to apply to out-of-line script too.

Will do.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654811</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-21 12:58:54 -0700</bug_when>
    <thetext>&gt; &gt; &gt;&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:763
&gt; &gt; &gt;&gt; +    return checkNonceAndReportViolation(nonce, consoleMessage, contextURL, contextLine);
&gt; &gt; &gt; 
&gt; &gt;
&gt; &gt; I had in mind that you&apos;d need to satisfy both script-src and script-nonce independently.  So, script-src &apos;self&apos;; script-nonce awesome would only allow a script of it&apos;s URL both from a URL that&apos;s same-origin with &apos;self&apos; and had an appropriate nonce.  Maybe that&apos;s too restrictive?
&gt; 
&gt; It makes sense.
&gt; 
&gt; So, if I had `script-src &apos;unsafe-inline&apos;; script-nonce mynonce`, then:
&gt; 
&gt;     &lt;script nonce=&apos;mynonce&apos;&gt;// script goes here&lt;/script&gt;
&gt; 
&gt; would execute,
&gt; 
&gt;     &lt;script&gt;//script&lt;/script&gt;
&gt; 
&gt; would not execute, and
&gt; 
&gt;     &lt;a onclick=&quot;javascript&quot;&gt;
&gt; 
&gt; would not trigger?

Correct.

&gt; &gt; &gt; Source/WebCore/page/ContentSecurityPolicy.cpp:923
&gt; &gt; &gt; +    if (!m_scriptNonce.isEmpty()) {
&gt; &gt; 
&gt; &gt; I wonder if we should distinguish between isNull and isEmpty.  We could use isNull to represent &quot;no script-nonce directive&quot; and isEmpty to represent &quot;a script-nonce directive with an empty value&quot;.  That&apos;s basically what we do with HTML attributes.
&gt; 
&gt; Do we want to support empty nonces? I&apos;m not sure I see the value.

We need to do something if the site uses it.  Maybe we should treat it as if the nonce never matches anything?  Whatever we do, please send an email to public-webappsec so I remember to put it into the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662437</commentid>
    <comment_count>6</comment_count>
      <attachid>148588</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-07-03 12:32:58 -0700</bug_when>
    <thetext>Comment on attachment 148588
WIP

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

&gt;&gt;&gt; Source/WebCore/page/ContentSecurityPolicy.h:71
&gt;&gt;&gt; +    bool allowInlineScript(const String&amp; nonce, const String&amp; contextURL, const WTF::OrdinalNumber&amp; contextLine) const;
&gt;&gt; 
&gt;&gt; The script-nonce directive is supposed to apply to out-of-line script too.
&gt; 
&gt; Will do.
&gt; 
&gt; Thanks!

I&apos;ve been looking at this a bit this afternoon, and it&apos;s more work than I expected. The check for `allowScriptFromSource` is done inside of CachedResourceLoader::canRequest, which doesn&apos;t have access to the element. It looks like more work than it&apos;s probably worth to pipe the nonce down to that point for the comparison.

How would you feel about performing the nonce check inside ScriptElement::requestScript instead? Assuming that nonces aren&apos;t going to expand to other resource types, this seems like the right place to do it. If more resource types would get on board, then piping things into the resource loader might be worth the effort.

If we pull the nonce check for external scripts into ScriptElement, perhaps we also should pull inline script nonce checks in into ScriptElement::executeScript rather than ContentSecurityPolicy::allowInlineScript?

WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662458</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-03 13:39:05 -0700</bug_when>
    <thetext>Yes, do this work in ScriptElement sounds exactly right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662649</commentid>
    <comment_count>8</comment_count>
      <attachid>150710</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-07-03 19:40:24 -0700</bug_when>
    <thetext>Created attachment 150710
WIP: Moved test out to ScriptElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663012</commentid>
    <comment_count>9</comment_count>
      <attachid>150812</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-07-04 09:20:42 -0700</bug_when>
    <thetext>Created attachment 150812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663016</commentid>
    <comment_count>10</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-07-04 09:24:15 -0700</bug_when>
    <thetext>I think the current patch is ready for you to take a look at, Adam, but I&apos;m not going to throw it at the bots until I know it won&apos;t explode. :) Blocking this on skipping tests for ports where the feature isn&apos;t yet supported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663020</commentid>
    <comment_count>11</comment_count>
      <attachid>150812</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-04 09:27:53 -0700</bug_when>
    <thetext>Comment on attachment 150812
Patch

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

This looks pretty good.  I&apos;m off to the airport, so I might not be able to finish the review for a bit.

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:752
&gt; +            &amp;&amp; checkNonceAndReportViolation(&quot;&quot;, consoleMessage, contextURL, contextLine));

&quot;&quot; -&gt; String() ?

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:986
&gt; +#endif // ENABLE(CSP_NEXT)

No need for the comment on such a short ifdef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663022</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-04 09:28:09 -0700</bug_when>
    <thetext>Sorry, I accidentally sent this to the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663035</commentid>
    <comment_count>13</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-07-04 09:43:07 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 150812 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=150812&amp;action=review
&gt; 
&gt; This looks pretty good.  I&apos;m off to the airport, so I might not be able to finish the review for a bit.

No worries. I didn&apos;t expect you to look at anything today, actually. :)

Happy holidays!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663274</commentid>
    <comment_count>14</comment_count>
      <attachid>150869</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-07-04 20:59:02 -0700</bug_when>
    <thetext>Created attachment 150869
Tiny fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663280</commentid>
    <comment_count>15</comment_count>
      <attachid>150869</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-04 21:07:25 -0700</bug_when>
    <thetext>Comment on attachment 150869
Tiny fixes.

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

This came out very well.

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:726
&gt; +    if (m_scriptNonce.isEmpty() || (!nonce.isEmpty() &amp;&amp; nonce.stripWhiteSpace() == m_scriptNonce))
&gt; +        return true;

Is the nonce.isEmpty() check needed here?  Given that m_scriptNonce is not empty, nonce wouldn&apos;t be empty if it matches m_scriptNonce</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663289</commentid>
    <comment_count>16</comment_count>
      <attachid>150871</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-07-04 21:38:00 -0700</bug_when>
    <thetext>Created attachment 150871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663291</commentid>
    <comment_count>17</comment_count>
      <attachid>150871</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-07-04 21:40:36 -0700</bug_when>
    <thetext>Comment on attachment 150871
Patch

You&apos;re right. The `isEmpty` check wasn&apos;t necessary. I&apos;ve dropped it. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663338</commentid>
    <comment_count>18</comment_count>
      <attachid>150871</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-04 23:45:53 -0700</bug_when>
    <thetext>Comment on attachment 150871
Patch

Clearing flags on attachment: 150871

Committed r121883: &lt;http://trac.webkit.org/changeset/121883&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663340</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-04 23:45:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148588</attachid>
            <date>2012-06-20 09:56:19 -0700</date>
            <delta_ts>2012-07-03 19:40:17 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-89577-20120620185618.patch</filename>
            <type>text/plain</type>
            <size>19856</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwODI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMzMjk3NTkzNDA3NDFm
YjkxOTBiZTUyZGFlNjhmYjVhNzVlYWU5Mi4uYzMzZGIwODk4ZGM3N2UzODI5YmZhYWZkNDUwYzBi
YTkyNTNiMTY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA2LTIwICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBzY3Jp
cHQtbm9uY2UgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk1NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
dGhlIChleHBlcmltZW50YWwpIHNjcmlwdC1ub25jZSBDb250ZW50IFNlY3VyaXR5CisgICAgICAg
IFBvbGljeSBkaXJlY3RpdmUgZnJvbSB0aGUgMS4xIHNwZWMsIHdoaWNoIGFsbG93cyBmb3Igc2Vs
ZWN0aXZlCisgICAgICAgIGV4ZWN1dGlvbiBvZiBpbmxpbmUgc2NyaXB0IGJ5IHNwZWNpZnlpbmcg
YSAibm9uY2UiIGF0dHJpYnV0ZSBmb3IgdGhlCisgICAgICAgIHNjcmlwdCB0YWcuIElmIHRoZSBh
dHRyaWJ1dGUgbWF0Y2hlcyB0aGUgdmFsdWUgc3BlY2lmaWVkIGluIHRoZSBDU1AKKyAgICAgICAg
ZGlyZWN0aXZlLCB0aGVuIHRoZSBpbmxpbmUgc2NyaXB0IGlzIGV4ZWN1dGVkLiBJZiBub3QsIGl0
IGlzbid0LgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBnYXRlZCBvbiB0aGUgRU5B
QkxFX0NTUF9ORVhUIGZsYWcsIHdoaWNoIGlzCisgICAgICAgIGN1cnJlbnRseSBkaXNhYmxlZCBm
b3IgYWxsIHBvcnRzLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvY29u
dGVudC1zZWN1cml0eS1wb2xpY3kvcmF3LWZpbGUvdGlwL2NzcC1zcGVjaWZpY2F0aW9uLmRldi5o
dG1sI3NjcmlwdC1ub25jZS0tZXhwZXJpbWVudGFsCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdG5vbmNlLWFsbG93ZWQuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvc2NyaXB0bm9uY2UtYmFkbm9uY2UuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0bm9uY2UtYmxvY2tlZC5odG1sCisK
KyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFbGVtZW50OjpleGVjdXRlU2NyaXB0KToKKyAgICAgICAgICAgIFBhc3NpbmcgdGhlIGBub25j
ZWAgYXR0cmlidXRlIHRocm91Z2ggdG8gQ1NQLgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluOgorICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAg
ICAgICAgKENTUERpcmVjdGl2ZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZl
TGlzdDo6bG9nSW52YWxpZE5vbmNlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZVNjcmlwdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZVNjcmlwdE5vbmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFkZERpcmVjdGl2ZSk6CisgICAgICAg
IChXZWJDb3JlOjppc0FsbG93ZWRCeUFsbFdpdGhOb25jZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5saW5lU2NyaXB0KToKKyAgICAgICAgKiBwYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5oOgorCiAyMDEyLTA2LTIwICBBbGxhbiBTYW5kZmVsZCBK
ZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFVzZSBIaXRUZXN0UG9p
bnQgaW5zdGVhZCBvZiBMYXlvdXRQb2ludCBmb3Igbm9kZUF0UG9pbnQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RWxlbWVudC5jcHAKaW5kZXggNzQ2ZTZjMzdiMjQzMDZlODY3NjBlNGQ0YTJkMGJhNjli
OWM5ZDQ4Ny4uOGU1YjAyOGNkY2FjOGEyOTg4NzY2NDk5ZmY2MGMxZGY3Njc1ZGY1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIHZvaWQgU2Ny
aXB0RWxlbWVudDo6ZXhlY3V0ZVNjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VD
b2RlKQogICAgIGlmIChzb3VyY2VDb2RlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKCFtX2lzRXh0ZXJuYWxTY3JpcHQgJiYgIW1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+dXJsKCksIG1fc3RhcnRMaW5lTnVtYmVyKSkKKyAgICBpZiAoIW1faXNFeHRlcm5hbFNj
cmlwdCAmJiAhbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+
YWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6
bm9uY2VBdHRyKSwgbV9lbGVtZW50LT5kb2N1bWVudCgpLT51cmwoKSwgbV9zdGFydExpbmVOdW1i
ZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0g
bV9lbGVtZW50LT5kb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbgppbmRleCBhNmU3NWJjNzZiODNlNTc5ZWUwZmQ5OTE1ZTRiOWEzNGIxYzM4YmJlLi40
NTkwNzhmNjRjMDhiZTJiZTQzMWIwMDg4OGRjZjM5YmRiMzBiODY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtMTU4LDYgKzE1OCw3IEBAIG11bHRpcGxl
CiBtdXRlZAogbmFtZQogbm9ocmVmCitub25jZQogbm9yZXNpemUKIG5vc2hhZGUKIG5vdmFsaWRh
dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRl
eCBlODc4YjllZWVjYmE4Y2NjMWU2YzllNDlmNzUxNTg4OGMyMTgxOTk4Li4xNDA1Y2FlNDg3NDc0
OTM4MTI2YjMyMjM4ZTg5ZjcwZjU4YjEyY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC01NDcsNyArNTQ3LDcgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBhbGxvd0phdmFTY3JpcHRVUkxzKGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29u
c3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSkgY29uc3Q7CiAgICAgYm9vbCBhbGxv
d0lubGluZUV2ZW50SGFuZGxlcnMoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6
Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKLSAgICBib29sIGFsbG93SW5saW5l
U2NyaXB0KGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVy
JiBjb250ZXh0TGluZSkgY29uc3Q7CisgICAgYm9vbCBhbGxvd0lubGluZVNjcmlwdChjb25zdCBT
dHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5h
bE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dJbmxpbmVTdHlsZShj
b25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4
dExpbmUpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dFdmFsKFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPikgY29uc3Q7CiAKQEAgLTU2Nyw2ICs1NjcsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBw
YXJzZURpcmVjdGl2ZShjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQsIFN0cmlu
ZyYgbmFtZSwgU3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9pZCBwYXJzZVJlcG9ydFVSSShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZvaWQgcGFyc2VTY3JpcHRO
b25jZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgIHZvaWQg
YWRkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAg
ICAgdm9pZCBhcHBseVNhbmRib3hQb2xpY3koY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIHNhbmRib3hQb2xpY3kpOwogCkBAIC01NzYsOSArNTc3LDExIEBAIHByaXZhdGU6CiAgICAg
dm9pZCByZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25zdCBT
dHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBLVVJMJiBibG9ja2VkVVJMID0gS1VSTCgpLCBj
b25zdCBTdHJpbmcmIGNvbnRleHRVUkwgPSBTdHJpbmcoKSwgY29uc3QgV1RGOjpPcmRpbmFsTnVt
YmVyJiBjb250ZXh0TGluZSA9IFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCkgY29uc3Q7CiAgICAgdm9pZCBsb2dVbnJlY29n
bml6ZWREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKICAgICB2b2lkIGxvZ0R1
cGxpY2F0ZURpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OworICAgIHZvaWQgbG9n
SW52YWxpZE5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2UpIGNvbnN0OwogICAgIGJvb2wgY2hlY2tF
dmFsKENTUERpcmVjdGl2ZSopIGNvbnN0OwogCiAgICAgYm9vbCBjaGVja0lubGluZUFuZFJlcG9y
dFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4
dExpbmUpIGNvbnN0OworICAgIGJvb2wgY2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihjb25z
dCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUpIGNv
bnN0OwogICAgIGJvb2wgY2hlY2tFdmFsQW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSos
IGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCA9
IFN0cmluZygpLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lID0gV1RGOjpP
cmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
PSAwKSBjb25zdDsKICAgICBib29sIGNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0aW9uKENTUERp
cmVjdGl2ZSosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHR5cGUpIGNvbnN0OwogCkBAIC02
MDEsNiArNjA0LDcgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX2Nvbm5l
Y3RTcmM7CiAKICAgICBWZWN0b3I8S1VSTD4gbV9yZXBvcnRVUklzOworICAgIFN0cmluZyBtX3Nj
cmlwdE5vbmNlOwogfTsKIAogQ1NQRGlyZWN0aXZlTGlzdDo6Q1NQRGlyZWN0aXZlTGlzdChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQpAQCAtNjkwLDYgKzY5
NCwxMiBAQCB2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmxvZ0R1cGxpY2F0ZURpcmVjdGl2ZShjb25z
dCBTdHJpbmcmIG5hbWUpIGNvbnN0CiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRD
b25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3Nh
Z2VMZXZlbCwgbWVzc2FnZSk7CiB9CiAKK3ZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6bG9nSW52YWxp
ZE5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2UpIGNvbnN0Cit7CisgICAgU3RyaW5nIG1lc3NhZ2Ug
PSBtYWtlU3RyaW5nKCJJZ25vcmluZyBpbnZhbGlkIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IHNj
cmlwdCBub25jZTogJyIsIG5vbmNlLCAiJy5cbiIpOworICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOworfQorCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6
OmNoZWNrRXZhbChDU1BEaXJlY3RpdmUqIGRpcmVjdGl2ZSkgY29uc3QKIHsKICAgICByZXR1cm4g
IWRpcmVjdGl2ZSB8fCBkaXJlY3RpdmUtPmFsbG93RXZhbCgpOwpAQCAtNzA4LDYgKzcxOCwxNCBA
QCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKENT
UERpcmVjdGl2ZSogZGlyZWN0aXZlLCBjbwogICAgIHJldHVybiBkZW55SWZFbmZvcmNpbmdQb2xp
Y3koKTsKIH0KIAorYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVja05vbmNlQW5kUmVwb3J0Vmlv
bGF0aW9uKGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250
ZXh0TGluZSkgY29uc3QKK3sKKyAgICBpZiAoIW5vbmNlLmlzRW1wdHkoKSAmJiBub25jZS5zdHJp
cFdoaXRlU3BhY2UoKSA9PSBtX3NjcmlwdE5vbmNlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICByZXBvcnRWaW9sYXRpb24obV9zY3JpcHROb25jZSwgY29uc29sZU1lc3NhZ2UgKyAiXCJzY3Jp
cHQtbm9uY2UgIiArIG1fc2NyaXB0Tm9uY2UgKyAiXCIuXG4iLCBLVVJMKCksIGNvbnRleHRVUkws
IGNvbnRleHRMaW5lKTsKKyAgICByZXR1cm4gZGVueUlmRW5mb3JjaW5nUG9saWN5KCk7Cit9CisK
IGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tFdmFsQW5kUmVwb3J0VmlvbGF0aW9uKENTUERp
cmVjdGl2ZSogZGlyZWN0aXZlLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUs
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spIGNvbnN0CiB7CiAgICAgaWYg
KGNoZWNrRXZhbChkaXJlY3RpdmUpKQpAQCAtNzM3LDEwICs3NTUsMTIgQEAgYm9vbCBDU1BEaXJl
Y3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMoY29uc3QgU3RyaW5nJiBjb250ZXh0
VVJMLCBjb25zdAogICAgIHJldHVybiBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVy
YXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4
dFVSTCwgY29udGV4dExpbmUpOwogfQogCi1ib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5s
aW5lU2NyaXB0KGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVt
YmVyJiBjb250ZXh0TGluZSkgY29uc3QKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxp
bmVTY3JpcHQoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBj
b25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdAogewogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKCJSZWZ1c2VkIHRvIGV4ZWN1
dGUgaW5saW5lIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVu
dCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSk7Ci0gICAgcmV0dXJuIGNoZWNrSW5saW5l
QW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSks
IGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSk7CisgICAgaWYgKG1fc2Ny
aXB0Tm9uY2UuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gY2hlY2tJbmxpbmVBbmRSZXBvcnRW
aW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSwgY29uc29sZU1l
c3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKTsKKyAgICByZXR1cm4gY2hlY2tOb25jZUFu
ZFJlcG9ydFZpb2xhdGlvbihub25jZSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRl
eHRMaW5lKTsKIH0KIAogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZVN0eWxlKGNv
bnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0
TGluZSkgY29uc3QKQEAgLTg5OCw2ICs5MTgsMzIgQEAgdm9pZCBDU1BEaXJlY3RpdmVMaXN0Ojpw
YXJzZVJlcG9ydFVSSShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiAg
ICAgfQogfQogCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnBhcnNlU2NyaXB0Tm9uY2UoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV9zY3JpcHRO
b25jZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgbG9nRHVwbGljYXRlRGlyZWN0aXZlKG5hbWUpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIG5vbmNlOworICAgIGNvbnN0IFVD
aGFyKiBwb3NpdGlvbiA9IHZhbHVlLmNoYXJhY3RlcnMoKTsKKyAgICBjb25zdCBVQ2hhciogZW5k
ID0gcG9zaXRpb24gKyB2YWx1ZS5sZW5ndGgoKTsKKworICAgIHNraXBXaGlsZTxpc0FTQ0lJU3Bh
Y2U+KHBvc2l0aW9uLCBlbmQpOworICAgIGNvbnN0IFVDaGFyKiBub25jZUJlZ2luID0gcG9zaXRp
b247CisgICAgc2tpcFdoaWxlPGlzTm90QVNDSUlTcGFjZT4ocG9zaXRpb24sIGVuZCk7CisgICAg
aWYgKG5vbmNlQmVnaW4gPCBwb3NpdGlvbikKKyAgICAgICAgbm9uY2UgPSBTdHJpbmcobm9uY2VC
ZWdpbiwgcG9zaXRpb24gLSBub25jZUJlZ2luKTsKKworICAgIC8vIFRyaW0gb2ZmIHRyYWlsaW5n
IHdoaXRlc3BhY2U6IElmIHdlJ3JlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIGxvZwor
ICAgIC8vIGFuIGVycm9yLgorICAgIHNraXBXaGlsZTxpc0FTQ0lJU3BhY2U+KHBvc2l0aW9uLCBl
bmQpOworICAgIGlmIChwb3NpdGlvbiA8IGVuZCkKKyAgICAgICAgbG9nSW52YWxpZE5vbmNlKHZh
bHVlKTsKKyAgICBlbHNlCisgICAgICAgIG1fc2NyaXB0Tm9uY2UgPSBub25jZTsKK30KKwogdm9p
ZCBDU1BEaXJlY3RpdmVMaXN0OjpzZXRDU1BEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlLCBPd25QdHI8Q1NQRGlyZWN0aXZlPiYgZGlyZWN0aXZlKQogewog
ICAgIGlmIChkaXJlY3RpdmUpIHsKQEAgLTkyMSw2ICs5NjcsNyBAQCB2b2lkIENTUERpcmVjdGl2
ZUxpc3Q6OmFkZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFs
dWUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRlZmF1bHRTcmMsICgiZGVm
YXVsdC1zcmMiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNjcmlwdFNyYywg
KCJzY3JpcHQtc3JjIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzY3JpcHRO
b25jZSwgKCJzY3JpcHQtbm9uY2UiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IG9iamVjdFNyYywgKCJvYmplY3Qtc3JjIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBmcmFtZVNyYywgKCJmcmFtZS1zcmMiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIGltZ1NyYywgKCJpbWctc3JjIikpOwpAQCAtOTU1LDYgKzEwMDIsOCBAQCB2b2lkIENT
UERpcmVjdGl2ZUxpc3Q6OmFkZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmFsdWUpCiAgICAgICAgIGFwcGx5U2FuZGJveFBvbGljeShuYW1lLCB2YWx1ZSk7CiAg
ICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgcmVwb3J0VVJJKSkKICAgICAgICAg
cGFyc2VSZXBvcnRVUkkobmFtZSwgdmFsdWUpOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdD
YXNlKG5hbWUsIHNjcmlwdE5vbmNlKSkKKyAgICAgICAgcGFyc2VTY3JpcHROb25jZShuYW1lLCB2
YWx1ZSk7CiAgICAgZWxzZQogICAgICAgICBsb2dVbnJlY29nbml6ZWREaXJlY3RpdmUobmFtZSk7
CiB9CkBAIC05OTYsNiArMTA0NSwxNiBAQCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5
cGUgQ29udGVudFNlY3VyaXR5UG9saWN5OjpkZXByZWNhdGVkSGVhZGVyVHlwZSgpCiAgICAgcmV0
dXJuIG1fcG9saWNpZXMuaXNFbXB0eSgpID8gRW5mb3JjZVBvbGljeSA6IG1fcG9saWNpZXNbMF0t
PmhlYWRlclR5cGUoKTsKIH0KIAordGVtcGxhdGU8Ym9vbCAoQ1NQRGlyZWN0aXZlTGlzdDo6KmFs
bG93ZWQpKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFdURjo6T3JkaW5hbE51
bWJlciYpIGNvbnN0PgorYm9vbCBpc0FsbG93ZWRCeUFsbFdpdGhOb25jZShjb25zdCBDU1BEaXJl
Y3RpdmVMaXN0VmVjdG9yJiBwb2xpY2llcywgY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3Ry
aW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKQor
eworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9saWNpZXMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgaWYgKCEocG9saWNpZXNbaV0uZ2V0KCktPiphbGxvd2VkKShub25jZSwgY29udGV4dFVS
TCwgY29udGV4dExpbmUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogdGVtcGxhdGU8Ym9vbCAoQ1NQRGlyZWN0aXZlTGlzdDo6KmFsbG93
ZWQpKFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgY29uc3Q+CiBib29sIGlzQWxsb3dlZEJ5
QWxsV2l0aENhbGxTdGFjayhjb25zdCBDU1BEaXJlY3RpdmVMaXN0VmVjdG9yJiBwb2xpY2llcywg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKQEAgLTEwMzksOSArMTA5
OCw5IEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZUV2ZW50SGFuZGxl
cnMoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjCiAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5QWxs
V2l0aENvbnRleHQ8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lRXZlbnRIYW5kbGVycz4o
bV9wb2xpY2llcywgY29udGV4dFVSTCwgY29udGV4dExpbmUpOwogfQogCi1ib29sIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6YWxsb3dJbmxpbmVTY3JpcHQoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJM
LCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdAorYm9vbCBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5saW5lU2NyaXB0KGNvbnN0IFN0cmluZyYgbm9uY2Us
IGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250
ZXh0TGluZSkgY29uc3QKIHsKLSAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGxXaXRoQ29udGV4dDwm
Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTY3JpcHQ+KG1fcG9saWNpZXMsIGNvbnRleHRV
UkwsIGNvbnRleHRMaW5lKTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGxXaXRoTm9uY2U8JkNT
UERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lU2NyaXB0PihtX3BvbGljaWVzLCBub25jZSwgY29u
dGV4dFVSTCwgY29udGV4dExpbmUpOwogfQogCiBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
YWxsb3dJbmxpbmVTdHlsZShjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3Jk
aW5hbE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuaAppbmRleCA3YWM2MGQ5ZDdmZmI1NzgyY2JkMThlNzY2MmQ2OWU5
OWVjM2I4MmQ0Li40MWI1NzJkNGQzYTE5YjliNGNkNWE3YTE0NmEyY2RlNGY1MGNiNjM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKQEAgLTY4LDcgKzY4
LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBhbGxvd0phdmFTY3JpcHRVUkxzKGNvbnN0IFN0cmlu
ZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSkgY29u
c3Q7CiAgICAgYm9vbCBhbGxvd0lubGluZUV2ZW50SGFuZGxlcnMoY29uc3QgU3RyaW5nJiBjb250
ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKLSAg
ICBib29sIGFsbG93SW5saW5lU2NyaXB0KGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3Qg
V1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSkgY29uc3Q7CisgICAgYm9vbCBhbGxvd0lu
bGluZVNjcmlwdChjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkws
IGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0OwogICAgIGJvb2wg
YWxsb3dJbmxpbmVTdHlsZShjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3Jk
aW5hbE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dFdmFsKFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1OTRkZGVkYjJlNDhkYmJk
MTI1M2Y5ZWNkMGIxOTdiMzMyZDJjMzY4Li4yYWUyMTI5YTc4ZjgzZmM1OTgzYzQyZTFhMDY3MWU4
ZjUzYjQ5Njc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDYtMjAgIE1pa2UgV2VzdCAg
PG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIHNjcmlwdC1ub25j
ZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTU3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvc2NyaXB0bm9uY2UtYWxsb3dlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Njcmlw
dG5vbmNlLWFsbG93ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0bm9uY2UtYmFkbm9uY2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9zY3JpcHRub25jZS1iYWRub25jZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHRub25jZS1ibG9ja2VkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvc2NyaXB0bm9uY2UtYmxvY2tlZC5odG1sOiBBZGRlZC4KKwogMjAxMi0w
Ni0yMCAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwZWVj
aCBKYXZhU2NyaXB0IEFQSTogYWRkIFNwZWVjaFJlY29nbml0aW9uLm1heEFsdGVybmF0aXZlcyBh
dHRyaWJ1dGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdG5vbmNlLWFsbG93ZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0
bm9uY2UtYWxsb3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg1YTU0MGMzMGVkMzE4NWVh
YWIzZjRlMTY5MjNjNzcxOTY2NjEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdG5vbmNlLWFsbG93
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMg
dGVzdHMgdGhlIGVmZmVjdCBvZiBhIHZhbGlkIHNjcmlwdC1ub25jZSB2YWx1ZS4gSXQgcGFzc2Vz
IGlmIG5vIGNvbnNvbGUgd2FybmluZyBpcyB2aXNpYmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhl
Y3V0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9zY3JpcHRub25jZS1hbGxvd2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHRub25jZS1hbGxv
d2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYzZmMwYTI1YjA5YjgwMTEzODRmZTM2YmFjNWJhM2I1ZDAx
MDM1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdG5vbmNlLWFsbG93ZWQuaHRtbApAQCAtMCwwICsx
LDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0
YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1ub25jZSBub25jeW5v
bmNlOyI+CisgICAgICAgIDxzY3JpcHQgbm9uY2U9Im5vbmN5bm9uY2UiPgorICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBu
b25jZT0ibm9uY3lub25jZSI+CisgICAgICAgICAgICBhbGVydCgnUEFTUyAoMS8xKScpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPgorICAg
ICAgICAgICAgVGhpcyB0ZXN0cyB0aGUgZWZmZWN0IG9mIGEgdmFsaWQgc2NyaXB0LW5vbmNlIHZh
bHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAgICAgIG5vIGNvbnNvbGUgd2FybmluZyBpcyB2aXNp
YmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhlY3V0ZWQuCisgICAgICAgIDwvcD4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHRub25jZS1iYWRub25jZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9z
Y3JpcHRub25jZS1iYWRub25jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I4NTY0ZWMzZjJj
NzIwODQ4NDRmODczNzQ5NjU1NGIyMWM2Y2Y4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdG5vbmNl
LWJhZG5vbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NPTlNPTEUgTUVTU0FHRTog
SWdub3JpbmcgaW52YWxpZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBzY3JpcHQgbm9uY2U6ICd0
aGlzIGlzIGEgYmFkIG5vbmNlJy4KKworQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMgdGVzdHMgdGhl
IGVmZmVjdCBvZiBhbiBpbnZhbGlkIHNjcmlwdC1ub25jZSB2YWx1ZS4gSXQgcGFzc2VzIGlmIGEg
Y29uc29sZSB3YXJuaW5nIGlzIHZpc2libGUsIGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRlZC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3NjcmlwdG5vbmNlLWJhZG5vbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHRub25jZS1iYWRub25jZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY1OWRmZDYyY2VkMGYzOTQxMGU0MzA5YThiOGEwZWJkYWM0ZTRmNWYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9zY3JpcHRub25jZS1iYWRub25jZS5odG1sCkBAIC0wLDAgKzEsMTkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0
dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0ic2NyaXB0LW5vbmNlIHRoaXMgaXMgYSBi
YWQgbm9uY2U7Ij4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBh
bGVydCgnUEFTUyAoMS8xKScpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHk+CisgICAgICAgIDxwPgorICAgICAgICAgICAgVGhpcyB0ZXN0cyB0aGUgZWZmZWN0IG9m
IGFuIGludmFsaWQgc2NyaXB0LW5vbmNlIHZhbHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAgICAg
IGEgY29uc29sZSB3YXJuaW5nIGlzIHZpc2libGUsIGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRl
ZC4KKyAgICAgICAgPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdG5v
bmNlLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0bm9uY2UtYmxvY2tlZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjU4NDMxM2Q2ZDFlZjA1Njk2ODhiZGY1OWZkNWE4YjgyMWNiNTUzNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3NjcmlwdG5vbmNlLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
OSBAQAorQUxFUlQ6IFBBU1MgKDEvMikKK0FMRVJUOiBQQVNTICgyLzIpCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTM6IFJlZnVzZWQgdG8gZXhlY3V0ZSBpbmxpbmUgc2NyaXB0IGJlY2F1c2UgaXQg
dmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6
ICJzY3JpcHQtbm9uY2Ugbm9uY3lub25jZSIuCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNjog
UmVmdXNlZCB0byBleGVjdXRlIGlubGluZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUg
Zm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1ub25j
ZSBub25jeW5vbmNlIi4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBSZWZ1c2VkIHRvIGV4
ZWN1dGUgaW5saW5lIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29u
dGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LW5vbmNlIG5vbmN5bm9uY2Ui
LgorCitUaGlzIHRlc3RzIHRoZSBlZmZlY3Qgb2YgYSB2YWxpZCBzY3JpcHQtbm9uY2UgdmFsdWUu
IEl0IHBhc3NlcyBpZiB0aHJlZSBjb25zb2xlIHdhcm5pbmdzIGFyZSB2aXNpYmxlLCBhbmQgdGhl
IHR3byBQQVNTIGFsZXJ0cyBhcmUgZXhlY3V0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHRub25jZS1ibG9j
a2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9zY3JpcHRub25jZS1ibG9ja2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UxNzA2YzNiZGNk
YjkyZTY4OWZmZmQ5ZGUyOGQxOTJhZTU0YjI0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdG5vbmNl
LWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRl
bnQ9InNjcmlwdC1ub25jZSBub25jeW5vbmNlOyI+CisgICAgICAgIDxzY3JpcHQgbm9uY2U9Im5v
bmN5bm9uY2UiPgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBhbGVy
dCgnUEFTUyAoMS8yKScpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBub25j
ZT0iICAgbm9uY3lub25jZSAgICAiPgorICAgICAgICBhbGVydCgnUEFTUyAoMi8yKScpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBub25jZT0ibm9uY3lub25jZSBub25jeW5v
bmNlIj4KKyAgICAgICAgICAgIGFsZXJ0KCdGQUlMICgxLzMpJyk7CisgICAgICAgIDwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgYWxlcnQoJ0ZBSUwgKDIvMyknKTsKKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgbm9uY2U9Im5vbmN5bm9uY2Vubz8iPgor
ICAgICAgICAgICAgYWxlcnQoJ0ZBSUwgKDMvMyknKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD4KKyAgICAgICAgICAgIFRoaXMgdGVzdHMg
dGhlIGVmZmVjdCBvZiBhIHZhbGlkIHNjcmlwdC1ub25jZSB2YWx1ZS4gSXQgcGFzc2VzIGlmCisg
ICAgICAgICAgICB0aHJlZSBjb25zb2xlIHdhcm5pbmdzIGFyZSB2aXNpYmxlLCBhbmQgdGhlIHR3
byBQQVNTIGFsZXJ0cyBhcmUKKyAgICAgICAgICAgIGV4ZWN1dGVkLgorICAgICAgICA8L3A+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150710</attachid>
            <date>2012-07-03 19:40:24 -0700</date>
            <delta_ts>2012-07-04 09:20:36 -0700</delta_ts>
            <desc>WIP: Moved test out to ScriptElement</desc>
            <filename>bug-89577-20120704044022.patch</filename>
            <type>text/plain</type>
            <size>27695</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdlZjdjMDdkOTg3MDRm
MTZiYmM0OGI2M2YxZDhjNzllNmIyNjA3ZS4uYjgxNzM5NjUzYWY2MzlkNjdmMTNjNTAxYjQyMjQy
NGE3YmIwNjJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA3LTAzICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBzY3Jp
cHQtbm9uY2UgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk1NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
dGhlIChleHBlcmltZW50YWwpIHNjcmlwdC1ub25jZSBDb250ZW50IFNlY3VyaXR5CisgICAgICAg
IFBvbGljeSBkaXJlY3RpdmUgZnJvbSB0aGUgMS4xIHNwZWMsIHdoaWNoIGFsbG93cyBmb3Igc2Vs
ZWN0aXZlCisgICAgICAgIGV4ZWN1dGlvbiBvZiBzY3JpcHQgYnkgc3BlY2lmeWluZyBhICJub25j
ZSIgYXR0cmlidXRlIGZvciB0aGUKKyAgICAgICAgc2NyaXB0IHRhZy4gU2NyaXB0IGlzIG9ubHkg
bG9hZGVkIGFuZCBleGVjdXRlZCBpZiBpdCBib3RoIG1hdGNoZXMgdGhlCisgICAgICAgIG5vbmNl
IGFuZCBtYXRjaGVzIHRoZSBzY3JpcHQtc3JjIHdoaXRlbGlzdCAoaWYgcHJlc2VudCkuCisKKyAg
ICAgICAgVGhlIGltcGxlbWVudGF0aW9uIGlzIGdhdGVkIG9uIHRoZSBFTkFCTEVfQ1NQX05FWFQg
ZmxhZywgd2hpY2ggaXMKKyAgICAgICAgY3VycmVudGx5IGRpc2FibGVkIGZvciBhbGwgcG9ydHMg
b3RoZXIgdGhhbiBDaHJvbWl1bS4KKworICAgICAgICBTcGVjOiBodHRwczovL2R2Y3MudzMub3Jn
L2hnL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L3Jhdy1maWxlL3RpcC9jc3Atc3BlY2lmaWNhdGlv
bi5kZXYuaHRtbCNzY3JpcHQtbm9uY2UtLWV4cGVyaW1lbnRhbAorCisgICAgICAgIFRlc3RzOiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Ut
YWxsb3dlZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYmFkbm9uY2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5v
bmNlLWJsb2NrZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLXNjcmlwdHNyYy1ibG9ja2VkLmh0bWwK
KworICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxl
bWVudDo6ZXhlY3V0ZVNjcmlwdCk6CisgICAgICAgICAgICBQYXNzaW5nIHRoZSBub25jZSBhdHRy
aWJ1dGUgdGhyb3VnaCB0byBDU1AuCisgICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW46CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGw6CisgICAgICAgICAgICBB
ZGRpbmcgdGhlIGBub25jZWAgYXR0cmlidXRlIHRvIHRoZSBzY3JpcHQgdGFnLgorICAgICAgICAq
IHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKENTUERpcmVjdGl2ZUxp
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6bG9nSW52YWxpZE5vbmNl
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlz
dDo6Y2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1BE
aXJlY3RpdmVMaXN0OjphbGxvd0phdmFTY3JpcHRVUkxzKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
UERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lRXZlbnRIYW5kbGVycyk6CisgICAgICAgIChXZWJD
b3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd1NjcmlwdE5vbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTUERpcmVjdGl2ZUxpc3Q6OnBhcnNlU2NyaXB0Tm9uY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWRkRGlyZWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6Omlz
QWxsb3dlZEJ5QWxsV2l0aE5vbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0
eVBvbGljeTo6YWxsb3dTY3JpcHROb25jZSk6CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA3LTAyICBBcmtvIFNhaGEg
IDxhcmtvQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBNaWNyb2RhdGE6IEZpeCBidWlsZCBmYWls
dXJlIGFmdGVyIHIxMjE1ODAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXgg
NzQ2ZTZjMzdiMjQzMDZlODY3NjBlNGQ0YTJkMGJhNjliOWM5ZDQ4Ny4uOWMxNjU0ZTFmYzE4OWY4
MjIxNjgzNjMzZjIzYjg1NmM2ZTg1NmViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmNwcApAQCAtMjUwLDYgKzI1MCw4IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlw
dChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghbV9lbGVtZW50LT5pbkRvY3VtZW50KCkgfHwgbV9lbGVtZW50LT5kb2N1bWVudCgpICE9IG9y
aWdpbmFsRG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93U2NyaXB0Tm9uY2Uo
bV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6bm9uY2VBdHRyKSwgbV9lbGVt
ZW50LT5kb2N1bWVudCgpLT51cmwoKSwgbV9zdGFydExpbmVOdW1iZXIsIG1fZWxlbWVudC0+ZG9j
dW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVXJsKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIEFTU0VSVCghbV9jYWNoZWRTY3JpcHQpOwogICAgIGlmICghc3RyaXBMZWFkaW5nQW5k
VHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJjZVVybCkuaXNFbXB0eSgpKSB7CkBAIC0yODEsNiArMjgz
LDkgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJj
ZUNvZGUmIHNvdXJjZUNvZGUpCiAgICAgaWYgKHNvdXJjZUNvZGUuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBpZiAoIW1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3Vy
aXR5UG9saWN5KCktPmFsbG93U2NyaXB0Tm9uY2UobV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRl
KEhUTUxOYW1lczo6bm9uY2VBdHRyKSwgbV9lbGVtZW50LT5kb2N1bWVudCgpLT51cmwoKSwgbV9z
dGFydExpbmVOdW1iZXIpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoIW1faXNFeHRlcm5h
bFNjcmlwdCAmJiAhbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3ko
KS0+YWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LT5kb2N1bWVudCgpLT51cmwoKSwgbV9zdGFy
dExpbmVOdW1iZXIpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4KaW5kZXggYTZlNzViYzc2YjgzZTU3OWVlMGZkOTkxNWU0YjlhMzRi
MWMzOGJiZS4uNDU5MDc4ZjY0YzA4YmUyYmU0MzFiMDA4ODhkY2YzOWJkYjMwYjg2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTE1OCw2ICsxNTgsNyBA
QCBtdWx0aXBsZQogbXV0ZWQKIG5hbWUKIG5vaHJlZgorbm9uY2UKIG5vcmVzaXplCiBub3NoYWRl
CiBub3ZhbGlkYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCmlu
ZGV4IGE0MWUxMDQzZTZkYzlmNzFkODhlY2VmNDEzZGQ2MmRkMmIzOWE0YmIuLmJhMTZlODUxYzE4
NjJhZWM0MWZmYTM3OWIyZDA0MmUyNjM2ZGY0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuaWRsCkBAIC0yOSw1ICsyOSw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBzcmM7CiAgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHR5cGU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIGNyb3NzT3JpZ2luOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIENv
bmRpdGlvbmFsPUNTUF9ORVhUXSBET01TdHJpbmcgbm9uY2U7CiAgICAgfTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBlODc4YjllZWVj
YmE4Y2NjMWU2YzllNDlmNzUxNTg4OGMyMTgxOTk4Li5kNTdjZjRkNDNmNGJjNTU3MWU2NGNiYzFi
NDI1YjRkN2ZmZDQ5MTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRT
ZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1
ZXMuaCIKKyNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWRlci5oIgogI2luY2x1
ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkBAIC01
NTAsNiArNTUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dJbmxpbmVTY3JpcHQoY29uc3Qg
U3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5l
KSBjb25zdDsKICAgICBib29sIGFsbG93SW5saW5lU3R5bGUoY29uc3QgU3RyaW5nJiBjb250ZXh0
VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKICAgICBi
b29sIGFsbG93RXZhbChQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pIGNvbnN0OworICAgIGJv
b2wgYWxsb3dTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNv
bnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIGNvbnN0IEtV
UkwmKSBjb25zdDsKIAogICAgIGJvb2wgYWxsb3dTY3JpcHRGcm9tU291cmNlKGNvbnN0IEtVUkwm
KSBjb25zdDsKICAgICBib29sIGFsbG93T2JqZWN0RnJvbVNvdXJjZShjb25zdCBLVVJMJikgY29u
c3Q7CkBAIC01NjcsNiArNTY5LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcGFyc2VEaXJlY3Rp
dmUoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBTdHJpbmcmIG5hbWUsIFN0
cmluZyYgdmFsdWUpOwogICAgIHZvaWQgcGFyc2VSZXBvcnRVUkkoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIHBhcnNlU2NyaXB0Tm9uY2UoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICB2b2lkIGFkZERpcmVjdGl2
ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgIHZvaWQgYXBw
bHlTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBzYW5kYm94
UG9saWN5KTsKIApAQCAtNTc2LDkgKzU3OSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVwb3J0
VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4dCwgY29uc3QgU3RyaW5nJiBjb25z
b2xlTWVzc2FnZSwgY29uc3QgS1VSTCYgYmxvY2tlZFVSTCA9IEtVUkwoKSwgY29uc3QgU3RyaW5n
JiBjb250ZXh0VVJMID0gU3RyaW5nKCksIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4
dExpbmUgPSBXVEY6Ok9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCksIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiA9IDApIGNvbnN0OwogICAgIHZvaWQgbG9nVW5yZWNvZ25pemVkRGlyZWN0
aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgdm9pZCBsb2dEdXBsaWNhdGVEaXJl
Y3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKKyAgICB2b2lkIGxvZ0ludmFsaWROb25j
ZShjb25zdCBTdHJpbmcmIG5vbmNlKSBjb25zdDsKICAgICBib29sIGNoZWNrRXZhbChDU1BEaXJl
Y3RpdmUqKSBjb25zdDsKIAogICAgIGJvb2wgY2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24o
Q1NQRGlyZWN0aXZlKiwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25z
dDsKKyAgICBib29sIGNoZWNrTm9uY2VBbmRSZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBu
b25jZSwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0
VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKICAgICBi
b29sIGNoZWNrRXZhbEFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqLCBjb25zdCBTdHJp
bmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwgPSBTdHJpbmcoKSwg
Y29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSA9IFdURjo6T3JkaW5hbE51bWJl
cjo6YmVmb3JlRmlyc3QoKSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCkgY29uc3Q7
CiAgICAgYm9vbCBjaGVja1NvdXJjZUFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqLCBj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0eXBlKSBjb25zdDsKIApAQCAtNjAxLDYgKzYwNiw3
IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPENTUERpcmVjdGl2ZT4gbV9jb25uZWN0U3JjOwogCiAg
ICAgVmVjdG9yPEtVUkw+IG1fcmVwb3J0VVJJczsKKyAgICBTdHJpbmcgbV9zY3JpcHROb25jZTsK
IH07CiAKIENTUERpcmVjdGl2ZUxpc3Q6OkNTUERpcmVjdGl2ZUxpc3QoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKQEAgLTY5MCw2ICs2OTYsMTIgQEAgdm9p
ZCBDU1BEaXJlY3RpdmVMaXN0Ojpsb2dEdXBsaWNhdGVEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBu
YW1lKSBjb25zdAogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1l
c3NhZ2UpOwogfQogCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmxvZ0ludmFsaWROb25jZShjb25z
dCBTdHJpbmcmIG5vbmNlKSBjb25zdAoreworICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmlu
ZygiSWdub3JpbmcgaW52YWxpZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBzY3JpcHQgbm9uY2U6
ICciLCBub25jZSwgIicuXG4iKTsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENv
bnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlKTsKK30KKwogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVja0V2YWwo
Q1NQRGlyZWN0aXZlKiBkaXJlY3RpdmUpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFkaXJlY3RpdmUg
fHwgZGlyZWN0aXZlLT5hbGxvd0V2YWwoKTsKQEAgLTcwOCw2ICs3MjAsMTQgQEAgYm9vbCBDU1BE
aXJlY3RpdmVMaXN0OjpjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUq
IGRpcmVjdGl2ZSwgY28KICAgICByZXR1cm4gZGVueUlmRW5mb3JjaW5nUG9saWN5KCk7CiB9CiAK
K2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihjb25z
dCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUpIGNv
bnN0Cit7CisgICAgaWYgKG1fc2NyaXB0Tm9uY2UuaXNFbXB0eSgpIHx8ICghbm9uY2UuaXNFbXB0
eSgpICYmIG5vbmNlLnN0cmlwV2hpdGVTcGFjZSgpID09IG1fc2NyaXB0Tm9uY2UpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICByZXBvcnRWaW9sYXRpb24obV9zY3JpcHROb25jZSwgY29uc29s
ZU1lc3NhZ2UgKyAiXCJzY3JpcHQtbm9uY2UgIiArIG1fc2NyaXB0Tm9uY2UgKyAiXCIuXG4iLCBL
VVJMKCksIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKTsKKyAgICByZXR1cm4gZGVueUlmRW5mb3Jj
aW5nUG9saWN5KCk7Cit9CisKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tFdmFsQW5kUmVw
b3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSogZGlyZWN0aXZlLCBjb25zdCBTdHJpbmcmIGNvbnNv
bGVNZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51
bWJlciYgY29udGV4dExpbmUsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2sp
IGNvbnN0CiB7CiAgICAgaWYgKGNoZWNrRXZhbChkaXJlY3RpdmUpKQpAQCAtNzI4LDEzICs3NDgs
MTUgQEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVja1NvdXJjZUFuZFJlcG9ydFZpb2xhdGlv
bihDU1BEaXJlY3RpdmUqIGRpcmVjdGl2ZSwgY28KIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxs
b3dKYXZhU2NyaXB0VVJMcyhjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3Jk
aW5hbE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoIlJlZnVzZWQgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0
IFVSTCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQ
b2xpY3kgZGlyZWN0aXZlOiAiKSk7Ci0gICAgcmV0dXJuIGNoZWNrSW5saW5lQW5kUmVwb3J0Vmlv
bGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVNZXNz
YWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSk7CisgICAgcmV0dXJuIChjaGVja0lubGluZUFu
ZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBj
b25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUpCisgICAgICAgICAgICAmJiBj
aGVja05vbmNlQW5kUmVwb3J0VmlvbGF0aW9uKCIiLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVS
TCwgY29udGV4dExpbmUpKTsKIH0KIAogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGlu
ZUV2ZW50SGFuZGxlcnMoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGlu
YWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgaW5saW5lIGV2ZW50
IGhhbmRsZXIgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJp
dHkgUG9saWN5IGRpcmVjdGl2ZTogIikpOwotICAgIHJldHVybiBjaGVja0lubGluZUFuZFJlcG9y
dFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xl
TWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUpOworICAgIHJldHVybiAoY2hlY2tJbmxp
bmVBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgp
KSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKQorICAgICAgICAgICAg
JiYgY2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbigiIiwgY29uc29sZU1lc3NhZ2UsIGNvbnRl
eHRVUkwsIGNvbnRleHRMaW5lKSk7CiB9CiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJ
bmxpbmVTY3JpcHQoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxO
dW1iZXImIGNvbnRleHRMaW5lKSBjb25zdApAQCAtNzU1LDYgKzc3NywxNCBAQCBib29sIENTUERp
cmVjdGl2ZUxpc3Q6OmFsbG93RXZhbChQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0
YWNrKSBjb25zdAogICAgIHJldHVybiBjaGVja0V2YWxBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0
aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2UsIFN0cmluZygp
LCBXVEY6Ok9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCksIGNhbGxTdGFjayk7CiB9CiAKK2Jv
b2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5vbmNl
LCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29u
dGV4dExpbmUsIGNvbnN0IEtVUkwmIHVybCkgY29uc3QKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBi
ZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kg
ZGlyZWN0aXZlOiAiKSk7CisgICAgaWYgKHVybC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBj
aGVja05vbmNlQW5kUmVwb3J0VmlvbGF0aW9uKG5vbmNlLCBjb25zb2xlTWVzc2FnZSwgY29udGV4
dFVSTCwgY29udGV4dExpbmUpOworICAgIHJldHVybiBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0
aW9uKG5vbmNlLCAiUmVmdXNlZCB0byBsb2FkICciICsgdXJsLnN0cmluZygpICsgIicgYmVjYXVz
ZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVj
dGl2ZTogIiwgY29udGV4dFVSTCwgY29udGV4dExpbmUpOworfQorCiBib29sIENTUERpcmVjdGl2
ZUxpc3Q6OmFsbG93U2NyaXB0RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7CiAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHR5cGUsICgic2NyaXB0IikpOwpAQCAtODk4
LDYgKzkyOCwzMiBAQCB2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnBhcnNlUmVwb3J0VVJJKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICB9CiB9CiAKK3ZvaWQgQ1NQ
RGlyZWN0aXZlTGlzdDo6cGFyc2VTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKCFtX3NjcmlwdE5vbmNlLmlzRW1wdHkoKSkgewor
ICAgICAgICBsb2dEdXBsaWNhdGVEaXJlY3RpdmUobmFtZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBTdHJpbmcgbm9uY2U7CisgICAgY29uc3QgVUNoYXIqIHBvc2l0aW9uID0gdmFs
dWUuY2hhcmFjdGVycygpOworICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBwb3NpdGlvbiArIHZhbHVl
Lmxlbmd0aCgpOworCisgICAgc2tpcFdoaWxlPGlzQVNDSUlTcGFjZT4ocG9zaXRpb24sIGVuZCk7
CisgICAgY29uc3QgVUNoYXIqIG5vbmNlQmVnaW4gPSBwb3NpdGlvbjsKKyAgICBza2lwV2hpbGU8
aXNOb3RBU0NJSVNwYWNlPihwb3NpdGlvbiwgZW5kKTsKKyAgICBpZiAobm9uY2VCZWdpbiA8IHBv
c2l0aW9uKQorICAgICAgICBub25jZSA9IFN0cmluZyhub25jZUJlZ2luLCBwb3NpdGlvbiAtIG5v
bmNlQmVnaW4pOworCisgICAgLy8gVHJpbSBvZmYgdHJhaWxpbmcgd2hpdGVzcGFjZTogSWYgd2Un
cmUgbm90IGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgbG9nCisgICAgLy8gYW4gZXJyb3IuCisg
ICAgc2tpcFdoaWxlPGlzQVNDSUlTcGFjZT4ocG9zaXRpb24sIGVuZCk7CisgICAgaWYgKHBvc2l0
aW9uIDwgZW5kKQorICAgICAgICBsb2dJbnZhbGlkTm9uY2UodmFsdWUpOworICAgIGVsc2UKKyAg
ICAgICAgbV9zY3JpcHROb25jZSA9IG5vbmNlOworfQorCiB2b2lkIENTUERpcmVjdGl2ZUxpc3Q6
OnNldENTUERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUs
IE93blB0cjxDU1BEaXJlY3RpdmU+JiBkaXJlY3RpdmUpCiB7CiAgICAgaWYgKGRpcmVjdGl2ZSkg
ewpAQCAtOTIxLDYgKzk3Nyw5IEBAIHZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6YWRkRGlyZWN0aXZl
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgZGVmYXVsdFNyYywgKCJkZWZhdWx0LXNyYyIpKTsKICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgc2NyaXB0U3JjLCAoInNjcmlwdC1zcmMiKSk7Cisj
aWYgRU5BQkxFKENTUF9ORVhUKQorICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzY3Jp
cHROb25jZSwgKCJzY3JpcHQtbm9uY2UiKSk7CisjZW5kaWYgLy8gRU5BQkxFKENTUF9ORVhUKQog
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvYmplY3RTcmMsICgib2JqZWN0LXNyYyIp
KTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZnJhbWVTcmMsICgiZnJhbWUtc3Jj
IikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBpbWdTcmMsICgiaW1nLXNyYyIp
KTsKQEAgLTk1NSw2ICsxMDE0LDEwIEBAIHZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6YWRkRGlyZWN0
aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgYXBw
bHlTYW5kYm94UG9saWN5KG5hbWUsIHZhbHVlKTsKICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShuYW1lLCByZXBvcnRVUkkpKQogICAgICAgICBwYXJzZVJlcG9ydFVSSShuYW1lLCB2YWx1
ZSk7CisjaWYgRU5BQkxFKENTUF9ORVhUKQorICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KG5hbWUsIHNjcmlwdE5vbmNlKSkKKyAgICAgICAgcGFyc2VTY3JpcHROb25jZShuYW1lLCB2YWx1
ZSk7CisjZW5kaWYgLy8gRU5BQkxFKENTUF9ORVhUKQogICAgIGVsc2UKICAgICAgICAgbG9nVW5y
ZWNvZ25pemVkRGlyZWN0aXZlKG5hbWUpOwogfQpAQCAtMTAxNiw2ICsxMDc5LDE2IEBAIGJvb2wg
aXNBbGxvd2VkQnlBbGxXaXRoQ29udGV4dChjb25zdCBDU1BEaXJlY3RpdmVMaXN0VmVjdG9yJiBw
b2xpY2llcywgY29uc3QgU3RyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3RlbXBsYXRlPGJvb2wg
KENTUERpcmVjdGl2ZUxpc3Q6OiphbGxvd2VkKShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImLCBjb25zdCBLVVJMJikgY29uc3Q+Citib29sIGlz
QWxsb3dlZEJ5QWxsV2l0aE5vbmNlKGNvbnN0IENTUERpcmVjdGl2ZUxpc3RWZWN0b3ImIHBvbGlj
aWVzLCBjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0
IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIGNvbnN0IEtVUkwmIHVybCkKK3sKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBvbGljaWVzLnNpemUoKTsgKytpKSB7CisgICAgICAg
IGlmICghKHBvbGljaWVzW2ldLmdldCgpLT4qYWxsb3dlZCkobm9uY2UsIGNvbnRleHRVUkwsIGNv
bnRleHRMaW5lLCB1cmwpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogdGVtcGxhdGU8Ym9vbCAoQ1NQRGlyZWN0aXZlTGlzdDo6KmFsbG93
RnJvbVVSTCkoY29uc3QgS1VSTCYpIGNvbnN0PgogYm9vbCBpc0FsbG93ZWRCeUFsbFdpdGhVUkwo
Y29uc3QgQ1NQRGlyZWN0aXZlTGlzdFZlY3RvciYgcG9saWNpZXMsIGNvbnN0IEtVUkwmIHVybCkK
IHsKQEAgLTEwNTYsNiArMTEyOSwxMSBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxs
b3dFdmFsKFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spIGNvbgogICAgIHJl
dHVybiBpc0FsbG93ZWRCeUFsbFdpdGhDYWxsU3RhY2s8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93
RXZhbD4obV9wb2xpY2llcywgY2FsbFN0YWNrKTsKIH0KIAorYm9vbCBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OmFsbG93U2NyaXB0Tm9uY2UoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5n
JiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBjb25z
dCBLVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQWxsb3dlZEJ5QWxsV2l0aE5vbmNl
PCZDU1BEaXJlY3RpdmVMaXN0OjphbGxvd1NjcmlwdE5vbmNlPihtX3BvbGljaWVzLCBub25jZSwg
Y29udGV4dFVSTCwgY29udGV4dExpbmUsIHVybCk7Cit9CisKIGJvb2wgQ29udGVudFNlY3VyaXR5
UG9saWN5OjphbGxvd1NjcmlwdEZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewog
ICAgIHJldHVybiBpc0FsbG93ZWRCeUFsbFdpdGhVUkw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93
U2NyaXB0RnJvbVNvdXJjZT4obV9wb2xpY2llcywgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCmluZGV4IDdhYzYwZDlkN2ZmYjU3ODJjYmQxOGU3NjYy
ZDY5ZTk5ZWMzYjgyZDQuLmNiNmJlYWQ1MTQ5NThhZDMwMWM0OTNmNjAwZjRlNmE0NjBkNzgxNTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaApAQCAtMjYs
NiArMjYsNyBAQAogI2lmbmRlZiBDb250ZW50U2VjdXJpdHlQb2xpY3lfaAogI2RlZmluZSBDb250
ZW50U2VjdXJpdHlQb2xpY3lfaAogCisjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CkBAIC00MCw3ICs0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENT
UERpcmVjdGl2ZUxpc3Q7CiBjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiBjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OwotY2xhc3MgS1VSTDsKIAogdHlwZWRlZiBWZWN0b3I8T3duUHRyPENTUERp
cmVjdGl2ZUxpc3Q+ID4gQ1NQRGlyZWN0aXZlTGlzdFZlY3RvcjsKIApAQCAtNzEsNiArNzEsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd0lubGluZVNjcmlwdChjb25zdCBTdHJpbmcmIGNvbnRl
eHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0OwogICAg
IGJvb2wgYWxsb3dJbmxpbmVTdHlsZShjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdU
Rjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dFdmFs
KFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgY29uc3Q7CisgICAgYm9vbCBhbGxvd1Njcmlw
dE5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29u
c3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwgY29uc3QgS1VSTCYgPSBLVVJMKCkp
IGNvbnN0OwogCiAgICAgYm9vbCBhbGxvd1NjcmlwdEZyb21Tb3VyY2UoY29uc3QgS1VSTCYpIGNv
bnN0OwogICAgIGJvb2wgYWxsb3dPYmplY3RGcm9tU291cmNlKGNvbnN0IEtVUkwmKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNTBiNjY3ZTA4NDIxMmRkM2E3NjcyMjJlOGE5ZTdhYzU0NjUwOTg0Li5jMGEwZGJk
YTQ0ODBmNGUxMDMyZDg0MTIzOWUyYzQ5YjU4Zjg2ZjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTItMDctMDMgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJ
bXBsZW1lbnQgdGhlIHNjcmlwdC1ub25jZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3Rp
dmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTU3
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFs
bG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYWxsb3dlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8x
LjEvc2NyaXB0bm9uY2UtYmFkbm9uY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Ut
YmFkbm9uY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS8xLjEvc2NyaXB0bm9uY2UtYmxvY2tlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0
c3JjLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJs
b2NrZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2VjaG8tc2NyaXB0LXNyYy5wbDoKKyAgICAgICAgICAg
IEFkZGluZyBub25jeSBnb29kbmVzcyB0byB0aGUgZWNobyBzY3JpcHQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL211bHRpcGxl
LWlmcmFtZS10ZXN0LmpzOgorICAgICAgICAodGVzdCk6CisKIDIwMTItMDctMDIgIFphbiBEb2Jl
cnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBbR3RrXSBNYW55IHRlc3Rz
IHJldmVhbGVkIGFzIHBhc3NpbmcgYWZ0ZXIgbW92aW5nIGZyb20gU2tpcHBlZCB0byB0ZXN0X2V4
cGVjdGF0aW9ucy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1hbGxvd2VkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5LzEuMS9zY3JpcHRub25jZS1hbGxvd2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODVh
NTQwYzMwZWQzMTg1ZWFhYjNmNGUxNjkyM2M3NzE5NjY2MTNiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4x
L3NjcmlwdG5vbmNlLWFsbG93ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6
IFBBU1MgKDEvMSkKK1RoaXMgdGVzdHMgdGhlIGVmZmVjdCBvZiBhIHZhbGlkIHNjcmlwdC1ub25j
ZSB2YWx1ZS4gSXQgcGFzc2VzIGlmIG5vIGNvbnNvbGUgd2FybmluZyBpcyB2aXNpYmxlLCBhbmQg
dGhlIGFsZXJ0KCkgaXMgZXhlY3V0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYWxsb3dl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFsbG93ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjNmYzBhMjVi
MDliODAxMTM4NGZlMzZiYWM1YmEzYjVkMDEwMzViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3Njcmlw
dG5vbmNlLWFsbG93ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1Ai
IGNvbnRlbnQ9InNjcmlwdC1ub25jZSBub25jeW5vbmNlOyI+CisgICAgICAgIDxzY3JpcHQgbm9u
Y2U9Im5vbmN5bm9uY2UiPgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBub25jZT0ibm9uY3lub25jZSI+CisgICAgICAg
ICAgICBhbGVydCgnUEFTUyAoMS8xKScpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHk+CisgICAgICAgIDxwPgorICAgICAgICAgICAgVGhpcyB0ZXN0cyB0aGUgZWZm
ZWN0IG9mIGEgdmFsaWQgc2NyaXB0LW5vbmNlIHZhbHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAg
ICAgIG5vIGNvbnNvbGUgd2FybmluZyBpcyB2aXNpYmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhl
Y3V0ZWQuCisgICAgICAgIDwvcD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEv
c2NyaXB0bm9uY2UtYmFkbm9uY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjg1NjRlYzNmMmM3MjA4NDg0NGY4NzM3NDk2NTU0
YjIxYzZjZjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NPTlNPTEUgTUVTU0FHRTogSWdub3JpbmcgaW52YWxp
ZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBzY3JpcHQgbm9uY2U6ICd0aGlzIGlzIGEgYmFkIG5v
bmNlJy4KKworQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMgdGVzdHMgdGhlIGVmZmVjdCBvZiBhbiBp
bnZhbGlkIHNjcmlwdC1ub25jZSB2YWx1ZS4gSXQgcGFzc2VzIGlmIGEgY29uc29sZSB3YXJuaW5n
IGlzIHZpc2libGUsIGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRlZC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9z
Y3JpcHRub25jZS1iYWRub25jZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjU5ZGZkNjJjZWQwZjM5NDEwZTQzMDlhOGI4YTBlYmRhYzRlNGY1ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1iYWRub25jZS5odG1sCkBAIC0wLDAgKzEsMTkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAt
ZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0ic2NyaXB0LW5vbmNlIHRoaXMgaXMgYSBiYWQg
bm9uY2U7Ij4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBhbGVy
dCgnUEFTUyAoMS8xKScpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJv
ZHk+CisgICAgICAgIDxwPgorICAgICAgICAgICAgVGhpcyB0ZXN0cyB0aGUgZWZmZWN0IG9mIGFu
IGludmFsaWQgc2NyaXB0LW5vbmNlIHZhbHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAgICAgIGEg
Y29uc29sZSB3YXJuaW5nIGlzIHZpc2libGUsIGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRlZC4K
KyAgICAgICAgPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRu
b25jZS1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1ibG9ja2VkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45M2NiMTU2NWYzMzE1ZTYyMGIwNzExN2Q4MDZkOTYxNTRhOGZiZTJk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOSBAQAorQUxFUlQ6IFBBU1MgKDEvMikKK0FMRVJUOiBQQVNTICgyLzIpCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTM6IFJlZnVzZWQgdG8gZXhlY3V0ZSBzY3JpcHQgYmVjYXVzZSBp
dCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2
ZTogInNjcmlwdC1ub25jZSBub25jeW5vbmNlIi4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2
OiBSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxv
d2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtbm9uY2Ugbm9u
Y3lub25jZSIuCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogUmVmdXNlZCB0byBleGVjdXRl
IHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LW5vbmNlIG5vbmN5bm9uY2UiLgorCitUaGlzIHRl
c3RzIHRoZSBlZmZlY3Qgb2YgYSB2YWxpZCBzY3JpcHQtbm9uY2UgdmFsdWUuIEl0IHBhc3NlcyBp
ZiB0aHJlZSBjb25zb2xlIHdhcm5pbmdzIGFyZSB2aXNpYmxlLCBhbmQgdGhlIHR3byBQQVNTIGFs
ZXJ0cyBhcmUgZXhlY3V0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYmxvY2tlZC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
MS4xL3NjcmlwdG5vbmNlLWJsb2NrZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTE3MDZjM2JkY2RiOTJl
Njg5ZmZmZDlkZTI4ZDE5MmFlNTRiMjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNl
LWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRl
bnQ9InNjcmlwdC1ub25jZSBub25jeW5vbmNlOyI+CisgICAgICAgIDxzY3JpcHQgbm9uY2U9Im5v
bmN5bm9uY2UiPgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBhbGVy
dCgnUEFTUyAoMS8yKScpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBub25j
ZT0iICAgbm9uY3lub25jZSAgICAiPgorICAgICAgICBhbGVydCgnUEFTUyAoMi8yKScpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBub25jZT0ibm9uY3lub25jZSBub25jeW5v
bmNlIj4KKyAgICAgICAgICAgIGFsZXJ0KCdGQUlMICgxLzMpJyk7CisgICAgICAgIDwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgYWxlcnQoJ0ZBSUwgKDIvMyknKTsKKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgbm9uY2U9Im5vbmN5bm9uY2Vubz8iPgor
ICAgICAgICAgICAgYWxlcnQoJ0ZBSUwgKDMvMyknKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD4KKyAgICAgICAgICAgIFRoaXMgdGVzdHMg
dGhlIGVmZmVjdCBvZiBhIHZhbGlkIHNjcmlwdC1ub25jZSB2YWx1ZS4gSXQgcGFzc2VzIGlmCisg
ICAgICAgICAgICB0aHJlZSBjb25zb2xlIHdhcm5pbmdzIGFyZSB2aXNpYmxlLCBhbmQgdGhlIHR3
byBQQVNTIGFsZXJ0cyBhcmUKKyAgICAgICAgICAgIGV4ZWN1dGVkLgorICAgICAgICA8L3A+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLXNjcmlwdHNyYy1i
bG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1zY3JpcHRzcmMtYmxvY2tlZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTAzNDdlYzQ0MTA1NmM5ZTRlNDhiZjVjZmM5YmJjYThkNjcz
OWY4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1zY3JpcHRzcmMtYmxvY2tlZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IFJl
ZnVzZWQgdG8gbG9hZCAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9yZXNvdXJjZXMvc2NyaXB0LmpzJyBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBm
b2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LW5vbmNl
IG5vbmNlIi4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IFJlZnVzZWQgdG8gbG9hZCAnaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJj
ZXMvc2NyaXB0LmpzJyBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBT
ZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LW5vbmNlIG5vdG5vbmNlIi4KKworTm9u
ZSBvZiB0aGVzZSBzY3JpcHRzIHNob3VsZCBleGVjdXRlIGV2ZW4gdGhvdWdoIHRoZXJlIGFyZSBw
YXJzZSBlcnJvcnMgaW4gdGhlIHBvbGljeS4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1BBU1MKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTEtLT4tLT4nCistLS0tLS0tLQorUEFT
UworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMi0tPi0tPicK
Ky0tLS0tLS0tCitQQVNTCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0t
ZnJhbWUzLS0+LS0+JworLS0tLS0tLS0KK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1z
Y3JpcHRzcmMtYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLXNjcmlwdHNyYy1ibG9ja2VkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmNmNjllZjdkNDljYjA3ODdjMDU2MGZkZWMzMWQ4OThkMTg0M2NiMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1zY3JpcHRzcmMtYmxvY2tlZC5odG1sCkBA
IC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPScuLi9yZXNvdXJjZXMvbXVsdGlwbGUtaWZyYW1lLXRlc3QuanMnPjwvc2NyaXB0PgorPHNj
cmlwdD4KK3ZhciB0ZXN0cyA9IFsKKyAgICBbJ3llcycsICdzY3JpcHQtc3JjIDEyNy4wLjAuMTo4
MDAwJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnLCAnbm9uY2UnXSwKKyAgICBbJ3llcycsICdzY3Jp
cHQtc3JjIDEyNy4wLjAuMTo4MDAwOyBzY3JpcHQtbm9uY2Ugbm9uY2UnLCAncmVzb3VyY2VzL3Nj
cmlwdC5qcycsICdub25jZSddLAorICAgIFsnbm8nLCAnc2NyaXB0LXNyYyAxMjcuMC4wLjE6ODAw
MDsgc2NyaXB0LW5vbmNlIG5vbmNlJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnLCAnbm90bm9uY2Un
XSwKKyAgICBbJ25vJywgJ3NjcmlwdC1zcmMgMTI3LjAuMC4xOjgwMDA7IHNjcmlwdC1ub25jZSBu
b3Rub25jZScsICdyZXNvdXJjZXMvc2NyaXB0LmpzJywgJ25vbmNlJ10sCitdOworPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisgIDxwPgorICAgIE5vbmUgb2YgdGhl
c2Ugc2NyaXB0cyBzaG91bGQgZXhlY3V0ZSBldmVuIHRob3VnaCB0aGVyZSBhcmUgcGFyc2UgZXJy
b3JzIGluIHRoZSBwb2xpY3kuCisgIDwvcD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9lY2hvLXNjcmlw
dC1zcmMucGwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBsCmluZGV4IGYzNGVkYjA1OWNjYjQ2
NzdjOTAzNGNlN2E4Y2Q4N2NjODZkNjg3YzguLmU2NDY3ZTQ4MDg4NThlNTVkMjRjNDMzNjNlNzdk
OWJjMDQyMDFhM2EgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9lY2hvLXNjcmlwdC1zcmMucGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVz
b3VyY2VzL2VjaG8tc2NyaXB0LXNyYy5wbApAQCAtMTAsMTIgKzEwLDE4IEBAIHByaW50ICJYLVdl
YktpdC1DU1A6ICIuJGNnaS0+cGFyYW0oJ2NzcCcpLiJcblxuIjsKIG15ICgkdGV4dCwgJHJlcGxh
Y2VtZW50KSA9ICgiRkFJTCIsICJQQVNTIik7CiAoJHRleHQsICRyZXBsYWNlbWVudCkgPSAoJHJl
cGxhY2VtZW50LCAkdGV4dCkgaWYgJGNnaS0+cGFyYW0oJ3Nob3VsZF9ydW4nKSBlcSAnbm8nOwog
CitteSAkbm9uY2UgPSAiIjsKK2lmICgkY2dpLT5wYXJhbSgnbm9uY2UnKSBuZSAnJykgeworICAk
bm9uY2UgPSAibm9uY2U9JyIuJGNnaS0+cGFyYW0oJ25vbmNlJykuIiciOworfQorCisKIHByaW50
ICI8IURPQ1RZUEUgaHRtbD5cbiI7CiBwcmludCAiPGh0bWw+XG4iOwogcHJpbnQgIjxib2R5Plxu
IjsKIHByaW50ICI8ZGl2IGlkPVwicmVzdWx0XCIgdGV4dD1cIiRyZXBsYWNlbWVudFwiPlxuIjsK
IHByaW50ICIkdGV4dFxuIjsKIHByaW50ICI8L2Rpdj5cbiI7Ci1wcmludCAiPHNjcmlwdCBzcmM9
XCIiLiRjZ2ktPnBhcmFtKCdxJykuIlwiPjwvc2NyaXB0PlxuIjsKK3ByaW50ICI8c2NyaXB0ICRu
b25jZSBzcmM9XCIiLiRjZ2ktPnBhcmFtKCdxJykuIlwiPjwvc2NyaXB0PlxuIjsKIHByaW50ICI8
L2JvZHk+XG4iOwogcHJpbnQgIjwvaHRtbD5cbiI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvbXVsdGlw
bGUtaWZyYW1lLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvbXVsdGlwbGUtaWZyYW1lLXRlc3QuanMKaW5kZXgg
N2Y5YTE1MTM1OTZkZDNhNDNmYjVjZDI4NTE2ZTUxYmRjM2Y1ZTFjYS4uN2NkNGNkMGJiODNjMThh
NjQzODMzODc1MDRiZmFjZThjZjYzMTBiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL211bHRpcGxlLWlm
cmFtZS10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9tdWx0aXBsZS1pZnJhbWUtdGVzdC5qcwpAQCAtMTUs
NiArMTUsOSBAQCBmdW5jdGlvbiB0ZXN0KCkgewogICAgICAgICAgICAgICAgICAic2hvdWxkX3J1
bj0iICsgZXNjYXBlKGN1cnJlbnRbMF0pICsKICAgICAgICAgICAgICAgICAgIiZjc3A9IiArIGVz
Y2FwZShjdXJyZW50WzFdKSArCiAgICAgICAgICAgICAgICAgICImcT0iICsgYmFzZVVSTCArIGVz
Y2FwZShjdXJyZW50WzJdKTsKKyAgICBpZiAoY3VycmVudFszXSkKKyAgICAgIGlmcmFtZS5zcmMg
Kz0gIiZub25jZT0iICsgZXNjYXBlKGN1cnJlbnRbM10pOworCiAgICAgaWZyYW1lLm9ubG9hZCA9
IHRlc3Q7CiAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150812</attachid>
            <date>2012-07-04 09:20:42 -0700</date>
            <delta_ts>2012-07-04 20:58:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89577-20120704182041.patch</filename>
            <type>text/plain</type>
            <size>29682</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdlZjdjMDdkOTg3MDRm
MTZiYmM0OGI2M2YxZDhjNzllNmIyNjA3ZS4uYTVjZTE5Y2Q2MzBiNjIyMzkyMzUyYzM5OWY4ZmEw
OGYwNWRmYjRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA3LTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBzY3Jp
cHQtbm9uY2UgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk1NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
dGhlIChleHBlcmltZW50YWwpIHNjcmlwdC1ub25jZSBDb250ZW50IFNlY3VyaXR5CisgICAgICAg
IFBvbGljeSBkaXJlY3RpdmUgZnJvbSB0aGUgMS4xIHNwZWMsIHdoaWNoIGFsbG93cyBmb3Igc2Vs
ZWN0aXZlCisgICAgICAgIGV4ZWN1dGlvbiBvZiBzY3JpcHQgYnkgc3BlY2lmeWluZyBhICJub25j
ZSIgYXR0cmlidXRlIGZvciB0aGUKKyAgICAgICAgc2NyaXB0IHRhZy4gU2NyaXB0IGlzIG9ubHkg
bG9hZGVkIGFuZCBleGVjdXRlZCBpZiBpdCBib3RoIG1hdGNoZXMgdGhlCisgICAgICAgIG5vbmNl
IGFuZCBtYXRjaGVzIHRoZSBzY3JpcHQtc3JjIHdoaXRlbGlzdCAoaWYgcHJlc2VudCkuCisKKyAg
ICAgICAgVGhlIGltcGxlbWVudGF0aW9uIGlzIGdhdGVkIG9uIHRoZSBFTkFCTEVfQ1NQX05FWFQg
ZmxhZywgd2hpY2ggaXMKKyAgICAgICAgY3VycmVudGx5IGRpc2FibGVkIGZvciBhbGwgcG9ydHMg
b3RoZXIgdGhhbiBDaHJvbWl1bS4KKworICAgICAgICBTcGVjOiBodHRwczovL2R2Y3MudzMub3Jn
L2hnL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L3Jhdy1maWxlL3RpcC9jc3Atc3BlY2lmaWNhdGlv
bi5kZXYuaHRtbCNzY3JpcHQtbm9uY2UtLWV4cGVyaW1lbnRhbAorCisgICAgICAgIFRlc3RzOiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Ut
YWxsb3dlZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYmFkbm9uY2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5v
bmNlLWJsb2NrZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9uY2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3Nj
cmlwdG5vbmNlLXNjcmlwdHNyYy1ibG9ja2VkLmh0bWwKKworICAgICAgICAqIGRvbS9TY3JpcHRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3Jp
cHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6ZXhlY3V0ZVNjcmlwdCk6Cisg
ICAgICAgICAgICBQYXNzaW5nIHRoZSBub25jZSBhdHRyaWJ1dGUgdGhyb3VnaCB0byBDU1AuCisg
ICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5pZGw6CisgICAgICAgICAgICBBZGRpbmcgdGhlIGBub25jZWAgYXR0cmli
dXRlIHRvIHRoZSBzY3JpcHQgdGFnLgorICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmNwcDoKKyAgICAgICAgKENTUERpcmVjdGl2ZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NQRGlyZWN0aXZlTGlzdDo6bG9nSW52YWxpZE5vbmNlKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tOb25jZUFuZFJlcG9ydFZp
b2xhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0phdmFT
Y3JpcHRVUkxzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5s
aW5lRXZlbnRIYW5kbGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0Ojph
bGxvd1NjcmlwdE5vbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OnBh
cnNlU2NyaXB0Tm9uY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWRk
RGlyZWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzQWxsb3dlZEJ5QWxsV2l0aE5vbmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dTY3JpcHROb25j
ZSk6CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorCiAyMDEyLTA3LTAyICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KIAog
ICAgICAgICBNaWNyb2RhdGE6IEZpeCBidWlsZCBmYWlsdXJlIGFmdGVyIHIxMjE1ODAuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggNzQ2ZTZjMzdiMjQzMDZlODY3NjBlNGQ0
YTJkMGJhNjliOWM5ZDQ4Ny4uOWMxNjU0ZTFmYzE4OWY4MjIxNjgzNjMzZjIzYjg1NmM2ZTg1NmVi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjUwLDYgKzI1MCw4IEBA
IGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVy
bCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghbV9lbGVtZW50LT5pbkRvY3VtZW50
KCkgfHwgbV9lbGVtZW50LT5kb2N1bWVudCgpICE9IG9yaWdpbmFsRG9jdW1lbnQpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29udGVudFNl
Y3VyaXR5UG9saWN5KCktPmFsbG93U2NyaXB0Tm9uY2UobV9lbGVtZW50LT5mYXN0R2V0QXR0cmli
dXRlKEhUTUxOYW1lczo6bm9uY2VBdHRyKSwgbV9lbGVtZW50LT5kb2N1bWVudCgpLT51cmwoKSwg
bV9zdGFydExpbmVOdW1iZXIsIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291
cmNlVXJsKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFTU0VSVCghbV9jYWNoZWRT
Y3JpcHQpOwogICAgIGlmICghc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJj
ZVVybCkuaXNFbXB0eSgpKSB7CkBAIC0yODEsNiArMjgzLDkgQEAgdm9pZCBTY3JpcHRFbGVtZW50
OjpleGVjdXRlU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiAgICAg
aWYgKHNvdXJjZUNvZGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIW1f
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93U2NyaXB0
Tm9uY2UobV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6bm9uY2VBdHRyKSwg
bV9lbGVtZW50LT5kb2N1bWVudCgpLT51cmwoKSwgbV9zdGFydExpbmVOdW1iZXIpKQorICAgICAg
ICByZXR1cm47CisKICAgICBpZiAoIW1faXNFeHRlcm5hbFNjcmlwdCAmJiAhbV9lbGVtZW50LT5k
b2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dJbmxpbmVTY3JpcHQobV9l
bGVtZW50LT5kb2N1bWVudCgpLT51cmwoKSwgbV9zdGFydExpbmVOdW1iZXIpKQogICAgICAgICBy
ZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXgg
YTZlNzViYzc2YjgzZTU3OWVlMGZkOTkxNWU0YjlhMzRiMWMzOGJiZS4uNDU5MDc4ZjY0YzA4YmUy
YmU0MzFiMDA4ODhkY2YzOWJkYjMwYjg2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW4KQEAgLTE1OCw2ICsxNTgsNyBAQCBtdWx0aXBsZQogbXV0ZWQKIG5hbWUK
IG5vaHJlZgorbm9uY2UKIG5vcmVzaXplCiBub3NoYWRlCiBub3ZhbGlkYXRlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCmluZGV4IGE0MWUxMDQzZTZkYzlmNzFkODhl
Y2VmNDEzZGQ2MmRkMmIzOWE0YmIuLmJhMTZlODUxYzE4NjJhZWM0MWZmYTM3OWIyZDA0MmUyNjM2
ZGY0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCkBAIC0y
OSw1ICsyOSw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBV
UkxdIERPTVN0cmluZyBzcmM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IHR5cGU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNyb3NzT3JpZ2lu
OworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIENvbmRpdGlvbmFsPUNTUF9ORVhUXSBET01T
dHJpbmcgbm9uY2U7CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcAppbmRleCBlODc4YjllZWVjYmE4Y2NjMWU2YzllNDlmNzUxNTg4OGMy
MTgxOTk4Li4wMDljOThmMzJjODkwYWI2YTZlMTk4YmQ0ZmI0MDdmYzg2MTliYWY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKKyNpbmNsdWRlICJLVVJMLmgi
CiAjaW5jbHVkZSAiUGluZ0xvYWRlci5oIgogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkBAIC01NTAsNiArNTUxLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgYWxsb3dJbmxpbmVTY3JpcHQoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25z
dCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKICAgICBib29sIGFsbG93
SW5saW5lU3R5bGUoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxO
dW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKICAgICBib29sIGFsbG93RXZhbChQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4pIGNvbnN0OworICAgIGJvb2wgYWxsb3dTY3JpcHROb25jZShjb25z
dCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3Jk
aW5hbE51bWJlciYgY29udGV4dExpbmUsIGNvbnN0IEtVUkwmKSBjb25zdDsKIAogICAgIGJvb2wg
YWxsb3dTY3JpcHRGcm9tU291cmNlKGNvbnN0IEtVUkwmKSBjb25zdDsKICAgICBib29sIGFsbG93
T2JqZWN0RnJvbVNvdXJjZShjb25zdCBLVVJMJikgY29uc3Q7CkBAIC01NjcsNiArNTY5LDcgQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgcGFyc2VEaXJlY3RpdmUoY29uc3QgVUNoYXIqIGJlZ2luLCBj
b25zdCBVQ2hhciogZW5kLCBTdHJpbmcmIG5hbWUsIFN0cmluZyYgdmFsdWUpOwogICAgIHZvaWQg
cGFyc2VSZXBvcnRVUkkoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsK
KyAgICB2b2lkIHBhcnNlU2NyaXB0Tm9uY2UoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIHZhbHVlKTsKICAgICB2b2lkIGFkZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUpOwogICAgIHZvaWQgYXBwbHlTYW5kYm94UG9saWN5KGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBzYW5kYm94UG9saWN5KTsKIApAQCAtNTc2LDkgKzU3
OSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYg
ZGlyZWN0aXZlVGV4dCwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgS1VSTCYg
YmxvY2tlZFVSTCA9IEtVUkwoKSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMID0gU3RyaW5nKCks
IGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUgPSBXVEY6Ok9yZGluYWxOdW1i
ZXI6OmJlZm9yZUZpcnN0KCksIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDApIGNvbnN0
OwogICAgIHZvaWQgbG9nVW5yZWNvZ25pemVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkg
Y29uc3Q7CiAgICAgdm9pZCBsb2dEdXBsaWNhdGVEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1l
KSBjb25zdDsKKyAgICB2b2lkIGxvZ0ludmFsaWROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlKSBj
b25zdDsKICAgICBib29sIGNoZWNrRXZhbChDU1BEaXJlY3RpdmUqKSBjb25zdDsKIAogICAgIGJv
b2wgY2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24oQ1NQRGlyZWN0aXZlKiwgY29uc3QgU3Ry
aW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6
Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKKyAgICBib29sIGNoZWNrTm9uY2VB
bmRSZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBjb25z
b2xlTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxO
dW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKICAgICBib29sIGNoZWNrRXZhbEFuZFJlcG9ydFZp
b2xhdGlvbihDU1BEaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGNvbnRleHRVUkwgPSBTdHJpbmcoKSwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVy
JiBjb250ZXh0TGluZSA9IFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSwgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCkgY29uc3Q7CiAgICAgYm9vbCBjaGVja1NvdXJjZUFu
ZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5n
JiB0eXBlKSBjb25zdDsKIApAQCAtNjAxLDYgKzYwNiw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRy
PENTUERpcmVjdGl2ZT4gbV9jb25uZWN0U3JjOwogCiAgICAgVmVjdG9yPEtVUkw+IG1fcmVwb3J0
VVJJczsKKyAgICBTdHJpbmcgbV9zY3JpcHROb25jZTsKIH07CiAKIENTUERpcmVjdGl2ZUxpc3Q6
OkNTUERpcmVjdGl2ZUxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkKQEAgLTY5MCw2ICs2OTYsMTIgQEAgdm9pZCBDU1BEaXJlY3RpdmVMaXN0Ojpsb2dE
dXBsaWNhdGVEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAogICAgIG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dN
ZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOwogfQogCit2b2lkIENTUERp
cmVjdGl2ZUxpc3Q6OmxvZ0ludmFsaWROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlKSBjb25zdAor
eworICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiSWdub3JpbmcgaW52YWxpZCBDb250
ZW50IFNlY3VyaXR5IFBvbGljeSBzY3JpcHQgbm9uY2U6ICciLCBub25jZSwgIicuXG4iKTsKKyAg
ICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNv
dXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKK30KKwog
Ym9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVja0V2YWwoQ1NQRGlyZWN0aXZlKiBkaXJlY3RpdmUp
IGNvbnN0CiB7CiAgICAgcmV0dXJuICFkaXJlY3RpdmUgfHwgZGlyZWN0aXZlLT5hbGxvd0V2YWwo
KTsKQEAgLTcwOCw2ICs3MjAsMTQgQEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVja0lubGlu
ZUFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqIGRpcmVjdGl2ZSwgY28KICAgICByZXR1
cm4gZGVueUlmRW5mb3JjaW5nUG9saWN5KCk7CiB9CiAKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6
Y2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBT
dHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdU
Rjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0Cit7CisgICAgaWYgKG1fc2NyaXB0
Tm9uY2UuaXNFbXB0eSgpIHx8ICghbm9uY2UuaXNFbXB0eSgpICYmIG5vbmNlLnN0cmlwV2hpdGVT
cGFjZSgpID09IG1fc2NyaXB0Tm9uY2UpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXBv
cnRWaW9sYXRpb24obV9zY3JpcHROb25jZSwgY29uc29sZU1lc3NhZ2UgKyAiXCJzY3JpcHQtbm9u
Y2UgIiArIG1fc2NyaXB0Tm9uY2UgKyAiXCIuXG4iLCBLVVJMKCksIGNvbnRleHRVUkwsIGNvbnRl
eHRMaW5lKTsKKyAgICByZXR1cm4gZGVueUlmRW5mb3JjaW5nUG9saWN5KCk7Cit9CisKIGJvb2wg
Q1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tFdmFsQW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2
ZSogZGlyZWN0aXZlLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spIGNvbnN0CiB7CiAgICAgaWYgKGNoZWNr
RXZhbChkaXJlY3RpdmUpKQpAQCAtNzI4LDEzICs3NDgsMTUgQEAgYm9vbCBDU1BEaXJlY3RpdmVM
aXN0OjpjaGVja1NvdXJjZUFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqIGRpcmVjdGl2
ZSwgY28KIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dKYXZhU2NyaXB0VVJMcyhjb25zdCBT
dHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUp
IGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdl
LCAoIlJlZnVzZWQgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IFVSTCBiZWNhdXNlIGl0IHZpb2xhdGVz
IHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSk7Ci0g
ICAgcmV0dXJuIGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2
ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0
TGluZSk7CisgICAgcmV0dXJuIChjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRp
dmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVS
TCwgY29udGV4dExpbmUpCisgICAgICAgICAgICAmJiBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0
aW9uKCIiLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUpKTsKIH0KIAog
Ym9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMoY29uc3QgU3Ry
aW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBj
b25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwg
KCJSZWZ1c2VkIHRvIGV4ZWN1dGUgaW5saW5lIGV2ZW50IGhhbmRsZXIgYmVjYXVzZSBpdCB2aW9s
YXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikp
OwotICAgIHJldHVybiBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJl
Y3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29u
dGV4dExpbmUpOworICAgIHJldHVybiAoY2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24ob3Bl
cmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2UsIGNvbnRl
eHRVUkwsIGNvbnRleHRMaW5lKQorICAgICAgICAgICAgJiYgY2hlY2tOb25jZUFuZFJlcG9ydFZp
b2xhdGlvbigiIiwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKSk7CiB9
CiAKIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dJbmxpbmVTY3JpcHQoY29uc3QgU3RyaW5n
JiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25z
dApAQCAtNzU1LDYgKzc3NywxNCBAQCBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93RXZhbChQ
YXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKSBjb25zdAogICAgIHJldHVybiBj
aGVja0V2YWxBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3Jj
LmdldCgpKSwgY29uc29sZU1lc3NhZ2UsIFN0cmluZygpLCBXVEY6Ok9yZGluYWxOdW1iZXI6OmJl
Zm9yZUZpcnN0KCksIGNhbGxTdGFjayk7CiB9CiAKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6YWxs
b3dTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRV
UkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIGNvbnN0IEtVUkwmIHVy
bCkgY29uc3QKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3Nh
Z2UsICgiUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBm
b2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAiKSk7CisgICAgaWYg
KHVybC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0
aW9uKG5vbmNlLCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUpOworICAg
IHJldHVybiBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0aW9uKG5vbmNlLCAiUmVmdXNlZCB0byBs
b2FkICciICsgdXJsLnN0cmluZygpICsgIicgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93
aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIiwgY29udGV4dFVSTCwgY29u
dGV4dExpbmUpOworfQorCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93U2NyaXB0RnJvbVNv
dXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIHR5cGUsICgic2NyaXB0IikpOwpAQCAtODk4LDYgKzkyOCwzNiBAQCB2b2lkIENTUERp
cmVjdGl2ZUxpc3Q6OnBhcnNlUmVwb3J0VVJJKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKICAgICB9CiB9CiAKK3ZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6cGFyc2VTY3Jp
cHROb25jZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAg
aWYgKCFtX3NjcmlwdE5vbmNlLmlzRW1wdHkoKSkgeworICAgICAgICBsb2dEdXBsaWNhdGVEaXJl
Y3RpdmUobmFtZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmcgbm9uY2U7
CisgICAgY29uc3QgVUNoYXIqIHBvc2l0aW9uID0gdmFsdWUuY2hhcmFjdGVycygpOworICAgIGNv
bnN0IFVDaGFyKiBlbmQgPSBwb3NpdGlvbiArIHZhbHVlLmxlbmd0aCgpOworCisgICAgc2tpcFdo
aWxlPGlzQVNDSUlTcGFjZT4ocG9zaXRpb24sIGVuZCk7CisgICAgY29uc3QgVUNoYXIqIG5vbmNl
QmVnaW4gPSBwb3NpdGlvbjsKKyAgICBpZiAocG9zaXRpb24gPT0gZW5kKSB7CisgICAgICAgIGxv
Z0ludmFsaWROb25jZShTdHJpbmcoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2tp
cFdoaWxlPGlzTm90QVNDSUlTcGFjZT4ocG9zaXRpb24sIGVuZCk7CisgICAgaWYgKG5vbmNlQmVn
aW4gPCBwb3NpdGlvbikKKyAgICAgICAgbm9uY2UgPSBTdHJpbmcobm9uY2VCZWdpbiwgcG9zaXRp
b24gLSBub25jZUJlZ2luKTsKKworICAgIC8vIFRyaW0gb2ZmIHRyYWlsaW5nIHdoaXRlc3BhY2U6
IElmIHdlJ3JlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIGxvZworICAgIC8vIGFuIGVy
cm9yLgorICAgIHNraXBXaGlsZTxpc0FTQ0lJU3BhY2U+KHBvc2l0aW9uLCBlbmQpOworICAgIGlm
IChwb3NpdGlvbiA8IGVuZCkKKyAgICAgICAgbG9nSW52YWxpZE5vbmNlKHZhbHVlKTsKKyAgICBl
bHNlCisgICAgICAgIG1fc2NyaXB0Tm9uY2UgPSBub25jZTsKK30KKwogdm9pZCBDU1BEaXJlY3Rp
dmVMaXN0OjpzZXRDU1BEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHZhbHVlLCBPd25QdHI8Q1NQRGlyZWN0aXZlPiYgZGlyZWN0aXZlKQogewogICAgIGlmIChkaXJl
Y3RpdmUpIHsKQEAgLTkyMSw2ICs5ODEsOSBAQCB2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmFkZERp
cmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGRlZmF1bHRTcmMsICgiZGVmYXVsdC1zcmMiKSk7
CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNjcmlwdFNyYywgKCJzY3JpcHQtc3Jj
IikpOworI2lmIEVOQUJMRShDU1BfTkVYVCkKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
Zywgc2NyaXB0Tm9uY2UsICgic2NyaXB0LW5vbmNlIikpOworI2VuZGlmIC8vIEVOQUJMRShDU1Bf
TkVYVCkKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgb2JqZWN0U3JjLCAoIm9iamVj
dC1zcmMiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZyYW1lU3JjLCAoImZy
YW1lLXNyYyIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaW1nU3JjLCAoImlt
Zy1zcmMiKSk7CkBAIC05NTUsNiArMTAxOCwxMCBAQCB2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmFk
ZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAg
ICAgIGFwcGx5U2FuZGJveFBvbGljeShuYW1lLCB2YWx1ZSk7CiAgICAgZWxzZSBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UobmFtZSwgcmVwb3J0VVJJKSkKICAgICAgICAgcGFyc2VSZXBvcnRVUkkobmFt
ZSwgdmFsdWUpOworI2lmIEVOQUJMRShDU1BfTkVYVCkKKyAgICBlbHNlIGlmIChlcXVhbElnbm9y
aW5nQ2FzZShuYW1lLCBzY3JpcHROb25jZSkpCisgICAgICAgIHBhcnNlU2NyaXB0Tm9uY2UobmFt
ZSwgdmFsdWUpOworI2VuZGlmIC8vIEVOQUJMRShDU1BfTkVYVCkKICAgICBlbHNlCiAgICAgICAg
IGxvZ1VucmVjb2duaXplZERpcmVjdGl2ZShuYW1lKTsKIH0KQEAgLTEwMTYsNiArMTA4MywxNiBA
QCBib29sIGlzQWxsb3dlZEJ5QWxsV2l0aENvbnRleHQoY29uc3QgQ1NQRGlyZWN0aXZlTGlzdFZl
Y3RvciYgcG9saWNpZXMsIGNvbnN0IFN0cgogICAgIHJldHVybiB0cnVlOwogfQogCit0ZW1wbGF0
ZTxib29sIChDU1BEaXJlY3RpdmVMaXN0OjoqYWxsb3dlZCkoY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiwgY29uc3QgS1VSTCYpIGNvbnN0Pgor
Ym9vbCBpc0FsbG93ZWRCeUFsbFdpdGhOb25jZShjb25zdCBDU1BEaXJlY3RpdmVMaXN0VmVjdG9y
JiBwb2xpY2llcywgY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJM
LCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBjb25zdCBLVVJMJiB1cmwp
Cit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb2xpY2llcy5zaXplKCk7ICsraSkgewor
ICAgICAgICBpZiAoIShwb2xpY2llc1tpXS5nZXQoKS0+KmFsbG93ZWQpKG5vbmNlLCBjb250ZXh0
VVJMLCBjb250ZXh0TGluZSwgdXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHRlbXBsYXRlPGJvb2wgKENTUERpcmVjdGl2ZUxpc3Q6
OiphbGxvd0Zyb21VUkwpKGNvbnN0IEtVUkwmKSBjb25zdD4KIGJvb2wgaXNBbGxvd2VkQnlBbGxX
aXRoVVJMKGNvbnN0IENTUERpcmVjdGl2ZUxpc3RWZWN0b3ImIHBvbGljaWVzLCBjb25zdCBLVVJM
JiB1cmwpCiB7CkBAIC0xMDU2LDYgKzExMzMsMTEgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OmFsbG93RXZhbChQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKSBjb24K
ICAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGxXaXRoQ2FsbFN0YWNrPCZDU1BEaXJlY3RpdmVMaXN0
OjphbGxvd0V2YWw+KG1fcG9saWNpZXMsIGNhbGxTdGFjayk7CiB9CiAKK2Jvb2wgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjphbGxvd1NjcmlwdE5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0
IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGlu
ZSwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAoreworICAgIHJldHVybiBpc0FsbG93ZWRCeUFsbFdp
dGhOb25jZTwmQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZT4obV9wb2xpY2llcywg
bm9uY2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lLCB1cmwpOworfQorCiBib29sIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6YWxsb3dTY3JpcHRGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29u
c3QKIHsKICAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGxXaXRoVVJMPCZDU1BEaXJlY3RpdmVMaXN0
OjphbGxvd1NjcmlwdEZyb21Tb3VyY2U+KG1fcG9saWNpZXMsIHVybCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAppbmRleCA3YWM2MGQ5ZDdmZmI1NzgyY2Jk
MThlNzY2MmQ2OWU5OWVjM2I4MmQ0Li5jYjZiZWFkNTE0OTU4YWQzMDFjNDkzZjYwMGY0ZTZhNDYw
ZDc4MTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBv
bGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgQ29udGVudFNlY3VyaXR5UG9saWN5X2gKICNkZWZp
bmUgQ29udGVudFNlY3VyaXR5UG9saWN5X2gKIAorI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDAsNyArNDEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBDU1BEaXJlY3RpdmVMaXN0OwogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKLWNsYXNzIEtVUkw7CiAKIHR5cGVkZWYgVmVjdG9yPE93blB0
cjxDU1BEaXJlY3RpdmVMaXN0PiA+IENTUERpcmVjdGl2ZUxpc3RWZWN0b3I7CiAKQEAgLTcxLDYg
KzcxLDcgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dJbmxpbmVTY3JpcHQoY29uc3QgU3RyaW5n
JiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25z
dDsKICAgICBib29sIGFsbG93SW5saW5lU3R5bGUoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBj
b25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKICAgICBib29sIGFs
bG93RXZhbChQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pIGNvbnN0OworICAgIGJvb2wgYWxs
b3dTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRV
UkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIGNvbnN0IEtVUkwmID0g
S1VSTCgpKSBjb25zdDsKIAogICAgIGJvb2wgYWxsb3dTY3JpcHRGcm9tU291cmNlKGNvbnN0IEtV
UkwmKSBjb25zdDsKICAgICBib29sIGFsbG93T2JqZWN0RnJvbVNvdXJjZShjb25zdCBLVVJMJikg
Y29uc3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMTUwYjY2N2UwODQyMTJkZDNhNzY3MjIyZThhOWU3YWM1NDY1MDk4NC4u
YjkwZThlOWNmMThjNmVmY2MyOTM5ZTg4Yjc1YWEyMjhiZDI2MGQzOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI1IEBACisyMDEyLTA3LTA0ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgSW1wbGVtZW50IHRoZSBzY3JpcHQtbm9uY2UgQ29udGVudCBTZWN1cml0eSBQb2xpY3kg
ZGlyZWN0aXZlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODk1NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRu
b25jZS1hbGxvd2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFsbG93ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3Njcmlw
dG5vbmNlLWJhZG5vbmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1ibG9ja2VkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJsb2NrZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNl
LWVtcHR5bm9uY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtZW1wdHlub25jZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2Vj
aG8tc2NyaXB0LXNyYy5wbDoKKyAgICAgICAgICAgIEFkZGluZyBub25jeSBnb29kbmVzcyB0byB0
aGUgZWNobyBzY3JpcHQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvcmVzb3VyY2VzL211bHRpcGxlLWlmcmFtZS10ZXN0LmpzOgorICAgICAgICAo
dGVzdCk6CisKIDIwMTItMDctMDIgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNv
bT4KIAogICAgICAgICBbR3RrXSBNYW55IHRlc3RzIHJldmVhbGVkIGFzIHBhc3NpbmcgYWZ0ZXIg
bW92aW5nIGZyb20gU2tpcHBlZCB0byB0ZXN0X2V4cGVjdGF0aW9ucy50eHQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEu
MS9zY3JpcHRub25jZS1hbGxvd2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1hbGxvd2Vk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODVhNTQwYzMwZWQzMTg1ZWFhYjNmNGUxNjkyM2M3
NzE5NjY2MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFsbG93ZWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMgdGVzdHMgdGhl
IGVmZmVjdCBvZiBhIHZhbGlkIHNjcmlwdC1ub25jZSB2YWx1ZS4gSXQgcGFzc2VzIGlmIG5vIGNv
bnNvbGUgd2FybmluZyBpcyB2aXNpYmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhlY3V0ZWQuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYWxsb3dlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFsbG93
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZjNmYzBhMjViMDliODAxMTM4NGZlMzZiYWM1YmEzYjVkMDEw
MzViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFsbG93ZWQuaHRtbApAQCAtMCww
ICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1ub25jZSBub25j
eW5vbmNlOyI+CisgICAgICAgIDxzY3JpcHQgbm9uY2U9Im5vbmN5bm9uY2UiPgorICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBub25jZT0ibm9uY3lub25jZSI+CisgICAgICAgICAgICBhbGVydCgnUEFTUyAoMS8xKScpOwor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPgor
ICAgICAgICAgICAgVGhpcyB0ZXN0cyB0aGUgZWZmZWN0IG9mIGEgdmFsaWQgc2NyaXB0LW5vbmNl
IHZhbHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAgICAgIG5vIGNvbnNvbGUgd2FybmluZyBpcyB2
aXNpYmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhlY3V0ZWQuCisgICAgICAgIDwvcD4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYmFkbm9uY2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
Yjg1NjRlYzNmMmM3MjA4NDg0NGY4NzM3NDk2NTU0YjIxYzZjZjg1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
MS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NP
TlNPTEUgTUVTU0FHRTogSWdub3JpbmcgaW52YWxpZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBz
Y3JpcHQgbm9uY2U6ICd0aGlzIGlzIGEgYmFkIG5vbmNlJy4KKworQUxFUlQ6IFBBU1MgKDEvMSkK
K1RoaXMgdGVzdHMgdGhlIGVmZmVjdCBvZiBhbiBpbnZhbGlkIHNjcmlwdC1ub25jZSB2YWx1ZS4g
SXQgcGFzc2VzIGlmIGEgY29uc29sZSB3YXJuaW5nIGlzIHZpc2libGUsIGFuZCB0aGUgYWxlcnQo
KSBpcyBleGVjdXRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1iYWRub25jZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4x
L3NjcmlwdG5vbmNlLWJhZG5vbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU5ZGZkNjJjZWQwZjM5NDEw
ZTQzMDlhOGI4YTBlYmRhYzRlNGY1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1i
YWRub25jZS5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVu
dD0ic2NyaXB0LW5vbmNlIHRoaXMgaXMgYSBiYWQgbm9uY2U7Ij4KKyAgICAgICAgPHNjcmlwdD4K
KyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBhbGVydCgnUEFTUyAoMS8xKScpOworICAgICAgICA8
L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPgorICAgICAgICAg
ICAgVGhpcyB0ZXN0cyB0aGUgZWZmZWN0IG9mIGFuIGludmFsaWQgc2NyaXB0LW5vbmNlIHZhbHVl
LiBJdCBwYXNzZXMgaWYKKyAgICAgICAgICAgIGEgY29uc29sZSB3YXJuaW5nIGlzIHZpc2libGUs
IGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRlZC4KKyAgICAgICAgPC9wPgorICAgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1ibG9ja2VkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEu
MS9zY3JpcHRub25jZS1ibG9ja2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45M2NiMTU2NWYz
MzE1ZTYyMGIwNzExN2Q4MDZkOTYxNTRhOGZiZTJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3Njcmlw
dG5vbmNlLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorQUxFUlQ6IFBBU1Mg
KDEvMikKK0FMRVJUOiBQQVNTICgyLzIpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IFJlZnVz
ZWQgdG8gZXhlY3V0ZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENv
bnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1ub25jZSBub25jeW5vbmNl
Ii4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OiBSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0
IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGlj
eSBkaXJlY3RpdmU6ICJzY3JpcHQtbm9uY2Ugbm9uY3lub25jZSIuCisKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxOTogUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVz
IHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0
LW5vbmNlIG5vbmN5bm9uY2UiLgorCitUaGlzIHRlc3RzIHRoZSBlZmZlY3Qgb2YgYSB2YWxpZCBz
Y3JpcHQtbm9uY2UgdmFsdWUuIEl0IHBhc3NlcyBpZiB0aHJlZSBjb25zb2xlIHdhcm5pbmdzIGFy
ZSB2aXNpYmxlLCBhbmQgdGhlIHR3byBQQVNTIGFsZXJ0cyBhcmUgZXhlY3V0ZWQuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS8xLjEvc2NyaXB0bm9uY2UtYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJsb2NrZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZTE3MDZjM2JkY2RiOTJlNjg5ZmZmZDlkZTI4ZDE5MmFlNTRiMjQ4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDMw
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBo
dHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1ub25jZSBub25jeW5vbmNl
OyI+CisgICAgICAgIDxzY3JpcHQgbm9uY2U9Im5vbmN5bm9uY2UiPgorICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBhbGVydCgnUEFTUyAoMS8yKScpOworICAgICAgICA8
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBub25jZT0iICAgbm9uY3lub25jZSAgICAiPgorICAg
ICAgICBhbGVydCgnUEFTUyAoMi8yKScpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBub25jZT0ibm9uY3lub25jZSBub25jeW5vbmNlIj4KKyAgICAgICAgICAgIGFsZXJ0KCdG
QUlMICgxLzMpJyk7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAg
ICAgICAgYWxlcnQoJ0ZBSUwgKDIvMyknKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgbm9uY2U9Im5vbmN5bm9uY2Vubz8iPgorICAgICAgICAgICAgYWxlcnQoJ0ZBSUwgKDMv
MyknKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAg
ICA8cD4KKyAgICAgICAgICAgIFRoaXMgdGVzdHMgdGhlIGVmZmVjdCBvZiBhIHZhbGlkIHNjcmlw
dC1ub25jZSB2YWx1ZS4gSXQgcGFzc2VzIGlmCisgICAgICAgICAgICB0aHJlZSBjb25zb2xlIHdh
cm5pbmdzIGFyZSB2aXNpYmxlLCBhbmQgdGhlIHR3byBQQVNTIGFsZXJ0cyBhcmUKKyAgICAgICAg
ICAgIGV4ZWN1dGVkLgorICAgICAgICA8L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9uY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNl
LWVtcHR5bm9uY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzYzVlYmU5YTAyOWIxMTg3NjMx
NTE2MDAyYjAyNjY5ZThkYjllMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtZW1w
dHlub25jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IEln
bm9yaW5nIGludmFsaWQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgc2NyaXB0IG5vbmNlOiAnJy4K
KworQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMgdGVzdHMgdGhlIGVmZmVjdCBvZiBhbiBlbXB0eSBz
Y3JpcHQtbm9uY2UgdmFsdWUuIEl0IHBhc3NlcyBpZiBhIGNvbnNvbGUgd2FybmluZyBpcyB2aXNp
YmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhlY3V0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9u
Y2UtZW1wdHlub25jZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9uY2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42ZDEwYzQ4ZTc1MTU3ODJlMGEwNmM3MGQxZTVkMDg3N2NiZGM5YjBjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9uY2UuaHRtbApAQCAtMCwwICsxLDE5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVx
dWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1ub25jZTsiPgorICAgICAgICA8c2Ny
aXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICA8L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGFsZXJ0KCdQQVNTICgxLzEpJyk7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHA+CisgICAg
ICAgICAgICBUaGlzIHRlc3RzIHRoZSBlZmZlY3Qgb2YgYW4gZW1wdHkgc2NyaXB0LW5vbmNlIHZh
bHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAgICAgIGEgY29uc29sZSB3YXJuaW5nIGlzIHZpc2li
bGUsIGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRlZC4KKyAgICAgICAgPC9wPgorICAgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1zY3JpcHRzcmMtYmxvY2tlZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkwMzQ3ZWM0NDEwNTZjOWU0ZTQ4YmY1Y2ZjOWJiY2E4ZDY3MzlmODMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBSZWZ1c2VkIHRv
IGxvYWQgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcmVzb3VyY2VzL3NjcmlwdC5qcycgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5n
IENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1ub25jZSBub25jZSIu
CisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBSZWZ1c2VkIHRvIGxvYWQgJ2h0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3Njcmlw
dC5qcycgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkg
UG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1ub25jZSBub3Rub25jZSIuCisKK05vbmUgb2YgdGhl
c2Ugc2NyaXB0cyBzaG91bGQgZXhlY3V0ZSBldmVuIHRob3VnaCB0aGVyZSBhcmUgcGFyc2UgZXJy
b3JzIGluIHRoZSBwb2xpY3kuCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRo
IC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCitQQVNTCisKKy0tLS0tLS0tCitGcmFtZTog
JzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+JworLS0tLS0tLS0KK1BBU1MKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTItLT4tLT4nCistLS0tLS0t
LQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMy0t
Pi0tPicKKy0tLS0tLS0tCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3Jj
LWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1zY3JpcHRzcmMtYmxvY2tlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJjZjY5ZWY3ZDQ5Y2IwNzg3YzA1NjBmZGVjMzFkODk4ZDE4NDNjYjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQuaHRtbApAQCAtMCwwICsx
LDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0nLi4v
cmVzb3VyY2VzL211bHRpcGxlLWlmcmFtZS10ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2
YXIgdGVzdHMgPSBbCisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyAxMjcuMC4wLjE6ODAwMCcsICdy
ZXNvdXJjZXMvc2NyaXB0LmpzJywgJ25vbmNlJ10sCisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyAx
MjcuMC4wLjE6ODAwMDsgc2NyaXB0LW5vbmNlIG5vbmNlJywgJ3Jlc291cmNlcy9zY3JpcHQuanMn
LCAnbm9uY2UnXSwKKyAgICBbJ25vJywgJ3NjcmlwdC1zcmMgMTI3LjAuMC4xOjgwMDA7IHNjcmlw
dC1ub25jZSBub25jZScsICdyZXNvdXJjZXMvc2NyaXB0LmpzJywgJ25vdG5vbmNlJ10sCisgICAg
WydubycsICdzY3JpcHQtc3JjIDEyNy4wLjAuMTo4MDAwOyBzY3JpcHQtbm9uY2Ugbm90bm9uY2Un
LCAncmVzb3VyY2VzL3NjcmlwdC5qcycsICdub25jZSddLAorXTsKKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorICA8cD4KKyAgICBOb25lIG9mIHRoZXNlIHNjcmlw
dHMgc2hvdWxkIGV4ZWN1dGUgZXZlbiB0aG91Z2ggdGhlcmUgYXJlIHBhcnNlIGVycm9ycyBpbiB0
aGUgcG9saWN5LgorICA8L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBs
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
cmVzb3VyY2VzL2VjaG8tc2NyaXB0LXNyYy5wbAppbmRleCBmMzRlZGIwNTljY2I0Njc3YzkwMzRj
ZTdhOGNkODdjYzg2ZDY4N2M4Li5lNjQ2N2U0ODA4ODU4ZTU1ZDI0YzQzMzYzZTc3ZDliYzA0MjAx
YTNhIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9l
Y2hvLXNjcmlwdC1zcmMucGwKQEAgLTEwLDEyICsxMCwxOCBAQCBwcmludCAiWC1XZWJLaXQtQ1NQ
OiAiLiRjZ2ktPnBhcmFtKCdjc3AnKS4iXG5cbiI7CiBteSAoJHRleHQsICRyZXBsYWNlbWVudCkg
PSAoIkZBSUwiLCAiUEFTUyIpOwogKCR0ZXh0LCAkcmVwbGFjZW1lbnQpID0gKCRyZXBsYWNlbWVu
dCwgJHRleHQpIGlmICRjZ2ktPnBhcmFtKCdzaG91bGRfcnVuJykgZXEgJ25vJzsKIAorbXkgJG5v
bmNlID0gIiI7CitpZiAoJGNnaS0+cGFyYW0oJ25vbmNlJykgbmUgJycpIHsKKyAgJG5vbmNlID0g
Im5vbmNlPSciLiRjZ2ktPnBhcmFtKCdub25jZScpLiInIjsKK30KKworCiBwcmludCAiPCFET0NU
WVBFIGh0bWw+XG4iOwogcHJpbnQgIjxodG1sPlxuIjsKIHByaW50ICI8Ym9keT5cbiI7CiBwcmlu
dCAiPGRpdiBpZD1cInJlc3VsdFwiIHRleHQ9XCIkcmVwbGFjZW1lbnRcIj5cbiI7CiBwcmludCAi
JHRleHRcbiI7CiBwcmludCAiPC9kaXY+XG4iOwotcHJpbnQgIjxzY3JpcHQgc3JjPVwiIi4kY2dp
LT5wYXJhbSgncScpLiJcIj48L3NjcmlwdD5cbiI7CitwcmludCAiPHNjcmlwdCAkbm9uY2Ugc3Jj
PVwiIi4kY2dpLT5wYXJhbSgncScpLiJcIj48L3NjcmlwdD5cbiI7CiBwcmludCAiPC9ib2R5Plxu
IjsKIHByaW50ICI8L2h0bWw+XG4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL211bHRpcGxlLWlmcmFt
ZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvcmVzb3VyY2VzL211bHRpcGxlLWlmcmFtZS10ZXN0LmpzCmluZGV4IDdmOWExNTEz
NTk2ZGQzYTQzZmI1Y2QyODUxNmU1MWJkYzNmNWUxY2EuLjdjZDRjZDBiYjgzYzE4YTY0MzgzMzg3
NTA0YmZhY2U4Y2Y2MzEwYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9tdWx0aXBsZS1pZnJhbWUtdGVz
dC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZXNvdXJjZXMvbXVsdGlwbGUtaWZyYW1lLXRlc3QuanMKQEAgLTE1LDYgKzE1LDkg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICAgInNob3VsZF9ydW49IiArIGVz
Y2FwZShjdXJyZW50WzBdKSArCiAgICAgICAgICAgICAgICAgICImY3NwPSIgKyBlc2NhcGUoY3Vy
cmVudFsxXSkgKwogICAgICAgICAgICAgICAgICAiJnE9IiArIGJhc2VVUkwgKyBlc2NhcGUoY3Vy
cmVudFsyXSk7CisgICAgaWYgKGN1cnJlbnRbM10pCisgICAgICBpZnJhbWUuc3JjICs9ICImbm9u
Y2U9IiArIGVzY2FwZShjdXJyZW50WzNdKTsKKwogICAgIGlmcmFtZS5vbmxvYWQgPSB0ZXN0Owog
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150869</attachid>
            <date>2012-07-04 20:59:02 -0700</date>
            <delta_ts>2012-07-04 21:37:53 -0700</delta_ts>
            <desc>Tiny fixes.</desc>
            <filename>bug-89577-20120705055900.patch</filename>
            <type>text/plain</type>
            <size>29748</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdlZjdjMDdkOTg3MDRm
MTZiYmM0OGI2M2YxZDhjNzllNmIyNjA3ZS4uNDIwMTNmYzdhYWZlZmMzNmY1MWYzOTc0YWZkNmEz
YWRjMDQyM2U4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTA3LTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBzY3Jp
cHQtbm9uY2UgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk1NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMg
dGhlIChleHBlcmltZW50YWwpIHNjcmlwdC1ub25jZSBDb250ZW50IFNlY3VyaXR5CisgICAgICAg
IFBvbGljeSBkaXJlY3RpdmUgZnJvbSB0aGUgMS4xIHNwZWMsIHdoaWNoIGFsbG93cyBmb3Igc2Vs
ZWN0aXZlCisgICAgICAgIGV4ZWN1dGlvbiBvZiBzY3JpcHQgYnkgc3BlY2lmeWluZyBhICJub25j
ZSIgYXR0cmlidXRlIGZvciB0aGUKKyAgICAgICAgc2NyaXB0IHRhZy4gU2NyaXB0IGlzIG9ubHkg
bG9hZGVkIGFuZCBleGVjdXRlZCBpZiBpdCBib3RoIG1hdGNoZXMgdGhlCisgICAgICAgIG5vbmNl
IGFuZCBtYXRjaGVzIHRoZSBzY3JpcHQtc3JjIHdoaXRlbGlzdCAoaWYgcHJlc2VudCkuCisKKyAg
ICAgICAgVGhlIGltcGxlbWVudGF0aW9uIGlzIGdhdGVkIG9uIHRoZSBFTkFCTEVfQ1NQX05FWFQg
ZmxhZywgd2hpY2ggaXMKKyAgICAgICAgY3VycmVudGx5IGRpc2FibGVkIGZvciBhbGwgcG9ydHMg
b3RoZXIgdGhhbiBDaHJvbWl1bS4KKworICAgICAgICBTcGVjOiBodHRwczovL2R2Y3MudzMub3Jn
L2hnL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5L3Jhdy1maWxlL3RpcC9jc3Atc3BlY2lmaWNhdGlv
bi5kZXYuaHRtbCNzY3JpcHQtbm9uY2UtLWV4cGVyaW1lbnRhbAorCisgICAgICAgIFRlc3RzOiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Ut
YWxsb3dlZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYmFkbm9uY2UuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5v
bmNlLWJsb2NrZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9uY2UuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3Nj
cmlwdG5vbmNlLXNjcmlwdHNyYy1ibG9ja2VkLmh0bWwKKworICAgICAgICAqIGRvbS9TY3JpcHRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3Jp
cHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6ZXhlY3V0ZVNjcmlwdCk6Cisg
ICAgICAgICAgICBQYXNzaW5nIHRoZSBub25jZSBhdHRyaWJ1dGUgdGhyb3VnaCB0byBjaGVjayBh
Z2FpbnN0IENTUC4KKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjoKKyAgICAg
ICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbDoKKyAgICAgICAgICAgIEFkZGluZyB0aGUg
YG5vbmNlYCBhdHRyaWJ1dGUgdG8gdGhlIHNjcmlwdCB0YWcuCisgICAgICAgICogcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoQ1NQRGlyZWN0aXZlTGlzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0Ojpsb2dJbnZhbGlkTm9uY2UpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpjaGVja05v
bmNlQW5kUmVwb3J0VmlvbGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxp
c3Q6OmFsbG93SmF2YVNjcmlwdFVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZl
TGlzdDo6YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKToKKyAgICAgICAgICAgIElmIGEgbm9uY2Ug
aXMgc2V0LCBkZW55IEphdmFTY3JpcHQgVVJMcyBhbmQgaW5saW5lIGV2ZW50IGhhbmRsZXJzLgor
ICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZVNjcmlwdE5vbmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmFkZERpcmVjdGl2ZSk6CisgICAgICAg
IChXZWJDb3JlOjppc0FsbG93ZWRCeUFsbFdpdGhOb25jZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U2NyaXB0Tm9uY2UpOgorICAgICAgICAqIHBhZ2Uv
Q29udGVudFNlY3VyaXR5UG9saWN5Lmg6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wNy0w
MiAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CiAKICAgICAgICAgTWljcm9kYXRhOiBG
aXggYnVpbGQgZmFpbHVyZSBhZnRlciByMTIxNTgwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCmluZGV4IDc0NmU2YzM3YjI0MzA2ZTg2NzYwZTRkNGEyZDBiYTY5YjljOWQ0ODcuLjlj
MTY1NGUxZmMxODlmODIyMTY4MzYzM2YyM2I4NTZjNmU4NTZlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RWxlbWVudC5jcHAKQEAgLTI1MCw2ICsyNTAsOCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6
OnJlcXVlc3RTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIW1fZWxlbWVudC0+aW5Eb2N1bWVudCgpIHx8IG1fZWxlbWVudC0+ZG9j
dW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxv
d1NjcmlwdE5vbmNlKG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Om5vbmNl
QXR0ciksIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXJsKCksIG1fc3RhcnRMaW5lTnVtYmVyLCBt
X2VsZW1lbnQtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZVVybCkpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBBU1NFUlQoIW1fY2FjaGVkU2NyaXB0KTsKICAgICBpZiAoIXN0
cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzb3VyY2VVcmwpLmlzRW1wdHkoKSkgewpA
QCAtMjgxLDYgKzI4Myw5IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZVNjcmlwdChjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQogICAgIGlmIChzb3VyY2VDb2RlLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCFtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd1NjcmlwdE5vbmNlKG1fZWxlbWVudC0+ZmFz
dEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Om5vbmNlQXR0ciksIG1fZWxlbWVudC0+ZG9jdW1lbnQo
KS0+dXJsKCksIG1fc3RhcnRMaW5lTnVtYmVyKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYg
KCFtX2lzRXh0ZXJuYWxTY3JpcHQgJiYgIW1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29udGVudFNl
Y3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+
dXJsKCksIG1fc3RhcnRMaW5lTnVtYmVyKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IGE2ZTc1YmM3NmI4M2U1NzllZTBm
ZDk5MTVlNGI5YTM0YjFjMzhiYmUuLjQ1OTA3OGY2NGMwOGJlMmJlNDMxYjAwODg4ZGNmMzliZGIz
MGI4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0x
NTgsNiArMTU4LDcgQEAgbXVsdGlwbGUKIG11dGVkCiBuYW1lCiBub2hyZWYKK25vbmNlCiBub3Jl
c2l6ZQogbm9zaGFkZQogbm92YWxpZGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2NyaXB0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmlkbAppbmRleCBhNDFlMTA0M2U2ZGM5ZjcxZDg4ZWNlZjQxM2RkNjJkZDJiMzlhNGJi
Li5iYTE2ZTg1MWMxODYyYWVjNDFmZmEzNzliMmQwNDJlMjYzNmRmNDIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbApAQCAtMjksNSArMjksNiBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgc3JjOwog
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0eXBlOwogICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjcm9zc09yaWdpbjsKKyAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0LCBDb25kaXRpb25hbD1DU1BfTkVYVF0gRE9NU3RyaW5nIG5vbmNlOwogICAgIH07
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5k
ZXggZTg3OGI5ZWVlY2JhOGNjYzFlNmM5ZTQ5Zjc1MTU4ODhjMjE4MTk5OC4uMGM0ZDc5YjE5NDBh
ZWJkYWRiNmU5NDI4YjVlMzU5NWVhM2M1ZWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yVmFsdWVzLmgiCisjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlBpbmdMb2Fk
ZXIuaCIKICNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxT
dGFjay5oIgpAQCAtNTUwLDYgKzU1MSw3IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93SW5saW5l
U2NyaXB0KGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVy
JiBjb250ZXh0TGluZSkgY29uc3Q7CiAgICAgYm9vbCBhbGxvd0lubGluZVN0eWxlKGNvbnN0IFN0
cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSkg
Y29uc3Q7CiAgICAgYm9vbCBhbGxvd0V2YWwoUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KSBj
b25zdDsKKyAgICBib29sIGFsbG93U2NyaXB0Tm9uY2UoY29uc3QgU3RyaW5nJiBub25jZSwgY29u
c3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRM
aW5lLCBjb25zdCBLVVJMJikgY29uc3Q7CiAKICAgICBib29sIGFsbG93U2NyaXB0RnJvbVNvdXJj
ZShjb25zdCBLVVJMJikgY29uc3Q7CiAgICAgYm9vbCBhbGxvd09iamVjdEZyb21Tb3VyY2UoY29u
c3QgS1VSTCYpIGNvbnN0OwpAQCAtNTY3LDYgKzU2OSw3IEBAIHByaXZhdGU6CiAKICAgICBib29s
IHBhcnNlRGlyZWN0aXZlKGNvbnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVuZCwgU3Ry
aW5nJiBuYW1lLCBTdHJpbmcmIHZhbHVlKTsKICAgICB2b2lkIHBhcnNlUmVwb3J0VVJJKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CisgICAgdm9pZCBwYXJzZVNjcmlw
dE5vbmNlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgdm9p
ZCBhZGREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsK
ICAgICB2b2lkIGFwcGx5U2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgc2FuZGJveFBvbGljeSk7CiAKQEAgLTU3Niw5ICs1NzksMTEgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlcG9ydFZpb2xhdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGl2ZVRleHQsIGNvbnN0
IFN0cmluZyYgY29uc29sZU1lc3NhZ2UsIGNvbnN0IEtVUkwmIGJsb2NrZWRVUkwgPSBLVVJMKCks
IGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCA9IFN0cmluZygpLCBjb25zdCBXVEY6Ok9yZGluYWxO
dW1iZXImIGNvbnRleHRMaW5lID0gV1RGOjpPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpLCBQ
YXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gPSAwKSBjb25zdDsKICAgICB2b2lkIGxvZ1VucmVj
b2duaXplZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogICAgIHZvaWQgbG9n
RHVwbGljYXRlRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CisgICAgdm9pZCBs
b2dJbnZhbGlkTm9uY2UoY29uc3QgU3RyaW5nJiBub25jZSkgY29uc3Q7CiAgICAgYm9vbCBjaGVj
a0V2YWwoQ1NQRGlyZWN0aXZlKikgY29uc3Q7CiAKICAgICBib29sIGNoZWNrSW5saW5lQW5kUmVw
b3J0VmlvbGF0aW9uKENTUERpcmVjdGl2ZSosIGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250
ZXh0TGluZSkgY29uc3Q7CisgICAgYm9vbCBjaGVja05vbmNlQW5kUmVwb3J0VmlvbGF0aW9uKGNv
bnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSkg
Y29uc3Q7CiAgICAgYm9vbCBjaGVja0V2YWxBbmRSZXBvcnRWaW9sYXRpb24oQ1NQRGlyZWN0aXZl
KiwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJM
ID0gU3RyaW5nKCksIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUgPSBXVEY6
Ok9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCksIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiA9IDApIGNvbnN0OwogICAgIGJvb2wgY2hlY2tTb3VyY2VBbmRSZXBvcnRWaW9sYXRpb24oQ1NQ
RGlyZWN0aXZlKiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3Q7CiAKQEAg
LTYwMSw2ICs2MDYsNyBAQCBwcml2YXRlOgogICAgIE93blB0cjxDU1BEaXJlY3RpdmU+IG1fY29u
bmVjdFNyYzsKIAogICAgIFZlY3RvcjxLVVJMPiBtX3JlcG9ydFVSSXM7CisgICAgU3RyaW5nIG1f
c2NyaXB0Tm9uY2U7CiB9OwogCiBDU1BEaXJlY3RpdmVMaXN0OjpDU1BEaXJlY3RpdmVMaXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCkBAIC02OTAsNiAr
Njk2LDEyIEBAIHZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6bG9nRHVwbGljYXRlRGlyZWN0aXZlKGNv
bnN0IFN0cmluZyYgbmFtZSkgY29uc3QKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFk
ZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVz
c2FnZUxldmVsLCBtZXNzYWdlKTsKIH0KIAordm9pZCBDU1BEaXJlY3RpdmVMaXN0Ojpsb2dJbnZh
bGlkTm9uY2UoY29uc3QgU3RyaW5nJiBub25jZSkgY29uc3QKK3sKKyAgICBTdHJpbmcgbWVzc2Fn
ZSA9IG1ha2VTdHJpbmcoIklnbm9yaW5nIGludmFsaWQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kg
c2NyaXB0IG5vbmNlOiAnIiwgbm9uY2UsICInLlxuIik7CisgICAgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7Cit9CisKIGJvb2wgQ1NQRGlyZWN0aXZlTGlz
dDo6Y2hlY2tFdmFsKENTUERpcmVjdGl2ZSogZGlyZWN0aXZlKSBjb25zdAogewogICAgIHJldHVy
biAhZGlyZWN0aXZlIHx8IGRpcmVjdGl2ZS0+YWxsb3dFdmFsKCk7CkBAIC03MDgsNiArNzIwLDE0
IEBAIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24o
Q1NQRGlyZWN0aXZlKiBkaXJlY3RpdmUsIGNvCiAgICAgcmV0dXJuIGRlbnlJZkVuZm9yY2luZ1Bv
bGljeSgpOwogfQogCitib29sIENTUERpcmVjdGl2ZUxpc3Q6OmNoZWNrTm9uY2VBbmRSZXBvcnRW
aW9sYXRpb24oY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNv
bnRleHRMaW5lKSBjb25zdAoreworICAgIGlmIChtX3NjcmlwdE5vbmNlLmlzRW1wdHkoKSB8fCAo
IW5vbmNlLmlzRW1wdHkoKSAmJiBub25jZS5zdHJpcFdoaXRlU3BhY2UoKSA9PSBtX3NjcmlwdE5v
bmNlKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmVwb3J0VmlvbGF0aW9uKG1fc2NyaXB0
Tm9uY2UsIGNvbnNvbGVNZXNzYWdlICsgIlwic2NyaXB0LW5vbmNlICIgKyBtX3NjcmlwdE5vbmNl
ICsgIlwiLlxuIiwgS1VSTCgpLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSk7CisgICAgcmV0dXJu
IGRlbnlJZkVuZm9yY2luZ1BvbGljeSgpOworfQorCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmNo
ZWNrRXZhbEFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqIGRpcmVjdGl2ZSwgY29uc3Qg
U3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBX
VEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4gY2FsbFN0YWNrKSBjb25zdAogewogICAgIGlmIChjaGVja0V2YWwoZGlyZWN0aXZlKSkKQEAg
LTcyOCwxMyArNzQ4LDE1IEBAIGJvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tTb3VyY2VBbmRS
ZXBvcnRWaW9sYXRpb24oQ1NQRGlyZWN0aXZlKiBkaXJlY3RpdmUsIGNvCiBib29sIENTUERpcmVj
dGl2ZUxpc3Q6OmFsbG93SmF2YVNjcmlwdFVSTHMoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBj
b25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdAogewogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKCJSZWZ1c2VkIHRvIGV4ZWN1
dGUgSmF2YVNjcmlwdCBVUkwgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRl
bnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpOwotICAgIHJldHVybiBjaGVja0lubGlu
ZUFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkp
LCBjb25zb2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUpOworICAgIHJldHVybiAo
Y2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0
U3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKQorICAg
ICAgICAgICAgJiYgY2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihTdHJpbmcoKSwgY29uc29s
ZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKSk7CiB9CiAKIGJvb2wgQ1NQRGlyZWN0
aXZlTGlzdDo6YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKGNvbnN0IFN0cmluZyYgY29udGV4dFVS
TCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSkgY29uc3QKIHsKICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsICgiUmVmdXNlZCB0byBl
eGVjdXRlIGlubGluZSBldmVudCBoYW5kbGVyIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxv
d2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIpKTsKLSAgICByZXR1cm4g
Y2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0
U3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKTsKKyAg
ICByZXR1cm4gKGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2
ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0
TGluZSkKKyAgICAgICAgICAgICYmIGNoZWNrTm9uY2VBbmRSZXBvcnRWaW9sYXRpb24oU3RyaW5n
KCksIGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSkpOwogfQogCiBib29s
IENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lU2NyaXB0KGNvbnN0IFN0cmluZyYgY29udGV4
dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSkgY29uc3QKQEAgLTc1
NSw2ICs3NzcsMTQgQEAgYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWwoUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykgY29uc3QKICAgICByZXR1cm4gY2hlY2tFdmFs
QW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSks
IGNvbnNvbGVNZXNzYWdlLCBTdHJpbmcoKSwgV1RGOjpPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJz
dCgpLCBjYWxsU3RhY2spOwogfQogCitib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93U2NyaXB0
Tm9uY2UoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25z
dCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoIlJl
ZnVzZWQgdG8gZXhlY3V0ZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5n
IENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogIikpOworICAgIGlmICh1cmwuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gY2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihub25j
ZSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lKTsKKyAgICByZXR1cm4g
Y2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihub25jZSwgIlJlZnVzZWQgdG8gbG9hZCAnIiAr
IHVybC5zdHJpbmcoKSArICInIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250
ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICIsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5l
KTsKK30KKwogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd1NjcmlwdEZyb21Tb3VyY2UoY29u
c3QgS1VSTCYgdXJsKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB0
eXBlLCAoInNjcmlwdCIpKTsKQEAgLTg5OCw2ICs5MjgsMzYgQEAgdm9pZCBDU1BEaXJlY3RpdmVM
aXN0OjpwYXJzZVJlcG9ydFVSSShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFs
dWUpCiAgICAgfQogfQogCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnBhcnNlU2NyaXB0Tm9uY2Uo
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV9z
Y3JpcHROb25jZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgbG9nRHVwbGljYXRlRGlyZWN0aXZlKG5h
bWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIG5vbmNlOworICAgIGNv
bnN0IFVDaGFyKiBwb3NpdGlvbiA9IHZhbHVlLmNoYXJhY3RlcnMoKTsKKyAgICBjb25zdCBVQ2hh
ciogZW5kID0gcG9zaXRpb24gKyB2YWx1ZS5sZW5ndGgoKTsKKworICAgIHNraXBXaGlsZTxpc0FT
Q0lJU3BhY2U+KHBvc2l0aW9uLCBlbmQpOworICAgIGNvbnN0IFVDaGFyKiBub25jZUJlZ2luID0g
cG9zaXRpb247CisgICAgaWYgKHBvc2l0aW9uID09IGVuZCkgeworICAgICAgICBsb2dJbnZhbGlk
Tm9uY2UoU3RyaW5nKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNraXBXaGlsZTxp
c05vdEFTQ0lJU3BhY2U+KHBvc2l0aW9uLCBlbmQpOworICAgIGlmIChub25jZUJlZ2luIDwgcG9z
aXRpb24pCisgICAgICAgIG5vbmNlID0gU3RyaW5nKG5vbmNlQmVnaW4sIHBvc2l0aW9uIC0gbm9u
Y2VCZWdpbik7CisKKyAgICAvLyBUcmltIG9mZiB0cmFpbGluZyB3aGl0ZXNwYWNlOiBJZiB3ZSdy
ZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBsb2cKKyAgICAvLyBhbiBlcnJvci4KKyAg
ICBza2lwV2hpbGU8aXNBU0NJSVNwYWNlPihwb3NpdGlvbiwgZW5kKTsKKyAgICBpZiAocG9zaXRp
b24gPCBlbmQpCisgICAgICAgIGxvZ0ludmFsaWROb25jZSh2YWx1ZSk7CisgICAgZWxzZQorICAg
ICAgICBtX3NjcmlwdE5vbmNlID0gbm9uY2U7Cit9CisKIHZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6
c2V0Q1NQRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwg
T3duUHRyPENTUERpcmVjdGl2ZT4mIGRpcmVjdGl2ZSkKIHsKICAgICBpZiAoZGlyZWN0aXZlKSB7
CkBAIC05MjEsNiArOTgxLDkgQEAgdm9pZCBDU1BEaXJlY3RpdmVMaXN0OjphZGREaXJlY3RpdmUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBkZWZhdWx0U3JjLCAoImRlZmF1bHQtc3JjIikpOwogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzY3JpcHRTcmMsICgic2NyaXB0LXNyYyIpKTsKKyNp
ZiBFTkFCTEUoQ1NQX05FWFQpCisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNjcmlw
dE5vbmNlLCAoInNjcmlwdC1ub25jZSIpKTsKKyNlbmRpZgogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBvYmplY3RTcmMsICgib2JqZWN0LXNyYyIpKTsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgZnJhbWVTcmMsICgiZnJhbWUtc3JjIikpOwogICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBpbWdTcmMsICgiaW1nLXNyYyIpKTsKQEAgLTk1NSw2ICsxMDE4LDEw
IEBAIHZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6YWRkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICAgICAgYXBwbHlTYW5kYm94UG9saWN5KG5hbWUs
IHZhbHVlKTsKICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCByZXBvcnRVUkkp
KQogICAgICAgICBwYXJzZVJlcG9ydFVSSShuYW1lLCB2YWx1ZSk7CisjaWYgRU5BQkxFKENTUF9O
RVhUKQorICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIHNjcmlwdE5vbmNlKSkK
KyAgICAgICAgcGFyc2VTY3JpcHROb25jZShuYW1lLCB2YWx1ZSk7CisjZW5kaWYKICAgICBlbHNl
CiAgICAgICAgIGxvZ1VucmVjb2duaXplZERpcmVjdGl2ZShuYW1lKTsKIH0KQEAgLTEwMTYsNiAr
MTA4MywxNiBAQCBib29sIGlzQWxsb3dlZEJ5QWxsV2l0aENvbnRleHQoY29uc3QgQ1NQRGlyZWN0
aXZlTGlzdFZlY3RvciYgcG9saWNpZXMsIGNvbnN0IFN0cgogICAgIHJldHVybiB0cnVlOwogfQog
Cit0ZW1wbGF0ZTxib29sIChDU1BEaXJlY3RpdmVMaXN0OjoqYWxsb3dlZCkoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiwgY29uc3QgS1VSTCYp
IGNvbnN0PgorYm9vbCBpc0FsbG93ZWRCeUFsbFdpdGhOb25jZShjb25zdCBDU1BEaXJlY3RpdmVM
aXN0VmVjdG9yJiBwb2xpY2llcywgY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBj
b250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBjb25zdCBL
VVJMJiB1cmwpCit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb2xpY2llcy5zaXplKCk7
ICsraSkgeworICAgICAgICBpZiAoIShwb2xpY2llc1tpXS5nZXQoKS0+KmFsbG93ZWQpKG5vbmNl
LCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSwgdXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHRlbXBsYXRlPGJvb2wgKENTUERpcmVj
dGl2ZUxpc3Q6OiphbGxvd0Zyb21VUkwpKGNvbnN0IEtVUkwmKSBjb25zdD4KIGJvb2wgaXNBbGxv
d2VkQnlBbGxXaXRoVVJMKGNvbnN0IENTUERpcmVjdGl2ZUxpc3RWZWN0b3ImIHBvbGljaWVzLCBj
b25zdCBLVVJMJiB1cmwpCiB7CkBAIC0xMDU2LDYgKzExMzMsMTEgQEAgYm9vbCBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OmFsbG93RXZhbChQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0
YWNrKSBjb24KICAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGxXaXRoQ2FsbFN0YWNrPCZDU1BEaXJl
Y3RpdmVMaXN0OjphbGxvd0V2YWw+KG1fcG9saWNpZXMsIGNhbGxTdGFjayk7CiB9CiAKK2Jvb2wg
Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1NjcmlwdE5vbmNlKGNvbnN0IFN0cmluZyYgbm9u
Y2UsIGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBj
b250ZXh0TGluZSwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAoreworICAgIHJldHVybiBpc0FsbG93
ZWRCeUFsbFdpdGhOb25jZTwmQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZT4obV9w
b2xpY2llcywgbm9uY2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lLCB1cmwpOworfQorCiBib29s
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dTY3JpcHRGcm9tU291cmNlKGNvbnN0IEtVUkwm
IHVybCkgY29uc3QKIHsKICAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGxXaXRoVVJMPCZDU1BEaXJl
Y3RpdmVMaXN0OjphbGxvd1NjcmlwdEZyb21Tb3VyY2U+KG1fcG9saWNpZXMsIHVybCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAppbmRleCA3YWM2MGQ5ZDdm
ZmI1NzgyY2JkMThlNzY2MmQ2OWU5OWVjM2I4MmQ0Li5jYjZiZWFkNTE0OTU4YWQzMDFjNDkzZjYw
MGY0ZTZhNDYwZDc4MTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRT
ZWN1cml0eVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5
UG9saWN5LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgQ29udGVudFNlY3VyaXR5UG9saWN5
X2gKICNkZWZpbmUgQ29udGVudFNlY3VyaXR5UG9saWN5X2gKIAorI2luY2x1ZGUgIktVUkwuaCIK
ICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDAsNyArNDEsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBDU1BEaXJlY3RpdmVMaXN0OwogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLWNsYXNzIEtVUkw7CiAKIHR5cGVkZWYgVmVj
dG9yPE93blB0cjxDU1BEaXJlY3RpdmVMaXN0PiA+IENTUERpcmVjdGl2ZUxpc3RWZWN0b3I7CiAK
QEAgLTcxLDYgKzcxLDcgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dJbmxpbmVTY3JpcHQoY29u
c3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRM
aW5lKSBjb25zdDsKICAgICBib29sIGFsbG93SW5saW5lU3R5bGUoY29uc3QgU3RyaW5nJiBjb250
ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKICAg
ICBib29sIGFsbG93RXZhbChQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pIGNvbnN0OworICAg
IGJvb2wgYWxsb3dTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcm
IGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIGNvbnN0
IEtVUkwmID0gS1VSTCgpKSBjb25zdDsKIAogICAgIGJvb2wgYWxsb3dTY3JpcHRGcm9tU291cmNl
KGNvbnN0IEtVUkwmKSBjb25zdDsKICAgICBib29sIGFsbG93T2JqZWN0RnJvbVNvdXJjZShjb25z
dCBLVVJMJikgY29uc3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTUwYjY2N2UwODQyMTJkZDNhNzY3MjIyZThhOWU3YWM1
NDY1MDk4NC4uYjkwZThlOWNmMThjNmVmY2MyOTM5ZTg4Yjc1YWEyMjhiZDI2MGQzOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDEyLTA3LTA0ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBzY3JpcHQtbm9uY2UgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kgZGlyZWN0aXZlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODk1NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEu
MS9zY3JpcHRub25jZS1hbGxvd2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFs
bG93ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
MS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1ibG9ja2Vk
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJsb2NrZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3Nj
cmlwdG5vbmNlLWVtcHR5bm9uY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtZW1w
dHlub25jZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVz
b3VyY2VzL2VjaG8tc2NyaXB0LXNyYy5wbDoKKyAgICAgICAgICAgIEFkZGluZyBub25jeSBnb29k
bmVzcyB0byB0aGUgZWNobyBzY3JpcHQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL211bHRpcGxlLWlmcmFtZS10ZXN0LmpzOgor
ICAgICAgICAodGVzdCk6CisKIDIwMTItMDctMDIgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2Vr
QGdtYWlsLmNvbT4KIAogICAgICAgICBbR3RrXSBNYW55IHRlc3RzIHJldmVhbGVkIGFzIHBhc3Np
bmcgYWZ0ZXIgbW92aW5nIGZyb20gU2tpcHBlZCB0byB0ZXN0X2V4cGVjdGF0aW9ucy50eHQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5LzEuMS9zY3JpcHRub25jZS1hbGxvd2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25j
ZS1hbGxvd2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODVhNTQwYzMwZWQzMTg1ZWFhYjNm
NGUxNjkyM2M3NzE5NjY2MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFsbG93
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMg
dGVzdHMgdGhlIGVmZmVjdCBvZiBhIHZhbGlkIHNjcmlwdC1ub25jZSB2YWx1ZS4gSXQgcGFzc2Vz
IGlmIG5vIGNvbnNvbGUgd2FybmluZyBpcyB2aXNpYmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhl
Y3V0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYWxsb3dlZC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5v
bmNlLWFsbG93ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjNmYzBhMjViMDliODAxMTM4NGZlMzZiYWM1
YmEzYjVkMDEwMzViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFsbG93ZWQuaHRt
bApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1u
b25jZSBub25jeW5vbmNlOyI+CisgICAgICAgIDxzY3JpcHQgbm9uY2U9Im5vbmN5bm9uY2UiPgor
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBub25jZT0ibm9uY3lub25jZSI+CisgICAgICAgICAgICBhbGVydCgnUEFTUyAo
MS8xKScpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAg
ICAgIDxwPgorICAgICAgICAgICAgVGhpcyB0ZXN0cyB0aGUgZWZmZWN0IG9mIGEgdmFsaWQgc2Ny
aXB0LW5vbmNlIHZhbHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAgICAgIG5vIGNvbnNvbGUgd2Fy
bmluZyBpcyB2aXNpYmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhlY3V0ZWQuCisgICAgICAgIDwv
cD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYmFkbm9u
Y2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zYjg1NjRlYzNmMmM3MjA4NDg0NGY4NzM3NDk2NTU0YjIxYzZjZjg1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDQgQEAKK0NPTlNPTEUgTUVTU0FHRTogSWdub3JpbmcgaW52YWxpZCBDb250ZW50IFNlY3VyaXR5
IFBvbGljeSBzY3JpcHQgbm9uY2U6ICd0aGlzIGlzIGEgYmFkIG5vbmNlJy4KKworQUxFUlQ6IFBB
U1MgKDEvMSkKK1RoaXMgdGVzdHMgdGhlIGVmZmVjdCBvZiBhbiBpbnZhbGlkIHNjcmlwdC1ub25j
ZSB2YWx1ZS4gSXQgcGFzc2VzIGlmIGEgY29uc29sZSB3YXJuaW5nIGlzIHZpc2libGUsIGFuZCB0
aGUgYWxlcnQoKSBpcyBleGVjdXRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1iYWRub25j
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU5ZGZkNjJj
ZWQwZjM5NDEwZTQzMDlhOGI4YTBlYmRhYzRlNGY1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3Jp
cHRub25jZS1iYWRub25jZS5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNT
UCIgY29udGVudD0ic2NyaXB0LW5vbmNlIHRoaXMgaXMgYSBiYWQgbm9uY2U7Ij4KKyAgICAgICAg
PHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBhbGVydCgnUEFTUyAoMS8xKScpOwor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxwPgor
ICAgICAgICAgICAgVGhpcyB0ZXN0cyB0aGUgZWZmZWN0IG9mIGFuIGludmFsaWQgc2NyaXB0LW5v
bmNlIHZhbHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAgICAgIGEgY29uc29sZSB3YXJuaW5nIGlz
IHZpc2libGUsIGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRlZC4KKyAgICAgICAgPC9wPgorICAg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1ibG9ja2VkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5LzEuMS9zY3JpcHRub25jZS1ibG9ja2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
M2NiMTU2NWYzMzE1ZTYyMGIwNzExN2Q4MDZkOTYxNTRhOGZiZTJkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
MS4xL3NjcmlwdG5vbmNlLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorQUxF
UlQ6IFBBU1MgKDEvMikKK0FMRVJUOiBQQVNTICgyLzIpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTM6IFJlZnVzZWQgdG8gZXhlY3V0ZSBzY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9s
bG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1ub25jZSBu
b25jeW5vbmNlIi4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OiBSZWZ1c2VkIHRvIGV4ZWN1
dGUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3Vy
aXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtbm9uY2Ugbm9uY3lub25jZSIuCisKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAxOTogUmVmdXNlZCB0byBleGVjdXRlIHNjcmlwdCBiZWNhdXNlIGl0
IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZl
OiAic2NyaXB0LW5vbmNlIG5vbmN5bm9uY2UiLgorCitUaGlzIHRlc3RzIHRoZSBlZmZlY3Qgb2Yg
YSB2YWxpZCBzY3JpcHQtbm9uY2UgdmFsdWUuIEl0IHBhc3NlcyBpZiB0aHJlZSBjb25zb2xlIHdh
cm5pbmdzIGFyZSB2aXNpYmxlLCBhbmQgdGhlIHR3byBQQVNTIGFsZXJ0cyBhcmUgZXhlY3V0ZWQu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJs
b2NrZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTE3MDZjM2JkY2RiOTJlNjg5ZmZmZDlkZTI4ZDE5MmFl
NTRiMjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJsb2NrZWQuaHRtbApAQCAt
MCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1ub25jZSBu
b25jeW5vbmNlOyI+CisgICAgICAgIDxzY3JpcHQgbm9uY2U9Im5vbmN5bm9uY2UiPgorICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBhbGVydCgnUEFTUyAoMS8yKScpOwor
ICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBub25jZT0iICAgbm9uY3lub25jZSAg
ICAiPgorICAgICAgICBhbGVydCgnUEFTUyAoMi8yKScpOworICAgICAgICA8L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBub25jZT0ibm9uY3lub25jZSBub25jeW5vbmNlIj4KKyAgICAgICAgICAg
IGFsZXJ0KCdGQUlMICgxLzMpJyk7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
PgorICAgICAgICAgICAgYWxlcnQoJ0ZBSUwgKDIvMyknKTsKKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgbm9uY2U9Im5vbmN5bm9uY2Vubz8iPgorICAgICAgICAgICAgYWxlcnQo
J0ZBSUwgKDMvMyknKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5
PgorICAgICAgICA8cD4KKyAgICAgICAgICAgIFRoaXMgdGVzdHMgdGhlIGVmZmVjdCBvZiBhIHZh
bGlkIHNjcmlwdC1ub25jZSB2YWx1ZS4gSXQgcGFzc2VzIGlmCisgICAgICAgICAgICB0aHJlZSBj
b25zb2xlIHdhcm5pbmdzIGFyZSB2aXNpYmxlLCBhbmQgdGhlIHR3byBQQVNTIGFsZXJ0cyBhcmUK
KyAgICAgICAgICAgIGV4ZWN1dGVkLgorICAgICAgICA8L3A+CisgICAgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9uY2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3Nj
cmlwdG5vbmNlLWVtcHR5bm9uY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzYzVlYmU5YTAy
OWIxMTg3NjMxNTE2MDAyYjAyNjY5ZThkYjllMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0
bm9uY2UtZW1wdHlub25jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1F
U1NBR0U6IElnbm9yaW5nIGludmFsaWQgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgc2NyaXB0IG5v
bmNlOiAnJy4KKworQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMgdGVzdHMgdGhlIGVmZmVjdCBvZiBh
biBlbXB0eSBzY3JpcHQtbm9uY2UgdmFsdWUuIEl0IHBhc3NlcyBpZiBhIGNvbnNvbGUgd2Fybmlu
ZyBpcyB2aXNpYmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhlY3V0ZWQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEv
c2NyaXB0bm9uY2UtZW1wdHlub25jZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9uY2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZDEwYzQ4ZTc1MTU3ODJlMGEwNmM3MGQxZTVkMDg3N2NiZGM5YjBjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9uY2UuaHRtbApAQCAtMCwwICsx
LDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0
YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1ub25jZTsiPgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICA8
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGFsZXJ0KCdQQVNTICgxLzEp
Jyk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAg
PHA+CisgICAgICAgICAgICBUaGlzIHRlc3RzIHRoZSBlZmZlY3Qgb2YgYW4gZW1wdHkgc2NyaXB0
LW5vbmNlIHZhbHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAgICAgIGEgY29uc29sZSB3YXJuaW5n
IGlzIHZpc2libGUsIGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRlZC4KKyAgICAgICAgPC9wPgor
ICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1zY3JpcHRzcmMt
YmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwMzQ3ZWM0NDEwNTZjOWU0ZTQ4YmY1Y2ZjOWJiY2E4ZDY3
MzlmODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBS
ZWZ1c2VkIHRvIGxvYWQgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvcmVzb3VyY2VzL3NjcmlwdC5qcycgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUg
Zm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1ub25j
ZSBub25jZSIuCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBSZWZ1c2VkIHRvIGxvYWQgJ2h0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3Vy
Y2VzL3NjcmlwdC5qcycgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQg
U2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1ub25jZSBub3Rub25jZSIuCisKK05v
bmUgb2YgdGhlc2Ugc2NyaXB0cyBzaG91bGQgZXhlY3V0ZSBldmVuIHRob3VnaCB0aGVyZSBhcmUg
cGFyc2UgZXJyb3JzIGluIHRoZSBwb2xpY3kuCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCitQQVNTCisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+JworLS0tLS0tLS0KK1BB
U1MKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTItLT4tLT4n
CistLS0tLS0tLQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEt
LWZyYW1lMy0tPi0tPicKKy0tLS0tLS0tCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Ut
c2NyaXB0c3JjLWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1zY3JpcHRzcmMtYmxvY2tlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJjZjY5ZWY3ZDQ5Y2IwNzg3YzA1NjBmZGVjMzFkODk4ZDE4NDNjYjEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQuaHRtbApA
QCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0nLi4vcmVzb3VyY2VzL211bHRpcGxlLWlmcmFtZS10ZXN0LmpzJz48L3NjcmlwdD4KKzxz
Y3JpcHQ+Cit2YXIgdGVzdHMgPSBbCisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyAxMjcuMC4wLjE6
ODAwMCcsICdyZXNvdXJjZXMvc2NyaXB0LmpzJywgJ25vbmNlJ10sCisgICAgWyd5ZXMnLCAnc2Ny
aXB0LXNyYyAxMjcuMC4wLjE6ODAwMDsgc2NyaXB0LW5vbmNlIG5vbmNlJywgJ3Jlc291cmNlcy9z
Y3JpcHQuanMnLCAnbm9uY2UnXSwKKyAgICBbJ25vJywgJ3NjcmlwdC1zcmMgMTI3LjAuMC4xOjgw
MDA7IHNjcmlwdC1ub25jZSBub25jZScsICdyZXNvdXJjZXMvc2NyaXB0LmpzJywgJ25vdG5vbmNl
J10sCisgICAgWydubycsICdzY3JpcHQtc3JjIDEyNy4wLjAuMTo4MDAwOyBzY3JpcHQtbm9uY2Ug
bm90bm9uY2UnLCAncmVzb3VyY2VzL3NjcmlwdC5qcycsICdub25jZSddLAorXTsKKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorICA8cD4KKyAgICBOb25lIG9mIHRo
ZXNlIHNjcmlwdHMgc2hvdWxkIGV4ZWN1dGUgZXZlbiB0aG91Z2ggdGhlcmUgYXJlIHBhcnNlIGVy
cm9ycyBpbiB0aGUgcG9saWN5LgorICA8L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3Jp
cHQtc3JjLnBsIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvcmVzb3VyY2VzL2VjaG8tc2NyaXB0LXNyYy5wbAppbmRleCBmMzRlZGIwNTljY2I0
Njc3YzkwMzRjZTdhOGNkODdjYzg2ZDY4N2M4Li5lNjQ2N2U0ODA4ODU4ZTU1ZDI0YzQzMzYzZTc3
ZDliYzA0MjAxYTNhIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jl
c291cmNlcy9lY2hvLXNjcmlwdC1zcmMucGwKQEAgLTEwLDEyICsxMCwxOCBAQCBwcmludCAiWC1X
ZWJLaXQtQ1NQOiAiLiRjZ2ktPnBhcmFtKCdjc3AnKS4iXG5cbiI7CiBteSAoJHRleHQsICRyZXBs
YWNlbWVudCkgPSAoIkZBSUwiLCAiUEFTUyIpOwogKCR0ZXh0LCAkcmVwbGFjZW1lbnQpID0gKCRy
ZXBsYWNlbWVudCwgJHRleHQpIGlmICRjZ2ktPnBhcmFtKCdzaG91bGRfcnVuJykgZXEgJ25vJzsK
IAorbXkgJG5vbmNlID0gIiI7CitpZiAoJGNnaS0+cGFyYW0oJ25vbmNlJykgbmUgJycpIHsKKyAg
JG5vbmNlID0gIm5vbmNlPSciLiRjZ2ktPnBhcmFtKCdub25jZScpLiInIjsKK30KKworCiBwcmlu
dCAiPCFET0NUWVBFIGh0bWw+XG4iOwogcHJpbnQgIjxodG1sPlxuIjsKIHByaW50ICI8Ym9keT5c
biI7CiBwcmludCAiPGRpdiBpZD1cInJlc3VsdFwiIHRleHQ9XCIkcmVwbGFjZW1lbnRcIj5cbiI7
CiBwcmludCAiJHRleHRcbiI7CiBwcmludCAiPC9kaXY+XG4iOwotcHJpbnQgIjxzY3JpcHQgc3Jj
PVwiIi4kY2dpLT5wYXJhbSgncScpLiJcIj48L3NjcmlwdD5cbiI7CitwcmludCAiPHNjcmlwdCAk
bm9uY2Ugc3JjPVwiIi4kY2dpLT5wYXJhbSgncScpLiJcIj48L3NjcmlwdD5cbiI7CiBwcmludCAi
PC9ib2R5PlxuIjsKIHByaW50ICI8L2h0bWw+XG4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL211bHRp
cGxlLWlmcmFtZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL211bHRpcGxlLWlmcmFtZS10ZXN0LmpzCmluZGV4
IDdmOWExNTEzNTk2ZGQzYTQzZmI1Y2QyODUxNmU1MWJkYzNmNWUxY2EuLjdjZDRjZDBiYjgzYzE4
YTY0MzgzMzg3NTA0YmZhY2U4Y2Y2MzEwYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9tdWx0aXBsZS1p
ZnJhbWUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvbXVsdGlwbGUtaWZyYW1lLXRlc3QuanMKQEAgLTE1
LDYgKzE1LDkgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICAgInNob3VsZF9y
dW49IiArIGVzY2FwZShjdXJyZW50WzBdKSArCiAgICAgICAgICAgICAgICAgICImY3NwPSIgKyBl
c2NhcGUoY3VycmVudFsxXSkgKwogICAgICAgICAgICAgICAgICAiJnE9IiArIGJhc2VVUkwgKyBl
c2NhcGUoY3VycmVudFsyXSk7CisgICAgaWYgKGN1cnJlbnRbM10pCisgICAgICBpZnJhbWUuc3Jj
ICs9ICImbm9uY2U9IiArIGVzY2FwZShjdXJyZW50WzNdKTsKKwogICAgIGlmcmFtZS5vbmxvYWQg
PSB0ZXN0OwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150871</attachid>
            <date>2012-07-04 21:38:00 -0700</date>
            <delta_ts>2012-07-04 23:45:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89577-20120705063758.patch</filename>
            <type>text/plain</type>
            <size>30680</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdlZjdjMDdkOTg3MDRm
MTZiYmM0OGI2M2YxZDhjNzllNmIyNjA3ZS4uNTRkY2E0YWNiZDE3MGQzNTE2OGNlMjgyNzdjMTkw
NjM3ZGZjMDcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTA3LTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBzY3Jp
cHQtbm9uY2UgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk1NzcKKworICAgICAgICBSZXZp
ZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUg
KGV4cGVyaW1lbnRhbCkgc2NyaXB0LW5vbmNlIENvbnRlbnQgU2VjdXJpdHkKKyAgICAgICAgUG9s
aWN5IGRpcmVjdGl2ZSBmcm9tIHRoZSAxLjEgc3BlYywgd2hpY2ggYWxsb3dzIGZvciBzZWxlY3Rp
dmUKKyAgICAgICAgZXhlY3V0aW9uIG9mIHNjcmlwdCBieSBzcGVjaWZ5aW5nIGEgIm5vbmNlIiBh
dHRyaWJ1dGUgZm9yIHRoZQorICAgICAgICBzY3JpcHQgdGFnLiBTY3JpcHQgaXMgb25seSBsb2Fk
ZWQgYW5kIGV4ZWN1dGVkIGlmIGl0IGJvdGggbWF0Y2hlcyB0aGUKKyAgICAgICAgbm9uY2UgYW5k
IG1hdGNoZXMgdGhlIHNjcmlwdC1zcmMgd2hpdGVsaXN0IChpZiBwcmVzZW50KS4KKworICAgICAg
ICBUaGUgaW1wbGVtZW50YXRpb24gaXMgZ2F0ZWQgb24gdGhlIEVOQUJMRV9DU1BfTkVYVCBmbGFn
LCB3aGljaCBpcworICAgICAgICBjdXJyZW50bHkgZGlzYWJsZWQgZm9yIGFsbCBwb3J0cyBvdGhl
ciB0aGFuIENocm9taXVtLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHZjcy53My5vcmcvaGcv
Y29udGVudC1zZWN1cml0eS1wb2xpY3kvcmF3LWZpbGUvdGlwL2NzcC1zcGVjaWZpY2F0aW9uLmRl
di5odG1sI3NjcmlwdC1ub25jZS0tZXhwZXJpbWVudGFsCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1hbGxv
d2VkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1iYWRub25jZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Ut
YmxvY2tlZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtZW1wdHlub25jZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0
bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQuaHRtbAorCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpleGVjdXRlU2NyaXB0KToKKyAgICAg
ICAgICAgIFBhc3NpbmcgdGhlIG5vbmNlIGF0dHJpYnV0ZSB0aHJvdWdoIHRvIGNoZWNrIGFnYWlu
c3QgQ1NQLgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOgorICAgICAgICAq
IGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsOgorICAgICAgICAgICAgQWRkaW5nIHRoZSBgbm9u
Y2VgIGF0dHJpYnV0ZSB0byB0aGUgc2NyaXB0IHRhZy4KKyAgICAgICAgKiBwYWdlL0NvbnRlbnRT
ZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChDU1BEaXJlY3RpdmVMaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmxvZ0ludmFsaWROb25jZSk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmNoZWNrTm9uY2VB
bmRSZXBvcnRWaW9sYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6
YWxsb3dKYXZhU2NyaXB0VVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0
OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMpOgorICAgICAgICAgICAgSWYgYSBub25jZSBpcyBz
ZXQsIGRlbnkgSmF2YVNjcmlwdCBVUkxzIGFuZCBpbmxpbmUgZXZlbnQgaGFuZGxlcnMuCisgICAg
ICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphbGxvd1NjcmlwdE5vbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OnBhcnNlU2NyaXB0Tm9uY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWRkRGlyZWN0aXZlKToKKyAgICAgICAgKFdl
YkNvcmU6OmlzQWxsb3dlZEJ5QWxsV2l0aE5vbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRTZWN1cml0eVBvbGljeTo6YWxsb3dTY3JpcHROb25jZSk6CisgICAgICAgICogcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA3LTAyICBB
cmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBNaWNyb2RhdGE6IEZpeCBi
dWlsZCBmYWlsdXJlIGFmdGVyIHIxMjE1ODAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5j
cHAKaW5kZXggNzQ2ZTZjMzdiMjQzMDZlODY3NjBlNGQ0YTJkMGJhNjliOWM5ZDQ4Ny4uOWMxNjU0
ZTFmYzE4OWY4MjIxNjgzNjMzZjIzYjg1NmM2ZTg1NmViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcApAQCAtMjUwLDYgKzI1MCw4IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVx
dWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmICghbV9lbGVtZW50LT5pbkRvY3VtZW50KCkgfHwgbV9lbGVtZW50LT5kb2N1bWVu
dCgpICE9IG9yaWdpbmFsRG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IW1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93U2Ny
aXB0Tm9uY2UobV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6bm9uY2VBdHRy
KSwgbV9lbGVtZW50LT5kb2N1bWVudCgpLT51cmwoKSwgbV9zdGFydExpbmVOdW1iZXIsIG1fZWxl
bWVudC0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc291cmNlVXJsKSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIEFTU0VSVCghbV9jYWNoZWRTY3JpcHQpOwogICAgIGlmICghc3RyaXBM
ZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNvdXJjZVVybCkuaXNFbXB0eSgpKSB7CkBAIC0y
ODEsNiArMjgzLDkgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlU2NyaXB0KGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCiAgICAgaWYgKHNvdXJjZUNvZGUuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIW1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93U2NyaXB0Tm9uY2UobV9lbGVtZW50LT5mYXN0R2V0
QXR0cmlidXRlKEhUTUxOYW1lczo6bm9uY2VBdHRyKSwgbV9lbGVtZW50LT5kb2N1bWVudCgpLT51
cmwoKSwgbV9zdGFydExpbmVOdW1iZXIpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoIW1f
aXNFeHRlcm5hbFNjcmlwdCAmJiAhbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jb250ZW50U2VjdXJp
dHlQb2xpY3koKS0+YWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LT5kb2N1bWVudCgpLT51cmwo
KSwgbV9zdGFydExpbmVOdW1iZXIpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXggYTZlNzViYzc2YjgzZTU3OWVlMGZkOTkx
NWU0YjlhMzRiMWMzOGJiZS4uNDU5MDc4ZjY0YzA4YmUyYmU0MzFiMDA4ODhkY2YzOWJkYjMwYjg2
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTE1OCw2
ICsxNTgsNyBAQCBtdWx0aXBsZQogbXV0ZWQKIG5hbWUKIG5vaHJlZgorbm9uY2UKIG5vcmVzaXpl
CiBub3NoYWRlCiBub3ZhbGlkYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTY3JpcHRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuaWRsCmluZGV4IGE0MWUxMDQzZTZkYzlmNzFkODhlY2VmNDEzZGQ2MmRkMmIzOWE0YmIuLmJh
MTZlODUxYzE4NjJhZWM0MWZmYTM3OWIyZDA0MmUyNjM2ZGY0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCkBAIC0yOSw1ICsyOSw2IEBAIG1vZHVsZSBodG1s
IHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBzcmM7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHR5cGU7CiAgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNyb3NzT3JpZ2luOworICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3QsIENvbmRpdGlvbmFsPUNTUF9ORVhUXSBET01TdHJpbmcgbm9uY2U7CiAgICAgfTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBl
ODc4YjllZWVjYmE4Y2NjMWU2YzllNDlmNzUxNTg4OGMyMTgxOTk4Li41MGNkNGI0ZGY4YjcwMmNj
NDk0ODZiYmQ5ZWRiMzUxMzcxMzc0ZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JWYWx1ZXMuaCIKKyNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWRlci5o
IgogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNr
LmgiCkBAIC01NTAsNiArNTUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dJbmxpbmVTY3Jp
cHQoY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNv
bnRleHRMaW5lKSBjb25zdDsKICAgICBib29sIGFsbG93SW5saW5lU3R5bGUoY29uc3QgU3RyaW5n
JiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25z
dDsKICAgICBib29sIGFsbG93RXZhbChQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pIGNvbnN0
OworICAgIGJvb2wgYWxsb3dTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBT
dHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUs
IGNvbnN0IEtVUkwmKSBjb25zdDsKIAogICAgIGJvb2wgYWxsb3dTY3JpcHRGcm9tU291cmNlKGNv
bnN0IEtVUkwmKSBjb25zdDsKICAgICBib29sIGFsbG93T2JqZWN0RnJvbVNvdXJjZShjb25zdCBL
VVJMJikgY29uc3Q7CkBAIC01NjcsNiArNTY5LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgcGFy
c2VEaXJlY3RpdmUoY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBTdHJpbmcm
IG5hbWUsIFN0cmluZyYgdmFsdWUpOwogICAgIHZvaWQgcGFyc2VSZXBvcnRVUkkoY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIHBhcnNlU2NyaXB0Tm9u
Y2UoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICB2b2lkIGFk
ZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAg
IHZvaWQgYXBwbHlTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBzYW5kYm94UG9saWN5KTsKIApAQCAtNTc2LDkgKzU3OSwxMSBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4dCwgY29uc3QgU3Ry
aW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgS1VSTCYgYmxvY2tlZFVSTCA9IEtVUkwoKSwgY29u
c3QgU3RyaW5nJiBjb250ZXh0VVJMID0gU3RyaW5nKCksIGNvbnN0IFdURjo6T3JkaW5hbE51bWJl
ciYgY29udGV4dExpbmUgPSBXVEY6Ok9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCksIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDApIGNvbnN0OwogICAgIHZvaWQgbG9nVW5yZWNvZ25p
emVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgdm9pZCBsb2dEdXBs
aWNhdGVEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKKyAgICB2b2lkIGxvZ0lu
dmFsaWROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlKSBjb25zdDsKICAgICBib29sIGNoZWNrRXZh
bChDU1BEaXJlY3RpdmUqKSBjb25zdDsKIAogICAgIGJvb2wgY2hlY2tJbmxpbmVBbmRSZXBvcnRW
aW9sYXRpb24oQ1NQRGlyZWN0aXZlKiwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRM
aW5lKSBjb25zdDsKKyAgICBib29sIGNoZWNrTm9uY2VBbmRSZXBvcnRWaW9sYXRpb24oY29uc3Qg
U3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25z
dDsKICAgICBib29sIGNoZWNrRXZhbEFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJlY3RpdmUqLCBj
b25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwgPSBT
dHJpbmcoKSwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSA9IFdURjo6T3Jk
aW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0g
MCkgY29uc3Q7CiAgICAgYm9vbCBjaGVja1NvdXJjZUFuZFJlcG9ydFZpb2xhdGlvbihDU1BEaXJl
Y3RpdmUqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0eXBlKSBjb25zdDsKIApAQCAtNjAx
LDYgKzYwNiw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPENTUERpcmVjdGl2ZT4gbV9jb25uZWN0
U3JjOwogCiAgICAgVmVjdG9yPEtVUkw+IG1fcmVwb3J0VVJJczsKKyAgICBTdHJpbmcgbV9zY3Jp
cHROb25jZTsKIH07CiAKIENTUERpcmVjdGl2ZUxpc3Q6OkNTUERpcmVjdGl2ZUxpc3QoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKQEAgLTY5MCw2ICs2OTYs
MTIgQEAgdm9pZCBDU1BEaXJlY3RpdmVMaXN0Ojpsb2dEdXBsaWNhdGVEaXJlY3RpdmUoY29uc3Qg
U3RyaW5nJiBuYW1lKSBjb25zdAogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkQ29u
c29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsIG1lc3NhZ2UpOwogfQogCit2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmxvZ0ludmFsaWRO
b25jZShjb25zdCBTdHJpbmcmIG5vbmNlKSBjb25zdAoreworICAgIFN0cmluZyBtZXNzYWdlID0g
bWFrZVN0cmluZygiSWdub3JpbmcgaW52YWxpZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBzY3Jp
cHQgbm9uY2U6ICciLCBub25jZSwgIicuXG4iKTsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVy
cm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKK30KKwogYm9vbCBDU1BEaXJlY3RpdmVMaXN0Ojpj
aGVja0V2YWwoQ1NQRGlyZWN0aXZlKiBkaXJlY3RpdmUpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFk
aXJlY3RpdmUgfHwgZGlyZWN0aXZlLT5hbGxvd0V2YWwoKTsKQEAgLTcwOCw2ICs3MjAsMTQgQEAg
Ym9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihDU1BE
aXJlY3RpdmUqIGRpcmVjdGl2ZSwgY28KICAgICByZXR1cm4gZGVueUlmRW5mb3JjaW5nUG9saWN5
KCk7CiB9CiAKK2Jvb2wgQ1NQRGlyZWN0aXZlTGlzdDo6Y2hlY2tOb25jZUFuZFJlcG9ydFZpb2xh
dGlvbihjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4
dExpbmUpIGNvbnN0Cit7CisgICAgaWYgKG1fc2NyaXB0Tm9uY2UuaXNFbXB0eSgpIHx8IG5vbmNl
LnN0cmlwV2hpdGVTcGFjZSgpID09IG1fc2NyaXB0Tm9uY2UpCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIHJlcG9ydFZpb2xhdGlvbihtX3NjcmlwdE5vbmNlLCBjb25zb2xlTWVzc2FnZSArICJc
InNjcmlwdC1ub25jZSAiICsgbV9zY3JpcHROb25jZSArICJcIi5cbiIsIEtVUkwoKSwgY29udGV4
dFVSTCwgY29udGV4dExpbmUpOworICAgIHJldHVybiBkZW55SWZFbmZvcmNpbmdQb2xpY3koKTsK
K30KKwogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjpjaGVja0V2YWxBbmRSZXBvcnRWaW9sYXRpb24o
Q1NQRGlyZWN0aXZlKiBkaXJlY3RpdmUsIGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0
TGluZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykgY29uc3QKIHsKICAg
ICBpZiAoY2hlY2tFdmFsKGRpcmVjdGl2ZSkpCkBAIC03MjgsMTMgKzc0OCwxNSBAQCBib29sIENT
UERpcmVjdGl2ZUxpc3Q6OmNoZWNrU291cmNlQW5kUmVwb3J0VmlvbGF0aW9uKENTUERpcmVjdGl2
ZSogZGlyZWN0aXZlLCBjbwogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0phdmFTY3JpcHRV
UkxzKGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBj
b250ZXh0TGluZSkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29u
c29sZU1lc3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRlIEphdmFTY3JpcHQgVVJMIGJlY2F1c2Ug
aXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3Rp
dmU6ICIpKTsKLSAgICByZXR1cm4gY2hlY2tJbmxpbmVBbmRSZXBvcnRWaW9sYXRpb24ob3BlcmF0
aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2UsIGNvbnRleHRV
UkwsIGNvbnRleHRMaW5lKTsKKyAgICByZXR1cm4gKGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0
aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdl
LCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSkKKyAgICAgICAgICAgICYmIGNoZWNrTm9uY2VBbmRS
ZXBvcnRWaW9sYXRpb24oU3RyaW5nKCksIGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250
ZXh0TGluZSkpOwogfQogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lRXZlbnRI
YW5kbGVycyhjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJl
ciYgY29udGV4dExpbmUpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IGNvbnNvbGVNZXNzYWdlLCAoIlJlZnVzZWQgdG8gZXhlY3V0ZSBpbmxpbmUgZXZlbnQgaGFuZGxl
ciBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xp
Y3kgZGlyZWN0aXZlOiAiKSk7Ci0gICAgcmV0dXJuIGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0
aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSksIGNvbnNvbGVNZXNzYWdl
LCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSk7CisgICAgcmV0dXJuIChjaGVja0lubGluZUFuZFJl
cG9ydFZpb2xhdGlvbihvcGVyYXRpdmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25z
b2xlTWVzc2FnZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUpCisgICAgICAgICAgICAmJiBjaGVj
a05vbmNlQW5kUmVwb3J0VmlvbGF0aW9uKFN0cmluZygpLCBjb25zb2xlTWVzc2FnZSwgY29udGV4
dFVSTCwgY29udGV4dExpbmUpKTsKIH0KIAogYm9vbCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0lu
bGluZVNjcmlwdChjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51
bWJlciYgY29udGV4dExpbmUpIGNvbnN0CkBAIC03NTUsNiArNzc3LDE0IEBAIGJvb2wgQ1NQRGly
ZWN0aXZlTGlzdDo6YWxsb3dFdmFsKFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3Rh
Y2spIGNvbnN0CiAgICAgcmV0dXJuIGNoZWNrRXZhbEFuZFJlcG9ydFZpb2xhdGlvbihvcGVyYXRp
dmVEaXJlY3RpdmUobV9zY3JpcHRTcmMuZ2V0KCkpLCBjb25zb2xlTWVzc2FnZSwgU3RyaW5nKCks
IFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSwgY2FsbFN0YWNrKTsKIH0KIAorYm9v
bCBDU1BEaXJlY3RpdmVMaXN0OjphbGxvd1NjcmlwdE5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2Us
IGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250
ZXh0TGluZSwgY29uc3QgS1VSTCYgdXJsKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKCJSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0IGJl
Y2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBk
aXJlY3RpdmU6ICIpKTsKKyAgICBpZiAodXJsLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGNo
ZWNrTm9uY2VBbmRSZXBvcnRWaW9sYXRpb24obm9uY2UsIGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0
VVJMLCBjb250ZXh0TGluZSk7CisgICAgcmV0dXJuIGNoZWNrTm9uY2VBbmRSZXBvcnRWaW9sYXRp
b24obm9uY2UsICJSZWZ1c2VkIHRvIGxvYWQgJyIgKyB1cmwuc3RyaW5nKCkgKyAiJyBiZWNhdXNl
IGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0
aXZlOiAiLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSk7Cit9CisKIGJvb2wgQ1NQRGlyZWN0aXZl
TGlzdDo6YWxsb3dTY3JpcHRGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdHlwZSwgKCJzY3JpcHQiKSk7CkBAIC04OTgs
NiArOTI4LDM2IEBAIHZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6cGFyc2VSZXBvcnRVUkkoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIH0KIH0KIAordm9pZCBDU1BE
aXJlY3RpdmVMaXN0OjpwYXJzZVNjcmlwdE5vbmNlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fc2NyaXB0Tm9uY2UuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIGxvZ0R1cGxpY2F0ZURpcmVjdGl2ZShuYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFN0cmluZyBub25jZTsKKyAgICBjb25zdCBVQ2hhciogcG9zaXRpb24gPSB2YWx1
ZS5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNoYXIqIGVuZCA9IHBvc2l0aW9uICsgdmFsdWUu
bGVuZ3RoKCk7CisKKyAgICBza2lwV2hpbGU8aXNBU0NJSVNwYWNlPihwb3NpdGlvbiwgZW5kKTsK
KyAgICBjb25zdCBVQ2hhciogbm9uY2VCZWdpbiA9IHBvc2l0aW9uOworICAgIGlmIChwb3NpdGlv
biA9PSBlbmQpIHsKKyAgICAgICAgbG9nSW52YWxpZE5vbmNlKFN0cmluZygpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBza2lwV2hpbGU8aXNOb3RBU0NJSVNwYWNlPihwb3NpdGlvbiwg
ZW5kKTsKKyAgICBpZiAobm9uY2VCZWdpbiA8IHBvc2l0aW9uKQorICAgICAgICBub25jZSA9IFN0
cmluZyhub25jZUJlZ2luLCBwb3NpdGlvbiAtIG5vbmNlQmVnaW4pOworCisgICAgLy8gVHJpbSBv
ZmYgdHJhaWxpbmcgd2hpdGVzcGFjZTogSWYgd2UncmUgbm90IGF0IHRoZSBlbmQgb2YgdGhlIHN0
cmluZywgbG9nCisgICAgLy8gYW4gZXJyb3IuCisgICAgc2tpcFdoaWxlPGlzQVNDSUlTcGFjZT4o
cG9zaXRpb24sIGVuZCk7CisgICAgaWYgKHBvc2l0aW9uIDwgZW5kKQorICAgICAgICBsb2dJbnZh
bGlkTm9uY2UodmFsdWUpOworICAgIGVsc2UKKyAgICAgICAgbV9zY3JpcHROb25jZSA9IG5vbmNl
OworfQorCiB2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnNldENTUERpcmVjdGl2ZShjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIE93blB0cjxDU1BEaXJlY3RpdmU+JiBkaXJl
Y3RpdmUpCiB7CiAgICAgaWYgKGRpcmVjdGl2ZSkgewpAQCAtOTIxLDYgKzk4MSw5IEBAIHZvaWQg
Q1NQRGlyZWN0aXZlTGlzdDo6YWRkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZGVmYXVs
dFNyYywgKCJkZWZhdWx0LXNyYyIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
c2NyaXB0U3JjLCAoInNjcmlwdC1zcmMiKSk7CisjaWYgRU5BQkxFKENTUF9ORVhUKQorICAgIERF
RklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBzY3JpcHROb25jZSwgKCJzY3JpcHQtbm9uY2UiKSk7
CisjZW5kaWYKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgb2JqZWN0U3JjLCAoIm9i
amVjdC1zcmMiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGZyYW1lU3JjLCAo
ImZyYW1lLXNyYyIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaW1nU3JjLCAo
ImltZy1zcmMiKSk7CkBAIC05NTUsNiArMTAxOCwxMCBAQCB2b2lkIENTUERpcmVjdGl2ZUxpc3Q6
OmFkZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiAg
ICAgICAgIGFwcGx5U2FuZGJveFBvbGljeShuYW1lLCB2YWx1ZSk7CiAgICAgZWxzZSBpZiAoZXF1
YWxJZ25vcmluZ0Nhc2UobmFtZSwgcmVwb3J0VVJJKSkKICAgICAgICAgcGFyc2VSZXBvcnRVUkko
bmFtZSwgdmFsdWUpOworI2lmIEVOQUJMRShDU1BfTkVYVCkKKyAgICBlbHNlIGlmIChlcXVhbEln
bm9yaW5nQ2FzZShuYW1lLCBzY3JpcHROb25jZSkpCisgICAgICAgIHBhcnNlU2NyaXB0Tm9uY2Uo
bmFtZSwgdmFsdWUpOworI2VuZGlmCiAgICAgZWxzZQogICAgICAgICBsb2dVbnJlY29nbml6ZWRE
aXJlY3RpdmUobmFtZSk7CiB9CkBAIC0xMDE2LDYgKzEwODMsMTYgQEAgYm9vbCBpc0FsbG93ZWRC
eUFsbFdpdGhDb250ZXh0KGNvbnN0IENTUERpcmVjdGl2ZUxpc3RWZWN0b3ImIHBvbGljaWVzLCBj
b25zdCBTdHIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordGVtcGxhdGU8Ym9vbCAoQ1NQRGlyZWN0
aXZlTGlzdDo6KmFsbG93ZWQpKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFdU
Rjo6T3JkaW5hbE51bWJlciYsIGNvbnN0IEtVUkwmKSBjb25zdD4KK2Jvb2wgaXNBbGxvd2VkQnlB
bGxXaXRoTm9uY2UoY29uc3QgQ1NQRGlyZWN0aXZlTGlzdFZlY3RvciYgcG9saWNpZXMsIGNvbnN0
IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRp
bmFsTnVtYmVyJiBjb250ZXh0TGluZSwgY29uc3QgS1VSTCYgdXJsKQoreworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgcG9saWNpZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKCEocG9s
aWNpZXNbaV0uZ2V0KCktPiphbGxvd2VkKShub25jZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUs
IHVybCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVl
OworfQorCiB0ZW1wbGF0ZTxib29sIChDU1BEaXJlY3RpdmVMaXN0OjoqYWxsb3dGcm9tVVJMKShj
b25zdCBLVVJMJikgY29uc3Q+CiBib29sIGlzQWxsb3dlZEJ5QWxsV2l0aFVSTChjb25zdCBDU1BE
aXJlY3RpdmVMaXN0VmVjdG9yJiBwb2xpY2llcywgY29uc3QgS1VSTCYgdXJsKQogewpAQCAtMTA1
Niw2ICsxMTMzLDExIEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0V2YWwoUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykgY29uCiAgICAgcmV0dXJuIGlzQWxs
b3dlZEJ5QWxsV2l0aENhbGxTdGFjazwmQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dFdmFsPihtX3Bv
bGljaWVzLCBjYWxsU3RhY2spOwogfQogCitib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxs
b3dTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRV
UkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIGNvbnN0IEtVUkwmIHVy
bCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGxXaXRoTm9uY2U8JkNTUERpcmVj
dGl2ZUxpc3Q6OmFsbG93U2NyaXB0Tm9uY2U+KG1fcG9saWNpZXMsIG5vbmNlLCBjb250ZXh0VVJM
LCBjb250ZXh0TGluZSwgdXJsKTsKK30KKwogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFs
bG93U2NyaXB0RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGlzQWxsb3dlZEJ5QWxsV2l0aFVSTDwmQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHRGcm9t
U291cmNlPihtX3BvbGljaWVzLCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmgKaW5kZXggN2FjNjBkOWQ3ZmZiNTc4MmNiZDE4ZTc2NjJkNjllOTllYzNi
ODJkNC4uY2I2YmVhZDUxNDk1OGFkMzAxYzQ5M2Y2MDBmNGU2YTQ2MGQ3ODE1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIENvbnRlbnRTZWN1cml0eVBvbGljeV9oCiAjZGVmaW5lIENvbnRlbnRTZWN1cml0
eVBvbGljeV9oCiAKKyNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
QEAgLTQwLDcgKzQxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NQRGlyZWN0aXZl
TGlzdDsKIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7Ci1jbGFzcyBLVVJMOwogCiB0eXBlZGVmIFZlY3RvcjxPd25QdHI8Q1NQRGlyZWN0aXZlTGlz
dD4gPiBDU1BEaXJlY3RpdmVMaXN0VmVjdG9yOwogCkBAIC03MSw2ICs3MSw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGFsbG93SW5saW5lU2NyaXB0KGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29u
c3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSkgY29uc3Q7CiAgICAgYm9vbCBhbGxv
d0lubGluZVN0eWxlKGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFs
TnVtYmVyJiBjb250ZXh0TGluZSkgY29uc3Q7CiAgICAgYm9vbCBhbGxvd0V2YWwoUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+KSBjb25zdDsKKyAgICBib29sIGFsbG93U2NyaXB0Tm9uY2UoY29u
c3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9y
ZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBjb25zdCBLVVJMJiA9IEtVUkwoKSkgY29uc3Q7CiAK
ICAgICBib29sIGFsbG93U2NyaXB0RnJvbVNvdXJjZShjb25zdCBLVVJMJikgY29uc3Q7CiAgICAg
Ym9vbCBhbGxvd09iamVjdEZyb21Tb3VyY2UoY29uc3QgS1VSTCYpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE1
MGI2NjdlMDg0MjEyZGQzYTc2NzIyMmU4YTllN2FjNTQ2NTA5ODQuLmI1OGY0MDliYzRkN2UzZGFk
N2VkNDIwMTBiYjAwM2MzMTVjN2M0ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0wNy0w
NCAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCB0
aGUgc2NyaXB0LW5vbmNlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NTc3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1hbGxvd2VkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFsbG93ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNl
LWJhZG5vbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5LzEuMS9zY3JpcHRub25jZS1ibG9ja2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5v
bmNlLWJsb2NrZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9uY2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtZW1wdHlub25jZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9u
Y2Utc2NyaXB0c3JjLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2Ny
aXB0c3JjLWJsb2NrZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2VjaG8tc2NyaXB0LXNyYy5wbDoKKyAg
ICAgICAgICAgIEFkZGluZyBub25jeSBnb29kbmVzcyB0byB0aGUgZWNobyBzY3JpcHQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2Vz
L211bHRpcGxlLWlmcmFtZS10ZXN0LmpzOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICAgICBTa2lwcGluZyAxLjEgdGVz
dHMgb24gR1RLIChtaXNzZWQgaXQgaW4gcjEyMTg3OSkuCisKIDIwMTItMDctMDIgIFphbiBEb2Jl
cnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBbR3RrXSBNYW55IHRlc3Rz
IHJldmVhbGVkIGFzIHBhc3NpbmcgYWZ0ZXIgbW92aW5nIGZyb20gU2tpcHBlZCB0byB0ZXN0X2V4
cGVjdGF0aW9ucy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1hbGxvd2VkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5LzEuMS9zY3JpcHRub25jZS1hbGxvd2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODVh
NTQwYzMwZWQzMTg1ZWFhYjNmNGUxNjkyM2M3NzE5NjY2MTNiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4x
L3NjcmlwdG5vbmNlLWFsbG93ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6
IFBBU1MgKDEvMSkKK1RoaXMgdGVzdHMgdGhlIGVmZmVjdCBvZiBhIHZhbGlkIHNjcmlwdC1ub25j
ZSB2YWx1ZS4gSXQgcGFzc2VzIGlmIG5vIGNvbnNvbGUgd2FybmluZyBpcyB2aXNpYmxlLCBhbmQg
dGhlIGFsZXJ0KCkgaXMgZXhlY3V0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYWxsb3dl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFsbG93ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjNmYzBhMjVi
MDliODAxMTM4NGZlMzZiYWM1YmEzYjVkMDEwMzViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3Njcmlw
dG5vbmNlLWFsbG93ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1Ai
IGNvbnRlbnQ9InNjcmlwdC1ub25jZSBub25jeW5vbmNlOyI+CisgICAgICAgIDxzY3JpcHQgbm9u
Y2U9Im5vbmN5bm9uY2UiPgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBub25jZT0ibm9uY3lub25jZSI+CisgICAgICAg
ICAgICBhbGVydCgnUEFTUyAoMS8xKScpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHk+CisgICAgICAgIDxwPgorICAgICAgICAgICAgVGhpcyB0ZXN0cyB0aGUgZWZm
ZWN0IG9mIGEgdmFsaWQgc2NyaXB0LW5vbmNlIHZhbHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAg
ICAgIG5vIGNvbnNvbGUgd2FybmluZyBpcyB2aXNpYmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhl
Y3V0ZWQuCisgICAgICAgIDwvcD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEv
c2NyaXB0bm9uY2UtYmFkbm9uY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjg1NjRlYzNmMmM3MjA4NDg0NGY4NzM3NDk2NTU0
YjIxYzZjZjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NPTlNPTEUgTUVTU0FHRTogSWdub3JpbmcgaW52YWxp
ZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBzY3JpcHQgbm9uY2U6ICd0aGlzIGlzIGEgYmFkIG5v
bmNlJy4KKworQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMgdGVzdHMgdGhlIGVmZmVjdCBvZiBhbiBp
bnZhbGlkIHNjcmlwdC1ub25jZSB2YWx1ZS4gSXQgcGFzc2VzIGlmIGEgY29uc29sZSB3YXJuaW5n
IGlzIHZpc2libGUsIGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRlZC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9z
Y3JpcHRub25jZS1iYWRub25jZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJhZG5vbmNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjU5ZGZkNjJjZWQwZjM5NDEwZTQzMDlhOGI4YTBlYmRhYzRlNGY1ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1iYWRub25jZS5odG1sCkBAIC0wLDAgKzEsMTkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAt
ZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0ic2NyaXB0LW5vbmNlIHRoaXMgaXMgYSBiYWQg
bm9uY2U7Ij4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBhbGVy
dCgnUEFTUyAoMS8xKScpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJv
ZHk+CisgICAgICAgIDxwPgorICAgICAgICAgICAgVGhpcyB0ZXN0cyB0aGUgZWZmZWN0IG9mIGFu
IGludmFsaWQgc2NyaXB0LW5vbmNlIHZhbHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAgICAgIGEg
Y29uc29sZSB3YXJuaW5nIGlzIHZpc2libGUsIGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRlZC4K
KyAgICAgICAgPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRu
b25jZS1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1ibG9ja2VkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45M2NiMTU2NWYzMzE1ZTYyMGIwNzExN2Q4MDZkOTYxNTRhOGZiZTJk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOSBAQAorQUxFUlQ6IFBBU1MgKDEvMikKK0FMRVJUOiBQQVNTICgyLzIpCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTM6IFJlZnVzZWQgdG8gZXhlY3V0ZSBzY3JpcHQgYmVjYXVzZSBp
dCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2
ZTogInNjcmlwdC1ub25jZSBub25jeW5vbmNlIi4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2
OiBSZWZ1c2VkIHRvIGV4ZWN1dGUgc2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxv
d2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtbm9uY2Ugbm9u
Y3lub25jZSIuCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogUmVmdXNlZCB0byBleGVjdXRl
IHNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LW5vbmNlIG5vbmN5bm9uY2UiLgorCitUaGlzIHRl
c3RzIHRoZSBlZmZlY3Qgb2YgYSB2YWxpZCBzY3JpcHQtbm9uY2UgdmFsdWUuIEl0IHBhc3NlcyBp
ZiB0aHJlZSBjb25zb2xlIHdhcm5pbmdzIGFyZSB2aXNpYmxlLCBhbmQgdGhlIHR3byBQQVNTIGFs
ZXJ0cyBhcmUgZXhlY3V0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYmxvY2tlZC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
MS4xL3NjcmlwdG5vbmNlLWJsb2NrZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTE3MDZjM2JkY2RiOTJl
Njg5ZmZmZDlkZTI4ZDE5MmFlNTRiMjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNl
LWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRl
bnQ9InNjcmlwdC1ub25jZSBub25jeW5vbmNlOyI+CisgICAgICAgIDxzY3JpcHQgbm9uY2U9Im5v
bmN5bm9uY2UiPgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBhbGVy
dCgnUEFTUyAoMS8yKScpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBub25j
ZT0iICAgbm9uY3lub25jZSAgICAiPgorICAgICAgICBhbGVydCgnUEFTUyAoMi8yKScpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBub25jZT0ibm9uY3lub25jZSBub25jeW5v
bmNlIj4KKyAgICAgICAgICAgIGFsZXJ0KCdGQUlMICgxLzMpJyk7CisgICAgICAgIDwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgYWxlcnQoJ0ZBSUwgKDIvMyknKTsKKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgbm9uY2U9Im5vbmN5bm9uY2Vubz8iPgor
ICAgICAgICAgICAgYWxlcnQoJ0ZBSUwgKDMvMyknKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8cD4KKyAgICAgICAgICAgIFRoaXMgdGVzdHMg
dGhlIGVmZmVjdCBvZiBhIHZhbGlkIHNjcmlwdC1ub25jZSB2YWx1ZS4gSXQgcGFzc2VzIGlmCisg
ICAgICAgICAgICB0aHJlZSBjb25zb2xlIHdhcm5pbmdzIGFyZSB2aXNpYmxlLCBhbmQgdGhlIHR3
byBQQVNTIGFsZXJ0cyBhcmUKKyAgICAgICAgICAgIGV4ZWN1dGVkLgorICAgICAgICA8L3A+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9uY2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9uY2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjkzYzVlYmU5YTAyOWIxMTg3NjMxNTE2MDAyYjAyNjY5ZThkYjllMDgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtZW1wdHlub25jZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACitDT05TT0xFIE1FU1NBR0U6IElnbm9yaW5nIGludmFsaWQgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kgc2NyaXB0IG5vbmNlOiAnJy4KKworQUxFUlQ6IFBBU1MgKDEvMSkKK1RoaXMgdGVz
dHMgdGhlIGVmZmVjdCBvZiBhbiBlbXB0eSBzY3JpcHQtbm9uY2UgdmFsdWUuIEl0IHBhc3NlcyBp
ZiBhIGNvbnNvbGUgd2FybmluZyBpcyB2aXNpYmxlLCBhbmQgdGhlIGFsZXJ0KCkgaXMgZXhlY3V0
ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtZW1wdHlub25jZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5v
bmNlLWVtcHR5bm9uY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDEwYzQ4ZTc1MTU3ODJlMGEwNmM3MGQx
ZTVkMDg3N2NiZGM5YjBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3NjcmlwdG5vbmNlLWVtcHR5bm9u
Y2UuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxo
ZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNj
cmlwdC1ub25jZTsiPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAg
IGFsZXJ0KCdQQVNTICgxLzEpJyk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAg
ICA8Ym9keT4KKyAgICAgICAgPHA+CisgICAgICAgICAgICBUaGlzIHRlc3RzIHRoZSBlZmZlY3Qg
b2YgYW4gZW1wdHkgc2NyaXB0LW5vbmNlIHZhbHVlLiBJdCBwYXNzZXMgaWYKKyAgICAgICAgICAg
IGEgY29uc29sZSB3YXJuaW5nIGlzIHZpc2libGUsIGFuZCB0aGUgYWxlcnQoKSBpcyBleGVjdXRl
ZC4KKyAgICAgICAgPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3Jp
cHRub25jZS1zY3JpcHRzcmMtYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2Ny
aXB0c3JjLWJsb2NrZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwMzQ3ZWM0NDEwNTZjOWU0
ZTQ4YmY1Y2ZjOWJiY2E4ZDY3MzlmODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Ut
c2NyaXB0c3JjLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSA3OiBSZWZ1c2VkIHRvIGxvYWQgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3NjcmlwdC5qcycgYmVjYXVz
ZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVj
dGl2ZTogInNjcmlwdC1ub25jZSBub25jZSIuCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBS
ZWZ1c2VkIHRvIGxvYWQgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvcmVzb3VyY2VzL3NjcmlwdC5qcycgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUg
Zm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1ub25j
ZSBub3Rub25jZSIuCisKK05vbmUgb2YgdGhlc2Ugc2NyaXB0cyBzaG91bGQgZXhlY3V0ZSBldmVu
IHRob3VnaCB0aGVyZSBhcmUgcGFyc2UgZXJyb3JzIGluIHRoZSBwb2xpY3kuCisKKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0t
CitQQVNTCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+
LS0+JworLS0tLS0tLS0KK1BBU1MKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAv
LzwhLS1mcmFtZTItLT4tLT4nCistLS0tLS0tLQorUEFTUworCistLS0tLS0tLQorRnJhbWU6ICc8
IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMy0tPi0tPicKKy0tLS0tLS0tCitQQVNTCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0c3JjLWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1z
Y3JpcHRzcmMtYmxvY2tlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjZjY5ZWY3ZDQ5Y2IwNzg3YzA1NjBm
ZGVjMzFkODk4ZDE4NDNjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2Utc2NyaXB0
c3JjLWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0nLi4vcmVzb3VyY2VzL211bHRpcGxlLWlmcmFtZS10ZXN0
LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgdGVzdHMgPSBbCisgICAgWyd5ZXMnLCAnc2Ny
aXB0LXNyYyAxMjcuMC4wLjE6ODAwMCcsICdyZXNvdXJjZXMvc2NyaXB0LmpzJywgJ25vbmNlJ10s
CisgICAgWyd5ZXMnLCAnc2NyaXB0LXNyYyAxMjcuMC4wLjE6ODAwMDsgc2NyaXB0LW5vbmNlIG5v
bmNlJywgJ3Jlc291cmNlcy9zY3JpcHQuanMnLCAnbm9uY2UnXSwKKyAgICBbJ25vJywgJ3Njcmlw
dC1zcmMgMTI3LjAuMC4xOjgwMDA7IHNjcmlwdC1ub25jZSBub25jZScsICdyZXNvdXJjZXMvc2Ny
aXB0LmpzJywgJ25vdG5vbmNlJ10sCisgICAgWydubycsICdzY3JpcHQtc3JjIDEyNy4wLjAuMTo4
MDAwOyBzY3JpcHQtbm9uY2Ugbm90bm9uY2UnLCAncmVzb3VyY2VzL3NjcmlwdC5qcycsICdub25j
ZSddLAorXTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorICA8
cD4KKyAgICBOb25lIG9mIHRoZXNlIHNjcmlwdHMgc2hvdWxkIGV4ZWN1dGUgZXZlbiB0aG91Z2gg
dGhlcmUgYXJlIHBhcnNlIGVycm9ycyBpbiB0aGUgcG9saWN5LgorICA8L3A+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9y
ZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBsIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2VjaG8tc2NyaXB0LXNyYy5wbApp
bmRleCBmMzRlZGIwNTljY2I0Njc3YzkwMzRjZTdhOGNkODdjYzg2ZDY4N2M4Li5lNjQ2N2U0ODA4
ODU4ZTU1ZDI0YzQzMzYzZTc3ZDliYzA0MjAxYTNhIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvZWNoby1z
Y3JpcHQtc3JjLnBsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9lY2hvLXNjcmlwdC1zcmMucGwKQEAgLTEwLDEyICsx
MCwxOCBAQCBwcmludCAiWC1XZWJLaXQtQ1NQOiAiLiRjZ2ktPnBhcmFtKCdjc3AnKS4iXG5cbiI7
CiBteSAoJHRleHQsICRyZXBsYWNlbWVudCkgPSAoIkZBSUwiLCAiUEFTUyIpOwogKCR0ZXh0LCAk
cmVwbGFjZW1lbnQpID0gKCRyZXBsYWNlbWVudCwgJHRleHQpIGlmICRjZ2ktPnBhcmFtKCdzaG91
bGRfcnVuJykgZXEgJ25vJzsKIAorbXkgJG5vbmNlID0gIiI7CitpZiAoJGNnaS0+cGFyYW0oJ25v
bmNlJykgbmUgJycpIHsKKyAgJG5vbmNlID0gIm5vbmNlPSciLiRjZ2ktPnBhcmFtKCdub25jZScp
LiInIjsKK30KKworCiBwcmludCAiPCFET0NUWVBFIGh0bWw+XG4iOwogcHJpbnQgIjxodG1sPlxu
IjsKIHByaW50ICI8Ym9keT5cbiI7CiBwcmludCAiPGRpdiBpZD1cInJlc3VsdFwiIHRleHQ9XCIk
cmVwbGFjZW1lbnRcIj5cbiI7CiBwcmludCAiJHRleHRcbiI7CiBwcmludCAiPC9kaXY+XG4iOwot
cHJpbnQgIjxzY3JpcHQgc3JjPVwiIi4kY2dpLT5wYXJhbSgncScpLiJcIj48L3NjcmlwdD5cbiI7
CitwcmludCAiPHNjcmlwdCAkbm9uY2Ugc3JjPVwiIi4kY2dpLT5wYXJhbSgncScpLiJcIj48L3Nj
cmlwdD5cbiI7CiBwcmludCAiPC9ib2R5PlxuIjsKIHByaW50ICI8L2h0bWw+XG4iOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcmVzb3VyY2VzL211bHRpcGxlLWlmcmFtZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL211bHRpcGxlLWlm
cmFtZS10ZXN0LmpzCmluZGV4IDdmOWExNTEzNTk2ZGQzYTQzZmI1Y2QyODUxNmU1MWJkYzNmNWUx
Y2EuLjdjZDRjZDBiYjgzYzE4YTY0MzgzMzg3NTA0YmZhY2U4Y2Y2MzEwYjkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jl
c291cmNlcy9tdWx0aXBsZS1pZnJhbWUtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvbXVsdGlwbGUtaWZy
YW1lLXRlc3QuanMKQEAgLTE1LDYgKzE1LDkgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAg
ICAgICAgICAgInNob3VsZF9ydW49IiArIGVzY2FwZShjdXJyZW50WzBdKSArCiAgICAgICAgICAg
ICAgICAgICImY3NwPSIgKyBlc2NhcGUoY3VycmVudFsxXSkgKwogICAgICAgICAgICAgICAgICAi
JnE9IiArIGJhc2VVUkwgKyBlc2NhcGUoY3VycmVudFsyXSk7CisgICAgaWYgKGN1cnJlbnRbM10p
CisgICAgICBpZnJhbWUuc3JjICs9ICImbm9uY2U9IiArIGVzY2FwZShjdXJyZW50WzNdKTsKKwog
ICAgIGlmcmFtZS5vbmxvYWQgPSB0ZXN0OwogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggYjUzMmFkNDc2MjQ4MGMzNjEyNjUzMmJkYjlhYzhmZTlmNzg0ZDAwNy4uZDU1OTU2ZWQzNDNl
NmM2ODQ0NTg1NDFiNDk1MTkxNDRlOThmYjZhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0MCw2ICszNDAsOSBAQCBCVUdXSzMxNTA4IFNLSVAgOiBz
dG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1zdWNjZXNzLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxk
Lmh0bQogLy8gRGlzYWJsZSB3ZWJhdWRpbyBjb2RlYyB0ZXN0cywgaW5jbHVkaW5nIHByb3ByaWV0
YXJ5IGNvZGVjcy4KIEJVR1dLODg3OTQgU0tJUCA6IHdlYmF1ZGlvL2NvZGVjLXRlc3RzID0gUEFT
UwogCisvLyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSAxLjEgKEVOQUJMRV9DU1BfTkVYVCkgaXMg
bm90IGVuYWJsZWQKK0JVR1dLODU1NTggU0tJUCA6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5LzEuMSA9IFRFWFQKKwogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCiAvLyBFbmQgb2YgRXhwZWN0ZWQgZmFpbHVyZXMKIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>