<?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>29069</bug_id>
          
          <creation_ts>2009-09-08 23:04:24 -0700</creation_ts>
          <short_desc>[HTML5][Forms] min/max attributes support for type=number</short_desc>
          <delta_ts>2009-10-06 18:27:13 -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#number-state</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>27450</blocked>
    
    <blocked>27451</blocked>
    
    <blocked>27968</blocked>
    
    <blocked>29071</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>adele</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>michelangelo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>145655</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-08 23:04:24 -0700</bug_when>
    <thetext>Implement min/max attributes and ValidityState.rangeUnderflow and .rangeOverflow for &lt;input type=number&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145656</commentid>
    <comment_count>1</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-08 23:06:06 -0700</bug_when>
    <thetext>I&apos;m working on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146068</commentid>
    <comment_count>2</comment_count>
      <attachid>39319</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-09 20:01:04 -0700</bug_when>
    <thetext>Created attachment 39319
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148726</commentid>
    <comment_count>3</comment_count>
      <attachid>39858</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-21 10:03:19 -0700</bug_when>
    <thetext>Created attachment 39858
Proposed patch (rev.2)

resources/ -&gt; script-tests/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149450</commentid>
    <comment_count>4</comment_count>
      <attachid>39858</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-23 10:54:04 -0700</bug_when>
    <thetext>Comment on attachment 39858
Proposed patch (rev.2)

Reversed, no?
 53     double maximum;  // maximum must be &lt;= minimum.

Tab, will cause commit to fail:
 13 	testPassed(resultText);

I would have probably written a little static inline function to help grab the numbers, but I think my &quot;make a function&quot; threshold is lower than most others:
         double min;
 202         double doubleValue;
 203         if (hasAttribute(minAttr) &amp;&amp; formStringToDouble(getAttribute(minAttr).string(), &amp;min) &amp;&amp; formStringToDouble(value(), &amp;doubleValue))
 204             return doubleValue &lt; min;

This comment mostly confuses me:
 249                 max = min;  // The spec allows min == max.
I&apos;m not surprised that min is allowed to equal max.

Why not write that whole if as:

max = max(min, max(100, max))
obviously you&apos;d have to use std:: or change the name of max.

r- for the nits.  Really only the backwards comment, the rest doesn&apos;t need to be changed.  If you were a committer, I would r+ this and you could commit it with mods yourself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149577</commentid>
    <comment_count>5</comment_count>
      <attachid>40033</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-23 17:38:38 -0700</bug_when>
    <thetext>Created attachment 40033
Proposed patch (rev.3)

&gt; Reversed, no?
&gt;  53     double maximum;  // maximum must be &lt;= minimum.

Right!  Fixed.

&gt; Tab, will cause commit to fail:
&gt;  13     testPassed(resultText);

Fixed 8 instances in 4 files.

&gt; I would have probably written a little static inline function to help grab the
&gt; numbers, but I think my &quot;make a function&quot; threshold is lower than most others:
&gt;          double min;
&gt;  202         double doubleValue;
&gt;  203         if (hasAttribute(minAttr) &amp;&amp; formStringToDouble(getAttribute(minAttr).string(), &amp;min) &amp;&amp; formStringToDouble(value(), &amp;doubleValue))
&gt;  204             return doubleValue &lt; min;

I didn&apos;t make a such function, and simplified this code by removing hasAttribute() and .string() instead.  formStringToDouble() returns false if the input string is null.

&gt; This comment mostly confuses me:
&gt;  249                 max = min;  // The spec allows min == max.
&gt; I&apos;m not surprised that min is allowed to equal max.

I improved the code and comments here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152196</commentid>
    <comment_count>6</comment_count>
      <attachid>40601</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-04 19:08:12 -0700</bug_when>
    <thetext>Created attachment 40601
Proposed patch (rev.4)

Resolved conflicts with today&apos;s WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152197</commentid>
    <comment_count>7</comment_count>
      <attachid>40601</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-04 19:27:14 -0700</bug_when>
    <thetext>Comment on attachment 40601
Proposed patch (rev.4)

&gt; +    // Returns the minimum value for type=range.  Don&apos;t call this for other types.
&gt; +    double minRange() const;

I think this should be named rangeMinimum(), not minRange(), which sounds like &quot;minimum range&quot; to me.

&gt; +    // Returns the maximum value for type=range.  Don&apos;t call this for other types.
&gt; +    // This always returns a value which is &lt;= minRange().
&gt; +    double maxRange() const;

And rangeMaximum() for this.

Otherwise seems fine to me, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152198</commentid>
    <comment_count>8</comment_count>
      <attachid>40602</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-04 19:36:35 -0700</bug_when>
    <thetext>Created attachment 40602
Proposed patch (rev.5)

Renamed minRange() to rangeMinimum(), maxRange() to rangeMaximum().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152200</commentid>
    <comment_count>9</comment_count>
      <attachid>40602</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-04 20:18:50 -0700</bug_when>
    <thetext>Comment on attachment 40602
Proposed patch (rev.5)

&gt; +        (WebCore::HTMLInputElement::minRange):
&gt; +        (WebCore::HTMLInputElement::maxRange):

Needs new name here.

&gt; +    // This always returns a value which is &lt;= minRange().

And here.

Still fine as-is, but better to get it right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152211</commentid>
    <comment_count>10</comment_count>
      <attachid>40608</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-04 21:24:41 -0700</bug_when>
    <thetext>Created attachment 40608
Proposed patch (rev.6)

Oops, updated a comment and ChangeLog for rangeMinimum()/rangeMaximum().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152380</commentid>
    <comment_count>11</comment_count>
      <attachid>40608</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-05 11:14:57 -0700</bug_when>
    <thetext>Comment on attachment 40608
Proposed patch (rev.6)

Clearing flags on attachment: 40608

Committed r49104: &lt;http://trac.webkit.org/changeset/49104&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152381</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-05 11:15:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152403</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-05 12:00:34 -0700</bug_when>
    <thetext>This broke the windows bots:
http://build.webkit.org/builders/Windows%20Debug%20%28Build%29/builds/5913
so I&apos;ve asked the commit-bot to roll out this patch.  Should be rolled out in 10 minutes or so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152405</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-05 12:02:07 -0700</bug_when>
    <thetext>Looks like the build failure was due to MSVC not being smart enough about uninitialized variables and code flow. Should be easy to work around.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152406</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-05 12:05:26 -0700</bug_when>
    <thetext>Brian got past that error by initializing doubleValue to 0.0, but then hit 17 more and gave up.  Hence the rollout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152408</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-05 12:11:43 -0700</bug_when>
    <thetext>Rolled out in http://trac.webkit.org/changeset/49107.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152544</commentid>
    <comment_count>17</comment_count>
      <attachid>40679</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-05 19:43:17 -0700</bug_when>
    <thetext>Created attachment 40679
Proposed patch (rev.7)

Fixed the build problems on Windows.
 - Initialize local variables with 0.0
 - Not define max/min for COM to avoid conflict in WebKit.h
   I think to add &quot;#define NOMINMAX&quot; to WebKit.h is the right fix.  But I couldn&apos;t find who generates WebKit.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152590</commentid>
    <comment_count>18</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-10-05 22:40:53 -0700</bug_when>
    <thetext>I found WebKit.h was generated by MIDL.  It&apos;s hard to insert &quot;#define NO_MINMAX&quot; to it.  I think WebKit.h is a public header, and we should not add &quot;#define NO_MINMAX&quot; to it and should not request &quot;define NO_MINMAX before including WebKit.h&quot; because it would break source-code compatibility.

So, I think the patch (rev.7) is the best approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152800</commentid>
    <comment_count>19</comment_count>
      <attachid>40679</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-06 11:47:29 -0700</bug_when>
    <thetext>Comment on attachment 40679
Proposed patch (rev.7)

Clearing flags on attachment: 40679

Committed r49199: &lt;http://trac.webkit.org/changeset/49199&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152801</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-06 11:47:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39319</attachid>
            <date>2009-09-09 20:01:04 -0700</date>
            <delta_ts>2009-09-21 10:03:19 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>minmax-number-1.diff</filename>
            <type>text/plain</type>
            <size>28751</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMzQ2ZWZhLi45MTRiMjFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDktMDkt
MDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtaW4vbWF4IGF0dHJpYnV0
ZXMsIFZhbGlkaXR5U3RhdGUucmFuZ2VVbmRlcmZsb3cgYW5kCisgICAgICAgIFZhbGlkaXR5U3Rh
dGUucmFuZ2VPdmVyZmxvdyBmb3IgPGlucHV0IHR5cGU9bnVtYmVyPiBhbmQgPGlucHV0IHR5cGU9
cmFuZ2U+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
OTA2OQorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ct
bnVtYmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0
eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFu
Z2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdl
VW5kZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdl
VW5kZXJmbG93LXJhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQt
bWlubWF4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1t
aW5tYXguaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvVmFsaWRp
dHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9yZXNvdXJjZXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jlc291cmNlcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5k
ZXJmbG93LW51bWJlci5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMv
VmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW5wdXQtbWlubWF4LmpzOiBBZGRlZC4KKwogMjAwOS0wOS0w
OCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRp
bW90aHkgSGF0Y2hlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMjg0MzYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxv
dy1udW1iZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1RoaXMgdGVzdCBhaW1zIHRv
IGNoZWNrIGZvciByYW5nZU92ZXJmbG93IGZsYWcgd2l0aCB0eXBlPW51bWJlciBpbnB1dCBmaWVs
ZHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHZhbHVlICIxMDEi
IGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1
ZSAiOTkiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRo
ZSB2YWx1ZSAiLTEwMSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiLTEwMCIu
CitQQVNTIFRoZSB2YWx1ZSAiOTkiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUg
IjFFKzIiLgorUEFTUyBUaGUgdmFsdWUgIjAuOTkiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGlt
dW0gdmFsdWUgIjEuMDAiLgorUEFTUyBUaGUgdmFsdWUgImFiYyIgZG9lc24ndCBvdmVyZmxvdyB0
aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIiIGRvZXNuJ3Qgb3ZlcmZs
b3cgdGhlIG1heGltdW0gdmFsdWUgIi0xIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3Qg
b3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIiIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vz
bid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICJ4eHgiLgorUEFTUyBUaGUgdmFsdWUgIjAu
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5IiBkb2Vzbid0IG92ZXJm
bG93IHRoZSBtYXhpbXVtIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1heGltdW0g
dmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiLTk5IiBvdmVyZmxvd3MgdGhlIG1heGltdW0g
dmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVt
IHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUgbWF4aW11
bSB2YWx1ZSAiMTAwIi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjFhYWI5NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuaHRtbApAQCAtMCww
ICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZs
b3ctcmFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFhMDlhMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBA
QAorVGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJhbmdlT3ZlcmZsb3cgZmxhZyB3aXRoIHR5
cGU9cmFuZ2UgaW5wdXQgZmllbGRzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIx
MDAiLgorUEFTUyBUaGUgdmFsdWUgIjk5IiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZh
bHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi0xMDEiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1h
eGltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjk5IiBkb2Vzbid0IG92ZXJmbG93
IHRoZSBtYXhpbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVlICIwLjk5IiBkb2Vzbid0
IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxLjAwIi4KK1BBU1MgVGhlIHZhbHVlICJhYmMi
IGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1
ZSAiIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICItMSIuCitQQVNTIFRoZSB2
YWx1ZSAiMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkiIGRvZXNu
J3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk4Ii4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3Qgb3ZlcmZs
b3cgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxv
d3MgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiLTk5IiBvdmVyZmxv
d3MgdGhlIG1heGltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZs
b3dzIHRoZSBtYXhpbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJm
bG93cyB0aGUgbWF4aW11bSB2YWx1ZSAiIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93
cyB0aGUgbWF4aW11bSB2YWx1ZSAieHh4Ii4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDdmYjNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuaHRt
bApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ct
cmFuZ2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVt
YmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1y
YW5nZVVuZGVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjgwNzk5N2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIzIEBACitUaGlzIHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFuZ2VVbmRlcmZs
b3cgZmxhZyB3aXRoIHR5cGU9bnVtYmVyIGlucHV0IGZpZWxkcworCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBUaGUgdmFsdWUgIjk5IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUg
bWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3QgdW5kZXJm
bG93IHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi05OSIgZG9lc24n
dCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEw
MSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjFFKzIiLgorUEFTUyBUaGUg
dmFsdWUgIjEuMDEiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxLjAwIi4K
K1BBU1MgVGhlIHZhbHVlICJhYmMiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVl
ICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIiIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0g
dmFsdWUgIjEiLgorUEFTUyBUaGUgdmFsdWUgIi0xIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWlu
aW11bSB2YWx1ZSAiIi4KK1BBU1MgVGhlIHZhbHVlICItMSIgZG9lc24ndCB1bmRlcmZsb3cgdGhl
IG1pbmltdW0gdmFsdWUgInh4eCIuCitQQVNTIFRoZSB2YWx1ZSAiMC45OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTgiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVt
IHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OSIuCitQ
QVNTIFRoZSB2YWx1ZSAiOTkiIHVuZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQ
QVNTIFRoZSB2YWx1ZSAiLTEwMSIgdW5kZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiLTEwMCIu
CitQQVNTIFRoZSB2YWx1ZSAiOTkiIHVuZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjFFKzIi
LgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgdW5kZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiMjAw
Ii4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRl
cmZsb3ctbnVtYmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
cmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNDJiMjI4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuaHRtbApAQCAtMCwwICsxLDEzIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFu
Z2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiNmNh
ODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1Ro
aXMgdGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZVVuZGVyZmxvdyBmbGFnIHdpdGggdHlwZT1y
YW5nZSBpbnB1dCBmaWVsZHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
VGhlIHZhbHVlICI5OSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIu
CitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1
ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICItOTkiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5p
bXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3QgdW5kZXJmbG93
IHRoZSBtaW5pbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVlICIxLjAxIiBkb2Vzbid0
IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMS4wMCIuCitQQVNTIFRoZSB2YWx1ZSAiYWJj
IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZh
bHVlICIiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxIi4KK1BBU1MgVGhl
IHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OCIgZG9l
c24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5Ii4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3QgdW5k
ZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIjk5IiB1bmRl
cmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi0xMDEiIHVu
ZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjk5IiB1
bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVlICItMSIg
dW5kZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiIi4KK1BBU1MgVGhlIHZhbHVlICItMSIgdW5k
ZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAieHh4Ii4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczMmRjMWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ct
cmFuZ2UuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9WYWxpZGl0eVN0YXRlLXJhbmdl
VW5kZXJmbG93LXJhbmdlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZGUwMGQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyMSBAQAorVGVzdHMgdGhlIGJlaGF2aW9yIG9mIC5taW4gYW5kIC5tYXggb2YgSFRN
TElucHV0RWxlbWVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5w
dXQubWluIGlzICIiCitQQVNTIGlucHV0Lm1heCBpcyAiIgorUEFTUyBpbnB1dC5taW4gaXMgIjAi
CitQQVNTIGlucHV0Lm1heCBpcyAiMTAwIgorUEFTUyBpbnB1dC5taW4gaXMgImFiYyIKK1BBU1Mg
aW5wdXQubWF4IGlzICJxd2VydHkiCitQQVNTIGlucHV0LmdldEF0dHJpYnV0ZSgibWluIikgaXMg
ImZvbyIKK1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJtYXgiKSBpcyAiYmFyIgorUEFTUyBpbnB1
dC5nZXRBdHRyaWJ1dGUoIm1pbiIpIGlzICIiCitQQVNTIGlucHV0LmdldEF0dHJpYnV0ZSgibWF4
IikgaXMgIiIKK1BBU1MgaW5wdXQubWluIGlzICIiCitQQVNTIGlucHV0Lm1heCBpcyAiIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjZhMjA3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LW1pbm1heC5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2lucHV0LW1p
bm1heC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVy
Zmxvdy1udW1iZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9WYWxpZGl0
eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmIyODBjMzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3Jlc291cmNlcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmpzCkBAIC0w
LDAgKzEsNDAgQEAKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFu
Z2VPdmVyZmxvdyBmbGFnIHdpdGggdHlwZT1udW1iZXIgaW5wdXQgZmllbGRzJyk7CisKK3ZhciBp
bnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisKK2Z1bmN0aW9uIGNoZWNr
KHZhbHVlLCBtYXgsIG92ZXJmbG93RXhwZWN0ZWQpCit7CisgICAgaW5wdXQudmFsdWUgPSB2YWx1
ZTsKKyAgICBpbnB1dC5tYXggPSBtYXg7CisgICAgdmFyIGFjdHVhbCA9IGlucHV0LnZhbGlkaXR5
LnJhbmdlT3ZlcmZsb3c7CisgICAgdmFyIGRpZFBhc3MgPSBhY3R1YWwgPT0gb3ZlcmZsb3dFeHBl
Y3RlZDsKKyAgICB2YXIgcmVzdWx0VGV4dCA9ICdUaGUgdmFsdWUgIicgKyBpbnB1dC52YWx1ZSAr
ICciICcgKyAoYWN0dWFsID8gJ292ZXJmbG93cycgOiAnZG9lc25cJ3Qgb3ZlcmZsb3cnKSArICcg
dGhlIG1heGltdW0gdmFsdWUgIicgKyBpbnB1dC5tYXggKyAnIi4nOworICAgIGlmIChkaWRQYXNz
KQorCXRlc3RQYXNzZWQocmVzdWx0VGV4dCk7CisgICAgZWxzZQorCXRlc3RGYWlsZWQocmVzdWx0
VGV4dCk7Cit9CisKKy8vIE5vIG92ZXJmbG93IGNhc2VzCitpbnB1dC50eXBlID0gJ3RleHQnOyAg
Ly8gTm8gb3ZlcmZsb3cgZm9yIHR5cGU9dGV4dC4KK2NoZWNrKCcxMDEnLCAnMTAwJywgZmFsc2Up
OworaW5wdXQudHlwZSA9ICdudW1iZXInOworY2hlY2soJzk5JywgJzEwMCcsIGZhbHNlKTsgIC8v
IFZlcnkgbm9ybWFsIGNhc2UuCitjaGVjaygnLTEwMScsICctMTAwJywgZmFsc2UpOworY2hlY2so
Jzk5JywgJzFFKzInLCBmYWxzZSk7CitjaGVjaygnMC45OScsICcxLjAwJywgZmFsc2UpOworY2hl
Y2soJ2FiYycsICcxMDAnLCBmYWxzZSk7ICAvLyBJbnZhbGlkIHZhbHVlLgorY2hlY2soJycsICct
MScsIGZhbHNlKTsgIC8vIE5vIHZhbHVlLgorY2hlY2soJzEwMScsICcnLCBmYWxzZSk7ICAvLyBO
byBtYXguCitjaGVjaygnMTAxJywgJ3h4eCcsIGZhbHNlKTsgIC8vIEludmFsaWQgbWF4LgorLy8g
VGhlIGZvbGxvd2luZyBjYXNlIHNob3VsZCBiZSByYW5nZU92ZXJmbG93PT10cnVlIGlkZWFsbHku
ICBCdXQgdGhlICJkb3VibGUiIHR5cGUgZG9lc24ndCBoYXZlIGVub3VnaCBwcmVjaXNpb24uCitj
aGVjaygnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTknLCAnMC45
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTgnLCBmYWxzZSk7CisKKy8v
IE92ZXJmbG93IGNhc2VzCitjaGVjaygnMTAxJywgJzEwMCcsIHRydWUpOworY2hlY2soJy05OScs
ICctMTAwJywgdHJ1ZSk7CitjaGVjaygnMTAxJywgJzFFKzInLCB0cnVlKTsKK2lucHV0Lm1pbiA9
ICcyMDAnOyAgLy8gdmFsdWUgPCBtaW4gJiYgdmFsdWUgPiBtYXgKK2NoZWNrKCcxMDEnLCAnMTAw
JywgdHJ1ZSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJm
bG93LXJhbmdlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvVmFsaWRpdHlT
dGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmY2OWQ0NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3Jlc291cmNlcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuanMKQEAgLTAsMCAr
MSw0MyBAQAorZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZU92
ZXJmbG93IGZsYWcgd2l0aCB0eXBlPXJhbmdlIGlucHV0IGZpZWxkcycpOworCit2YXIgaW5wdXQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworCitmdW5jdGlvbiBjaGVjayh2YWx1
ZSwgbWF4LCBvdmVyZmxvd0V4cGVjdGVkKQoreworICAgIGlucHV0LnZhbHVlID0gdmFsdWU7Cisg
ICAgaW5wdXQubWF4ID0gbWF4OworICAgIHZhciBhY3R1YWwgPSBpbnB1dC52YWxpZGl0eS5yYW5n
ZU92ZXJmbG93OworICAgIHZhciBkaWRQYXNzID0gYWN0dWFsID09IG92ZXJmbG93RXhwZWN0ZWQ7
CisgICAgdmFyIHJlc3VsdFRleHQgPSAnVGhlIHZhbHVlICInICsgaW5wdXQudmFsdWUgKyAnIiAn
ICsgKGFjdHVhbCA/ICdvdmVyZmxvd3MnIDogJ2RvZXNuXCd0IG92ZXJmbG93JykgKyAnIHRoZSBt
YXhpbXVtIHZhbHVlICInICsgaW5wdXQubWF4ICsgJyIuJzsKKyAgICBpZiAoZGlkUGFzcykKKwl0
ZXN0UGFzc2VkKHJlc3VsdFRleHQpOworICAgIGVsc2UKKwl0ZXN0RmFpbGVkKHJlc3VsdFRleHQp
OworfQorCisvLyBObyBvdmVyZmxvdyBjYXNlcworaW5wdXQudHlwZSA9ICd0ZXh0JzsgIC8vIE5v
IG92ZXJmbG93IGZvciB0eXBlPXRleHQuCitjaGVjaygnMTAxJywgJzEwMCcsIGZhbHNlKTsKK2lu
cHV0LnR5cGUgPSAncmFuZ2UnOworY2hlY2soJzk5JywgJzEwMCcsIGZhbHNlKTsgIC8vIFZlcnkg
bm9ybWFsIGNhc2UuCitjaGVjaygnLTEwMScsICctMTAwJywgZmFsc2UpOworY2hlY2soJzk5Jywg
JzFFKzInLCBmYWxzZSk7CitjaGVjaygnMC45OScsICcxLjAwJywgZmFsc2UpOworY2hlY2soJ2Fi
YycsICcxMDAnLCBmYWxzZSk7ICAvLyBJbnZhbGlkIHZhbHVlLgorY2hlY2soJycsICctMScsIGZh
bHNlKTsgIC8vIE5vIHZhbHVlLgorLy8gVGhlIGZvbGxvd2luZyBjYXNlIHNob3VsZCBiZSByYW5n
ZU92ZXJmbG93PT10cnVlIGlkZWFsbHkuICBCdXQgdGhlICJkb3VibGUiIHR5cGUgZG9lc24ndCBo
YXZlIGVub3VnaCBwcmVjaXNpb24uCitjaGVjaygnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTknLCAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTgnLCBmYWxzZSk7CitpbnB1dC5taW4gPSAnMjAwJzsgIC8vIElmIG1pbiA+IG1heCwg
bWF4IGlzIHJlc2V0IHRvIG1pbi4KK2NoZWNrKCcxMDEnLCAnMTAwJywgZmFsc2UpOworaW5wdXQu
bWluID0gJyc7CisKKy8vIE92ZXJmbG93IGNhc2VzCitjaGVjaygnMTAxJywgJzEwMCcsIHRydWUp
OworaW5wdXQubWluID0gJy0yMDAnOworY2hlY2soJy05OScsICctMTAwJywgdHJ1ZSk7CitpbnB1
dC5taW4gPSAnJzsKK2NoZWNrKCcxMDEnLCAnMUUrMicsIHRydWUpOworY2hlY2soJzEwMScsICcn
LCB0cnVlKTsgIC8vIE5vIG1heC4KK2NoZWNrKCcxMDEnLCAneHh4JywgdHJ1ZSk7ICAvLyBJbnZh
bGlkIG1heC4KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJm
bG93LW51bWJlci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL1ZhbGlkaXR5
U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmQ5MzEwNTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3Jlc291cmNlcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qcwpAQCAt
MCwwICsxLDQwIEBACitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJh
bmdlVW5kZXJmbG93IGZsYWcgd2l0aCB0eXBlPW51bWJlciBpbnB1dCBmaWVsZHMnKTsKKwordmFy
IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKworZnVuY3Rpb24gY2hl
Y2sodmFsdWUsIG1pbiwgdW5kZXJmbG93RXhwZWN0ZWQpCit7CisgICAgaW5wdXQudmFsdWUgPSB2
YWx1ZTsKKyAgICBpbnB1dC5taW4gPSBtaW47CisgICAgdmFyIGFjdHVhbCA9IGlucHV0LnZhbGlk
aXR5LnJhbmdlVW5kZXJmbG93OworICAgIHZhciBkaWRQYXNzID0gYWN0dWFsID09IHVuZGVyZmxv
d0V4cGVjdGVkOworICAgIHZhciByZXN1bHRUZXh0ID0gJ1RoZSB2YWx1ZSAiJyArIGlucHV0LnZh
bHVlICsgJyIgJyArIChhY3R1YWwgPyAndW5kZXJmbG93cycgOiAnZG9lc25cJ3QgdW5kZXJmbG93
JykgKyAnIHRoZSBtaW5pbXVtIHZhbHVlICInICsgaW5wdXQubWluICsgJyIuJzsKKyAgICBpZiAo
ZGlkUGFzcykKKwl0ZXN0UGFzc2VkKHJlc3VsdFRleHQpOworICAgIGVsc2UKKwl0ZXN0RmFpbGVk
KHJlc3VsdFRleHQpOworfQorCisvLyBObyB1bmRlcmZsb3cgY2FzZXMKK2lucHV0LnR5cGUgPSAn
dGV4dCc7ICAvLyBObyB1bmRlcmZsb3cgZm9yIHR5cGU9dGV4dC4KK2NoZWNrKCc5OScsICcxMDAn
LCBmYWxzZSk7CitpbnB1dC50eXBlID0gJ251bWJlcic7CitjaGVjaygnMTAxJywgJzEwMCcsIGZh
bHNlKTsgIC8vIFZlcnkgbm9ybWFsIGNhc2UuCitjaGVjaygnLTk5JywgJy0xMDAnLCBmYWxzZSk7
CitjaGVjaygnMTAxJywgJzFFKzInLCBmYWxzZSk7CitjaGVjaygnMS4wMScsICcxLjAwJywgZmFs
c2UpOworY2hlY2soJ2FiYycsICcxMDAnLCBmYWxzZSk7ICAvLyBJbnZhbGlkIHZhbHVlLgorY2hl
Y2soJycsICcxJywgZmFsc2UpOyAgLy8gTm8gdmFsdWUuCitjaGVjaygnLTEnLCAnJywgZmFsc2Up
OyAgLy8gTm8gbWluLgorY2hlY2soJy0xJywgJ3h4eCcsIGZhbHNlKTsgIC8vIEludmFsaWQgbWlu
LgorLy8gVGhlIGZvbGxvd2luZyBjYXNlIHNob3VsZCBiZSByYW5nZVVuZGVyZmxvdz09dHJ1ZSBp
ZGVhbGx5LiAgQnV0IHRoZSAiZG91YmxlIiB0eXBlIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggcHJlY2lz
aW9uLgorY2hlY2soJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4
JywgJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5JywgZmFsc2Up
OworCisvLyBVbmRlcmZsb3cgY2FzZXMKK2NoZWNrKCc5OScsICcxMDAnLCB0cnVlKTsKK2NoZWNr
KCctMTAxJywgJy0xMDAnLCB0cnVlKTsKK2NoZWNrKCc5OScsICcxRSsyJywgdHJ1ZSk7CitpbnB1
dC5tYXggPSAnMTAwJzsgIC8vIHZhbHVlIDwgbWluICYmIHZhbHVlID4gbWF4CitjaGVjaygnMTAx
JywgJzIwMCcsIHRydWUpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VVbmRlcmZsb3ctcmFuZ2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9W
YWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmJiNTE1YWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3Jlc291cmNlcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmpz
CkBAIC0wLDAgKzEsNDEgQEAKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3QgYWltcyB0byBjaGVjayBm
b3IgcmFuZ2VVbmRlcmZsb3cgZmxhZyB3aXRoIHR5cGU9cmFuZ2UgaW5wdXQgZmllbGRzJyk7CisK
K3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisKK2Z1bmN0aW9u
IGNoZWNrKHZhbHVlLCBtaW4sIHVuZGVyZmxvd0V4cGVjdGVkKQoreworICAgIGlucHV0LnZhbHVl
ID0gdmFsdWU7CisgICAgaW5wdXQubWluID0gbWluOworICAgIHZhciBhY3R1YWwgPSBpbnB1dC52
YWxpZGl0eS5yYW5nZVVuZGVyZmxvdzsKKyAgICB2YXIgZGlkUGFzcyA9IGFjdHVhbCA9PSB1bmRl
cmZsb3dFeHBlY3RlZDsKKyAgICB2YXIgcmVzdWx0VGV4dCA9ICdUaGUgdmFsdWUgIicgKyBpbnB1
dC52YWx1ZSArICciICcgKyAoYWN0dWFsID8gJ3VuZGVyZmxvd3MnIDogJ2RvZXNuXCd0IHVuZGVy
ZmxvdycpICsgJyB0aGUgbWluaW11bSB2YWx1ZSAiJyArIGlucHV0Lm1pbiArICciLic7CisgICAg
aWYgKGRpZFBhc3MpCisJdGVzdFBhc3NlZChyZXN1bHRUZXh0KTsKKyAgICBlbHNlCisJdGVzdEZh
aWxlZChyZXN1bHRUZXh0KTsKK30KKworLy8gTm8gdW5kZXJmbG93IGNhc2VzCitpbnB1dC50eXBl
ID0gJ3RleHQnOyAgLy8gTm8gb3ZlcmZsb3cgZm9yIHR5cGU9dGV4dC4KK2NoZWNrKCc5OScsICcx
MDAnLCBmYWxzZSk7CitpbnB1dC50eXBlID0gJ3JhbmdlJzsKK2NoZWNrKCcxMDEnLCAnMTAwJywg
ZmFsc2UpOyAgLy8gVmVyeSBub3JtYWwgY2FzZS4KK2NoZWNrKCctOTknLCAnLTEwMCcsIGZhbHNl
KTsKK2NoZWNrKCcxMDEnLCAnMUUrMicsIGZhbHNlKTsKK2NoZWNrKCcxLjAxJywgJzEuMDAnLCBm
YWxzZSk7CitjaGVjaygnYWJjJywgJzEwMCcsIGZhbHNlKTsgIC8vIEludmFsaWQgdmFsdWUuCitj
aGVjaygnJywgJzEnLCBmYWxzZSk7ICAvLyBObyB2YWx1ZS4KKy8vIFRoZSBmb2xsb3dpbmcgY2Fz
ZSBzaG91bGQgYmUgcmFuZ2VVbmRlcmZsb3c9PXRydWUgaWRlYWxseS4gIEJ1dCB0aGUgImRvdWJs
ZSIgdHlwZSBkb2Vzbid0IGhhdmUgZW5vdWdoIHByZWNpc2lvbi4KK2NoZWNrKCcwLjk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OCcsICcwLjk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OScsIGZhbHNlKTsKK2lucHV0Lm1heCA9ICcwJzsgIC8v
IElmIG1pbiA+IG1heCwgbWF4IGlzIHJlc2V0IHRvIG1pbiBhbmQgbWluIGlzIG5vdCBjaGFuZ2Vk
LgorY2hlY2soJzEwMScsICcxMDAnLCBmYWxzZSk7CitpbnB1dC5tYXggPSAnJzsKKworLy8gVW5k
ZXJmbG93IGNhc2VzCitjaGVjaygnOTknLCAnMTAwJywgdHJ1ZSk7CitjaGVjaygnLTEwMScsICct
MTAwJywgdHJ1ZSk7CitjaGVjaygnOTknLCAnMUUrMicsIHRydWUpOworY2hlY2soJy0xJywgJycs
IHRydWUpOyAgLy8gTm8gbWluLgorY2hlY2soJy0xJywgJ3h4eCcsIHRydWUpOyAgLy8gSW52YWxp
ZCBtaW4uCisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW5wdXQtbWlubWF4LmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW5wdXQtbWlubWF4LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjA2OGM1Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9pbnB1dC1taW5tYXguanMKQEAgLTAsMCArMSwzNSBAQAor
ZGVzY3JpcHRpb24oJ1Rlc3RzIHRoZSBiZWhhdmlvciBvZiAubWluIGFuZCAubWF4IG9mIEhUTUxJ
bnB1dEVsZW1lbnQuJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lu
cHV0Jyk7CisKKy8vIC5taW4gYW5kIC5tYXgganVzdCByZWZsZWN0IHRoZSBjb3JyZXNwb25kaW5n
IGF0dHJpYnV0ZXMuCitpbnB1dC50eXBlID0gJ3RleHQnOworc2hvdWxkQmUoJ2lucHV0Lm1pbics
ICciIicpOworc2hvdWxkQmUoJ2lucHV0Lm1heCcsICciIicpOworaW5wdXQuc2V0QXR0cmlidXRl
KCdtaW4nLCAnMCcpOworaW5wdXQuc2V0QXR0cmlidXRlKCdtYXgnLCAnMTAwJyk7CitzaG91bGRC
ZSgnaW5wdXQubWluJywgJyIwIicpOworc2hvdWxkQmUoJ2lucHV0Lm1heCcsICciMTAwIicpOwor
aW5wdXQuc2V0QXR0cmlidXRlKCdtaW4nLCAnYWJjJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ21h
eCcsICdxd2VydHknKTsKK3Nob3VsZEJlKCdpbnB1dC5taW4nLCAnImFiYyInKTsKK3Nob3VsZEJl
KCdpbnB1dC5tYXgnLCAnInF3ZXJ0eSInKTsKKworaW5wdXQubWluID0gJ2Zvbyc7CitpbnB1dC5t
YXggPSAnYmFyJzsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoIm1pbiIpJywgJyJmb28i
Jyk7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtYXgiKScsICciYmFyIicpOworaW5w
dXQubWluID0gJyc7CitpbnB1dC5tYXggPSAnJzsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1
dGUoIm1pbiIpJywgJyIiJyk7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtYXgiKScs
ICciIicpOworCisvLyBUaGUgcmFuZ2UgdHlwZSBoYXMgdGhlIGRlZmF1bHQgbWluaW11bSBhbmQg
dGhlIGRlZmF1bHQgbWF4aW11bS4KKy8vIEJ1dCB0aGV5IGFyZW4ndCBleHBvc2VkIGJ5IC5taW4g
Lm1heCBJREwgYXR0cmlidXRlcy4KK2lucHV0LnR5cGUgPSAncmFuZ2UnOworaW5wdXQuc2V0QXR0
cmlidXRlKCdtaW4nLCAnJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ21heCcsICcnKTsKK3Nob3Vs
ZEJlKCdpbnB1dC5taW4nLCAnIiInKTsKK3Nob3VsZEJlKCdpbnB1dC5tYXgnLCAnIiInKTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFhYjU4YjIuLmNkMjdhMjggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzIgQEAKKzIwMDktMDktMDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBt
aW4vbWF4IGF0dHJpYnV0ZXMsIFZhbGlkaXR5U3RhdGUucmFuZ2VVbmRlcmZsb3cgYW5kCisgICAg
ICAgIFZhbGlkaXR5U3RhdGUucmFuZ2VPdmVyZmxvdyBmb3IgPGlucHV0IHR5cGU9bnVtYmVyPiBh
bmQgPGlucHV0IHR5cGU9cmFuZ2U+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yOTA2OQorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL1ZhbGlkaXR5
U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2Uu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXguaHRtbAorCisgICAg
ICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJ
bnB1dEVsZW1lbnQ6OnJhbmdlVW5kZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OnJhbmdlT3ZlcmZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6bWluUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6bWF4
UmFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTElucHV0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OnJhbmdlVW5kZXJmbG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OnJhbmdlT3ZlcmZsb3cpOgorICAgICAgICAq
IGh0bWwvVmFsaWRpdHlTdGF0ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyUmFuZ2U6OlNsaWRlclJhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNsaWRlclJhbmdlOjp2YWx1ZUZyb21FbGVtZW50KToKKwogMjAwOS0wOS0w
OCAgSmVucyBBbGZrZSAgPHNuZWpAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDRhZTJlYzkuLmMy
YjMyY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTE5NSw2ICsxOTUsNjMgQEAg
Ym9vbCBIVE1MSW5wdXRFbGVtZW50OjpwYXR0ZXJuTWlzbWF0Y2goKSBjb25zdAogICAgIHJldHVy
biBmYWxzZTsKIH0KIAorYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZVVuZGVyZmxvdygpIGNv
bnN0Cit7CisgICAgaWYgKGlucHV0VHlwZSgpID09IE5VTUJFUikgeworICAgICAgICBkb3VibGUg
bWluOworICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7CisgICAgICAgIGlmIChoYXNBdHRyaWJ1
dGUobWluQXR0cikgJiYgZm9ybVN0cmluZ1RvRG91YmxlKGdldEF0dHJpYnV0ZShtaW5BdHRyKS5z
dHJpbmcoKSwgJm1pbikgJiYgZm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZkb3VibGVWYWx1
ZSkpCisgICAgICAgICAgICByZXR1cm4gZG91YmxlVmFsdWUgPCBtaW47CisgICAgfSBlbHNlIGlm
IChpbnB1dFR5cGUoKSA9PSBSQU5HRSkgeworICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7Cisg
ICAgICAgIGlmIChmb3JtU3RyaW5nVG9Eb3VibGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKKyAg
ICAgICAgICAgIHJldHVybiBkb3VibGVWYWx1ZSA8IG1pblJhbmdlKCk7CisgICAgfQorICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU92ZXJmbG93KCkg
Y29uc3QKK3sKKyAgICBpZiAoaW5wdXRUeXBlKCkgPT0gTlVNQkVSKSB7CisgICAgICAgIGRvdWJs
ZSBtYXg7CisgICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKKyAgICAgICAgaWYgKGhhc0F0dHJp
YnV0ZShtYXhBdHRyKSAmJiBmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIp
LnN0cmluZygpLCAmbWF4KSAmJiBmb3JtU3RyaW5nVG9Eb3VibGUodmFsdWUoKSwgJmRvdWJsZVZh
bHVlKSkKKyAgICAgICAgICAgIHJldHVybiBkb3VibGVWYWx1ZSA+IG1heDsKKyAgICB9IGVsc2Ug
aWYgKGlucHV0VHlwZSgpID09IFJBTkdFKSB7CisgICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsK
KyAgICAgICAgaWYgKGZvcm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAmZG91YmxlVmFsdWUpKQor
ICAgICAgICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlID4gbWF4UmFuZ2UoKTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitkb3VibGUgSFRNTElucHV0RWxlbWVudDo6bWluUmFuZ2UoKSBj
b25zdAoreworICAgIEFTU0VSVChpbnB1dFR5cGUoKSA9PSBSQU5HRSk7CisgICAgLy8gVGhlIHJh
bmdlIHR5cGUncyAiZGVmYXVsdCBtaW5pbXVtIiBpcyAwLgorICAgIGRvdWJsZSBtaW4gPSAwLjA7
CisgICAgaWYgKGhhc0F0dHJpYnV0ZShtaW5BdHRyKSkKKyAgICAgICAgZm9ybVN0cmluZ1RvRG91
YmxlKGdldEF0dHJpYnV0ZShtaW5BdHRyKSwgJm1pbik7CisgICAgcmV0dXJuIG1pbjsKK30KKwor
ZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6Om1heFJhbmdlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQo
aW5wdXRUeXBlKCkgPT0gUkFOR0UpOworICAgIC8vIFRoZSByYW5nZSB0eXBlJ3MgImRlZmF1bHQg
bWF4aW11bSIgaXMgMTAwLgorICAgIGRvdWJsZSBtYXggPSAxMDAuMDsKKyAgICBpZiAoaGFzQXR0
cmlidXRlKG1heEF0dHIpKSB7CisgICAgICAgIGZvcm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1
dGUobWF4QXR0ciksICZtYXgpOworICAgICAgICBkb3VibGUgbWluID0gbWluUmFuZ2UoKTsKKyAg
ICAgICAgaWYgKG1heCA8IG1pbikgeworICAgICAgICAgICAgbWF4ID0gMTAwLjA7CisgICAgICAg
ICAgICBpZiAobWF4IDwgbWluKQorICAgICAgICAgICAgICAgIG1heCA9IG1pbjsgIC8vIFRoZSBz
cGVjIGFsbG93cyBtaW4gPT0gbWF4LgorICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtYXg7
Cit9CisKIHN0YXRpYyBpbmxpbmUgQ2hlY2tlZFJhZGlvQnV0dG9ucyYgY2hlY2tlZFJhZGlvQnV0
dG9ucyhjb25zdCBIVE1MSW5wdXRFbGVtZW50ICplbGVtZW50KQogewogICAgIGlmIChIVE1MRm9y
bUVsZW1lbnQqIGZvcm0gPSBlbGVtZW50LT5mb3JtKCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApp
bmRleCBiYTNlNWE0Li44ZTllOWMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTk1LDYg
Kzk1LDE0IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25z
dDsKICAgICB2aXJ0dWFsIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgY29uc3Q7CisgICAgLy8gRm9y
IFZhbGlkaXR5U3RhdGUKKyAgICBib29sIHJhbmdlVW5kZXJmbG93KCkgY29uc3Q7CisgICAgYm9v
bCByYW5nZU92ZXJmbG93KCkgY29uc3Q7CisgICAgLy8gUmV0dXJucyB0aGUgbWluaW11bSB2YWx1
ZSBmb3IgdHlwZT1yYW5nZS4gIERvbid0IGNhbGwgdGhpcyBmb3Igb3RoZXIgdHlwZXMuCisgICAg
ZG91YmxlIG1pblJhbmdlKCkgY29uc3Q7CisgICAgLy8gUmV0dXJucyB0aGUgbWF4aW11bSB2YWx1
ZSBmb3IgdHlwZT1yYW5nZS4gIERvbid0IGNhbGwgdGhpcyBmb3Igb3RoZXIgdHlwZXMuCisgICAg
Ly8gVGhpcyBhbHdheXMgcmV0dXJucyBhIHZhbHVlIHdoaWNoIGlzIDw9IG1pblJhbmdlKCkuCisg
ICAgZG91YmxlIG1heFJhbmdlKCkgY29uc3Q7CiAKICAgICBib29sIGlzVGV4dEJ1dHRvbigpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBTVUJNSVQgfHwgbV90eXBlID09IFJFU0VUIHx8IG1fdHlw
ZSA9PSBCVVRUT047IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSYWRpb0J1dHRvbigpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZSA9PSBSQURJTzsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4
IDA3YmFiOTAuLjEzNjE4NDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTQyLDcg
KzQyLDkgQEAgbW9kdWxlIGh0bWwgewogI2lmIGRlZmluZWQoRU5BQkxFX0RBVEFMSVNUKSAmJiBF
TkFCTEVfREFUQUxJU1QKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxFbGVtZW50ICAg
ICBsaXN0OwogI2VuZGlmCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIG1heDsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICBt
YXhMZW5ndGg7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IG1pbjsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBtdWx0aXBs
ZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIG5hbWU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nICAgICAgIHBhdHRlcm47CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlT
dGF0ZS5jcHAgYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKaW5kZXggOTk5Mjg1MS4u
ZTUyZjhiMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCisrKyBi
L1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcApAQCAtNTcsNiArNTcsMjAgQEAgYm9vbCBW
YWxpZGl0eVN0YXRlOjp0eXBlTWlzbWF0Y2goKQogICAgIH0KIH0KIAorYm9vbCBWYWxpZGl0eVN0
YXRlOjpyYW5nZVVuZGVyZmxvdygpCit7CisgICAgaWYgKCFjb250cm9sKCktPmhhc1RhZ05hbWUo
aW5wdXRUYWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEhUTUxJbnB1dEVsZW1lbnQqPihjb250cm9sKCkpLT5yYW5nZVVuZGVyZmxvdygpOworfQorCiti
b29sIFZhbGlkaXR5U3RhdGU6OnJhbmdlT3ZlcmZsb3coKQoreworICAgIGlmICghY29udHJvbCgp
LT5oYXNUYWdOYW1lKGlucHV0VGFnKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oY29udHJvbCgpKS0+cmFuZ2VPdmVyZmxv
dygpOworfQorCiBib29sIFZhbGlkaXR5U3RhdGU6OnZhbGlkKCkKIHsKICAgICBib29sIHNvbWVF
cnJvciA9IHR5cGVNaXNtYXRjaCgpIHx8IHN0ZXBNaXNtYXRjaCgpIHx8IHJhbmdlVW5kZXJmbG93
KCkgfHwgcmFuZ2VPdmVyZmxvdygpIHx8CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvVmFsaWRp
dHlTdGF0ZS5oIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAppbmRleCAxYjg3Zjk5Li44
OTQyNjVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oCisrKyBiL1dl
YkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKQEAgLTQ0LDggKzQ0LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBib29sIHR5cGVNaXNtYXRjaCgpOwogICAgICAgICBib29sIHBhdHRl
cm5NaXNtYXRjaCgpIHsgcmV0dXJuIGNvbnRyb2woKS0+cGF0dGVybk1pc21hdGNoKCk7IH0KICAg
ICAgICAgYm9vbCB0b29Mb25nKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgYm9vbCByYW5n
ZVVuZGVyZmxvdygpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIGJvb2wgcmFuZ2VPdmVyZmxv
dygpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgcmFuZ2VVbmRlcmZsb3coKTsKKyAg
ICAgICAgYm9vbCByYW5nZU92ZXJmbG93KCk7CiAgICAgICAgIGJvb2wgc3RlcE1pc21hdGNoKCkg
eyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgYm9vbCBjdXN0b21FcnJvcigpIHsgcmV0dXJuICFt
X2N1c3RvbUVycm9yTWVzc2FnZS5pc0VtcHR5KCk7IH0KICAgICAgICAgYm9vbCB2YWxpZCgpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKaW5kZXggMjQ3YWNkYS4uNjRiNDcxNiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBjb25zdCBp
bnQgZGVmYXVsdFRyYWNrTGVuZ3RoID0gMTI5Owogc3RydWN0IFNsaWRlclJhbmdlIHsKICAgICBi
b29sIGlzSW50ZWdyYWw7CiAgICAgZG91YmxlIG1pbmltdW07Ci0gICAgZG91YmxlIG1heGltdW07
CisgICAgZG91YmxlIG1heGltdW07ICAvLyBtYXhpbXVtIG11c3QgYmUgPD0gbWluaW11bS4KIAog
ICAgIGV4cGxpY2l0IFNsaWRlclJhbmdlKEhUTUxJbnB1dEVsZW1lbnQqKTsKICAgICBkb3VibGUg
Y2xhbXBWYWx1ZShkb3VibGUgdmFsdWUpOwpAQCAtODAsMTIgKzgwLDggQEAgU2xpZGVyUmFuZ2U6
OlNsaWRlclJhbmdlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiAKICAgICBpc0ludGVncmFs
ID0gIWVxdWFsSWdub3JpbmdDYXNlKGVsZW1lbnQtPmdldEF0dHJpYnV0ZShwcmVjaXNpb25BdHRy
KSwgImZsb2F0Iik7CiAKLSAgICAvLyBGSVhNRTogVGhpcyB0cmVhdHMgbWF4aW11bSBzdHJpbmdz
IHRoYXQgY2FuJ3QgYmUgcGFyc2VkIGFzIDAsIGJ1dCBwZXJoYXBzIDEwMCB3b3VsZCBiZSBtb3Jl
IGFwcHJvcHJpYXRlLgotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbWF4U3RyaW5nID0gZWxlbWVu
dC0+Z2V0QXR0cmlidXRlKG1heEF0dHIpOwotICAgIG1heGltdW0gPSBtYXhTdHJpbmcuaXNOdWxs
KCkgPyAxMDAuMCA6IG1heFN0cmluZy50b0RvdWJsZSgpOwotCi0gICAgLy8gSWYgdGhlIG1heGlt
dW0gaXMgc21hbGxlciwgdXNlIGl0IGFzIHRoZSBtaW5pbXVtLgotICAgIG1pbmltdW0gPSBtaW4o
ZWxlbWVudC0+Z2V0QXR0cmlidXRlKG1pbkF0dHIpLnRvRG91YmxlKCksIG1heGltdW0pOworICAg
IG1heGltdW0gPSBlbGVtZW50LT5tYXhSYW5nZSgpOworICAgIG1pbmltdW0gPSBlbGVtZW50LT5t
aW5SYW5nZSgpOwogfQogCiBkb3VibGUgU2xpZGVyUmFuZ2U6OmNsYW1wVmFsdWUoZG91YmxlIHZh
bHVlKQpAQCAtOTYsMTIgKzkyLDE0IEBAIGRvdWJsZSBTbGlkZXJSYW5nZTo6Y2xhbXBWYWx1ZShk
b3VibGUgdmFsdWUpCiAKIGRvdWJsZSBTbGlkZXJSYW5nZTo6dmFsdWVGcm9tRWxlbWVudChIVE1M
SW5wdXRFbGVtZW50KiBlbGVtZW50LCBib29sKiB3YXNDbGFtcGVkKQogewotICAgIFN0cmluZyB2
YWx1ZVN0cmluZyA9IGVsZW1lbnQtPnZhbHVlKCk7Ci0gICAgZG91YmxlIG9sZFZhbHVlID0gdmFs
dWVTdHJpbmcuaXNOdWxsKCkgPyAobWluaW11bSArIG1heGltdW0pIC8gMiA6IHZhbHVlU3RyaW5n
LnRvRG91YmxlKCk7CisgICAgZG91YmxlIG9sZFZhbHVlOworICAgIGJvb2wgcGFyc2VTdWNjZXNz
ID0gSFRNTElucHV0RWxlbWVudDo6Zm9ybVN0cmluZ1RvRG91YmxlKGVsZW1lbnQtPnZhbHVlKCks
ICZvbGRWYWx1ZSk7CisgICAgaWYgKCFwYXJzZVN1Y2Nlc3MpCisgICAgICAgIG9sZFZhbHVlID0g
KG1pbmltdW0gKyBtYXhpbXVtKSAvIDI7CiAgICAgZG91YmxlIG5ld1ZhbHVlID0gY2xhbXBWYWx1
ZShvbGRWYWx1ZSk7CiAKICAgICBpZiAod2FzQ2xhbXBlZCkKLSAgICAgICAgKndhc0NsYW1wZWQg
PSB2YWx1ZVN0cmluZy5pc051bGwoKSB8fCBuZXdWYWx1ZSAhPSBvbGRWYWx1ZTsKKyAgICAgICAg
Kndhc0NsYW1wZWQgPSAhcGFyc2VTdWNjZXNzIHx8IG5ld1ZhbHVlICE9IG9sZFZhbHVlOwogCiAg
ICAgcmV0dXJuIG5ld1ZhbHVlOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39858</attachid>
            <date>2009-09-21 10:03:19 -0700</date>
            <delta_ts>2009-09-23 17:38:38 -0700</delta_ts>
            <desc>Proposed patch (rev.2)</desc>
            <filename>0001-minmax-for-number-range.patch</filename>
            <type>text/plain</type>
            <size>31943</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSA5YzJhYmJkMTM4MjJiOTBhODM3YTJhZGQ4NDM4M2I2YzRiMjc2OTUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUdWUsIDIyIFNlcCAyMDA5IDAyOjAxOjUyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gbWlubWF4
IGZvciBudW1iZXIvcmFuZ2UKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDI0ICsrKysrKysrCiAuLi5WYWxpZGl0eVN0YXRlLXJhbmdl
T3ZlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dCB8ICAgMjMgKysrKysrKysKIC4uLi9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmh0bWwgIHwgICAxMyArKysrKwogLi4u
L1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQgfCAgIDIzICsr
KysrKysrCiAuLi4vZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwg
ICB8ICAgMTMgKysrKysKIC4uLmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXItZXhw
ZWN0ZWQudHh0IHwgICAyMyArKysrKysrKwogLi4uL2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VV
bmRlcmZsb3ctbnVtYmVyLmh0bWwgfCAgIDEzICsrKysrCiAuLi5WYWxpZGl0eVN0YXRlLXJhbmdl
VW5kZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dCB8ICAgMjMgKysrKysrKysKIC4uLi9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWwgIHwgICAxMyArKysrKwogTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQudHh0ICAgfCAgIDIxICsr
KysrKysKIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4Lmh0bWwgICAgICAgICAg
IHwgICAxMyArKysrKwogLi4uL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuanMg
ICAgICAgICAgfCAgIDQwICsrKysrKysrKysrKysrCiAuLi4vVmFsaWRpdHlTdGF0ZS1yYW5nZU92
ZXJmbG93LXJhbmdlLmpzICAgICAgICAgICB8ICAgNDMgKysrKysrKysrKysrKysrCiAuLi4vVmFs
aWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuanMgICAgICAgICB8ICAgNDAgKysrKysr
KysrKysrKysKIC4uLi9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmpzICAgICAg
ICAgIHwgICA0MSArKysrKysrKysrKysrKwogLi4uL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lu
cHV0LW1pbm1heC5qcyAgICAgICAgfCAgIDM1ICsrKysrKysrKysrKwogV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI5ICsrKysrKysrKysKIFdl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCAgICAgICAgICAgICAgICAgIHwgICA1NyAr
KysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCAgICAg
ICAgICAgICAgICAgICAgfCAgICA4ICsrKwogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRl
LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysrKwogV2ViQ29yZS9odG1sL1ZhbGlk
aXR5U3RhdGUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwICAgICAgICAgICAgICAgICB8ICAgMTggKysrLS0tLQogMjMg
ZmlsZXMgY2hhbmdlZCwgNTIxIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92
ZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuaHRtbAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5n
ZU92ZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VVbmRlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuaHRt
bAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2Uu
aHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlu
bWF4LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtbWlubWF4Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmpz
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVu
ZGVyZmxvdy1udW1iZXIuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmpzCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5w
dXQtbWlubWF4LmpzCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEwN2YwMGIuLmY0NWNkYTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NyBAQAorMjAwOS0wOS0yMSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IG1p
bi9tYXggYXR0cmlidXRlcywgVmFsaWRpdHlTdGF0ZS5yYW5nZVVuZGVyZmxvdyBhbmQKKyAgICAg
ICAgVmFsaWRpdHlTdGF0ZS5yYW5nZU92ZXJmbG93IGZvciA8aW5wdXQgdHlwZT1udW1iZXI+IGFu
ZCA8aW5wdXQgdHlwZT1yYW5nZT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI5MDY5CisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
cmFuZ2VPdmVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VPdmVyZmxvdy1yYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZs
b3ctcmFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9mb3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Zvcm1zL2lucHV0LW1pbm1heC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3Zl
cmZsb3ctcmFuZ2UuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJh
bmdlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1t
aW5tYXguanM6IEFkZGVkLgorCiAyMDA5LTA5LTIwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1u
dW1iZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXJhbmdlT3ZlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi40MTI4NDM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIzIEBACitUaGlzIHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFuZ2VPdmVyZmxv
dyBmbGFnIHdpdGggdHlwZT1udW1iZXIgaW5wdXQgZmllbGRzCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBt
YXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIjk5IiBkb2Vzbid0IG92ZXJmbG93
IHRoZSBtYXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi0xMDEiIGRvZXNuJ3Qg
b3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjk5IiBk
b2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVl
ICIwLjk5IiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxLjAwIi4KK1BBU1Mg
VGhlIHZhbHVlICJhYmMiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIu
CitQQVNTIFRoZSB2YWx1ZSAiIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIt
MSIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZh
bHVlICIiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11
bSB2YWx1ZSAieHh4Ii4KK1BBU1MgVGhlIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAi
MC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTgiLgorUEFTUyBUaGUg
dmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUg
dmFsdWUgIi05OSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhl
IHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUgbWF4aW11bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRo
ZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxv
dy1udW1iZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OGU1ZmE4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTA5YTAwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZs
b3ctcmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1RoaXMgdGVzdCBhaW1zIHRv
IGNoZWNrIGZvciByYW5nZU92ZXJmbG93IGZsYWcgd2l0aCB0eXBlPXJhbmdlIGlucHV0IGZpZWxk
cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdmFsdWUgIjEwMSIg
ZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVl
ICI5OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhl
IHZhbHVlICItMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICItMTAwIi4K
K1BBU1MgVGhlIHZhbHVlICI5OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAi
MUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiMC45OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11
bSB2YWx1ZSAiMS4wMCIuCitQQVNTIFRoZSB2YWx1ZSAiYWJjIiBkb2Vzbid0IG92ZXJmbG93IHRo
ZSBtYXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIiIgZG9lc24ndCBvdmVyZmxv
dyB0aGUgbWF4aW11bSB2YWx1ZSAiLTEiLgorUEFTUyBUaGUgdmFsdWUgIjAuOTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5IiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhp
bXVtIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OCIu
CitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVl
ICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVl
ICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi05OSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVl
ICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUgbWF4aW11bSB2YWx1
ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1heGltdW0gdmFs
dWUgIiIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1heGltdW0gdmFsdWUg
Inh4eCIuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdl
T3ZlcmZsb3ctcmFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDM4NWIyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVt
YmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDc5
OTdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAor
VGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJhbmdlVW5kZXJmbG93IGZsYWcgd2l0aCB0eXBl
PW51bWJlciBpbnB1dCBmaWVsZHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgVGhlIHZhbHVlICI5OSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEw
MCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2
YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICItOTkiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBt
aW5pbXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3QgdW5kZXJm
bG93IHRoZSBtaW5pbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVlICIxLjAxIiBkb2Vz
bid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMS4wMCIuCitQQVNTIFRoZSB2YWx1ZSAi
YWJjIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhl
IHZhbHVlICIiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxIi4KK1BBU1Mg
VGhlIHZhbHVlICItMSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIiIuCitQ
QVNTIFRoZSB2YWx1ZSAiLTEiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICJ4
eHgiLgorUEFTUyBUaGUgdmFsdWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk4IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMC45OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkiLgorUEFTUyBUaGUgdmFsdWUgIjk5
IiB1bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi0x
MDEiIHVuZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUg
Ijk5IiB1bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVl
ICIxMDEiIHVuZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjIwMCIuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51
bWJlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNzUyN2IKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VVbmRlcmZsb3ctbnVtYmVyLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvVmFs
aWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjZjYTg1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJm
bG93LXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitUaGlzIHRlc3QgYWltcyB0
byBjaGVjayBmb3IgcmFuZ2VVbmRlcmZsb3cgZmxhZyB3aXRoIHR5cGU9cmFuZ2UgaW5wdXQgZmll
bGRzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB2YWx1ZSAiOTki
IGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFs
dWUgIjEwMSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQQVNT
IFRoZSB2YWx1ZSAiLTk5IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiLTEw
MCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2
YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiMS4wMSIgZG9lc24ndCB1bmRlcmZsb3cgdGhl
IG1pbmltdW0gdmFsdWUgIjEuMDAiLgorUEFTUyBUaGUgdmFsdWUgImFiYyIgZG9lc24ndCB1bmRl
cmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiIiBkb2Vzbid0
IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMSIuCitQQVNTIFRoZSB2YWx1ZSAiMC45OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTgiIGRvZXNuJ3QgdW5kZXJmbG93
IHRoZSBtaW5pbXVtIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OSIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWlu
aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICI5OSIgdW5kZXJmbG93cyB0aGUgbWlu
aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICItMTAxIiB1bmRlcmZsb3dzIHRoZSBt
aW5pbXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICI5OSIgdW5kZXJmbG93cyB0aGUg
bWluaW11bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiLTEiIHVuZGVyZmxvd3MgdGhl
IG1pbmltdW0gdmFsdWUgIiIuCitQQVNTIFRoZSB2YWx1ZSAiLTEiIHVuZGVyZmxvd3MgdGhlIG1p
bmltdW0gdmFsdWUgInh4eCIuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0
eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42ZmZiZWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWwKQEAg
LTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1y
YW5nZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWRlMDBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEg
QEAKK1Rlc3RzIHRoZSBiZWhhdmlvciBvZiAubWluIGFuZCAubWF4IG9mIEhUTUxJbnB1dEVsZW1l
bnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0Lm1pbiBpcyAi
IgorUEFTUyBpbnB1dC5tYXggaXMgIiIKK1BBU1MgaW5wdXQubWluIGlzICIwIgorUEFTUyBpbnB1
dC5tYXggaXMgIjEwMCIKK1BBU1MgaW5wdXQubWluIGlzICJhYmMiCitQQVNTIGlucHV0Lm1heCBp
cyAicXdlcnR5IgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoIm1pbiIpIGlzICJmb28iCitQQVNT
IGlucHV0LmdldEF0dHJpYnV0ZSgibWF4IikgaXMgImJhciIKK1BBU1MgaW5wdXQuZ2V0QXR0cmli
dXRlKCJtaW4iKSBpcyAiIgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoIm1heCIpIGlzICIiCitQ
QVNTIGlucHV0Lm1pbiBpcyAiIgorUEFTUyBpbnB1dC5tYXggaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC1taW5tYXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y
MmY4ZGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1t
aW5tYXguaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1dC1taW5tYXguanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ct
bnVtYmVyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlT
dGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5iMjgwYzMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5qcwpAQCAt
MCwwICsxLDQwIEBACitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJh
bmdlT3ZlcmZsb3cgZmxhZyB3aXRoIHR5cGU9bnVtYmVyIGlucHV0IGZpZWxkcycpOworCit2YXIg
aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworCitmdW5jdGlvbiBjaGVj
ayh2YWx1ZSwgbWF4LCBvdmVyZmxvd0V4cGVjdGVkKQoreworICAgIGlucHV0LnZhbHVlID0gdmFs
dWU7CisgICAgaW5wdXQubWF4ID0gbWF4OworICAgIHZhciBhY3R1YWwgPSBpbnB1dC52YWxpZGl0
eS5yYW5nZU92ZXJmbG93OworICAgIHZhciBkaWRQYXNzID0gYWN0dWFsID09IG92ZXJmbG93RXhw
ZWN0ZWQ7CisgICAgdmFyIHJlc3VsdFRleHQgPSAnVGhlIHZhbHVlICInICsgaW5wdXQudmFsdWUg
KyAnIiAnICsgKGFjdHVhbCA/ICdvdmVyZmxvd3MnIDogJ2RvZXNuXCd0IG92ZXJmbG93JykgKyAn
IHRoZSBtYXhpbXVtIHZhbHVlICInICsgaW5wdXQubWF4ICsgJyIuJzsKKyAgICBpZiAoZGlkUGFz
cykKKwl0ZXN0UGFzc2VkKHJlc3VsdFRleHQpOworICAgIGVsc2UKKwl0ZXN0RmFpbGVkKHJlc3Vs
dFRleHQpOworfQorCisvLyBObyBvdmVyZmxvdyBjYXNlcworaW5wdXQudHlwZSA9ICd0ZXh0Jzsg
IC8vIE5vIG92ZXJmbG93IGZvciB0eXBlPXRleHQuCitjaGVjaygnMTAxJywgJzEwMCcsIGZhbHNl
KTsKK2lucHV0LnR5cGUgPSAnbnVtYmVyJzsKK2NoZWNrKCc5OScsICcxMDAnLCBmYWxzZSk7ICAv
LyBWZXJ5IG5vcm1hbCBjYXNlLgorY2hlY2soJy0xMDEnLCAnLTEwMCcsIGZhbHNlKTsKK2NoZWNr
KCc5OScsICcxRSsyJywgZmFsc2UpOworY2hlY2soJzAuOTknLCAnMS4wMCcsIGZhbHNlKTsKK2No
ZWNrKCdhYmMnLCAnMTAwJywgZmFsc2UpOyAgLy8gSW52YWxpZCB2YWx1ZS4KK2NoZWNrKCcnLCAn
LTEnLCBmYWxzZSk7ICAvLyBObyB2YWx1ZS4KK2NoZWNrKCcxMDEnLCAnJywgZmFsc2UpOyAgLy8g
Tm8gbWF4LgorY2hlY2soJzEwMScsICd4eHgnLCBmYWxzZSk7ICAvLyBJbnZhbGlkIG1heC4KKy8v
IFRoZSBmb2xsb3dpbmcgY2FzZSBzaG91bGQgYmUgcmFuZ2VPdmVyZmxvdz09dHJ1ZSBpZGVhbGx5
LiAgQnV0IHRoZSAiZG91YmxlIiB0eXBlIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggcHJlY2lzaW9uLgor
Y2hlY2soJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5JywgJzAu
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4JywgZmFsc2UpOworCisv
LyBPdmVyZmxvdyBjYXNlcworY2hlY2soJzEwMScsICcxMDAnLCB0cnVlKTsKK2NoZWNrKCctOTkn
LCAnLTEwMCcsIHRydWUpOworY2hlY2soJzEwMScsICcxRSsyJywgdHJ1ZSk7CitpbnB1dC5taW4g
PSAnMjAwJzsgIC8vIHZhbHVlIDwgbWluICYmIHZhbHVlID4gbWF4CitjaGVjaygnMTAxJywgJzEw
MCcsIHRydWUpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VP
dmVyZmxvdy1yYW5nZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1Zh
bGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mNjlkNDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpz
CkBAIC0wLDAgKzEsNDMgQEAKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3QgYWltcyB0byBjaGVjayBm
b3IgcmFuZ2VPdmVyZmxvdyBmbGFnIHdpdGggdHlwZT1yYW5nZSBpbnB1dCBmaWVsZHMnKTsKKwor
dmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKworZnVuY3Rpb24g
Y2hlY2sodmFsdWUsIG1heCwgb3ZlcmZsb3dFeHBlY3RlZCkKK3sKKyAgICBpbnB1dC52YWx1ZSA9
IHZhbHVlOworICAgIGlucHV0Lm1heCA9IG1heDsKKyAgICB2YXIgYWN0dWFsID0gaW5wdXQudmFs
aWRpdHkucmFuZ2VPdmVyZmxvdzsKKyAgICB2YXIgZGlkUGFzcyA9IGFjdHVhbCA9PSBvdmVyZmxv
d0V4cGVjdGVkOworICAgIHZhciByZXN1bHRUZXh0ID0gJ1RoZSB2YWx1ZSAiJyArIGlucHV0LnZh
bHVlICsgJyIgJyArIChhY3R1YWwgPyAnb3ZlcmZsb3dzJyA6ICdkb2VzblwndCBvdmVyZmxvdycp
ICsgJyB0aGUgbWF4aW11bSB2YWx1ZSAiJyArIGlucHV0Lm1heCArICciLic7CisgICAgaWYgKGRp
ZFBhc3MpCisJdGVzdFBhc3NlZChyZXN1bHRUZXh0KTsKKyAgICBlbHNlCisJdGVzdEZhaWxlZChy
ZXN1bHRUZXh0KTsKK30KKworLy8gTm8gb3ZlcmZsb3cgY2FzZXMKK2lucHV0LnR5cGUgPSAndGV4
dCc7ICAvLyBObyBvdmVyZmxvdyBmb3IgdHlwZT10ZXh0LgorY2hlY2soJzEwMScsICcxMDAnLCBm
YWxzZSk7CitpbnB1dC50eXBlID0gJ3JhbmdlJzsKK2NoZWNrKCc5OScsICcxMDAnLCBmYWxzZSk7
ICAvLyBWZXJ5IG5vcm1hbCBjYXNlLgorY2hlY2soJy0xMDEnLCAnLTEwMCcsIGZhbHNlKTsKK2No
ZWNrKCc5OScsICcxRSsyJywgZmFsc2UpOworY2hlY2soJzAuOTknLCAnMS4wMCcsIGZhbHNlKTsK
K2NoZWNrKCdhYmMnLCAnMTAwJywgZmFsc2UpOyAgLy8gSW52YWxpZCB2YWx1ZS4KK2NoZWNrKCcn
LCAnLTEnLCBmYWxzZSk7ICAvLyBObyB2YWx1ZS4KKy8vIFRoZSBmb2xsb3dpbmcgY2FzZSBzaG91
bGQgYmUgcmFuZ2VPdmVyZmxvdz09dHJ1ZSBpZGVhbGx5LiAgQnV0IHRoZSAiZG91YmxlIiB0eXBl
IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggcHJlY2lzaW9uLgorY2hlY2soJzAuOTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5JywgJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk4JywgZmFsc2UpOworaW5wdXQubWluID0gJzIwMCc7ICAvLyBJZiBt
aW4gPiBtYXgsIG1heCBpcyByZXNldCB0byBtaW4uCitjaGVjaygnMTAxJywgJzEwMCcsIGZhbHNl
KTsKK2lucHV0Lm1pbiA9ICcnOworCisvLyBPdmVyZmxvdyBjYXNlcworY2hlY2soJzEwMScsICcx
MDAnLCB0cnVlKTsKK2lucHV0Lm1pbiA9ICctMjAwJzsKK2NoZWNrKCctOTknLCAnLTEwMCcsIHRy
dWUpOworaW5wdXQubWluID0gJyc7CitjaGVjaygnMTAxJywgJzFFKzInLCB0cnVlKTsKK2NoZWNr
KCcxMDEnLCAnJywgdHJ1ZSk7ICAvLyBObyBtYXguCitjaGVjaygnMTAxJywgJ3h4eCcsIHRydWUp
OyAgLy8gSW52YWxpZCBtYXguCisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0
ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Njcmlw
dC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTMxMDU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVy
Zmxvdy1udW1iZXIuanMKQEAgLTAsMCArMSw0MCBAQAorZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBh
aW1zIHRvIGNoZWNrIGZvciByYW5nZVVuZGVyZmxvdyBmbGFnIHdpdGggdHlwZT1udW1iZXIgaW5w
dXQgZmllbGRzJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0
Jyk7CisKK2Z1bmN0aW9uIGNoZWNrKHZhbHVlLCBtaW4sIHVuZGVyZmxvd0V4cGVjdGVkKQorewor
ICAgIGlucHV0LnZhbHVlID0gdmFsdWU7CisgICAgaW5wdXQubWluID0gbWluOworICAgIHZhciBh
Y3R1YWwgPSBpbnB1dC52YWxpZGl0eS5yYW5nZVVuZGVyZmxvdzsKKyAgICB2YXIgZGlkUGFzcyA9
IGFjdHVhbCA9PSB1bmRlcmZsb3dFeHBlY3RlZDsKKyAgICB2YXIgcmVzdWx0VGV4dCA9ICdUaGUg
dmFsdWUgIicgKyBpbnB1dC52YWx1ZSArICciICcgKyAoYWN0dWFsID8gJ3VuZGVyZmxvd3MnIDog
J2RvZXNuXCd0IHVuZGVyZmxvdycpICsgJyB0aGUgbWluaW11bSB2YWx1ZSAiJyArIGlucHV0Lm1p
biArICciLic7CisgICAgaWYgKGRpZFBhc3MpCisJdGVzdFBhc3NlZChyZXN1bHRUZXh0KTsKKyAg
ICBlbHNlCisJdGVzdEZhaWxlZChyZXN1bHRUZXh0KTsKK30KKworLy8gTm8gdW5kZXJmbG93IGNh
c2VzCitpbnB1dC50eXBlID0gJ3RleHQnOyAgLy8gTm8gdW5kZXJmbG93IGZvciB0eXBlPXRleHQu
CitjaGVjaygnOTknLCAnMTAwJywgZmFsc2UpOworaW5wdXQudHlwZSA9ICdudW1iZXInOworY2hl
Y2soJzEwMScsICcxMDAnLCBmYWxzZSk7ICAvLyBWZXJ5IG5vcm1hbCBjYXNlLgorY2hlY2soJy05
OScsICctMTAwJywgZmFsc2UpOworY2hlY2soJzEwMScsICcxRSsyJywgZmFsc2UpOworY2hlY2so
JzEuMDEnLCAnMS4wMCcsIGZhbHNlKTsKK2NoZWNrKCdhYmMnLCAnMTAwJywgZmFsc2UpOyAgLy8g
SW52YWxpZCB2YWx1ZS4KK2NoZWNrKCcnLCAnMScsIGZhbHNlKTsgIC8vIE5vIHZhbHVlLgorY2hl
Y2soJy0xJywgJycsIGZhbHNlKTsgIC8vIE5vIG1pbi4KK2NoZWNrKCctMScsICd4eHgnLCBmYWxz
ZSk7ICAvLyBJbnZhbGlkIG1pbi4KKy8vIFRoZSBmb2xsb3dpbmcgY2FzZSBzaG91bGQgYmUgcmFu
Z2VVbmRlcmZsb3c9PXRydWUgaWRlYWxseS4gIEJ1dCB0aGUgImRvdWJsZSIgdHlwZSBkb2Vzbid0
IGhhdmUgZW5vdWdoIHByZWNpc2lvbi4KK2NoZWNrKCcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OCcsICcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OScsIGZhbHNlKTsKKworLy8gVW5kZXJmbG93IGNhc2VzCitjaGVjaygnOTknLCAn
MTAwJywgdHJ1ZSk7CitjaGVjaygnLTEwMScsICctMTAwJywgdHJ1ZSk7CitjaGVjaygnOTknLCAn
MUUrMicsIHRydWUpOworaW5wdXQubWF4ID0gJzEwMCc7ICAvLyB2YWx1ZSA8IG1pbiAmJiB2YWx1
ZSA+IG1heAorY2hlY2soJzEwMScsICcyMDAnLCB0cnVlKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10
ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5n
ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjUxNWFkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlT
dGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5qcwpAQCAtMCwwICsxLDQxIEBACitkZXNjcmlwdGlv
bignVGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJhbmdlVW5kZXJmbG93IGZsYWcgd2l0aCB0
eXBlPXJhbmdlIGlucHV0IGZpZWxkcycpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdpbnB1dCcpOworCitmdW5jdGlvbiBjaGVjayh2YWx1ZSwgbWluLCB1bmRlcmZsb3dF
eHBlY3RlZCkKK3sKKyAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOworICAgIGlucHV0Lm1pbiA9IG1p
bjsKKyAgICB2YXIgYWN0dWFsID0gaW5wdXQudmFsaWRpdHkucmFuZ2VVbmRlcmZsb3c7CisgICAg
dmFyIGRpZFBhc3MgPSBhY3R1YWwgPT0gdW5kZXJmbG93RXhwZWN0ZWQ7CisgICAgdmFyIHJlc3Vs
dFRleHQgPSAnVGhlIHZhbHVlICInICsgaW5wdXQudmFsdWUgKyAnIiAnICsgKGFjdHVhbCA/ICd1
bmRlcmZsb3dzJyA6ICdkb2VzblwndCB1bmRlcmZsb3cnKSArICcgdGhlIG1pbmltdW0gdmFsdWUg
IicgKyBpbnB1dC5taW4gKyAnIi4nOworICAgIGlmIChkaWRQYXNzKQorCXRlc3RQYXNzZWQocmVz
dWx0VGV4dCk7CisgICAgZWxzZQorCXRlc3RGYWlsZWQocmVzdWx0VGV4dCk7Cit9CisKKy8vIE5v
IHVuZGVyZmxvdyBjYXNlcworaW5wdXQudHlwZSA9ICd0ZXh0JzsgIC8vIE5vIG92ZXJmbG93IGZv
ciB0eXBlPXRleHQuCitjaGVjaygnOTknLCAnMTAwJywgZmFsc2UpOworaW5wdXQudHlwZSA9ICdy
YW5nZSc7CitjaGVjaygnMTAxJywgJzEwMCcsIGZhbHNlKTsgIC8vIFZlcnkgbm9ybWFsIGNhc2Uu
CitjaGVjaygnLTk5JywgJy0xMDAnLCBmYWxzZSk7CitjaGVjaygnMTAxJywgJzFFKzInLCBmYWxz
ZSk7CitjaGVjaygnMS4wMScsICcxLjAwJywgZmFsc2UpOworY2hlY2soJ2FiYycsICcxMDAnLCBm
YWxzZSk7ICAvLyBJbnZhbGlkIHZhbHVlLgorY2hlY2soJycsICcxJywgZmFsc2UpOyAgLy8gTm8g
dmFsdWUuCisvLyBUaGUgZm9sbG93aW5nIGNhc2Ugc2hvdWxkIGJlIHJhbmdlVW5kZXJmbG93PT10
cnVlIGlkZWFsbHkuICBCdXQgdGhlICJkb3VibGUiIHR5cGUgZG9lc24ndCBoYXZlIGVub3VnaCBw
cmVjaXNpb24uCitjaGVjaygnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTgnLCAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTknLCBm
YWxzZSk7CitpbnB1dC5tYXggPSAnMCc7ICAvLyBJZiBtaW4gPiBtYXgsIG1heCBpcyByZXNldCB0
byBtaW4gYW5kIG1pbiBpcyBub3QgY2hhbmdlZC4KK2NoZWNrKCcxMDEnLCAnMTAwJywgZmFsc2Up
OworaW5wdXQubWF4ID0gJyc7CisKKy8vIFVuZGVyZmxvdyBjYXNlcworY2hlY2soJzk5JywgJzEw
MCcsIHRydWUpOworY2hlY2soJy0xMDEnLCAnLTEwMCcsIHRydWUpOworY2hlY2soJzk5JywgJzFF
KzInLCB0cnVlKTsKK2NoZWNrKCctMScsICcnLCB0cnVlKTsgIC8vIE5vIG1pbi4KK2NoZWNrKCct
MScsICd4eHgnLCB0cnVlKTsgIC8vIEludmFsaWQgbWluLgorCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL2lucHV0LW1pbm1heC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2lucHV0LW1pbm1heC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjhj
NWNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvaW5wdXQtbWlubWF4LmpzCkBAIC0wLDAgKzEsMzUgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyB0
aGUgYmVoYXZpb3Igb2YgLm1pbiBhbmQgLm1heCBvZiBIVE1MSW5wdXRFbGVtZW50LicpOworCit2
YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworCisvLyAubWluIGFu
ZCAubWF4IGp1c3QgcmVmbGVjdCB0aGUgY29ycmVzcG9uZGluZyBhdHRyaWJ1dGVzLgoraW5wdXQu
dHlwZSA9ICd0ZXh0JzsKK3Nob3VsZEJlKCdpbnB1dC5taW4nLCAnIiInKTsKK3Nob3VsZEJlKCdp
bnB1dC5tYXgnLCAnIiInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnbWluJywgJzAnKTsKK2lucHV0
LnNldEF0dHJpYnV0ZSgnbWF4JywgJzEwMCcpOworc2hvdWxkQmUoJ2lucHV0Lm1pbicsICciMCIn
KTsKK3Nob3VsZEJlKCdpbnB1dC5tYXgnLCAnIjEwMCInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgn
bWluJywgJ2FiYycpOworaW5wdXQuc2V0QXR0cmlidXRlKCdtYXgnLCAncXdlcnR5Jyk7CitzaG91
bGRCZSgnaW5wdXQubWluJywgJyJhYmMiJyk7CitzaG91bGRCZSgnaW5wdXQubWF4JywgJyJxd2Vy
dHkiJyk7CisKK2lucHV0Lm1pbiA9ICdmb28nOworaW5wdXQubWF4ID0gJ2Jhcic7CitzaG91bGRC
ZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtaW4iKScsICciZm9vIicpOworc2hvdWxkQmUoJ2lucHV0
LmdldEF0dHJpYnV0ZSgibWF4IiknLCAnImJhciInKTsKK2lucHV0Lm1pbiA9ICcnOworaW5wdXQu
bWF4ID0gJyc7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtaW4iKScsICciIicpOwor
c2hvdWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgibWF4IiknLCAnIiInKTsKKworLy8gVGhlIHJh
bmdlIHR5cGUgaGFzIHRoZSBkZWZhdWx0IG1pbmltdW0gYW5kIHRoZSBkZWZhdWx0IG1heGltdW0u
CisvLyBCdXQgdGhleSBhcmVuJ3QgZXhwb3NlZCBieSAubWluIC5tYXggSURMIGF0dHJpYnV0ZXMu
CitpbnB1dC50eXBlID0gJ3JhbmdlJzsKK2lucHV0LnNldEF0dHJpYnV0ZSgnbWluJywgJycpOwor
aW5wdXQuc2V0QXR0cmlidXRlKCdtYXgnLCAnJyk7CitzaG91bGRCZSgnaW5wdXQubWluJywgJyIi
Jyk7CitzaG91bGRCZSgnaW5wdXQubWF4JywgJyIiJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBlZjRjMmMxLi42MWU4MzQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDA5LTA5LTIxICBL
ZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgbWluL21heCBhdHRyaWJ1dGVzLCBW
YWxpZGl0eVN0YXRlLnJhbmdlVW5kZXJmbG93IGFuZAorICAgICAgICBWYWxpZGl0eVN0YXRlLnJh
bmdlT3ZlcmZsb3cgZm9yIDxpbnB1dCB0eXBlPW51bWJlcj4gYW5kIDxpbnB1dCB0eXBlPXJhbmdl
PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwNjkK
KworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ct
bnVtYmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5n
ZU92ZXJmbG93LXJhbmdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvVmFsaWRpdHlT
dGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvZm9ybXMvaW5wdXQtbWlubWF4Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpyYW5nZVVu
ZGVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU92ZXJm
bG93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1pblJhbmdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1heFJhbmdlKToKKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsOgorICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWYWxpZGl0eVN0YXRlOjpyYW5nZVVuZGVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpWYWxp
ZGl0eVN0YXRlOjpyYW5nZU92ZXJmbG93KToKKyAgICAgICAgKiBodG1sL1ZhbGlkaXR5U3RhdGUu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNsaWRlclJhbmdlOjpTbGlkZXJSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJS
YW5nZTo6dmFsdWVGcm9tRWxlbWVudCk6CisKIDIwMDktMDktMjEgIERhcmluIEZpc2hlciAgPGRh
cmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3Yu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggOGI4ODRjZi4uOGQ2NzRlNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTk1LDYgKzE5NSw2MyBAQCBib29sIEhUTUxJbnB1
dEVsZW1lbnQ6OnBhdHRlcm5NaXNtYXRjaCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Citib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJhbmdlVW5kZXJmbG93KCkgY29uc3QKK3sKKyAgICBp
ZiAoaW5wdXRUeXBlKCkgPT0gTlVNQkVSKSB7CisgICAgICAgIGRvdWJsZSBtaW47CisgICAgICAg
IGRvdWJsZSBkb3VibGVWYWx1ZTsKKyAgICAgICAgaWYgKGhhc0F0dHJpYnV0ZShtaW5BdHRyKSAm
JiBmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLnN0cmluZygpLCAmbWlu
KSAmJiBmb3JtU3RyaW5nVG9Eb3VibGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKKyAgICAgICAg
ICAgIHJldHVybiBkb3VibGVWYWx1ZSA8IG1pbjsKKyAgICB9IGVsc2UgaWYgKGlucHV0VHlwZSgp
ID09IFJBTkdFKSB7CisgICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKKyAgICAgICAgaWYgKGZv
cm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAmZG91YmxlVmFsdWUpKQorICAgICAgICAgICAgcmV0
dXJuIGRvdWJsZVZhbHVlIDwgbWluUmFuZ2UoKTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJhbmdlT3ZlcmZsb3coKSBjb25zdAoreworICAg
IGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIpIHsKKyAgICAgICAgZG91YmxlIG1heDsKKyAgICAg
ICAgZG91YmxlIGRvdWJsZVZhbHVlOworICAgICAgICBpZiAoaGFzQXR0cmlidXRlKG1heEF0dHIp
ICYmIGZvcm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWF4QXR0cikuc3RyaW5nKCksICZt
YXgpICYmIGZvcm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAmZG91YmxlVmFsdWUpKQorICAgICAg
ICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlID4gbWF4OworICAgIH0gZWxzZSBpZiAoaW5wdXRUeXBl
KCkgPT0gUkFOR0UpIHsKKyAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlOworICAgICAgICBpZiAo
Zm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZkb3VibGVWYWx1ZSkpCisgICAgICAgICAgICBy
ZXR1cm4gZG91YmxlVmFsdWUgPiBtYXhSYW5nZSgpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2RvdWJsZSBIVE1MSW5wdXRFbGVtZW50OjptaW5SYW5nZSgpIGNvbnN0Cit7CisgICAg
QVNTRVJUKGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICAvLyBUaGUgcmFuZ2UgdHlwZSdzICJk
ZWZhdWx0IG1pbmltdW0iIGlzIDAuCisgICAgZG91YmxlIG1pbiA9IDAuMDsKKyAgICBpZiAoaGFz
QXR0cmlidXRlKG1pbkF0dHIpKQorICAgICAgICBmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0cmli
dXRlKG1pbkF0dHIpLCAmbWluKTsKKyAgICByZXR1cm4gbWluOworfQorCitkb3VibGUgSFRNTElu
cHV0RWxlbWVudDo6bWF4UmFuZ2UoKSBjb25zdAoreworICAgIEFTU0VSVChpbnB1dFR5cGUoKSA9
PSBSQU5HRSk7CisgICAgLy8gVGhlIHJhbmdlIHR5cGUncyAiZGVmYXVsdCBtYXhpbXVtIiBpcyAx
MDAuCisgICAgZG91YmxlIG1heCA9IDEwMC4wOworICAgIGlmIChoYXNBdHRyaWJ1dGUobWF4QXR0
cikpIHsKKyAgICAgICAgZm9ybVN0cmluZ1RvRG91YmxlKGdldEF0dHJpYnV0ZShtYXhBdHRyKSwg
Jm1heCk7CisgICAgICAgIGRvdWJsZSBtaW4gPSBtaW5SYW5nZSgpOworICAgICAgICBpZiAobWF4
IDwgbWluKSB7CisgICAgICAgICAgICBtYXggPSAxMDAuMDsKKyAgICAgICAgICAgIGlmIChtYXgg
PCBtaW4pCisgICAgICAgICAgICAgICAgbWF4ID0gbWluOyAgLy8gVGhlIHNwZWMgYWxsb3dzIG1p
biA9PSBtYXguCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG1heDsKK30KKwogc3RhdGlj
IGlubGluZSBDaGVja2VkUmFkaW9CdXR0b25zJiBjaGVja2VkUmFkaW9CdXR0b25zKGNvbnN0IEhU
TUxJbnB1dEVsZW1lbnQgKmVsZW1lbnQpCiB7CiAgICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9y
bSA9IGVsZW1lbnQtPmZvcm0oKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDhmMjczY2Iu
LjAyMzZhNjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtOTUsNiArOTUsMTQgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZygpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBwYXR0ZXJuTWlzbWF0Y2goKSBjb25zdDsKKyAgICAvLyBGb3IgVmFsaWRpdHlTdGF0
ZQorICAgIGJvb2wgcmFuZ2VVbmRlcmZsb3coKSBjb25zdDsKKyAgICBib29sIHJhbmdlT3ZlcmZs
b3coKSBjb25zdDsKKyAgICAvLyBSZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlIGZvciB0eXBlPXJh
bmdlLiAgRG9uJ3QgY2FsbCB0aGlzIGZvciBvdGhlciB0eXBlcy4KKyAgICBkb3VibGUgbWluUmFu
Z2UoKSBjb25zdDsKKyAgICAvLyBSZXR1cm5zIHRoZSBtYXhpbXVtIHZhbHVlIGZvciB0eXBlPXJh
bmdlLiAgRG9uJ3QgY2FsbCB0aGlzIGZvciBvdGhlciB0eXBlcy4KKyAgICAvLyBUaGlzIGFsd2F5
cyByZXR1cm5zIGEgdmFsdWUgd2hpY2ggaXMgPD0gbWluUmFuZ2UoKS4KKyAgICBkb3VibGUgbWF4
UmFuZ2UoKSBjb25zdDsKIAogICAgIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlID09IFNVQk1JVCB8fCBtX3R5cGUgPT0gUkVTRVQgfHwgbV90eXBlID09IEJVVFRPTjsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
ID09IFJBRElPOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5p
ZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggMDdiYWI5MC4uMTM2
MTg0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNDIsNyArNDIsOSBAQCBtb2R1
bGUgaHRtbCB7CiAjaWYgZGVmaW5lZChFTkFCTEVfREFUQUxJU1QpICYmIEVOQUJMRV9EQVRBTElT
VAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgICAgIGxpc3Q7CiAjZW5k
aWYKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWF4Owog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIG1heExlbmd0aDsKKyAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWluOwogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIG11bHRpcGxlOwogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFt
ZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgICAgICAg
cGF0dGVybjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcCBiL1dl
YkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAppbmRleCBkZjg5MzNkLi41YmY4MzgyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9odG1s
L1ZhbGlkaXR5U3RhdGUuY3BwCkBAIC02MCw2ICs2MCwyMCBAQCBib29sIFZhbGlkaXR5U3RhdGU6
OnR5cGVNaXNtYXRjaCgpCiAgICAgfQogfQogCitib29sIFZhbGlkaXR5U3RhdGU6OnJhbmdlVW5k
ZXJmbG93KCkKK3sKKyAgICBpZiAoIWNvbnRyb2woKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KGNvbnRyb2woKSktPnJhbmdlVW5kZXJmbG93KCk7Cit9CisKK2Jvb2wgVmFsaWRpdHlT
dGF0ZTo6cmFuZ2VPdmVyZmxvdygpCit7CisgICAgaWYgKCFjb250cm9sKCktPmhhc1RhZ05hbWUo
aW5wdXRUYWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEhUTUxJbnB1dEVsZW1lbnQqPihjb250cm9sKCkpLT5yYW5nZU92ZXJmbG93KCk7Cit9CisKIGJv
b2wgVmFsaWRpdHlTdGF0ZTo6dmFsaWQoKQogewogICAgIGJvb2wgc29tZUVycm9yID0gdHlwZU1p
c21hdGNoKCkgfHwgc3RlcE1pc21hdGNoKCkgfHwgcmFuZ2VVbmRlcmZsb3coKSB8fCByYW5nZU92
ZXJmbG93KCkgfHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmggYi9X
ZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oCmluZGV4IDFiODdmOTkuLjg5NDI2NWEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKKysrIGIvV2ViQ29yZS9odG1sL1Zh
bGlkaXR5U3RhdGUuaApAQCAtNDQsOCArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIGJvb2wgdHlwZU1pc21hdGNoKCk7CiAgICAgICAgIGJvb2wgcGF0dGVybk1pc21hdGNoKCkg
eyByZXR1cm4gY29udHJvbCgpLT5wYXR0ZXJuTWlzbWF0Y2goKTsgfQogICAgICAgICBib29sIHRv
b0xvbmcoKSB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICBib29sIHJhbmdlVW5kZXJmbG93KCkg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgYm9vbCByYW5nZU92ZXJmbG93KCkgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICAgICAgYm9vbCByYW5nZVVuZGVyZmxvdygpOworICAgICAgICBib29sIHJh
bmdlT3ZlcmZsb3coKTsKICAgICAgICAgYm9vbCBzdGVwTWlzbWF0Y2goKSB7IHJldHVybiBmYWxz
ZTsgfQogICAgICAgICBib29sIGN1c3RvbUVycm9yKCkgeyByZXR1cm4gIW1fY3VzdG9tRXJyb3JN
ZXNzYWdlLmlzRW1wdHkoKTsgfQogICAgICAgICBib29sIHZhbGlkKCk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2xpZGVyLmNwcAppbmRleCAyNDdhY2RhLi42NGI0NzE2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNsaWRlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIGNvbnN0IGludCBkZWZhdWx0VHJh
Y2tMZW5ndGggPSAxMjk7CiBzdHJ1Y3QgU2xpZGVyUmFuZ2UgewogICAgIGJvb2wgaXNJbnRlZ3Jh
bDsKICAgICBkb3VibGUgbWluaW11bTsKLSAgICBkb3VibGUgbWF4aW11bTsKKyAgICBkb3VibGUg
bWF4aW11bTsgIC8vIG1heGltdW0gbXVzdCBiZSA8PSBtaW5pbXVtLgogCiAgICAgZXhwbGljaXQg
U2xpZGVyUmFuZ2UoSFRNTElucHV0RWxlbWVudCopOwogICAgIGRvdWJsZSBjbGFtcFZhbHVlKGRv
dWJsZSB2YWx1ZSk7CkBAIC04MCwxMiArODAsOCBAQCBTbGlkZXJSYW5nZTo6U2xpZGVyUmFuZ2Uo
SFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIAogICAgIGlzSW50ZWdyYWwgPSAhZXF1YWxJZ25v
cmluZ0Nhc2UoZWxlbWVudC0+Z2V0QXR0cmlidXRlKHByZWNpc2lvbkF0dHIpLCAiZmxvYXQiKTsK
IAotICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyBtYXhpbXVtIHN0cmluZ3MgdGhhdCBjYW4ndCBi
ZSBwYXJzZWQgYXMgMCwgYnV0IHBlcmhhcHMgMTAwIHdvdWxkIGJlIG1vcmUgYXBwcm9wcmlhdGUu
Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBtYXhTdHJpbmcgPSBlbGVtZW50LT5nZXRBdHRyaWJ1
dGUobWF4QXR0cik7Ci0gICAgbWF4aW11bSA9IG1heFN0cmluZy5pc051bGwoKSA/IDEwMC4wIDog
bWF4U3RyaW5nLnRvRG91YmxlKCk7Ci0KLSAgICAvLyBJZiB0aGUgbWF4aW11bSBpcyBzbWFsbGVy
LCB1c2UgaXQgYXMgdGhlIG1pbmltdW0uCi0gICAgbWluaW11bSA9IG1pbihlbGVtZW50LT5nZXRB
dHRyaWJ1dGUobWluQXR0cikudG9Eb3VibGUoKSwgbWF4aW11bSk7CisgICAgbWF4aW11bSA9IGVs
ZW1lbnQtPm1heFJhbmdlKCk7CisgICAgbWluaW11bSA9IGVsZW1lbnQtPm1pblJhbmdlKCk7CiB9
CiAKIGRvdWJsZSBTbGlkZXJSYW5nZTo6Y2xhbXBWYWx1ZShkb3VibGUgdmFsdWUpCkBAIC05Niwx
MiArOTIsMTQgQEAgZG91YmxlIFNsaWRlclJhbmdlOjpjbGFtcFZhbHVlKGRvdWJsZSB2YWx1ZSkK
IAogZG91YmxlIFNsaWRlclJhbmdlOjp2YWx1ZUZyb21FbGVtZW50KEhUTUxJbnB1dEVsZW1lbnQq
IGVsZW1lbnQsIGJvb2wqIHdhc0NsYW1wZWQpCiB7Ci0gICAgU3RyaW5nIHZhbHVlU3RyaW5nID0g
ZWxlbWVudC0+dmFsdWUoKTsKLSAgICBkb3VibGUgb2xkVmFsdWUgPSB2YWx1ZVN0cmluZy5pc051
bGwoKSA/IChtaW5pbXVtICsgbWF4aW11bSkgLyAyIDogdmFsdWVTdHJpbmcudG9Eb3VibGUoKTsK
KyAgICBkb3VibGUgb2xkVmFsdWU7CisgICAgYm9vbCBwYXJzZVN1Y2Nlc3MgPSBIVE1MSW5wdXRF
bGVtZW50Ojpmb3JtU3RyaW5nVG9Eb3VibGUoZWxlbWVudC0+dmFsdWUoKSwgJm9sZFZhbHVlKTsK
KyAgICBpZiAoIXBhcnNlU3VjY2VzcykKKyAgICAgICAgb2xkVmFsdWUgPSAobWluaW11bSArIG1h
eGltdW0pIC8gMjsKICAgICBkb3VibGUgbmV3VmFsdWUgPSBjbGFtcFZhbHVlKG9sZFZhbHVlKTsK
IAogICAgIGlmICh3YXNDbGFtcGVkKQotICAgICAgICAqd2FzQ2xhbXBlZCA9IHZhbHVlU3RyaW5n
LmlzTnVsbCgpIHx8IG5ld1ZhbHVlICE9IG9sZFZhbHVlOworICAgICAgICAqd2FzQ2xhbXBlZCA9
ICFwYXJzZVN1Y2Nlc3MgfHwgbmV3VmFsdWUgIT0gb2xkVmFsdWU7CiAKICAgICByZXR1cm4gbmV3
VmFsdWU7CiB9Ci0tIAoxLjYuMy4zCgo=
</data>
<flag name="review"
          id="20995"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40033</attachid>
            <date>2009-09-23 17:38:38 -0700</date>
            <delta_ts>2009-10-04 19:08:12 -0700</delta_ts>
            <desc>Proposed patch (rev.3)</desc>
            <filename>0001-min-max-support-for-type-number-range.patch</filename>
            <type>text/plain</type>
            <size>31994</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSA5N2Y2Yjc3ZDYwMzIxMzU1YjMyZTM0ZjVhMjAwZWE1MzA5Y2I0YzA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUaHUsIDEwIFNlcCAyMDA5IDExOjI5OjQxICswOTAwClN1YmplY3Q6IFtQQVRDSF0gbWluL21h
eCBzdXBwb3J0IGZvciB0eXBlPW51bWJlci9yYW5nZQoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjQgKysrKysrKysKIC4uLlZhbGlk
aXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0IHwgICAyMyArKysrKysr
KwogLi4uL2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuaHRtbCAgfCAg
IDEzICsrKysrCiAuLi4vVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLWV4cGVjdGVk
LnR4dCB8ICAgMjMgKysrKysrKysKIC4uLi9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZs
b3ctcmFuZ2UuaHRtbCAgIHwgICAxMyArKysrKwogLi4uYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJm
bG93LW51bWJlci1leHBlY3RlZC50eHQgfCAgIDIzICsrKysrKysrCiAuLi4vZm9ybXMvVmFsaWRp
dHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuaHRtbCB8ICAgMTMgKysrKysKIC4uLlZhbGlk
aXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0IHwgICAyMyArKysrKysr
KwogLi4uL2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuaHRtbCAgfCAg
IDEzICsrKysrCiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3RlZC50
eHQgICB8ICAgMjEgKysrKysrKwogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXgu
aHRtbCAgICAgICAgICAgfCAgIDEzICsrKysrCiAuLi4vVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJm
bG93LW51bWJlci5qcyAgICAgICAgICB8ICAgNDAgKysrKysrKysrKysrKysKIC4uLi9WYWxpZGl0
eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuanMgICAgICAgICAgIHwgICA0MyArKysrKysrKysr
KysrKysKIC4uLi9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qcyAgICAgICAg
IHwgICA0MCArKysrKysrKysrKysrKwogLi4uL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ct
cmFuZ2UuanMgICAgICAgICAgfCAgIDQxICsrKysrKysrKysrKysrCiAuLi4vZmFzdC9mb3Jtcy9z
Y3JpcHQtdGVzdHMvaW5wdXQtbWlubWF4LmpzICAgICAgICB8ICAgMzUgKysrKysrKysrKysrCiBX
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjkg
KysrKysrKysrKwogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwICAgICAgICAgICAg
ICAgICAgfCAgIDU2ICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oICAgICAgICAgICAgICAgICAgICB8ICAgIDggKysrCiBXZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5pZGwgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9odG1s
L1ZhbGlkaXR5U3RhdGUuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysrCiBXZWJD
b3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0K
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgICAgICAgICAgICAgICAgIHwgICAx
OCArKystLS0tCiAyMyBmaWxlcyBjaGFuZ2VkLCA1MjAgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRp
b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0
eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51
bWJlci5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ct
cmFuZ2UuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJm
bG93LW51bWJlci5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVu
ZGVyZmxvdy1yYW5nZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXguaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVy
Zmxvdy1udW1iZXIuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuanMKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0
eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZs
b3ctcmFuZ2UuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy9pbnB1dC1taW5tYXguanMKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjU4NzljMC4uMGEwMDNmZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDA5LTA5LTA5ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgbWluL21heCBhdHRyaWJ1dGVzLCBWYWxpZGl0eVN0YXRlLnJhbmdlVW5kZXJm
bG93IGFuZAorICAgICAgICBWYWxpZGl0eVN0YXRlLnJhbmdlT3ZlcmZsb3cgZm9yIDxpbnB1dCB0
eXBlPW51bWJlcj4gYW5kIDxpbnB1dCB0eXBlPXJhbmdlPgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwNjkKKworICAgICAgICAqIGZhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVy
Zmxvdy1yYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZs
b3ctbnVtYmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtbWlubWF4Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1i
ZXIuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5
U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuanM6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VVbmRlcmZsb3ctcmFuZ2UuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL2lucHV0LW1pbm1heC5qczogQWRkZWQuCisKIDIwMDktMDktMjMgIERhbmllbCBCYXRl
cyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VP
dmVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTI4NDM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitUaGlzIHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFu
Z2VPdmVyZmxvdyBmbGFnIHdpdGggdHlwZT1udW1iZXIgaW5wdXQgZmllbGRzCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IG92ZXJm
bG93IHRoZSBtYXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIjk5IiBkb2Vzbid0
IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi0xMDEi
IGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFs
dWUgIjk5IiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxRSsyIi4KK1BBU1Mg
VGhlIHZhbHVlICIwLjk5IiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxLjAw
Ii4KK1BBU1MgVGhlIHZhbHVlICJhYmMiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFs
dWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVt
IHZhbHVlICItMSIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBt
YXhpbXVtIHZhbHVlICIiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCBvdmVyZmxvdyB0
aGUgbWF4aW11bSB2YWx1ZSAieHh4Ii4KK1BBU1MgVGhlIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11
bSB2YWx1ZSAiMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTgiLgor
UEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVlICIxMDAiLgor
UEFTUyBUaGUgdmFsdWUgIi05OSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVlICItMTAwIi4K
K1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUgbWF4aW11bSB2YWx1ZSAiMUUrMiIu
CitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZs
b3ctbnVtYmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VPdmVyZmxvdy1udW1iZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41OGU1ZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTA5YTAwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJh
bmdlT3ZlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1RoaXMgdGVz
dCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZU92ZXJmbG93IGZsYWcgd2l0aCB0eXBlPXJhbmdlIGlu
cHV0IGZpZWxkcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdmFs
dWUgIjEwMSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1Mg
VGhlIHZhbHVlICI5OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4K
K1BBU1MgVGhlIHZhbHVlICItMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVl
ICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICI5OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11
bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiMC45OSIgZG9lc24ndCBvdmVyZmxvdyB0
aGUgbWF4aW11bSB2YWx1ZSAiMS4wMCIuCitQQVNTIFRoZSB2YWx1ZSAiYWJjIiBkb2Vzbid0IG92
ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIiIgZG9lc24n
dCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiLTEiLgorUEFTUyBUaGUgdmFsdWUgIjAuOTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5IiBkb2Vzbid0IG92ZXJmbG93
IHRoZSBtYXhpbXVtIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhp
bXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBtYXhp
bXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi05OSIgb3ZlcmZsb3dzIHRoZSBtYXhp
bXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUgbWF4
aW11bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1h
eGltdW0gdmFsdWUgIiIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1heGlt
dW0gdmFsdWUgInh4eCIuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMDM4NWIyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwKQEAgLTAsMCAr
MSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRl
cmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44MDc5OTdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyMyBAQAorVGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJhbmdlVW5kZXJmbG93IGZsYWcg
d2l0aCB0eXBlPW51bWJlciBpbnB1dCBmaWVsZHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgVGhlIHZhbHVlICI5OSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0g
dmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUg
bWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICItOTkiIGRvZXNuJ3QgdW5kZXJm
bG93IHRoZSBtaW5pbXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNu
J3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVlICIx
LjAxIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMS4wMCIuCitQQVNTIFRo
ZSB2YWx1ZSAiYWJjIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4K
K1BBU1MgVGhlIHZhbHVlICIiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIx
Ii4KK1BBU1MgVGhlIHZhbHVlICItMSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFs
dWUgIiIuCitQQVNTIFRoZSB2YWx1ZSAiLTEiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVt
IHZhbHVlICJ4eHgiLgorUEFTUyBUaGUgdmFsdWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk4IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAi
MC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkiLgorUEFTUyBUaGUg
dmFsdWUgIjk5IiB1bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUg
dmFsdWUgIi0xMDEiIHVuZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBU
aGUgdmFsdWUgIjk5IiB1bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIxRSsyIi4KK1BBU1Mg
VGhlIHZhbHVlICIxMDEiIHVuZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjIwMCIuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51
bWJlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5k
ZXJmbG93LW51bWJlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVl
NzUyN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5
U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjZjYTg1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJh
bmdlVW5kZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitUaGlzIHRl
c3QgYWltcyB0byBjaGVjayBmb3IgcmFuZ2VVbmRlcmZsb3cgZmxhZyB3aXRoIHR5cGU9cmFuZ2Ug
aW5wdXQgZmllbGRzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB2
YWx1ZSAiOTkiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFT
UyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEw
MCIuCitQQVNTIFRoZSB2YWx1ZSAiLTk5IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2
YWx1ZSAiLTEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUg
bWluaW11bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiMS4wMSIgZG9lc24ndCB1bmRl
cmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEuMDAiLgorUEFTUyBUaGUgdmFsdWUgImFiYyIgZG9l
c24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAi
IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMSIuCitQQVNTIFRoZSB2YWx1
ZSAiMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTgiIGRvZXNuJ3Qg
dW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OSIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IHVuZGVyZmxv
dyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICI5OSIgdW5kZXJmbG93
cyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICItMTAxIiB1bmRlcmZs
b3dzIHRoZSBtaW5pbXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICI5OSIgdW5kZXJm
bG93cyB0aGUgbWluaW11bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiLTEiIHVuZGVy
Zmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIiIuCitQQVNTIFRoZSB2YWx1ZSAiLTEiIHVuZGVyZmxv
d3MgdGhlIG1pbmltdW0gdmFsdWUgInh4eCIuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmZiZWJmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdl
Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVu
ZGVyZmxvdy1yYW5nZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWRlMDBkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjEgQEAKK1Rlc3RzIHRoZSBiZWhhdmlvciBvZiAubWluIGFuZCAubWF4IG9mIEhUTUxJ
bnB1dEVsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0
Lm1pbiBpcyAiIgorUEFTUyBpbnB1dC5tYXggaXMgIiIKK1BBU1MgaW5wdXQubWluIGlzICIwIgor
UEFTUyBpbnB1dC5tYXggaXMgIjEwMCIKK1BBU1MgaW5wdXQubWluIGlzICJhYmMiCitQQVNTIGlu
cHV0Lm1heCBpcyAicXdlcnR5IgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoIm1pbiIpIGlzICJm
b28iCitQQVNTIGlucHV0LmdldEF0dHJpYnV0ZSgibWF4IikgaXMgImJhciIKK1BBU1MgaW5wdXQu
Z2V0QXR0cmlidXRlKCJtaW4iKSBpcyAiIgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoIm1heCIp
IGlzICIiCitQQVNTIGlucHV0Lm1pbiBpcyAiIgorUEFTUyBpbnB1dC5tYXggaXMgIiIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yMmY4ZGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC1taW5tYXguaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1dC1t
aW5tYXguanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdl
T3ZlcmZsb3ctbnVtYmVyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5mNDU5ZjJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJl
ci5qcwpAQCAtMCwwICsxLDQwIEBACitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IGFpbXMgdG8gY2hl
Y2sgZm9yIHJhbmdlT3ZlcmZsb3cgZmxhZyB3aXRoIHR5cGU9bnVtYmVyIGlucHV0IGZpZWxkcycp
OworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworCitmdW5j
dGlvbiBjaGVjayh2YWx1ZSwgbWF4LCBvdmVyZmxvd0V4cGVjdGVkKQoreworICAgIGlucHV0LnZh
bHVlID0gdmFsdWU7CisgICAgaW5wdXQubWF4ID0gbWF4OworICAgIHZhciBhY3R1YWwgPSBpbnB1
dC52YWxpZGl0eS5yYW5nZU92ZXJmbG93OworICAgIHZhciBkaWRQYXNzID0gYWN0dWFsID09IG92
ZXJmbG93RXhwZWN0ZWQ7CisgICAgdmFyIHJlc3VsdFRleHQgPSAnVGhlIHZhbHVlICInICsgaW5w
dXQudmFsdWUgKyAnIiAnICsgKGFjdHVhbCA/ICdvdmVyZmxvd3MnIDogJ2RvZXNuXCd0IG92ZXJm
bG93JykgKyAnIHRoZSBtYXhpbXVtIHZhbHVlICInICsgaW5wdXQubWF4ICsgJyIuJzsKKyAgICBp
ZiAoZGlkUGFzcykKKyAgICAgICAgdGVzdFBhc3NlZChyZXN1bHRUZXh0KTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RGYWlsZWQocmVzdWx0VGV4dCk7Cit9CisKKy8vIE5vIG92ZXJmbG93IGNhc2Vz
CitpbnB1dC50eXBlID0gJ3RleHQnOyAgLy8gTm8gb3ZlcmZsb3cgZm9yIHR5cGU9dGV4dC4KK2No
ZWNrKCcxMDEnLCAnMTAwJywgZmFsc2UpOworaW5wdXQudHlwZSA9ICdudW1iZXInOworY2hlY2so
Jzk5JywgJzEwMCcsIGZhbHNlKTsgIC8vIFZlcnkgbm9ybWFsIGNhc2UuCitjaGVjaygnLTEwMScs
ICctMTAwJywgZmFsc2UpOworY2hlY2soJzk5JywgJzFFKzInLCBmYWxzZSk7CitjaGVjaygnMC45
OScsICcxLjAwJywgZmFsc2UpOworY2hlY2soJ2FiYycsICcxMDAnLCBmYWxzZSk7ICAvLyBJbnZh
bGlkIHZhbHVlLgorY2hlY2soJycsICctMScsIGZhbHNlKTsgIC8vIE5vIHZhbHVlLgorY2hlY2so
JzEwMScsICcnLCBmYWxzZSk7ICAvLyBObyBtYXguCitjaGVjaygnMTAxJywgJ3h4eCcsIGZhbHNl
KTsgIC8vIEludmFsaWQgbWF4LgorLy8gVGhlIGZvbGxvd2luZyBjYXNlIHNob3VsZCBiZSByYW5n
ZU92ZXJmbG93PT10cnVlIGlkZWFsbHkuICBCdXQgdGhlICJkb3VibGUiIHR5cGUgZG9lc24ndCBo
YXZlIGVub3VnaCBwcmVjaXNpb24uCitjaGVjaygnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTknLCAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTgnLCBmYWxzZSk7CisKKy8vIE92ZXJmbG93IGNhc2VzCitjaGVjaygnMTAxJywgJzEw
MCcsIHRydWUpOworY2hlY2soJy05OScsICctMTAwJywgdHJ1ZSk7CitjaGVjaygnMTAxJywgJzFF
KzInLCB0cnVlKTsKK2lucHV0Lm1pbiA9ICcyMDAnOyAgLy8gdmFsdWUgPCBtaW4gJiYgdmFsdWUg
PiBtYXgKK2NoZWNrKCcxMDEnLCAnMTAwJywgdHJ1ZSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YjAxYTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRl
LXJhbmdlT3ZlcmZsb3ctcmFuZ2UuanMKQEAgLTAsMCArMSw0MyBAQAorZGVzY3JpcHRpb24oJ1Ro
aXMgdGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZU92ZXJmbG93IGZsYWcgd2l0aCB0eXBlPXJh
bmdlIGlucHV0IGZpZWxkcycpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdpbnB1dCcpOworCitmdW5jdGlvbiBjaGVjayh2YWx1ZSwgbWF4LCBvdmVyZmxvd0V4cGVjdGVk
KQoreworICAgIGlucHV0LnZhbHVlID0gdmFsdWU7CisgICAgaW5wdXQubWF4ID0gbWF4OworICAg
IHZhciBhY3R1YWwgPSBpbnB1dC52YWxpZGl0eS5yYW5nZU92ZXJmbG93OworICAgIHZhciBkaWRQ
YXNzID0gYWN0dWFsID09IG92ZXJmbG93RXhwZWN0ZWQ7CisgICAgdmFyIHJlc3VsdFRleHQgPSAn
VGhlIHZhbHVlICInICsgaW5wdXQudmFsdWUgKyAnIiAnICsgKGFjdHVhbCA/ICdvdmVyZmxvd3Mn
IDogJ2RvZXNuXCd0IG92ZXJmbG93JykgKyAnIHRoZSBtYXhpbXVtIHZhbHVlICInICsgaW5wdXQu
bWF4ICsgJyIuJzsKKyAgICBpZiAoZGlkUGFzcykKKyAgICAgICAgdGVzdFBhc3NlZChyZXN1bHRU
ZXh0KTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQocmVzdWx0VGV4dCk7Cit9CisKKy8v
IE5vIG92ZXJmbG93IGNhc2VzCitpbnB1dC50eXBlID0gJ3RleHQnOyAgLy8gTm8gb3ZlcmZsb3cg
Zm9yIHR5cGU9dGV4dC4KK2NoZWNrKCcxMDEnLCAnMTAwJywgZmFsc2UpOworaW5wdXQudHlwZSA9
ICdyYW5nZSc7CitjaGVjaygnOTknLCAnMTAwJywgZmFsc2UpOyAgLy8gVmVyeSBub3JtYWwgY2Fz
ZS4KK2NoZWNrKCctMTAxJywgJy0xMDAnLCBmYWxzZSk7CitjaGVjaygnOTknLCAnMUUrMicsIGZh
bHNlKTsKK2NoZWNrKCcwLjk5JywgJzEuMDAnLCBmYWxzZSk7CitjaGVjaygnYWJjJywgJzEwMCcs
IGZhbHNlKTsgIC8vIEludmFsaWQgdmFsdWUuCitjaGVjaygnJywgJy0xJywgZmFsc2UpOyAgLy8g
Tm8gdmFsdWUuCisvLyBUaGUgZm9sbG93aW5nIGNhc2Ugc2hvdWxkIGJlIHJhbmdlT3ZlcmZsb3c9
PXRydWUgaWRlYWxseS4gIEJ1dCB0aGUgImRvdWJsZSIgdHlwZSBkb2Vzbid0IGhhdmUgZW5vdWdo
IHByZWNpc2lvbi4KK2NoZWNrKCcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OScsICcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OCcs
IGZhbHNlKTsKK2lucHV0Lm1pbiA9ICcyMDAnOyAgLy8gSWYgbWluID4gbWF4LCBtYXggaXMgcmVz
ZXQgdG8gbWluLgorY2hlY2soJzEwMScsICcxMDAnLCBmYWxzZSk7CitpbnB1dC5taW4gPSAnJzsK
KworLy8gT3ZlcmZsb3cgY2FzZXMKK2NoZWNrKCcxMDEnLCAnMTAwJywgdHJ1ZSk7CitpbnB1dC5t
aW4gPSAnLTIwMCc7CitjaGVjaygnLTk5JywgJy0xMDAnLCB0cnVlKTsKK2lucHV0Lm1pbiA9ICcn
OworY2hlY2soJzEwMScsICcxRSsyJywgdHJ1ZSk7CitjaGVjaygnMTAxJywgJycsIHRydWUpOyAg
Ly8gTm8gbWF4LgorY2hlY2soJzEwMScsICd4eHgnLCB0cnVlKTsgIC8vIEludmFsaWQgbWF4Lgor
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVt
YmVyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0
ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZjRlZGZlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzCkBAIC0w
LDAgKzEsNDAgQEAKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFu
Z2VVbmRlcmZsb3cgZmxhZyB3aXRoIHR5cGU9bnVtYmVyIGlucHV0IGZpZWxkcycpOworCit2YXIg
aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworCitmdW5jdGlvbiBjaGVj
ayh2YWx1ZSwgbWluLCB1bmRlcmZsb3dFeHBlY3RlZCkKK3sKKyAgICBpbnB1dC52YWx1ZSA9IHZh
bHVlOworICAgIGlucHV0Lm1pbiA9IG1pbjsKKyAgICB2YXIgYWN0dWFsID0gaW5wdXQudmFsaWRp
dHkucmFuZ2VVbmRlcmZsb3c7CisgICAgdmFyIGRpZFBhc3MgPSBhY3R1YWwgPT0gdW5kZXJmbG93
RXhwZWN0ZWQ7CisgICAgdmFyIHJlc3VsdFRleHQgPSAnVGhlIHZhbHVlICInICsgaW5wdXQudmFs
dWUgKyAnIiAnICsgKGFjdHVhbCA/ICd1bmRlcmZsb3dzJyA6ICdkb2VzblwndCB1bmRlcmZsb3cn
KSArICcgdGhlIG1pbmltdW0gdmFsdWUgIicgKyBpbnB1dC5taW4gKyAnIi4nOworICAgIGlmIChk
aWRQYXNzKQorICAgICAgICB0ZXN0UGFzc2VkKHJlc3VsdFRleHQpOworICAgIGVsc2UKKyAgICAg
ICAgdGVzdEZhaWxlZChyZXN1bHRUZXh0KTsKK30KKworLy8gTm8gdW5kZXJmbG93IGNhc2VzCitp
bnB1dC50eXBlID0gJ3RleHQnOyAgLy8gTm8gdW5kZXJmbG93IGZvciB0eXBlPXRleHQuCitjaGVj
aygnOTknLCAnMTAwJywgZmFsc2UpOworaW5wdXQudHlwZSA9ICdudW1iZXInOworY2hlY2soJzEw
MScsICcxMDAnLCBmYWxzZSk7ICAvLyBWZXJ5IG5vcm1hbCBjYXNlLgorY2hlY2soJy05OScsICct
MTAwJywgZmFsc2UpOworY2hlY2soJzEwMScsICcxRSsyJywgZmFsc2UpOworY2hlY2soJzEuMDEn
LCAnMS4wMCcsIGZhbHNlKTsKK2NoZWNrKCdhYmMnLCAnMTAwJywgZmFsc2UpOyAgLy8gSW52YWxp
ZCB2YWx1ZS4KK2NoZWNrKCcnLCAnMScsIGZhbHNlKTsgIC8vIE5vIHZhbHVlLgorY2hlY2soJy0x
JywgJycsIGZhbHNlKTsgIC8vIE5vIG1pbi4KK2NoZWNrKCctMScsICd4eHgnLCBmYWxzZSk7ICAv
LyBJbnZhbGlkIG1pbi4KKy8vIFRoZSBmb2xsb3dpbmcgY2FzZSBzaG91bGQgYmUgcmFuZ2VVbmRl
cmZsb3c9PXRydWUgaWRlYWxseS4gIEJ1dCB0aGUgImRvdWJsZSIgdHlwZSBkb2Vzbid0IGhhdmUg
ZW5vdWdoIHByZWNpc2lvbi4KK2NoZWNrKCcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OCcsICcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OScsIGZhbHNlKTsKKworLy8gVW5kZXJmbG93IGNhc2VzCitjaGVjaygnOTknLCAnMTAwJywg
dHJ1ZSk7CitjaGVjaygnLTEwMScsICctMTAwJywgdHJ1ZSk7CitjaGVjaygnOTknLCAnMUUrMics
IHRydWUpOworaW5wdXQubWF4ID0gJzEwMCc7ICAvLyB2YWx1ZSA8IG1pbiAmJiB2YWx1ZSA+IG1h
eAorY2hlY2soJzEwMScsICcyMDAnLCB0cnVlKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9W
YWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTQ1YmIyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1y
YW5nZVVuZGVyZmxvdy1yYW5nZS5qcwpAQCAtMCwwICsxLDQxIEBACitkZXNjcmlwdGlvbignVGhp
cyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJhbmdlVW5kZXJmbG93IGZsYWcgd2l0aCB0eXBlPXJh
bmdlIGlucHV0IGZpZWxkcycpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdpbnB1dCcpOworCitmdW5jdGlvbiBjaGVjayh2YWx1ZSwgbWluLCB1bmRlcmZsb3dFeHBlY3Rl
ZCkKK3sKKyAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOworICAgIGlucHV0Lm1pbiA9IG1pbjsKKyAg
ICB2YXIgYWN0dWFsID0gaW5wdXQudmFsaWRpdHkucmFuZ2VVbmRlcmZsb3c7CisgICAgdmFyIGRp
ZFBhc3MgPSBhY3R1YWwgPT0gdW5kZXJmbG93RXhwZWN0ZWQ7CisgICAgdmFyIHJlc3VsdFRleHQg
PSAnVGhlIHZhbHVlICInICsgaW5wdXQudmFsdWUgKyAnIiAnICsgKGFjdHVhbCA/ICd1bmRlcmZs
b3dzJyA6ICdkb2VzblwndCB1bmRlcmZsb3cnKSArICcgdGhlIG1pbmltdW0gdmFsdWUgIicgKyBp
bnB1dC5taW4gKyAnIi4nOworICAgIGlmIChkaWRQYXNzKQorICAgICAgICB0ZXN0UGFzc2VkKHJl
c3VsdFRleHQpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZChyZXN1bHRUZXh0KTsKK30K
KworLy8gTm8gdW5kZXJmbG93IGNhc2VzCitpbnB1dC50eXBlID0gJ3RleHQnOyAgLy8gTm8gb3Zl
cmZsb3cgZm9yIHR5cGU9dGV4dC4KK2NoZWNrKCc5OScsICcxMDAnLCBmYWxzZSk7CitpbnB1dC50
eXBlID0gJ3JhbmdlJzsKK2NoZWNrKCcxMDEnLCAnMTAwJywgZmFsc2UpOyAgLy8gVmVyeSBub3Jt
YWwgY2FzZS4KK2NoZWNrKCctOTknLCAnLTEwMCcsIGZhbHNlKTsKK2NoZWNrKCcxMDEnLCAnMUUr
MicsIGZhbHNlKTsKK2NoZWNrKCcxLjAxJywgJzEuMDAnLCBmYWxzZSk7CitjaGVjaygnYWJjJywg
JzEwMCcsIGZhbHNlKTsgIC8vIEludmFsaWQgdmFsdWUuCitjaGVjaygnJywgJzEnLCBmYWxzZSk7
ICAvLyBObyB2YWx1ZS4KKy8vIFRoZSBmb2xsb3dpbmcgY2FzZSBzaG91bGQgYmUgcmFuZ2VVbmRl
cmZsb3c9PXRydWUgaWRlYWxseS4gIEJ1dCB0aGUgImRvdWJsZSIgdHlwZSBkb2Vzbid0IGhhdmUg
ZW5vdWdoIHByZWNpc2lvbi4KK2NoZWNrKCcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OCcsICcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OScsIGZhbHNlKTsKK2lucHV0Lm1heCA9ICcwJzsgIC8vIElmIG1pbiA+IG1heCwgbWF4IGlz
IHJlc2V0IHRvIG1pbiBhbmQgbWluIGlzIG5vdCBjaGFuZ2VkLgorY2hlY2soJzEwMScsICcxMDAn
LCBmYWxzZSk7CitpbnB1dC5tYXggPSAnJzsKKworLy8gVW5kZXJmbG93IGNhc2VzCitjaGVjaygn
OTknLCAnMTAwJywgdHJ1ZSk7CitjaGVjaygnLTEwMScsICctMTAwJywgdHJ1ZSk7CitjaGVjaygn
OTknLCAnMUUrMicsIHRydWUpOworY2hlY2soJy0xJywgJycsIHRydWUpOyAgLy8gTm8gbWluLgor
Y2hlY2soJy0xJywgJ3h4eCcsIHRydWUpOyAgLy8gSW52YWxpZCBtaW4uCisKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9z
Y3JpcHQtdGVzdHMvaW5wdXQtbWlubWF4LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvaW5wdXQtbWlubWF4LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjA2OGM1Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy9pbnB1dC1taW5tYXguanMKQEAgLTAsMCArMSwzNSBAQAorZGVzY3JpcHRpb24o
J1Rlc3RzIHRoZSBiZWhhdmlvciBvZiAubWluIGFuZCAubWF4IG9mIEhUTUxJbnB1dEVsZW1lbnQu
Jyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisKKy8v
IC5taW4gYW5kIC5tYXgganVzdCByZWZsZWN0IHRoZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZXMu
CitpbnB1dC50eXBlID0gJ3RleHQnOworc2hvdWxkQmUoJ2lucHV0Lm1pbicsICciIicpOworc2hv
dWxkQmUoJ2lucHV0Lm1heCcsICciIicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdtaW4nLCAnMCcp
OworaW5wdXQuc2V0QXR0cmlidXRlKCdtYXgnLCAnMTAwJyk7CitzaG91bGRCZSgnaW5wdXQubWlu
JywgJyIwIicpOworc2hvdWxkQmUoJ2lucHV0Lm1heCcsICciMTAwIicpOworaW5wdXQuc2V0QXR0
cmlidXRlKCdtaW4nLCAnYWJjJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ21heCcsICdxd2VydHkn
KTsKK3Nob3VsZEJlKCdpbnB1dC5taW4nLCAnImFiYyInKTsKK3Nob3VsZEJlKCdpbnB1dC5tYXgn
LCAnInF3ZXJ0eSInKTsKKworaW5wdXQubWluID0gJ2Zvbyc7CitpbnB1dC5tYXggPSAnYmFyJzsK
K3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoIm1pbiIpJywgJyJmb28iJyk7CitzaG91bGRC
ZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtYXgiKScsICciYmFyIicpOworaW5wdXQubWluID0gJyc7
CitpbnB1dC5tYXggPSAnJzsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoIm1pbiIpJywg
JyIiJyk7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtYXgiKScsICciIicpOworCisv
LyBUaGUgcmFuZ2UgdHlwZSBoYXMgdGhlIGRlZmF1bHQgbWluaW11bSBhbmQgdGhlIGRlZmF1bHQg
bWF4aW11bS4KKy8vIEJ1dCB0aGV5IGFyZW4ndCBleHBvc2VkIGJ5IC5taW4gLm1heCBJREwgYXR0
cmlidXRlcy4KK2lucHV0LnR5cGUgPSAncmFuZ2UnOworaW5wdXQuc2V0QXR0cmlidXRlKCdtaW4n
LCAnJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ21heCcsICcnKTsKK3Nob3VsZEJlKCdpbnB1dC5t
aW4nLCAnIiInKTsKK3Nob3VsZEJlKCdpbnB1dC5tYXgnLCAnIiInKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGY2N2I4MWUuLjI1ODMzNjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMDkt
MDktMDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtaW4vbWF4IGF0dHJp
YnV0ZXMsIFZhbGlkaXR5U3RhdGUucmFuZ2VVbmRlcmZsb3cgYW5kCisgICAgICAgIFZhbGlkaXR5
U3RhdGUucmFuZ2VPdmVyZmxvdyBmb3IgPGlucHV0IHR5cGU9bnVtYmVyPiBhbmQgPGlucHV0IHR5
cGU9cmFuZ2U+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yOTA2OQorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VP
dmVyZmxvdy1udW1iZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXguaHRtbAorCisgICAgICAgICogaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OnJhbmdlVW5kZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJh
bmdlT3ZlcmZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6bWluUmFu
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6bWF4UmFuZ2UpOgorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0
RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OnJhbmdlVW5kZXJmbG93KToKKyAgICAgICAgKFdlYkNv
cmU6OlZhbGlkaXR5U3RhdGU6OnJhbmdlT3ZlcmZsb3cpOgorICAgICAgICAqIGh0bWwvVmFsaWRp
dHlTdGF0ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2xpZGVyUmFuZ2U6OlNsaWRlclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNsaWRlclJhbmdlOjp2YWx1ZUZyb21FbGVtZW50KToKKwogMjAwOS0wOS0yMyAgUGV0ZXIgS2Fz
dGluZyAgPHBrYXN0aW5nQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRy
aSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
IGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDhiODg0Y2YuLmZjMmIx
ZjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTE5NSw2ICsxOTUsNjIgQEAgYm9v
bCBIVE1MSW5wdXRFbGVtZW50OjpwYXR0ZXJuTWlzbWF0Y2goKSBjb25zdAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZVVuZGVyZmxvdygpIGNvbnN0
Cit7CisgICAgaWYgKGlucHV0VHlwZSgpID09IE5VTUJFUikgeworICAgICAgICBkb3VibGUgbWlu
OworICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7CisgICAgICAgIGlmIChmb3JtU3RyaW5nVG9E
b3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCAmbWluKSAmJiBmb3JtU3RyaW5nVG9Eb3VibGUo
dmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBkb3VibGVWYWx1ZSA8
IG1pbjsKKyAgICB9IGVsc2UgaWYgKGlucHV0VHlwZSgpID09IFJBTkdFKSB7CisgICAgICAgIGRv
dWJsZSBkb3VibGVWYWx1ZTsKKyAgICAgICAgaWYgKGZvcm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgp
LCAmZG91YmxlVmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlIDwgbWluUmFu
Z2UoKTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEhUTUxJbnB1dEVsZW1l
bnQ6OnJhbmdlT3ZlcmZsb3coKSBjb25zdAoreworICAgIGlmIChpbnB1dFR5cGUoKSA9PSBOVU1C
RVIpIHsKKyAgICAgICAgZG91YmxlIG1heDsKKyAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlOwor
ICAgICAgICBpZiAoZm9ybVN0cmluZ1RvRG91YmxlKGdldEF0dHJpYnV0ZShtYXhBdHRyKSwgJm1h
eCkgJiYgZm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZkb3VibGVWYWx1ZSkpCisgICAgICAg
ICAgICByZXR1cm4gZG91YmxlVmFsdWUgPiBtYXg7CisgICAgfSBlbHNlIGlmIChpbnB1dFR5cGUo
KSA9PSBSQU5HRSkgeworICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7CisgICAgICAgIGlmIChm
b3JtU3RyaW5nVG9Eb3VibGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKKyAgICAgICAgICAgIHJl
dHVybiBkb3VibGVWYWx1ZSA+IG1heFJhbmdlKCk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsK
K30KKworZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6Om1pblJhbmdlKCkgY29uc3QKK3sKKyAgICBB
U1NFUlQoaW5wdXRUeXBlKCkgPT0gUkFOR0UpOworICAgIC8vIFRoZSByYW5nZSB0eXBlJ3MgImRl
ZmF1bHQgbWluaW11bSIgaXMgMC4KKyAgICBkb3VibGUgbWluID0gMC4wOworICAgIGZvcm1TdHJp
bmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0ciksICZtaW4pOworICAgIHJldHVybiBtaW47
Cit9CisKK2RvdWJsZSBIVE1MSW5wdXRFbGVtZW50OjptYXhSYW5nZSgpIGNvbnN0Cit7CisgICAg
QVNTRVJUKGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICAvLyBUaGUgcmFuZ2UgdHlwZSdzICJk
ZWZhdWx0IG1heGltdW0iIGlzIDEwMC4KKyAgICBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRN
YXhpbXVtID0gMTAwLjA7CisgICAgZG91YmxlIG1heCA9IGRlZmF1bHRNYXhpbXVtOworICAgIGZv
cm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWF4QXR0ciksICZtYXgpOworICAgIGNvbnN0
IGRvdWJsZSBtaW4gPSBtaW5SYW5nZSgpOworCisgICAgaWYgKG1heCA8IG1pbikgeworICAgICAg
ICAvLyBBIHJlbWVkeSBmb3IgdGhlIGluY29uc2lzdGVudCBtaW4vbWF4IHZhbHVlcy4KKyAgICAg
ICAgLy8gU2V0cyB0aGUgbWF4bWltdW0gdG8gdGhlIGRlZmF1bHQgKDEwMC4wKSBvciB0aGUgbWlu
aW11bSB2YWx1ZS4KKyAgICAgICAgbWF4ID0gbWluIDwgZGVmYXVsdE1heGltdW0gPyBkZWZhdWx0
TWF4aW11bSA6IG1pbjsKKyAgICB9CisgICAgcmV0dXJuIG1heDsKK30KKwogc3RhdGljIGlubGlu
ZSBDaGVja2VkUmFkaW9CdXR0b25zJiBjaGVja2VkUmFkaW9CdXR0b25zKGNvbnN0IEhUTUxJbnB1
dEVsZW1lbnQgKmVsZW1lbnQpCiB7CiAgICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IGVs
ZW1lbnQtPmZvcm0oKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmggYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDhmMjczY2IuLjAyMzZh
NjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtOTUsNiArOTUsMTQgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9v
bCBwYXR0ZXJuTWlzbWF0Y2goKSBjb25zdDsKKyAgICAvLyBGb3IgVmFsaWRpdHlTdGF0ZQorICAg
IGJvb2wgcmFuZ2VVbmRlcmZsb3coKSBjb25zdDsKKyAgICBib29sIHJhbmdlT3ZlcmZsb3coKSBj
b25zdDsKKyAgICAvLyBSZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlIGZvciB0eXBlPXJhbmdlLiAg
RG9uJ3QgY2FsbCB0aGlzIGZvciBvdGhlciB0eXBlcy4KKyAgICBkb3VibGUgbWluUmFuZ2UoKSBj
b25zdDsKKyAgICAvLyBSZXR1cm5zIHRoZSBtYXhpbXVtIHZhbHVlIGZvciB0eXBlPXJhbmdlLiAg
RG9uJ3QgY2FsbCB0aGlzIGZvciBvdGhlciB0eXBlcy4KKyAgICAvLyBUaGlzIGFsd2F5cyByZXR1
cm5zIGEgdmFsdWUgd2hpY2ggaXMgPD0gbWluUmFuZ2UoKS4KKyAgICBkb3VibGUgbWF4UmFuZ2Uo
KSBjb25zdDsKIAogICAgIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
ID09IFNVQk1JVCB8fCBtX3R5cGUgPT0gUkVTRVQgfHwgbV90eXBlID09IEJVVFRPTjsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFJB
RElPOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggMDdiYWI5MC4uMTM2MTg0NyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNDIsNyArNDIsOSBAQCBtb2R1bGUgaHRt
bCB7CiAjaWYgZGVmaW5lZChFTkFCTEVfREFUQUxJU1QpICYmIEVOQUJMRV9EQVRBTElTVAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgICAgIGxpc3Q7CiAjZW5kaWYKKyAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWF4OwogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIG1heExlbmd0aDsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWluOwogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIG11bHRpcGxlOwogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgICAgICAgcGF0dGVy
bjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcCBiL1dlYkNvcmUv
aHRtbC9WYWxpZGl0eVN0YXRlLmNwcAppbmRleCBkZjg5MzNkLi41YmY4MzgyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlk
aXR5U3RhdGUuY3BwCkBAIC02MCw2ICs2MCwyMCBAQCBib29sIFZhbGlkaXR5U3RhdGU6OnR5cGVN
aXNtYXRjaCgpCiAgICAgfQogfQogCitib29sIFZhbGlkaXR5U3RhdGU6OnJhbmdlVW5kZXJmbG93
KCkKK3sKKyAgICBpZiAoIWNvbnRyb2woKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+
KGNvbnRyb2woKSktPnJhbmdlVW5kZXJmbG93KCk7Cit9CisKK2Jvb2wgVmFsaWRpdHlTdGF0ZTo6
cmFuZ2VPdmVyZmxvdygpCit7CisgICAgaWYgKCFjb250cm9sKCktPmhhc1RhZ05hbWUoaW5wdXRU
YWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihjb250cm9sKCkpLT5yYW5nZU92ZXJmbG93KCk7Cit9CisKIGJvb2wgVmFs
aWRpdHlTdGF0ZTo6dmFsaWQoKQogewogICAgIGJvb2wgc29tZUVycm9yID0gdHlwZU1pc21hdGNo
KCkgfHwgc3RlcE1pc21hdGNoKCkgfHwgcmFuZ2VVbmRlcmZsb3coKSB8fCByYW5nZU92ZXJmbG93
KCkgfHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmggYi9XZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5oCmluZGV4IDFiODdmOTkuLjg5NDI2NWEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5
U3RhdGUuaApAQCAtNDQsOCArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJv
b2wgdHlwZU1pc21hdGNoKCk7CiAgICAgICAgIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgeyByZXR1
cm4gY29udHJvbCgpLT5wYXR0ZXJuTWlzbWF0Y2goKTsgfQogICAgICAgICBib29sIHRvb0xvbmco
KSB7IHJldHVybiBmYWxzZTsgfQotICAgICAgICBib29sIHJhbmdlVW5kZXJmbG93KCkgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICAgICAgYm9vbCByYW5nZU92ZXJmbG93KCkgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICAgICAgYm9vbCByYW5nZVVuZGVyZmxvdygpOworICAgICAgICBib29sIHJhbmdlT3Zl
cmZsb3coKTsKICAgICAgICAgYm9vbCBzdGVwTWlzbWF0Y2goKSB7IHJldHVybiBmYWxzZTsgfQog
ICAgICAgICBib29sIGN1c3RvbUVycm9yKCkgeyByZXR1cm4gIW1fY3VzdG9tRXJyb3JNZXNzYWdl
LmlzRW1wdHkoKTsgfQogICAgICAgICBib29sIHZhbGlkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xp
ZGVyLmNwcAppbmRleCAyNDdhY2RhLi42OWUxZDc0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIGNvbnN0IGludCBkZWZhdWx0VHJhY2tMZW5n
dGggPSAxMjk7CiBzdHJ1Y3QgU2xpZGVyUmFuZ2UgewogICAgIGJvb2wgaXNJbnRlZ3JhbDsKICAg
ICBkb3VibGUgbWluaW11bTsKLSAgICBkb3VibGUgbWF4aW11bTsKKyAgICBkb3VibGUgbWF4aW11
bTsgIC8vIG1heGltdW0gbXVzdCBiZSA+PSBtaW5pbXVtLgogCiAgICAgZXhwbGljaXQgU2xpZGVy
UmFuZ2UoSFRNTElucHV0RWxlbWVudCopOwogICAgIGRvdWJsZSBjbGFtcFZhbHVlKGRvdWJsZSB2
YWx1ZSk7CkBAIC04MCwxMiArODAsOCBAQCBTbGlkZXJSYW5nZTo6U2xpZGVyUmFuZ2UoSFRNTElu
cHV0RWxlbWVudCogZWxlbWVudCkKIAogICAgIGlzSW50ZWdyYWwgPSAhZXF1YWxJZ25vcmluZ0Nh
c2UoZWxlbWVudC0+Z2V0QXR0cmlidXRlKHByZWNpc2lvbkF0dHIpLCAiZmxvYXQiKTsKIAotICAg
IC8vIEZJWE1FOiBUaGlzIHRyZWF0cyBtYXhpbXVtIHN0cmluZ3MgdGhhdCBjYW4ndCBiZSBwYXJz
ZWQgYXMgMCwgYnV0IHBlcmhhcHMgMTAwIHdvdWxkIGJlIG1vcmUgYXBwcm9wcmlhdGUuCi0gICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBtYXhTdHJpbmcgPSBlbGVtZW50LT5nZXRBdHRyaWJ1dGUobWF4
QXR0cik7Ci0gICAgbWF4aW11bSA9IG1heFN0cmluZy5pc051bGwoKSA/IDEwMC4wIDogbWF4U3Ry
aW5nLnRvRG91YmxlKCk7Ci0KLSAgICAvLyBJZiB0aGUgbWF4aW11bSBpcyBzbWFsbGVyLCB1c2Ug
aXQgYXMgdGhlIG1pbmltdW0uCi0gICAgbWluaW11bSA9IG1pbihlbGVtZW50LT5nZXRBdHRyaWJ1
dGUobWluQXR0cikudG9Eb3VibGUoKSwgbWF4aW11bSk7CisgICAgbWF4aW11bSA9IGVsZW1lbnQt
Pm1heFJhbmdlKCk7CisgICAgbWluaW11bSA9IGVsZW1lbnQtPm1pblJhbmdlKCk7CiB9CiAKIGRv
dWJsZSBTbGlkZXJSYW5nZTo6Y2xhbXBWYWx1ZShkb3VibGUgdmFsdWUpCkBAIC05NiwxMiArOTIs
MTQgQEAgZG91YmxlIFNsaWRlclJhbmdlOjpjbGFtcFZhbHVlKGRvdWJsZSB2YWx1ZSkKIAogZG91
YmxlIFNsaWRlclJhbmdlOjp2YWx1ZUZyb21FbGVtZW50KEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1l
bnQsIGJvb2wqIHdhc0NsYW1wZWQpCiB7Ci0gICAgU3RyaW5nIHZhbHVlU3RyaW5nID0gZWxlbWVu
dC0+dmFsdWUoKTsKLSAgICBkb3VibGUgb2xkVmFsdWUgPSB2YWx1ZVN0cmluZy5pc051bGwoKSA/
IChtaW5pbXVtICsgbWF4aW11bSkgLyAyIDogdmFsdWVTdHJpbmcudG9Eb3VibGUoKTsKKyAgICBk
b3VibGUgb2xkVmFsdWU7CisgICAgYm9vbCBwYXJzZVN1Y2Nlc3MgPSBIVE1MSW5wdXRFbGVtZW50
Ojpmb3JtU3RyaW5nVG9Eb3VibGUoZWxlbWVudC0+dmFsdWUoKSwgJm9sZFZhbHVlKTsKKyAgICBp
ZiAoIXBhcnNlU3VjY2VzcykKKyAgICAgICAgb2xkVmFsdWUgPSAobWluaW11bSArIG1heGltdW0p
IC8gMjsKICAgICBkb3VibGUgbmV3VmFsdWUgPSBjbGFtcFZhbHVlKG9sZFZhbHVlKTsKIAogICAg
IGlmICh3YXNDbGFtcGVkKQotICAgICAgICAqd2FzQ2xhbXBlZCA9IHZhbHVlU3RyaW5nLmlzTnVs
bCgpIHx8IG5ld1ZhbHVlICE9IG9sZFZhbHVlOworICAgICAgICAqd2FzQ2xhbXBlZCA9ICFwYXJz
ZVN1Y2Nlc3MgfHwgbmV3VmFsdWUgIT0gb2xkVmFsdWU7CiAKICAgICByZXR1cm4gbmV3VmFsdWU7
CiB9Ci0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40601</attachid>
            <date>2009-10-04 19:08:12 -0700</date>
            <delta_ts>2009-10-04 19:36:35 -0700</delta_ts>
            <desc>Proposed patch (rev.4)</desc>
            <filename>0001-min-max-support-for-type-number-range.patch</filename>
            <type>text/plain</type>
            <size>32081</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSA3YmE2YTk5MGUwZmI0OWY1ODIwZDBkYjJlNmQ3NGI5MTAwODEyYmRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUaHUsIDEwIFNlcCAyMDA5IDExOjI5OjQxICswOTAwClN1YmplY3Q6IFtQQVRDSF0gbWluL21h
eCBzdXBwb3J0IGZvciB0eXBlPW51bWJlci9yYW5nZQoKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjQgKysrKysrKysKIC4uLlZhbGlk
aXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0IHwgICAyMyArKysrKysr
KwogLi4uL2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuaHRtbCAgfCAg
IDEzICsrKysrCiAuLi4vVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLWV4cGVjdGVk
LnR4dCB8ICAgMjMgKysrKysrKysKIC4uLi9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZs
b3ctcmFuZ2UuaHRtbCAgIHwgICAxMyArKysrKwogLi4uYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJm
bG93LW51bWJlci1leHBlY3RlZC50eHQgfCAgIDIzICsrKysrKysrCiAuLi4vZm9ybXMvVmFsaWRp
dHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuaHRtbCB8ICAgMTMgKysrKysKIC4uLlZhbGlk
aXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0IHwgICAyMyArKysrKysr
KwogLi4uL2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuaHRtbCAgfCAg
IDEzICsrKysrCiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3RlZC50
eHQgICB8ICAgMjEgKysrKysrKwogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXgu
aHRtbCAgICAgICAgICAgfCAgIDEzICsrKysrCiAuLi4vVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJm
bG93LW51bWJlci5qcyAgICAgICAgICB8ICAgNDAgKysrKysrKysrKysrKysKIC4uLi9WYWxpZGl0
eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuanMgICAgICAgICAgIHwgICA0MyArKysrKysrKysr
KysrKysKIC4uLi9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qcyAgICAgICAg
IHwgICA0MCArKysrKysrKysrKysrKwogLi4uL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ct
cmFuZ2UuanMgICAgICAgICAgfCAgIDQxICsrKysrKysrKysrKysrCiAuLi4vZmFzdC9mb3Jtcy9z
Y3JpcHQtdGVzdHMvaW5wdXQtbWlubWF4LmpzICAgICAgICB8ICAgMzUgKysrKysrKysrKysrCiBX
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjkg
KysrKysrKysrKwogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwICAgICAgICAgICAg
ICAgICAgfCAgIDU2ICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oICAgICAgICAgICAgICAgICAgICB8ICAgIDggKysrCiBXZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5pZGwgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9odG1s
L1ZhbGlkaXR5U3RhdGUuY3BwICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysrCiBXZWJD
b3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0K
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgICAgICAgICAgICAgICAgIHwgICAx
OCArKystLS0tCiAyMyBmaWxlcyBjaGFuZ2VkLCA1MjAgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRp
b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0
eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51
bWJlci5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ct
cmFuZ2UuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJm
bG93LW51bWJlci5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVu
ZGVyZmxvdy1yYW5nZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXguaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVy
Zmxvdy1udW1iZXIuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuanMKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0
eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZs
b3ctcmFuZ2UuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy9pbnB1dC1taW5tYXguanMKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2E4YzA1ZS4uYWVlZjc2MiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDA5LTA5LTA5ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgbWluL21heCBhdHRyaWJ1dGVzLCBWYWxpZGl0eVN0YXRlLnJhbmdlVW5kZXJm
bG93IGFuZAorICAgICAgICBWYWxpZGl0eVN0YXRlLnJhbmdlT3ZlcmZsb3cgZm9yIDxpbnB1dCB0
eXBlPW51bWJlcj4gYW5kIDxpbnB1dCB0eXBlPXJhbmdlPgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwNjkKKworICAgICAgICAqIGZhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVy
Zmxvdy1yYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZs
b3ctbnVtYmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtbWlubWF4Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1i
ZXIuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5
U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuanM6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VVbmRlcmZsb3ctcmFuZ2UuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL2lucHV0LW1pbm1heC5qczogQWRkZWQuCisKIDIwMDktMTAtMDQgIFhhbiBMb3BleiAg
PHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25o
YS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5n
ZU92ZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMjg0MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1RoaXMgdGVzdCBhaW1zIHRvIGNoZWNrIGZvciBy
YW5nZU92ZXJmbG93IGZsYWcgd2l0aCB0eXBlPW51bWJlciBpbnB1dCBmaWVsZHMKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3Qgb3Zl
cmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiOTkiIGRvZXNu
J3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiLTEw
MSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiLTEwMCIuCitQQVNTIFRoZSB2
YWx1ZSAiOTkiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjFFKzIiLgorUEFT
UyBUaGUgdmFsdWUgIjAuOTkiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEu
MDAiLgorUEFTUyBUaGUgdmFsdWUgImFiYyIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2
YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGlt
dW0gdmFsdWUgIi0xIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhl
IG1heGltdW0gdmFsdWUgIiIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IG92ZXJmbG93
IHRoZSBtYXhpbXVtIHZhbHVlICJ4eHgiLgorUEFTUyBUaGUgdmFsdWUgIjAuOTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5IiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhp
bXVtIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OCIu
CitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIu
CitQQVNTIFRoZSB2YWx1ZSAiLTk5IiBvdmVyZmxvd3MgdGhlIG1heGltdW0gdmFsdWUgIi0xMDAi
LgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVlICIxRSsy
Ii4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAw
Ii4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVy
Zmxvdy1udW1iZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1y
YW5nZU92ZXJmbG93LW51bWJlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjU4ZTVmYTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuaHRtbApAQCAtMCwwICsxLDEzIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhMDlhMDAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
cmFuZ2VPdmVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGhpcyB0
ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJhbmdlT3ZlcmZsb3cgZmxhZyB3aXRoIHR5cGU9cmFuZ2Ug
aW5wdXQgZmllbGRzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB2
YWx1ZSAiMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxMDAiLgorUEFT
UyBUaGUgdmFsdWUgIjk5IiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxMDAi
LgorUEFTUyBUaGUgdmFsdWUgIi0xMDEiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFs
dWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjk5IiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhp
bXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVlICIwLjk5IiBkb2Vzbid0IG92ZXJmbG93
IHRoZSBtYXhpbXVtIHZhbHVlICIxLjAwIi4KK1BBU1MgVGhlIHZhbHVlICJhYmMiIGRvZXNuJ3Qg
b3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiIiBkb2Vz
bid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICItMSIuCitQQVNTIFRoZSB2YWx1ZSAiMC45
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkiIGRvZXNuJ3Qgb3ZlcmZs
b3cgdGhlIG1heGltdW0gdmFsdWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk4Ii4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1h
eGltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1h
eGltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiLTk5IiBvdmVyZmxvd3MgdGhlIG1h
eGltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBt
YXhpbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUg
bWF4aW11bSB2YWx1ZSAiIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUgbWF4
aW11bSB2YWx1ZSAieHh4Ii4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5
U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wMzg1YjI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuaHRtbApAQCAtMCww
ICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2Uu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVu
ZGVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjgwNzk5N2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIzIEBACitUaGlzIHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFuZ2VVbmRlcmZsb3cgZmxh
ZyB3aXRoIHR5cGU9bnVtYmVyIGlucHV0IGZpZWxkcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBUaGUgdmFsdWUgIjk5IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11
bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3QgdW5kZXJmbG93IHRo
ZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi05OSIgZG9lc24ndCB1bmRl
cmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9l
c24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjFFKzIiLgorUEFTUyBUaGUgdmFsdWUg
IjEuMDEiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxLjAwIi4KK1BBU1Mg
VGhlIHZhbHVlICJhYmMiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxMDAi
LgorUEFTUyBUaGUgdmFsdWUgIiIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUg
IjEiLgorUEFTUyBUaGUgdmFsdWUgIi0xIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2
YWx1ZSAiIi4KK1BBU1MgVGhlIHZhbHVlICItMSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmlt
dW0gdmFsdWUgInh4eCIuCitQQVNTIFRoZSB2YWx1ZSAiMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTgiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVl
ICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OSIuCitQQVNTIFRo
ZSB2YWx1ZSAiOTkiIHVuZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRo
ZSB2YWx1ZSAiLTEwMSIgdW5kZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiLTEwMCIuCitQQVNT
IFRoZSB2YWx1ZSAiOTkiIHVuZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjFFKzIiLgorUEFT
UyBUaGUgdmFsdWUgIjEwMSIgdW5kZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiMjAwIi4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ct
bnVtYmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VV
bmRlcmZsb3ctbnVtYmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NWU3NTI3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2Ut
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiNmNhODUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
cmFuZ2VVbmRlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1RoaXMg
dGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZVVuZGVyZmxvdyBmbGFnIHdpdGggdHlwZT1yYW5n
ZSBpbnB1dCBmaWVsZHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhl
IHZhbHVlICI5OSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQ
QVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAi
MTAwIi4KK1BBU1MgVGhlIHZhbHVlICItOTkiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVt
IHZhbHVlICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3QgdW5kZXJmbG93IHRo
ZSBtaW5pbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVlICIxLjAxIiBkb2Vzbid0IHVu
ZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMS4wMCIuCitQQVNTIFRoZSB2YWx1ZSAiYWJjIiBk
b2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVl
ICIiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxIi4KK1BBU1MgVGhlIHZh
bHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OCIgZG9lc24n
dCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5Ii4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3QgdW5kZXJm
bG93IHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIjk5IiB1bmRlcmZs
b3dzIHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi0xMDEiIHVuZGVy
Zmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjk5IiB1bmRl
cmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVlICItMSIgdW5k
ZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiIi4KK1BBU1MgVGhlIHZhbHVlICItMSIgdW5kZXJm
bG93cyB0aGUgbWluaW11bSB2YWx1ZSAieHh4Ii4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmZmJlYmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFu
Z2UuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdl
VW5kZXJmbG93LXJhbmdlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZGUwMGQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyMSBAQAorVGVzdHMgdGhlIGJlaGF2aW9yIG9mIC5taW4gYW5kIC5tYXggb2YgSFRN
TElucHV0RWxlbWVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5w
dXQubWluIGlzICIiCitQQVNTIGlucHV0Lm1heCBpcyAiIgorUEFTUyBpbnB1dC5taW4gaXMgIjAi
CitQQVNTIGlucHV0Lm1heCBpcyAiMTAwIgorUEFTUyBpbnB1dC5taW4gaXMgImFiYyIKK1BBU1Mg
aW5wdXQubWF4IGlzICJxd2VydHkiCitQQVNTIGlucHV0LmdldEF0dHJpYnV0ZSgibWluIikgaXMg
ImZvbyIKK1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJtYXgiKSBpcyAiYmFyIgorUEFTUyBpbnB1
dC5nZXRBdHRyaWJ1dGUoIm1pbiIpIGlzICIiCitQQVNTIGlucHV0LmdldEF0dHJpYnV0ZSgibWF4
IikgaXMgIiIKK1BBU1MgaW5wdXQubWluIGlzICIiCitQQVNTIGlucHV0Lm1heCBpcyAiIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjIyZjhkZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LW1pbm1heC5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2lucHV0
LW1pbm1heC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VPdmVyZmxvdy1udW1iZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0
cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmY0NTlmMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVt
YmVyLmpzCkBAIC0wLDAgKzEsNDAgQEAKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3QgYWltcyB0byBj
aGVjayBmb3IgcmFuZ2VPdmVyZmxvdyBmbGFnIHdpdGggdHlwZT1udW1iZXIgaW5wdXQgZmllbGRz
Jyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisKK2Z1
bmN0aW9uIGNoZWNrKHZhbHVlLCBtYXgsIG92ZXJmbG93RXhwZWN0ZWQpCit7CisgICAgaW5wdXQu
dmFsdWUgPSB2YWx1ZTsKKyAgICBpbnB1dC5tYXggPSBtYXg7CisgICAgdmFyIGFjdHVhbCA9IGlu
cHV0LnZhbGlkaXR5LnJhbmdlT3ZlcmZsb3c7CisgICAgdmFyIGRpZFBhc3MgPSBhY3R1YWwgPT0g
b3ZlcmZsb3dFeHBlY3RlZDsKKyAgICB2YXIgcmVzdWx0VGV4dCA9ICdUaGUgdmFsdWUgIicgKyBp
bnB1dC52YWx1ZSArICciICcgKyAoYWN0dWFsID8gJ292ZXJmbG93cycgOiAnZG9lc25cJ3Qgb3Zl
cmZsb3cnKSArICcgdGhlIG1heGltdW0gdmFsdWUgIicgKyBpbnB1dC5tYXggKyAnIi4nOworICAg
IGlmIChkaWRQYXNzKQorICAgICAgICB0ZXN0UGFzc2VkKHJlc3VsdFRleHQpOworICAgIGVsc2UK
KyAgICAgICAgdGVzdEZhaWxlZChyZXN1bHRUZXh0KTsKK30KKworLy8gTm8gb3ZlcmZsb3cgY2Fz
ZXMKK2lucHV0LnR5cGUgPSAndGV4dCc7ICAvLyBObyBvdmVyZmxvdyBmb3IgdHlwZT10ZXh0Lgor
Y2hlY2soJzEwMScsICcxMDAnLCBmYWxzZSk7CitpbnB1dC50eXBlID0gJ251bWJlcic7CitjaGVj
aygnOTknLCAnMTAwJywgZmFsc2UpOyAgLy8gVmVyeSBub3JtYWwgY2FzZS4KK2NoZWNrKCctMTAx
JywgJy0xMDAnLCBmYWxzZSk7CitjaGVjaygnOTknLCAnMUUrMicsIGZhbHNlKTsKK2NoZWNrKCcw
Ljk5JywgJzEuMDAnLCBmYWxzZSk7CitjaGVjaygnYWJjJywgJzEwMCcsIGZhbHNlKTsgIC8vIElu
dmFsaWQgdmFsdWUuCitjaGVjaygnJywgJy0xJywgZmFsc2UpOyAgLy8gTm8gdmFsdWUuCitjaGVj
aygnMTAxJywgJycsIGZhbHNlKTsgIC8vIE5vIG1heC4KK2NoZWNrKCcxMDEnLCAneHh4JywgZmFs
c2UpOyAgLy8gSW52YWxpZCBtYXguCisvLyBUaGUgZm9sbG93aW5nIGNhc2Ugc2hvdWxkIGJlIHJh
bmdlT3ZlcmZsb3c9PXRydWUgaWRlYWxseS4gIEJ1dCB0aGUgImRvdWJsZSIgdHlwZSBkb2Vzbid0
IGhhdmUgZW5vdWdoIHByZWNpc2lvbi4KK2NoZWNrKCcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OScsICcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OCcsIGZhbHNlKTsKKworLy8gT3ZlcmZsb3cgY2FzZXMKK2NoZWNrKCcxMDEnLCAn
MTAwJywgdHJ1ZSk7CitjaGVjaygnLTk5JywgJy0xMDAnLCB0cnVlKTsKK2NoZWNrKCcxMDEnLCAn
MUUrMicsIHRydWUpOworaW5wdXQubWluID0gJzIwMCc7ICAvLyB2YWx1ZSA8IG1pbiAmJiB2YWx1
ZSA+IG1heAorY2hlY2soJzEwMScsICcxMDAnLCB0cnVlKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10
ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuanMgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2Uu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdiMDFhMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3Rh
dGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5qcwpAQCAtMCwwICsxLDQzIEBACitkZXNjcmlwdGlvbign
VGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJhbmdlT3ZlcmZsb3cgZmxhZyB3aXRoIHR5cGU9
cmFuZ2UgaW5wdXQgZmllbGRzJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2lucHV0Jyk7CisKK2Z1bmN0aW9uIGNoZWNrKHZhbHVlLCBtYXgsIG92ZXJmbG93RXhwZWN0
ZWQpCit7CisgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTsKKyAgICBpbnB1dC5tYXggPSBtYXg7Cisg
ICAgdmFyIGFjdHVhbCA9IGlucHV0LnZhbGlkaXR5LnJhbmdlT3ZlcmZsb3c7CisgICAgdmFyIGRp
ZFBhc3MgPSBhY3R1YWwgPT0gb3ZlcmZsb3dFeHBlY3RlZDsKKyAgICB2YXIgcmVzdWx0VGV4dCA9
ICdUaGUgdmFsdWUgIicgKyBpbnB1dC52YWx1ZSArICciICcgKyAoYWN0dWFsID8gJ292ZXJmbG93
cycgOiAnZG9lc25cJ3Qgb3ZlcmZsb3cnKSArICcgdGhlIG1heGltdW0gdmFsdWUgIicgKyBpbnB1
dC5tYXggKyAnIi4nOworICAgIGlmIChkaWRQYXNzKQorICAgICAgICB0ZXN0UGFzc2VkKHJlc3Vs
dFRleHQpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZChyZXN1bHRUZXh0KTsKK30KKwor
Ly8gTm8gb3ZlcmZsb3cgY2FzZXMKK2lucHV0LnR5cGUgPSAndGV4dCc7ICAvLyBObyBvdmVyZmxv
dyBmb3IgdHlwZT10ZXh0LgorY2hlY2soJzEwMScsICcxMDAnLCBmYWxzZSk7CitpbnB1dC50eXBl
ID0gJ3JhbmdlJzsKK2NoZWNrKCc5OScsICcxMDAnLCBmYWxzZSk7ICAvLyBWZXJ5IG5vcm1hbCBj
YXNlLgorY2hlY2soJy0xMDEnLCAnLTEwMCcsIGZhbHNlKTsKK2NoZWNrKCc5OScsICcxRSsyJywg
ZmFsc2UpOworY2hlY2soJzAuOTknLCAnMS4wMCcsIGZhbHNlKTsKK2NoZWNrKCdhYmMnLCAnMTAw
JywgZmFsc2UpOyAgLy8gSW52YWxpZCB2YWx1ZS4KK2NoZWNrKCcnLCAnLTEnLCBmYWxzZSk7ICAv
LyBObyB2YWx1ZS4KKy8vIFRoZSBmb2xsb3dpbmcgY2FzZSBzaG91bGQgYmUgcmFuZ2VPdmVyZmxv
dz09dHJ1ZSBpZGVhbGx5LiAgQnV0IHRoZSAiZG91YmxlIiB0eXBlIGRvZXNuJ3QgaGF2ZSBlbm91
Z2ggcHJlY2lzaW9uLgorY2hlY2soJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5JywgJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4
JywgZmFsc2UpOworaW5wdXQubWluID0gJzIwMCc7ICAvLyBJZiBtaW4gPiBtYXgsIG1heCBpcyBy
ZXNldCB0byBtaW4uCitjaGVjaygnMTAxJywgJzEwMCcsIGZhbHNlKTsKK2lucHV0Lm1pbiA9ICcn
OworCisvLyBPdmVyZmxvdyBjYXNlcworY2hlY2soJzEwMScsICcxMDAnLCB0cnVlKTsKK2lucHV0
Lm1pbiA9ICctMjAwJzsKK2NoZWNrKCctOTknLCAnLTEwMCcsIHRydWUpOworaW5wdXQubWluID0g
Jyc7CitjaGVjaygnMTAxJywgJzFFKzInLCB0cnVlKTsKK2NoZWNrKCcxMDEnLCAnJywgdHJ1ZSk7
ICAvLyBObyBtYXguCitjaGVjaygnMTAxJywgJ3h4eCcsIHRydWUpOyAgLy8gSW52YWxpZCBtYXgu
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1u
dW1iZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0
YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mNGVkZmUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuanMKQEAg
LTAsMCArMSw0MCBAQAorZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBhaW1zIHRvIGNoZWNrIGZvciBy
YW5nZVVuZGVyZmxvdyBmbGFnIHdpdGggdHlwZT1udW1iZXIgaW5wdXQgZmllbGRzJyk7CisKK3Zh
ciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisKK2Z1bmN0aW9uIGNo
ZWNrKHZhbHVlLCBtaW4sIHVuZGVyZmxvd0V4cGVjdGVkKQoreworICAgIGlucHV0LnZhbHVlID0g
dmFsdWU7CisgICAgaW5wdXQubWluID0gbWluOworICAgIHZhciBhY3R1YWwgPSBpbnB1dC52YWxp
ZGl0eS5yYW5nZVVuZGVyZmxvdzsKKyAgICB2YXIgZGlkUGFzcyA9IGFjdHVhbCA9PSB1bmRlcmZs
b3dFeHBlY3RlZDsKKyAgICB2YXIgcmVzdWx0VGV4dCA9ICdUaGUgdmFsdWUgIicgKyBpbnB1dC52
YWx1ZSArICciICcgKyAoYWN0dWFsID8gJ3VuZGVyZmxvd3MnIDogJ2RvZXNuXCd0IHVuZGVyZmxv
dycpICsgJyB0aGUgbWluaW11bSB2YWx1ZSAiJyArIGlucHV0Lm1pbiArICciLic7CisgICAgaWYg
KGRpZFBhc3MpCisgICAgICAgIHRlc3RQYXNzZWQocmVzdWx0VGV4dCk7CisgICAgZWxzZQorICAg
ICAgICB0ZXN0RmFpbGVkKHJlc3VsdFRleHQpOworfQorCisvLyBObyB1bmRlcmZsb3cgY2FzZXMK
K2lucHV0LnR5cGUgPSAndGV4dCc7ICAvLyBObyB1bmRlcmZsb3cgZm9yIHR5cGU9dGV4dC4KK2No
ZWNrKCc5OScsICcxMDAnLCBmYWxzZSk7CitpbnB1dC50eXBlID0gJ251bWJlcic7CitjaGVjaygn
MTAxJywgJzEwMCcsIGZhbHNlKTsgIC8vIFZlcnkgbm9ybWFsIGNhc2UuCitjaGVjaygnLTk5Jywg
Jy0xMDAnLCBmYWxzZSk7CitjaGVjaygnMTAxJywgJzFFKzInLCBmYWxzZSk7CitjaGVjaygnMS4w
MScsICcxLjAwJywgZmFsc2UpOworY2hlY2soJ2FiYycsICcxMDAnLCBmYWxzZSk7ICAvLyBJbnZh
bGlkIHZhbHVlLgorY2hlY2soJycsICcxJywgZmFsc2UpOyAgLy8gTm8gdmFsdWUuCitjaGVjaygn
LTEnLCAnJywgZmFsc2UpOyAgLy8gTm8gbWluLgorY2hlY2soJy0xJywgJ3h4eCcsIGZhbHNlKTsg
IC8vIEludmFsaWQgbWluLgorLy8gVGhlIGZvbGxvd2luZyBjYXNlIHNob3VsZCBiZSByYW5nZVVu
ZGVyZmxvdz09dHJ1ZSBpZGVhbGx5LiAgQnV0IHRoZSAiZG91YmxlIiB0eXBlIGRvZXNuJ3QgaGF2
ZSBlbm91Z2ggcHJlY2lzaW9uLgorY2hlY2soJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk4JywgJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5JywgZmFsc2UpOworCisvLyBVbmRlcmZsb3cgY2FzZXMKK2NoZWNrKCc5OScsICcxMDAn
LCB0cnVlKTsKK2NoZWNrKCctMTAxJywgJy0xMDAnLCB0cnVlKTsKK2NoZWNrKCc5OScsICcxRSsy
JywgdHJ1ZSk7CitpbnB1dC5tYXggPSAnMTAwJzsgIC8vIHZhbHVlIDwgbWluICYmIHZhbHVlID4g
bWF4CitjaGVjaygnMTAxJywgJzIwMCcsIHRydWUpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNDViYjIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRl
LXJhbmdlVW5kZXJmbG93LXJhbmdlLmpzCkBAIC0wLDAgKzEsNDEgQEAKK2Rlc2NyaXB0aW9uKCdU
aGlzIHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFuZ2VVbmRlcmZsb3cgZmxhZyB3aXRoIHR5cGU9
cmFuZ2UgaW5wdXQgZmllbGRzJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2lucHV0Jyk7CisKK2Z1bmN0aW9uIGNoZWNrKHZhbHVlLCBtaW4sIHVuZGVyZmxvd0V4cGVj
dGVkKQoreworICAgIGlucHV0LnZhbHVlID0gdmFsdWU7CisgICAgaW5wdXQubWluID0gbWluOwor
ICAgIHZhciBhY3R1YWwgPSBpbnB1dC52YWxpZGl0eS5yYW5nZVVuZGVyZmxvdzsKKyAgICB2YXIg
ZGlkUGFzcyA9IGFjdHVhbCA9PSB1bmRlcmZsb3dFeHBlY3RlZDsKKyAgICB2YXIgcmVzdWx0VGV4
dCA9ICdUaGUgdmFsdWUgIicgKyBpbnB1dC52YWx1ZSArICciICcgKyAoYWN0dWFsID8gJ3VuZGVy
Zmxvd3MnIDogJ2RvZXNuXCd0IHVuZGVyZmxvdycpICsgJyB0aGUgbWluaW11bSB2YWx1ZSAiJyAr
IGlucHV0Lm1pbiArICciLic7CisgICAgaWYgKGRpZFBhc3MpCisgICAgICAgIHRlc3RQYXNzZWQo
cmVzdWx0VGV4dCk7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKHJlc3VsdFRleHQpOwor
fQorCisvLyBObyB1bmRlcmZsb3cgY2FzZXMKK2lucHV0LnR5cGUgPSAndGV4dCc7ICAvLyBObyBv
dmVyZmxvdyBmb3IgdHlwZT10ZXh0LgorY2hlY2soJzk5JywgJzEwMCcsIGZhbHNlKTsKK2lucHV0
LnR5cGUgPSAncmFuZ2UnOworY2hlY2soJzEwMScsICcxMDAnLCBmYWxzZSk7ICAvLyBWZXJ5IG5v
cm1hbCBjYXNlLgorY2hlY2soJy05OScsICctMTAwJywgZmFsc2UpOworY2hlY2soJzEwMScsICcx
RSsyJywgZmFsc2UpOworY2hlY2soJzEuMDEnLCAnMS4wMCcsIGZhbHNlKTsKK2NoZWNrKCdhYmMn
LCAnMTAwJywgZmFsc2UpOyAgLy8gSW52YWxpZCB2YWx1ZS4KK2NoZWNrKCcnLCAnMScsIGZhbHNl
KTsgIC8vIE5vIHZhbHVlLgorLy8gVGhlIGZvbGxvd2luZyBjYXNlIHNob3VsZCBiZSByYW5nZVVu
ZGVyZmxvdz09dHJ1ZSBpZGVhbGx5LiAgQnV0IHRoZSAiZG91YmxlIiB0eXBlIGRvZXNuJ3QgaGF2
ZSBlbm91Z2ggcHJlY2lzaW9uLgorY2hlY2soJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk4JywgJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5JywgZmFsc2UpOworaW5wdXQubWF4ID0gJzAnOyAgLy8gSWYgbWluID4gbWF4LCBtYXgg
aXMgcmVzZXQgdG8gbWluIGFuZCBtaW4gaXMgbm90IGNoYW5nZWQuCitjaGVjaygnMTAxJywgJzEw
MCcsIGZhbHNlKTsKK2lucHV0Lm1heCA9ICcnOworCisvLyBVbmRlcmZsb3cgY2FzZXMKK2NoZWNr
KCc5OScsICcxMDAnLCB0cnVlKTsKK2NoZWNrKCctMTAxJywgJy0xMDAnLCB0cnVlKTsKK2NoZWNr
KCc5OScsICcxRSsyJywgdHJ1ZSk7CitjaGVjaygnLTEnLCAnJywgdHJ1ZSk7ICAvLyBObyBtaW4u
CitjaGVjaygnLTEnLCAneHh4JywgdHJ1ZSk7ICAvLyBJbnZhbGlkIG1pbi4KKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9pbnB1dC1taW5tYXguanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy9pbnB1dC1taW5tYXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDY4YzVjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LW1pbm1heC5qcwpAQCAtMCwwICsxLDM1IEBACitkZXNjcmlwdGlv
bignVGVzdHMgdGhlIGJlaGF2aW9yIG9mIC5taW4gYW5kIC5tYXggb2YgSFRNTElucHV0RWxlbWVu
dC4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKwor
Ly8gLm1pbiBhbmQgLm1heCBqdXN0IHJlZmxlY3QgdGhlIGNvcnJlc3BvbmRpbmcgYXR0cmlidXRl
cy4KK2lucHV0LnR5cGUgPSAndGV4dCc7CitzaG91bGRCZSgnaW5wdXQubWluJywgJyIiJyk7Citz
aG91bGRCZSgnaW5wdXQubWF4JywgJyIiJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ21pbicsICcw
Jyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ21heCcsICcxMDAnKTsKK3Nob3VsZEJlKCdpbnB1dC5t
aW4nLCAnIjAiJyk7CitzaG91bGRCZSgnaW5wdXQubWF4JywgJyIxMDAiJyk7CitpbnB1dC5zZXRB
dHRyaWJ1dGUoJ21pbicsICdhYmMnKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnbWF4JywgJ3F3ZXJ0
eScpOworc2hvdWxkQmUoJ2lucHV0Lm1pbicsICciYWJjIicpOworc2hvdWxkQmUoJ2lucHV0Lm1h
eCcsICcicXdlcnR5IicpOworCitpbnB1dC5taW4gPSAnZm9vJzsKK2lucHV0Lm1heCA9ICdiYXIn
Oworc2hvdWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgibWluIiknLCAnImZvbyInKTsKK3Nob3Vs
ZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoIm1heCIpJywgJyJiYXIiJyk7CitpbnB1dC5taW4gPSAn
JzsKK2lucHV0Lm1heCA9ICcnOworc2hvdWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgibWluIikn
LCAnIiInKTsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoIm1heCIpJywgJyIiJyk7CisK
Ky8vIFRoZSByYW5nZSB0eXBlIGhhcyB0aGUgZGVmYXVsdCBtaW5pbXVtIGFuZCB0aGUgZGVmYXVs
dCBtYXhpbXVtLgorLy8gQnV0IHRoZXkgYXJlbid0IGV4cG9zZWQgYnkgLm1pbiAubWF4IElETCBh
dHRyaWJ1dGVzLgoraW5wdXQudHlwZSA9ICdyYW5nZSc7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ21p
bicsICcnKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnbWF4JywgJycpOworc2hvdWxkQmUoJ2lucHV0
Lm1pbicsICciIicpOworc2hvdWxkQmUoJ2lucHV0Lm1heCcsICciIicpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggZmNiM2MwOS4uOWZmZjRkNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAw
OS0wOS0wOSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IG1pbi9tYXggYXR0
cmlidXRlcywgVmFsaWRpdHlTdGF0ZS5yYW5nZVVuZGVyZmxvdyBhbmQKKyAgICAgICAgVmFsaWRp
dHlTdGF0ZS5yYW5nZU92ZXJmbG93IGZvciA8aW5wdXQgdHlwZT1udW1iZXI+IGFuZCA8aW5wdXQg
dHlwZT1yYW5nZT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI5MDY5CisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5n
ZU92ZXJmbG93LW51bWJlci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL1ZhbGlkaXR5
U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1z
L1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LW1pbm1heC5odG1sCisKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6cmFuZ2VVbmRlcmZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
cmFuZ2VPdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjptaW5S
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjptYXhSYW5nZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL1ZhbGlkaXR5U3RhdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VmFsaWRpdHlTdGF0ZTo6cmFuZ2VVbmRlcmZsb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6VmFsaWRpdHlTdGF0ZTo6cmFuZ2VPdmVyZmxvdyk6CisgICAgICAgICogaHRtbC9WYWxp
ZGl0eVN0YXRlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTbGlkZXJSYW5nZTo6U2xpZGVyUmFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U2xpZGVyUmFuZ2U6OnZhbHVlRnJvbUVsZW1lbnQpOgorCiAyMDA5LTEwLTA0ICBYYW4gTG9w
ZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0b3ZhIE5v
cm9uaGEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZDNiMjRhNy4uZDEyOWJkYyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMjMyLDYgKzIzMiw2MiBAQCBib29sIEhU
TUxJbnB1dEVsZW1lbnQ6OnRvb0xvbmcoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
Ym9vbCBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZVVuZGVyZmxvdygpIGNvbnN0Cit7CisgICAgaWYg
KGlucHV0VHlwZSgpID09IE5VTUJFUikgeworICAgICAgICBkb3VibGUgbWluOworICAgICAgICBk
b3VibGUgZG91YmxlVmFsdWU7CisgICAgICAgIGlmIChmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0
cmlidXRlKG1pbkF0dHIpLCAmbWluKSAmJiBmb3JtU3RyaW5nVG9Eb3VibGUodmFsdWUoKSwgJmRv
dWJsZVZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBkb3VibGVWYWx1ZSA8IG1pbjsKKyAgICB9
IGVsc2UgaWYgKGlucHV0VHlwZSgpID09IFJBTkdFKSB7CisgICAgICAgIGRvdWJsZSBkb3VibGVW
YWx1ZTsKKyAgICAgICAgaWYgKGZvcm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAmZG91YmxlVmFs
dWUpKQorICAgICAgICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlIDwgbWluUmFuZ2UoKTsKKyAgICB9
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJhbmdlT3Zl
cmZsb3coKSBjb25zdAoreworICAgIGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIpIHsKKyAgICAg
ICAgZG91YmxlIG1heDsKKyAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlOworICAgICAgICBpZiAo
Zm9ybVN0cmluZ1RvRG91YmxlKGdldEF0dHJpYnV0ZShtYXhBdHRyKSwgJm1heCkgJiYgZm9ybVN0
cmluZ1RvRG91YmxlKHZhbHVlKCksICZkb3VibGVWYWx1ZSkpCisgICAgICAgICAgICByZXR1cm4g
ZG91YmxlVmFsdWUgPiBtYXg7CisgICAgfSBlbHNlIGlmIChpbnB1dFR5cGUoKSA9PSBSQU5HRSkg
eworICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7CisgICAgICAgIGlmIChmb3JtU3RyaW5nVG9E
b3VibGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBkb3VibGVW
YWx1ZSA+IG1heFJhbmdlKCk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworZG91Ymxl
IEhUTUxJbnB1dEVsZW1lbnQ6Om1pblJhbmdlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaW5wdXRU
eXBlKCkgPT0gUkFOR0UpOworICAgIC8vIFRoZSByYW5nZSB0eXBlJ3MgImRlZmF1bHQgbWluaW11
bSIgaXMgMC4KKyAgICBkb3VibGUgbWluID0gMC4wOworICAgIGZvcm1TdHJpbmdUb0RvdWJsZShn
ZXRBdHRyaWJ1dGUobWluQXR0ciksICZtaW4pOworICAgIHJldHVybiBtaW47Cit9CisKK2RvdWJs
ZSBIVE1MSW5wdXRFbGVtZW50OjptYXhSYW5nZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlucHV0
VHlwZSgpID09IFJBTkdFKTsKKyAgICAvLyBUaGUgcmFuZ2UgdHlwZSdzICJkZWZhdWx0IG1heGlt
dW0iIGlzIDEwMC4KKyAgICBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRNYXhpbXVtID0gMTAw
LjA7CisgICAgZG91YmxlIG1heCA9IGRlZmF1bHRNYXhpbXVtOworICAgIGZvcm1TdHJpbmdUb0Rv
dWJsZShnZXRBdHRyaWJ1dGUobWF4QXR0ciksICZtYXgpOworICAgIGNvbnN0IGRvdWJsZSBtaW4g
PSBtaW5SYW5nZSgpOworCisgICAgaWYgKG1heCA8IG1pbikgeworICAgICAgICAvLyBBIHJlbWVk
eSBmb3IgdGhlIGluY29uc2lzdGVudCBtaW4vbWF4IHZhbHVlcy4KKyAgICAgICAgLy8gU2V0cyB0
aGUgbWF4bWltdW0gdG8gdGhlIGRlZmF1bHQgKDEwMC4wKSBvciB0aGUgbWluaW11bSB2YWx1ZS4K
KyAgICAgICAgbWF4ID0gbWluIDwgZGVmYXVsdE1heGltdW0gPyBkZWZhdWx0TWF4aW11bSA6IG1p
bjsKKyAgICB9CisgICAgcmV0dXJuIG1heDsKK30KKwogc3RhdGljIGlubGluZSBDaGVja2VkUmFk
aW9CdXR0b25zJiBjaGVja2VkUmFkaW9CdXR0b25zKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQgKmVs
ZW1lbnQpCiB7CiAgICAgaWYgKEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IGVsZW1lbnQtPmZvcm0o
KSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDBmOTQ3NGMuLmEyZDUzNTUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaApAQCAtOTQsNiArOTQsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGF0dGVybk1pc21h
dGNoKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHRvb0xvbmcoKSBjb25zdDsKKyAgICAvLyBG
b3IgVmFsaWRpdHlTdGF0ZQorICAgIGJvb2wgcmFuZ2VVbmRlcmZsb3coKSBjb25zdDsKKyAgICBi
b29sIHJhbmdlT3ZlcmZsb3coKSBjb25zdDsKKyAgICAvLyBSZXR1cm5zIHRoZSBtaW5pbXVtIHZh
bHVlIGZvciB0eXBlPXJhbmdlLiAgRG9uJ3QgY2FsbCB0aGlzIGZvciBvdGhlciB0eXBlcy4KKyAg
ICBkb3VibGUgbWluUmFuZ2UoKSBjb25zdDsKKyAgICAvLyBSZXR1cm5zIHRoZSBtYXhpbXVtIHZh
bHVlIGZvciB0eXBlPXJhbmdlLiAgRG9uJ3QgY2FsbCB0aGlzIGZvciBvdGhlciB0eXBlcy4KKyAg
ICAvLyBUaGlzIGFsd2F5cyByZXR1cm5zIGEgdmFsdWUgd2hpY2ggaXMgPD0gbWluUmFuZ2UoKS4K
KyAgICBkb3VibGUgbWF4UmFuZ2UoKSBjb25zdDsKIAogICAgIGJvb2wgaXNUZXh0QnV0dG9uKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlID09IFNVQk1JVCB8fCBtX3R5cGUgPT0gUkVTRVQgfHwgbV90
eXBlID09IEJVVFRPTjsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlID09IFJBRElPOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5k
ZXggN2NkZjQ4Ny4uYmMwZDM1YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNDIs
OCArNDIsMTAgQEAgbW9kdWxlIGh0bWwgewogI2lmIGRlZmluZWQoRU5BQkxFX0RBVEFMSVNUKSAm
JiBFTkFCTEVfREFUQUxJU1QKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxFbGVtZW50
ICAgICBsaXN0OwogI2VuZGlmCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIG1heDsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAgICAg
ICBtYXhMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWlu
OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIG11bHRpcGxlOwog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgICAgICAgcGF0dGVybjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRl
LmNwcCBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAppbmRleCBkZjg5MzNkLi41YmY4
MzgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIvV2Vi
Q29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCkBAIC02MCw2ICs2MCwyMCBAQCBib29sIFZhbGlk
aXR5U3RhdGU6OnR5cGVNaXNtYXRjaCgpCiAgICAgfQogfQogCitib29sIFZhbGlkaXR5U3RhdGU6
OnJhbmdlVW5kZXJmbG93KCkKK3sKKyAgICBpZiAoIWNvbnRyb2woKS0+aGFzVGFnTmFtZShpbnB1
dFRhZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KGNvbnRyb2woKSktPnJhbmdlVW5kZXJmbG93KCk7Cit9CisKK2Jvb2wg
VmFsaWRpdHlTdGF0ZTo6cmFuZ2VPdmVyZmxvdygpCit7CisgICAgaWYgKCFjb250cm9sKCktPmhh
c1RhZ05hbWUoaW5wdXRUYWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihjb250cm9sKCkpLT5yYW5nZU92ZXJmbG93KCk7
Cit9CisKIGJvb2wgVmFsaWRpdHlTdGF0ZTo6dmFsaWQoKQogewogICAgIGJvb2wgc29tZUVycm9y
ID0gdHlwZU1pc21hdGNoKCkgfHwgc3RlcE1pc21hdGNoKCkgfHwgcmFuZ2VVbmRlcmZsb3coKSB8
fCByYW5nZU92ZXJmbG93KCkgfHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0
YXRlLmggYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oCmluZGV4IDlhZGM4ZmQuLjY3YWZh
NTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKKysrIGIvV2ViQ29y
ZS9odG1sL1ZhbGlkaXR5U3RhdGUuaApAQCAtNDQsOCArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgdHlwZU1pc21hdGNoKCk7CiAgICAgICAgIGJvb2wgcGF0dGVybk1p
c21hdGNoKCkgeyByZXR1cm4gY29udHJvbCgpLT5wYXR0ZXJuTWlzbWF0Y2goKTsgfQogICAgICAg
ICBib29sIHRvb0xvbmcoKSB7IHJldHVybiBjb250cm9sKCktPnRvb0xvbmcoKTsgfQotICAgICAg
ICBib29sIHJhbmdlVW5kZXJmbG93KCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgYm9vbCBy
YW5nZU92ZXJmbG93KCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgYm9vbCByYW5nZVVuZGVy
ZmxvdygpOworICAgICAgICBib29sIHJhbmdlT3ZlcmZsb3coKTsKICAgICAgICAgYm9vbCBzdGVw
TWlzbWF0Y2goKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICBib29sIGN1c3RvbUVycm9yKCkg
eyByZXR1cm4gIW1fY3VzdG9tRXJyb3JNZXNzYWdlLmlzRW1wdHkoKTsgfQogICAgICAgICBib29s
IHZhbGlkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3Bw
IGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCAyNDdhY2RhLi42OWUx
ZDc0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgc3Rh
dGljIGNvbnN0IGludCBkZWZhdWx0VHJhY2tMZW5ndGggPSAxMjk7CiBzdHJ1Y3QgU2xpZGVyUmFu
Z2UgewogICAgIGJvb2wgaXNJbnRlZ3JhbDsKICAgICBkb3VibGUgbWluaW11bTsKLSAgICBkb3Vi
bGUgbWF4aW11bTsKKyAgICBkb3VibGUgbWF4aW11bTsgIC8vIG1heGltdW0gbXVzdCBiZSA+PSBt
aW5pbXVtLgogCiAgICAgZXhwbGljaXQgU2xpZGVyUmFuZ2UoSFRNTElucHV0RWxlbWVudCopOwog
ICAgIGRvdWJsZSBjbGFtcFZhbHVlKGRvdWJsZSB2YWx1ZSk7CkBAIC04MCwxMiArODAsOCBAQCBT
bGlkZXJSYW5nZTo6U2xpZGVyUmFuZ2UoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIAogICAg
IGlzSW50ZWdyYWwgPSAhZXF1YWxJZ25vcmluZ0Nhc2UoZWxlbWVudC0+Z2V0QXR0cmlidXRlKHBy
ZWNpc2lvbkF0dHIpLCAiZmxvYXQiKTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyBtYXhp
bXVtIHN0cmluZ3MgdGhhdCBjYW4ndCBiZSBwYXJzZWQgYXMgMCwgYnV0IHBlcmhhcHMgMTAwIHdv
dWxkIGJlIG1vcmUgYXBwcm9wcmlhdGUuCi0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBtYXhTdHJp
bmcgPSBlbGVtZW50LT5nZXRBdHRyaWJ1dGUobWF4QXR0cik7Ci0gICAgbWF4aW11bSA9IG1heFN0
cmluZy5pc051bGwoKSA/IDEwMC4wIDogbWF4U3RyaW5nLnRvRG91YmxlKCk7Ci0KLSAgICAvLyBJ
ZiB0aGUgbWF4aW11bSBpcyBzbWFsbGVyLCB1c2UgaXQgYXMgdGhlIG1pbmltdW0uCi0gICAgbWlu
aW11bSA9IG1pbihlbGVtZW50LT5nZXRBdHRyaWJ1dGUobWluQXR0cikudG9Eb3VibGUoKSwgbWF4
aW11bSk7CisgICAgbWF4aW11bSA9IGVsZW1lbnQtPm1heFJhbmdlKCk7CisgICAgbWluaW11bSA9
IGVsZW1lbnQtPm1pblJhbmdlKCk7CiB9CiAKIGRvdWJsZSBTbGlkZXJSYW5nZTo6Y2xhbXBWYWx1
ZShkb3VibGUgdmFsdWUpCkBAIC05NiwxMiArOTIsMTQgQEAgZG91YmxlIFNsaWRlclJhbmdlOjpj
bGFtcFZhbHVlKGRvdWJsZSB2YWx1ZSkKIAogZG91YmxlIFNsaWRlclJhbmdlOjp2YWx1ZUZyb21F
bGVtZW50KEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wqIHdhc0NsYW1wZWQpCiB7Ci0g
ICAgU3RyaW5nIHZhbHVlU3RyaW5nID0gZWxlbWVudC0+dmFsdWUoKTsKLSAgICBkb3VibGUgb2xk
VmFsdWUgPSB2YWx1ZVN0cmluZy5pc051bGwoKSA/IChtaW5pbXVtICsgbWF4aW11bSkgLyAyIDog
dmFsdWVTdHJpbmcudG9Eb3VibGUoKTsKKyAgICBkb3VibGUgb2xkVmFsdWU7CisgICAgYm9vbCBw
YXJzZVN1Y2Nlc3MgPSBIVE1MSW5wdXRFbGVtZW50Ojpmb3JtU3RyaW5nVG9Eb3VibGUoZWxlbWVu
dC0+dmFsdWUoKSwgJm9sZFZhbHVlKTsKKyAgICBpZiAoIXBhcnNlU3VjY2VzcykKKyAgICAgICAg
b2xkVmFsdWUgPSAobWluaW11bSArIG1heGltdW0pIC8gMjsKICAgICBkb3VibGUgbmV3VmFsdWUg
PSBjbGFtcFZhbHVlKG9sZFZhbHVlKTsKIAogICAgIGlmICh3YXNDbGFtcGVkKQotICAgICAgICAq
d2FzQ2xhbXBlZCA9IHZhbHVlU3RyaW5nLmlzTnVsbCgpIHx8IG5ld1ZhbHVlICE9IG9sZFZhbHVl
OworICAgICAgICAqd2FzQ2xhbXBlZCA9ICFwYXJzZVN1Y2Nlc3MgfHwgbmV3VmFsdWUgIT0gb2xk
VmFsdWU7CiAKICAgICByZXR1cm4gbmV3VmFsdWU7CiB9Ci0tIAoxLjYuMy4zCgo=
</data>
<flag name="review"
          id="21841"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40602</attachid>
            <date>2009-10-04 19:36:35 -0700</date>
            <delta_ts>2009-10-04 21:24:41 -0700</delta_ts>
            <desc>Proposed patch (rev.5)</desc>
            <filename>0001-min-max-support-for-type-number-range-5.patch</filename>
            <type>text/plain</type>
            <size>32119</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSBmMThiOGViZjhjMGIwNGIyMjE4N2Q4NDhiYzU1Zjg1MTU4OTJlZTg0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUaHUsIDEwIFNlcCAyMDA5IDExOjI5OjQxICswOTAwClN1YmplY3Q6IFtQQVRDSF0gbWluL21h
eCBzdXBwb3J0IGZvciB0eXBlPW51bWJlci9yYW5nZSA1CgotLS0KIExheW91dFRlc3RzL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNCArKysrKysrKwogLi4uVmFs
aWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQgfCAgIDIzICsrKysr
KysrCiAuLi4vZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5odG1sICB8
ICAgMTMgKysrKysKIC4uLi9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UtZXhwZWN0
ZWQudHh0IHwgICAyMyArKysrKysrKwogLi4uL2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVy
Zmxvdy1yYW5nZS5odG1sICAgfCAgIDEzICsrKysrCiAuLi5hbGlkaXR5U3RhdGUtcmFuZ2VVbmRl
cmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dCB8ICAgMjMgKysrKysrKysKIC4uLi9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5odG1sIHwgICAxMyArKysrKwogLi4uVmFs
aWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQgfCAgIDIzICsrKysr
KysrCiAuLi4vZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5odG1sICB8
ICAgMTMgKysrKysKIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVk
LnR4dCAgIHwgICAyMSArKysrKysrCiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1h
eC5odG1sICAgICAgICAgICB8ICAgMTMgKysrKysKIC4uLi9WYWxpZGl0eVN0YXRlLXJhbmdlT3Zl
cmZsb3ctbnVtYmVyLmpzICAgICAgICAgIHwgICA0MCArKysrKysrKysrKysrKwogLi4uL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5qcyAgICAgICAgICAgfCAgIDQzICsrKysrKysr
KysrKysrKwogLi4uL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzICAgICAg
ICAgfCAgIDQwICsrKysrKysrKysrKysrCiAuLi4vVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxv
dy1yYW5nZS5qcyAgICAgICAgICB8ICAgNDEgKysrKysrKysrKysrKysKIC4uLi9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9pbnB1dC1taW5tYXguanMgICAgICAgIHwgICAzNSArKysrKysrKysrKysK
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy
OSArKysrKysrKysrCiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgICAgICAgICAg
ICAgICAgICB8ICAgNTYgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmggICAgICAgICAgICAgICAgICAgIHwgICAgOCArKysKIFdlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL2h0
bWwvVmFsaWRpdHlTdGF0ZS5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysrKysKIFdl
YkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCAr
LQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCAgICAgICAgICAgICAgICAgfCAg
IDE4ICsrKy0tLS0KIDIzIGZpbGVzIGNoYW5nZWQsIDUyMCBpbnNlcnRpb25zKCspLCAxMiBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ct
bnVtYmVyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxv
dy1yYW5nZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRl
cmZsb3ctbnVtYmVyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdl
VW5kZXJmbG93LXJhbmdlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92
ZXJmbG93LW51bWJlci5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5qcwogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVy
Zmxvdy1yYW5nZS5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LW1pbm1heC5qcwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYThjMDVlLi5hZWVmNzYyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDktMDktMDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudCBtaW4vbWF4IGF0dHJpYnV0ZXMsIFZhbGlkaXR5U3RhdGUucmFuZ2VVbmRl
cmZsb3cgYW5kCisgICAgICAgIFZhbGlkaXR5U3RhdGUucmFuZ2VPdmVyZmxvdyBmb3IgPGlucHV0
IHR5cGU9bnVtYmVyPiBhbmQgPGlucHV0IHR5cGU9cmFuZ2U+CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA2OQorCisgICAgICAgICogZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92
ZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVy
Zmxvdy1udW1iZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXguaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51
bWJlci5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRp
dHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qczog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1y
YW5nZVVuZGVyZmxvdy1yYW5nZS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvaW5wdXQtbWlubWF4LmpzOiBBZGRlZC4KKwogMjAwOS0xMC0wNCAgWGFuIExvcGV6
ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jv
bmhhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJh
bmdlT3ZlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEyODQzNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9y
IHJhbmdlT3ZlcmZsb3cgZmxhZyB3aXRoIHR5cGU9bnVtYmVyIGlucHV0IGZpZWxkcworCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCBv
dmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICI5OSIgZG9l
c24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIt
MTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhl
IHZhbHVlICI5OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMUUrMiIuCitQ
QVNTIFRoZSB2YWx1ZSAiMC45OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAi
MS4wMCIuCitQQVNTIFRoZSB2YWx1ZSAiYWJjIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVt
IHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIiIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4
aW11bSB2YWx1ZSAiLTEiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCBvdmVyZmxvdyB0
aGUgbWF4aW11bSB2YWx1ZSAiIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3Qgb3ZlcmZs
b3cgdGhlIG1heGltdW0gdmFsdWUgInh4eCIuCitQQVNTIFRoZSB2YWx1ZSAiMC45OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1h
eGltdW0gdmFsdWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4
Ii4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAw
Ii4KK1BBU1MgVGhlIHZhbHVlICItOTkiIG92ZXJmbG93cyB0aGUgbWF4aW11bSB2YWx1ZSAiLTEw
MCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1heGltdW0gdmFsdWUgIjFF
KzIiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVlICIx
MDAiLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92
ZXJmbG93LW51bWJlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNThlNWZhOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5odG1sCkBAIC0wLDAgKzEsMTMgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5n
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEwOWEw
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS1yYW5nZU92ZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitUaGlz
IHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFuZ2VPdmVyZmxvdyBmbGFnIHdpdGggdHlwZT1yYW5n
ZSBpbnB1dCBmaWVsZHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhl
IHZhbHVlICIxMDEiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIuCitQ
QVNTIFRoZSB2YWx1ZSAiOTkiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEw
MCIuCitQQVNTIFRoZSB2YWx1ZSAiLTEwMSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2
YWx1ZSAiLTEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiOTkiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1h
eGltdW0gdmFsdWUgIjFFKzIiLgorUEFTUyBUaGUgdmFsdWUgIjAuOTkiIGRvZXNuJ3Qgb3ZlcmZs
b3cgdGhlIG1heGltdW0gdmFsdWUgIjEuMDAiLgorUEFTUyBUaGUgdmFsdWUgImFiYyIgZG9lc24n
dCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIiIGRv
ZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIi0xIi4KK1BBU1MgVGhlIHZhbHVlICIw
Ljk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OSIgZG9lc24ndCBvdmVy
ZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTgiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCBvdmVyZmxvdyB0aGUg
bWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUg
bWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICItOTkiIG92ZXJmbG93cyB0aGUg
bWF4aW11bSB2YWx1ZSAiLTEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhl
IG1heGltdW0gdmFsdWUgIjFFKzIiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRo
ZSBtYXhpbXVtIHZhbHVlICIiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBt
YXhpbXVtIHZhbHVlICJ4eHgiLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjAzODViMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5odG1sCkBAIC0w
LDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5n
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdl
VW5kZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uODA3OTk3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjMgQEAKK1RoaXMgdGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZVVuZGVyZmxvdyBm
bGFnIHdpdGggdHlwZT1udW1iZXIgaW5wdXQgZmllbGRzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIFRoZSB2YWx1ZSAiOTkiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5p
bXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCB1bmRlcmZsb3cg
dGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiLTk5IiBkb2Vzbid0IHVu
ZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiLTEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBk
b2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1
ZSAiMS4wMSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEuMDAiLgorUEFT
UyBUaGUgdmFsdWUgImFiYyIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEw
MCIuCitQQVNTIFRoZSB2YWx1ZSAiIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1
ZSAiMSIuCitQQVNTIFRoZSB2YWx1ZSAiLTEiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVt
IHZhbHVlICIiLgorUEFTUyBUaGUgdmFsdWUgIi0xIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWlu
aW11bSB2YWx1ZSAieHh4Ii4KK1BBU1MgVGhlIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OCIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFs
dWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5Ii4KK1BBU1Mg
VGhlIHZhbHVlICI5OSIgdW5kZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1Mg
VGhlIHZhbHVlICItMTAxIiB1bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICItMTAwIi4KK1BB
U1MgVGhlIHZhbHVlICI5OSIgdW5kZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiMUUrMiIuCitQ
QVNTIFRoZSB2YWx1ZSAiMTAxIiB1bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIyMDAiLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxv
dy1udW1iZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5n
ZVVuZGVyZmxvdy1udW1iZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41ZTc1MjdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5n
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I2Y2E4
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGhp
cyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJhbmdlVW5kZXJmbG93IGZsYWcgd2l0aCB0eXBlPXJh
bmdlIGlucHV0IGZpZWxkcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBU
aGUgdmFsdWUgIjk5IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4K
K1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVl
ICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi05OSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmlt
dW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCB1bmRlcmZsb3cg
dGhlIG1pbmltdW0gdmFsdWUgIjFFKzIiLgorUEFTUyBUaGUgdmFsdWUgIjEuMDEiIGRvZXNuJ3Qg
dW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxLjAwIi4KK1BBU1MgVGhlIHZhbHVlICJhYmMi
IGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFs
dWUgIiIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEiLgorUEFTUyBUaGUg
dmFsdWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4IiBkb2Vz
bid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTkiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCB1bmRl
cmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiOTkiIHVuZGVy
Zmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiLTEwMSIgdW5k
ZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiLTEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiOTkiIHVu
ZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjFFKzIiLgorUEFTUyBUaGUgdmFsdWUgIi0xIiB1
bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIiLgorUEFTUyBUaGUgdmFsdWUgIi0xIiB1bmRl
cmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICJ4eHgiLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZmYmViZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1y
YW5nZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VVbmRlcmZsb3ctcmFuZ2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2VkZTAwZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIxIEBACitUZXN0cyB0aGUgYmVoYXZpb3Igb2YgLm1pbiBhbmQgLm1heCBvZiBI
VE1MSW5wdXRFbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBp
bnB1dC5taW4gaXMgIiIKK1BBU1MgaW5wdXQubWF4IGlzICIiCitQQVNTIGlucHV0Lm1pbiBpcyAi
MCIKK1BBU1MgaW5wdXQubWF4IGlzICIxMDAiCitQQVNTIGlucHV0Lm1pbiBpcyAiYWJjIgorUEFT
UyBpbnB1dC5tYXggaXMgInF3ZXJ0eSIKK1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJtaW4iKSBp
cyAiZm9vIgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoIm1heCIpIGlzICJiYXIiCitQQVNTIGlu
cHV0LmdldEF0dHJpYnV0ZSgibWluIikgaXMgIiIKK1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJt
YXgiKSBpcyAiIgorUEFTUyBpbnB1dC5taW4gaXMgIiIKK1BBU1MgaW5wdXQubWF4IGlzICIiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXguaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjJmOGRkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtbWlubWF4Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5w
dXQtbWlubWF4LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1y
YW5nZU92ZXJmbG93LW51bWJlci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ1OWYyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1u
dW1iZXIuanMKQEAgLTAsMCArMSw0MCBAQAorZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBhaW1zIHRv
IGNoZWNrIGZvciByYW5nZU92ZXJmbG93IGZsYWcgd2l0aCB0eXBlPW51bWJlciBpbnB1dCBmaWVs
ZHMnKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKwor
ZnVuY3Rpb24gY2hlY2sodmFsdWUsIG1heCwgb3ZlcmZsb3dFeHBlY3RlZCkKK3sKKyAgICBpbnB1
dC52YWx1ZSA9IHZhbHVlOworICAgIGlucHV0Lm1heCA9IG1heDsKKyAgICB2YXIgYWN0dWFsID0g
aW5wdXQudmFsaWRpdHkucmFuZ2VPdmVyZmxvdzsKKyAgICB2YXIgZGlkUGFzcyA9IGFjdHVhbCA9
PSBvdmVyZmxvd0V4cGVjdGVkOworICAgIHZhciByZXN1bHRUZXh0ID0gJ1RoZSB2YWx1ZSAiJyAr
IGlucHV0LnZhbHVlICsgJyIgJyArIChhY3R1YWwgPyAnb3ZlcmZsb3dzJyA6ICdkb2VzblwndCBv
dmVyZmxvdycpICsgJyB0aGUgbWF4aW11bSB2YWx1ZSAiJyArIGlucHV0Lm1heCArICciLic7Cisg
ICAgaWYgKGRpZFBhc3MpCisgICAgICAgIHRlc3RQYXNzZWQocmVzdWx0VGV4dCk7CisgICAgZWxz
ZQorICAgICAgICB0ZXN0RmFpbGVkKHJlc3VsdFRleHQpOworfQorCisvLyBObyBvdmVyZmxvdyBj
YXNlcworaW5wdXQudHlwZSA9ICd0ZXh0JzsgIC8vIE5vIG92ZXJmbG93IGZvciB0eXBlPXRleHQu
CitjaGVjaygnMTAxJywgJzEwMCcsIGZhbHNlKTsKK2lucHV0LnR5cGUgPSAnbnVtYmVyJzsKK2No
ZWNrKCc5OScsICcxMDAnLCBmYWxzZSk7ICAvLyBWZXJ5IG5vcm1hbCBjYXNlLgorY2hlY2soJy0x
MDEnLCAnLTEwMCcsIGZhbHNlKTsKK2NoZWNrKCc5OScsICcxRSsyJywgZmFsc2UpOworY2hlY2so
JzAuOTknLCAnMS4wMCcsIGZhbHNlKTsKK2NoZWNrKCdhYmMnLCAnMTAwJywgZmFsc2UpOyAgLy8g
SW52YWxpZCB2YWx1ZS4KK2NoZWNrKCcnLCAnLTEnLCBmYWxzZSk7ICAvLyBObyB2YWx1ZS4KK2No
ZWNrKCcxMDEnLCAnJywgZmFsc2UpOyAgLy8gTm8gbWF4LgorY2hlY2soJzEwMScsICd4eHgnLCBm
YWxzZSk7ICAvLyBJbnZhbGlkIG1heC4KKy8vIFRoZSBmb2xsb3dpbmcgY2FzZSBzaG91bGQgYmUg
cmFuZ2VPdmVyZmxvdz09dHJ1ZSBpZGVhbGx5LiAgQnV0IHRoZSAiZG91YmxlIiB0eXBlIGRvZXNu
J3QgaGF2ZSBlbm91Z2ggcHJlY2lzaW9uLgorY2hlY2soJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5JywgJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk4JywgZmFsc2UpOworCisvLyBPdmVyZmxvdyBjYXNlcworY2hlY2soJzEwMScs
ICcxMDAnLCB0cnVlKTsKK2NoZWNrKCctOTknLCAnLTEwMCcsIHRydWUpOworY2hlY2soJzEwMScs
ICcxRSsyJywgdHJ1ZSk7CitpbnB1dC5taW4gPSAnMjAwJzsgIC8vIHZhbHVlIDwgbWluICYmIHZh
bHVlID4gbWF4CitjaGVjaygnMTAxJywgJzEwMCcsIHRydWUpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5n
ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2IwMWExCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlT
dGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpzCkBAIC0wLDAgKzEsNDMgQEAKK2Rlc2NyaXB0aW9u
KCdUaGlzIHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFuZ2VPdmVyZmxvdyBmbGFnIHdpdGggdHlw
ZT1yYW5nZSBpbnB1dCBmaWVsZHMnKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnaW5wdXQnKTsKKworZnVuY3Rpb24gY2hlY2sodmFsdWUsIG1heCwgb3ZlcmZsb3dFeHBl
Y3RlZCkKK3sKKyAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOworICAgIGlucHV0Lm1heCA9IG1heDsK
KyAgICB2YXIgYWN0dWFsID0gaW5wdXQudmFsaWRpdHkucmFuZ2VPdmVyZmxvdzsKKyAgICB2YXIg
ZGlkUGFzcyA9IGFjdHVhbCA9PSBvdmVyZmxvd0V4cGVjdGVkOworICAgIHZhciByZXN1bHRUZXh0
ID0gJ1RoZSB2YWx1ZSAiJyArIGlucHV0LnZhbHVlICsgJyIgJyArIChhY3R1YWwgPyAnb3ZlcmZs
b3dzJyA6ICdkb2VzblwndCBvdmVyZmxvdycpICsgJyB0aGUgbWF4aW11bSB2YWx1ZSAiJyArIGlu
cHV0Lm1heCArICciLic7CisgICAgaWYgKGRpZFBhc3MpCisgICAgICAgIHRlc3RQYXNzZWQocmVz
dWx0VGV4dCk7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKHJlc3VsdFRleHQpOworfQor
CisvLyBObyBvdmVyZmxvdyBjYXNlcworaW5wdXQudHlwZSA9ICd0ZXh0JzsgIC8vIE5vIG92ZXJm
bG93IGZvciB0eXBlPXRleHQuCitjaGVjaygnMTAxJywgJzEwMCcsIGZhbHNlKTsKK2lucHV0LnR5
cGUgPSAncmFuZ2UnOworY2hlY2soJzk5JywgJzEwMCcsIGZhbHNlKTsgIC8vIFZlcnkgbm9ybWFs
IGNhc2UuCitjaGVjaygnLTEwMScsICctMTAwJywgZmFsc2UpOworY2hlY2soJzk5JywgJzFFKzIn
LCBmYWxzZSk7CitjaGVjaygnMC45OScsICcxLjAwJywgZmFsc2UpOworY2hlY2soJ2FiYycsICcx
MDAnLCBmYWxzZSk7ICAvLyBJbnZhbGlkIHZhbHVlLgorY2hlY2soJycsICctMScsIGZhbHNlKTsg
IC8vIE5vIHZhbHVlLgorLy8gVGhlIGZvbGxvd2luZyBjYXNlIHNob3VsZCBiZSByYW5nZU92ZXJm
bG93PT10cnVlIGlkZWFsbHkuICBCdXQgdGhlICJkb3VibGUiIHR5cGUgZG9lc24ndCBoYXZlIGVu
b3VnaCBwcmVjaXNpb24uCitjaGVjaygnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTknLCAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTgnLCBmYWxzZSk7CitpbnB1dC5taW4gPSAnMjAwJzsgIC8vIElmIG1pbiA+IG1heCwgbWF4IGlz
IHJlc2V0IHRvIG1pbi4KK2NoZWNrKCcxMDEnLCAnMTAwJywgZmFsc2UpOworaW5wdXQubWluID0g
Jyc7CisKKy8vIE92ZXJmbG93IGNhc2VzCitjaGVjaygnMTAxJywgJzEwMCcsIHRydWUpOworaW5w
dXQubWluID0gJy0yMDAnOworY2hlY2soJy05OScsICctMTAwJywgdHJ1ZSk7CitpbnB1dC5taW4g
PSAnJzsKK2NoZWNrKCcxMDEnLCAnMUUrMicsIHRydWUpOworY2hlY2soJzEwMScsICcnLCB0cnVl
KTsgIC8vIE5vIG1heC4KK2NoZWNrKCcxMDEnLCAneHh4JywgdHJ1ZSk7ICAvLyBJbnZhbGlkIG1h
eC4KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93
LW51bWJlci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5
U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmY0ZWRmZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qcwpA
QCAtMCwwICsxLDQwIEBACitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9y
IHJhbmdlVW5kZXJmbG93IGZsYWcgd2l0aCB0eXBlPW51bWJlciBpbnB1dCBmaWVsZHMnKTsKKwor
dmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKworZnVuY3Rpb24g
Y2hlY2sodmFsdWUsIG1pbiwgdW5kZXJmbG93RXhwZWN0ZWQpCit7CisgICAgaW5wdXQudmFsdWUg
PSB2YWx1ZTsKKyAgICBpbnB1dC5taW4gPSBtaW47CisgICAgdmFyIGFjdHVhbCA9IGlucHV0LnZh
bGlkaXR5LnJhbmdlVW5kZXJmbG93OworICAgIHZhciBkaWRQYXNzID0gYWN0dWFsID09IHVuZGVy
Zmxvd0V4cGVjdGVkOworICAgIHZhciByZXN1bHRUZXh0ID0gJ1RoZSB2YWx1ZSAiJyArIGlucHV0
LnZhbHVlICsgJyIgJyArIChhY3R1YWwgPyAndW5kZXJmbG93cycgOiAnZG9lc25cJ3QgdW5kZXJm
bG93JykgKyAnIHRoZSBtaW5pbXVtIHZhbHVlICInICsgaW5wdXQubWluICsgJyIuJzsKKyAgICBp
ZiAoZGlkUGFzcykKKyAgICAgICAgdGVzdFBhc3NlZChyZXN1bHRUZXh0KTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RGYWlsZWQocmVzdWx0VGV4dCk7Cit9CisKKy8vIE5vIHVuZGVyZmxvdyBjYXNl
cworaW5wdXQudHlwZSA9ICd0ZXh0JzsgIC8vIE5vIHVuZGVyZmxvdyBmb3IgdHlwZT10ZXh0Lgor
Y2hlY2soJzk5JywgJzEwMCcsIGZhbHNlKTsKK2lucHV0LnR5cGUgPSAnbnVtYmVyJzsKK2NoZWNr
KCcxMDEnLCAnMTAwJywgZmFsc2UpOyAgLy8gVmVyeSBub3JtYWwgY2FzZS4KK2NoZWNrKCctOTkn
LCAnLTEwMCcsIGZhbHNlKTsKK2NoZWNrKCcxMDEnLCAnMUUrMicsIGZhbHNlKTsKK2NoZWNrKCcx
LjAxJywgJzEuMDAnLCBmYWxzZSk7CitjaGVjaygnYWJjJywgJzEwMCcsIGZhbHNlKTsgIC8vIElu
dmFsaWQgdmFsdWUuCitjaGVjaygnJywgJzEnLCBmYWxzZSk7ICAvLyBObyB2YWx1ZS4KK2NoZWNr
KCctMScsICcnLCBmYWxzZSk7ICAvLyBObyBtaW4uCitjaGVjaygnLTEnLCAneHh4JywgZmFsc2Up
OyAgLy8gSW52YWxpZCBtaW4uCisvLyBUaGUgZm9sbG93aW5nIGNhc2Ugc2hvdWxkIGJlIHJhbmdl
VW5kZXJmbG93PT10cnVlIGlkZWFsbHkuICBCdXQgdGhlICJkb3VibGUiIHR5cGUgZG9lc24ndCBo
YXZlIGVub3VnaCBwcmVjaXNpb24uCitjaGVjaygnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTgnLCAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTknLCBmYWxzZSk7CisKKy8vIFVuZGVyZmxvdyBjYXNlcworY2hlY2soJzk5JywgJzEw
MCcsIHRydWUpOworY2hlY2soJy0xMDEnLCAnLTEwMCcsIHRydWUpOworY2hlY2soJzk5JywgJzFF
KzInLCB0cnVlKTsKK2lucHV0Lm1heCA9ICcxMDAnOyAgLy8gdmFsdWUgPCBtaW4gJiYgdmFsdWUg
PiBtYXgKK2NoZWNrKCcxMDEnLCAnMjAwJywgdHJ1ZSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2Uu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU0NWJiMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3Rh
dGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuanMKQEAgLTAsMCArMSw0MSBAQAorZGVzY3JpcHRpb24o
J1RoaXMgdGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZVVuZGVyZmxvdyBmbGFnIHdpdGggdHlw
ZT1yYW5nZSBpbnB1dCBmaWVsZHMnKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnaW5wdXQnKTsKKworZnVuY3Rpb24gY2hlY2sodmFsdWUsIG1pbiwgdW5kZXJmbG93RXhw
ZWN0ZWQpCit7CisgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTsKKyAgICBpbnB1dC5taW4gPSBtaW47
CisgICAgdmFyIGFjdHVhbCA9IGlucHV0LnZhbGlkaXR5LnJhbmdlVW5kZXJmbG93OworICAgIHZh
ciBkaWRQYXNzID0gYWN0dWFsID09IHVuZGVyZmxvd0V4cGVjdGVkOworICAgIHZhciByZXN1bHRU
ZXh0ID0gJ1RoZSB2YWx1ZSAiJyArIGlucHV0LnZhbHVlICsgJyIgJyArIChhY3R1YWwgPyAndW5k
ZXJmbG93cycgOiAnZG9lc25cJ3QgdW5kZXJmbG93JykgKyAnIHRoZSBtaW5pbXVtIHZhbHVlICIn
ICsgaW5wdXQubWluICsgJyIuJzsKKyAgICBpZiAoZGlkUGFzcykKKyAgICAgICAgdGVzdFBhc3Nl
ZChyZXN1bHRUZXh0KTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQocmVzdWx0VGV4dCk7
Cit9CisKKy8vIE5vIHVuZGVyZmxvdyBjYXNlcworaW5wdXQudHlwZSA9ICd0ZXh0JzsgIC8vIE5v
IG92ZXJmbG93IGZvciB0eXBlPXRleHQuCitjaGVjaygnOTknLCAnMTAwJywgZmFsc2UpOworaW5w
dXQudHlwZSA9ICdyYW5nZSc7CitjaGVjaygnMTAxJywgJzEwMCcsIGZhbHNlKTsgIC8vIFZlcnkg
bm9ybWFsIGNhc2UuCitjaGVjaygnLTk5JywgJy0xMDAnLCBmYWxzZSk7CitjaGVjaygnMTAxJywg
JzFFKzInLCBmYWxzZSk7CitjaGVjaygnMS4wMScsICcxLjAwJywgZmFsc2UpOworY2hlY2soJ2Fi
YycsICcxMDAnLCBmYWxzZSk7ICAvLyBJbnZhbGlkIHZhbHVlLgorY2hlY2soJycsICcxJywgZmFs
c2UpOyAgLy8gTm8gdmFsdWUuCisvLyBUaGUgZm9sbG93aW5nIGNhc2Ugc2hvdWxkIGJlIHJhbmdl
VW5kZXJmbG93PT10cnVlIGlkZWFsbHkuICBCdXQgdGhlICJkb3VibGUiIHR5cGUgZG9lc24ndCBo
YXZlIGVub3VnaCBwcmVjaXNpb24uCitjaGVjaygnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTgnLCAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTknLCBmYWxzZSk7CitpbnB1dC5tYXggPSAnMCc7ICAvLyBJZiBtaW4gPiBtYXgsIG1h
eCBpcyByZXNldCB0byBtaW4gYW5kIG1pbiBpcyBub3QgY2hhbmdlZC4KK2NoZWNrKCcxMDEnLCAn
MTAwJywgZmFsc2UpOworaW5wdXQubWF4ID0gJyc7CisKKy8vIFVuZGVyZmxvdyBjYXNlcworY2hl
Y2soJzk5JywgJzEwMCcsIHRydWUpOworY2hlY2soJy0xMDEnLCAnLTEwMCcsIHRydWUpOworY2hl
Y2soJzk5JywgJzFFKzInLCB0cnVlKTsKK2NoZWNrKCctMScsICcnLCB0cnVlKTsgIC8vIE5vIG1p
bi4KK2NoZWNrKCctMScsICd4eHgnLCB0cnVlKTsgIC8vIEludmFsaWQgbWluLgorCit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL2lucHV0LW1pbm1heC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LW1pbm1heC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wNjhjNWNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvaW5wdXQtbWlubWF4LmpzCkBAIC0wLDAgKzEsMzUgQEAKK2Rlc2NyaXB0
aW9uKCdUZXN0cyB0aGUgYmVoYXZpb3Igb2YgLm1pbiBhbmQgLm1heCBvZiBIVE1MSW5wdXRFbGVt
ZW50LicpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwor
CisvLyAubWluIGFuZCAubWF4IGp1c3QgcmVmbGVjdCB0aGUgY29ycmVzcG9uZGluZyBhdHRyaWJ1
dGVzLgoraW5wdXQudHlwZSA9ICd0ZXh0JzsKK3Nob3VsZEJlKCdpbnB1dC5taW4nLCAnIiInKTsK
K3Nob3VsZEJlKCdpbnB1dC5tYXgnLCAnIiInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnbWluJywg
JzAnKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnbWF4JywgJzEwMCcpOworc2hvdWxkQmUoJ2lucHV0
Lm1pbicsICciMCInKTsKK3Nob3VsZEJlKCdpbnB1dC5tYXgnLCAnIjEwMCInKTsKK2lucHV0LnNl
dEF0dHJpYnV0ZSgnbWluJywgJ2FiYycpOworaW5wdXQuc2V0QXR0cmlidXRlKCdtYXgnLCAncXdl
cnR5Jyk7CitzaG91bGRCZSgnaW5wdXQubWluJywgJyJhYmMiJyk7CitzaG91bGRCZSgnaW5wdXQu
bWF4JywgJyJxd2VydHkiJyk7CisKK2lucHV0Lm1pbiA9ICdmb28nOworaW5wdXQubWF4ID0gJ2Jh
cic7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtaW4iKScsICciZm9vIicpOworc2hv
dWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgibWF4IiknLCAnImJhciInKTsKK2lucHV0Lm1pbiA9
ICcnOworaW5wdXQubWF4ID0gJyc7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtaW4i
KScsICciIicpOworc2hvdWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgibWF4IiknLCAnIiInKTsK
KworLy8gVGhlIHJhbmdlIHR5cGUgaGFzIHRoZSBkZWZhdWx0IG1pbmltdW0gYW5kIHRoZSBkZWZh
dWx0IG1heGltdW0uCisvLyBCdXQgdGhleSBhcmVuJ3QgZXhwb3NlZCBieSAubWluIC5tYXggSURM
IGF0dHJpYnV0ZXMuCitpbnB1dC50eXBlID0gJ3JhbmdlJzsKK2lucHV0LnNldEF0dHJpYnV0ZSgn
bWluJywgJycpOworaW5wdXQuc2V0QXR0cmlidXRlKCdtYXgnLCAnJyk7CitzaG91bGRCZSgnaW5w
dXQubWluJywgJyIiJyk7CitzaG91bGRCZSgnaW5wdXQubWF4JywgJyIiJyk7CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmY2IzYzA5Li45ZmZmNGQ2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisy
MDA5LTA5LTA5ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgbWluL21heCBh
dHRyaWJ1dGVzLCBWYWxpZGl0eVN0YXRlLnJhbmdlVW5kZXJmbG93IGFuZAorICAgICAgICBWYWxp
ZGl0eVN0YXRlLnJhbmdlT3ZlcmZsb3cgZm9yIDxpbnB1dCB0eXBlPW51bWJlcj4gYW5kIDxpbnB1
dCB0eXBlPXJhbmdlPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjkwNjkKKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJh
bmdlT3ZlcmZsb3ctbnVtYmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZm9ybXMvaW5wdXQtbWlubWF4Lmh0bWwKKworICAgICAgICAqIGh0
bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpyYW5nZVVuZGVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50
OjpyYW5nZU92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1p
blJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1heFJhbmdlKToK
KyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWYWxpZGl0eVN0YXRlOjpyYW5nZVVuZGVyZmxvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpWYWxpZGl0eVN0YXRlOjpyYW5nZU92ZXJmbG93KToKKyAgICAgICAgKiBodG1sL1Zh
bGlkaXR5U3RhdGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNsaWRlclJhbmdlOjpTbGlkZXJSYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpTbGlkZXJSYW5nZTo6dmFsdWVGcm9tRWxlbWVudCk6CisKIDIwMDktMTAtMDQgIFhhbiBM
b3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3RvdmEg
Tm9yb25oYS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBi
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBkM2IyNGE3Li4zNDg3N2M3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0yMzIsNiArMjMyLDYyIEBAIGJvb2wg
SFRNTElucHV0RWxlbWVudDo6dG9vTG9uZygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Citib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJhbmdlVW5kZXJmbG93KCkgY29uc3QKK3sKKyAgICBp
ZiAoaW5wdXRUeXBlKCkgPT0gTlVNQkVSKSB7CisgICAgICAgIGRvdWJsZSBtaW47CisgICAgICAg
IGRvdWJsZSBkb3VibGVWYWx1ZTsKKyAgICAgICAgaWYgKGZvcm1TdHJpbmdUb0RvdWJsZShnZXRB
dHRyaWJ1dGUobWluQXR0ciksICZtaW4pICYmIGZvcm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAm
ZG91YmxlVmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlIDwgbWluOworICAg
IH0gZWxzZSBpZiAoaW5wdXRUeXBlKCkgPT0gUkFOR0UpIHsKKyAgICAgICAgZG91YmxlIGRvdWJs
ZVZhbHVlOworICAgICAgICBpZiAoZm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZkb3VibGVW
YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gZG91YmxlVmFsdWUgPCByYW5nZU1pbmltdW0oKTsK
KyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJh
bmdlT3ZlcmZsb3coKSBjb25zdAoreworICAgIGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIpIHsK
KyAgICAgICAgZG91YmxlIG1heDsKKyAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlOworICAgICAg
ICBpZiAoZm9ybVN0cmluZ1RvRG91YmxlKGdldEF0dHJpYnV0ZShtYXhBdHRyKSwgJm1heCkgJiYg
Zm9ybVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZkb3VibGVWYWx1ZSkpCisgICAgICAgICAgICBy
ZXR1cm4gZG91YmxlVmFsdWUgPiBtYXg7CisgICAgfSBlbHNlIGlmIChpbnB1dFR5cGUoKSA9PSBS
QU5HRSkgeworICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7CisgICAgICAgIGlmIChmb3JtU3Ry
aW5nVG9Eb3VibGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBk
b3VibGVWYWx1ZSA+IHJhbmdlTWF4aW11bSgpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2RvdWJsZSBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU1pbmltdW0oKSBjb25zdAoreworICAg
IEFTU0VSVChpbnB1dFR5cGUoKSA9PSBSQU5HRSk7CisgICAgLy8gVGhlIHJhbmdlIHR5cGUncyAi
ZGVmYXVsdCBtaW5pbXVtIiBpcyAwLgorICAgIGRvdWJsZSBtaW4gPSAwLjA7CisgICAgZm9ybVN0
cmluZ1RvRG91YmxlKGdldEF0dHJpYnV0ZShtaW5BdHRyKSwgJm1pbik7CisgICAgcmV0dXJuIG1p
bjsKK30KKworZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnJhbmdlTWF4aW11bSgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICAvLyBUaGUgcmFuZ2UgdHlw
ZSdzICJkZWZhdWx0IG1heGltdW0iIGlzIDEwMC4KKyAgICBzdGF0aWMgY29uc3QgZG91YmxlIGRl
ZmF1bHRNYXhpbXVtID0gMTAwLjA7CisgICAgZG91YmxlIG1heCA9IGRlZmF1bHRNYXhpbXVtOwor
ICAgIGZvcm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWF4QXR0ciksICZtYXgpOworICAg
IGNvbnN0IGRvdWJsZSBtaW4gPSByYW5nZU1pbmltdW0oKTsKKworICAgIGlmIChtYXggPCBtaW4p
IHsKKyAgICAgICAgLy8gQSByZW1lZHkgZm9yIHRoZSBpbmNvbnNpc3RlbnQgbWluL21heCB2YWx1
ZXMuCisgICAgICAgIC8vIFNldHMgdGhlIG1heG1pbXVtIHRvIHRoZSBkZWZhdWx0ICgxMDAuMCkg
b3IgdGhlIG1pbmltdW0gdmFsdWUuCisgICAgICAgIG1heCA9IG1pbiA8IGRlZmF1bHRNYXhpbXVt
ID8gZGVmYXVsdE1heGltdW0gOiBtaW47CisgICAgfQorICAgIHJldHVybiBtYXg7Cit9CisKIHN0
YXRpYyBpbmxpbmUgQ2hlY2tlZFJhZGlvQnV0dG9ucyYgY2hlY2tlZFJhZGlvQnV0dG9ucyhjb25z
dCBIVE1MSW5wdXRFbGVtZW50ICplbGVtZW50KQogewogICAgIGlmIChIVE1MRm9ybUVsZW1lbnQq
IGZvcm0gPSBlbGVtZW50LT5mb3JtKCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCAwZjk0
NzRjLi4yYzMwYjRjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTk0LDYgKzk0LDE0IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBib29sIHBhdHRlcm5NaXNtYXRjaCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCB0b29M
b25nKCkgY29uc3Q7CisgICAgLy8gRm9yIFZhbGlkaXR5U3RhdGUKKyAgICBib29sIHJhbmdlVW5k
ZXJmbG93KCkgY29uc3Q7CisgICAgYm9vbCByYW5nZU92ZXJmbG93KCkgY29uc3Q7CisgICAgLy8g
UmV0dXJucyB0aGUgbWluaW11bSB2YWx1ZSBmb3IgdHlwZT1yYW5nZS4gIERvbid0IGNhbGwgdGhp
cyBmb3Igb3RoZXIgdHlwZXMuCisgICAgZG91YmxlIHJhbmdlTWluaW11bSgpIGNvbnN0OworICAg
IC8vIFJldHVybnMgdGhlIG1heGltdW0gdmFsdWUgZm9yIHR5cGU9cmFuZ2UuICBEb24ndCBjYWxs
IHRoaXMgZm9yIG90aGVyIHR5cGVzLgorICAgIC8vIFRoaXMgYWx3YXlzIHJldHVybnMgYSB2YWx1
ZSB3aGljaCBpcyA8PSBtaW5SYW5nZSgpLgorICAgIGRvdWJsZSByYW5nZU1heGltdW0oKSBjb25z
dDsKIAogICAgIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFNV
Qk1JVCB8fCBtX3R5cGUgPT0gUkVTRVQgfHwgbV90eXBlID09IEJVVFRPTjsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFJBRElPOyB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggN2NkZjQ4Ny4uYmMwZDM1YSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNDIsOCArNDIsMTAgQEAgbW9kdWxlIGh0bWwgewog
I2lmIGRlZmluZWQoRU5BQkxFX0RBVEFMSVNUKSAmJiBFTkFCTEVfREFUQUxJU1QKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxFbGVtZW50ICAgICBsaXN0OwogI2VuZGlmCisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1heDsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICBtYXhMZW5ndGgKICAgICAgICAgICAgICAg
ICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWluOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgYm9vbGVhbiAgICAgICAgIG11bHRpcGxlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgICAgICAgcGF0dGVybjsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcCBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0
eVN0YXRlLmNwcAppbmRleCBkZjg5MzNkLi41YmY4MzgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3Bw
CkBAIC02MCw2ICs2MCwyMCBAQCBib29sIFZhbGlkaXR5U3RhdGU6OnR5cGVNaXNtYXRjaCgpCiAg
ICAgfQogfQogCitib29sIFZhbGlkaXR5U3RhdGU6OnJhbmdlVW5kZXJmbG93KCkKK3sKKyAgICBp
ZiAoIWNvbnRyb2woKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGNvbnRyb2woKSkt
PnJhbmdlVW5kZXJmbG93KCk7Cit9CisKK2Jvb2wgVmFsaWRpdHlTdGF0ZTo6cmFuZ2VPdmVyZmxv
dygpCit7CisgICAgaWYgKCFjb250cm9sKCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
Pihjb250cm9sKCkpLT5yYW5nZU92ZXJmbG93KCk7Cit9CisKIGJvb2wgVmFsaWRpdHlTdGF0ZTo6
dmFsaWQoKQogewogICAgIGJvb2wgc29tZUVycm9yID0gdHlwZU1pc21hdGNoKCkgfHwgc3RlcE1p
c21hdGNoKCkgfHwgcmFuZ2VVbmRlcmZsb3coKSB8fCByYW5nZU92ZXJmbG93KCkgfHwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmggYi9XZWJDb3JlL2h0bWwvVmFsaWRp
dHlTdGF0ZS5oCmluZGV4IDlhZGM4ZmQuLjY3YWZhNTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9WYWxpZGl0eVN0YXRlLmgKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaApAQCAt
NDQsOCArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgdHlwZU1pc21h
dGNoKCk7CiAgICAgICAgIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgeyByZXR1cm4gY29udHJvbCgp
LT5wYXR0ZXJuTWlzbWF0Y2goKTsgfQogICAgICAgICBib29sIHRvb0xvbmcoKSB7IHJldHVybiBj
b250cm9sKCktPnRvb0xvbmcoKTsgfQotICAgICAgICBib29sIHJhbmdlVW5kZXJmbG93KCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgYm9vbCByYW5nZU92ZXJmbG93KCkgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICAgICAgYm9vbCByYW5nZVVuZGVyZmxvdygpOworICAgICAgICBib29sIHJhbmdl
T3ZlcmZsb3coKTsKICAgICAgICAgYm9vbCBzdGVwTWlzbWF0Y2goKSB7IHJldHVybiBmYWxzZTsg
fQogICAgICAgICBib29sIGN1c3RvbUVycm9yKCkgeyByZXR1cm4gIW1fY3VzdG9tRXJyb3JNZXNz
YWdlLmlzRW1wdHkoKTsgfQogICAgICAgICBib29sIHZhbGlkKCk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2xpZGVyLmNwcAppbmRleCAyNDdhY2RhLi40NDJhZjM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNs
aWRlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIGNvbnN0IGludCBkZWZhdWx0VHJhY2tM
ZW5ndGggPSAxMjk7CiBzdHJ1Y3QgU2xpZGVyUmFuZ2UgewogICAgIGJvb2wgaXNJbnRlZ3JhbDsK
ICAgICBkb3VibGUgbWluaW11bTsKLSAgICBkb3VibGUgbWF4aW11bTsKKyAgICBkb3VibGUgbWF4
aW11bTsgIC8vIG1heGltdW0gbXVzdCBiZSA+PSBtaW5pbXVtLgogCiAgICAgZXhwbGljaXQgU2xp
ZGVyUmFuZ2UoSFRNTElucHV0RWxlbWVudCopOwogICAgIGRvdWJsZSBjbGFtcFZhbHVlKGRvdWJs
ZSB2YWx1ZSk7CkBAIC04MCwxMiArODAsOCBAQCBTbGlkZXJSYW5nZTo6U2xpZGVyUmFuZ2UoSFRN
TElucHV0RWxlbWVudCogZWxlbWVudCkKIAogICAgIGlzSW50ZWdyYWwgPSAhZXF1YWxJZ25vcmlu
Z0Nhc2UoZWxlbWVudC0+Z2V0QXR0cmlidXRlKHByZWNpc2lvbkF0dHIpLCAiZmxvYXQiKTsKIAot
ICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyBtYXhpbXVtIHN0cmluZ3MgdGhhdCBjYW4ndCBiZSBw
YXJzZWQgYXMgMCwgYnV0IHBlcmhhcHMgMTAwIHdvdWxkIGJlIG1vcmUgYXBwcm9wcmlhdGUuCi0g
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBtYXhTdHJpbmcgPSBlbGVtZW50LT5nZXRBdHRyaWJ1dGUo
bWF4QXR0cik7Ci0gICAgbWF4aW11bSA9IG1heFN0cmluZy5pc051bGwoKSA/IDEwMC4wIDogbWF4
U3RyaW5nLnRvRG91YmxlKCk7Ci0KLSAgICAvLyBJZiB0aGUgbWF4aW11bSBpcyBzbWFsbGVyLCB1
c2UgaXQgYXMgdGhlIG1pbmltdW0uCi0gICAgbWluaW11bSA9IG1pbihlbGVtZW50LT5nZXRBdHRy
aWJ1dGUobWluQXR0cikudG9Eb3VibGUoKSwgbWF4aW11bSk7CisgICAgbWF4aW11bSA9IGVsZW1l
bnQtPnJhbmdlTWF4aW11bSgpOworICAgIG1pbmltdW0gPSBlbGVtZW50LT5yYW5nZU1pbmltdW0o
KTsKIH0KIAogZG91YmxlIFNsaWRlclJhbmdlOjpjbGFtcFZhbHVlKGRvdWJsZSB2YWx1ZSkKQEAg
LTk2LDEyICs5MiwxNCBAQCBkb3VibGUgU2xpZGVyUmFuZ2U6OmNsYW1wVmFsdWUoZG91YmxlIHZh
bHVlKQogCiBkb3VibGUgU2xpZGVyUmFuZ2U6OnZhbHVlRnJvbUVsZW1lbnQoSFRNTElucHV0RWxl
bWVudCogZWxlbWVudCwgYm9vbCogd2FzQ2xhbXBlZCkKIHsKLSAgICBTdHJpbmcgdmFsdWVTdHJp
bmcgPSBlbGVtZW50LT52YWx1ZSgpOwotICAgIGRvdWJsZSBvbGRWYWx1ZSA9IHZhbHVlU3RyaW5n
LmlzTnVsbCgpID8gKG1pbmltdW0gKyBtYXhpbXVtKSAvIDIgOiB2YWx1ZVN0cmluZy50b0RvdWJs
ZSgpOworICAgIGRvdWJsZSBvbGRWYWx1ZTsKKyAgICBib29sIHBhcnNlU3VjY2VzcyA9IEhUTUxJ
bnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdUb0RvdWJsZShlbGVtZW50LT52YWx1ZSgpLCAmb2xkVmFs
dWUpOworICAgIGlmICghcGFyc2VTdWNjZXNzKQorICAgICAgICBvbGRWYWx1ZSA9IChtaW5pbXVt
ICsgbWF4aW11bSkgLyAyOwogICAgIGRvdWJsZSBuZXdWYWx1ZSA9IGNsYW1wVmFsdWUob2xkVmFs
dWUpOwogCiAgICAgaWYgKHdhc0NsYW1wZWQpCi0gICAgICAgICp3YXNDbGFtcGVkID0gdmFsdWVT
dHJpbmcuaXNOdWxsKCkgfHwgbmV3VmFsdWUgIT0gb2xkVmFsdWU7CisgICAgICAgICp3YXNDbGFt
cGVkID0gIXBhcnNlU3VjY2VzcyB8fCBuZXdWYWx1ZSAhPSBvbGRWYWx1ZTsKIAogICAgIHJldHVy
biBuZXdWYWx1ZTsKIH0KLS0gCjEuNi4zLjMKCg==
</data>
<flag name="review"
          id="21843"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40608</attachid>
            <date>2009-10-04 21:24:41 -0700</date>
            <delta_ts>2009-10-05 19:43:17 -0700</delta_ts>
            <desc>Proposed patch (rev.6)</desc>
            <filename>0001-min-max-support-for-type-number-range-6.patch</filename>
            <type>text/plain</type>
            <size>32131</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSA5ODhiMjIzOGQ2MWIzOWQ1MWQxZWRkMGIxZDEyZGNmZGQ2NjlmOGY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUaHUsIDEwIFNlcCAyMDA5IDExOjI5OjQxICswOTAwClN1YmplY3Q6IFtQQVRDSF0gbWluL21h
eCBzdXBwb3J0IGZvciB0eXBlPW51bWJlci9yYW5nZSA2CgotLS0KIExheW91dFRlc3RzL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNCArKysrKysrKwogLi4uVmFs
aWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQgfCAgIDIzICsrKysr
KysrCiAuLi4vZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5odG1sICB8
ICAgMTMgKysrKysKIC4uLi9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UtZXhwZWN0
ZWQudHh0IHwgICAyMyArKysrKysrKwogLi4uL2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVy
Zmxvdy1yYW5nZS5odG1sICAgfCAgIDEzICsrKysrCiAuLi5hbGlkaXR5U3RhdGUtcmFuZ2VVbmRl
cmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dCB8ICAgMjMgKysrKysrKysKIC4uLi9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5odG1sIHwgICAxMyArKysrKwogLi4uVmFs
aWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQgfCAgIDIzICsrKysr
KysrCiAuLi4vZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5odG1sICB8
ICAgMTMgKysrKysKIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVk
LnR4dCAgIHwgICAyMSArKysrKysrCiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1h
eC5odG1sICAgICAgICAgICB8ICAgMTMgKysrKysKIC4uLi9WYWxpZGl0eVN0YXRlLXJhbmdlT3Zl
cmZsb3ctbnVtYmVyLmpzICAgICAgICAgIHwgICA0MCArKysrKysrKysrKysrKwogLi4uL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5qcyAgICAgICAgICAgfCAgIDQzICsrKysrKysr
KysrKysrKwogLi4uL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzICAgICAg
ICAgfCAgIDQwICsrKysrKysrKysrKysrCiAuLi4vVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxv
dy1yYW5nZS5qcyAgICAgICAgICB8ICAgNDEgKysrKysrKysrKysrKysKIC4uLi9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9pbnB1dC1taW5tYXguanMgICAgICAgIHwgICAzNSArKysrKysrKysrKysK
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy
OSArKysrKysrKysrCiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgICAgICAgICAg
ICAgICAgICB8ICAgNTYgKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmggICAgICAgICAgICAgICAgICAgIHwgICAgOCArKysKIFdlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmlkbCAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL2h0
bWwvVmFsaWRpdHlTdGF0ZS5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysrKysKIFdl
YkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCAr
LQogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCAgICAgICAgICAgICAgICAgfCAg
IDE4ICsrKy0tLS0KIDIzIGZpbGVzIGNoYW5nZWQsIDUyMCBpbnNlcnRpb25zKCspLCAxMiBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ct
bnVtYmVyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxv
dy1yYW5nZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQKIGNyZWF0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRl
cmZsb3ctbnVtYmVyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdl
VW5kZXJmbG93LXJhbmdlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92
ZXJmbG93LW51bWJlci5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5qcwogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVy
Zmxvdy1yYW5nZS5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LW1pbm1heC5qcwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYThjMDVlLi5hZWVmNzYyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDktMDktMDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudCBtaW4vbWF4IGF0dHJpYnV0ZXMsIFZhbGlkaXR5U3RhdGUucmFuZ2VVbmRl
cmZsb3cgYW5kCisgICAgICAgIFZhbGlkaXR5U3RhdGUucmFuZ2VPdmVyZmxvdyBmb3IgPGlucHV0
IHR5cGU9bnVtYmVyPiBhbmQgPGlucHV0IHR5cGU9cmFuZ2U+CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA2OQorCisgICAgICAgICogZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92
ZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVy
Zmxvdy1udW1iZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXguaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51
bWJlci5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRp
dHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qczog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1y
YW5nZVVuZGVyZmxvdy1yYW5nZS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvaW5wdXQtbWlubWF4LmpzOiBBZGRlZC4KKwogMjAwOS0xMC0wNCAgWGFuIExvcGV6
ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jv
bmhhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJh
bmdlT3ZlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEyODQzNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9y
IHJhbmdlT3ZlcmZsb3cgZmxhZyB3aXRoIHR5cGU9bnVtYmVyIGlucHV0IGZpZWxkcworCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCBv
dmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICI5OSIgZG9l
c24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIt
MTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhl
IHZhbHVlICI5OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMUUrMiIuCitQ
QVNTIFRoZSB2YWx1ZSAiMC45OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAi
MS4wMCIuCitQQVNTIFRoZSB2YWx1ZSAiYWJjIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVt
IHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIiIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4
aW11bSB2YWx1ZSAiLTEiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCBvdmVyZmxvdyB0
aGUgbWF4aW11bSB2YWx1ZSAiIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3Qgb3ZlcmZs
b3cgdGhlIG1heGltdW0gdmFsdWUgInh4eCIuCitQQVNTIFRoZSB2YWx1ZSAiMC45OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1h
eGltdW0gdmFsdWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4
Ii4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAw
Ii4KK1BBU1MgVGhlIHZhbHVlICItOTkiIG92ZXJmbG93cyB0aGUgbWF4aW11bSB2YWx1ZSAiLTEw
MCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1heGltdW0gdmFsdWUgIjFF
KzIiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVlICIx
MDAiLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92
ZXJmbG93LW51bWJlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNThlNWZhOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5odG1sCkBAIC0wLDAgKzEsMTMgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5n
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEwOWEw
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS1yYW5nZU92ZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitUaGlz
IHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFuZ2VPdmVyZmxvdyBmbGFnIHdpdGggdHlwZT1yYW5n
ZSBpbnB1dCBmaWVsZHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgVGhl
IHZhbHVlICIxMDEiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEwMCIuCitQ
QVNTIFRoZSB2YWx1ZSAiOTkiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIjEw
MCIuCitQQVNTIFRoZSB2YWx1ZSAiLTEwMSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2
YWx1ZSAiLTEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiOTkiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1h
eGltdW0gdmFsdWUgIjFFKzIiLgorUEFTUyBUaGUgdmFsdWUgIjAuOTkiIGRvZXNuJ3Qgb3ZlcmZs
b3cgdGhlIG1heGltdW0gdmFsdWUgIjEuMDAiLgorUEFTUyBUaGUgdmFsdWUgImFiYyIgZG9lc24n
dCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIiIGRv
ZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIi0xIi4KK1BBU1MgVGhlIHZhbHVlICIw
Ljk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OSIgZG9lc24ndCBvdmVy
ZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTgiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCBvdmVyZmxvdyB0aGUg
bWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUg
bWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICItOTkiIG92ZXJmbG93cyB0aGUg
bWF4aW11bSB2YWx1ZSAiLTEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhl
IG1heGltdW0gdmFsdWUgIjFFKzIiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRo
ZSBtYXhpbXVtIHZhbHVlICIiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBt
YXhpbXVtIHZhbHVlICJ4eHgiLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjAzODViMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5odG1sCkBAIC0w
LDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5n
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdl
VW5kZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uODA3OTk3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjMgQEAKK1RoaXMgdGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZVVuZGVyZmxvdyBm
bGFnIHdpdGggdHlwZT1udW1iZXIgaW5wdXQgZmllbGRzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIFRoZSB2YWx1ZSAiOTkiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5p
bXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCB1bmRlcmZsb3cg
dGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiLTk5IiBkb2Vzbid0IHVu
ZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiLTEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBk
b2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1
ZSAiMS4wMSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEuMDAiLgorUEFT
UyBUaGUgdmFsdWUgImFiYyIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEw
MCIuCitQQVNTIFRoZSB2YWx1ZSAiIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1
ZSAiMSIuCitQQVNTIFRoZSB2YWx1ZSAiLTEiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVt
IHZhbHVlICIiLgorUEFTUyBUaGUgdmFsdWUgIi0xIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWlu
aW11bSB2YWx1ZSAieHh4Ii4KK1BBU1MgVGhlIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OCIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFs
dWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5Ii4KK1BBU1Mg
VGhlIHZhbHVlICI5OSIgdW5kZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1Mg
VGhlIHZhbHVlICItMTAxIiB1bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICItMTAwIi4KK1BB
U1MgVGhlIHZhbHVlICI5OSIgdW5kZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiMUUrMiIuCitQ
QVNTIFRoZSB2YWx1ZSAiMTAxIiB1bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIyMDAiLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxv
dy1udW1iZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5n
ZVVuZGVyZmxvdy1udW1iZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41ZTc1MjdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5n
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I2Y2E4
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGhp
cyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJhbmdlVW5kZXJmbG93IGZsYWcgd2l0aCB0eXBlPXJh
bmdlIGlucHV0IGZpZWxkcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBU
aGUgdmFsdWUgIjk5IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4K
K1BBU1MgVGhlIHZhbHVlICIxMDEiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVl
ICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi05OSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmlt
dW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCB1bmRlcmZsb3cg
dGhlIG1pbmltdW0gdmFsdWUgIjFFKzIiLgorUEFTUyBUaGUgdmFsdWUgIjEuMDEiIGRvZXNuJ3Qg
dW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxLjAwIi4KK1BBU1MgVGhlIHZhbHVlICJhYmMi
IGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFs
dWUgIiIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEiLgorUEFTUyBUaGUg
dmFsdWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4IiBkb2Vz
bid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTkiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCB1bmRl
cmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiOTkiIHVuZGVy
Zmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiLTEwMSIgdW5k
ZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiLTEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiOTkiIHVu
ZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjFFKzIiLgorUEFTUyBUaGUgdmFsdWUgIi0xIiB1
bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIiLgorUEFTUyBUaGUgdmFsdWUgIi0xIiB1bmRl
cmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICJ4eHgiLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZmYmViZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1y
YW5nZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VVbmRlcmZsb3ctcmFuZ2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2VkZTAwZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIxIEBACitUZXN0cyB0aGUgYmVoYXZpb3Igb2YgLm1pbiBhbmQgLm1heCBvZiBI
VE1MSW5wdXRFbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBp
bnB1dC5taW4gaXMgIiIKK1BBU1MgaW5wdXQubWF4IGlzICIiCitQQVNTIGlucHV0Lm1pbiBpcyAi
MCIKK1BBU1MgaW5wdXQubWF4IGlzICIxMDAiCitQQVNTIGlucHV0Lm1pbiBpcyAiYWJjIgorUEFT
UyBpbnB1dC5tYXggaXMgInF3ZXJ0eSIKK1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJtaW4iKSBp
cyAiZm9vIgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoIm1heCIpIGlzICJiYXIiCitQQVNTIGlu
cHV0LmdldEF0dHJpYnV0ZSgibWluIikgaXMgIiIKK1BBU1MgaW5wdXQuZ2V0QXR0cmlidXRlKCJt
YXgiKSBpcyAiIgorUEFTUyBpbnB1dC5taW4gaXMgIiIKK1BBU1MgaW5wdXQubWF4IGlzICIiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXguaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjJmOGRkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtbWlubWF4Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvaW5w
dXQtbWlubWF4LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1y
YW5nZU92ZXJmbG93LW51bWJlci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ1OWYyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1u
dW1iZXIuanMKQEAgLTAsMCArMSw0MCBAQAorZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBhaW1zIHRv
IGNoZWNrIGZvciByYW5nZU92ZXJmbG93IGZsYWcgd2l0aCB0eXBlPW51bWJlciBpbnB1dCBmaWVs
ZHMnKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKwor
ZnVuY3Rpb24gY2hlY2sodmFsdWUsIG1heCwgb3ZlcmZsb3dFeHBlY3RlZCkKK3sKKyAgICBpbnB1
dC52YWx1ZSA9IHZhbHVlOworICAgIGlucHV0Lm1heCA9IG1heDsKKyAgICB2YXIgYWN0dWFsID0g
aW5wdXQudmFsaWRpdHkucmFuZ2VPdmVyZmxvdzsKKyAgICB2YXIgZGlkUGFzcyA9IGFjdHVhbCA9
PSBvdmVyZmxvd0V4cGVjdGVkOworICAgIHZhciByZXN1bHRUZXh0ID0gJ1RoZSB2YWx1ZSAiJyAr
IGlucHV0LnZhbHVlICsgJyIgJyArIChhY3R1YWwgPyAnb3ZlcmZsb3dzJyA6ICdkb2VzblwndCBv
dmVyZmxvdycpICsgJyB0aGUgbWF4aW11bSB2YWx1ZSAiJyArIGlucHV0Lm1heCArICciLic7Cisg
ICAgaWYgKGRpZFBhc3MpCisgICAgICAgIHRlc3RQYXNzZWQocmVzdWx0VGV4dCk7CisgICAgZWxz
ZQorICAgICAgICB0ZXN0RmFpbGVkKHJlc3VsdFRleHQpOworfQorCisvLyBObyBvdmVyZmxvdyBj
YXNlcworaW5wdXQudHlwZSA9ICd0ZXh0JzsgIC8vIE5vIG92ZXJmbG93IGZvciB0eXBlPXRleHQu
CitjaGVjaygnMTAxJywgJzEwMCcsIGZhbHNlKTsKK2lucHV0LnR5cGUgPSAnbnVtYmVyJzsKK2No
ZWNrKCc5OScsICcxMDAnLCBmYWxzZSk7ICAvLyBWZXJ5IG5vcm1hbCBjYXNlLgorY2hlY2soJy0x
MDEnLCAnLTEwMCcsIGZhbHNlKTsKK2NoZWNrKCc5OScsICcxRSsyJywgZmFsc2UpOworY2hlY2so
JzAuOTknLCAnMS4wMCcsIGZhbHNlKTsKK2NoZWNrKCdhYmMnLCAnMTAwJywgZmFsc2UpOyAgLy8g
SW52YWxpZCB2YWx1ZS4KK2NoZWNrKCcnLCAnLTEnLCBmYWxzZSk7ICAvLyBObyB2YWx1ZS4KK2No
ZWNrKCcxMDEnLCAnJywgZmFsc2UpOyAgLy8gTm8gbWF4LgorY2hlY2soJzEwMScsICd4eHgnLCBm
YWxzZSk7ICAvLyBJbnZhbGlkIG1heC4KKy8vIFRoZSBmb2xsb3dpbmcgY2FzZSBzaG91bGQgYmUg
cmFuZ2VPdmVyZmxvdz09dHJ1ZSBpZGVhbGx5LiAgQnV0IHRoZSAiZG91YmxlIiB0eXBlIGRvZXNu
J3QgaGF2ZSBlbm91Z2ggcHJlY2lzaW9uLgorY2hlY2soJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5JywgJzAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk4JywgZmFsc2UpOworCisvLyBPdmVyZmxvdyBjYXNlcworY2hlY2soJzEwMScs
ICcxMDAnLCB0cnVlKTsKK2NoZWNrKCctOTknLCAnLTEwMCcsIHRydWUpOworY2hlY2soJzEwMScs
ICcxRSsyJywgdHJ1ZSk7CitpbnB1dC5taW4gPSAnMjAwJzsgIC8vIHZhbHVlIDwgbWluICYmIHZh
bHVlID4gbWF4CitjaGVjaygnMTAxJywgJzEwMCcsIHRydWUpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5n
ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2IwMWExCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlT
dGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpzCkBAIC0wLDAgKzEsNDMgQEAKK2Rlc2NyaXB0aW9u
KCdUaGlzIHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFuZ2VPdmVyZmxvdyBmbGFnIHdpdGggdHlw
ZT1yYW5nZSBpbnB1dCBmaWVsZHMnKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnaW5wdXQnKTsKKworZnVuY3Rpb24gY2hlY2sodmFsdWUsIG1heCwgb3ZlcmZsb3dFeHBl
Y3RlZCkKK3sKKyAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOworICAgIGlucHV0Lm1heCA9IG1heDsK
KyAgICB2YXIgYWN0dWFsID0gaW5wdXQudmFsaWRpdHkucmFuZ2VPdmVyZmxvdzsKKyAgICB2YXIg
ZGlkUGFzcyA9IGFjdHVhbCA9PSBvdmVyZmxvd0V4cGVjdGVkOworICAgIHZhciByZXN1bHRUZXh0
ID0gJ1RoZSB2YWx1ZSAiJyArIGlucHV0LnZhbHVlICsgJyIgJyArIChhY3R1YWwgPyAnb3ZlcmZs
b3dzJyA6ICdkb2VzblwndCBvdmVyZmxvdycpICsgJyB0aGUgbWF4aW11bSB2YWx1ZSAiJyArIGlu
cHV0Lm1heCArICciLic7CisgICAgaWYgKGRpZFBhc3MpCisgICAgICAgIHRlc3RQYXNzZWQocmVz
dWx0VGV4dCk7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKHJlc3VsdFRleHQpOworfQor
CisvLyBObyBvdmVyZmxvdyBjYXNlcworaW5wdXQudHlwZSA9ICd0ZXh0JzsgIC8vIE5vIG92ZXJm
bG93IGZvciB0eXBlPXRleHQuCitjaGVjaygnMTAxJywgJzEwMCcsIGZhbHNlKTsKK2lucHV0LnR5
cGUgPSAncmFuZ2UnOworY2hlY2soJzk5JywgJzEwMCcsIGZhbHNlKTsgIC8vIFZlcnkgbm9ybWFs
IGNhc2UuCitjaGVjaygnLTEwMScsICctMTAwJywgZmFsc2UpOworY2hlY2soJzk5JywgJzFFKzIn
LCBmYWxzZSk7CitjaGVjaygnMC45OScsICcxLjAwJywgZmFsc2UpOworY2hlY2soJ2FiYycsICcx
MDAnLCBmYWxzZSk7ICAvLyBJbnZhbGlkIHZhbHVlLgorY2hlY2soJycsICctMScsIGZhbHNlKTsg
IC8vIE5vIHZhbHVlLgorLy8gVGhlIGZvbGxvd2luZyBjYXNlIHNob3VsZCBiZSByYW5nZU92ZXJm
bG93PT10cnVlIGlkZWFsbHkuICBCdXQgdGhlICJkb3VibGUiIHR5cGUgZG9lc24ndCBoYXZlIGVu
b3VnaCBwcmVjaXNpb24uCitjaGVjaygnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTknLCAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTgnLCBmYWxzZSk7CitpbnB1dC5taW4gPSAnMjAwJzsgIC8vIElmIG1pbiA+IG1heCwgbWF4IGlz
IHJlc2V0IHRvIG1pbi4KK2NoZWNrKCcxMDEnLCAnMTAwJywgZmFsc2UpOworaW5wdXQubWluID0g
Jyc7CisKKy8vIE92ZXJmbG93IGNhc2VzCitjaGVjaygnMTAxJywgJzEwMCcsIHRydWUpOworaW5w
dXQubWluID0gJy0yMDAnOworY2hlY2soJy05OScsICctMTAwJywgdHJ1ZSk7CitpbnB1dC5taW4g
PSAnJzsKK2NoZWNrKCcxMDEnLCAnMUUrMicsIHRydWUpOworY2hlY2soJzEwMScsICcnLCB0cnVl
KTsgIC8vIE5vIG1heC4KK2NoZWNrKCcxMDEnLCAneHh4JywgdHJ1ZSk7ICAvLyBJbnZhbGlkIG1h
eC4KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93
LW51bWJlci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5
U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmY0ZWRmZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5qcwpA
QCAtMCwwICsxLDQwIEBACitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9y
IHJhbmdlVW5kZXJmbG93IGZsYWcgd2l0aCB0eXBlPW51bWJlciBpbnB1dCBmaWVsZHMnKTsKKwor
dmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKKworZnVuY3Rpb24g
Y2hlY2sodmFsdWUsIG1pbiwgdW5kZXJmbG93RXhwZWN0ZWQpCit7CisgICAgaW5wdXQudmFsdWUg
PSB2YWx1ZTsKKyAgICBpbnB1dC5taW4gPSBtaW47CisgICAgdmFyIGFjdHVhbCA9IGlucHV0LnZh
bGlkaXR5LnJhbmdlVW5kZXJmbG93OworICAgIHZhciBkaWRQYXNzID0gYWN0dWFsID09IHVuZGVy
Zmxvd0V4cGVjdGVkOworICAgIHZhciByZXN1bHRUZXh0ID0gJ1RoZSB2YWx1ZSAiJyArIGlucHV0
LnZhbHVlICsgJyIgJyArIChhY3R1YWwgPyAndW5kZXJmbG93cycgOiAnZG9lc25cJ3QgdW5kZXJm
bG93JykgKyAnIHRoZSBtaW5pbXVtIHZhbHVlICInICsgaW5wdXQubWluICsgJyIuJzsKKyAgICBp
ZiAoZGlkUGFzcykKKyAgICAgICAgdGVzdFBhc3NlZChyZXN1bHRUZXh0KTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RGYWlsZWQocmVzdWx0VGV4dCk7Cit9CisKKy8vIE5vIHVuZGVyZmxvdyBjYXNl
cworaW5wdXQudHlwZSA9ICd0ZXh0JzsgIC8vIE5vIHVuZGVyZmxvdyBmb3IgdHlwZT10ZXh0Lgor
Y2hlY2soJzk5JywgJzEwMCcsIGZhbHNlKTsKK2lucHV0LnR5cGUgPSAnbnVtYmVyJzsKK2NoZWNr
KCcxMDEnLCAnMTAwJywgZmFsc2UpOyAgLy8gVmVyeSBub3JtYWwgY2FzZS4KK2NoZWNrKCctOTkn
LCAnLTEwMCcsIGZhbHNlKTsKK2NoZWNrKCcxMDEnLCAnMUUrMicsIGZhbHNlKTsKK2NoZWNrKCcx
LjAxJywgJzEuMDAnLCBmYWxzZSk7CitjaGVjaygnYWJjJywgJzEwMCcsIGZhbHNlKTsgIC8vIElu
dmFsaWQgdmFsdWUuCitjaGVjaygnJywgJzEnLCBmYWxzZSk7ICAvLyBObyB2YWx1ZS4KK2NoZWNr
KCctMScsICcnLCBmYWxzZSk7ICAvLyBObyBtaW4uCitjaGVjaygnLTEnLCAneHh4JywgZmFsc2Up
OyAgLy8gSW52YWxpZCBtaW4uCisvLyBUaGUgZm9sbG93aW5nIGNhc2Ugc2hvdWxkIGJlIHJhbmdl
VW5kZXJmbG93PT10cnVlIGlkZWFsbHkuICBCdXQgdGhlICJkb3VibGUiIHR5cGUgZG9lc24ndCBo
YXZlIGVub3VnaCBwcmVjaXNpb24uCitjaGVjaygnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTgnLCAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTknLCBmYWxzZSk7CisKKy8vIFVuZGVyZmxvdyBjYXNlcworY2hlY2soJzk5JywgJzEw
MCcsIHRydWUpOworY2hlY2soJy0xMDEnLCAnLTEwMCcsIHRydWUpOworY2hlY2soJzk5JywgJzFF
KzInLCB0cnVlKTsKK2lucHV0Lm1heCA9ICcxMDAnOyAgLy8gdmFsdWUgPCBtaW4gJiYgdmFsdWUg
PiBtYXgKK2NoZWNrKCcxMDEnLCAnMjAwJywgdHJ1ZSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2Uu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU0NWJiMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3Rh
dGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuanMKQEAgLTAsMCArMSw0MSBAQAorZGVzY3JpcHRpb24o
J1RoaXMgdGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZVVuZGVyZmxvdyBmbGFnIHdpdGggdHlw
ZT1yYW5nZSBpbnB1dCBmaWVsZHMnKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnaW5wdXQnKTsKKworZnVuY3Rpb24gY2hlY2sodmFsdWUsIG1pbiwgdW5kZXJmbG93RXhw
ZWN0ZWQpCit7CisgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTsKKyAgICBpbnB1dC5taW4gPSBtaW47
CisgICAgdmFyIGFjdHVhbCA9IGlucHV0LnZhbGlkaXR5LnJhbmdlVW5kZXJmbG93OworICAgIHZh
ciBkaWRQYXNzID0gYWN0dWFsID09IHVuZGVyZmxvd0V4cGVjdGVkOworICAgIHZhciByZXN1bHRU
ZXh0ID0gJ1RoZSB2YWx1ZSAiJyArIGlucHV0LnZhbHVlICsgJyIgJyArIChhY3R1YWwgPyAndW5k
ZXJmbG93cycgOiAnZG9lc25cJ3QgdW5kZXJmbG93JykgKyAnIHRoZSBtaW5pbXVtIHZhbHVlICIn
ICsgaW5wdXQubWluICsgJyIuJzsKKyAgICBpZiAoZGlkUGFzcykKKyAgICAgICAgdGVzdFBhc3Nl
ZChyZXN1bHRUZXh0KTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQocmVzdWx0VGV4dCk7
Cit9CisKKy8vIE5vIHVuZGVyZmxvdyBjYXNlcworaW5wdXQudHlwZSA9ICd0ZXh0JzsgIC8vIE5v
IG92ZXJmbG93IGZvciB0eXBlPXRleHQuCitjaGVjaygnOTknLCAnMTAwJywgZmFsc2UpOworaW5w
dXQudHlwZSA9ICdyYW5nZSc7CitjaGVjaygnMTAxJywgJzEwMCcsIGZhbHNlKTsgIC8vIFZlcnkg
bm9ybWFsIGNhc2UuCitjaGVjaygnLTk5JywgJy0xMDAnLCBmYWxzZSk7CitjaGVjaygnMTAxJywg
JzFFKzInLCBmYWxzZSk7CitjaGVjaygnMS4wMScsICcxLjAwJywgZmFsc2UpOworY2hlY2soJ2Fi
YycsICcxMDAnLCBmYWxzZSk7ICAvLyBJbnZhbGlkIHZhbHVlLgorY2hlY2soJycsICcxJywgZmFs
c2UpOyAgLy8gTm8gdmFsdWUuCisvLyBUaGUgZm9sbG93aW5nIGNhc2Ugc2hvdWxkIGJlIHJhbmdl
VW5kZXJmbG93PT10cnVlIGlkZWFsbHkuICBCdXQgdGhlICJkb3VibGUiIHR5cGUgZG9lc24ndCBo
YXZlIGVub3VnaCBwcmVjaXNpb24uCitjaGVjaygnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTgnLCAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTknLCBmYWxzZSk7CitpbnB1dC5tYXggPSAnMCc7ICAvLyBJZiBtaW4gPiBtYXgsIG1h
eCBpcyByZXNldCB0byBtaW4gYW5kIG1pbiBpcyBub3QgY2hhbmdlZC4KK2NoZWNrKCcxMDEnLCAn
MTAwJywgZmFsc2UpOworaW5wdXQubWF4ID0gJyc7CisKKy8vIFVuZGVyZmxvdyBjYXNlcworY2hl
Y2soJzk5JywgJzEwMCcsIHRydWUpOworY2hlY2soJy0xMDEnLCAnLTEwMCcsIHRydWUpOworY2hl
Y2soJzk5JywgJzFFKzInLCB0cnVlKTsKK2NoZWNrKCctMScsICcnLCB0cnVlKTsgIC8vIE5vIG1p
bi4KK2NoZWNrKCctMScsICd4eHgnLCB0cnVlKTsgIC8vIEludmFsaWQgbWluLgorCit2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL2lucHV0LW1pbm1heC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
c2NyaXB0LXRlc3RzL2lucHV0LW1pbm1heC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wNjhjNWNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvaW5wdXQtbWlubWF4LmpzCkBAIC0wLDAgKzEsMzUgQEAKK2Rlc2NyaXB0
aW9uKCdUZXN0cyB0aGUgYmVoYXZpb3Igb2YgLm1pbiBhbmQgLm1heCBvZiBIVE1MSW5wdXRFbGVt
ZW50LicpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwor
CisvLyAubWluIGFuZCAubWF4IGp1c3QgcmVmbGVjdCB0aGUgY29ycmVzcG9uZGluZyBhdHRyaWJ1
dGVzLgoraW5wdXQudHlwZSA9ICd0ZXh0JzsKK3Nob3VsZEJlKCdpbnB1dC5taW4nLCAnIiInKTsK
K3Nob3VsZEJlKCdpbnB1dC5tYXgnLCAnIiInKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnbWluJywg
JzAnKTsKK2lucHV0LnNldEF0dHJpYnV0ZSgnbWF4JywgJzEwMCcpOworc2hvdWxkQmUoJ2lucHV0
Lm1pbicsICciMCInKTsKK3Nob3VsZEJlKCdpbnB1dC5tYXgnLCAnIjEwMCInKTsKK2lucHV0LnNl
dEF0dHJpYnV0ZSgnbWluJywgJ2FiYycpOworaW5wdXQuc2V0QXR0cmlidXRlKCdtYXgnLCAncXdl
cnR5Jyk7CitzaG91bGRCZSgnaW5wdXQubWluJywgJyJhYmMiJyk7CitzaG91bGRCZSgnaW5wdXQu
bWF4JywgJyJxd2VydHkiJyk7CisKK2lucHV0Lm1pbiA9ICdmb28nOworaW5wdXQubWF4ID0gJ2Jh
cic7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtaW4iKScsICciZm9vIicpOworc2hv
dWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgibWF4IiknLCAnImJhciInKTsKK2lucHV0Lm1pbiA9
ICcnOworaW5wdXQubWF4ID0gJyc7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtaW4i
KScsICciIicpOworc2hvdWxkQmUoJ2lucHV0LmdldEF0dHJpYnV0ZSgibWF4IiknLCAnIiInKTsK
KworLy8gVGhlIHJhbmdlIHR5cGUgaGFzIHRoZSBkZWZhdWx0IG1pbmltdW0gYW5kIHRoZSBkZWZh
dWx0IG1heGltdW0uCisvLyBCdXQgdGhleSBhcmVuJ3QgZXhwb3NlZCBieSAubWluIC5tYXggSURM
IGF0dHJpYnV0ZXMuCitpbnB1dC50eXBlID0gJ3JhbmdlJzsKK2lucHV0LnNldEF0dHJpYnV0ZSgn
bWluJywgJycpOworaW5wdXQuc2V0QXR0cmlidXRlKCdtYXgnLCAnJyk7CitzaG91bGRCZSgnaW5w
dXQubWluJywgJyIiJyk7CitzaG91bGRCZSgnaW5wdXQubWF4JywgJyIiJyk7CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmY2IzYzA5Li5jNjdhNjBjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisy
MDA5LTA5LTA5ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgbWluL21heCBh
dHRyaWJ1dGVzLCBWYWxpZGl0eVN0YXRlLnJhbmdlVW5kZXJmbG93IGFuZAorICAgICAgICBWYWxp
ZGl0eVN0YXRlLnJhbmdlT3ZlcmZsb3cgZm9yIDxpbnB1dCB0eXBlPW51bWJlcj4gYW5kIDxpbnB1
dCB0eXBlPXJhbmdlPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjkwNjkKKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJh
bmdlT3ZlcmZsb3ctbnVtYmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZm9ybXMvaW5wdXQtbWlubWF4Lmh0bWwKKworICAgICAgICAqIGh0
bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpyYW5nZVVuZGVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50
OjpyYW5nZU92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJh
bmdlTWluaW11bSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU1h
eGltdW0pOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTElucHV0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OnJhbmdlVW5kZXJmbG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OnJhbmdlT3ZlcmZsb3cpOgorICAgICAgICAq
IGh0bWwvVmFsaWRpdHlTdGF0ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyUmFuZ2U6OlNsaWRlclJhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNsaWRlclJhbmdlOjp2YWx1ZUZyb21FbGVtZW50KToKKwogMjAwOS0xMC0w
NCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
R3VzdG92YSBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGQzYjI0YTcu
LjM0ODc3YzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTIzMiw2ICsyMzIsNjIg
QEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojp0b29Mb25nKCkgY29uc3QKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK2Jvb2wgSFRNTElucHV0RWxlbWVudDo6cmFuZ2VVbmRlcmZsb3coKSBjb25zdAor
eworICAgIGlmIChpbnB1dFR5cGUoKSA9PSBOVU1CRVIpIHsKKyAgICAgICAgZG91YmxlIG1pbjsK
KyAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlOworICAgICAgICBpZiAoZm9ybVN0cmluZ1RvRG91
YmxlKGdldEF0dHJpYnV0ZShtaW5BdHRyKSwgJm1pbikgJiYgZm9ybVN0cmluZ1RvRG91YmxlKHZh
bHVlKCksICZkb3VibGVWYWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gZG91YmxlVmFsdWUgPCBt
aW47CisgICAgfSBlbHNlIGlmIChpbnB1dFR5cGUoKSA9PSBSQU5HRSkgeworICAgICAgICBkb3Vi
bGUgZG91YmxlVmFsdWU7CisgICAgICAgIGlmIChmb3JtU3RyaW5nVG9Eb3VibGUodmFsdWUoKSwg
JmRvdWJsZVZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBkb3VibGVWYWx1ZSA8IHJhbmdlTWlu
aW11bSgpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgSFRNTElucHV0RWxl
bWVudDo6cmFuZ2VPdmVyZmxvdygpIGNvbnN0Cit7CisgICAgaWYgKGlucHV0VHlwZSgpID09IE5V
TUJFUikgeworICAgICAgICBkb3VibGUgbWF4OworICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7
CisgICAgICAgIGlmIChmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIpLCAm
bWF4KSAmJiBmb3JtU3RyaW5nVG9Eb3VibGUodmFsdWUoKSwgJmRvdWJsZVZhbHVlKSkKKyAgICAg
ICAgICAgIHJldHVybiBkb3VibGVWYWx1ZSA+IG1heDsKKyAgICB9IGVsc2UgaWYgKGlucHV0VHlw
ZSgpID09IFJBTkdFKSB7CisgICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKKyAgICAgICAgaWYg
KGZvcm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAmZG91YmxlVmFsdWUpKQorICAgICAgICAgICAg
cmV0dXJuIGRvdWJsZVZhbHVlID4gcmFuZ2VNYXhpbXVtKCk7CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKK30KKworZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnJhbmdlTWluaW11bSgpIGNvbnN0
Cit7CisgICAgQVNTRVJUKGlucHV0VHlwZSgpID09IFJBTkdFKTsKKyAgICAvLyBUaGUgcmFuZ2Ug
dHlwZSdzICJkZWZhdWx0IG1pbmltdW0iIGlzIDAuCisgICAgZG91YmxlIG1pbiA9IDAuMDsKKyAg
ICBmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCAmbWluKTsKKyAgICBy
ZXR1cm4gbWluOworfQorCitkb3VibGUgSFRNTElucHV0RWxlbWVudDo6cmFuZ2VNYXhpbXVtKCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQoaW5wdXRUeXBlKCkgPT0gUkFOR0UpOworICAgIC8vIFRoZSBy
YW5nZSB0eXBlJ3MgImRlZmF1bHQgbWF4aW11bSIgaXMgMTAwLgorICAgIHN0YXRpYyBjb25zdCBk
b3VibGUgZGVmYXVsdE1heGltdW0gPSAxMDAuMDsKKyAgICBkb3VibGUgbWF4ID0gZGVmYXVsdE1h
eGltdW07CisgICAgZm9ybVN0cmluZ1RvRG91YmxlKGdldEF0dHJpYnV0ZShtYXhBdHRyKSwgJm1h
eCk7CisgICAgY29uc3QgZG91YmxlIG1pbiA9IHJhbmdlTWluaW11bSgpOworCisgICAgaWYgKG1h
eCA8IG1pbikgeworICAgICAgICAvLyBBIHJlbWVkeSBmb3IgdGhlIGluY29uc2lzdGVudCBtaW4v
bWF4IHZhbHVlcy4KKyAgICAgICAgLy8gU2V0cyB0aGUgbWF4bWltdW0gdG8gdGhlIGRlZmF1bHQg
KDEwMC4wKSBvciB0aGUgbWluaW11bSB2YWx1ZS4KKyAgICAgICAgbWF4ID0gbWluIDwgZGVmYXVs
dE1heGltdW0gPyBkZWZhdWx0TWF4aW11bSA6IG1pbjsKKyAgICB9CisgICAgcmV0dXJuIG1heDsK
K30KKwogc3RhdGljIGlubGluZSBDaGVja2VkUmFkaW9CdXR0b25zJiBjaGVja2VkUmFkaW9CdXR0
b25zKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQgKmVsZW1lbnQpCiB7CiAgICAgaWYgKEhUTUxGb3Jt
RWxlbWVudCogZm9ybSA9IGVsZW1lbnQtPmZvcm0oKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmlu
ZGV4IDBmOTQ3NGMuLjc5OWQ5MmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtOTQsNiAr
OTQsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIHRvb0xvbmcoKSBjb25zdDsKKyAgICAvLyBGb3IgVmFsaWRpdHlTdGF0ZQorICAgIGJvb2wg
cmFuZ2VVbmRlcmZsb3coKSBjb25zdDsKKyAgICBib29sIHJhbmdlT3ZlcmZsb3coKSBjb25zdDsK
KyAgICAvLyBSZXR1cm5zIHRoZSBtaW5pbXVtIHZhbHVlIGZvciB0eXBlPXJhbmdlLiAgRG9uJ3Qg
Y2FsbCB0aGlzIGZvciBvdGhlciB0eXBlcy4KKyAgICBkb3VibGUgcmFuZ2VNaW5pbXVtKCkgY29u
c3Q7CisgICAgLy8gUmV0dXJucyB0aGUgbWF4aW11bSB2YWx1ZSBmb3IgdHlwZT1yYW5nZS4gIERv
bid0IGNhbGwgdGhpcyBmb3Igb3RoZXIgdHlwZXMuCisgICAgLy8gVGhpcyBhbHdheXMgcmV0dXJu
cyBhIHZhbHVlIHdoaWNoIGlzIDw9IHJhbmdlTWluaW11bSgpLgorICAgIGRvdWJsZSByYW5nZU1h
eGltdW0oKSBjb25zdDsKIAogICAgIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlID09IFNVQk1JVCB8fCBtX3R5cGUgPT0gUkVTRVQgfHwgbV90eXBlID09IEJVVFRPTjsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
ID09IFJBRElPOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5p
ZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggN2NkZjQ4Ny4uYmMw
ZDM1YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBi
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNDIsOCArNDIsMTAgQEAgbW9k
dWxlIGh0bWwgewogI2lmIGRlZmluZWQoRU5BQkxFX0RBVEFMSVNUKSAmJiBFTkFCTEVfREFUQUxJ
U1QKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxFbGVtZW50ICAgICBsaXN0OwogI2Vu
ZGlmCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1heDsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICBtYXhMZW5ndGgKICAg
ICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWluOwogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIG11bHRpcGxlOwogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgICAgICAgcGF0dGVy
bjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcCBiL1dlYkNvcmUv
aHRtbC9WYWxpZGl0eVN0YXRlLmNwcAppbmRleCBkZjg5MzNkLi41YmY4MzgyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlk
aXR5U3RhdGUuY3BwCkBAIC02MCw2ICs2MCwyMCBAQCBib29sIFZhbGlkaXR5U3RhdGU6OnR5cGVN
aXNtYXRjaCgpCiAgICAgfQogfQogCitib29sIFZhbGlkaXR5U3RhdGU6OnJhbmdlVW5kZXJmbG93
KCkKK3sKKyAgICBpZiAoIWNvbnRyb2woKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+
KGNvbnRyb2woKSktPnJhbmdlVW5kZXJmbG93KCk7Cit9CisKK2Jvb2wgVmFsaWRpdHlTdGF0ZTo6
cmFuZ2VPdmVyZmxvdygpCit7CisgICAgaWYgKCFjb250cm9sKCktPmhhc1RhZ05hbWUoaW5wdXRU
YWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihjb250cm9sKCkpLT5yYW5nZU92ZXJmbG93KCk7Cit9CisKIGJvb2wgVmFs
aWRpdHlTdGF0ZTo6dmFsaWQoKQogewogICAgIGJvb2wgc29tZUVycm9yID0gdHlwZU1pc21hdGNo
KCkgfHwgc3RlcE1pc21hdGNoKCkgfHwgcmFuZ2VVbmRlcmZsb3coKSB8fCByYW5nZU92ZXJmbG93
KCkgfHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmggYi9XZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5oCmluZGV4IDlhZGM4ZmQuLjY3YWZhNTMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5
U3RhdGUuaApAQCAtNDQsOCArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJv
b2wgdHlwZU1pc21hdGNoKCk7CiAgICAgICAgIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgeyByZXR1
cm4gY29udHJvbCgpLT5wYXR0ZXJuTWlzbWF0Y2goKTsgfQogICAgICAgICBib29sIHRvb0xvbmco
KSB7IHJldHVybiBjb250cm9sKCktPnRvb0xvbmcoKTsgfQotICAgICAgICBib29sIHJhbmdlVW5k
ZXJmbG93KCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgYm9vbCByYW5nZU92ZXJmbG93KCkg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgYm9vbCByYW5nZVVuZGVyZmxvdygpOworICAgICAg
ICBib29sIHJhbmdlT3ZlcmZsb3coKTsKICAgICAgICAgYm9vbCBzdGVwTWlzbWF0Y2goKSB7IHJl
dHVybiBmYWxzZTsgfQogICAgICAgICBib29sIGN1c3RvbUVycm9yKCkgeyByZXR1cm4gIW1fY3Vz
dG9tRXJyb3JNZXNzYWdlLmlzRW1wdHkoKTsgfQogICAgICAgICBib29sIHZhbGlkKCk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCAyNDdhY2RhLi40NDJhZjM5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNsaWRlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIGNvbnN0IGludCBk
ZWZhdWx0VHJhY2tMZW5ndGggPSAxMjk7CiBzdHJ1Y3QgU2xpZGVyUmFuZ2UgewogICAgIGJvb2wg
aXNJbnRlZ3JhbDsKICAgICBkb3VibGUgbWluaW11bTsKLSAgICBkb3VibGUgbWF4aW11bTsKKyAg
ICBkb3VibGUgbWF4aW11bTsgIC8vIG1heGltdW0gbXVzdCBiZSA+PSBtaW5pbXVtLgogCiAgICAg
ZXhwbGljaXQgU2xpZGVyUmFuZ2UoSFRNTElucHV0RWxlbWVudCopOwogICAgIGRvdWJsZSBjbGFt
cFZhbHVlKGRvdWJsZSB2YWx1ZSk7CkBAIC04MCwxMiArODAsOCBAQCBTbGlkZXJSYW5nZTo6U2xp
ZGVyUmFuZ2UoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIAogICAgIGlzSW50ZWdyYWwgPSAh
ZXF1YWxJZ25vcmluZ0Nhc2UoZWxlbWVudC0+Z2V0QXR0cmlidXRlKHByZWNpc2lvbkF0dHIpLCAi
ZmxvYXQiKTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyBtYXhpbXVtIHN0cmluZ3MgdGhh
dCBjYW4ndCBiZSBwYXJzZWQgYXMgMCwgYnV0IHBlcmhhcHMgMTAwIHdvdWxkIGJlIG1vcmUgYXBw
cm9wcmlhdGUuCi0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBtYXhTdHJpbmcgPSBlbGVtZW50LT5n
ZXRBdHRyaWJ1dGUobWF4QXR0cik7Ci0gICAgbWF4aW11bSA9IG1heFN0cmluZy5pc051bGwoKSA/
IDEwMC4wIDogbWF4U3RyaW5nLnRvRG91YmxlKCk7Ci0KLSAgICAvLyBJZiB0aGUgbWF4aW11bSBp
cyBzbWFsbGVyLCB1c2UgaXQgYXMgdGhlIG1pbmltdW0uCi0gICAgbWluaW11bSA9IG1pbihlbGVt
ZW50LT5nZXRBdHRyaWJ1dGUobWluQXR0cikudG9Eb3VibGUoKSwgbWF4aW11bSk7CisgICAgbWF4
aW11bSA9IGVsZW1lbnQtPnJhbmdlTWF4aW11bSgpOworICAgIG1pbmltdW0gPSBlbGVtZW50LT5y
YW5nZU1pbmltdW0oKTsKIH0KIAogZG91YmxlIFNsaWRlclJhbmdlOjpjbGFtcFZhbHVlKGRvdWJs
ZSB2YWx1ZSkKQEAgLTk2LDEyICs5MiwxNCBAQCBkb3VibGUgU2xpZGVyUmFuZ2U6OmNsYW1wVmFs
dWUoZG91YmxlIHZhbHVlKQogCiBkb3VibGUgU2xpZGVyUmFuZ2U6OnZhbHVlRnJvbUVsZW1lbnQo
SFRNTElucHV0RWxlbWVudCogZWxlbWVudCwgYm9vbCogd2FzQ2xhbXBlZCkKIHsKLSAgICBTdHJp
bmcgdmFsdWVTdHJpbmcgPSBlbGVtZW50LT52YWx1ZSgpOwotICAgIGRvdWJsZSBvbGRWYWx1ZSA9
IHZhbHVlU3RyaW5nLmlzTnVsbCgpID8gKG1pbmltdW0gKyBtYXhpbXVtKSAvIDIgOiB2YWx1ZVN0
cmluZy50b0RvdWJsZSgpOworICAgIGRvdWJsZSBvbGRWYWx1ZTsKKyAgICBib29sIHBhcnNlU3Vj
Y2VzcyA9IEhUTUxJbnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdUb0RvdWJsZShlbGVtZW50LT52YWx1
ZSgpLCAmb2xkVmFsdWUpOworICAgIGlmICghcGFyc2VTdWNjZXNzKQorICAgICAgICBvbGRWYWx1
ZSA9IChtaW5pbXVtICsgbWF4aW11bSkgLyAyOwogICAgIGRvdWJsZSBuZXdWYWx1ZSA9IGNsYW1w
VmFsdWUob2xkVmFsdWUpOwogCiAgICAgaWYgKHdhc0NsYW1wZWQpCi0gICAgICAgICp3YXNDbGFt
cGVkID0gdmFsdWVTdHJpbmcuaXNOdWxsKCkgfHwgbmV3VmFsdWUgIT0gb2xkVmFsdWU7CisgICAg
ICAgICp3YXNDbGFtcGVkID0gIXBhcnNlU3VjY2VzcyB8fCBuZXdWYWx1ZSAhPSBvbGRWYWx1ZTsK
IAogICAgIHJldHVybiBuZXdWYWx1ZTsKIH0KLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40679</attachid>
            <date>2009-10-05 19:43:17 -0700</date>
            <delta_ts>2009-10-06 11:47:29 -0700</delta_ts>
            <desc>Proposed patch (rev.7)</desc>
            <filename>0001-min-max-support-for-type-number-range-7.patch</filename>
            <type>text/plain</type>
            <size>33118</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSAzZWFlNzU5OWQzNThhMmRlNTBiYTljODBhMWE4YjI3MWQzYTgxMjk0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBUaHUsIDEwIFNlcCAyMDA5IDExOjI5OjQxICswOTAwClN1YmplY3Q6IFtQQVRDSF0gbWluL21h
eCBzdXBwb3J0IGZvciB0eXBlPW51bWJlci9yYW5nZSA3CgotLS0KIExheW91dFRlc3RzL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNCArKysrKysrKwogLi4uVmFs
aWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQgfCAgIDIzICsrKysr
KysrCiAuLi4vZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5odG1sICB8
ICAgMTMgKysrKysKIC4uLi9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UtZXhwZWN0
ZWQudHh0IHwgICAyMyArKysrKysrKwogLi4uL2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVy
Zmxvdy1yYW5nZS5odG1sICAgfCAgIDEzICsrKysrCiAuLi5hbGlkaXR5U3RhdGUtcmFuZ2VVbmRl
cmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dCB8ICAgMjMgKysrKysrKysKIC4uLi9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci5odG1sIHwgICAxMyArKysrKwogLi4uVmFs
aWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQgfCAgIDIzICsrKysr
KysrCiAuLi4vZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5odG1sICB8
ICAgMTMgKysrKysKIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVk
LnR4dCAgIHwgICAyMSArKysrKysrCiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1h
eC5odG1sICAgICAgICAgICB8ICAgMTMgKysrKysKIC4uLi9WYWxpZGl0eVN0YXRlLXJhbmdlT3Zl
cmZsb3ctbnVtYmVyLmpzICAgICAgICAgIHwgICA0MCArKysrKysrKysrKysrKwogLi4uL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5qcyAgICAgICAgICAgfCAgIDQzICsrKysrKysr
KysrKysrKwogLi4uL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzICAgICAg
ICAgfCAgIDQwICsrKysrKysrKysrKysrCiAuLi4vVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxv
dy1yYW5nZS5qcyAgICAgICAgICB8ICAgNDEgKysrKysrKysrKysrKysKIC4uLi9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9pbnB1dC1taW5tYXguanMgICAgICAgIHwgICAzNSArKysrKysrKysrKysK
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAz
MiArKysrKysrKysrKwogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwICAgICAgICAg
ICAgICAgICAgfCAgIDU4ICsrKysrKysrKysrKysrKysrKystCiBXZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oICAgICAgICAgICAgICAgICAgICB8ICAgIDggKysrCiBXZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5pZGwgICAgICAgICAgICAgICAgICB8ICAgIDYgKysKIFdlYkNvcmUv
aHRtbC9WYWxpZGl0eVN0YXRlLmNwcCAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysrKwog
V2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgICA0
ICstCiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwICAgICAgICAgICAgICAgICB8
ICAgMTggKysrLS0tLQogMjMgZmlsZXMgY2hhbmdlZCwgNTI4IGluc2VydGlvbnMoKyksIDEzIGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxv
dy1udW1iZXIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJm
bG93LXJhbmdlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVu
ZGVyZmxvdy1udW1iZXIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS1leHBlY3RlZC50eHQKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VVbmRlcmZsb3ctcmFuZ2UuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdl
T3ZlcmZsb3ctbnVtYmVyLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpzCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFs
aWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5k
ZXJmbG93LXJhbmdlLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvaW5wdXQtbWlubWF4LmpzCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM2NmM4MGIuLjY2MWYxNDIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAwOS0wOS0wOSAgS2VudCBUYW11cmEgIDx0a2VudEBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IG1pbi9tYXggYXR0cmlidXRlcywgVmFsaWRpdHlTdGF0ZS5yYW5nZVVu
ZGVyZmxvdyBhbmQKKyAgICAgICAgVmFsaWRpdHlTdGF0ZS5yYW5nZU92ZXJmbG93IGZvciA8aW5w
dXQgdHlwZT1udW1iZXI+IGFuZCA8aW5wdXQgdHlwZT1yYW5nZT4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDY5CisKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1udW1i
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdl
T3ZlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1z
L1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5k
ZXJmbG93LW51bWJlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5
U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LW1pbm1heC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ct
bnVtYmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxp
ZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRl
LXJhbmdlVW5kZXJmbG93LXJhbmdlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy9pbnB1dC1taW5tYXguanM6IEFkZGVkLgorCiAyMDA5LTEwLTA1ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFu
Z2VPdmVyZmxvdy1udW1iZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTI4NDM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitUaGlzIHRlc3QgYWltcyB0byBjaGVjayBmb3Ig
cmFuZ2VPdmVyZmxvdyBmbGFnIHdpdGggdHlwZT1udW1iZXIgaW5wdXQgZmllbGRzCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IG92
ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIjk5IiBkb2Vz
bid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi0x
MDEiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0gdmFsdWUgIi0xMDAiLgorUEFTUyBUaGUg
dmFsdWUgIjk5IiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxRSsyIi4KK1BB
U1MgVGhlIHZhbHVlICIwLjk5IiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIx
LjAwIi4KK1BBU1MgVGhlIHZhbHVlICJhYmMiIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIG1heGltdW0g
dmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhp
bXVtIHZhbHVlICItMSIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRo
ZSBtYXhpbXVtIHZhbHVlICIiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCBvdmVyZmxv
dyB0aGUgbWF4aW11bSB2YWx1ZSAieHh4Ii4KK1BBU1MgVGhlIHZhbHVlICIwLjk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4
aW11bSB2YWx1ZSAiMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTgi
LgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVlICIxMDAi
LgorUEFTUyBUaGUgdmFsdWUgIi05OSIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIHZhbHVlICItMTAw
Ii4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUgbWF4aW11bSB2YWx1ZSAiMUUr
MiIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1heGltdW0gdmFsdWUgIjEw
MCIuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlT3Zl
cmZsb3ctbnVtYmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
cmFuZ2VPdmVyZmxvdy1udW1iZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi41OGU1ZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXJhbmdlT3ZlcmZsb3ctbnVtYmVyLmh0bWwKQEAgLTAsMCArMSwxMyBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTA5YTAw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXJhbmdlT3ZlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1RoaXMg
dGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZU92ZXJmbG93IGZsYWcgd2l0aCB0eXBlPXJhbmdl
IGlucHV0IGZpZWxkcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBUaGUg
dmFsdWUgIjEwMSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAwIi4KK1BB
U1MgVGhlIHZhbHVlICI5OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiMTAw
Ii4KK1BBU1MgVGhlIHZhbHVlICItMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZh
bHVlICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICI5OSIgZG9lc24ndCBvdmVyZmxvdyB0aGUgbWF4
aW11bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiMC45OSIgZG9lc24ndCBvdmVyZmxv
dyB0aGUgbWF4aW11bSB2YWx1ZSAiMS4wMCIuCitQQVNTIFRoZSB2YWx1ZSAiYWJjIiBkb2Vzbid0
IG92ZXJmbG93IHRoZSBtYXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIiIgZG9l
c24ndCBvdmVyZmxvdyB0aGUgbWF4aW11bSB2YWx1ZSAiLTEiLgorUEFTUyBUaGUgdmFsdWUgIjAu
OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5IiBkb2Vzbid0IG92ZXJm
bG93IHRoZSBtYXhpbXVtIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IG92ZXJmbG93IHRoZSBt
YXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIjEwMSIgb3ZlcmZsb3dzIHRoZSBt
YXhpbXVtIHZhbHVlICIxMDAiLgorUEFTUyBUaGUgdmFsdWUgIi05OSIgb3ZlcmZsb3dzIHRoZSBt
YXhpbXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIG92ZXJmbG93cyB0aGUg
bWF4aW11bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhl
IG1heGltdW0gdmFsdWUgIiIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBvdmVyZmxvd3MgdGhlIG1h
eGltdW0gdmFsdWUgInh4eCIuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0
eVN0YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMDM4NWIyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmh0bWwKQEAgLTAs
MCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VV
bmRlcmZsb3ctbnVtYmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi44MDc5OTdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LW51bWJlci1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyMyBAQAorVGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJhbmdlVW5kZXJmbG93IGZs
YWcgd2l0aCB0eXBlPW51bWJlciBpbnB1dCBmaWVsZHMKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgVGhlIHZhbHVlICI5OSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmlt
dW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IHVuZGVyZmxvdyB0
aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICItOTkiIGRvZXNuJ3QgdW5k
ZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICIxMDEiIGRv
ZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxRSsyIi4KK1BBU1MgVGhlIHZhbHVl
ICIxLjAxIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMS4wMCIuCitQQVNT
IFRoZSB2YWx1ZSAiYWJjIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMTAw
Ii4KK1BBU1MgVGhlIHZhbHVlICIiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVl
ICIxIi4KK1BBU1MgVGhlIHZhbHVlICItMSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0g
dmFsdWUgIiIuCitQQVNTIFRoZSB2YWx1ZSAiLTEiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5p
bXVtIHZhbHVlICJ4eHgiLgorUEFTUyBUaGUgdmFsdWUgIjAuOTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTk4IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1
ZSAiMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkiLgorUEFTUyBU
aGUgdmFsdWUgIjk5IiB1bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgorUEFTUyBU
aGUgdmFsdWUgIi0xMDEiIHVuZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIi0xMDAiLgorUEFT
UyBUaGUgdmFsdWUgIjk5IiB1bmRlcmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICIxRSsyIi4KK1BB
U1MgVGhlIHZhbHVlICIxMDEiIHVuZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIjIwMCIuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93
LW51bWJlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdl
VW5kZXJmbG93LW51bWJlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjVlNzUyN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjZjYTg1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXJhbmdlVW5kZXJmbG93LXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitUaGlz
IHRlc3QgYWltcyB0byBjaGVjayBmb3IgcmFuZ2VVbmRlcmZsb3cgZmxhZyB3aXRoIHR5cGU9cmFu
Z2UgaW5wdXQgZmllbGRzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFRo
ZSB2YWx1ZSAiOTkiIGRvZXNuJ3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIxMDAiLgor
UEFTUyBUaGUgdmFsdWUgIjEwMSIgZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUg
IjEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiLTk5IiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11
bSB2YWx1ZSAiLTEwMCIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IHVuZGVyZmxvdyB0
aGUgbWluaW11bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiMS4wMSIgZG9lc24ndCB1
bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEuMDAiLgorUEFTUyBUaGUgdmFsdWUgImFiYyIg
ZG9lc24ndCB1bmRlcmZsb3cgdGhlIG1pbmltdW0gdmFsdWUgIjEwMCIuCitQQVNTIFRoZSB2YWx1
ZSAiIiBkb2Vzbid0IHVuZGVyZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMSIuCitQQVNTIFRoZSB2
YWx1ZSAiMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTgiIGRvZXNu
J3QgdW5kZXJmbG93IHRoZSBtaW5pbXVtIHZhbHVlICIwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OSIuCitQQVNTIFRoZSB2YWx1ZSAiMTAxIiBkb2Vzbid0IHVuZGVy
ZmxvdyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICI5OSIgdW5kZXJm
bG93cyB0aGUgbWluaW11bSB2YWx1ZSAiMTAwIi4KK1BBU1MgVGhlIHZhbHVlICItMTAxIiB1bmRl
cmZsb3dzIHRoZSBtaW5pbXVtIHZhbHVlICItMTAwIi4KK1BBU1MgVGhlIHZhbHVlICI5OSIgdW5k
ZXJmbG93cyB0aGUgbWluaW11bSB2YWx1ZSAiMUUrMiIuCitQQVNTIFRoZSB2YWx1ZSAiLTEiIHVu
ZGVyZmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgIiIuCitQQVNTIFRoZSB2YWx1ZSAiLTEiIHVuZGVy
Zmxvd3MgdGhlIG1pbmltdW0gdmFsdWUgInh4eCIuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctcmFuZ2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmZiZWJmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJh
bmdlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5n
ZVVuZGVyZmxvdy1yYW5nZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbWlubWF4LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWRlMDBkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXgtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjEgQEAKK1Rlc3RzIHRoZSBiZWhhdmlvciBvZiAubWluIGFuZCAubWF4IG9mIEhU
TUxJbnB1dEVsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlu
cHV0Lm1pbiBpcyAiIgorUEFTUyBpbnB1dC5tYXggaXMgIiIKK1BBU1MgaW5wdXQubWluIGlzICIw
IgorUEFTUyBpbnB1dC5tYXggaXMgIjEwMCIKK1BBU1MgaW5wdXQubWluIGlzICJhYmMiCitQQVNT
IGlucHV0Lm1heCBpcyAicXdlcnR5IgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoIm1pbiIpIGlz
ICJmb28iCitQQVNTIGlucHV0LmdldEF0dHJpYnV0ZSgibWF4IikgaXMgImJhciIKK1BBU1MgaW5w
dXQuZ2V0QXR0cmlidXRlKCJtaW4iKSBpcyAiIgorUEFTUyBpbnB1dC5nZXRBdHRyaWJ1dGUoIm1h
eCIpIGlzICIiCitQQVNTIGlucHV0Lm1pbiBpcyAiIgorUEFTUyBpbnB1dC5tYXggaXMgIiIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW1pbm1heC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC1taW5tYXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4yMmY4ZGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1taW5tYXguaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9pbnB1
dC1taW5tYXguanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0YXRlLXJh
bmdlT3ZlcmZsb3ctbnVtYmVyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mNDU5ZjJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51
bWJlci5qcwpAQCAtMCwwICsxLDQwIEBACitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IGFpbXMgdG8g
Y2hlY2sgZm9yIHJhbmdlT3ZlcmZsb3cgZmxhZyB3aXRoIHR5cGU9bnVtYmVyIGlucHV0IGZpZWxk
cycpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworCitm
dW5jdGlvbiBjaGVjayh2YWx1ZSwgbWF4LCBvdmVyZmxvd0V4cGVjdGVkKQoreworICAgIGlucHV0
LnZhbHVlID0gdmFsdWU7CisgICAgaW5wdXQubWF4ID0gbWF4OworICAgIHZhciBhY3R1YWwgPSBp
bnB1dC52YWxpZGl0eS5yYW5nZU92ZXJmbG93OworICAgIHZhciBkaWRQYXNzID0gYWN0dWFsID09
IG92ZXJmbG93RXhwZWN0ZWQ7CisgICAgdmFyIHJlc3VsdFRleHQgPSAnVGhlIHZhbHVlICInICsg
aW5wdXQudmFsdWUgKyAnIiAnICsgKGFjdHVhbCA/ICdvdmVyZmxvd3MnIDogJ2RvZXNuXCd0IG92
ZXJmbG93JykgKyAnIHRoZSBtYXhpbXVtIHZhbHVlICInICsgaW5wdXQubWF4ICsgJyIuJzsKKyAg
ICBpZiAoZGlkUGFzcykKKyAgICAgICAgdGVzdFBhc3NlZChyZXN1bHRUZXh0KTsKKyAgICBlbHNl
CisgICAgICAgIHRlc3RGYWlsZWQocmVzdWx0VGV4dCk7Cit9CisKKy8vIE5vIG92ZXJmbG93IGNh
c2VzCitpbnB1dC50eXBlID0gJ3RleHQnOyAgLy8gTm8gb3ZlcmZsb3cgZm9yIHR5cGU9dGV4dC4K
K2NoZWNrKCcxMDEnLCAnMTAwJywgZmFsc2UpOworaW5wdXQudHlwZSA9ICdudW1iZXInOworY2hl
Y2soJzk5JywgJzEwMCcsIGZhbHNlKTsgIC8vIFZlcnkgbm9ybWFsIGNhc2UuCitjaGVjaygnLTEw
MScsICctMTAwJywgZmFsc2UpOworY2hlY2soJzk5JywgJzFFKzInLCBmYWxzZSk7CitjaGVjaygn
MC45OScsICcxLjAwJywgZmFsc2UpOworY2hlY2soJ2FiYycsICcxMDAnLCBmYWxzZSk7ICAvLyBJ
bnZhbGlkIHZhbHVlLgorY2hlY2soJycsICctMScsIGZhbHNlKTsgIC8vIE5vIHZhbHVlLgorY2hl
Y2soJzEwMScsICcnLCBmYWxzZSk7ICAvLyBObyBtYXguCitjaGVjaygnMTAxJywgJ3h4eCcsIGZh
bHNlKTsgIC8vIEludmFsaWQgbWF4LgorLy8gVGhlIGZvbGxvd2luZyBjYXNlIHNob3VsZCBiZSBy
YW5nZU92ZXJmbG93PT10cnVlIGlkZWFsbHkuICBCdXQgdGhlICJkb3VibGUiIHR5cGUgZG9lc24n
dCBoYXZlIGVub3VnaCBwcmVjaXNpb24uCitjaGVjaygnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OTk5OTknLCAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTgnLCBmYWxzZSk7CisKKy8vIE92ZXJmbG93IGNhc2VzCitjaGVjaygnMTAxJywg
JzEwMCcsIHRydWUpOworY2hlY2soJy05OScsICctMTAwJywgdHJ1ZSk7CitjaGVjaygnMTAxJywg
JzFFKzInLCB0cnVlKTsKK2lucHV0Lm1pbiA9ICcyMDAnOyAgLy8gdmFsdWUgPCBtaW4gJiYgdmFs
dWUgPiBtYXgKK2NoZWNrKCcxMDEnLCAnMTAwJywgdHJ1ZSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQt
dGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdlLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LXJhbmdl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YjAxYTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9WYWxpZGl0eVN0
YXRlLXJhbmdlT3ZlcmZsb3ctcmFuZ2UuanMKQEAgLTAsMCArMSw0MyBAQAorZGVzY3JpcHRpb24o
J1RoaXMgdGVzdCBhaW1zIHRvIGNoZWNrIGZvciByYW5nZU92ZXJmbG93IGZsYWcgd2l0aCB0eXBl
PXJhbmdlIGlucHV0IGZpZWxkcycpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdpbnB1dCcpOworCitmdW5jdGlvbiBjaGVjayh2YWx1ZSwgbWF4LCBvdmVyZmxvd0V4cGVj
dGVkKQoreworICAgIGlucHV0LnZhbHVlID0gdmFsdWU7CisgICAgaW5wdXQubWF4ID0gbWF4Owor
ICAgIHZhciBhY3R1YWwgPSBpbnB1dC52YWxpZGl0eS5yYW5nZU92ZXJmbG93OworICAgIHZhciBk
aWRQYXNzID0gYWN0dWFsID09IG92ZXJmbG93RXhwZWN0ZWQ7CisgICAgdmFyIHJlc3VsdFRleHQg
PSAnVGhlIHZhbHVlICInICsgaW5wdXQudmFsdWUgKyAnIiAnICsgKGFjdHVhbCA/ICdvdmVyZmxv
d3MnIDogJ2RvZXNuXCd0IG92ZXJmbG93JykgKyAnIHRoZSBtYXhpbXVtIHZhbHVlICInICsgaW5w
dXQubWF4ICsgJyIuJzsKKyAgICBpZiAoZGlkUGFzcykKKyAgICAgICAgdGVzdFBhc3NlZChyZXN1
bHRUZXh0KTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQocmVzdWx0VGV4dCk7Cit9CisK
Ky8vIE5vIG92ZXJmbG93IGNhc2VzCitpbnB1dC50eXBlID0gJ3RleHQnOyAgLy8gTm8gb3ZlcmZs
b3cgZm9yIHR5cGU9dGV4dC4KK2NoZWNrKCcxMDEnLCAnMTAwJywgZmFsc2UpOworaW5wdXQudHlw
ZSA9ICdyYW5nZSc7CitjaGVjaygnOTknLCAnMTAwJywgZmFsc2UpOyAgLy8gVmVyeSBub3JtYWwg
Y2FzZS4KK2NoZWNrKCctMTAxJywgJy0xMDAnLCBmYWxzZSk7CitjaGVjaygnOTknLCAnMUUrMics
IGZhbHNlKTsKK2NoZWNrKCcwLjk5JywgJzEuMDAnLCBmYWxzZSk7CitjaGVjaygnYWJjJywgJzEw
MCcsIGZhbHNlKTsgIC8vIEludmFsaWQgdmFsdWUuCitjaGVjaygnJywgJy0xJywgZmFsc2UpOyAg
Ly8gTm8gdmFsdWUuCisvLyBUaGUgZm9sbG93aW5nIGNhc2Ugc2hvdWxkIGJlIHJhbmdlT3ZlcmZs
b3c9PXRydWUgaWRlYWxseS4gIEJ1dCB0aGUgImRvdWJsZSIgdHlwZSBkb2Vzbid0IGhhdmUgZW5v
dWdoIHByZWNpc2lvbi4KK2NoZWNrKCcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OScsICcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OCcsIGZhbHNlKTsKK2lucHV0Lm1pbiA9ICcyMDAnOyAgLy8gSWYgbWluID4gbWF4LCBtYXggaXMg
cmVzZXQgdG8gbWluLgorY2hlY2soJzEwMScsICcxMDAnLCBmYWxzZSk7CitpbnB1dC5taW4gPSAn
JzsKKworLy8gT3ZlcmZsb3cgY2FzZXMKK2NoZWNrKCcxMDEnLCAnMTAwJywgdHJ1ZSk7CitpbnB1
dC5taW4gPSAnLTIwMCc7CitjaGVjaygnLTk5JywgJy0xMDAnLCB0cnVlKTsKK2lucHV0Lm1pbiA9
ICcnOworY2hlY2soJzEwMScsICcxRSsyJywgdHJ1ZSk7CitjaGVjaygnMTAxJywgJycsIHRydWUp
OyAgLy8gTm8gbWF4LgorY2hlY2soJzEwMScsICd4eHgnLCB0cnVlKTsgIC8vIEludmFsaWQgbWF4
LgorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ct
bnVtYmVyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlT
dGF0ZS1yYW5nZVVuZGVyZmxvdy1udW1iZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZjRlZGZlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2NyaXB0LXRlc3RzL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRlcmZsb3ctbnVtYmVyLmpzCkBA
IC0wLDAgKzEsNDAgQEAKK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3QgYWltcyB0byBjaGVjayBmb3Ig
cmFuZ2VVbmRlcmZsb3cgZmxhZyB3aXRoIHR5cGU9bnVtYmVyIGlucHV0IGZpZWxkcycpOworCit2
YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOworCitmdW5jdGlvbiBj
aGVjayh2YWx1ZSwgbWluLCB1bmRlcmZsb3dFeHBlY3RlZCkKK3sKKyAgICBpbnB1dC52YWx1ZSA9
IHZhbHVlOworICAgIGlucHV0Lm1pbiA9IG1pbjsKKyAgICB2YXIgYWN0dWFsID0gaW5wdXQudmFs
aWRpdHkucmFuZ2VVbmRlcmZsb3c7CisgICAgdmFyIGRpZFBhc3MgPSBhY3R1YWwgPT0gdW5kZXJm
bG93RXhwZWN0ZWQ7CisgICAgdmFyIHJlc3VsdFRleHQgPSAnVGhlIHZhbHVlICInICsgaW5wdXQu
dmFsdWUgKyAnIiAnICsgKGFjdHVhbCA/ICd1bmRlcmZsb3dzJyA6ICdkb2VzblwndCB1bmRlcmZs
b3cnKSArICcgdGhlIG1pbmltdW0gdmFsdWUgIicgKyBpbnB1dC5taW4gKyAnIi4nOworICAgIGlm
IChkaWRQYXNzKQorICAgICAgICB0ZXN0UGFzc2VkKHJlc3VsdFRleHQpOworICAgIGVsc2UKKyAg
ICAgICAgdGVzdEZhaWxlZChyZXN1bHRUZXh0KTsKK30KKworLy8gTm8gdW5kZXJmbG93IGNhc2Vz
CitpbnB1dC50eXBlID0gJ3RleHQnOyAgLy8gTm8gdW5kZXJmbG93IGZvciB0eXBlPXRleHQuCitj
aGVjaygnOTknLCAnMTAwJywgZmFsc2UpOworaW5wdXQudHlwZSA9ICdudW1iZXInOworY2hlY2so
JzEwMScsICcxMDAnLCBmYWxzZSk7ICAvLyBWZXJ5IG5vcm1hbCBjYXNlLgorY2hlY2soJy05OScs
ICctMTAwJywgZmFsc2UpOworY2hlY2soJzEwMScsICcxRSsyJywgZmFsc2UpOworY2hlY2soJzEu
MDEnLCAnMS4wMCcsIGZhbHNlKTsKK2NoZWNrKCdhYmMnLCAnMTAwJywgZmFsc2UpOyAgLy8gSW52
YWxpZCB2YWx1ZS4KK2NoZWNrKCcnLCAnMScsIGZhbHNlKTsgIC8vIE5vIHZhbHVlLgorY2hlY2so
Jy0xJywgJycsIGZhbHNlKTsgIC8vIE5vIG1pbi4KK2NoZWNrKCctMScsICd4eHgnLCBmYWxzZSk7
ICAvLyBJbnZhbGlkIG1pbi4KKy8vIFRoZSBmb2xsb3dpbmcgY2FzZSBzaG91bGQgYmUgcmFuZ2VV
bmRlcmZsb3c9PXRydWUgaWRlYWxseS4gIEJ1dCB0aGUgImRvdWJsZSIgdHlwZSBkb2Vzbid0IGhh
dmUgZW5vdWdoIHByZWNpc2lvbi4KK2NoZWNrKCcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OCcsICcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OScsIGZhbHNlKTsKKworLy8gVW5kZXJmbG93IGNhc2VzCitjaGVjaygnOTknLCAnMTAw
JywgdHJ1ZSk7CitjaGVjaygnLTEwMScsICctMTAwJywgdHJ1ZSk7CitjaGVjaygnOTknLCAnMUUr
MicsIHRydWUpOworaW5wdXQubWF4ID0gJzEwMCc7ICAvLyB2YWx1ZSA8IG1pbiAmJiB2YWx1ZSA+
IG1heAorY2hlY2soJzEwMScsICcyMDAnLCB0cnVlKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0
cy9WYWxpZGl0eVN0YXRlLXJhbmdlVW5kZXJmbG93LXJhbmdlLmpzIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTQ1YmIyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvVmFsaWRpdHlTdGF0
ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5qcwpAQCAtMCwwICsxLDQxIEBACitkZXNjcmlwdGlvbign
VGhpcyB0ZXN0IGFpbXMgdG8gY2hlY2sgZm9yIHJhbmdlVW5kZXJmbG93IGZsYWcgd2l0aCB0eXBl
PXJhbmdlIGlucHV0IGZpZWxkcycpOworCit2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdpbnB1dCcpOworCitmdW5jdGlvbiBjaGVjayh2YWx1ZSwgbWluLCB1bmRlcmZsb3dFeHBl
Y3RlZCkKK3sKKyAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOworICAgIGlucHV0Lm1pbiA9IG1pbjsK
KyAgICB2YXIgYWN0dWFsID0gaW5wdXQudmFsaWRpdHkucmFuZ2VVbmRlcmZsb3c7CisgICAgdmFy
IGRpZFBhc3MgPSBhY3R1YWwgPT0gdW5kZXJmbG93RXhwZWN0ZWQ7CisgICAgdmFyIHJlc3VsdFRl
eHQgPSAnVGhlIHZhbHVlICInICsgaW5wdXQudmFsdWUgKyAnIiAnICsgKGFjdHVhbCA/ICd1bmRl
cmZsb3dzJyA6ICdkb2VzblwndCB1bmRlcmZsb3cnKSArICcgdGhlIG1pbmltdW0gdmFsdWUgIicg
KyBpbnB1dC5taW4gKyAnIi4nOworICAgIGlmIChkaWRQYXNzKQorICAgICAgICB0ZXN0UGFzc2Vk
KHJlc3VsdFRleHQpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZChyZXN1bHRUZXh0KTsK
K30KKworLy8gTm8gdW5kZXJmbG93IGNhc2VzCitpbnB1dC50eXBlID0gJ3RleHQnOyAgLy8gTm8g
b3ZlcmZsb3cgZm9yIHR5cGU9dGV4dC4KK2NoZWNrKCc5OScsICcxMDAnLCBmYWxzZSk7CitpbnB1
dC50eXBlID0gJ3JhbmdlJzsKK2NoZWNrKCcxMDEnLCAnMTAwJywgZmFsc2UpOyAgLy8gVmVyeSBu
b3JtYWwgY2FzZS4KK2NoZWNrKCctOTknLCAnLTEwMCcsIGZhbHNlKTsKK2NoZWNrKCcxMDEnLCAn
MUUrMicsIGZhbHNlKTsKK2NoZWNrKCcxLjAxJywgJzEuMDAnLCBmYWxzZSk7CitjaGVjaygnYWJj
JywgJzEwMCcsIGZhbHNlKTsgIC8vIEludmFsaWQgdmFsdWUuCitjaGVjaygnJywgJzEnLCBmYWxz
ZSk7ICAvLyBObyB2YWx1ZS4KKy8vIFRoZSBmb2xsb3dpbmcgY2FzZSBzaG91bGQgYmUgcmFuZ2VV
bmRlcmZsb3c9PXRydWUgaWRlYWxseS4gIEJ1dCB0aGUgImRvdWJsZSIgdHlwZSBkb2Vzbid0IGhh
dmUgZW5vdWdoIHByZWNpc2lvbi4KK2NoZWNrKCcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OTk5OTk5OTk5OCcsICcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5
OTk5OTk5OScsIGZhbHNlKTsKK2lucHV0Lm1heCA9ICcwJzsgIC8vIElmIG1pbiA+IG1heCwgbWF4
IGlzIHJlc2V0IHRvIG1pbiBhbmQgbWluIGlzIG5vdCBjaGFuZ2VkLgorY2hlY2soJzEwMScsICcx
MDAnLCBmYWxzZSk7CitpbnB1dC5tYXggPSAnJzsKKworLy8gVW5kZXJmbG93IGNhc2VzCitjaGVj
aygnOTknLCAnMTAwJywgdHJ1ZSk7CitjaGVjaygnLTEwMScsICctMTAwJywgdHJ1ZSk7CitjaGVj
aygnOTknLCAnMUUrMicsIHRydWUpOworY2hlY2soJy0xJywgJycsIHRydWUpOyAgLy8gTm8gbWlu
LgorY2hlY2soJy0xJywgJ3h4eCcsIHRydWUpOyAgLy8gSW52YWxpZCBtaW4uCisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvaW5wdXQtbWlubWF4LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9z
Y3JpcHQtdGVzdHMvaW5wdXQtbWlubWF4LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjA2OGM1Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9pbnB1dC1taW5tYXguanMKQEAgLTAsMCArMSwzNSBAQAorZGVzY3JpcHRp
b24oJ1Rlc3RzIHRoZSBiZWhhdmlvciBvZiAubWluIGFuZCAubWF4IG9mIEhUTUxJbnB1dEVsZW1l
bnQuJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CisK
Ky8vIC5taW4gYW5kIC5tYXgganVzdCByZWZsZWN0IHRoZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0
ZXMuCitpbnB1dC50eXBlID0gJ3RleHQnOworc2hvdWxkQmUoJ2lucHV0Lm1pbicsICciIicpOwor
c2hvdWxkQmUoJ2lucHV0Lm1heCcsICciIicpOworaW5wdXQuc2V0QXR0cmlidXRlKCdtaW4nLCAn
MCcpOworaW5wdXQuc2V0QXR0cmlidXRlKCdtYXgnLCAnMTAwJyk7CitzaG91bGRCZSgnaW5wdXQu
bWluJywgJyIwIicpOworc2hvdWxkQmUoJ2lucHV0Lm1heCcsICciMTAwIicpOworaW5wdXQuc2V0
QXR0cmlidXRlKCdtaW4nLCAnYWJjJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ21heCcsICdxd2Vy
dHknKTsKK3Nob3VsZEJlKCdpbnB1dC5taW4nLCAnImFiYyInKTsKK3Nob3VsZEJlKCdpbnB1dC5t
YXgnLCAnInF3ZXJ0eSInKTsKKworaW5wdXQubWluID0gJ2Zvbyc7CitpbnB1dC5tYXggPSAnYmFy
JzsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoIm1pbiIpJywgJyJmb28iJyk7CitzaG91
bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtYXgiKScsICciYmFyIicpOworaW5wdXQubWluID0g
Jyc7CitpbnB1dC5tYXggPSAnJzsKK3Nob3VsZEJlKCdpbnB1dC5nZXRBdHRyaWJ1dGUoIm1pbiIp
JywgJyIiJyk7CitzaG91bGRCZSgnaW5wdXQuZ2V0QXR0cmlidXRlKCJtYXgiKScsICciIicpOwor
CisvLyBUaGUgcmFuZ2UgdHlwZSBoYXMgdGhlIGRlZmF1bHQgbWluaW11bSBhbmQgdGhlIGRlZmF1
bHQgbWF4aW11bS4KKy8vIEJ1dCB0aGV5IGFyZW4ndCBleHBvc2VkIGJ5IC5taW4gLm1heCBJREwg
YXR0cmlidXRlcy4KK2lucHV0LnR5cGUgPSAncmFuZ2UnOworaW5wdXQuc2V0QXR0cmlidXRlKCdt
aW4nLCAnJyk7CitpbnB1dC5zZXRBdHRyaWJ1dGUoJ21heCcsICcnKTsKK3Nob3VsZEJlKCdpbnB1
dC5taW4nLCAnIiInKTsKK3Nob3VsZEJlKCdpbnB1dC5tYXgnLCAnIiInKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk2NmFlZDIuLmMwMTUwZTcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIw
MDktMDktMDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtaW4vbWF4IGF0
dHJpYnV0ZXMsIFZhbGlkaXR5U3RhdGUucmFuZ2VVbmRlcmZsb3cgYW5kCisgICAgICAgIFZhbGlk
aXR5U3RhdGUucmFuZ2VPdmVyZmxvdyBmb3IgPGlucHV0IHR5cGU9bnVtYmVyPiBhbmQgPGlucHV0
IHR5cGU9cmFuZ2U+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTA2OQorICAgICAgICAKKyAgICAgICAgSFRNTElucHV0RWxlbWVudDo6bWF4IGFuZCBt
aW4gYXJlIG5vdCBkZWZpbmVkIGZvciBDT00gYmVjYXVzZSB0aGV5CisgICAgICAgIGNvbmZsaWN0
IHdpdGggdGhlIHN0YW5kYXJkIG1pbigpIGFuZCBtYXgoKSBtYWNyb3MuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1yYW5nZU92ZXJmbG93LW51bWJlci5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VPdmVyZmxvdy1yYW5n
ZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcmFuZ2VVbmRl
cmZsb3ctbnVtYmVyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS1yYW5nZVVuZGVyZmxvdy1yYW5nZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lu
cHV0LW1pbm1heC5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6cmFuZ2VVbmRlcmZsb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6cmFuZ2VPdmVyZmxvdyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU1pbmltdW0pOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6cmFuZ2VNYXhpbXVtKToKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOgor
ICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWYWxp
ZGl0eVN0YXRlOjpyYW5nZVVuZGVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGl0eVN0
YXRlOjpyYW5nZU92ZXJmbG93KToKKyAgICAgICAgKiBodG1sL1ZhbGlkaXR5U3RhdGUuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNs
aWRlclJhbmdlOjpTbGlkZXJSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJSYW5nZTo6
dmFsdWVGcm9tRWxlbWVudCk6CisKIDIwMDktMTAtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IFdpbmRvd3MgYnVpbGQuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKaW5kZXggYjlmYzJjOS4uZjZkNjM0ZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcApAQCAtMjMyLDYgKzIzMiw2MiBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnRv
b0xvbmcoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBIVE1MSW5wdXRFbGVt
ZW50OjpyYW5nZVVuZGVyZmxvdygpIGNvbnN0Cit7CisgICAgaWYgKGlucHV0VHlwZSgpID09IE5V
TUJFUikgeworICAgICAgICBkb3VibGUgbWluID0gMC4wOworICAgICAgICBkb3VibGUgZG91Ymxl
VmFsdWUgPSAwLjA7CisgICAgICAgIGlmIChmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0cmlidXRl
KG1pbkF0dHIpLCAmbWluKSAmJiBmb3JtU3RyaW5nVG9Eb3VibGUodmFsdWUoKSwgJmRvdWJsZVZh
bHVlKSkKKyAgICAgICAgICAgIHJldHVybiBkb3VibGVWYWx1ZSA8IG1pbjsKKyAgICB9IGVsc2Ug
aWYgKGlucHV0VHlwZSgpID09IFJBTkdFKSB7CisgICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsK
KyAgICAgICAgaWYgKGZvcm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAmZG91YmxlVmFsdWUpKQor
ICAgICAgICAgICAgcmV0dXJuIGRvdWJsZVZhbHVlIDwgcmFuZ2VNaW5pbXVtKCk7CisgICAgfQor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU92ZXJm
bG93KCkgY29uc3QKK3sKKyAgICBpZiAoaW5wdXRUeXBlKCkgPT0gTlVNQkVSKSB7CisgICAgICAg
IGRvdWJsZSBtYXggPSAwLjA7CisgICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZSA9IDAuMDsKKyAg
ICAgICAgaWYgKGZvcm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWF4QXR0ciksICZtYXgp
ICYmIGZvcm1TdHJpbmdUb0RvdWJsZSh2YWx1ZSgpLCAmZG91YmxlVmFsdWUpKQorICAgICAgICAg
ICAgcmV0dXJuIGRvdWJsZVZhbHVlID4gbWF4OworICAgIH0gZWxzZSBpZiAoaW5wdXRUeXBlKCkg
PT0gUkFOR0UpIHsKKyAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlOworICAgICAgICBpZiAoZm9y
bVN0cmluZ1RvRG91YmxlKHZhbHVlKCksICZkb3VibGVWYWx1ZSkpCisgICAgICAgICAgICByZXR1
cm4gZG91YmxlVmFsdWUgPiByYW5nZU1heGltdW0oKTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitkb3VibGUgSFRNTElucHV0RWxlbWVudDo6cmFuZ2VNaW5pbXVtKCkgY29uc3QKK3sK
KyAgICBBU1NFUlQoaW5wdXRUeXBlKCkgPT0gUkFOR0UpOworICAgIC8vIFRoZSByYW5nZSB0eXBl
J3MgImRlZmF1bHQgbWluaW11bSIgaXMgMC4KKyAgICBkb3VibGUgbWluID0gMC4wOworICAgIGZv
cm1TdHJpbmdUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0ciksICZtaW4pOworICAgIHJldHVy
biBtaW47Cit9CisKK2RvdWJsZSBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU1heGltdW0oKSBjb25z
dAoreworICAgIEFTU0VSVChpbnB1dFR5cGUoKSA9PSBSQU5HRSk7CisgICAgLy8gVGhlIHJhbmdl
IHR5cGUncyAiZGVmYXVsdCBtYXhpbXVtIiBpcyAxMDAuCisgICAgc3RhdGljIGNvbnN0IGRvdWJs
ZSBkZWZhdWx0TWF4aW11bSA9IDEwMC4wOworICAgIGRvdWJsZSBtYXggPSBkZWZhdWx0TWF4aW11
bTsKKyAgICBmb3JtU3RyaW5nVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIpLCAmbWF4KTsK
KyAgICBjb25zdCBkb3VibGUgbWluID0gcmFuZ2VNaW5pbXVtKCk7CisKKyAgICBpZiAobWF4IDwg
bWluKSB7CisgICAgICAgIC8vIEEgcmVtZWR5IGZvciB0aGUgaW5jb25zaXN0ZW50IG1pbi9tYXgg
dmFsdWVzLgorICAgICAgICAvLyBTZXRzIHRoZSBtYXhtaW11bSB0byB0aGUgZGVmYXVsdCAoMTAw
LjApIG9yIHRoZSBtaW5pbXVtIHZhbHVlLgorICAgICAgICBtYXggPSBtaW4gPCBkZWZhdWx0TWF4
aW11bSA/IGRlZmF1bHRNYXhpbXVtIDogbWluOworICAgIH0KKyAgICByZXR1cm4gbWF4OworfQor
CiBzdGF0aWMgaW5saW5lIENoZWNrZWRSYWRpb0J1dHRvbnMmIGNoZWNrZWRSYWRpb0J1dHRvbnMo
Y29uc3QgSFRNTElucHV0RWxlbWVudCAqZWxlbWVudCkKIHsKICAgICBpZiAoSFRNTEZvcm1FbGVt
ZW50KiBmb3JtID0gZWxlbWVudC0+Zm9ybSgpKQpAQCAtNzA1LDcgKzc2MSw3IEBAIHZvaWQgSFRN
TElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRy
KQogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5zZWFyY2hF
dmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CiAgICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gcmVzdWx0c0F0dHIpIHsKICAgICAgICAgaW50IG9sZFJl
c3VsdHMgPSBtX21heFJlc3VsdHM7Ci0gICAgICAgIG1fbWF4UmVzdWx0cyA9ICFhdHRyLT5pc051
bGwoKSA/IG1pbihhdHRyLT52YWx1ZSgpLnRvSW50KCksIG1heFNhdmVkUmVzdWx0cykgOiAtMTsK
KyAgICAgICAgbV9tYXhSZXN1bHRzID0gIWF0dHItPmlzTnVsbCgpID8gc3RkOjptaW4oYXR0ci0+
dmFsdWUoKS50b0ludCgpLCBtYXhTYXZlZFJlc3VsdHMpIDogLTE7CiAgICAgICAgIC8vIEZJWE1F
OiBEZXRhY2hpbmcganVzdCBmb3IgbWF4UmVzdWx0cyBjaGFuZ2UgaXMgbm90IGlkZWFsLiAgV2Ug
c2hvdWxkIGZpZ3VyZSBvdXQgdGhlIHJpZ2h0CiAgICAgICAgIC8vIHRpbWUgdG8gcmVsYXlvdXQg
Zm9yIHRoaXMgY2hhbmdlLgogICAgICAgICBpZiAobV9tYXhSZXN1bHRzICE9IG9sZFJlc3VsdHMg
JiYgKG1fbWF4UmVzdWx0cyA8PSAwIHx8IG9sZFJlc3VsdHMgPD0gMCkgJiYgYXR0YWNoZWQoKSkg
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMGY5NDc0Yy4uNzk5ZDkyYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCkBAIC05NCw2ICs5NCwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIHZhbHVlTWlzc2luZygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYXR0ZXJuTWlzbWF0
Y2goKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgdG9vTG9uZygpIGNvbnN0OworICAgIC8vIEZv
ciBWYWxpZGl0eVN0YXRlCisgICAgYm9vbCByYW5nZVVuZGVyZmxvdygpIGNvbnN0OworICAgIGJv
b2wgcmFuZ2VPdmVyZmxvdygpIGNvbnN0OworICAgIC8vIFJldHVybnMgdGhlIG1pbmltdW0gdmFs
dWUgZm9yIHR5cGU9cmFuZ2UuICBEb24ndCBjYWxsIHRoaXMgZm9yIG90aGVyIHR5cGVzLgorICAg
IGRvdWJsZSByYW5nZU1pbmltdW0oKSBjb25zdDsKKyAgICAvLyBSZXR1cm5zIHRoZSBtYXhpbXVt
IHZhbHVlIGZvciB0eXBlPXJhbmdlLiAgRG9uJ3QgY2FsbCB0aGlzIGZvciBvdGhlciB0eXBlcy4K
KyAgICAvLyBUaGlzIGFsd2F5cyByZXR1cm5zIGEgdmFsdWUgd2hpY2ggaXMgPD0gcmFuZ2VNaW5p
bXVtKCkuCisgICAgZG91YmxlIHJhbmdlTWF4aW11bSgpIGNvbnN0OwogCiAgICAgYm9vbCBpc1Rl
eHRCdXR0b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gU1VCTUlUIHx8IG1fdHlwZSA9PSBS
RVNFVCB8fCBtX3R5cGUgPT0gQlVUVE9OOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmFkaW9CdXR0
b24oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gUkFESU87IH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmlkbAppbmRleCA3Y2RmNDg3Li41OTI0OGY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsCkBAIC00Miw4ICs0MiwxNCBAQCBtb2R1bGUgaHRtbCB7CiAjaWYgZGVmaW5lZChFTkFCTEVf
REFUQUxJU1QpICYmIEVOQUJMRV9EQVRBTElTVAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
SFRNTEVsZW1lbnQgICAgIGxpc3Q7CiAjZW5kaWYKKyNpZiAhZGVmaW5lZChMQU5HVUFHRV9DT00p
IHx8ICFMQU5HVUFHRV9DT00KKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgbWF4OworI2VuZGlmCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAg
ICAgICAgICAgbWF4TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ09NKSB8fCAhTEFOR1VBR0VfQ09N
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1pbjsKKyNl
bmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIG11bHRpcGxl
OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgICAgICAgcGF0dGVybjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0
YXRlLmNwcCBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAppbmRleCBkZjg5MzNkLi41
YmY4MzgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCkBAIC02MCw2ICs2MCwyMCBAQCBib29sIFZh
bGlkaXR5U3RhdGU6OnR5cGVNaXNtYXRjaCgpCiAgICAgfQogfQogCitib29sIFZhbGlkaXR5U3Rh
dGU6OnJhbmdlVW5kZXJmbG93KCkKK3sKKyAgICBpZiAoIWNvbnRyb2woKS0+aGFzVGFnTmFtZShp
bnB1dFRhZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KGNvbnRyb2woKSktPnJhbmdlVW5kZXJmbG93KCk7Cit9CisKK2Jv
b2wgVmFsaWRpdHlTdGF0ZTo6cmFuZ2VPdmVyZmxvdygpCit7CisgICAgaWYgKCFjb250cm9sKCkt
Pmhhc1RhZ05hbWUoaW5wdXRUYWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihjb250cm9sKCkpLT5yYW5nZU92ZXJmbG93
KCk7Cit9CisKIGJvb2wgVmFsaWRpdHlTdGF0ZTo6dmFsaWQoKQogewogICAgIGJvb2wgc29tZUVy
cm9yID0gdHlwZU1pc21hdGNoKCkgfHwgc3RlcE1pc21hdGNoKCkgfHwgcmFuZ2VVbmRlcmZsb3co
KSB8fCByYW5nZU92ZXJmbG93KCkgfHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0
eVN0YXRlLmggYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oCmluZGV4IDlhZGM4ZmQuLjY3
YWZhNTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKKysrIGIvV2Vi
Q29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaApAQCAtNDQsOCArNDQsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGJvb2wgdHlwZU1pc21hdGNoKCk7CiAgICAgICAgIGJvb2wgcGF0dGVy
bk1pc21hdGNoKCkgeyByZXR1cm4gY29udHJvbCgpLT5wYXR0ZXJuTWlzbWF0Y2goKTsgfQogICAg
ICAgICBib29sIHRvb0xvbmcoKSB7IHJldHVybiBjb250cm9sKCktPnRvb0xvbmcoKTsgfQotICAg
ICAgICBib29sIHJhbmdlVW5kZXJmbG93KCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgYm9v
bCByYW5nZU92ZXJmbG93KCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgYm9vbCByYW5nZVVu
ZGVyZmxvdygpOworICAgICAgICBib29sIHJhbmdlT3ZlcmZsb3coKTsKICAgICAgICAgYm9vbCBz
dGVwTWlzbWF0Y2goKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICBib29sIGN1c3RvbUVycm9y
KCkgeyByZXR1cm4gIW1fY3VzdG9tRXJyb3JNZXNzYWdlLmlzRW1wdHkoKTsgfQogICAgICAgICBi
b29sIHZhbGlkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIu
Y3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCAyNDdhY2RhLi40
NDJhZjM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAg
c3RhdGljIGNvbnN0IGludCBkZWZhdWx0VHJhY2tMZW5ndGggPSAxMjk7CiBzdHJ1Y3QgU2xpZGVy
UmFuZ2UgewogICAgIGJvb2wgaXNJbnRlZ3JhbDsKICAgICBkb3VibGUgbWluaW11bTsKLSAgICBk
b3VibGUgbWF4aW11bTsKKyAgICBkb3VibGUgbWF4aW11bTsgIC8vIG1heGltdW0gbXVzdCBiZSA+
PSBtaW5pbXVtLgogCiAgICAgZXhwbGljaXQgU2xpZGVyUmFuZ2UoSFRNTElucHV0RWxlbWVudCop
OwogICAgIGRvdWJsZSBjbGFtcFZhbHVlKGRvdWJsZSB2YWx1ZSk7CkBAIC04MCwxMiArODAsOCBA
QCBTbGlkZXJSYW5nZTo6U2xpZGVyUmFuZ2UoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIAog
ICAgIGlzSW50ZWdyYWwgPSAhZXF1YWxJZ25vcmluZ0Nhc2UoZWxlbWVudC0+Z2V0QXR0cmlidXRl
KHByZWNpc2lvbkF0dHIpLCAiZmxvYXQiKTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIHRyZWF0cyBt
YXhpbXVtIHN0cmluZ3MgdGhhdCBjYW4ndCBiZSBwYXJzZWQgYXMgMCwgYnV0IHBlcmhhcHMgMTAw
IHdvdWxkIGJlIG1vcmUgYXBwcm9wcmlhdGUuCi0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBtYXhT
dHJpbmcgPSBlbGVtZW50LT5nZXRBdHRyaWJ1dGUobWF4QXR0cik7Ci0gICAgbWF4aW11bSA9IG1h
eFN0cmluZy5pc051bGwoKSA/IDEwMC4wIDogbWF4U3RyaW5nLnRvRG91YmxlKCk7Ci0KLSAgICAv
LyBJZiB0aGUgbWF4aW11bSBpcyBzbWFsbGVyLCB1c2UgaXQgYXMgdGhlIG1pbmltdW0uCi0gICAg
bWluaW11bSA9IG1pbihlbGVtZW50LT5nZXRBdHRyaWJ1dGUobWluQXR0cikudG9Eb3VibGUoKSwg
bWF4aW11bSk7CisgICAgbWF4aW11bSA9IGVsZW1lbnQtPnJhbmdlTWF4aW11bSgpOworICAgIG1p
bmltdW0gPSBlbGVtZW50LT5yYW5nZU1pbmltdW0oKTsKIH0KIAogZG91YmxlIFNsaWRlclJhbmdl
OjpjbGFtcFZhbHVlKGRvdWJsZSB2YWx1ZSkKQEAgLTk2LDEyICs5MiwxNCBAQCBkb3VibGUgU2xp
ZGVyUmFuZ2U6OmNsYW1wVmFsdWUoZG91YmxlIHZhbHVlKQogCiBkb3VibGUgU2xpZGVyUmFuZ2U6
OnZhbHVlRnJvbUVsZW1lbnQoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCwgYm9vbCogd2FzQ2xh
bXBlZCkKIHsKLSAgICBTdHJpbmcgdmFsdWVTdHJpbmcgPSBlbGVtZW50LT52YWx1ZSgpOwotICAg
IGRvdWJsZSBvbGRWYWx1ZSA9IHZhbHVlU3RyaW5nLmlzTnVsbCgpID8gKG1pbmltdW0gKyBtYXhp
bXVtKSAvIDIgOiB2YWx1ZVN0cmluZy50b0RvdWJsZSgpOworICAgIGRvdWJsZSBvbGRWYWx1ZTsK
KyAgICBib29sIHBhcnNlU3VjY2VzcyA9IEhUTUxJbnB1dEVsZW1lbnQ6OmZvcm1TdHJpbmdUb0Rv
dWJsZShlbGVtZW50LT52YWx1ZSgpLCAmb2xkVmFsdWUpOworICAgIGlmICghcGFyc2VTdWNjZXNz
KQorICAgICAgICBvbGRWYWx1ZSA9IChtaW5pbXVtICsgbWF4aW11bSkgLyAyOwogICAgIGRvdWJs
ZSBuZXdWYWx1ZSA9IGNsYW1wVmFsdWUob2xkVmFsdWUpOwogCiAgICAgaWYgKHdhc0NsYW1wZWQp
Ci0gICAgICAgICp3YXNDbGFtcGVkID0gdmFsdWVTdHJpbmcuaXNOdWxsKCkgfHwgbmV3VmFsdWUg
IT0gb2xkVmFsdWU7CisgICAgICAgICp3YXNDbGFtcGVkID0gIXBhcnNlU3VjY2VzcyB8fCBuZXdW
YWx1ZSAhPSBvbGRWYWx1ZTsKIAogICAgIHJldHVybiBuZXdWYWx1ZTsKIH0KLS0gCjEuNi4zLjMK
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>