<?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>27452</bug_id>
          
          <creation_ts>2009-07-20 11:59:10 -0700</creation_ts>
          <short_desc>Support for the checkValidity() method and the invalid event</short_desc>
          <delta_ts>2009-08-21 18:05:50 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-form-checkvalidity</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>19264</blocked>
    
    <blocked>28649</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michelangelo De Simone">michelangelo</reporter>
          <assigned_to name="Michelangelo De Simone">michelangelo</assigned_to>
          <cc>adele</cc>
    
    <cc>darin</cc>
    
    <cc>marcoos+bwo</cc>
    
    <cc>pkasting</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133185</commentid>
    <comment_count>0</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-07-20 11:59:10 -0700</bug_when>
    <thetext>As per summary the implementation of checkValidity method along with its related simple event &quot;invalid&quot; is required as soon as static validation routine are landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141348</commentid>
    <comment_count>1</comment_count>
      <attachid>35093</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-18 18:43:15 -0700</bug_when>
    <thetext>Created attachment 35093
Untested, undocumented and unworthy patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141350</commentid>
    <comment_count>2</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-18 18:49:12 -0700</bug_when>
    <thetext>Peter and I discussed the Form::checkValidity() method on #WebKit, it has an optional parameter (unhandledInvalidControls) which can be used for interactive validation tkent is going to work (or is already working) on; see 4.10.15.2.

I&apos;d like some feedback and, yes, the comment inside HTMLFormElement.idl is a mistake.:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141352</commentid>
    <comment_count>3</comment_count>
      <attachid>35093</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-08-18 18:55:29 -0700</bug_when>
    <thetext>Comment on attachment 35093
Untested, undocumented and unworthy patch

&gt; diff --git a/WebCore/dom/Document.idl b/WebCore/dom/Document.idl
&gt; index 44966cc..116be9f 100644
&gt; --- a/WebCore/dom/Document.idl
&gt; +++ b/WebCore/dom/Document.idl
&gt; @@ -277,6 +277,7 @@ module core {
&gt;          attribute [DontEnum] EventListener onscroll;
&gt;          attribute [DontEnum] EventListener onselect;
&gt;          attribute [DontEnum] EventListener onsubmit;
&gt; +        attribute [DontEnum] EventListener oninvalid;

Alphabetical order?

&gt; diff --git a/WebCore/dom/Element.idl b/WebCore/dom/Element.idl
&gt; index 16aac84..44a73ae 100644
&gt; --- a/WebCore/dom/Element.idl
&gt; +++ b/WebCore/dom/Element.idl
&gt; @@ -162,6 +162,7 @@ module core {
&gt;          attribute [DontEnum] EventListener onscroll;
&gt;          attribute [DontEnum] EventListener onselect;
&gt;          attribute [DontEnum] EventListener onsubmit;
&gt; +        attribute [DontEnum] EventListener oninvalid;

Here too

&gt; diff --git a/WebCore/dom/Node.h b/WebCore/dom/Node.h
&gt; index a557f94..2276c0f 100644
&gt; --- a/WebCore/dom/Node.h
&gt; +++ b/WebCore/dom/Node.h
&gt; @@ -613,6 +613,8 @@ public:
&gt;      void setOnselect(PassRefPtr&lt;EventListener&gt;);
&gt;      EventListener* onsubmit() const;
&gt;      void setOnsubmit(PassRefPtr&lt;EventListener&gt;);
&gt; +    EventListener* oninvalid() const;
&gt; +    void setOninvalid(PassRefPtr&lt;EventListener&gt;);

Here too (maybe should put the existing cases in order...?)

&gt; diff --git a/WebCore/page/DOMWindow.idl b/WebCore/page/DOMWindow.idl
&gt; index 7c61523..e9c6ac5 100644
&gt; --- a/WebCore/page/DOMWindow.idl
&gt; +++ b/WebCore/page/DOMWindow.idl
&gt; @@ -250,6 +250,7 @@ module window {
&gt;          attribute EventListener onunload;
&gt;          attribute EventListener onvolumechange;
&gt;          attribute EventListener onwaiting;
&gt; +        attribute EventListener oninvalid;

Here too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141450</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-08-19 03:12:47 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Peter and I discussed the Form::checkValidity() method on #WebKit, it has an
&gt; optional parameter (unhandledInvalidControls) which can be used for interactive
&gt; validation tkent is going to work (or is already working) on; see 4.10.15.2.

It seems good.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141567</commentid>
    <comment_count>5</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-19 13:10:51 -0700</bug_when>
    <thetext>CC&apos;ed Darin to have his comments too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141618</commentid>
    <comment_count>6</comment_count>
      <attachid>35152</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-19 15:42:21 -0700</bug_when>
    <thetext>Created attachment 35152
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141629</commentid>
    <comment_count>7</comment_count>
      <attachid>35152</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-19 16:09:08 -0700</bug_when>
    <thetext>Comment on attachment 35152
Patch v1

Regression on (the usual) domListEnumeration: updating...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141630</commentid>
    <comment_count>8</comment_count>
      <attachid>35157</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-19 16:17:24 -0700</bug_when>
    <thetext>Created attachment 35157
Patch v1 with updated layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141962</commentid>
    <comment_count>9</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-21 13:52:53 -0700</bug_when>
    <thetext>There&apos;s a mistake in one of the attached tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141996</commentid>
    <comment_count>10</comment_count>
      <attachid>38398</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-21 14:57:10 -0700</bug_when>
    <thetext>Created attachment 38398
Patch v1 with working test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142000</commentid>
    <comment_count>11</comment_count>
      <attachid>38400</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-21 15:00:09 -0700</bug_when>
    <thetext>Created attachment 38400
Patch v1a

Bugzilla-tool didn&apos;t do the trick...:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142023</commentid>
    <comment_count>12</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-21 15:35:13 -0700</bug_when>
    <thetext>Adele gave her feedbacks on irc, the patch is being modified with the elimination of the stuff related to unhandledInvalidControls; instead of it a &quot;TODO&quot; comment is added to remind about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142038</commentid>
    <comment_count>13</comment_count>
      <attachid>38408</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-21 16:16:35 -0700</bug_when>
    <thetext>Created attachment 38408
Patch v1b

This patch complies with Adele&apos;s review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142042</commentid>
    <comment_count>14</comment_count>
      <attachid>38408</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2009-08-21 16:22:18 -0700</bug_when>
    <thetext>Comment on attachment 38408
Patch v1b

You can return false early if !control-&gt;checkValidity().  Everything else looks good. r=me

&gt; +bool HTMLFormElement::checkValidity()
&gt; +{
&gt; +    // TODO: Check for unhandled invalid controls, see #27452 for tips.
&gt; +
&gt; +    bool hasOnlyValidControls = true;
&gt; +    for (unsigned i = 0; i &lt; formElements.size(); ++i) {
&gt; +        HTMLFormControlElement* control = formElements[i];
&gt; +        if (!control-&gt;checkValidity())
&gt; +            hasOnlyValidControls = false;
&gt; +    }
&gt; +
&gt; +    return hasOnlyValidControls;
&gt; +}
&gt; +</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142043</commentid>
    <comment_count>15</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-21 16:23:54 -0700</bug_when>
    <thetext>(In reply to comment #14)

&gt; (From update of attachment 38408 [details])
&gt; You can return false early if !control-&gt;checkValidity().  Everything else looks
&gt; good. r=me

I can&apos;t. Form::checkValidity() is supposed to fire an invalid event on every single invalid controls it has.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142045</commentid>
    <comment_count>16</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2009-08-21 16:26:00 -0700</bug_when>
    <thetext>nevermind my comment - I forgot about where the events were dispatched</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142050</commentid>
    <comment_count>17</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-08-21 16:56:05 -0700</bug_when>
    <thetext>Fixed in r47649.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35093</attachid>
            <date>2009-08-18 18:43:15 -0700</date>
            <delta_ts>2009-08-19 15:42:12 -0700</delta_ts>
            <desc>Untested, undocumented and unworthy patch</desc>
            <filename>bug-27452-20090819034312.patch</filename>
            <type>text/plain</type>
            <size>12790</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmlkbAppbmRleCA0NDk2NmNjLi4xMTZiZTlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0yNzcsNiArMjc3
LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9uc2Nyb2xsOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9uc2VsZWN0OwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9uc3VibWl0OworICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
aW52YWxpZDsKIAogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9uY2FucGxheTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbmNhbnBsYXl0aHJvdWdoOwpAQCAtMjg1LDcgKzI4Niw2IEBAIG1vZHVsZSBjb3JlIHsKICAg
ICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVuZGVkOwogICAg
ICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9ybWNoYW5nZTsK
ICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1
dDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmludmFs
aWQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2Fk
ZWRkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
bG9hZGVkbWV0YWRhdGE7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlz
dGVuZXIgb25sb2Fkc3RhcnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBi
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDE2YWFjODQuLjQ0YTczYWUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRs
CkBAIC0xNjIsNiArMTYyLDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBhdHRyaWJ1dGUgW0Rv
bnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc2Nyb2xsOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRF
bnVtXSBFdmVudExpc3RlbmVyIG9uc2VsZWN0OwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9uc3VibWl0OworICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9uaW52YWxpZDsKIAogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9uY2FucGxheTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51
bV0gRXZlbnRMaXN0ZW5lciBvbmNhbnBsYXl0aHJvdWdoOwpAQCAtMTcwLDcgKzE3MSw2IEBAIG1v
ZHVsZSBjb3JlIHsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbmVuZGVkOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9uZm9ybWNoYW5nZTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0
ZW5lciBvbmZvcm1pbnB1dDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbmludmFsaWQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50
TGlzdGVuZXIgb25sb2FkZWRkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBF
dmVudExpc3RlbmVyIG9ubG9hZGVkbWV0YWRhdGE7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9u
dEVudW1dIEV2ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9FdmVudE5hbWVzLmggYi9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggZTBiOGU3YS4u
NzdmZjg1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaApAQCAtNTcsNiArNTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgbWFjcm8oZm9jdXMpIFwKICAgICBtYWNybyhoYXNoY2hhbmdlKSBcCiAgICAgbWFjcm8o
aW5wdXQpIFwKKyAgICBtYWNybyhpbnZhbGlkKSBcCiAgICAgbWFjcm8oa2V5ZG93bikgXAogICAg
IG1hY3JvKGtleXByZXNzKSBcCiAgICAgbWFjcm8oa2V5dXApIFwKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL05vZGUuY3BwIGIvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYjA0YzkzMy4uYzQ2
NDMzNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKQEAgLTMyNjgsNiArMzI2OCwxNiBAQCB2b2lkIE5vZGU6OnNldE9uc3VibWl0KFBh
c3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lcikKICAgICBzZXRBdHRyaWJ1dGVF
dmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5zdWJtaXRFdmVudCwgZXZlbnRMaXN0ZW5lcik7CiB9
CiAKK0V2ZW50TGlzdGVuZXIqIE5vZGU6Om9uaW52YWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGdldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmludmFsaWRFdmVudCk7Cit9
CisKK3ZvaWQgTm9kZTo6c2V0T25pbnZhbGlkKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZl
bnRMaXN0ZW5lcikKK3sKKyAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMo
KS5pbnZhbGlkRXZlbnQsIGV2ZW50TGlzdGVuZXIpOworfQorCiBFdmVudExpc3RlbmVyKiBOb2Rl
OjpvbmJlZm9yZWN1dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZUV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lcygpLmJlZm9yZWN1dEV2ZW50KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL05vZGUuaCBiL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBhNTU3Zjk0Li4yMjc2YzBmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvV2ViQ29yZS9kb20vTm9kZS5oCkBA
IC02MTMsNiArNjEzLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0T25zZWxlY3QoUGFzc1JlZlB0
cjxFdmVudExpc3RlbmVyPik7CiAgICAgRXZlbnRMaXN0ZW5lciogb25zdWJtaXQoKSBjb25zdDsK
ICAgICB2b2lkIHNldE9uc3VibWl0KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworICAgIEV2
ZW50TGlzdGVuZXIqIG9uaW52YWxpZCgpIGNvbnN0OworICAgIHZvaWQgc2V0T25pbnZhbGlkKFBh
c3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogCiAgICAgLy8gV2ViS2l0IGV4dGVuc2lvbnMKICAg
ICBFdmVudExpc3RlbmVyKiBvbmJlZm9yZWN1dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4KaW5kZXggMWNhZjQ3My4uMDM1YzdkYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluCkBAIC0xNDcsNiArMTQ3LDcgQEAgb25lcnJvcgogb25mb2N1cwogb25oYXNoY2hhbmdl
CiBvbmlucHV0CitvbmludmFsaWQKIG9ua2V5ZG93bgogb25rZXlwcmVzcwogb25rZXl1cApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKaW5kZXggNWZkMDA3NS4uZGUzZTUwNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuaWRsCkBAIC0zNiw2ICszNiw3IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB0eXBlOwogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nICAgICAgICAgICAgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
ICAgICAgICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICBib29sZWFuICBjaGVja1ZhbGlk
aXR5KCk7CiAgICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmlu
ZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAgICAgICAgIHZvaWQgY2xp
Y2soKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBi
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggY2Q4Njk4Mi4uN2EzMzlkYyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCkBAIC0yMjQsNiArMjI0LDggQEAgdm9pZCBIVE1MRWxlbWVudDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQogICAgICAgICBzZXRBdHRy
aWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS53ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQs
IGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cikpOwogICAgIH0gZWxzZSBp
ZiAoYXR0ci0+bmFtZSgpID09IG9uaW5wdXRBdHRyKSB7CiAgICAgICAgIHNldEF0dHJpYnV0ZUV2
ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50
TGlzdGVuZXIodGhpcywgYXR0cikpOworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9u
aW52YWxpZEF0dHIpIHsKKyAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5h
bWVzKCkuaW52YWxpZEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0
dHIpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbAppbmRleCA0
ZDExMzA0Li5jYTg1NjNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxl
bWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCkBAIC0y
OSw2ICsyOSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZh
bGlkaXR5U3RhdGUgICB2YWxpZGl0eTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgYm9vbGVhbiAgY2hlY2tW
YWxpZGl0eSgpOwogICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVy
dFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICB9Owog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggOTlhODRiMS4uYzNl
MjY2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMjYzLDYg
KzI2MywxOSBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxWYWxpZGF0ZSgpIGNv
bnN0CiAgICAgcmV0dXJuIGZvcm0oKSAmJiAhbmFtZSgpLmlzRW1wdHkoKSAmJiAhZGlzYWJsZWQo
KSAmJiAhaXNSZWFkT25seUZvcm1Db250cm9sKCk7CiB9CiAKK2Jvb2wgSFRNTEZvcm1Db250cm9s
RWxlbWVudDo6Y2hlY2tWYWxpZGl0eSgpCit7CisgICAgaWYgKCF3aWxsVmFsaWRhdGUoKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIWlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQo
KSkgeworICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50TmFtZXMoKS5pbnZhbGlkRXZlbnQsIGZh
bHNlLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0
cnVlOworfQorCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlkaXR5
KGNvbnN0IFN0cmluZyYgZXJyb3IpCiB7CiAgICAgdmFsaWRpdHkoKS0+c2V0Q3VzdG9tRXJyb3JN
ZXNzYWdlKGVycm9yKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IDAy
NDMwZGEuLmY3NzIwNGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAt
MTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHNob3J0IHRhYkluZGV4KCkgY29u
c3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3Q7CisgICAgYm9vbCBj
aGVja1ZhbGlkaXR5KCk7CiAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShjb25zdCBTdHJpbmcm
KTsKIAogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCA1MWZiMzVmLi5jZGI4ZmRhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIk1hcHBl
ZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29u
dHJvbC5oIgorI2luY2x1ZGUgIlZhbGlkaXR5U3RhdGUuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JhbmRvbU51bWJlci5o
PgpAQCAtNTg4LDYgKzU4OSwyOCBAQCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBIVE1MRm9ybUVs
ZW1lbnQ6OmRlZmF1bHRCdXR0b24oKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCitib29sIEhU
TUxGb3JtRWxlbWVudDo6Y2hlY2tWYWxpZGl0eShWZWN0b3I8SFRNTEZvcm1Db250cm9sRWxlbWVu
dCo+KiB1bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMpCit7CisgICAgVmVjdG9yPEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQqPiBpbnZhbGlkQ29udHJvbHM7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZm9ybUVsZW1lbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQqIGNvbnRyb2wgPSBmb3JtRWxlbWVudHNbaV07CisgICAgICAgIGlmIChjb250cm9s
LT53aWxsVmFsaWRhdGUoKSAmJiAhY29udHJvbC0+dmFsaWRpdHkoKS0+dmFsaWQoKSkKKyAgICAg
ICAgICAgIGludmFsaWRDb250cm9scy5hcHBlbmQoY29udHJvbCk7CisgICAgfQorCisgICAgaWYg
KGludmFsaWRDb250cm9scy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
Zm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IGludmFsaWRDb250cm9scy5zaXplKCk7ICsrbikgewor
ICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBpbnZhbGlkQ29udHJvbCA9IGludmFsaWRD
b250cm9sc1tuXTsKKyAgICAgICAgaWYgKGludmFsaWRDb250cm9sLT5kaXNwYXRjaEV2ZW50KGV2
ZW50TmFtZXMoKS5pbnZhbGlkRXZlbnQsIGZhbHNlLCB0cnVlKSAmJiB1bmhhbmRsZWRJbnZhbGlk
Q29udHJvbHMpCisgICAgICAgICAgICB1bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMtPmFwcGVuZChp
bnZhbGlkQ29udHJvbCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVm
UHRyPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+IEhUTUxGb3JtRWxlbWVudDo6ZWxlbWVudEZvckFs
aWFzKGNvbnN0IEF0b21pY1N0cmluZyYgYWxpYXMpCiB7CiAgICAgaWYgKGFsaWFzLmlzRW1wdHko
KSB8fCAhbV9lbGVtZW50QWxpYXNlcykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAppbmRleCBhZmUxZmYw
Li5lY2M5OTNkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCkBAIC0xMDksNyArMTA5LDkgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0VGFyZ2V0KGNvbnN0IFN0cmluZyYpOwogCiAgICAgSFRNTEZvcm1D
b250cm9sRWxlbWVudCogZGVmYXVsdEJ1dHRvbigpIGNvbnN0OwotICAgIAorCisgICAgYm9vbCBj
aGVja1ZhbGlkaXR5KFZlY3RvcjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4qIHVuaGFuZGxlZElu
dmFsaWRDb250cm9scyA9IDApOworCiAgICAgUGFzc1JlZlB0cjxIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50PiBlbGVtZW50Rm9yQWxpYXMoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgdm9pZCBhZGRF
bGVtZW50QWxpYXMoSFRNTEZvcm1Db250cm9sRWxlbWVudCosIGNvbnN0IEF0b21pY1N0cmluZyYg
YWxpYXMpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbCBi
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsCmluZGV4IGYzYWNhODcuLmNkYTExZDIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsCkBAIC0zOSw1ICszOSw2IEBAIG1vZHVsZSBodG1s
IHsKICAgICAgICAgCiAgICAgICAgIFtDdXN0b21dIHZvaWQgc3VibWl0KCk7CiAgICAgICAgIHZv
aWQgcmVzZXQoKTsKKy8vICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgfTsK
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBlMTVjNmI1Li4wZWZkMmVjIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC01Niw2ICs1Niw3IEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIHVzZU1hcDsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgYm9vbGVhbiAgICAgICAgICAg
IGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZh
bGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
ZXJyb3IpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2VsZWN0KCk7CiAgICAgICAgIHZv
aWQgICAgICAgICAgICAgICBjbGljaygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKaW5k
ZXggMTc3ODk1ZS4uNTNmZTg0OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCkBAIC00
NSw2ICs0NSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZh
bGlkaXR5U3RhdGUgICB2YWxpZGl0eTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgYm9vbGVhbiAgICAgICAg
ICAgIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3Rv
bVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgZXJyb3IpOwogCiAgICAgICAgIC8vIE1vZGlmaWVkIGluIERPTSBMZXZlbCAyOgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCmluZGV4IDVkMjg1M2UuLjg1M2U4ZjUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKQEAgLTQ0LDYgKzQ0LDcgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICB2b2lkICAgICBzZWxlY3QoKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgYm9vbGVhbiAgY2hlY2tW
YWxpZGl0eSgpOwogICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVy
dFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIAogICAgICAg
IC8vIFdpbklFICYgRmlyZUZveCBleHRlbnNpb246CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGRkZDhjMDMu
LjgzMGM0MTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0yMDQ1LDYgKzIwNDUsMTYgQEAgdm9pZCBET01X
aW5kb3c6OnNldE9uY29udGV4dG1lbnUoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExp
c3RlbmVyKQogICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmNvbnRl
eHRtZW51RXZlbnQsIGV2ZW50TGlzdGVuZXIpOwogfQogCitFdmVudExpc3RlbmVyKiBET01XaW5k
b3c6Om9uaW52YWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldEF0dHJpYnV0ZUV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lcygpLmludmFsaWRFdmVudCk7Cit9CisKK3ZvaWQgRE9NV2luZG93Ojpz
ZXRPbmludmFsaWQoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyKQorewor
ICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmludmFsaWRFdmVudCwg
ZXZlbnRMaXN0ZW5lcik7Cit9CisKIHZvaWQgRE9NV2luZG93OjpjYXB0dXJlRXZlbnRzKCkKIHsK
ICAgICAvLyBOb3QgaW1wbGVtZW50ZWQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmggYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggMWM3MTIyMS4uYjEwNjJmMSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaApAQCAtMzc0LDYgKzM3NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdm9pZCBzZXRPbm1lc3NhZ2UoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAgICAgICAg
IEV2ZW50TGlzdGVuZXIqIG9uY29udGV4dG1lbnUoKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRP
bmNvbnRleHRtZW51KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworICAgICAgICBFdmVudExp
c3RlbmVyKiBvbmludmFsaWQoKSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXRPbmludmFsaWQoUGFz
c1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAKICAgICAgICAgdm9pZCBjYXB0dXJlRXZlbnRzKCk7
CiAgICAgICAgIHZvaWQgcmVsZWFzZUV2ZW50cygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA3YzYxNTIz
Li5lOWM2YWM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMjUwLDYgKzI1MCw3IEBAIG1vZHVsZSB3aW5k
b3cgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnVubG9hZDsKICAgICAgICAg
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb252b2x1bWVjaGFuZ2U7CiAgICAgICAgIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9ud2FpdGluZzsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25pbnZhbGlkOwogCiAgICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCB5ZXQuCiAgICAgICAg
IC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYWZ0ZXJwcmludDsKQEAgLTI1Nyw3ICsyNTgs
NiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25mb3JtY2hhbmdlOwogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZvcm1p
bnB1dDsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25oYXNoY2hhbmdlOwot
ICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7CiAgICAgICAgIC8v
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucG9wc3RhdGU7CiAgICAgICAgIC8vIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9ucmVhZHlzdGF0ZWNoYW5nZTsKICAgICAgICAgLy8gYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25yZWRvOw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35152</attachid>
            <date>2009-08-19 15:42:21 -0700</date>
            <delta_ts>2009-08-19 16:17:16 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-27452-20090820004218.patch</filename>
            <type>text/plain</type>
            <size>34019</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQ3NjFiLi5mNWEyODMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMDgt
MTkgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDUyCisgICAgICAgIFRlc3RzIGZvciBjaGVja1Zh
bGlkaXR5KCkgbWV0aG9kIGFuZCBpbnZhbGlkIGV2ZW50LCBmcm9tIEhUTUw1CisgICAgICAgIHNw
ZWNzOgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNkb20tZm9ybS1jaGVja3ZhbGlkaXR5CisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9p
bnZhbGlkLTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lu
dmFsaWQtMDAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDAy
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDIu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbnZhbGlkLTAwMy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbnZhbGlkLTAwNC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQuaHRtbDogQWRkZWQuCisKIDIwMDktMDgtMTkgIERh
biBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZl
IEh5YXR0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDEt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDEtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhYzMyNzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwMS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5
KCkgY29ycmVjdGx5IGZpcmVzIGFuIGludmFsaWQgZXZlbnQgb24gaW52YWxpZCBmb3JtIGNvbnRy
b2wgZWxlbWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisgIAorUEFTUyBJ
bnZhbGlkIGNvbnRyb2wKK1BBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKK1BBU1Mg
SW52YWxpZCBjb250cm9sCitQQVNTIHZbaV0uY2hlY2tWYWxpZGl0eSgpIGlzIGZhbHNlCitQQVNT
IEludmFsaWQgY29udHJvbAorUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAxLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjE4ODRmMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9pbnZhbGlkLTAwMS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8Zm9ybSBtZXRob2Q9Imdl
dCI+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZCBvbmludmFsaWQ9
InRlc3RQYXNzZWQoJ0ludmFsaWQgY29udHJvbCcpIi8+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0
eXBlPSJ0ZXh0IiBwYXR0ZXJuPSJMb3JlbSBpcHN1bSIgdmFsdWU9IkxvcmVtaXBzdW0iIG9uaW52
YWxpZD0idGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJykiLz4KKzx0ZXh0YXJlYSBuYW1lPSJ2
aWN0aW0iIHJlcXVpcmVkIG9uaW52YWxpZD0idGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJyki
PjwvdGV4dGFyZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgY29ycmVj
dGx5IGZpcmVzIGFuIGludmFsaWQgZXZlbnQgb24gaW52YWxpZCBmb3JtIGNvbnRyb2wgZWxlbWVu
dHMuIik7CisKK3YgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7Citmb3Ig
KGkgPSAwOyBpIDwgdi5sZW5ndGg7IGkrKykKKyAgICBzaG91bGRCZSgidltpXS5jaGVja1ZhbGlk
aXR5KCkiLCAiZmFsc2UiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2ludmFsaWQtMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lu
dmFsaWQtMDAyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jNzlhYjFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52
YWxpZC0wMDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdCBjaGVja3Mg
aWYgY2hlY2tWYWxpZGl0eSgpIGludm9rZWQgb24gYSBmb3JtIGNvbnRyb2wgY29ycmVjdGx5IGFz
a3MgaXRzIGVsZW1lbnRzIHRvIGZpcmUgYW4gaW52YWxpZCBldmVudC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKKyAgCitQQVNTIEludmFsaWQgY29udHJvbAorUEFTUyBJbnZhbGlk
IGNvbnRyb2wKK1BBU1MgSW52YWxpZCBjb250cm9sCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvaW52YWxpZC0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQt
MDAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBkMmExMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAyLmh0bWwK
QEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxmb3JtIG1ldGhvZD0iZ2V0IiBpZD0ic2FkX2Zvcm0iPgorPGlu
cHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcmVxdWlyZWQgb25pbnZhbGlkPSJ0ZXN0UGFz
c2VkKCdJbnZhbGlkIGNvbnRyb2wnKSIvPgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4
dCIgcGF0dGVybj0iTG9yZW0gaXBzdW0iIHZhbHVlPSJMb3JlbWlwc3VtIiBvbmludmFsaWQ9InRl
c3RQYXNzZWQoJ0ludmFsaWQgY29udHJvbCcpIi8+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIiBy
ZXF1aXJlZCBvbmludmFsaWQ9InRlc3RQYXNzZWQoJ0ludmFsaWQgY29udHJvbCcpIj48L3RleHRh
cmVhPgorPC9mb3JtPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIGludm9rZWQgb24gYSBm
b3JtIGNvbnRyb2wgY29ycmVjdGx5IGFza3MgaXRzIGVsZW1lbnRzIHRvIGZpcmUgYW4gaW52YWxp
ZCBldmVudC4iKTsKKworaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYWRfZm9ybSIpLmNo
ZWNrVmFsaWRpdHkoKSkKKyAgICB0ZXN0RmFpbGVkKCdjaGVja1ZhbGlkaXR5IHNob3VsZCBoYXZl
IHJldHVybmVkIGZhbHNlJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9pbnZhbGlkLTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9p
bnZhbGlkLTAwMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNzJjMmI4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lu
dmFsaWQtMDAzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3QgY2hlY2tz
IGlmIHRoZSBpbnZhbGlkIGV2ZW50IGlzIGNvcnJlY3RseSBoYW5kbGVkIGJ5IGRvY3VtZW50Lm9u
aW52YWxpZCBoYW5kbGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworICAKK1BB
U1MgSGFuZGxlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwMy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmZjI1MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwMy5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
Zm9ybSBtZXRob2Q9ImdldCIgaWQ9InNhZF9mb3JtIj4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5
cGU9InRleHQiIHJlcXVpcmVkLz4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHBh
dHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIvPgorPHRleHRhcmVhIG5hbWU9
InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT4KKzwvZm9ybT4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIHRoZSBp
bnZhbGlkIGV2ZW50IGlzIGNvcnJlY3RseSBoYW5kbGVkIGJ5IGRvY3VtZW50Lm9uaW52YWxpZCBo
YW5kbGVyLiIpOworCitkb2N1bWVudC5vbmludmFsaWQgPSB0ZXN0UGFzc2VkKCdIYW5kbGVkJyk7
CisKK2lmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2FkX2Zvcm0iKS5jaGVja1ZhbGlkaXR5
KCkpCisgICAgdGVzdEZhaWxlZCgnY2hlY2tWYWxpZGl0eSBzaG91bGQgaGF2ZSByZXR1cm5lZCBm
YWxzZScpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxp
ZC0wMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkOGVhODkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwNC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhpcyB0ZXN0IGNoZWNrcyBpZiB0aGUgaW52
YWxpZCBldmVudCBpcyBjb3JyZWN0bHkgaGFuZGxlZCBieSB3aW5kb3cub25pbnZhbGlkIGhhbmRs
ZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisgIAorUEFTUyBIYW5kbGVkCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDA0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOThjNmVjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2ludmFsaWQtMDA0Lmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxmb3JtIG1ldGhvZD0i
Z2V0IiBpZD0ic2FkX2Zvcm0iPgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcmVx
dWlyZWQvPgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcGF0dGVybj0iTG9yZW0g
aXBzdW0iIHZhbHVlPSJMb3JlbWlwc3VtIi8+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIiByZXF1
aXJlZD48L3RleHRhcmVhPgorPC9mb3JtPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgdGhlIGludmFsaWQgZXZlbnQg
aXMgY29ycmVjdGx5IGhhbmRsZWQgYnkgd2luZG93Lm9uaW52YWxpZCBoYW5kbGVyLiIpOworCit3
aW5kb3cub25pbnZhbGlkID0gdGVzdFBhc3NlZCgnSGFuZGxlZCcpOworCitpZiAoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInNhZF9mb3JtIikuY2hlY2tWYWxpZGl0eSgpKQorICAgIHRlc3RGYWls
ZWQoJ2NoZWNrVmFsaWRpdHkgc2hvdWxkIGhhdmUgcmV0dXJuZWQgZmFsc2UnKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDA1LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDA1LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTYyMzVhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBjaGVja3MgaWYgdGhlIGludmFsaWQgZXZlbnQgaXMgY29y
cmVjdGx5IGhhbmRsZWQgb25seSBieSBsb2NhbCBoYW5kbGVyLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworICAKK0ZBSUwgSGFuZGxlZAorRkFJTCBIYW5kbGVkCitQQVNTIEludmFs
aWQgY29udHJvbAorUEFTUyBJbnZhbGlkIGNvbnRyb2wKK1BBU1MgSW52YWxpZCBjb250cm9sCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDA1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNDc1OGQ5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2ludmFsaWQtMDA1Lmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxmb3JtIG1ldGhvZD0i
Z2V0IiBpZD0ic2FkX2Zvcm0iPgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcmVx
dWlyZWQgb25pbnZhbGlkPSJ0ZXN0UGFzc2VkKCdJbnZhbGlkIGNvbnRyb2wnKSIvPgorPGlucHV0
IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcGF0dGVybj0iTG9yZW0gaXBzdW0iIHZhbHVlPSJM
b3JlbWlwc3VtIiBvbmludmFsaWQ9InRlc3RQYXNzZWQoJ0ludmFsaWQgY29udHJvbCcpIi8+Cis8
dGV4dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZCBvbmludmFsaWQ9InRlc3RQYXNzZWQoJ0lu
dmFsaWQgY29udHJvbCcpIj48L3RleHRhcmVhPgorPC9mb3JtPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgdGhlIGlu
dmFsaWQgZXZlbnQgaXMgY29ycmVjdGx5IGhhbmRsZWQgb25seSBieSBsb2NhbCBoYW5kbGVyLiIp
OworCit3aW5kb3cub25pbnZhbGlkID0gdGVzdEZhaWxlZCgnSGFuZGxlZCcpOworZG9jdW1lbnQu
b25pbnZhbGlkID0gdGVzdEZhaWxlZCgnSGFuZGxlZCcpOworCitpZiAoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInNhZF9mb3JtIikuY2hlY2tWYWxpZGl0eSgpKQorICAgIHRlc3RGYWlsZWQoJ2No
ZWNrVmFsaWRpdHkgc2hvdWxkIGhhdmUgcmV0dXJuZWQgZmFsc2UnKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU4M2Q2YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgp
IHJldHVybnMgY29ycmVjdGx5IGEgdHJ1ZSAobWVhbmluZyBubyBlcnJvcikgcmVzdWx0LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworIGxvcmVtIGlwc3VtICAKK1BBU1MgdltpXS5j
aGVja1ZhbGlkaXR5KCkgaXMgdHJ1ZQorUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyB0cnVl
CitQQVNTIHZbaV0uY2hlY2tWYWxpZGl0eSgpIGlzIHRydWUKK1BBU1MgdltpXS5jaGVja1ZhbGlk
aXR5KCkgaXMgdHJ1ZQorUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyB0cnVlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjlmMzYyZmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAxLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxmb3Jt
IG1ldGhvZD0iZ2V0Ij4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8aW5w
dXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0ibG9yZW0gaXBzdW0iLz4KKzxidXR0
b24gbmFtZT0idmljdGltIj5sb3JlbSBpcHN1bTwvYnV0dG9uPgorPHNlbGVjdCBuYW1lPSJ2aWN0
aW0iPjwvc2VsZWN0PgorPHRleHRhcmVhIG5hbWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KKzwvZm9y
bT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlz
IHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIHRydWUg
KG1lYW5pbmcgbm8gZXJyb3IpIHJlc3VsdC4iKTsKKwordiA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlOYW1lKCJ2aWN0aW0iKTsKK2ZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgIHNo
b3VsZEJlKCJ2W2ldLmNoZWNrVmFsaWRpdHkoKSIsICJ0cnVlIik7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NTc5NDQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEzIEBACitUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRpdHkoKSBy
ZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSByZXN1bHQgb24gaW52YWxp
ZCBlbGVtZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyAgCitQQVNTIHZb
aV0uY2hlY2tWYWxpZGl0eSgpIGlzIGZhbHNlCitQQVNTIHZbaV0uY2hlY2tWYWxpZGl0eSgpIGlz
IGZhbHNlCitQQVNTIHZbaV0uY2hlY2tWYWxpZGl0eSgpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjI4NzJmYWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2NoZWNrVmFsaWRpdHktMDAyLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxmb3JtIG1ldGhv
ZD0iZ2V0Ij4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHJlcXVpcmVkLz4KKzxp
bnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHBhdHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1
ZT0iTG9yZW1pcHN1bSIvPgorPHRleHRhcmVhIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0
YXJlYT4KKzwvZm9ybT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRpdHkoKSByZXR1cm5zIGNvcnJl
Y3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSByZXN1bHQgb24gaW52YWxpZCBlbGVtZW50cy4i
KTsKKwordiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKK2ZvciAoaSA9
IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgIHNob3VsZEJlKCJ2W2ldLmNoZWNrVmFsaWRpdHko
KSIsICJmYWxzZSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9j
aGVja1ZhbGlkaXR5LTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2No
ZWNrVmFsaWRpdHktMDAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wNGY2NWI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9jaGVja1ZhbGlkaXR5LTAwMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhpcyB0
ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSB0cnVlICht
ZWFuaW5nIG5vIGVycm9yKSByZXN1bHQgb24gZm9ybSBlbGVtZW50LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworIGxvcmVtIGlwc3VtICAKK1BBU1MgZi5jaGVja1ZhbGlkaXR5KCkg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjQyZThmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMy5odG1sCkBAIC0wLDAg
KzEsMjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8Zm9ybSBtZXRob2Q9ImdldCIgaWQ9ImhhcHB5X2Zvcm0iPgorPGZpZWxkc2V0
IG5hbWU9InZpY3RpbSI+PC9maWVsZHNldD4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRl
eHQiIHZhbHVlPSJsb3JlbSBpcHN1bSIvPgorPGJ1dHRvbiBuYW1lPSJ2aWN0aW0iPmxvcmVtIGlw
c3VtPC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFyZWEg
bmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPC9mb3JtPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxp
ZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgdHJ1ZSAobWVhbmluZyBubyBlcnJvcikgcmVzdWx0
IG9uIGZvcm0gZWxlbWVudC4iKTsKKworZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoYXBw
eV9mb3JtIik7CitzaG91bGRCZSgiZi5jaGVja1ZhbGlkaXR5KCkiLCAidHJ1ZSIpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDA0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWE2NWRjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1Zh
bGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSBmYWxzZSAobWVhbmluZyB0aGVyZSdzIGFuIGlu
dmFsaWQgZWxlbWVudCkgcmVzdWx0IG9uIGZvcm0gZWxlbWVudC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKKyBsb3JlbSBpcHN1bSAgCitQQVNTIGYuY2hlY2tWYWxpZGl0eSgpIGlz
IGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyYTc0YTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDA0Lmh0bWwKQEAgLTAsMCAr
MSwyNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxmb3JtIG1ldGhvZD0iZ2V0IiBpZD0ic2FkX2Zvcm0iPgorPGZpZWxkc2V0IG5h
bWU9InZpY3RpbSI+PC9maWVsZHNldD4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQi
IHZhbHVlPSJpbnZhbGlkIiBwYXR0ZXJuPSJzb21ldGhpbmciLz4KKzxidXR0b24gbmFtZT0idmlj
dGltIj5sb3JlbSBpcHN1bTwvYnV0dG9uPgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iPjwvc2VsZWN0
PgorPHRleHRhcmVhIG5hbWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KKzwvZm9ybT4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tz
IGlmIGNoZWNrVmFsaWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIHRo
ZXJlJ3MgYW4gaW52YWxpZCBlbGVtZW50KSByZXN1bHQgb24gZm9ybSBlbGVtZW50LiIpOworCitm
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhZF9mb3JtIik7CitzaG91bGRCZSgiZi5jaGVj
a1ZhbGlkaXR5KCkiLCAiZmFsc2UiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM2NzgzMC4uMGI0MGIwOSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
MiBAQAorMjAwOS0wOC0xOSAgTWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2Rlc2ltQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0NTIKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIGNoZWNrVmFsaWRpdHkoKSBtZXRob2QgYW5kIGludmFsaWQgZXZlbnQsIGZy
b20gSFRNTDUKKyAgICAgICAgc3BlY3M6CisgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS1mb3JtLWNoZWNrdmFsaWRpdHkKKworICAg
ICAgICBUZXN0czogZmFzdC9ldmVudHMvaW52YWxpZC0wMDEuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9ldmVudHMvaW52YWxpZC0wMDIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMv
aW52YWxpZC0wMDMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvaW52YWxpZC0wMDQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvaW52YWxpZC0wMDUuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
Zm9ybXMvY2hlY2tWYWxpZGl0eS0wMDMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9j
aGVja1ZhbGlkaXR5LTAwNC5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBvbmlu
dmFsaWQgZXZlbnQgaGFuZGxlcgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDogZGl0dG8KKyAg
ICAgICAgKiBkb20vRXZlbnROYW1lcy5oOiBhZGRlZCBpbnZhbGlkIGV2ZW50CisgICAgICAgICog
ZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6b25pbnZhbGlkKTogZGl0dG8K
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldE9uaW52YWxpZCk6IGRpdHRvCisgICAgICAgICog
ZG9tL05vZGUuaDogZGl0dG8KKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjog
b25pbnZhbGlkIGF0dHJpYnV0ZQorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRs
OiBhZGRlZCBjaGVja1ZhbGlkaXR5KCkgbWV0aG9kCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUpOiBwYXJzZXMgb25pbnZhbGlkCisgICAgICAgICogaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmlkbDogYWRkZWQgY2hlY2tWYWxpZGl0eSgpIG1ldGhvZAorICAgICAgICAqIGh0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50OjpjaGVja1ZhbGlkaXR5KTogY2hlY2tWYWxpZGl0eSgpCisgICAgICAgIGltcGxlbWVu
dGF0aW9uCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1F
bGVtZW50OjpjaGVja1ZhbGlkaXR5KTogY2hlY2tWYWxpZGl0eSgpIGltcGxlbWVudGF0aW9uCisg
ICAgICAgIGZvciBmb3JtIGVsZW1lbnRzCisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQu
aDogY2hlY2tWYWxpZGl0eSgpIGRlZmluaXRpb24KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxl
bWVudC5pZGw6IGFkZGVkIGNoZWNrVmFsaWRpdHkoKSBtZXRob2QKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuaWRsOiBhZGRlZCBjaGVja1ZhbGlkaXR5KCkgbWV0aG9kCisgICAgICAg
ICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGw6IGFkZGVkIGNoZWNrVmFsaWRpdHkoKSBtZXRo
b2QKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsOiBhZGRlZCBjaGVja1Zh
bGlkaXR5KCkgbWV0aG9kCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93OjpvbmludmFsaWQpOiBvbmludmFsaWQgZXZlbnQgaGFuZGxlcgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzZXRPbmludmFsaWQpOiBkaXR0bworICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93Lmg6IGRpdHRvCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRs
OiBkaXR0bworCiAyMDA5LTA4LTE5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCA0NDk2NmNjLi5h
Y2JhMDA5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0yNjQsNiArMjY0LDcgQEAgbW9kdWxlIGNvcmUgewogICAg
ICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CiAgICAgICAg
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKICAgICAgICAgYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmlucHV0OworICAgICAgICBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW52YWxpZDsKICAgICAgICAgYXR0cmlidXRl
IFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmtleWRvd247CiAgICAgICAgIGF0dHJpYnV0ZSBb
RG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXlwcmVzczsKICAgICAgICAgYXR0cmlidXRlIFtE
b250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmtleXVwOwpAQCAtMjg1LDcgKzI4Niw2IEBAIG1vZHVs
ZSBjb3JlIHsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmVuZGVkOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
Zm9ybWNoYW5nZTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbmZvcm1pbnB1dDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0
ZW5lciBvbmludmFsaWQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlz
dGVuZXIgb25sb2FkZWRkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVu
dExpc3RlbmVyIG9ubG9hZGVkbWV0YWRhdGE7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVu
dW1dIEV2ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9F
bGVtZW50LmlkbCBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IDE2YWFjODQuLmNiYjM2
ZDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaWRsCkBAIC0xNDksNiArMTQ5LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBh
dHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CiAgICAgICAgIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKICAgICAgICAgYXR0cmlidXRl
IFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmlucHV0OworICAgICAgICBhdHRyaWJ1dGUgW0Rv
bnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW52YWxpZDsKICAgICAgICAgYXR0cmlidXRlIFtEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbmtleWRvd247CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVu
dW1dIEV2ZW50TGlzdGVuZXIgb25rZXlwcmVzczsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51
bV0gRXZlbnRMaXN0ZW5lciBvbmtleXVwOwpAQCAtMTcwLDcgKzE3MSw2IEBAIG1vZHVsZSBjb3Jl
IHsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVuZGVk
OwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9ybWNo
YW5nZTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZv
cm1pbnB1dDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBv
bmludmFsaWQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25sb2FkZWRkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9ubG9hZGVkbWV0YWRhdGE7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmggYi9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKaW5kZXggZTBiOGU3YS4uNzdmZjg1MyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaApAQCAtNTcsNiArNTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFj
cm8oZm9jdXMpIFwKICAgICBtYWNybyhoYXNoY2hhbmdlKSBcCiAgICAgbWFjcm8oaW5wdXQpIFwK
KyAgICBtYWNybyhpbnZhbGlkKSBcCiAgICAgbWFjcm8oa2V5ZG93bikgXAogICAgIG1hY3JvKGtl
eXByZXNzKSBcCiAgICAgbWFjcm8oa2V5dXApIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL05v
ZGUuY3BwIGIvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYjA0YzkzMy4uYjQ2MDgxNiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTMwNjgsNiArMzA2OCwxNiBAQCB2b2lkIE5vZGU6OnNldE9uaW5wdXQoUGFzc1JlZlB0cjxF
dmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyKQogICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIGV2ZW50TGlzdGVuZXIpOwogfQogCitFdmVudExp
c3RlbmVyKiBOb2RlOjpvbmludmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1
dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5pbnZhbGlkRXZlbnQpOworfQorCit2b2lkIE5v
ZGU6OnNldE9uaW52YWxpZChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIp
Cit7CisgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuaW52YWxpZEV2
ZW50LCBldmVudExpc3RlbmVyKTsKK30KKwogRXZlbnRMaXN0ZW5lciogTm9kZTo6b25rZXlkb3du
KCkgY29uc3QKIHsKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5h
bWVzKCkua2V5ZG93bkV2ZW50KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL05vZGUuaCBiL1dl
YkNvcmUvZG9tL05vZGUuaAppbmRleCBhNTU3Zjk0Li45NDY0ODYzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2RvbS9Ob2RlLmgKKysrIGIvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC01NzMsOCArNTczLDI0
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9uY29udGV4dG1lbnUoUGFzc1JlZlB0cjxFdmVudExp
c3RlbmVyPik7CiAgICAgRXZlbnRMaXN0ZW5lciogb25kYmxjbGljaygpIGNvbnN0OwogICAgIHZv
aWQgc2V0T25kYmxjbGljayhQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyAgICBFdmVudExp
c3RlbmVyKiBvbmRyYWdlbnRlcigpIGNvbnN0OworICAgIHZvaWQgc2V0T25kcmFnZW50ZXIoUGFz
c1JlZlB0cjxFdmVudExpc3RlbmVyPik7CisgICAgRXZlbnRMaXN0ZW5lciogb25kcmFnb3Zlcigp
IGNvbnN0OworICAgIHZvaWQgc2V0T25kcmFnb3ZlcihQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+
KTsKKyAgICBFdmVudExpc3RlbmVyKiBvbmRyYWdsZWF2ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0
T25kcmFnbGVhdmUoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CisgICAgRXZlbnRMaXN0ZW5l
ciogb25kcm9wKCkgY29uc3Q7CisgICAgdm9pZCBzZXRPbmRyb3AoUGFzc1JlZlB0cjxFdmVudExp
c3RlbmVyPik7CisgICAgRXZlbnRMaXN0ZW5lciogb25kcmFnc3RhcnQoKSBjb25zdDsKKyAgICB2
b2lkIHNldE9uZHJhZ3N0YXJ0KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworICAgIEV2ZW50
TGlzdGVuZXIqIG9uZHJhZygpIGNvbnN0OworICAgIHZvaWQgc2V0T25kcmFnKFBhc3NSZWZQdHI8
RXZlbnRMaXN0ZW5lcj4pOworICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJhZ2VuZCgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0T25kcmFnZW5kKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAgIEV2
ZW50TGlzdGVuZXIqIG9uaW5wdXQoKSBjb25zdDsKICAgICB2b2lkIHNldE9uaW5wdXQoUGFzc1Jl
ZlB0cjxFdmVudExpc3RlbmVyPik7CisgICAgRXZlbnRMaXN0ZW5lciogb25pbnZhbGlkKCkgY29u
c3Q7CisgICAgdm9pZCBzZXRPbmludmFsaWQoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAg
ICAgRXZlbnRMaXN0ZW5lciogb25rZXlkb3duKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPbmtleWRv
d24oUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAgICAgRXZlbnRMaXN0ZW5lciogb25rZXlw
cmVzcygpIGNvbnN0OwpAQCAtNTkzLDIwICs2MDksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRP
bm1vdXNldXAoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAgICAgRXZlbnRMaXN0ZW5lciog
b25tb3VzZXdoZWVsKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPbm1vdXNld2hlZWwoUGFzc1JlZlB0
cjxFdmVudExpc3RlbmVyPik7Ci0gICAgRXZlbnRMaXN0ZW5lciogb25kcmFnZW50ZXIoKSBjb25z
dDsKLSAgICB2b2lkIHNldE9uZHJhZ2VudGVyKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwot
ICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJhZ292ZXIoKSBjb25zdDsKLSAgICB2b2lkIHNldE9uZHJh
Z292ZXIoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7Ci0gICAgRXZlbnRMaXN0ZW5lciogb25k
cmFnbGVhdmUoKSBjb25zdDsKLSAgICB2b2lkIHNldE9uZHJhZ2xlYXZlKFBhc3NSZWZQdHI8RXZl
bnRMaXN0ZW5lcj4pOwotICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJvcCgpIGNvbnN0OwotICAgIHZv
aWQgc2V0T25kcm9wKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwotICAgIEV2ZW50TGlzdGVu
ZXIqIG9uZHJhZ3N0YXJ0KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRPbmRyYWdzdGFydChQYXNzUmVm
UHRyPEV2ZW50TGlzdGVuZXI+KTsKLSAgICBFdmVudExpc3RlbmVyKiBvbmRyYWcoKSBjb25zdDsK
LSAgICB2b2lkIHNldE9uZHJhZyhQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKLSAgICBFdmVu
dExpc3RlbmVyKiBvbmRyYWdlbmQoKSBjb25zdDsKLSAgICB2b2lkIHNldE9uZHJhZ2VuZChQYXNz
UmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAgICBFdmVudExpc3RlbmVyKiBvbnNjcm9sbCgpIGNv
bnN0OwogICAgIHZvaWQgc2V0T25zY3JvbGwoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAg
ICAgRXZlbnRMaXN0ZW5lciogb25zZWxlY3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluCmluZGV4IDFjYWY0NzMuLjAzNWM3ZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbgpAQCAtMTQ3LDYgKzE0Nyw3IEBAIG9uZXJyb3IKIG9uZm9jdXMKIG9uaGFzaGNoYW5nZQog
b25pbnB1dAorb25pbnZhbGlkCiBvbmtleWRvd24KIG9ua2V5cHJlc3MKIG9ua2V5dXAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuaWRsCmluZGV4IDVmZDAwNzUuLmRlM2U1MDQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmlkbApAQCAtMzYsNiArMzYsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdHlwZTsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyAgICAgICAgICAgIHZhbHVlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAg
ICAgICAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0
eSgpOwogICAgICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgICAgICB2b2lkIGNsaWNr
KCk7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGMwNDA5YzguLjI5NjQzODEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcApAQCAtMjI0LDYgKzIyNCw4IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSAqYXR0cikKICAgICAgICAgc2V0QXR0cmli
dXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkud2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50LCBj
cmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKICAgICB9IGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBvbmlucHV0QXR0cikgewogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVu
dExpc3RlbmVyKGV2ZW50TmFtZXMoKS5pbnB1dEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExp
c3RlbmVyKHRoaXMsIGF0dHIpKTsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmlu
dmFsaWRBdHRyKSB7CisgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1l
cygpLmludmFsaWRFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRy
KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxl
bWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKaW5kZXggNGQx
MTMwNC4uY2E4NTYzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbApAQCAtMjks
NiArMjksNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxp
ZGl0eVN0YXRlICAgdmFsaWRpdHk7CiAjZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIGJvb2xlYW4gIGNoZWNrVmFs
aWRpdHkoKTsKICAgICAgICAgdm9pZCAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRV
bmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAgICAgfTsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDk5YTg0YjEuLmMzZTI2
NjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTI2Myw2ICsy
NjMsMTkgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsVmFsaWRhdGUoKSBjb25z
dAogICAgIHJldHVybiBmb3JtKCkgJiYgIW5hbWUoKS5pc0VtcHR5KCkgJiYgIWRpc2FibGVkKCkg
JiYgIWlzUmVhZE9ubHlGb3JtQ29udHJvbCgpOwogfQogCitib29sIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ6OmNoZWNrVmFsaWRpdHkoKQoreworICAgIGlmICghd2lsbFZhbGlkYXRlKCkpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCkp
IHsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudE5hbWVzKCkuaW52YWxpZEV2ZW50LCBmYWxz
ZSwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRDdXN0b21WYWxpZGl0eShj
b25zdCBTdHJpbmcmIGVycm9yKQogewogICAgIHZhbGlkaXR5KCktPnNldEN1c3RvbUVycm9yTWVz
c2FnZShlcnJvcik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCAwMjQz
MGRhLi5mNzcyMDRjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTEw
Miw2ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBzaG9ydCB0YWJJbmRleCgpIGNvbnN0
OwogCiAgICAgdmlydHVhbCBib29sIHdpbGxWYWxpZGF0ZSgpIGNvbnN0OworICAgIGJvb2wgY2hl
Y2tWYWxpZGl0eSgpOwogICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoY29uc3QgU3RyaW5nJik7
CiAKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwIGIvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggNTFmYjM1Zi4uM2JiNGFlMyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJNYXBwZWRB
dHRyaWJ1dGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRy
b2wuaCIKKyNpbmNsdWRlICJWYWxpZGl0eVN0YXRlLmgiCiAjaW5jbHVkZSA8bGltaXRzPgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SYW5kb21OdW1iZXIuaD4K
QEAgLTU4OCw2ICs1ODksMjkgQEAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogSFRNTEZvcm1FbGVt
ZW50OjpkZWZhdWx0QnV0dG9uKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAorYm9vbCBIVE1M
Rm9ybUVsZW1lbnQ6OmNoZWNrVmFsaWRpdHkoVmVjdG9yPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQq
PiogdW5oYW5kbGVkSW52YWxpZENvbnRyb2xzKQoreworICAgIFZlY3RvcjxIVE1MRm9ybUNvbnRy
b2xFbGVtZW50Kj4gaW52YWxpZENvbnRyb2xzOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGZvcm1FbGVtZW50cy5zaXplKCk7ICsraSkgeworICAgICAgICBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50KiBjb250cm9sID0gZm9ybUVsZW1lbnRzW2ldOworICAgICAgICBpZiAoY29udHJvbC0+
d2lsbFZhbGlkYXRlKCkgJiYgIWNvbnRyb2wtPnZhbGlkaXR5KCktPnZhbGlkKCkpCisgICAgICAg
ICAgICBpbnZhbGlkQ29udHJvbHMuYXBwZW5kKGNvbnRyb2wpOworICAgIH0KKworICAgIGlmIChp
bnZhbGlkQ29udHJvbHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGZv
ciAodW5zaWduZWQgbiA9IDA7IG4gPCBpbnZhbGlkQ29udHJvbHMuc2l6ZSgpOyArK24pIHsKKyAg
ICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogaW52YWxpZENvbnRyb2wgPSBpbnZhbGlkQ29u
dHJvbHNbbl07CisgICAgICAgIGJvb2wgZXZlbnRDYW5jZWxlZCA9IGludmFsaWRDb250cm9sLT5k
aXNwYXRjaEV2ZW50KGV2ZW50TmFtZXMoKS5pbnZhbGlkRXZlbnQsIGZhbHNlLCB0cnVlKTsKKyAg
ICAgICAgaWYgKGV2ZW50Q2FuY2VsZWQgJiYgdW5oYW5kbGVkSW52YWxpZENvbnRyb2xzKQorICAg
ICAgICAgICAgdW5oYW5kbGVkSW52YWxpZENvbnRyb2xzLT5hcHBlbmQoaW52YWxpZENvbnRyb2wp
OworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0cjxIVE1MRm9ybUNv
bnRyb2xFbGVtZW50PiBIVE1MRm9ybUVsZW1lbnQ6OmVsZW1lbnRGb3JBbGlhcyhjb25zdCBBdG9t
aWNTdHJpbmcmIGFsaWFzKQogewogICAgIGlmIChhbGlhcy5pc0VtcHR5KCkgfHwgIW1fZWxlbWVu
dEFsaWFzZXMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmggYi9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5kZXggYWZlMWZmMC4uZWNjOTkzZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMTA5LDcgKzEwOSw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFRhcmdldChjb25zdCBTdHJpbmcmKTsKIAogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQq
IGRlZmF1bHRCdXR0b24oKSBjb25zdDsKLSAgICAKKworICAgIGJvb2wgY2hlY2tWYWxpZGl0eShW
ZWN0b3I8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KiB1bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMg
PSAwKTsKKwogICAgIFBhc3NSZWZQdHI8SFRNTEZvcm1Db250cm9sRWxlbWVudD4gZWxlbWVudEZv
ckFsaWFzKGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIHZvaWQgYWRkRWxlbWVudEFsaWFzKEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqLCBjb25zdCBBdG9taWNTdHJpbmcmIGFsaWFzKTsKIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1FbGVtZW50LmlkbAppbmRleCBmM2FjYTg3Li4yNmU3MzNkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmlkbApAQCAtMzksNSArMzksNiBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIAog
ICAgICAgICBbQ3VzdG9tXSB2b2lkIHN1Ym1pdCgpOwogICAgICAgICB2b2lkIHJlc2V0KCk7Cisg
ICAgICAgIGJvb2xlYW4gIGNoZWNrVmFsaWRpdHkoKTsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaWRsCmluZGV4IGUxNWM2YjUuLjBlZmQyZWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5pZGwKQEAgLTU2LDYgKzU2LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdXNlTWFwOwog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAg
d2lsbFZhbGlkYXRlOworICAgICAgICBib29sZWFuICAgICAgICAgICAgY2hlY2tWYWxpZGl0eSgp
OwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZl
cnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAgICAgICAg
IHZvaWQgICAgICAgICAgICAgICBzZWxlY3QoKTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAg
IGNsaWNrKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRs
IGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAppbmRleCAxNzc4OTVlLi41M2Zl
ODQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQ1LDYgKzQ1LDcgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZh
bGlkaXR5OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAg
ICAgd2lsbFZhbGlkYXRlOworICAgICAgICBib29sZWFuICAgICAgICAgICAgY2hlY2tWYWxpZGl0
eSgpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0Nv
bnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAKICAg
ICAgICAgLy8gTW9kaWZpZWQgaW4gRE9NIExldmVsIDI6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5pZGwKaW5kZXggNWQyODUzZS4uODUzZThmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmlkbApAQCAtNDQsNiArNDQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZvaWQg
ICAgIHNlbGVjdCgpOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAg
ICAgd2lsbFZhbGlkYXRlOworICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CiAgICAg
ICAgIHZvaWQgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogCiAgICAgICAgLy8gV2luSUUgJiBGaXJl
Rm94IGV4dGVuc2lvbjoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZGRkOGMwMy4uODMwYzQxNSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKQEAgLTIwNDUsNiArMjA0NSwxNiBAQCB2b2lkIERPTVdpbmRvdzo6c2V0T25jb250
ZXh0bWVudShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIpCiAgICAgc2V0
QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuY29udGV4dG1lbnVFdmVudCwgZXZl
bnRMaXN0ZW5lcik7CiB9CiAKK0V2ZW50TGlzdGVuZXIqIERPTVdpbmRvdzo6b25pbnZhbGlkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVz
KCkuaW52YWxpZEV2ZW50KTsKK30KKwordm9pZCBET01XaW5kb3c6OnNldE9uaW52YWxpZChQYXNz
UmVmUHRyPEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIpCit7CisgICAgc2V0QXR0cmlidXRl
RXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuaW52YWxpZEV2ZW50LCBldmVudExpc3RlbmVyKTsK
K30KKwogdm9pZCBET01XaW5kb3c6OmNhcHR1cmVFdmVudHMoKQogewogICAgIC8vIE5vdCBpbXBs
ZW1lbnRlZC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaAppbmRleCAxYzcxMjIxLi5iMTA2MmYxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0z
NzQsNiArMzc0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldE9ubWVz
c2FnZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAgICAgICAgRXZlbnRMaXN0ZW5lciog
b25jb250ZXh0bWVudSgpIGNvbnN0OwogICAgICAgICB2b2lkIHNldE9uY29udGV4dG1lbnUoUGFz
c1JlZlB0cjxFdmVudExpc3RlbmVyPik7CisgICAgICAgIEV2ZW50TGlzdGVuZXIqIG9uaW52YWxp
ZCgpIGNvbnN0OworICAgICAgICB2b2lkIHNldE9uaW52YWxpZChQYXNzUmVmUHRyPEV2ZW50TGlz
dGVuZXI+KTsKIAogICAgICAgICB2b2lkIGNhcHR1cmVFdmVudHMoKTsKICAgICAgICAgdm9pZCBy
ZWxlYXNlRXZlbnRzKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBi
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDdjNjE1MjMuLjZlNTIwZTMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCkBAIC0yMTYsNiArMjE2LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExp
c3RlbmVyIG9uaGFzaGNoYW5nZTsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25p
bnB1dDsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25pbnZhbGlkOwogICAgICAg
ICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmtleWRvd247CiAgICAgICAgIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9ua2V5cHJlc3M7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9ua2V5dXA7CkBAIC0yNTcsNyArMjU4LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIC8v
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZm9ybWNoYW5nZTsKICAgICAgICAgLy8gYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25mb3JtaW5wdXQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9uaGFzaGNoYW5nZTsKLSAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25pbnZhbGlkOwogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnBvcHN0
YXRlOwogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlYWR5c3RhdGVjaGFu
Z2U7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVkbzs=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35157</attachid>
            <date>2009-08-19 16:17:24 -0700</date>
            <delta_ts>2009-08-21 14:56:55 -0700</delta_ts>
            <desc>Patch v1 with updated layout tests</desc>
            <filename>bug-27452-20090820011721.patch</filename>
            <type>text/plain</type>
            <size>36814</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQ3NjFiLi44NjJiMDg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMDktMDgt
MTkgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDUyCisgICAgICAgIFRlc3RzIGZvciBjaGVja1Zh
bGlkaXR5KCkgbWV0aG9kIGFuZCBpbnZhbGlkIGV2ZW50LCBmcm9tIEhUTUw1CisgICAgICAgIHNw
ZWNzOgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNkb20tZm9ybS1jaGVja3ZhbGlkaXR5CisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9p
bnZhbGlkLTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lu
dmFsaWQtMDAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDAy
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDIu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbnZhbGlkLTAwMy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbnZhbGlkLTAwNC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9t
L3Jlc291cmNlcy9kb21MaXN0RW51bWVyYXRpb24uanM6CisKIDIwMDktMDgtMTkgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNWYwNThkNS4uYTAwYjkzMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CkBAIC0xNzM0LDYgKzE3MzQsNyBAQCB3aW5kb3cub25lcnJvciBbbnVsbF0KIHdp
bmRvdy5vbmZvY3VzIFtudWxsXQogd2luZG93Lm9uaGFzaGNoYW5nZSBbbnVsbF0KIHdpbmRvdy5v
bmlucHV0IFtudWxsXQord2luZG93Lm9uaW52YWxpZCBbbnVsbF0KIHdpbmRvdy5vbmtleWRvd24g
W251bGxdCiB3aW5kb3cub25rZXlwcmVzcyBbbnVsbF0KIHdpbmRvdy5vbmtleXVwIFtudWxsXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBlY3Rl
ZC50eHQKaW5kZXggYmI5YWRmYS4uMjc5OWM4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0zMiw3ICszMiw3IEBA
IFBBU1MgcmVzdWx0QXJyYXlbMl0uaSBpcyAnMicKIFBBU1MgcmVzdWx0QXJyYXlbMl0uaXRlbSBp
cyBuYW1lZE5vZGVNYXAuaXRlbSgyKQogCiBbb2JqZWN0IEhUTUxGb3JtRWxlbWVudF0KLVBBU1Mg
cmVzdWx0QXJyYXkubGVuZ3RoIGlzIDEzMQorUEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTMy
CiBQQVNTIHJlc3VsdEFycmF5WzBdLmkgaXMgJzAnCiBQQVNTIHJlc3VsdEFycmF5WzBdLml0ZW0g
aXMgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpWzBdCiBQQVNTIHJlc3Vs
dEFycmF5WzFdLmkgaXMgJzEnCkBAIC00MSw3ICs0MSw3IEBAIFBBU1MgcmVzdWx0QXJyYXlbMl0u
aSBpcyAnMicKIFBBU1MgcmVzdWx0QXJyYXlbMl0uaXRlbSBpcyBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnc2VsZWN0JylbMl0KIAogW29iamVjdCBIVE1MU2VsZWN0RWxlbWVudF0KLVBB
U1MgcmVzdWx0QXJyYXkubGVuZ3RoIGlzIDEzOAorUEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMg
MTM5CiBQQVNTIHJlc3VsdEFycmF5WzBdLmkgaXMgJzAnCiBQQVNTIHJlc3VsdEFycmF5WzBdLml0
ZW0gaXMgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ29wdGlvbicpWzBdCiBQQVNTIHJl
c3VsdEFycmF5WzFdLmkgaXMgJzEnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9y
ZXNvdXJjZXMvZG9tTGlzdEVudW1lcmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVz
b3VyY2VzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwppbmRleCAzM2IyZDNhLi5hMzBlZTFjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvZG9tTGlzdEVudW1lcmF0aW9u
LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy9kb21MaXN0RW51bWVyYXRp
b24uanMKQEAgLTEzMCw3ICsxMzAsNyBAQCBzaG91bGRCZSgicmVzdWx0QXJyYXlbMl0uaXRlbSIs
ICJuYW1lZE5vZGVNYXAuaXRlbSgyKSIpOwogLy8gSFRNTEZvcm1FbGVtZW50CiB2YXIgaHRtbEZv
cm1FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Zvcm0nKVswXTsKIHJl
c3VsdEFycmF5ID0gaXRlcmF0ZUxpc3QoaHRtbEZvcm1FbGVtZW50KTsKLXNob3VsZEJlKCJyZXN1
bHRBcnJheS5sZW5ndGgiLCAiMTMxIik7CitzaG91bGRCZSgicmVzdWx0QXJyYXkubGVuZ3RoIiwg
IjEzMiIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzBdLmkiLCAiJzAnIik7CiBzaG91bGRCZSgi
cmVzdWx0QXJyYXlbMF0uaXRlbSIsICJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2Vs
ZWN0JylbMF0iKTsKIHNob3VsZEJlKCJyZXN1bHRBcnJheVsxXS5pIiwgIicxJyIpOwpAQCAtMTQx
LDcgKzE0MSw3IEBAIHNob3VsZEJlKCJyZXN1bHRBcnJheVsyXS5pdGVtIiwgImRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKVsyXSIpOwogLy8gSFRNTFNlbGVjdEVsZW1lbnQK
IHZhciBodG1sU2VsZWN0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdz
ZWxlY3QnKVswXTsKIHJlc3VsdEFycmF5ID0gaXRlcmF0ZUxpc3QoaHRtbFNlbGVjdEVsZW1lbnQp
Owotc2hvdWxkQmUoInJlc3VsdEFycmF5Lmxlbmd0aCIsICIxMzgiKTsKK3Nob3VsZEJlKCJyZXN1
bHRBcnJheS5sZW5ndGgiLCAiMTM5Iik7CiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMF0uaSIsICIn
MCciKTsKIHNob3VsZEJlKCJyZXN1bHRBcnJheVswXS5pdGVtIiwgImRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdvcHRpb24nKVswXSIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzFdLmki
LCAiJzEnIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAw
MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwMS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFjMzI3NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAxLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRp
dHkoKSBjb3JyZWN0bHkgZmlyZXMgYW4gaW52YWxpZCBldmVudCBvbiBpbnZhbGlkIGZvcm0gY29u
dHJvbCBlbGVtZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyAgCitQQVNT
IEludmFsaWQgY29udHJvbAorUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQorUEFT
UyBJbnZhbGlkIGNvbnRyb2wKK1BBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKK1BB
U1MgSW52YWxpZCBjb250cm9sCitQQVNTIHZbaV0uY2hlY2tWYWxpZGl0eSgpIGlzIGZhbHNlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDEuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMTg4NGYyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2ludmFsaWQtMDAxLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxmb3JtIG1ldGhvZD0i
Z2V0Ij4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHJlcXVpcmVkIG9uaW52YWxp
ZD0idGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJykiLz4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0i
IHR5cGU9InRleHQiIHBhdHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIgb25p
bnZhbGlkPSJ0ZXN0UGFzc2VkKCdJbnZhbGlkIGNvbnRyb2wnKSIvPgorPHRleHRhcmVhIG5hbWU9
InZpY3RpbSIgcmVxdWlyZWQgb25pbnZhbGlkPSJ0ZXN0UGFzc2VkKCdJbnZhbGlkIGNvbnRyb2wn
KSI+PC90ZXh0YXJlYT4KKzwvZm9ybT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRpdHkoKSBjb3Jy
ZWN0bHkgZmlyZXMgYW4gaW52YWxpZCBldmVudCBvbiBpbnZhbGlkIGZvcm0gY29udHJvbCBlbGVt
ZW50cy4iKTsKKwordiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKK2Zv
ciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgIHNob3VsZEJlKCJ2W2ldLmNoZWNrVmFs
aWRpdHkoKSIsICJmYWxzZSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvaW52YWxpZC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
aW52YWxpZC0wMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmM3OWFiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9p
bnZhbGlkLTAwMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0IGNoZWNr
cyBpZiBjaGVja1ZhbGlkaXR5KCkgaW52b2tlZCBvbiBhIGZvcm0gY29udHJvbCBjb3JyZWN0bHkg
YXNrcyBpdHMgZWxlbWVudHMgdG8gZmlyZSBhbiBpbnZhbGlkIGV2ZW50LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworICAKK1BBU1MgSW52YWxpZCBjb250cm9sCitQQVNTIEludmFs
aWQgY29udHJvbAorUEFTUyBJbnZhbGlkIGNvbnRyb2wKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9pbnZhbGlkLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxp
ZC0wMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGQyYTExCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDIuaHRt
bApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGZvcm0gbWV0aG9kPSJnZXQiIGlkPSJzYWRfZm9ybSI+Cis8
aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZCBvbmludmFsaWQ9InRlc3RQ
YXNzZWQoJ0ludmFsaWQgY29udHJvbCcpIi8+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0
ZXh0IiBwYXR0ZXJuPSJMb3JlbSBpcHN1bSIgdmFsdWU9IkxvcmVtaXBzdW0iIG9uaW52YWxpZD0i
dGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJykiLz4KKzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0i
IHJlcXVpcmVkIG9uaW52YWxpZD0idGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJykiPjwvdGV4
dGFyZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgaW52b2tlZCBvbiBh
IGZvcm0gY29udHJvbCBjb3JyZWN0bHkgYXNrcyBpdHMgZWxlbWVudHMgdG8gZmlyZSBhbiBpbnZh
bGlkIGV2ZW50LiIpOworCitpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhZF9mb3JtIiku
Y2hlY2tWYWxpZGl0eSgpKQorICAgIHRlc3RGYWlsZWQoJ2NoZWNrVmFsaWRpdHkgc2hvdWxkIGhh
dmUgcmV0dXJuZWQgZmFsc2UnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2ludmFsaWQtMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2ludmFsaWQtMDAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi43MmMyYjg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
aW52YWxpZC0wMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdCBjaGVj
a3MgaWYgdGhlIGludmFsaWQgZXZlbnQgaXMgY29ycmVjdGx5IGhhbmRsZWQgYnkgZG9jdW1lbnQu
b25pbnZhbGlkIGhhbmRsZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisgIAor
UEFTUyBIYW5kbGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZmMjUzNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAzLmh0bWwKQEAgLTAsMCArMSwyNyBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
Kzxmb3JtIG1ldGhvZD0iZ2V0IiBpZD0ic2FkX2Zvcm0iPgorPGlucHV0IG5hbWU9InZpY3RpbSIg
dHlwZT0idGV4dCIgcmVxdWlyZWQvPgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIg
cGF0dGVybj0iTG9yZW0gaXBzdW0iIHZhbHVlPSJMb3JlbWlwc3VtIi8+Cis8dGV4dGFyZWEgbmFt
ZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgorPC9mb3JtPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgdGhl
IGludmFsaWQgZXZlbnQgaXMgY29ycmVjdGx5IGhhbmRsZWQgYnkgZG9jdW1lbnQub25pbnZhbGlk
IGhhbmRsZXIuIik7CisKK2RvY3VtZW50Lm9uaW52YWxpZCA9IHRlc3RQYXNzZWQoJ0hhbmRsZWQn
KTsKKworaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYWRfZm9ybSIpLmNoZWNrVmFsaWRp
dHkoKSkKKyAgICB0ZXN0RmFpbGVkKCdjaGVja1ZhbGlkaXR5IHNob3VsZCBoYXZlIHJldHVybmVk
IGZhbHNlJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZh
bGlkLTAwNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAw
NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ4ZWE4
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDA0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3QgY2hlY2tzIGlmIHRoZSBp
bnZhbGlkIGV2ZW50IGlzIGNvcnJlY3RseSBoYW5kbGVkIGJ5IHdpbmRvdy5vbmludmFsaWQgaGFu
ZGxlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyAgCitQQVNTIEhhbmRsZWQK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwNC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45OGM2ZWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvaW52YWxpZC0wMDQuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGZvcm0gbWV0aG9k
PSJnZXQiIGlkPSJzYWRfZm9ybSI+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBy
ZXF1aXJlZC8+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBwYXR0ZXJuPSJMb3Jl
bSBpcHN1bSIgdmFsdWU9IkxvcmVtaXBzdW0iLz4KKzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJl
cXVpcmVkPjwvdGV4dGFyZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiB0aGUgaW52YWxpZCBldmVu
dCBpcyBjb3JyZWN0bHkgaGFuZGxlZCBieSB3aW5kb3cub25pbnZhbGlkIGhhbmRsZXIuIik7CisK
K3dpbmRvdy5vbmludmFsaWQgPSB0ZXN0UGFzc2VkKCdIYW5kbGVkJyk7CisKK2lmIChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic2FkX2Zvcm0iKS5jaGVja1ZhbGlkaXR5KCkpCisgICAgdGVzdEZh
aWxlZCgnY2hlY2tWYWxpZGl0eSBzaG91bGQgaGF2ZSByZXR1cm5lZCBmYWxzZScpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNjIzNWEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwNS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyBpZiB0aGUgaW52YWxpZCBldmVudCBpcyBj
b3JyZWN0bHkgaGFuZGxlZCBvbmx5IGJ5IGxvY2FsIGhhbmRsZXIuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCisgIAorRkFJTCBIYW5kbGVkCitGQUlMIEhhbmRsZWQKK1BBU1MgSW52
YWxpZCBjb250cm9sCitQQVNTIEludmFsaWQgY29udHJvbAorUEFTUyBJbnZhbGlkIGNvbnRyb2wK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwNS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi40NzU4ZDljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvaW52YWxpZC0wMDUuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGZvcm0gbWV0aG9k
PSJnZXQiIGlkPSJzYWRfZm9ybSI+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBy
ZXF1aXJlZCBvbmludmFsaWQ9InRlc3RQYXNzZWQoJ0ludmFsaWQgY29udHJvbCcpIi8+Cis8aW5w
dXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBwYXR0ZXJuPSJMb3JlbSBpcHN1bSIgdmFsdWU9
IkxvcmVtaXBzdW0iIG9uaW52YWxpZD0idGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJykiLz4K
Kzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkIG9uaW52YWxpZD0idGVzdFBhc3NlZCgn
SW52YWxpZCBjb250cm9sJykiPjwvdGV4dGFyZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiB0aGUg
aW52YWxpZCBldmVudCBpcyBjb3JyZWN0bHkgaGFuZGxlZCBvbmx5IGJ5IGxvY2FsIGhhbmRsZXIu
Iik7CisKK3dpbmRvdy5vbmludmFsaWQgPSB0ZXN0RmFpbGVkKCdIYW5kbGVkJyk7Citkb2N1bWVu
dC5vbmludmFsaWQgPSB0ZXN0RmFpbGVkKCdIYW5kbGVkJyk7CisKK2lmIChkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic2FkX2Zvcm0iKS5jaGVja1ZhbGlkaXR5KCkpCisgICAgdGVzdEZhaWxlZCgn
Y2hlY2tWYWxpZGl0eSBzaG91bGQgaGF2ZSByZXR1cm5lZCBmYWxzZScpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAxLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTgzZDZjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5
KCkgcmV0dXJucyBjb3JyZWN0bHkgYSB0cnVlIChtZWFuaW5nIG5vIGVycm9yKSByZXN1bHQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisgbG9yZW0gaXBzdW0gIAorUEFTUyB2W2ld
LmNoZWNrVmFsaWRpdHkoKSBpcyB0cnVlCitQQVNTIHZbaV0uY2hlY2tWYWxpZGl0eSgpIGlzIHRy
dWUKK1BBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgdHJ1ZQorUEFTUyB2W2ldLmNoZWNrVmFs
aWRpdHkoKSBpcyB0cnVlCitQQVNTIHZbaV0uY2hlY2tWYWxpZGl0eSgpIGlzIHRydWUKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAxLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uOWYzNjJmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGZv
cm0gbWV0aG9kPSJnZXQiPgorPGZpZWxkc2V0IG5hbWU9InZpY3RpbSI+PC9maWVsZHNldD4KKzxp
bnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHZhbHVlPSJsb3JlbSBpcHN1bSIvPgorPGJ1
dHRvbiBuYW1lPSJ2aWN0aW0iPmxvcmVtIGlwc3VtPC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZp
Y3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPC9m
b3JtPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgdHJ1
ZSAobWVhbmluZyBubyBlcnJvcikgcmVzdWx0LiIpOworCit2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeU5hbWUoInZpY3RpbSIpOworZm9yIChpID0gMDsgaSA8IHYubGVuZ3RoOyBpKyspCisgICAg
c2hvdWxkQmUoInZbaV0uY2hlY2tWYWxpZGl0eSgpIiwgInRydWUiKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg1Nzk0NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgp
IHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZh
bGlkIGVsZW1lbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworICAKK1BBU1Mg
dltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKK1BBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkg
aXMgZmFsc2UKK1BBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjg3MmZhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGZvcm0gbWV0
aG9kPSJnZXQiPgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcmVxdWlyZWQvPgor
PGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcGF0dGVybj0iTG9yZW0gaXBzdW0iIHZh
bHVlPSJMb3JlbWlwc3VtIi8+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3Rl
eHRhcmVhPgorPC9mb3JtPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29y
cmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZhbGlkIGVsZW1lbnRz
LiIpOworCit2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworZm9yIChp
ID0gMDsgaSA8IHYubGVuZ3RoOyBpKyspCisgICAgc2hvdWxkQmUoInZbaV0uY2hlY2tWYWxpZGl0
eSgpIiwgImZhbHNlIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2NoZWNrVmFsaWRpdHktMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
Y2hlY2tWYWxpZGl0eS0wMDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjA0ZjY1YjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2NoZWNrVmFsaWRpdHktMDAzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGlz
IHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIHRydWUg
KG1lYW5pbmcgbm8gZXJyb3IpIHJlc3VsdCBvbiBmb3JtIGVsZW1lbnQuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCisgbG9yZW0gaXBzdW0gIAorUEFTUyBmLmNoZWNrVmFsaWRpdHko
KSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAw
My5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmNDJlOGYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAzLmh0bWwKQEAgLTAs
MCArMSwyNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxmb3JtIG1ldGhvZD0iZ2V0IiBpZD0iaGFwcHlfZm9ybSI+Cis8ZmllbGRz
ZXQgbmFtZT0idmljdGltIj48L2ZpZWxkc2V0PgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0i
dGV4dCIgdmFsdWU9ImxvcmVtIGlwc3VtIi8+Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+bG9yZW0g
aXBzdW08L2J1dHRvbj4KKzxzZWxlY3QgbmFtZT0idmljdGltIj48L3NlbGVjdD4KKzx0ZXh0YXJl
YSBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1Zh
bGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSB0cnVlIChtZWFuaW5nIG5vIGVycm9yKSByZXN1
bHQgb24gZm9ybSBlbGVtZW50LiIpOworCitmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhh
cHB5X2Zvcm0iKTsKK3Nob3VsZEJlKCJmLmNoZWNrVmFsaWRpdHkoKSIsICJ0cnVlIik7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDA0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhYTY1ZGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDA0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNr
VmFsaWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIHRoZXJlJ3MgYW4g
aW52YWxpZCBlbGVtZW50KSByZXN1bHQgb24gZm9ybSBlbGVtZW50LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworIGxvcmVtIGlwc3VtICAKK1BBU1MgZi5jaGVja1ZhbGlkaXR5KCkg
aXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDA0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDA0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJhNzRhNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQuaHRtbApAQCAtMCww
ICsxLDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGZvcm0gbWV0aG9kPSJnZXQiIGlkPSJzYWRfZm9ybSI+Cis8ZmllbGRzZXQg
bmFtZT0idmljdGltIj48L2ZpZWxkc2V0PgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4
dCIgdmFsdWU9ImludmFsaWQiIHBhdHRlcm49InNvbWV0aGluZyIvPgorPGJ1dHRvbiBuYW1lPSJ2
aWN0aW0iPmxvcmVtIGlwc3VtPC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxl
Y3Q+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPC9mb3JtPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVj
a3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcg
dGhlcmUncyBhbiBpbnZhbGlkIGVsZW1lbnQpIHJlc3VsdCBvbiBmb3JtIGVsZW1lbnQuIik7CisK
K2YgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2FkX2Zvcm0iKTsKK3Nob3VsZEJlKCJmLmNo
ZWNrVmFsaWRpdHkoKSIsICJmYWxzZSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MzY3ODMwLi4wYjQwYjA5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDUyIEBACisyMDA5LTA4LTE5ICBNaWNoZWxhbmdlbG8gRGUgU2ltb25lICA8bWljZGVzaW1AZ21h
aWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQ1MgorICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgY2hlY2tWYWxpZGl0eSgpIG1ldGhvZCBhbmQgaW52YWxpZCBldmVudCwg
ZnJvbSBIVE1MNQorICAgICAgICBzcGVjczoKKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3Jn
L3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jZG9tLWZvcm0tY2hlY2t2YWxpZGl0eQorCisg
ICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy9pbnZhbGlkLTAwMS5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2V2ZW50cy9pbnZhbGlkLTAwMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50
cy9pbnZhbGlkLTAwMy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9pbnZhbGlkLTAw
NC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9pbnZhbGlkLTAwNS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAxLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1z
L2NoZWNrVmFsaWRpdHktMDA0Lmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IG9u
aW52YWxpZCBldmVudCBoYW5kbGVyCisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOiBkaXR0bwor
ICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6IGFkZGVkIGludmFsaWQgZXZlbnQKKyAgICAgICAg
KiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpvbmludmFsaWQpOiBkaXR0
bworICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0T25pbnZhbGlkKTogZGl0dG8KKyAgICAgICAg
KiBkb20vTm9kZS5oOiBkaXR0bworICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmlu
OiBvbmludmFsaWQgYXR0cmlidXRlCisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5p
ZGw6IGFkZGVkIGNoZWNrVmFsaWRpdHkoKSBtZXRob2QKKyAgICAgICAgKiBodG1sL0hUTUxFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZSk6IHBhcnNlcyBvbmludmFsaWQKKyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuaWRsOiBhZGRlZCBjaGVja1ZhbGlkaXR5KCkgbWV0aG9kCisgICAgICAgICogaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJv
bEVsZW1lbnQ6OmNoZWNrVmFsaWRpdHkpOiBjaGVja1ZhbGlkaXR5KCkKKyAgICAgICAgaW1wbGVt
ZW50YXRpb24KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9y
bUVsZW1lbnQ6OmNoZWNrVmFsaWRpdHkpOiBjaGVja1ZhbGlkaXR5KCkgaW1wbGVtZW50YXRpb24K
KyAgICAgICAgZm9yIGZvcm0gZWxlbWVudHMKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVu
dC5oOiBjaGVja1ZhbGlkaXR5KCkgZGVmaW5pdGlvbgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1F
bGVtZW50LmlkbDogYWRkZWQgY2hlY2tWYWxpZGl0eSgpIG1ldGhvZAorICAgICAgICAqIGh0bWwv
SFRNTElucHV0RWxlbWVudC5pZGw6IGFkZGVkIGNoZWNrVmFsaWRpdHkoKSBtZXRob2QKKyAgICAg
ICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbDogYWRkZWQgY2hlY2tWYWxpZGl0eSgpIG1l
dGhvZAorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGw6IGFkZGVkIGNoZWNr
VmFsaWRpdHkoKSBtZXRob2QKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6Om9uaW52YWxpZCk6IG9uaW52YWxpZCBldmVudCBoYW5kbGVy
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNldE9uaW52YWxpZCk6IGRpdHRvCisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuaDogZGl0dG8KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6IGRpdHRvCisKIDIwMDktMDgtMTkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDQ0OTY2Y2Mu
LmFjYmEwMDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTI2NCw2ICsyNjQsNyBAQCBtb2R1bGUgY29yZSB7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKICAgICAg
ICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvY3VzOwogICAgICAgICBh
dHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW5wdXQ7CisgICAgICAgIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnZhbGlkOwogICAgICAgICBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5ZG93bjsKICAgICAgICAgYXR0cmlidXRl
IFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmtleXByZXNzOwogICAgICAgICBhdHRyaWJ1dGUg
W0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5dXA7CkBAIC0yODUsNyArMjg2LDYgQEAgbW9k
dWxlIGNvcmUgewogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9uZW5kZWQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25mb3JtY2hhbmdlOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9uZm9ybWlucHV0OwotICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExp
c3RlbmVyIG9uaW52YWxpZDsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbmxvYWRlZGRhdGE7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25sb2FkZWRtZXRhZGF0YTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRzdGFydDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaWRsIGIvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKaW5kZXggMTZhYWM4NC4uY2Ji
MzZkOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9k
b20vRWxlbWVudC5pZGwKQEAgLTE0OSw2ICsxNDksNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAg
IGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKICAgICAgICAgYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvY3VzOwogICAgICAgICBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uaW5wdXQ7CisgICAgICAgIGF0dHJpYnV0ZSBb
RG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnZhbGlkOwogICAgICAgICBhdHRyaWJ1dGUgW0Rv
bnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5ZG93bjsKICAgICAgICAgYXR0cmlidXRlIFtEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbmtleXByZXNzOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRF
bnVtXSBFdmVudExpc3RlbmVyIG9ua2V5dXA7CkBAIC0xNzAsNyArMTcxLDYgQEAgbW9kdWxlIGNv
cmUgewogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZW5k
ZWQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3Jt
Y2hhbmdlOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
Zm9ybWlucHV0OwotICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9uaW52YWxpZDsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbmxvYWRlZGRhdGE7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlz
dGVuZXIgb25sb2FkZWRtZXRhZGF0YTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0g
RXZlbnRMaXN0ZW5lciBvbmxvYWRzdGFydDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaCBiL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCBlMGI4ZTdhLi43N2ZmODUz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5oCkBAIC01Nyw2ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBt
YWNybyhmb2N1cykgXAogICAgIG1hY3JvKGhhc2hjaGFuZ2UpIFwKICAgICBtYWNybyhpbnB1dCkg
XAorICAgIG1hY3JvKGludmFsaWQpIFwKICAgICBtYWNybyhrZXlkb3duKSBcCiAgICAgbWFjcm8o
a2V5cHJlc3MpIFwKICAgICBtYWNybyhrZXl1cCkgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20v
Tm9kZS5jcHAgYi9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBiMDRjOTMzLi5iNDYwODE2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Ob2RlLmNw
cApAQCAtMzA2OCw2ICszMDY4LDE2IEBAIHZvaWQgTm9kZTo6c2V0T25pbnB1dChQYXNzUmVmUHRy
PEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIpCiAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0
ZW5lcihldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgZXZlbnRMaXN0ZW5lcik7CiB9CiAKK0V2ZW50
TGlzdGVuZXIqIE5vZGU6Om9uaW52YWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldEF0dHJp
YnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmludmFsaWRFdmVudCk7Cit9CisKK3ZvaWQg
Tm9kZTo6c2V0T25pbnZhbGlkKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5l
cikKK3sKKyAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5pbnZhbGlk
RXZlbnQsIGV2ZW50TGlzdGVuZXIpOworfQorCiBFdmVudExpc3RlbmVyKiBOb2RlOjpvbmtleWRv
d24oKSBjb25zdAogewogICAgIHJldHVybiBnZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50
TmFtZXMoKS5rZXlkb3duRXZlbnQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vTm9kZS5oIGIv
V2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGE1NTdmOTQuLjk0NjQ4NjMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL05vZGUuaAorKysgYi9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTU3Myw4ICs1NzMs
MjQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T25jb250ZXh0bWVudShQYXNzUmVmUHRyPEV2ZW50
TGlzdGVuZXI+KTsKICAgICBFdmVudExpc3RlbmVyKiBvbmRibGNsaWNrKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRPbmRibGNsaWNrKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworICAgIEV2ZW50
TGlzdGVuZXIqIG9uZHJhZ2VudGVyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRPbmRyYWdlbnRlcihQ
YXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyAgICBFdmVudExpc3RlbmVyKiBvbmRyYWdvdmVy
KCkgY29uc3Q7CisgICAgdm9pZCBzZXRPbmRyYWdvdmVyKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5l
cj4pOworICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJhZ2xlYXZlKCkgY29uc3Q7CisgICAgdm9pZCBz
ZXRPbmRyYWdsZWF2ZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyAgICBFdmVudExpc3Rl
bmVyKiBvbmRyb3AoKSBjb25zdDsKKyAgICB2b2lkIHNldE9uZHJvcChQYXNzUmVmUHRyPEV2ZW50
TGlzdGVuZXI+KTsKKyAgICBFdmVudExpc3RlbmVyKiBvbmRyYWdzdGFydCgpIGNvbnN0OworICAg
IHZvaWQgc2V0T25kcmFnc3RhcnQoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CisgICAgRXZl
bnRMaXN0ZW5lciogb25kcmFnKCkgY29uc3Q7CisgICAgdm9pZCBzZXRPbmRyYWcoUGFzc1JlZlB0
cjxFdmVudExpc3RlbmVyPik7CisgICAgRXZlbnRMaXN0ZW5lciogb25kcmFnZW5kKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRPbmRyYWdlbmQoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAgICAg
RXZlbnRMaXN0ZW5lciogb25pbnB1dCgpIGNvbnN0OwogICAgIHZvaWQgc2V0T25pbnB1dChQYXNz
UmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyAgICBFdmVudExpc3RlbmVyKiBvbmludmFsaWQoKSBj
b25zdDsKKyAgICB2b2lkIHNldE9uaW52YWxpZChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsK
ICAgICBFdmVudExpc3RlbmVyKiBvbmtleWRvd24oKSBjb25zdDsKICAgICB2b2lkIHNldE9ua2V5
ZG93bihQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAgICBFdmVudExpc3RlbmVyKiBvbmtl
eXByZXNzKCkgY29uc3Q7CkBAIC01OTMsMjAgKzYwOSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dE9ubW91c2V1cChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAgICBFdmVudExpc3RlbmVy
KiBvbm1vdXNld2hlZWwoKSBjb25zdDsKICAgICB2b2lkIHNldE9ubW91c2V3aGVlbChQYXNzUmVm
UHRyPEV2ZW50TGlzdGVuZXI+KTsKLSAgICBFdmVudExpc3RlbmVyKiBvbmRyYWdlbnRlcigpIGNv
bnN0OwotICAgIHZvaWQgc2V0T25kcmFnZW50ZXIoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7
Ci0gICAgRXZlbnRMaXN0ZW5lciogb25kcmFnb3ZlcigpIGNvbnN0OwotICAgIHZvaWQgc2V0T25k
cmFnb3ZlcihQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKLSAgICBFdmVudExpc3RlbmVyKiBv
bmRyYWdsZWF2ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0T25kcmFnbGVhdmUoUGFzc1JlZlB0cjxF
dmVudExpc3RlbmVyPik7Ci0gICAgRXZlbnRMaXN0ZW5lciogb25kcm9wKCkgY29uc3Q7Ci0gICAg
dm9pZCBzZXRPbmRyb3AoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7Ci0gICAgRXZlbnRMaXN0
ZW5lciogb25kcmFnc3RhcnQoKSBjb25zdDsKLSAgICB2b2lkIHNldE9uZHJhZ3N0YXJ0KFBhc3NS
ZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwotICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJhZygpIGNvbnN0
OwotICAgIHZvaWQgc2V0T25kcmFnKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwotICAgIEV2
ZW50TGlzdGVuZXIqIG9uZHJhZ2VuZCgpIGNvbnN0OwotICAgIHZvaWQgc2V0T25kcmFnZW5kKFBh
c3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAgIEV2ZW50TGlzdGVuZXIqIG9uc2Nyb2xsKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRPbnNjcm9sbChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsK
ICAgICBFdmVudExpc3RlbmVyKiBvbnNlbGVjdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4KaW5kZXggMWNhZjQ3My4uMDM1YzdkYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluCkBAIC0xNDcsNiArMTQ3LDcgQEAgb25lcnJvcgogb25mb2N1cwogb25oYXNoY2hhbmdl
CiBvbmlucHV0CitvbmludmFsaWQKIG9ua2V5ZG93bgogb25rZXlwcmVzcwogb25rZXl1cApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKaW5kZXggNWZkMDA3NS4uZGUzZTUwNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuaWRsCkBAIC0zNiw2ICszNiw3IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB0eXBlOwogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nICAgICAgICAgICAgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
ICAgICAgICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICBib29sZWFuICBjaGVja1ZhbGlk
aXR5KCk7CiAgICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmlu
ZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAgICAgICAgIHZvaWQgY2xp
Y2soKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBi
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggYzA0MDljOC4uMjk2NDM4MSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCkBAIC0yMjQsNiArMjI0LDggQEAgdm9pZCBIVE1MRWxlbWVudDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQogICAgICAgICBzZXRBdHRy
aWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS53ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQs
IGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cikpOwogICAgIH0gZWxzZSBp
ZiAoYXR0ci0+bmFtZSgpID09IG9uaW5wdXRBdHRyKSB7CiAgICAgICAgIHNldEF0dHJpYnV0ZUV2
ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmlucHV0RXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50
TGlzdGVuZXIodGhpcywgYXR0cikpOworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9u
aW52YWxpZEF0dHIpIHsKKyAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5h
bWVzKCkuaW52YWxpZEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0
dHIpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbAppbmRleCA0
ZDExMzA0Li5jYTg1NjNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxl
bWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCkBAIC0y
OSw2ICsyOSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZh
bGlkaXR5U3RhdGUgICB2YWxpZGl0eTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgYm9vbGVhbiAgY2hlY2tW
YWxpZGl0eSgpOwogICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVy
dFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICB9Owog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggOTlhODRiMS4uYzNl
MjY2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMjYzLDYg
KzI2MywxOSBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxWYWxpZGF0ZSgpIGNv
bnN0CiAgICAgcmV0dXJuIGZvcm0oKSAmJiAhbmFtZSgpLmlzRW1wdHkoKSAmJiAhZGlzYWJsZWQo
KSAmJiAhaXNSZWFkT25seUZvcm1Db250cm9sKCk7CiB9CiAKK2Jvb2wgSFRNTEZvcm1Db250cm9s
RWxlbWVudDo6Y2hlY2tWYWxpZGl0eSgpCit7CisgICAgaWYgKCF3aWxsVmFsaWRhdGUoKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIWlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQo
KSkgeworICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50TmFtZXMoKS5pbnZhbGlkRXZlbnQsIGZh
bHNlLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0
cnVlOworfQorCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlkaXR5
KGNvbnN0IFN0cmluZyYgZXJyb3IpCiB7CiAgICAgdmFsaWRpdHkoKS0+c2V0Q3VzdG9tRXJyb3JN
ZXNzYWdlKGVycm9yKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IDAy
NDMwZGEuLmY3NzIwNGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAt
MTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHNob3J0IHRhYkluZGV4KCkgY29u
c3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3Q7CisgICAgYm9vbCBj
aGVja1ZhbGlkaXR5KCk7CiAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShjb25zdCBTdHJpbmcm
KTsKIAogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAgYi9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCA1MWZiMzVmLi4zYmI0YWUzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIk1hcHBl
ZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29u
dHJvbC5oIgorI2luY2x1ZGUgIlZhbGlkaXR5U3RhdGUuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JhbmRvbU51bWJlci5o
PgpAQCAtNTg4LDYgKzU4OSwyOSBAQCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBIVE1MRm9ybUVs
ZW1lbnQ6OmRlZmF1bHRCdXR0b24oKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCitib29sIEhU
TUxGb3JtRWxlbWVudDo6Y2hlY2tWYWxpZGl0eShWZWN0b3I8SFRNTEZvcm1Db250cm9sRWxlbWVu
dCo+KiB1bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMpCit7CisgICAgVmVjdG9yPEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQqPiBpbnZhbGlkQ29udHJvbHM7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZm9ybUVsZW1lbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQqIGNvbnRyb2wgPSBmb3JtRWxlbWVudHNbaV07CisgICAgICAgIGlmIChjb250cm9s
LT53aWxsVmFsaWRhdGUoKSAmJiAhY29udHJvbC0+dmFsaWRpdHkoKS0+dmFsaWQoKSkKKyAgICAg
ICAgICAgIGludmFsaWRDb250cm9scy5hcHBlbmQoY29udHJvbCk7CisgICAgfQorCisgICAgaWYg
KGludmFsaWRDb250cm9scy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
Zm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IGludmFsaWRDb250cm9scy5zaXplKCk7ICsrbikgewor
ICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBpbnZhbGlkQ29udHJvbCA9IGludmFsaWRD
b250cm9sc1tuXTsKKyAgICAgICAgYm9vbCBldmVudENhbmNlbGVkID0gaW52YWxpZENvbnRyb2wt
PmRpc3BhdGNoRXZlbnQoZXZlbnROYW1lcygpLmludmFsaWRFdmVudCwgZmFsc2UsIHRydWUpOwor
ICAgICAgICBpZiAoZXZlbnRDYW5jZWxlZCAmJiB1bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMpCisg
ICAgICAgICAgICB1bmhhbmRsZWRJbnZhbGlkQ29udHJvbHMtPmFwcGVuZChpbnZhbGlkQ29udHJv
bCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ+IEhUTUxGb3JtRWxlbWVudDo6ZWxlbWVudEZvckFsaWFzKGNvbnN0IEF0
b21pY1N0cmluZyYgYWxpYXMpCiB7CiAgICAgaWYgKGFsaWFzLmlzRW1wdHkoKSB8fCAhbV9lbGVt
ZW50QWxpYXNlcykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaCBi
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAppbmRleCBhZmUxZmYwLi5lY2M5OTNkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5oCkBAIC0xMDksNyArMTA5LDkgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0VGFyZ2V0KGNvbnN0IFN0cmluZyYpOwogCiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVu
dCogZGVmYXVsdEJ1dHRvbigpIGNvbnN0OwotICAgIAorCisgICAgYm9vbCBjaGVja1ZhbGlkaXR5
KFZlY3RvcjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4qIHVuaGFuZGxlZEludmFsaWRDb250cm9s
cyA9IDApOworCiAgICAgUGFzc1JlZlB0cjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50PiBlbGVtZW50
Rm9yQWxpYXMoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgdm9pZCBhZGRFbGVtZW50QWxpYXMo
SFRNTEZvcm1Db250cm9sRWxlbWVudCosIGNvbnN0IEF0b21pY1N0cmluZyYgYWxpYXMpOwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUVsZW1lbnQuaWRsCmluZGV4IGYzYWNhODcuLjI2ZTczM2QgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuaWRsCkBAIC0zOSw1ICszOSw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc3VibWl0KCk7CiAgICAgICAgIHZvaWQgcmVzZXQoKTsK
KyAgICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgpOwogICAgIH07CiB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGwKaW5kZXggZTE1YzZiNS4uMGVmZDJlYyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmlkbApAQCAtNTYsNiArNTYsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB1c2VNYXA7
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyB2YWx1ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAg
ICB3aWxsVmFsaWRhdGU7CisgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBjaGVja1ZhbGlkaXR5
KCk7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29u
dmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICAg
ICAgdm9pZCAgICAgICAgICAgICAgIHNlbGVjdCgpOwogICAgICAgICB2b2lkICAgICAgICAgICAg
ICAgY2xpY2soKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5p
ZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCmluZGV4IDE3Nzg5NWUuLjUz
ZmU4NDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbApAQCAtNDUsNiArNDUsNyBAQCBt
b2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlICAg
dmFsaWRpdHk7CiAjZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAg
ICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBjaGVja1ZhbGlk
aXR5KCk7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBb
Q29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIAog
ICAgICAgICAvLyBNb2RpZmllZCBpbiBET00gTGV2ZWwgMjoKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmlkbAppbmRleCA1ZDI4NTNlLi44NTNlOGY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuaWRsCkBAIC00NCw2ICs0NCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgdm9p
ZCAgICAgc2VsZWN0KCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAg
ICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIGJvb2xlYW4gIGNoZWNrVmFsaWRpdHkoKTsKICAg
ICAgICAgdm9pZCAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAKICAgICAgICAvLyBXaW5JRSAmIEZp
cmVGb3ggZXh0ZW5zaW9uOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAg
Yi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBkZGQ4YzAzLi44MzBjNDE1IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcApAQCAtMjA0NSw2ICsyMDQ1LDE2IEBAIHZvaWQgRE9NV2luZG93OjpzZXRPbmNv
bnRleHRtZW51KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lcikKICAgICBz
ZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5jb250ZXh0bWVudUV2ZW50LCBl
dmVudExpc3RlbmVyKTsKIH0KIAorRXZlbnRMaXN0ZW5lciogRE9NV2luZG93OjpvbmludmFsaWQo
KSBjb25zdAoreworICAgIHJldHVybiBnZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFt
ZXMoKS5pbnZhbGlkRXZlbnQpOworfQorCit2b2lkIERPTVdpbmRvdzo6c2V0T25pbnZhbGlkKFBh
c3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lcikKK3sKKyAgICBzZXRBdHRyaWJ1
dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5pbnZhbGlkRXZlbnQsIGV2ZW50TGlzdGVuZXIp
OworfQorCiB2b2lkIERPTVdpbmRvdzo6Y2FwdHVyZUV2ZW50cygpCiB7CiAgICAgLy8gTm90IGlt
cGxlbWVudGVkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDFjNzEyMjEuLmIxMDYyZjEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAg
LTM3NCw2ICszNzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0T25t
ZXNzYWdlKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAgICAgICBFdmVudExpc3RlbmVy
KiBvbmNvbnRleHRtZW51KCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0T25jb250ZXh0bWVudShQ
YXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyAgICAgICAgRXZlbnRMaXN0ZW5lciogb25pbnZh
bGlkKCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0T25pbnZhbGlkKFBhc3NSZWZQdHI8RXZlbnRM
aXN0ZW5lcj4pOwogCiAgICAgICAgIHZvaWQgY2FwdHVyZUV2ZW50cygpOwogICAgICAgICB2b2lk
IHJlbGVhc2VFdmVudHMoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
IGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggN2M2MTUyMy4uNmU1MjBlMyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKQEAgLTIxNiw2ICsyMTYsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAg
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25oYXNoY2hhbmdlOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmlucHV0OworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7CiAgICAg
ICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ua2V5ZG93bjsKICAgICAgICAgYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25rZXlwcmVzczsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25rZXl1cDsKQEAgLTI1Nyw3ICsyNTgsNiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAg
Ly8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb3JtY2hhbmdlOwogICAgICAgICAvLyBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZvcm1pbnB1dDsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25oYXNoY2hhbmdlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmludmFsaWQ7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucG9w
c3RhdGU7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVhZHlzdGF0ZWNo
YW5nZTsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWRvOw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38398</attachid>
            <date>2009-08-21 14:57:10 -0700</date>
            <delta_ts>2009-08-21 15:00:09 -0700</delta_ts>
            <desc>Patch v1 with working test case</desc>
            <filename>bug-27452-20090821235708.patch</filename>
            <type>text/plain</type>
            <size>1010</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDA1LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDA1LWV4cGVjdGVkLnR4dApp
bmRleCA1YTYyMzVhLi41YzQxNDM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9pbnZhbGlkLTAwNS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
aW52YWxpZC0wMDUtZXhwZWN0ZWQudHh0CkBAIC00LDggKzQsNiBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogCiAKICAgCi1GQUlMIEhhbmRsZWQKLUZBSUwgSGFuZGxlZAogUEFTUyBJbnZhbGlk
IGNvbnRyb2wKIFBBU1MgSW52YWxpZCBjb250cm9sCiBQQVNTIEludmFsaWQgY29udHJvbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDA1Lmh0bWwKaW5kZXggNDc1OGQ5Yy4uMTBlMjY5
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwNS5odG1sCkBAIC0xNSw5ICsx
NSw2IEBACiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgdGhlIGlu
dmFsaWQgZXZlbnQgaXMgY29ycmVjdGx5IGhhbmRsZWQgb25seSBieSBsb2NhbCBoYW5kbGVyLiIp
OwogCi13aW5kb3cub25pbnZhbGlkID0gdGVzdEZhaWxlZCgnSGFuZGxlZCcpOwotZG9jdW1lbnQu
b25pbnZhbGlkID0gdGVzdEZhaWxlZCgnSGFuZGxlZCcpOwotCiBpZiAoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInNhZF9mb3JtIikuY2hlY2tWYWxpZGl0eSgpKQogICAgIHRlc3RGYWlsZWQoJ2No
ZWNrVmFsaWRpdHkgc2hvdWxkIGhhdmUgcmV0dXJuZWQgZmFsc2UnKTs=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38400</attachid>
            <date>2009-08-21 15:00:09 -0700</date>
            <delta_ts>2009-08-21 16:16:35 -0700</delta_ts>
            <desc>Patch v1a</desc>
            <filename>27452-1a.patch</filename>
            <type>text/plain</type>
            <size>36697</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQ3NjFiLi44NjJiMDg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMDktMDgt
MTkgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDUyCisgICAgICAgIFRlc3RzIGZvciBjaGVja1Zh
bGlkaXR5KCkgbWV0aG9kIGFuZCBpbnZhbGlkIGV2ZW50LCBmcm9tIEhUTUw1CisgICAgICAgIHNw
ZWNzOgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNkb20tZm9ybS1jaGVja3ZhbGlkaXR5CisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9p
bnZhbGlkLTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lu
dmFsaWQtMDAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDAy
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDIu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbnZhbGlkLTAwMy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbnZhbGlkLTAwNC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9t
L3Jlc291cmNlcy9kb21MaXN0RW51bWVyYXRpb24uanM6CisKIDIwMDktMDgtMTkgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNWYwNThkNS4uYTAwYjkzMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CkBAIC0xNzM0LDYgKzE3MzQsNyBAQCB3aW5kb3cub25lcnJvciBbbnVsbF0KIHdp
bmRvdy5vbmZvY3VzIFtudWxsXQogd2luZG93Lm9uaGFzaGNoYW5nZSBbbnVsbF0KIHdpbmRvdy5v
bmlucHV0IFtudWxsXQord2luZG93Lm9uaW52YWxpZCBbbnVsbF0KIHdpbmRvdy5vbmtleWRvd24g
W251bGxdCiB3aW5kb3cub25rZXlwcmVzcyBbbnVsbF0KIHdpbmRvdy5vbmtleXVwIFtudWxsXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBlY3Rl
ZC50eHQKaW5kZXggYmI5YWRmYS4uMjc5OWM4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0zMiw3ICszMiw3IEBA
IFBBU1MgcmVzdWx0QXJyYXlbMl0uaSBpcyAnMicKIFBBU1MgcmVzdWx0QXJyYXlbMl0uaXRlbSBp
cyBuYW1lZE5vZGVNYXAuaXRlbSgyKQogCiBbb2JqZWN0IEhUTUxGb3JtRWxlbWVudF0KLVBBU1Mg
cmVzdWx0QXJyYXkubGVuZ3RoIGlzIDEzMQorUEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTMy
CiBQQVNTIHJlc3VsdEFycmF5WzBdLmkgaXMgJzAnCiBQQVNTIHJlc3VsdEFycmF5WzBdLml0ZW0g
aXMgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpWzBdCiBQQVNTIHJlc3Vs
dEFycmF5WzFdLmkgaXMgJzEnCkBAIC00MSw3ICs0MSw3IEBAIFBBU1MgcmVzdWx0QXJyYXlbMl0u
aSBpcyAnMicKIFBBU1MgcmVzdWx0QXJyYXlbMl0uaXRlbSBpcyBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnc2VsZWN0JylbMl0KIAogW29iamVjdCBIVE1MU2VsZWN0RWxlbWVudF0KLVBB
U1MgcmVzdWx0QXJyYXkubGVuZ3RoIGlzIDEzOAorUEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMg
MTM5CiBQQVNTIHJlc3VsdEFycmF5WzBdLmkgaXMgJzAnCiBQQVNTIHJlc3VsdEFycmF5WzBdLml0
ZW0gaXMgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ29wdGlvbicpWzBdCiBQQVNTIHJl
c3VsdEFycmF5WzFdLmkgaXMgJzEnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9y
ZXNvdXJjZXMvZG9tTGlzdEVudW1lcmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVz
b3VyY2VzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwppbmRleCAzM2IyZDNhLi5hMzBlZTFjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvZG9tTGlzdEVudW1lcmF0aW9u
LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy9kb21MaXN0RW51bWVyYXRp
b24uanMKQEAgLTEzMCw3ICsxMzAsNyBAQCBzaG91bGRCZSgicmVzdWx0QXJyYXlbMl0uaXRlbSIs
ICJuYW1lZE5vZGVNYXAuaXRlbSgyKSIpOwogLy8gSFRNTEZvcm1FbGVtZW50CiB2YXIgaHRtbEZv
cm1FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Zvcm0nKVswXTsKIHJl
c3VsdEFycmF5ID0gaXRlcmF0ZUxpc3QoaHRtbEZvcm1FbGVtZW50KTsKLXNob3VsZEJlKCJyZXN1
bHRBcnJheS5sZW5ndGgiLCAiMTMxIik7CitzaG91bGRCZSgicmVzdWx0QXJyYXkubGVuZ3RoIiwg
IjEzMiIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzBdLmkiLCAiJzAnIik7CiBzaG91bGRCZSgi
cmVzdWx0QXJyYXlbMF0uaXRlbSIsICJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2Vs
ZWN0JylbMF0iKTsKIHNob3VsZEJlKCJyZXN1bHRBcnJheVsxXS5pIiwgIicxJyIpOwpAQCAtMTQx
LDcgKzE0MSw3IEBAIHNob3VsZEJlKCJyZXN1bHRBcnJheVsyXS5pdGVtIiwgImRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKVsyXSIpOwogLy8gSFRNTFNlbGVjdEVsZW1lbnQK
IHZhciBodG1sU2VsZWN0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdz
ZWxlY3QnKVswXTsKIHJlc3VsdEFycmF5ID0gaXRlcmF0ZUxpc3QoaHRtbFNlbGVjdEVsZW1lbnQp
Owotc2hvdWxkQmUoInJlc3VsdEFycmF5Lmxlbmd0aCIsICIxMzgiKTsKK3Nob3VsZEJlKCJyZXN1
bHRBcnJheS5sZW5ndGgiLCAiMTM5Iik7CiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMF0uaSIsICIn
MCciKTsKIHNob3VsZEJlKCJyZXN1bHRBcnJheVswXS5pdGVtIiwgImRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdvcHRpb24nKVswXSIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzFdLmki
LCAiJzEnIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAw
MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwMS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFjMzI3NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAxLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRp
dHkoKSBjb3JyZWN0bHkgZmlyZXMgYW4gaW52YWxpZCBldmVudCBvbiBpbnZhbGlkIGZvcm0gY29u
dHJvbCBlbGVtZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyAgCitQQVNT
IEludmFsaWQgY29udHJvbAorUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQorUEFT
UyBJbnZhbGlkIGNvbnRyb2wKK1BBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKK1BB
U1MgSW52YWxpZCBjb250cm9sCitQQVNTIHZbaV0uY2hlY2tWYWxpZGl0eSgpIGlzIGZhbHNlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDEuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMTg4NGYyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2ludmFsaWQtMDAxLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxmb3JtIG1ldGhvZD0i
Z2V0Ij4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHJlcXVpcmVkIG9uaW52YWxp
ZD0idGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJykiLz4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0i
IHR5cGU9InRleHQiIHBhdHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIgb25p
bnZhbGlkPSJ0ZXN0UGFzc2VkKCdJbnZhbGlkIGNvbnRyb2wnKSIvPgorPHRleHRhcmVhIG5hbWU9
InZpY3RpbSIgcmVxdWlyZWQgb25pbnZhbGlkPSJ0ZXN0UGFzc2VkKCdJbnZhbGlkIGNvbnRyb2wn
KSI+PC90ZXh0YXJlYT4KKzwvZm9ybT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRpdHkoKSBjb3Jy
ZWN0bHkgZmlyZXMgYW4gaW52YWxpZCBldmVudCBvbiBpbnZhbGlkIGZvcm0gY29udHJvbCBlbGVt
ZW50cy4iKTsKKwordiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKK2Zv
ciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgIHNob3VsZEJlKCJ2W2ldLmNoZWNrVmFs
aWRpdHkoKSIsICJmYWxzZSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvaW52YWxpZC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
aW52YWxpZC0wMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmM3OWFiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9p
bnZhbGlkLTAwMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0IGNoZWNr
cyBpZiBjaGVja1ZhbGlkaXR5KCkgaW52b2tlZCBvbiBhIGZvcm0gY29udHJvbCBjb3JyZWN0bHkg
YXNrcyBpdHMgZWxlbWVudHMgdG8gZmlyZSBhbiBpbnZhbGlkIGV2ZW50LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworICAKK1BBU1MgSW52YWxpZCBjb250cm9sCitQQVNTIEludmFs
aWQgY29udHJvbAorUEFTUyBJbnZhbGlkIGNvbnRyb2wKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9pbnZhbGlkLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxp
ZC0wMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGQyYTExCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDIuaHRt
bApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGZvcm0gbWV0aG9kPSJnZXQiIGlkPSJzYWRfZm9ybSI+Cis8
aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZCBvbmludmFsaWQ9InRlc3RQ
YXNzZWQoJ0ludmFsaWQgY29udHJvbCcpIi8+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0
ZXh0IiBwYXR0ZXJuPSJMb3JlbSBpcHN1bSIgdmFsdWU9IkxvcmVtaXBzdW0iIG9uaW52YWxpZD0i
dGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJykiLz4KKzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0i
IHJlcXVpcmVkIG9uaW52YWxpZD0idGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJykiPjwvdGV4
dGFyZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgaW52b2tlZCBvbiBh
IGZvcm0gY29udHJvbCBjb3JyZWN0bHkgYXNrcyBpdHMgZWxlbWVudHMgdG8gZmlyZSBhbiBpbnZh
bGlkIGV2ZW50LiIpOworCitpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhZF9mb3JtIiku
Y2hlY2tWYWxpZGl0eSgpKQorICAgIHRlc3RGYWlsZWQoJ2NoZWNrVmFsaWRpdHkgc2hvdWxkIGhh
dmUgcmV0dXJuZWQgZmFsc2UnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2ludmFsaWQtMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2ludmFsaWQtMDAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi43MmMyYjg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
aW52YWxpZC0wMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdCBjaGVj
a3MgaWYgdGhlIGludmFsaWQgZXZlbnQgaXMgY29ycmVjdGx5IGhhbmRsZWQgYnkgZG9jdW1lbnQu
b25pbnZhbGlkIGhhbmRsZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisgIAor
UEFTUyBIYW5kbGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZmMjUzNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAzLmh0bWwKQEAgLTAsMCArMSwyNyBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
Kzxmb3JtIG1ldGhvZD0iZ2V0IiBpZD0ic2FkX2Zvcm0iPgorPGlucHV0IG5hbWU9InZpY3RpbSIg
dHlwZT0idGV4dCIgcmVxdWlyZWQvPgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIg
cGF0dGVybj0iTG9yZW0gaXBzdW0iIHZhbHVlPSJMb3JlbWlwc3VtIi8+Cis8dGV4dGFyZWEgbmFt
ZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgorPC9mb3JtPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgdGhl
IGludmFsaWQgZXZlbnQgaXMgY29ycmVjdGx5IGhhbmRsZWQgYnkgZG9jdW1lbnQub25pbnZhbGlk
IGhhbmRsZXIuIik7CisKK2RvY3VtZW50Lm9uaW52YWxpZCA9IHRlc3RQYXNzZWQoJ0hhbmRsZWQn
KTsKKworaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYWRfZm9ybSIpLmNoZWNrVmFsaWRp
dHkoKSkKKyAgICB0ZXN0RmFpbGVkKCdjaGVja1ZhbGlkaXR5IHNob3VsZCBoYXZlIHJldHVybmVk
IGZhbHNlJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZh
bGlkLTAwNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAw
NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ4ZWE4
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDA0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3QgY2hlY2tzIGlmIHRoZSBp
bnZhbGlkIGV2ZW50IGlzIGNvcnJlY3RseSBoYW5kbGVkIGJ5IHdpbmRvdy5vbmludmFsaWQgaGFu
ZGxlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyAgCitQQVNTIEhhbmRsZWQK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwNC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45OGM2ZWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvaW52YWxpZC0wMDQuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGZvcm0gbWV0aG9k
PSJnZXQiIGlkPSJzYWRfZm9ybSI+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBy
ZXF1aXJlZC8+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBwYXR0ZXJuPSJMb3Jl
bSBpcHN1bSIgdmFsdWU9IkxvcmVtaXBzdW0iLz4KKzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJl
cXVpcmVkPjwvdGV4dGFyZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiB0aGUgaW52YWxpZCBldmVu
dCBpcyBjb3JyZWN0bHkgaGFuZGxlZCBieSB3aW5kb3cub25pbnZhbGlkIGhhbmRsZXIuIik7CisK
K3dpbmRvdy5vbmludmFsaWQgPSB0ZXN0UGFzc2VkKCdIYW5kbGVkJyk7CisKK2lmIChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic2FkX2Zvcm0iKS5jaGVja1ZhbGlkaXR5KCkpCisgICAgdGVzdEZh
aWxlZCgnY2hlY2tWYWxpZGl0eSBzaG91bGQgaGF2ZSByZXR1cm5lZCBmYWxzZScpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjNDE0MzUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwNS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0IGNoZWNrcyBpZiB0aGUgaW52YWxpZCBldmVudCBpcyBj
b3JyZWN0bHkgaGFuZGxlZCBvbmx5IGJ5IGxvY2FsIGhhbmRsZXIuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCisgIAorUEFTUyBJbnZhbGlkIGNvbnRyb2wKK1BBU1MgSW52YWxpZCBj
b250cm9sCitQQVNTIEludmFsaWQgY29udHJvbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2ludmFsaWQtMDA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAw
NS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwZTI2OWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwNS5odG1sCkBA
IC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8Zm9ybSBtZXRob2Q9ImdldCIgaWQ9InNhZF9mb3JtIj4KKzxpbnB1
dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHJlcXVpcmVkIG9uaW52YWxpZD0idGVzdFBhc3Nl
ZCgnSW52YWxpZCBjb250cm9sJykiLz4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQi
IHBhdHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIgb25pbnZhbGlkPSJ0ZXN0
UGFzc2VkKCdJbnZhbGlkIGNvbnRyb2wnKSIvPgorPHRleHRhcmVhIG5hbWU9InZpY3RpbSIgcmVx
dWlyZWQgb25pbnZhbGlkPSJ0ZXN0UGFzc2VkKCdJbnZhbGlkIGNvbnRyb2wnKSI+PC90ZXh0YXJl
YT4KKzwvZm9ybT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIHRoZSBpbnZhbGlkIGV2ZW50IGlzIGNvcnJlY3RseSBo
YW5kbGVkIG9ubHkgYnkgbG9jYWwgaGFuZGxlci4iKTsKKworaWYgKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzYWRfZm9ybSIpLmNoZWNrVmFsaWRpdHkoKSkKKyAgICB0ZXN0RmFpbGVkKCdjaGVj
a1ZhbGlkaXR5IHNob3VsZCBoYXZlIHJldHVybmVkIGZhbHNlJyk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAxLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ODNkNmMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAxLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRpdHkoKSBy
ZXR1cm5zIGNvcnJlY3RseSBhIHRydWUgKG1lYW5pbmcgbm8gZXJyb3IpIHJlc3VsdC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyBsb3JlbSBpcHN1bSAgCitQQVNTIHZbaV0uY2hl
Y2tWYWxpZGl0eSgpIGlzIHRydWUKK1BBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgdHJ1ZQor
UEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyB0cnVlCitQQVNTIHZbaV0uY2hlY2tWYWxpZGl0
eSgpIGlzIHRydWUKK1BBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45ZjM2MmZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8Zm9ybSBt
ZXRob2Q9ImdldCI+Cis8ZmllbGRzZXQgbmFtZT0idmljdGltIj48L2ZpZWxkc2V0PgorPGlucHV0
IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgdmFsdWU9ImxvcmVtIGlwc3VtIi8+Cis8YnV0dG9u
IG5hbWU9InZpY3RpbSI+bG9yZW0gaXBzdW08L2J1dHRvbj4KKzxzZWxlY3QgbmFtZT0idmljdGlt
Ij48L3NlbGVjdD4KKzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Cis8L2Zvcm0+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSB0cnVlICht
ZWFuaW5nIG5vIGVycm9yKSByZXN1bHQuIik7CisKK3YgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
TmFtZSgidmljdGltIik7Citmb3IgKGkgPSAwOyBpIDwgdi5sZW5ndGg7IGkrKykKKyAgICBzaG91
bGRCZSgidltpXS5jaGVja1ZhbGlkaXR5KCkiLCAidHJ1ZSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODU3OTQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0
dXJucyBjb3JyZWN0bHkgYSBmYWxzZSAobWVhbmluZyBlcnJvcikgcmVzdWx0IG9uIGludmFsaWQg
ZWxlbWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisgIAorUEFTUyB2W2ld
LmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQorUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBm
YWxzZQorUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yODcyZmFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8Zm9ybSBtZXRob2Q9
ImdldCI+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZC8+Cis8aW5w
dXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBwYXR0ZXJuPSJMb3JlbSBpcHN1bSIgdmFsdWU9
IkxvcmVtaXBzdW0iLz4KKzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFy
ZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0
bHkgYSBmYWxzZSAobWVhbmluZyBlcnJvcikgcmVzdWx0IG9uIGludmFsaWQgZWxlbWVudHMuIik7
CisKK3YgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7Citmb3IgKGkgPSAw
OyBpIDwgdi5sZW5ndGg7IGkrKykKKyAgICBzaG91bGRCZSgidltpXS5jaGVja1ZhbGlkaXR5KCki
LCAiZmFsc2UiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hl
Y2tWYWxpZGl0eS0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVj
a1ZhbGlkaXR5LTAwMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDRmNjViNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
Y2hlY2tWYWxpZGl0eS0wMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVz
dCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgdHJ1ZSAobWVh
bmluZyBubyBlcnJvcikgcmVzdWx0IG9uIGZvcm0gZWxlbWVudC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKKyBsb3JlbSBpcHN1bSAgCitQQVNTIGYuY2hlY2tWYWxpZGl0eSgpIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY0MmU4ZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDMuaHRtbApAQCAtMCwwICsx
LDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGZvcm0gbWV0aG9kPSJnZXQiIGlkPSJoYXBweV9mb3JtIj4KKzxmaWVsZHNldCBu
YW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0
IiB2YWx1ZT0ibG9yZW0gaXBzdW0iLz4KKzxidXR0b24gbmFtZT0idmljdGltIj5sb3JlbSBpcHN1
bTwvYnV0dG9uPgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iPjwvc2VsZWN0PgorPHRleHRhcmVhIG5h
bWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KKzwvZm9ybT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRp
dHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIHRydWUgKG1lYW5pbmcgbm8gZXJyb3IpIHJlc3VsdCBv
biBmb3JtIGVsZW1lbnQuIik7CisKK2YgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGFwcHlf
Zm9ybSIpOworc2hvdWxkQmUoImYuY2hlY2tWYWxpZGl0eSgpIiwgInRydWUiKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FhNjVkYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxp
ZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgdGhlcmUncyBhbiBpbnZh
bGlkIGVsZW1lbnQpIHJlc3VsdCBvbiBmb3JtIGVsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCisgbG9yZW0gaXBzdW0gIAorUEFTUyBmLmNoZWNrVmFsaWRpdHkoKSBpcyBm
YWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmE3NGE3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC5odG1sCkBAIC0wLDAgKzEs
MjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8Zm9ybSBtZXRob2Q9ImdldCIgaWQ9InNhZF9mb3JtIj4KKzxmaWVsZHNldCBuYW1l
PSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiB2
YWx1ZT0iaW52YWxpZCIgcGF0dGVybj0ic29tZXRoaW5nIi8+Cis8YnV0dG9uIG5hbWU9InZpY3Rp
bSI+bG9yZW0gaXBzdW08L2J1dHRvbj4KKzxzZWxlY3QgbmFtZT0idmljdGltIj48L3NlbGVjdD4K
Kzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBp
ZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSBmYWxzZSAobWVhbmluZyB0aGVy
ZSdzIGFuIGludmFsaWQgZWxlbWVudCkgcmVzdWx0IG9uIGZvcm0gZWxlbWVudC4iKTsKKworZiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYWRfZm9ybSIpOworc2hvdWxkQmUoImYuY2hlY2tW
YWxpZGl0eSgpIiwgImZhbHNlIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQzNjc4MzAuLjBiNDBiMDkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIg
QEAKKzIwMDktMDgtMTkgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDUyCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBjaGVja1ZhbGlkaXR5KCkgbWV0aG9kIGFuZCBpbnZhbGlkIGV2ZW50LCBmcm9t
IEhUTUw1CisgICAgICAgIHNwZWNzOgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tZm9ybS1jaGVja3ZhbGlkaXR5CisKKyAgICAg
ICAgVGVzdHM6IGZhc3QvZXZlbnRzL2ludmFsaWQtMDAxLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZXZlbnRzL2ludmFsaWQtMDAyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL2lu
dmFsaWQtMDAzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA0Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA1Lmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zv
cm1zL2NoZWNrVmFsaWRpdHktMDAzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvY2hl
Y2tWYWxpZGl0eS0wMDQuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDogb25pbnZh
bGlkIGV2ZW50IGhhbmRsZXIKKyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6IGRpdHRvCisgICAg
ICAgICogZG9tL0V2ZW50TmFtZXMuaDogYWRkZWQgaW52YWxpZCBldmVudAorICAgICAgICAqIGRv
bS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Om9uaW52YWxpZCk6IGRpdHRvCisg
ICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRPbmludmFsaWQpOiBkaXR0bworICAgICAgICAqIGRv
bS9Ob2RlLmg6IGRpdHRvCisgICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46IG9u
aW52YWxpZCBhdHRyaWJ1dGUKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbDog
YWRkZWQgY2hlY2tWYWxpZGl0eSgpIG1ldGhvZAorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KTogcGFyc2VzIG9uaW52YWxpZAorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5p
ZGw6IGFkZGVkIGNoZWNrVmFsaWRpdHkoKSBtZXRob2QKKyAgICAgICAgKiBodG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxl
bWVudDo6Y2hlY2tWYWxpZGl0eSk6IGNoZWNrVmFsaWRpdHkoKQorICAgICAgICBpbXBsZW1lbnRh
dGlvbgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxl
bWVudDo6Y2hlY2tWYWxpZGl0eSk6IGNoZWNrVmFsaWRpdHkoKSBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICBmb3IgZm9ybSBlbGVtZW50cworICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6
IGNoZWNrVmFsaWRpdHkoKSBkZWZpbml0aW9uCisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1l
bnQuaWRsOiBhZGRlZCBjaGVja1ZhbGlkaXR5KCkgbWV0aG9kCisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmlkbDogYWRkZWQgY2hlY2tWYWxpZGl0eSgpIG1ldGhvZAorICAgICAgICAq
IGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiBhZGRlZCBjaGVja1ZhbGlkaXR5KCkgbWV0aG9k
CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDogYWRkZWQgY2hlY2tWYWxp
ZGl0eSgpIG1ldGhvZAorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6b25pbnZhbGlkKTogb25pbnZhbGlkIGV2ZW50IGhhbmRsZXIKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2V0T25pbnZhbGlkKTogZGl0dG8KKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5oOiBkaXR0bworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDog
ZGl0dG8KKwogMjAwOS0wOC0xOSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggNDQ5NjZjYy4uYWNi
YTAwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCisrKyBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmlkbApAQCAtMjY0LDYgKzI2NCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAg
ICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwogICAgICAgICBh
dHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CiAgICAgICAgIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnB1dDsKKyAgICAgICAgYXR0cmlidXRl
IFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBb
RG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOwogICAgICAgICBhdHRyaWJ1dGUgW0Rv
bnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5cHJlc3M7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9u
dEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXl1cDsKQEAgLTI4NSw3ICsyODYsNiBAQCBtb2R1bGUg
Y29yZSB7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25l
bmRlZDsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZv
cm1jaGFuZ2U7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25mb3JtaW5wdXQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25pbnZhbGlkOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9ubG9hZGVkZGF0YTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbmxvYWRlZG1ldGFkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9ubG9hZHN0YXJ0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRWxl
bWVudC5pZGwgYi9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAppbmRleCAxNmFhYzg0Li5jYmIzNmQ5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2RvbS9F
bGVtZW50LmlkbApAQCAtMTQ5LDYgKzE0OSw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwogICAgICAgICBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CiAgICAgICAgIGF0dHJpYnV0ZSBb
RG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnB1dDsKKyAgICAgICAgYXR0cmlidXRlIFtEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVu
dW1dIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9ua2V5cHJlc3M7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1d
IEV2ZW50TGlzdGVuZXIgb25rZXl1cDsKQEAgLTE3MCw3ICsxNzEsNiBAQCBtb2R1bGUgY29yZSB7
CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lbmRlZDsK
ICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1jaGFu
Z2U7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3Jt
aW5wdXQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25p
bnZhbGlkOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
bG9hZGVkZGF0YTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbmxvYWRlZG1ldGFkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVu
dExpc3RlbmVyIG9ubG9hZHN0YXJ0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oIGIvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IGUwYjhlN2EuLjc3ZmY4NTMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmgKQEAgLTU3LDYgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3Jv
KGZvY3VzKSBcCiAgICAgbWFjcm8oaGFzaGNoYW5nZSkgXAogICAgIG1hY3JvKGlucHV0KSBcCisg
ICAgbWFjcm8oaW52YWxpZCkgXAogICAgIG1hY3JvKGtleWRvd24pIFwKICAgICBtYWNybyhrZXlw
cmVzcykgXAogICAgIG1hY3JvKGtleXVwKSBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcCBiL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGIwNGM5MzMuLmI0NjA4MTYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBA
IC0zMDY4LDYgKzMwNjgsMTYgQEAgdm9pZCBOb2RlOjpzZXRPbmlucHV0KFBhc3NSZWZQdHI8RXZl
bnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lcikKICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVy
KGV2ZW50TmFtZXMoKS5pbnB1dEV2ZW50LCBldmVudExpc3RlbmVyKTsKIH0KIAorRXZlbnRMaXN0
ZW5lciogTm9kZTo6b25pbnZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRl
RXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuaW52YWxpZEV2ZW50KTsKK30KKwordm9pZCBOb2Rl
OjpzZXRPbmludmFsaWQoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyKQor
eworICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmludmFsaWRFdmVu
dCwgZXZlbnRMaXN0ZW5lcik7Cit9CisKIEV2ZW50TGlzdGVuZXIqIE5vZGU6Om9ua2V5ZG93bigp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1l
cygpLmtleWRvd25FdmVudCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9XZWJD
b3JlL2RvbS9Ob2RlLmgKaW5kZXggYTU1N2Y5NC4uOTQ2NDg2MyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9kb20vTm9kZS5oCisrKyBiL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNTczLDggKzU3MywyNCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPbmNvbnRleHRtZW51KFBhc3NSZWZQdHI8RXZlbnRMaXN0
ZW5lcj4pOwogICAgIEV2ZW50TGlzdGVuZXIqIG9uZGJsY2xpY2soKSBjb25zdDsKICAgICB2b2lk
IHNldE9uZGJsY2xpY2soUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CisgICAgRXZlbnRMaXN0
ZW5lciogb25kcmFnZW50ZXIoKSBjb25zdDsKKyAgICB2b2lkIHNldE9uZHJhZ2VudGVyKFBhc3NS
ZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJhZ292ZXIoKSBj
b25zdDsKKyAgICB2b2lkIHNldE9uZHJhZ292ZXIoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7
CisgICAgRXZlbnRMaXN0ZW5lciogb25kcmFnbGVhdmUoKSBjb25zdDsKKyAgICB2b2lkIHNldE9u
ZHJhZ2xlYXZlKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworICAgIEV2ZW50TGlzdGVuZXIq
IG9uZHJvcCgpIGNvbnN0OworICAgIHZvaWQgc2V0T25kcm9wKFBhc3NSZWZQdHI8RXZlbnRMaXN0
ZW5lcj4pOworICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJhZ3N0YXJ0KCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRPbmRyYWdzdGFydChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyAgICBFdmVudExp
c3RlbmVyKiBvbmRyYWcoKSBjb25zdDsKKyAgICB2b2lkIHNldE9uZHJhZyhQYXNzUmVmUHRyPEV2
ZW50TGlzdGVuZXI+KTsKKyAgICBFdmVudExpc3RlbmVyKiBvbmRyYWdlbmQoKSBjb25zdDsKKyAg
ICB2b2lkIHNldE9uZHJhZ2VuZChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAgICBFdmVu
dExpc3RlbmVyKiBvbmlucHV0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPbmlucHV0KFBhc3NSZWZQ
dHI8RXZlbnRMaXN0ZW5lcj4pOworICAgIEV2ZW50TGlzdGVuZXIqIG9uaW52YWxpZCgpIGNvbnN0
OworICAgIHZvaWQgc2V0T25pbnZhbGlkKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAg
IEV2ZW50TGlzdGVuZXIqIG9ua2V5ZG93bigpIGNvbnN0OwogICAgIHZvaWQgc2V0T25rZXlkb3du
KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAgIEV2ZW50TGlzdGVuZXIqIG9ua2V5cHJl
c3MoKSBjb25zdDsKQEAgLTU5MywyMCArNjA5LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T25t
b3VzZXVwKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAgIEV2ZW50TGlzdGVuZXIqIG9u
bW91c2V3aGVlbCgpIGNvbnN0OwogICAgIHZvaWQgc2V0T25tb3VzZXdoZWVsKFBhc3NSZWZQdHI8
RXZlbnRMaXN0ZW5lcj4pOwotICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJhZ2VudGVyKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRPbmRyYWdlbnRlcihQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKLSAg
ICBFdmVudExpc3RlbmVyKiBvbmRyYWdvdmVyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRPbmRyYWdv
dmVyKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwotICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJh
Z2xlYXZlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRPbmRyYWdsZWF2ZShQYXNzUmVmUHRyPEV2ZW50
TGlzdGVuZXI+KTsKLSAgICBFdmVudExpc3RlbmVyKiBvbmRyb3AoKSBjb25zdDsKLSAgICB2b2lk
IHNldE9uZHJvcChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKLSAgICBFdmVudExpc3RlbmVy
KiBvbmRyYWdzdGFydCgpIGNvbnN0OwotICAgIHZvaWQgc2V0T25kcmFnc3RhcnQoUGFzc1JlZlB0
cjxFdmVudExpc3RlbmVyPik7Ci0gICAgRXZlbnRMaXN0ZW5lciogb25kcmFnKCkgY29uc3Q7Ci0g
ICAgdm9pZCBzZXRPbmRyYWcoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7Ci0gICAgRXZlbnRM
aXN0ZW5lciogb25kcmFnZW5kKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRPbmRyYWdlbmQoUGFzc1Jl
ZlB0cjxFdmVudExpc3RlbmVyPik7CiAgICAgRXZlbnRMaXN0ZW5lciogb25zY3JvbGwoKSBjb25z
dDsKICAgICB2b2lkIHNldE9uc2Nyb2xsKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAg
IEV2ZW50TGlzdGVuZXIqIG9uc2VsZWN0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbgppbmRleCAxY2FmNDczLi4wMzVjN2RjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4KQEAgLTE0Nyw2ICsxNDcsNyBAQCBvbmVycm9yCiBvbmZvY3VzCiBvbmhhc2hjaGFuZ2UKIG9u
aW5wdXQKK29uaW52YWxpZAogb25rZXlkb3duCiBvbmtleXByZXNzCiBvbmtleXVwCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmlkbAppbmRleCA1ZmQwMDc1Li5kZTNlNTA0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
QnV0dG9uRWxlbWVudC5pZGwKQEAgLTM2LDYgKzM2LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIHR5cGU7CiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
ICAgICAgICAgICB2YWx1ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAg
ICAgICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIGJvb2xlYW4gIGNoZWNrVmFsaWRpdHko
KTsKICAgICAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9y
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCBjbGljaygp
OwogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBjMDQwOWM4Li4yOTY0MzgxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKQEAgLTIyNCw2ICsyMjQsOCBAQCB2b2lkIEhUTUxFbGVtZW50OjpwYXJzZU1h
cHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCwgY3Jl
YXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CiAgICAgfSBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gb25pbnB1dEF0dHIpIHsKICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRM
aXN0ZW5lcihldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0
ZW5lcih0aGlzLCBhdHRyKSk7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25pbnZh
bGlkQXR0cikgeworICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMo
KS5pbnZhbGlkRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cikp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCmluZGV4IDRkMTEz
MDQuLmNhODU2M2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKQEAgLTI5LDYg
KzI5LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRp
dHlTdGF0ZSAgIHZhbGlkaXR5OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICBib29sZWFuICBjaGVja1ZhbGlk
aXR5KCk7CiAgICAgICAgIHZvaWQgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5k
ZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgIH07CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA5OWE4NGIxLi5jM2UyNjY4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0yNjMsNiArMjYz
LDE5IEBAIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6d2lsbFZhbGlkYXRlKCkgY29uc3QK
ICAgICByZXR1cm4gZm9ybSgpICYmICFuYW1lKCkuaXNFbXB0eSgpICYmICFkaXNhYmxlZCgpICYm
ICFpc1JlYWRPbmx5Rm9ybUNvbnRyb2woKTsKIH0KIAorYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjpjaGVja1ZhbGlkaXR5KCkKK3sKKyAgICBpZiAoIXdpbGxWYWxpZGF0ZSgpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpKSB7
CisgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnROYW1lcygpLmludmFsaWRFdmVudCwgZmFsc2Us
IHRydWUpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7
Cit9CisKIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6c2V0Q3VzdG9tVmFsaWRpdHkoY29u
c3QgU3RyaW5nJiBlcnJvcikKIHsKICAgICB2YWxpZGl0eSgpLT5zZXRDdXN0b21FcnJvck1lc3Nh
Z2UoZXJyb3IpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggMDI0MzBk
YS4uZjc3MjA0YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1l
bnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0xMDIs
NiArMTAyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgc2hvcnQgdGFiSW5kZXgoKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgYm9vbCB3aWxsVmFsaWRhdGUoKSBjb25zdDsKKyAgICBib29sIGNoZWNr
VmFsaWRpdHkoKTsKICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYpOwog
CiAgICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcCBiL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4IDUxZmIzNWYuLjNiYjRhZTMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiTWFwcGVkQXR0
cmlidXRlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9s
LmgiCisjaW5jbHVkZSAiVmFsaWRpdHlTdGF0ZS5oIgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmFuZG9tTnVtYmVyLmg+CkBA
IC01ODgsNiArNTg5LDI5IEBAIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIEhUTUxGb3JtRWxlbWVu
dDo6ZGVmYXVsdEJ1dHRvbigpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK2Jvb2wgSFRNTEZv
cm1FbGVtZW50OjpjaGVja1ZhbGlkaXR5KFZlY3RvcjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4q
IHVuaGFuZGxlZEludmFsaWRDb250cm9scykKK3sKKyAgICBWZWN0b3I8SFRNTEZvcm1Db250cm9s
RWxlbWVudCo+IGludmFsaWRDb250cm9sczsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBmb3JtRWxlbWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxl
bWVudCogY29udHJvbCA9IGZvcm1FbGVtZW50c1tpXTsKKyAgICAgICAgaWYgKGNvbnRyb2wtPndp
bGxWYWxpZGF0ZSgpICYmICFjb250cm9sLT52YWxpZGl0eSgpLT52YWxpZCgpKQorICAgICAgICAg
ICAgaW52YWxpZENvbnRyb2xzLmFwcGVuZChjb250cm9sKTsKKyAgICB9CisKKyAgICBpZiAoaW52
YWxpZENvbnRyb2xzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBmb3Ig
KHVuc2lnbmVkIG4gPSAwOyBuIDwgaW52YWxpZENvbnRyb2xzLnNpemUoKTsgKytuKSB7CisgICAg
ICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGludmFsaWRDb250cm9sID0gaW52YWxpZENvbnRy
b2xzW25dOworICAgICAgICBib29sIGV2ZW50Q2FuY2VsZWQgPSBpbnZhbGlkQ29udHJvbC0+ZGlz
cGF0Y2hFdmVudChldmVudE5hbWVzKCkuaW52YWxpZEV2ZW50LCBmYWxzZSwgdHJ1ZSk7CisgICAg
ICAgIGlmIChldmVudENhbmNlbGVkICYmIHVuaGFuZGxlZEludmFsaWRDb250cm9scykKKyAgICAg
ICAgICAgIHVuaGFuZGxlZEludmFsaWRDb250cm9scy0+YXBwZW5kKGludmFsaWRDb250cm9sKTsK
KyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8SFRNTEZvcm1Db250
cm9sRWxlbWVudD4gSFRNTEZvcm1FbGVtZW50OjplbGVtZW50Rm9yQWxpYXMoY29uc3QgQXRvbWlj
U3RyaW5nJiBhbGlhcykKIHsKICAgICBpZiAoYWxpYXMuaXNFbXB0eSgpIHx8ICFtX2VsZW1lbnRB
bGlhc2VzKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oIGIvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4IGFmZTFmZjAuLmVjYzk5M2QgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1FbGVtZW50LmgKQEAgLTEwOSw3ICsxMDksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRUYXJnZXQoY29uc3QgU3RyaW5nJik7CiAKICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBk
ZWZhdWx0QnV0dG9uKCkgY29uc3Q7Ci0gICAgCisKKyAgICBib29sIGNoZWNrVmFsaWRpdHkoVmVj
dG9yPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPiogdW5oYW5kbGVkSW52YWxpZENvbnRyb2xzID0g
MCk7CisKICAgICBQYXNzUmVmUHRyPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+IGVsZW1lbnRGb3JB
bGlhcyhjb25zdCBBdG9taWNTdHJpbmcmKTsKICAgICB2b2lkIGFkZEVsZW1lbnRBbGlhcyhIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KiwgY29uc3QgQXRvbWljU3RyaW5nJiBhbGlhcyk7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5pZGwKaW5kZXggZjNhY2E4Ny4uMjZlNzMzZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
RWxlbWVudC5pZGwKQEAgLTM5LDUgKzM5LDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAKICAg
ICAgICAgW0N1c3RvbV0gdm9pZCBzdWJtaXQoKTsKICAgICAgICAgdm9pZCByZXNldCgpOworICAg
ICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmlkbAppbmRleCBlMTVjNmI1Li4wZWZkMmVjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsCkBAIC01Niw2ICs1Niw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHVzZU1hcDsKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIHZhbHVlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdp
bGxWYWxpZGF0ZTsKKyAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsK
ICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0
VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgICAgICB2
b2lkICAgICAgICAgICAgICAgc2VsZWN0KCk7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBj
bGljaygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbCBi
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKaW5kZXggMTc3ODk1ZS4uNTNmZTg0
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCkBAIC00NSw2ICs0NSw3IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxp
ZGl0eTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
IHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHko
KTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252
ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogCiAgICAg
ICAgIC8vIE1vZGlmaWVkIGluIERPTSBMZXZlbCAyOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaWRsCmluZGV4IDVkMjg1M2UuLjg1M2U4ZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5pZGwKQEAgLTQ0LDYgKzQ0LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2b2lkICAg
ICBzZWxlY3QoKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
IHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAg
ICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIAogICAgICAgIC8vIFdpbklFICYgRmlyZUZv
eCBleHRlbnNpb246CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGRkZDhjMDMuLjgzMGM0MTUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCkBAIC0yMDQ1LDYgKzIwNDUsMTYgQEAgdm9pZCBET01XaW5kb3c6OnNldE9uY29udGV4
dG1lbnUoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyKQogICAgIHNldEF0
dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQsIGV2ZW50
TGlzdGVuZXIpOwogfQogCitFdmVudExpc3RlbmVyKiBET01XaW5kb3c6Om9uaW52YWxpZCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGdldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygp
LmludmFsaWRFdmVudCk7Cit9CisKK3ZvaWQgRE9NV2luZG93OjpzZXRPbmludmFsaWQoUGFzc1Jl
ZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyKQoreworICAgIHNldEF0dHJpYnV0ZUV2
ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmludmFsaWRFdmVudCwgZXZlbnRMaXN0ZW5lcik7Cit9
CisKIHZvaWQgRE9NV2luZG93OjpjYXB0dXJlRXZlbnRzKCkKIHsKICAgICAvLyBOb3QgaW1wbGVt
ZW50ZWQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKaW5kZXggMWM3MTIyMS4uYjEwNjJmMSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMzc0
LDYgKzM3NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRPbm1lc3Nh
Z2UoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAgICAgICAgIEV2ZW50TGlzdGVuZXIqIG9u
Y29udGV4dG1lbnUoKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRPbmNvbnRleHRtZW51KFBhc3NS
ZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworICAgICAgICBFdmVudExpc3RlbmVyKiBvbmludmFsaWQo
KSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXRPbmludmFsaWQoUGFzc1JlZlB0cjxFdmVudExpc3Rl
bmVyPik7CiAKICAgICAgICAgdm9pZCBjYXB0dXJlRXZlbnRzKCk7CiAgICAgICAgIHZvaWQgcmVs
ZWFzZUV2ZW50cygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA3YzYxNTIzLi42ZTUyMGUzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbApAQCAtMjE2LDYgKzIxNiw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZvY3VzOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmhhc2hjaGFuZ2U7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uaW5w
dXQ7CisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uaW52YWxpZDsKICAgICAgICAg
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOwogICAgICAgICBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbmtleXByZXNzOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmtleXVwOwpAQCAtMjU3LDcgKzI1OCw2IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICAvLyBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmZvcm1jaGFuZ2U7CiAgICAgICAgIC8vIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9uZm9ybWlucHV0OwogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmhhc2hjaGFuZ2U7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9uaW52YWxpZDsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25wb3BzdGF0
ZTsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hhbmdl
OwogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlZG87Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38408</attachid>
            <date>2009-08-21 16:16:35 -0700</date>
            <delta_ts>2009-08-21 16:22:18 -0700</delta_ts>
            <desc>Patch v1b</desc>
            <filename>27452-1b.patch</filename>
            <type>text/plain</type>
            <size>36166</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYmQ3NjFiLi44NjJiMDg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMDktMDgt
MTkgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDUyCisgICAgICAgIFRlc3RzIGZvciBjaGVja1Zh
bGlkaXR5KCkgbWV0aG9kIGFuZCBpbnZhbGlkIGV2ZW50LCBmcm9tIEhUTUw1CisgICAgICAgIHNw
ZWNzOgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNkb20tZm9ybS1jaGVja3ZhbGlkaXR5CisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9p
bnZhbGlkLTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lu
dmFsaWQtMDAxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDAy
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDIu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbnZhbGlkLTAwMy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbnZhbGlkLTAwNC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvaW52YWxpZC0wMDUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9t
L3Jlc291cmNlcy9kb21MaXN0RW51bWVyYXRpb24uanM6CisKIDIwMDktMDgtMTkgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQKaW5kZXggNWYwNThkNS4uYTAwYjkzMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CkBAIC0xNzM0LDYgKzE3MzQsNyBAQCB3aW5kb3cub25lcnJvciBbbnVsbF0KIHdp
bmRvdy5vbmZvY3VzIFtudWxsXQogd2luZG93Lm9uaGFzaGNoYW5nZSBbbnVsbF0KIHdpbmRvdy5v
bmlucHV0IFtudWxsXQord2luZG93Lm9uaW52YWxpZCBbbnVsbF0KIHdpbmRvdy5vbmtleWRvd24g
W251bGxdCiB3aW5kb3cub25rZXlwcmVzcyBbbnVsbF0KIHdpbmRvdy5vbmtleXVwIFtudWxsXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBlY3Rl
ZC50eHQKaW5kZXggYmI5YWRmYS4uMjc5OWM4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0zMiw3ICszMiw3IEBA
IFBBU1MgcmVzdWx0QXJyYXlbMl0uaSBpcyAnMicKIFBBU1MgcmVzdWx0QXJyYXlbMl0uaXRlbSBp
cyBuYW1lZE5vZGVNYXAuaXRlbSgyKQogCiBbb2JqZWN0IEhUTUxGb3JtRWxlbWVudF0KLVBBU1Mg
cmVzdWx0QXJyYXkubGVuZ3RoIGlzIDEzMQorUEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTMy
CiBQQVNTIHJlc3VsdEFycmF5WzBdLmkgaXMgJzAnCiBQQVNTIHJlc3VsdEFycmF5WzBdLml0ZW0g
aXMgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpWzBdCiBQQVNTIHJlc3Vs
dEFycmF5WzFdLmkgaXMgJzEnCkBAIC00MSw3ICs0MSw3IEBAIFBBU1MgcmVzdWx0QXJyYXlbMl0u
aSBpcyAnMicKIFBBU1MgcmVzdWx0QXJyYXlbMl0uaXRlbSBpcyBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnc2VsZWN0JylbMl0KIAogW29iamVjdCBIVE1MU2VsZWN0RWxlbWVudF0KLVBB
U1MgcmVzdWx0QXJyYXkubGVuZ3RoIGlzIDEzOAorUEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMg
MTM5CiBQQVNTIHJlc3VsdEFycmF5WzBdLmkgaXMgJzAnCiBQQVNTIHJlc3VsdEFycmF5WzBdLml0
ZW0gaXMgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ29wdGlvbicpWzBdCiBQQVNTIHJl
c3VsdEFycmF5WzFdLmkgaXMgJzEnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9y
ZXNvdXJjZXMvZG9tTGlzdEVudW1lcmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVz
b3VyY2VzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwppbmRleCAzM2IyZDNhLi5hMzBlZTFjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvZG9tTGlzdEVudW1lcmF0aW9u
LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy9kb21MaXN0RW51bWVyYXRp
b24uanMKQEAgLTEzMCw3ICsxMzAsNyBAQCBzaG91bGRCZSgicmVzdWx0QXJyYXlbMl0uaXRlbSIs
ICJuYW1lZE5vZGVNYXAuaXRlbSgyKSIpOwogLy8gSFRNTEZvcm1FbGVtZW50CiB2YXIgaHRtbEZv
cm1FbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Zvcm0nKVswXTsKIHJl
c3VsdEFycmF5ID0gaXRlcmF0ZUxpc3QoaHRtbEZvcm1FbGVtZW50KTsKLXNob3VsZEJlKCJyZXN1
bHRBcnJheS5sZW5ndGgiLCAiMTMxIik7CitzaG91bGRCZSgicmVzdWx0QXJyYXkubGVuZ3RoIiwg
IjEzMiIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzBdLmkiLCAiJzAnIik7CiBzaG91bGRCZSgi
cmVzdWx0QXJyYXlbMF0uaXRlbSIsICJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2Vs
ZWN0JylbMF0iKTsKIHNob3VsZEJlKCJyZXN1bHRBcnJheVsxXS5pIiwgIicxJyIpOwpAQCAtMTQx
LDcgKzE0MSw3IEBAIHNob3VsZEJlKCJyZXN1bHRBcnJheVsyXS5pdGVtIiwgImRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKVsyXSIpOwogLy8gSFRNTFNlbGVjdEVsZW1lbnQK
IHZhciBodG1sU2VsZWN0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdz
ZWxlY3QnKVswXTsKIHJlc3VsdEFycmF5ID0gaXRlcmF0ZUxpc3QoaHRtbFNlbGVjdEVsZW1lbnQp
Owotc2hvdWxkQmUoInJlc3VsdEFycmF5Lmxlbmd0aCIsICIxMzgiKTsKK3Nob3VsZEJlKCJyZXN1
bHRBcnJheS5sZW5ndGgiLCAiMTM5Iik7CiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMF0uaSIsICIn
MCciKTsKIHNob3VsZEJlKCJyZXN1bHRBcnJheVswXS5pdGVtIiwgImRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdvcHRpb24nKVswXSIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzFdLmki
LCAiJzEnIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAw
MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwMS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFjMzI3NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAxLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRp
dHkoKSBjb3JyZWN0bHkgZmlyZXMgYW4gaW52YWxpZCBldmVudCBvbiBpbnZhbGlkIGZvcm0gY29u
dHJvbCBlbGVtZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyAgCitQQVNT
IEludmFsaWQgY29udHJvbAorUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQorUEFT
UyBJbnZhbGlkIGNvbnRyb2wKK1BBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKK1BB
U1MgSW52YWxpZCBjb250cm9sCitQQVNTIHZbaV0uY2hlY2tWYWxpZGl0eSgpIGlzIGZhbHNlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDEuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMTg4NGYyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2ludmFsaWQtMDAxLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxmb3JtIG1ldGhvZD0i
Z2V0Ij4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHJlcXVpcmVkIG9uaW52YWxp
ZD0idGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJykiLz4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0i
IHR5cGU9InRleHQiIHBhdHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIgb25p
bnZhbGlkPSJ0ZXN0UGFzc2VkKCdJbnZhbGlkIGNvbnRyb2wnKSIvPgorPHRleHRhcmVhIG5hbWU9
InZpY3RpbSIgcmVxdWlyZWQgb25pbnZhbGlkPSJ0ZXN0UGFzc2VkKCdJbnZhbGlkIGNvbnRyb2wn
KSI+PC90ZXh0YXJlYT4KKzwvZm9ybT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRpdHkoKSBjb3Jy
ZWN0bHkgZmlyZXMgYW4gaW52YWxpZCBldmVudCBvbiBpbnZhbGlkIGZvcm0gY29udHJvbCBlbGVt
ZW50cy4iKTsKKwordiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKK2Zv
ciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgIHNob3VsZEJlKCJ2W2ldLmNoZWNrVmFs
aWRpdHkoKSIsICJmYWxzZSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvaW52YWxpZC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
aW52YWxpZC0wMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmM3OWFiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9p
bnZhbGlkLTAwMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0IGNoZWNr
cyBpZiBjaGVja1ZhbGlkaXR5KCkgaW52b2tlZCBvbiBhIGZvcm0gY29udHJvbCBjb3JyZWN0bHkg
YXNrcyBpdHMgZWxlbWVudHMgdG8gZmlyZSBhbiBpbnZhbGlkIGV2ZW50LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworICAKK1BBU1MgSW52YWxpZCBjb250cm9sCitQQVNTIEludmFs
aWQgY29udHJvbAorUEFTUyBJbnZhbGlkIGNvbnRyb2wKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9pbnZhbGlkLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxp
ZC0wMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGQyYTExCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDIuaHRt
bApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGZvcm0gbWV0aG9kPSJnZXQiIGlkPSJzYWRfZm9ybSI+Cis8
aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZCBvbmludmFsaWQ9InRlc3RQ
YXNzZWQoJ0ludmFsaWQgY29udHJvbCcpIi8+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0
ZXh0IiBwYXR0ZXJuPSJMb3JlbSBpcHN1bSIgdmFsdWU9IkxvcmVtaXBzdW0iIG9uaW52YWxpZD0i
dGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJykiLz4KKzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0i
IHJlcXVpcmVkIG9uaW52YWxpZD0idGVzdFBhc3NlZCgnSW52YWxpZCBjb250cm9sJykiPjwvdGV4
dGFyZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgaW52b2tlZCBvbiBh
IGZvcm0gY29udHJvbCBjb3JyZWN0bHkgYXNrcyBpdHMgZWxlbWVudHMgdG8gZmlyZSBhbiBpbnZh
bGlkIGV2ZW50LiIpOworCitpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhZF9mb3JtIiku
Y2hlY2tWYWxpZGl0eSgpKQorICAgIHRlc3RGYWlsZWQoJ2NoZWNrVmFsaWRpdHkgc2hvdWxkIGhh
dmUgcmV0dXJuZWQgZmFsc2UnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2ludmFsaWQtMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2ludmFsaWQtMDAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi43MmMyYjg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
aW52YWxpZC0wMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdCBjaGVj
a3MgaWYgdGhlIGludmFsaWQgZXZlbnQgaXMgY29ycmVjdGx5IGhhbmRsZWQgYnkgZG9jdW1lbnQu
b25pbnZhbGlkIGhhbmRsZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisgIAor
UEFTUyBIYW5kbGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZmMjUzNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDAzLmh0bWwKQEAgLTAsMCArMSwyNyBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
Kzxmb3JtIG1ldGhvZD0iZ2V0IiBpZD0ic2FkX2Zvcm0iPgorPGlucHV0IG5hbWU9InZpY3RpbSIg
dHlwZT0idGV4dCIgcmVxdWlyZWQvPgorPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIg
cGF0dGVybj0iTG9yZW0gaXBzdW0iIHZhbHVlPSJMb3JlbWlwc3VtIi8+Cis8dGV4dGFyZWEgbmFt
ZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgorPC9mb3JtPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgdGhl
IGludmFsaWQgZXZlbnQgaXMgY29ycmVjdGx5IGhhbmRsZWQgYnkgZG9jdW1lbnQub25pbnZhbGlk
IGhhbmRsZXIuIik7CisKK2RvY3VtZW50Lm9uaW52YWxpZCA9IHRlc3RQYXNzZWQoJ0hhbmRsZWQn
KTsKKworaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYWRfZm9ybSIpLmNoZWNrVmFsaWRp
dHkoKSkKKyAgICB0ZXN0RmFpbGVkKCdjaGVja1ZhbGlkaXR5IHNob3VsZCBoYXZlIHJldHVybmVk
IGZhbHNlJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZh
bGlkLTAwNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAw
NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ4ZWE4
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ludmFsaWQtMDA0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3QgY2hlY2tzIGlmIHRoZSBp
bnZhbGlkIGV2ZW50IGlzIGNvcnJlY3RseSBoYW5kbGVkIGJ5IHdpbmRvdy5vbmludmFsaWQgaGFu
ZGxlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyAgCitQQVNTIEhhbmRsZWQK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwNC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45OGM2ZWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvaW52YWxpZC0wMDQuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGZvcm0gbWV0aG9k
PSJnZXQiIGlkPSJzYWRfZm9ybSI+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBy
ZXF1aXJlZC8+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBwYXR0ZXJuPSJMb3Jl
bSBpcHN1bSIgdmFsdWU9IkxvcmVtaXBzdW0iLz4KKzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJl
cXVpcmVkPjwvdGV4dGFyZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiB0aGUgaW52YWxpZCBldmVu
dCBpcyBjb3JyZWN0bHkgaGFuZGxlZCBieSB3aW5kb3cub25pbnZhbGlkIGhhbmRsZXIuIik7CisK
K3dpbmRvdy5vbmludmFsaWQgPSB0ZXN0UGFzc2VkKCdIYW5kbGVkJyk7CisKK2lmIChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic2FkX2Zvcm0iKS5jaGVja1ZhbGlkaXR5KCkpCisgICAgdGVzdEZh
aWxlZCgnY2hlY2tWYWxpZGl0eSBzaG91bGQgaGF2ZSByZXR1cm5lZCBmYWxzZScpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW52YWxpZC0wMDUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjNDE0MzUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwNS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0IGNoZWNrcyBpZiB0aGUgaW52YWxpZCBldmVudCBpcyBj
b3JyZWN0bHkgaGFuZGxlZCBvbmx5IGJ5IGxvY2FsIGhhbmRsZXIuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCisgIAorUEFTUyBJbnZhbGlkIGNvbnRyb2wKK1BBU1MgSW52YWxpZCBj
b250cm9sCitQQVNTIEludmFsaWQgY29udHJvbAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2ludmFsaWQtMDA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAw
NS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwZTI2OWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbnZhbGlkLTAwNS5odG1sCkBA
IC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8Zm9ybSBtZXRob2Q9ImdldCIgaWQ9InNhZF9mb3JtIj4KKzxpbnB1
dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHJlcXVpcmVkIG9uaW52YWxpZD0idGVzdFBhc3Nl
ZCgnSW52YWxpZCBjb250cm9sJykiLz4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQi
IHBhdHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIgb25pbnZhbGlkPSJ0ZXN0
UGFzc2VkKCdJbnZhbGlkIGNvbnRyb2wnKSIvPgorPHRleHRhcmVhIG5hbWU9InZpY3RpbSIgcmVx
dWlyZWQgb25pbnZhbGlkPSJ0ZXN0UGFzc2VkKCdJbnZhbGlkIGNvbnRyb2wnKSI+PC90ZXh0YXJl
YT4KKzwvZm9ybT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIHRoZSBpbnZhbGlkIGV2ZW50IGlzIGNvcnJlY3RseSBo
YW5kbGVkIG9ubHkgYnkgbG9jYWwgaGFuZGxlci4iKTsKKworaWYgKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzYWRfZm9ybSIpLmNoZWNrVmFsaWRpdHkoKSkKKyAgICB0ZXN0RmFpbGVkKCdjaGVj
a1ZhbGlkaXR5IHNob3VsZCBoYXZlIHJldHVybmVkIGZhbHNlJyk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAxLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ODNkNmMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAxLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRpdHkoKSBy
ZXR1cm5zIGNvcnJlY3RseSBhIHRydWUgKG1lYW5pbmcgbm8gZXJyb3IpIHJlc3VsdC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyBsb3JlbSBpcHN1bSAgCitQQVNTIHZbaV0uY2hl
Y2tWYWxpZGl0eSgpIGlzIHRydWUKK1BBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgdHJ1ZQor
UEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyB0cnVlCitQQVNTIHZbaV0uY2hlY2tWYWxpZGl0
eSgpIGlzIHRydWUKK1BBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45ZjM2MmZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8Zm9ybSBt
ZXRob2Q9ImdldCI+Cis8ZmllbGRzZXQgbmFtZT0idmljdGltIj48L2ZpZWxkc2V0PgorPGlucHV0
IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgdmFsdWU9ImxvcmVtIGlwc3VtIi8+Cis8YnV0dG9u
IG5hbWU9InZpY3RpbSI+bG9yZW0gaXBzdW08L2J1dHRvbj4KKzxzZWxlY3QgbmFtZT0idmljdGlt
Ij48L3NlbGVjdD4KKzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Cis8L2Zvcm0+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSB0cnVlICht
ZWFuaW5nIG5vIGVycm9yKSByZXN1bHQuIik7CisKK3YgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
TmFtZSgidmljdGltIik7Citmb3IgKGkgPSAwOyBpIDwgdi5sZW5ndGg7IGkrKykKKyAgICBzaG91
bGRCZSgidltpXS5jaGVja1ZhbGlkaXR5KCkiLCAidHJ1ZSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODU3OTQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0
dXJucyBjb3JyZWN0bHkgYSBmYWxzZSAobWVhbmluZyBlcnJvcikgcmVzdWx0IG9uIGludmFsaWQg
ZWxlbWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisgIAorUEFTUyB2W2ld
LmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQorUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBm
YWxzZQorUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yODcyZmFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8Zm9ybSBtZXRob2Q9
ImdldCI+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZC8+Cis8aW5w
dXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBwYXR0ZXJuPSJMb3JlbSBpcHN1bSIgdmFsdWU9
IkxvcmVtaXBzdW0iLz4KKzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFy
ZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0
bHkgYSBmYWxzZSAobWVhbmluZyBlcnJvcikgcmVzdWx0IG9uIGludmFsaWQgZWxlbWVudHMuIik7
CisKK3YgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7Citmb3IgKGkgPSAw
OyBpIDwgdi5sZW5ndGg7IGkrKykKKyAgICBzaG91bGRCZSgidltpXS5jaGVja1ZhbGlkaXR5KCki
LCAiZmFsc2UiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hl
Y2tWYWxpZGl0eS0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVj
a1ZhbGlkaXR5LTAwMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDRmNjViNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
Y2hlY2tWYWxpZGl0eS0wMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVz
dCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgdHJ1ZSAobWVh
bmluZyBubyBlcnJvcikgcmVzdWx0IG9uIGZvcm0gZWxlbWVudC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKKyBsb3JlbSBpcHN1bSAgCitQQVNTIGYuY2hlY2tWYWxpZGl0eSgpIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY0MmU4ZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDMuaHRtbApAQCAtMCwwICsx
LDI3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGZvcm0gbWV0aG9kPSJnZXQiIGlkPSJoYXBweV9mb3JtIj4KKzxmaWVsZHNldCBu
YW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0
IiB2YWx1ZT0ibG9yZW0gaXBzdW0iLz4KKzxidXR0b24gbmFtZT0idmljdGltIj5sb3JlbSBpcHN1
bTwvYnV0dG9uPgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iPjwvc2VsZWN0PgorPHRleHRhcmVhIG5h
bWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KKzwvZm9ybT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRp
dHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIHRydWUgKG1lYW5pbmcgbm8gZXJyb3IpIHJlc3VsdCBv
biBmb3JtIGVsZW1lbnQuIik7CisKK2YgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGFwcHlf
Zm9ybSIpOworc2hvdWxkQmUoImYuY2hlY2tWYWxpZGl0eSgpIiwgInRydWUiKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FhNjVkYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxp
ZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgdGhlcmUncyBhbiBpbnZh
bGlkIGVsZW1lbnQpIHJlc3VsdCBvbiBmb3JtIGVsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCisgbG9yZW0gaXBzdW0gIAorUEFTUyBmLmNoZWNrVmFsaWRpdHkoKSBpcyBm
YWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmE3NGE3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwNC5odG1sCkBAIC0wLDAgKzEs
MjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8Zm9ybSBtZXRob2Q9ImdldCIgaWQ9InNhZF9mb3JtIj4KKzxmaWVsZHNldCBuYW1l
PSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiB2
YWx1ZT0iaW52YWxpZCIgcGF0dGVybj0ic29tZXRoaW5nIi8+Cis8YnV0dG9uIG5hbWU9InZpY3Rp
bSI+bG9yZW0gaXBzdW08L2J1dHRvbj4KKzxzZWxlY3QgbmFtZT0idmljdGltIj48L3NlbGVjdD4K
Kzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBp
ZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSBmYWxzZSAobWVhbmluZyB0aGVy
ZSdzIGFuIGludmFsaWQgZWxlbWVudCkgcmVzdWx0IG9uIGZvcm0gZWxlbWVudC4iKTsKKworZiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYWRfZm9ybSIpOworc2hvdWxkQmUoImYuY2hlY2tW
YWxpZGl0eSgpIiwgImZhbHNlIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQzNjc4MzAuLjBiNDBiMDkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIg
QEAKKzIwMDktMDgtMTkgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDUyCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBjaGVja1ZhbGlkaXR5KCkgbWV0aG9kIGFuZCBpbnZhbGlkIGV2ZW50LCBmcm9t
IEhUTUw1CisgICAgICAgIHNwZWNzOgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tZm9ybS1jaGVja3ZhbGlkaXR5CisKKyAgICAg
ICAgVGVzdHM6IGZhc3QvZXZlbnRzL2ludmFsaWQtMDAxLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZXZlbnRzL2ludmFsaWQtMDAyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL2lu
dmFsaWQtMDAzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA0Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL2ludmFsaWQtMDA1Lmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDEuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zv
cm1zL2NoZWNrVmFsaWRpdHktMDAzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvY2hl
Y2tWYWxpZGl0eS0wMDQuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDogb25pbnZh
bGlkIGV2ZW50IGhhbmRsZXIKKyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6IGRpdHRvCisgICAg
ICAgICogZG9tL0V2ZW50TmFtZXMuaDogYWRkZWQgaW52YWxpZCBldmVudAorICAgICAgICAqIGRv
bS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Om9uaW52YWxpZCk6IGRpdHRvCisg
ICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRPbmludmFsaWQpOiBkaXR0bworICAgICAgICAqIGRv
bS9Ob2RlLmg6IGRpdHRvCisgICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46IG9u
aW52YWxpZCBhdHRyaWJ1dGUKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbDog
YWRkZWQgY2hlY2tWYWxpZGl0eSgpIG1ldGhvZAorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KTogcGFyc2VzIG9uaW52YWxpZAorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5p
ZGw6IGFkZGVkIGNoZWNrVmFsaWRpdHkoKSBtZXRob2QKKyAgICAgICAgKiBodG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxl
bWVudDo6Y2hlY2tWYWxpZGl0eSk6IGNoZWNrVmFsaWRpdHkoKQorICAgICAgICBpbXBsZW1lbnRh
dGlvbgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxl
bWVudDo6Y2hlY2tWYWxpZGl0eSk6IGNoZWNrVmFsaWRpdHkoKSBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICBmb3IgZm9ybSBlbGVtZW50cworICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6
IGNoZWNrVmFsaWRpdHkoKSBkZWZpbml0aW9uCisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1l
bnQuaWRsOiBhZGRlZCBjaGVja1ZhbGlkaXR5KCkgbWV0aG9kCisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmlkbDogYWRkZWQgY2hlY2tWYWxpZGl0eSgpIG1ldGhvZAorICAgICAgICAq
IGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiBhZGRlZCBjaGVja1ZhbGlkaXR5KCkgbWV0aG9k
CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDogYWRkZWQgY2hlY2tWYWxp
ZGl0eSgpIG1ldGhvZAorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6b25pbnZhbGlkKTogb25pbnZhbGlkIGV2ZW50IGhhbmRsZXIKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2V0T25pbnZhbGlkKTogZGl0dG8KKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5oOiBkaXR0bworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDog
ZGl0dG8KKwogMjAwOS0wOC0xOSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggNDQ5NjZjYy4uYWNi
YTAwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCisrKyBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmlkbApAQCAtMjY0LDYgKzI2NCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAg
ICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwogICAgICAgICBh
dHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CiAgICAgICAgIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnB1dDsKKyAgICAgICAgYXR0cmlidXRl
IFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBb
RG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOwogICAgICAgICBhdHRyaWJ1dGUgW0Rv
bnRFbnVtXSBFdmVudExpc3RlbmVyIG9ua2V5cHJlc3M7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9u
dEVudW1dIEV2ZW50TGlzdGVuZXIgb25rZXl1cDsKQEAgLTI4NSw3ICsyODYsNiBAQCBtb2R1bGUg
Y29yZSB7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25l
bmRlZDsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZv
cm1jaGFuZ2U7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIg
b25mb3JtaW5wdXQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25pbnZhbGlkOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9ubG9hZGVkZGF0YTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbmxvYWRlZG1ldGFkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9ubG9hZHN0YXJ0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRWxl
bWVudC5pZGwgYi9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAppbmRleCAxNmFhYzg0Li5jYmIzNmQ5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2RvbS9F
bGVtZW50LmlkbApAQCAtMTQ5LDYgKzE0OSw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwogICAgICAgICBhdHRyaWJ1
dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CiAgICAgICAgIGF0dHJpYnV0ZSBb
RG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25pbnB1dDsKKyAgICAgICAgYXR0cmlidXRlIFtEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVu
dW1dIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9ua2V5cHJlc3M7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1d
IEV2ZW50TGlzdGVuZXIgb25rZXl1cDsKQEAgLTE3MCw3ICsxNzEsNiBAQCBtb2R1bGUgY29yZSB7
CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lbmRlZDsK
ICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmZvcm1jaGFu
Z2U7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25mb3Jt
aW5wdXQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25p
bnZhbGlkOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9u
bG9hZGVkZGF0YTsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5l
ciBvbmxvYWRlZG1ldGFkYXRhOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVu
dExpc3RlbmVyIG9ubG9hZHN0YXJ0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5oIGIvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCmluZGV4IGUwYjhlN2EuLjc3ZmY4NTMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmgKQEAgLTU3LDYgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3Jv
KGZvY3VzKSBcCiAgICAgbWFjcm8oaGFzaGNoYW5nZSkgXAogICAgIG1hY3JvKGlucHV0KSBcCisg
ICAgbWFjcm8oaW52YWxpZCkgXAogICAgIG1hY3JvKGtleWRvd24pIFwKICAgICBtYWNybyhrZXlw
cmVzcykgXAogICAgIG1hY3JvKGtleXVwKSBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcCBiL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGIwNGM5MzMuLmI0NjA4MTYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBA
IC0zMDY4LDYgKzMwNjgsMTYgQEAgdm9pZCBOb2RlOjpzZXRPbmlucHV0KFBhc3NSZWZQdHI8RXZl
bnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lcikKICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVy
KGV2ZW50TmFtZXMoKS5pbnB1dEV2ZW50LCBldmVudExpc3RlbmVyKTsKIH0KIAorRXZlbnRMaXN0
ZW5lciogTm9kZTo6b25pbnZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRl
RXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuaW52YWxpZEV2ZW50KTsKK30KKwordm9pZCBOb2Rl
OjpzZXRPbmludmFsaWQoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyKQor
eworICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmludmFsaWRFdmVu
dCwgZXZlbnRMaXN0ZW5lcik7Cit9CisKIEV2ZW50TGlzdGVuZXIqIE5vZGU6Om9ua2V5ZG93bigp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1l
cygpLmtleWRvd25FdmVudCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9XZWJD
b3JlL2RvbS9Ob2RlLmgKaW5kZXggYTU1N2Y5NC4uOTQ2NDg2MyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9kb20vTm9kZS5oCisrKyBiL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNTczLDggKzU3MywyNCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPbmNvbnRleHRtZW51KFBhc3NSZWZQdHI8RXZlbnRMaXN0
ZW5lcj4pOwogICAgIEV2ZW50TGlzdGVuZXIqIG9uZGJsY2xpY2soKSBjb25zdDsKICAgICB2b2lk
IHNldE9uZGJsY2xpY2soUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CisgICAgRXZlbnRMaXN0
ZW5lciogb25kcmFnZW50ZXIoKSBjb25zdDsKKyAgICB2b2lkIHNldE9uZHJhZ2VudGVyKFBhc3NS
ZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJhZ292ZXIoKSBj
b25zdDsKKyAgICB2b2lkIHNldE9uZHJhZ292ZXIoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7
CisgICAgRXZlbnRMaXN0ZW5lciogb25kcmFnbGVhdmUoKSBjb25zdDsKKyAgICB2b2lkIHNldE9u
ZHJhZ2xlYXZlKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworICAgIEV2ZW50TGlzdGVuZXIq
IG9uZHJvcCgpIGNvbnN0OworICAgIHZvaWQgc2V0T25kcm9wKFBhc3NSZWZQdHI8RXZlbnRMaXN0
ZW5lcj4pOworICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJhZ3N0YXJ0KCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRPbmRyYWdzdGFydChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyAgICBFdmVudExp
c3RlbmVyKiBvbmRyYWcoKSBjb25zdDsKKyAgICB2b2lkIHNldE9uZHJhZyhQYXNzUmVmUHRyPEV2
ZW50TGlzdGVuZXI+KTsKKyAgICBFdmVudExpc3RlbmVyKiBvbmRyYWdlbmQoKSBjb25zdDsKKyAg
ICB2b2lkIHNldE9uZHJhZ2VuZChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAgICBFdmVu
dExpc3RlbmVyKiBvbmlucHV0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPbmlucHV0KFBhc3NSZWZQ
dHI8RXZlbnRMaXN0ZW5lcj4pOworICAgIEV2ZW50TGlzdGVuZXIqIG9uaW52YWxpZCgpIGNvbnN0
OworICAgIHZvaWQgc2V0T25pbnZhbGlkKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAg
IEV2ZW50TGlzdGVuZXIqIG9ua2V5ZG93bigpIGNvbnN0OwogICAgIHZvaWQgc2V0T25rZXlkb3du
KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAgIEV2ZW50TGlzdGVuZXIqIG9ua2V5cHJl
c3MoKSBjb25zdDsKQEAgLTU5MywyMCArNjA5LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T25t
b3VzZXVwKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAgIEV2ZW50TGlzdGVuZXIqIG9u
bW91c2V3aGVlbCgpIGNvbnN0OwogICAgIHZvaWQgc2V0T25tb3VzZXdoZWVsKFBhc3NSZWZQdHI8
RXZlbnRMaXN0ZW5lcj4pOwotICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJhZ2VudGVyKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRPbmRyYWdlbnRlcihQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKLSAg
ICBFdmVudExpc3RlbmVyKiBvbmRyYWdvdmVyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRPbmRyYWdv
dmVyKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwotICAgIEV2ZW50TGlzdGVuZXIqIG9uZHJh
Z2xlYXZlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRPbmRyYWdsZWF2ZShQYXNzUmVmUHRyPEV2ZW50
TGlzdGVuZXI+KTsKLSAgICBFdmVudExpc3RlbmVyKiBvbmRyb3AoKSBjb25zdDsKLSAgICB2b2lk
IHNldE9uZHJvcChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKLSAgICBFdmVudExpc3RlbmVy
KiBvbmRyYWdzdGFydCgpIGNvbnN0OwotICAgIHZvaWQgc2V0T25kcmFnc3RhcnQoUGFzc1JlZlB0
cjxFdmVudExpc3RlbmVyPik7Ci0gICAgRXZlbnRMaXN0ZW5lciogb25kcmFnKCkgY29uc3Q7Ci0g
ICAgdm9pZCBzZXRPbmRyYWcoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7Ci0gICAgRXZlbnRM
aXN0ZW5lciogb25kcmFnZW5kKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRPbmRyYWdlbmQoUGFzc1Jl
ZlB0cjxFdmVudExpc3RlbmVyPik7CiAgICAgRXZlbnRMaXN0ZW5lciogb25zY3JvbGwoKSBjb25z
dDsKICAgICB2b2lkIHNldE9uc2Nyb2xsKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAg
IEV2ZW50TGlzdGVuZXIqIG9uc2VsZWN0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1l
cy5pbgppbmRleCAxY2FmNDczLi4wMzVjN2RjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4KQEAgLTE0Nyw2ICsxNDcsNyBAQCBvbmVycm9yCiBvbmZvY3VzCiBvbmhhc2hjaGFuZ2UKIG9u
aW5wdXQKK29uaW52YWxpZAogb25rZXlkb3duCiBvbmtleXByZXNzCiBvbmtleXVwCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmlkbAppbmRleCA1ZmQwMDc1Li5kZTNlNTA0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
QnV0dG9uRWxlbWVudC5pZGwKQEAgLTM2LDYgKzM2LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIHR5cGU7CiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
ICAgICAgICAgICB2YWx1ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAg
ICAgICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIGJvb2xlYW4gIGNoZWNrVmFsaWRpdHko
KTsKICAgICAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9y
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCBjbGljaygp
OwogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBjMDQwOWM4Li4yOTY0MzgxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKQEAgLTIyNCw2ICsyMjQsOCBAQCB2b2lkIEhUTUxFbGVtZW50OjpwYXJzZU1h
cHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCwgY3Jl
YXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CiAgICAgfSBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gb25pbnB1dEF0dHIpIHsKICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRM
aXN0ZW5lcihldmVudE5hbWVzKCkuaW5wdXRFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0
ZW5lcih0aGlzLCBhdHRyKSk7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25pbnZh
bGlkQXR0cikgeworICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMo
KS5pbnZhbGlkRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cikp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCmluZGV4IDRkMTEz
MDQuLmNhODU2M2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKQEAgLTI5LDYg
KzI5LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRp
dHlTdGF0ZSAgIHZhbGlkaXR5OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICBib29sZWFuICBjaGVja1ZhbGlk
aXR5KCk7CiAgICAgICAgIHZvaWQgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5k
ZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgIH07CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA5OWE4NGIxLi44MGQ4M2Jl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0yNjMsNiArMjYz
LDE2IEBAIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6d2lsbFZhbGlkYXRlKCkgY29uc3QK
ICAgICByZXR1cm4gZm9ybSgpICYmICFuYW1lKCkuaXNFbXB0eSgpICYmICFkaXNhYmxlZCgpICYm
ICFpc1JlYWRPbmx5Rm9ybUNvbnRyb2woKTsKIH0KIAorYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjpjaGVja1ZhbGlkaXR5KCkKK3sKKyAgICBpZiAod2lsbFZhbGlkYXRlKCkgJiYgIWlzVmFs
aWRGb3JtQ29udHJvbEVsZW1lbnQoKSkgeworICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50TmFt
ZXMoKS5pbnZhbGlkRXZlbnQsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OnNldEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYgZXJyb3IpCiB7CiAgICAgdmFsaWRp
dHkoKS0+c2V0Q3VzdG9tRXJyb3JNZXNzYWdlKGVycm9yKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5oCmluZGV4IDAyNDMwZGEuLmY3NzIwNGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHNob3J0IHRhYkluZGV4KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRl
KCkgY29uc3Q7CisgICAgYm9vbCBjaGVja1ZhbGlkaXR5KCk7CiAgICAgdm9pZCBzZXRDdXN0b21W
YWxpZGl0eShjb25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3Npbmco
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxG
b3JtRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRleCA1
MWZiMzVmLi5lODIyMjBlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50
LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtNDcsNiArNDcs
NyBAQAogI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgorI2luY2x1ZGUgIlZhbGlkaXR5U3RhdGUuaCIK
ICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL1JhbmRvbU51bWJlci5oPgpAQCAtNTg4LDYgKzU4OSwyMCBAQCBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50KiBIVE1MRm9ybUVsZW1lbnQ6OmRlZmF1bHRCdXR0b24oKSBjb25zdAogICAgIHJl
dHVybiAwOwogfQogCitib29sIEhUTUxGb3JtRWxlbWVudDo6Y2hlY2tWYWxpZGl0eSgpCit7Cisg
ICAgLy8gVE9ETzogQ2hlY2sgZm9yIHVuaGFuZGxlZCBpbnZhbGlkIGNvbnRyb2xzLCBzZWUgIzI3
NDUyIGZvciB0aXBzLgorCisgICAgYm9vbCBoYXNPbmx5VmFsaWRDb250cm9scyA9IHRydWU7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZvcm1FbGVtZW50cy5zaXplKCk7ICsraSkgewor
ICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb250cm9sID0gZm9ybUVsZW1lbnRzW2ld
OworICAgICAgICBpZiAoIWNvbnRyb2wtPmNoZWNrVmFsaWRpdHkoKSkKKyAgICAgICAgICAgIGhh
c09ubHlWYWxpZENvbnRyb2xzID0gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIGhhc09ubHlW
YWxpZENvbnRyb2xzOworfQorCiBQYXNzUmVmUHRyPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+IEhU
TUxGb3JtRWxlbWVudDo6ZWxlbWVudEZvckFsaWFzKGNvbnN0IEF0b21pY1N0cmluZyYgYWxpYXMp
CiB7CiAgICAgaWYgKGFsaWFzLmlzRW1wdHkoKSB8fCAhbV9lbGVtZW50QWxpYXNlcykKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuaAppbmRleCBhZmUxZmYwLi4zY2JhZDg2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5oCkBAIC0xMDksNyArMTA5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGFyZ2V0KGNvbnN0
IFN0cmluZyYpOwogCiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogZGVmYXVsdEJ1dHRvbigp
IGNvbnN0OwotICAgIAorCisgICAgYm9vbCBjaGVja1ZhbGlkaXR5KCk7CisKICAgICBQYXNzUmVm
UHRyPEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+IGVsZW1lbnRGb3JBbGlhcyhjb25zdCBBdG9taWNT
dHJpbmcmKTsKICAgICB2b2lkIGFkZEVsZW1lbnRBbGlhcyhIVE1MRm9ybUNvbnRyb2xFbGVtZW50
KiwgY29uc3QgQXRvbWljU3RyaW5nJiBhbGlhcyk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwK
aW5kZXggZjNhY2E4Ny4uMjZlNzMzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwKQEAgLTM5
LDUgKzM5LDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAKICAgICAgICAgW0N1c3RvbV0gdm9p
ZCBzdWJtaXQoKTsKICAgICAgICAgdm9pZCByZXNldCgpOworICAgICAgICBib29sZWFuICBjaGVj
a1ZhbGlkaXR5KCk7CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBl
MTVjNmI1Li4wZWZkMmVjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC01Niw2ICs1
Niw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHVzZU1hcDsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAg
ICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCAgICAg
ICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAg
c2VsZWN0KCk7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBjbGljaygpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5pZGwKaW5kZXggMTc3ODk1ZS4uNTNmZTg0OCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaWRsCkBAIC00NSw2ICs0NSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxpZGl0eTsKICNlbmRpZgogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAg
ICAgICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCAg
ICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogCiAgICAgICAgIC8vIE1vZGlmaWVkIGlu
IERPTSBMZXZlbCAyOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCmluZGV4IDVkMjg1
M2UuLjg1M2U4ZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKQEAgLTQ0LDYg
KzQ0LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2b2lkICAgICBzZWxlY3QoKTsKIAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAg
ICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lkICAgICBzZXRDdXN0
b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIGVycm9yKTsKIAogICAgICAgIC8vIFdpbklFICYgRmlyZUZveCBleHRlbnNpb246CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCmluZGV4IGRkZDhjMDMuLjgzMGM0MTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0yMDQ1LDYg
KzIwNDUsMTYgQEAgdm9pZCBET01XaW5kb3c6OnNldE9uY29udGV4dG1lbnUoUGFzc1JlZlB0cjxF
dmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyKQogICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQsIGV2ZW50TGlzdGVuZXIpOwogfQogCitF
dmVudExpc3RlbmVyKiBET01XaW5kb3c6Om9uaW52YWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGdldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmludmFsaWRFdmVudCk7Cit9
CisKK3ZvaWQgRE9NV2luZG93OjpzZXRPbmludmFsaWQoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVy
PiBldmVudExpc3RlbmVyKQoreworICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnRO
YW1lcygpLmludmFsaWRFdmVudCwgZXZlbnRMaXN0ZW5lcik7Cit9CisKIHZvaWQgRE9NV2luZG93
OjpjYXB0dXJlRXZlbnRzKCkKIHsKICAgICAvLyBOb3QgaW1wbGVtZW50ZWQuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5k
ZXggMWM3MTIyMS4uYjEwNjJmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
CisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMzc0LDYgKzM3NCw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRPbm1lc3NhZ2UoUGFzc1JlZlB0cjxFdmVu
dExpc3RlbmVyPik7CiAgICAgICAgIEV2ZW50TGlzdGVuZXIqIG9uY29udGV4dG1lbnUoKSBjb25z
dDsKICAgICAgICAgdm9pZCBzZXRPbmNvbnRleHRtZW51KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5l
cj4pOworICAgICAgICBFdmVudExpc3RlbmVyKiBvbmludmFsaWQoKSBjb25zdDsKKyAgICAgICAg
dm9pZCBzZXRPbmludmFsaWQoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAKICAgICAgICAg
dm9pZCBjYXB0dXJlRXZlbnRzKCk7CiAgICAgICAgIHZvaWQgcmVsZWFzZUV2ZW50cygpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbAppbmRleCA3YzYxNTIzLi42ZTUyMGUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMjE2LDYg
KzIxNiw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmZvY3VzOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmhhc2hjaGFuZ2U7
CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uaW5wdXQ7CisgICAgICAgIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9uaW52YWxpZDsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25rZXlkb3duOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmtleXBy
ZXNzOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmtleXVwOwpAQCAtMjU3LDcg
KzI1OCw2IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmZvcm1jaGFuZ2U7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
Zm9ybWlucHV0OwogICAgICAgICAvLyBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmhhc2hjaGFu
Z2U7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uaW52YWxpZDsKICAgICAg
ICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25wb3BzdGF0ZTsKICAgICAgICAgLy8gYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hhbmdlOwogICAgICAgICAvLyBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlZG87Cg==
</data>
<flag name="review"
          id="19439"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>