<?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>35770</bug_id>
          
          <creation_ts>2010-03-04 15:23:07 -0800</creation_ts>
          <short_desc>CSSPrimitiveValue.getFloatValue does not convert sizes</short_desc>
          <delta_ts>2010-11-17 03:47:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>525.x (Safari 3.2)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>49594</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter>bradley.meck</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>196240</commentid>
    <comment_count>0</comment_count>
      <attachid>50057</attachid>
    <who name="">bradley.meck</who>
    <bug_when>2010-03-04 15:23:07 -0800</bug_when>
    <thetext>Created attachment 50057
Test Case

CSSPrimitiveValue.getFloatValue always returns the original magnitude of the style declaration but does not convert the magnitude to other units as per http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue .
IE: a style declaration of length 2em will always return 2, for all units. 

A side note is that because getComputedStyle converts this to px it will always return the px of a css value that is a length.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196944</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-06 16:06:23 -0800</bug_when>
    <thetext>This issue sounds familiar, as if I saw (or even fixed?) a similar report one ago. But I can&apos;t find it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196945</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-06 16:08:30 -0800</bug_when>
    <thetext>s/one ago/years ago/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307851</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-11-11 05:25:17 -0800</bug_when>
    <thetext>I&apos;ve got a patch to convert between all units except rem/em/ex, since these require having RenderStyle of self and/or parent/root elements at hand. Does anyone have a suggestion on how this issue could be treated? We don&apos;t want CSSPrimitiveValue to reference its owner style do we?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307948</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-11-11 08:40:00 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I&apos;ve got a patch to convert between all units except rem/em/ex, since these require having RenderStyle of self and/or parent/root elements at hand. Does anyone have a suggestion on how this issue could be treated? We don&apos;t want CSSPrimitiveValue to reference its owner style do we?

From the spec: &quot;Conversions are allowed between absolute values (from millimeters to centimeters, from degrees to radians, and so on) but not between relative values.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307950</commentid>
    <comment_count>5</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-11-11 08:43:49 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I&apos;ve got a patch to convert between all units except rem/em/ex, since these require having RenderStyle of self and/or parent/root elements at hand. Does anyone have a suggestion on how this issue could be treated? We don&apos;t want CSSPrimitiveValue to reference its owner style do we?
&gt; 
&gt; From the spec: &quot;Conversions are allowed between absolute values (from millimeters to centimeters, from degrees to radians, and so on) but not between relative values.&quot;

Which means the original complaint &quot;a style declaration of length 2em will always return 2, for all units&quot; is invalid. Thanks for the clarification, will prepare the patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308550</commentid>
    <comment_count>6</comment_count>
      <attachid>73745</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-11-12 08:02:38 -0800</bug_when>
    <thetext>Created attachment 73745
[PATCH] Suggested solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308591</commentid>
    <comment_count>7</comment_count>
      <attachid>73745</attachid>
    <who name="">mitz</who>
    <bug_when>2010-11-12 09:20:10 -0800</bug_when>
    <thetext>Comment on attachment 73745
[PATCH] Suggested solution

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

&gt; WebCore/css/CSSPrimitiveValue.cpp:48
&gt; +#ifndef M_PI
&gt; +#define M_PI 3.14159265358979323846
&gt; +#endif

Please use piDouble. Include MathExtras.h if needed.

&gt; WebCore/css/CSSPrimitiveValue.cpp:80
&gt; +CSSPrimitiveValue::UnitCategories CSSPrimitiveValue::unitCategory(UnitTypes type)

This can be a file-static function.

&gt; WebCore/css/CSSPrimitiveValue.cpp:489
&gt; +            factor = 180.0 / M_PI;

Use piDouble and drop the .0

&gt; WebCore/css/CSSPrimitiveValue.cpp:495
&gt; +            factor = 360.0;

Drop the .0

&gt; WebCore/css/CSSPrimitiveValue.cpp:499
&gt; +            factor = 1000.0;

Drop the .0

&gt; WebCore/css/CSSPrimitiveValue.h:98
&gt; +    enum UnitCategories {

enum names are usually singular

&gt; WebCore/css/CSSPrimitiveValue.h:99
&gt; +        UNIT_NUMBER,

This is not the standard style for enum values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308646</commentid>
    <comment_count>8</comment_count>
      <attachid>73760</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-11-12 10:51:13 -0800</bug_when>
    <thetext>Created attachment 73760
[PATCH] Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309329</commentid>
    <comment_count>9</comment_count>
      <attachid>73760</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-11-15 10:06:24 -0800</bug_when>
    <thetext>Comment on attachment 73760
[PATCH] Comments addressed

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

r=me with comments addressed.

&gt; WebCore/ChangeLog:11
&gt; +        CSSPrimitiveValue.getFloatValue does not convert sizes
&gt; +
&gt; +        Implemented all same-category unit conversions (length, angle, time, frequency) and left
&gt; +        absolute-relative (cm, mm, in, pt, pc) length conversions intact (assuming a monitor resolution of 96ppi).
&gt; +        Illegal unit conversion attempts will throw an INVALID_ACCESS_ERR DOMException.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=35770
&gt; +

The bug URL should go above the title.

&gt; WebCore/css/CSSPrimitiveValue.cpp:54
&gt; +    // Here we violate the spec (http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue)
&gt; +    // and allow conversions between CSS_PX and relative length units assuming a 96ppi screen (see CSSHelper.h).

Why? Please justify.

&gt; WebCore/css/CSSPrimitiveValue.cpp:91
&gt;  // A more stylish solution than sharing would be to turn CSSPrimitiveValue (or CSSValues in general) into non-virtual,
&gt; -// non-refcounted simple type with value semantics. In practice these sharing tricks get similar memory benefits 
&gt; +// non-refcounted simple type with value semantics. In practice these sharing tricks get similar memory benefits

This sentence needs a period at the end.

&gt; WebCore/css/CSSPrimitiveValue.cpp:459
&gt;  static double scaleFactorForConversion(unsigned short unitType)

This function has a really bad name. It would be better named as conversionToCanonicalUnitsScaleFactor(). Also, who decides what the canonical units are?

&gt; WebCore/css/CSSPrimitiveValue.cpp:505
&gt;  double CSSPrimitiveValue::getDoubleValue(unsigned short unitType, ExceptionCode&amp; ec)

Can all the getFooValue methods be |const|?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309638</commentid>
    <comment_count>10</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-11-16 01:42:18 -0800</bug_when>
    <thetext>Will land with the following corrections in place:

(In reply to comment #9)
&gt; (From update of attachment 73760 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=73760&amp;action=review
&gt; 
&gt; r=me with comments addressed.
&gt; 
&gt; &gt; WebCore/ChangeLog:11
&gt; &gt; +        CSSPrimitiveValue.getFloatValue does not convert sizes
&gt; &gt; +
&gt; &gt; +        Implemented all same-category unit conversions (length, angle, time, frequency) and left
&gt; &gt; +        absolute-relative (cm, mm, in, pt, pc) length conversions intact (assuming a monitor resolution of 96ppi).
&gt; &gt; +        Illegal unit conversion attempts will throw an INVALID_ACCESS_ERR DOMException.
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=35770
&gt; &gt; +
&gt; 
&gt; The bug URL should go above the title.

Done.

&gt; &gt; WebCore/css/CSSPrimitiveValue.cpp:54
&gt; &gt; +    // Here we violate the spec (http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSPrimitiveValue)
&gt; &gt; +    // and allow conversions between CSS_PX and relative length units assuming a 96ppi screen (see CSSHelper.h).
&gt; 
&gt; Why? Please justify.

Put an explicit reference to a solid treatment of the issue in CSSHelper.h

&gt; &gt; WebCore/css/CSSPrimitiveValue.cpp:91
&gt; &gt;  // A more stylish solution than sharing would be to turn CSSPrimitiveValue (or CSSValues in general) into non-virtual,
&gt; &gt; -// non-refcounted simple type with value semantics. In practice these sharing tricks get similar memory benefits 
&gt; &gt; +// non-refcounted simple type with value semantics. In practice these sharing tricks get similar memory benefits
&gt; 
&gt; This sentence needs a period at the end.

This line is not the last line of the sentence :)

&gt; &gt; WebCore/css/CSSPrimitiveValue.cpp:459
&gt; &gt;  static double scaleFactorForConversion(unsigned short unitType)
&gt; 
&gt; This function has a really bad name. It would be better named as conversionToCanonicalUnitsScaleFactor(). Also, who decides what the canonical units are?

Renamed the function. &quot;Canonical&quot; units were chosen according to the way CSSParser::validUnit() converts plain numbers into unit-based values in the non-strict mode (see the &quot;case CSSPrimitiveValue::CSS_NUMBER&quot; branch).

&gt; &gt; WebCore/css/CSSPrimitiveValue.cpp:505
&gt; &gt;  double CSSPrimitiveValue::getDoubleValue(unsigned short unitType, ExceptionCode&amp; ec)
&gt; 
&gt; Can all the getFooValue methods be |const|?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309670</commentid>
    <comment_count>11</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-11-16 04:15:09 -0800</bug_when>
    <thetext>Committed r72082: &lt;http://trac.webkit.org/changeset/72082&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309681</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-16 05:21:49 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/72082 might have broken Chromium Mac Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310202</commentid>
    <comment_count>13</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-11-17 03:47:03 -0800</bug_when>
    <thetext>Committed r72189: &lt;http://trac.webkit.org/changeset/72189&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>50057</attachid>
            <date>2010-03-04 15:23:07 -0800</date>
            <delta_ts>2010-03-04 15:23:07 -0800</delta_ts>
            <desc>Test Case</desc>
            <filename>bug.html</filename>
            <type>text/html</type>
            <size>607</size>
            <attacher>bradley.meck</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIg
Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgo8aHRt
bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CjxoZWFkPjx0aXRsZT5nZXRQ
cm9wZXJ0eUNTU1ZhbHVlIGJ1ZzwvdGl0bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iZm9udC1zaXpl
OjEzcHgiIG9ubG9hZD0iCiAgICB2YXIgdGV4dGFyZWE9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoJ2RpdicpWzBdCQogICAgdmFyIHN0eWxlPXRleHRhcmVhLnN0eWxlCgl2YXIgY3NzdmFs
dWU9c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnZm9udC1zaXplJykKCWNvbnNvbGUubG9nKGNz
c3ZhbHVlLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1BYKSkKICAiPgo8ZGl2
IGlkPSJ0ZXh0IiBzdHlsZT0iZm9udC1zaXplOiAyZW0iPgpUZXN0IHNob3VsZCBsb2cgMjYgdG8g
dGhlIGNvbnNvbGUsIGJ1dCBpbnN0ZWFkIGl0IGxvZ3MgMiAodGhlIG1hZ25pdHVkZSBvZiB0aGUg
dmFsdWUgaW4gZW1zKQo8L2Rpdj4KIDwvYm9keT4gPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73745</attachid>
            <date>2010-11-12 08:02:38 -0800</date>
            <delta_ts>2010-11-12 10:51:13 -0800</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>getfloatvalue.patch</filename>
            <type>text/plain</type>
            <size>29639</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDVlMTVkZjY4YzMxZjFhNTcyYzRmOGYzNjU3Mzk1ZGE2MDhjNGUyNjcKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTm92IDEw
IDE4OjQ5OjIwIDIwMTAgKzAzMDAKCiAgICBJbXBsZW1lbnQgZmxvYXQgdW5pdCBjb252ZXJzaW9u
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDNmMTNhMDEuLmIwY2ZjNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0x
MS0xMiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVl
LmdldEZsb2F0VmFsdWUgZG9lcyBub3QgY29udmVydCBzaXplcworCisgICAgICAgIEV4dGVuZGVk
IGdldEZsb2F0VmFsdWVGb3JVbml0IGFuZCBDU1NQcmltaXRpdmVWYWx1ZSB0ZXN0cy4gVGhlIGZv
cm1lciBoYXMgYmVlbiBtYWRlIHRleHQtb25seSwKKyAgICAgICAgd2hpY2ggYWxsb3dlZCB0byBn
ZXQgcmlkIG9mIGEgbnVtYmVyIG9mIHVubmVjZXNzYXJ5IGJhc2VsaW5lcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NzcwCisKKyAgICAgICAgKiBm
YXN0L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9jc3MvcmVzb3VyY2VzL0NTU1ByaW1pdGl2ZVZhbHVlLWV4Y2VwdGlvbnMuanM6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVu
aXQtZXhwZWN0ZWQuY2hlY2tzdW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5nOiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2Nzcy9nZXRGbG9hdFZh
bHVlRm9yVW5pdC1leHBlY3RlZC5jaGVja3N1bTogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5n
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2Nzcy9nZXRG
bG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjLWxlb3BhcmQvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQuY2hl
Y2tzdW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvZmFzdC9jc3Mv
Z2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC5jaGVja3N1
bTogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1
ZUZvclVuaXQtZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9m
YXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vcXQvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorCiAyMDEwLTExLTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLWV4Y2VwdGlvbnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUtZXhjZXB0
aW9ucy1leHBlY3RlZC50eHQKaW5kZXggMmEyYjA0Ny4uMjVkNDE2MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9u
cy1leHBlY3RlZC50eHQKQEAgLTUsNiArNSwxMyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
CiBQQVNTIGRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCd3aWR0aCcpLmdldEZsb2F0VmFs
dWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1VOS05PV04pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgogUEFTUyBkaXYuc3R5bGUuZ2V0
UHJvcGVydHlDU1NWYWx1ZSgnd2lkdGgnKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVl
LkNTU19TVFJJTkcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBE
T00gRXhjZXB0aW9uIDE1LgorUEFTUyBkaXYuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnd2lk
dGgnKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19IWikgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitQQVNTIGRp
di5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCd3aWR0aCcpLmdldEZsb2F0VmFsdWUoQ1NTUHJp
bWl0aXZlVmFsdWUuQ1NTX1MpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1Nf
RVJSOiBET00gRXhjZXB0aW9uIDE1LgorUEFTUyBkaXYuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1
ZSgnd2lkdGgnKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19SQUQpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1Lgor
UEFTUyBkaXYuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnd2lkdGgnKS5nZXRGbG9hdFZhbHVl
KENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QRVJDRU5UQUdFKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZGl2LnN0eWxlLmdl
dFByb3BlcnR5Q1NTVmFsdWUoJ2hlaWdodCcpLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWUuQ1NTX05VTUJFUikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6
IERPTSBFeGNlcHRpb24gMTUuCitQQVNTIGRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdo
ZWlnaHQnKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QWCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitQQVNT
IGRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdoZWlnaHQnKS5nZXRGbG9hdFZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlLkNTU19ERUcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9B
Q0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgogUEFTUyBkaXYuc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZSgnY2xpcCcpLnByaW1pdGl2ZVR5cGUgaXMgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1JF
Q1QKIFBBU1MgZGl2LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ2NsaXAnKS5nZXRGbG9hdFZh
bHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QWCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZB
TElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCiBQQVNTIGRpdi5zdHlsZS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKCdjbGlwJykuZ2V0U3RyaW5nVmFsdWUoKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYTA0Y2ZkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMzggQEAKK1Rlc3Rpbmcgd2hldGhlciBDU1NQcmltaXRpdmVWYWx1ZS5nZXRG
bG9hdFZhbHVlKCkgY29udmVydHMgdW5pdHMgY29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBnZXRGbG9hdFZhbHVlKCdmb250LXNpemUnLCBDU1NQcmltaXRp
dmVWYWx1ZS5DU1NfUFQpIGlzIDEwCitQQVNTIGdldEZsb2F0VmFsdWUoJ2ZvbnQtc2l6ZScsIENT
U1ByaW1pdGl2ZVZhbHVlLkNTU19NTSkgaXMgMy41Mjc3NzgKK1BBU1MgZ2V0RmxvYXRWYWx1ZSgn
Zm9udC1zaXplJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0NNKSBpcyAwLjM1Mjc3OAorUEFTUyBn
ZXRGbG9hdFZhbHVlKCdmb250LXNpemUnLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfSU4pIGlzIDAu
MTM4ODg5CitQQVNTIGdldEZsb2F0VmFsdWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1pdGl2ZVZhbHVl
LkNTU19QQykgaXMgMC44MzMzMzMKK1BBU1MgZ2V0RmxvYXRWYWx1ZSgnZm9udC1zaXplJywgQ1NT
UHJpbWl0aXZlVmFsdWUuQ1NTX1BYKSBpcyAxMy4zMzMzMzMKK1BBU1MgZ2V0Rmlyc3RGbG9hdFZh
bHVlSW5MaXN0KCctd2Via2l0LXRyYW5zZm9ybScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19ERUcp
IGlzIDkwCitQQVNTIGdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgnLXdlYmtpdC10cmFuc2Zvcm0n
LCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUkFEKSBpcyAxLjU3MDc5NgorUEFTUyBnZXRGaXJzdEZs
b2F0VmFsdWVJbkxpc3QoJy13ZWJraXQtdHJhbnNmb3JtJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NT
X0dSQUQpIGlzIDEwMAorUEFTUyBnZXRGbG9hdFZhbHVlKCctd2Via2l0LWFuaW1hdGlvbi1kZWxh
eScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19NUykgaXMgMjAwCitQQVNTIGdldEZsb2F0VmFsdWUo
Jy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5JywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1MpIGlzIDAu
MgorUEFTUyBnZXRGbG9hdFZhbHVlKCdmb250LXNpemUnLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1Nf
TlVNQkVSKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4
Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0RmxvYXRWYWx1ZSgnZm9udC1zaXplJywgQ1NTUHJpbWl0aXZl
VmFsdWUuQ1NTX1BFUkNFTlRBR0UpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NF
U1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgorUEFTUyBnZXRGbG9hdFZhbHVlKCdmb250LXNpemUn
LCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTVMpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgorUEFTUyBnZXRGbG9hdFZhbHVlKCdmb250
LXNpemUnLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfSFopIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgorUEFTUyBnZXRGbG9hdFZhbHVl
KCdmb250LXNpemUnLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfREVHKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0Rmxv
YXRWYWx1ZSgnZm9udC1zaXplJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1JHQkNPTE9SKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4K
K1BBU1MgZ2V0Rmlyc3RGbG9hdFZhbHVlSW5MaXN0KCctd2Via2l0LXRyYW5zZm9ybScsIENTU1By
aW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9B
Q0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgorUEFTUyBnZXRGaXJzdEZsb2F0VmFsdWVJbkxp
c3QoJy13ZWJraXQtdHJhbnNmb3JtJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1BFUkNFTlRBR0Up
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9u
IDE1LgorUEFTUyBnZXRGaXJzdEZsb2F0VmFsdWVJbkxpc3QoJy13ZWJraXQtdHJhbnNmb3JtJywg
Q1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1BYKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURf
QUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0Rmlyc3RGbG9hdFZhbHVlSW5M
aXN0KCctd2Via2l0LXRyYW5zZm9ybScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19NUykgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitQ
QVNTIGdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgnLXdlYmtpdC10cmFuc2Zvcm0nLCBDU1NQcmlt
aXRpdmVWYWx1ZS5DU1NfSFopIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1Nf
RVJSOiBET00gRXhjZXB0aW9uIDE1LgorUEFTUyBnZXRGaXJzdEZsb2F0VmFsdWVJbkxpc3QoJy13
ZWJraXQtdHJhbnNmb3JtJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1JHQkNPTE9SKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BB
U1MgZ2V0RmxvYXRWYWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tZGVsYXknLCBDU1NQcmltaXRpdmVW
YWx1ZS5DU1NfTlVNQkVSKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VS
UjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0RmxvYXRWYWx1ZSgnLXdlYmtpdC1hbmltYXRp
b24tZGVsYXknLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUEVSQ0VOVEFHRSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitQQVNTIGdl
dEZsb2F0VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5JywgQ1NTUHJpbWl0aXZlVmFsdWUu
Q1NTX1BYKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4
Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0RmxvYXRWYWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tZGVsYXkn
LCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfREVHKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFM
SURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0RmxvYXRWYWx1ZSgnLXdl
YmtpdC1hbmltYXRpb24tZGVsYXknLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfSFopIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgorUEFT
UyBnZXRGbG9hdFZhbHVlKCctd2Via2l0LWFuaW1hdGlvbi1kZWxheScsIENTU1ByaW1pdGl2ZVZh
bHVlLkNTU19SR0JDT0xPUikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19F
UlI6IERPTSBFeGNlcHRpb24gMTUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Rmxv
YXRWYWx1ZUZvclVuaXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVG
b3JVbml0Lmh0bWwKaW5kZXggM2RmNmY1Ni4uMjk5Y2E3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC5odG1sCkBAIC0xLDkgKzEsNjcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgogPGJvZHk+Ci08ZGl2
IGlkPSdkJyBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij48L2Rpdj4KLTEwcHQgPSAKKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0idGVzdC1kaXYiIHN0eWxlPSJmb250LXNpemU6IDEw
cHQ7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTAwZ3JhZCk7IC13ZWJraXQtYW5pbWF0aW9u
LWRlbGF5OiAwLjJzOyI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+
Ci0vL0NTU1ByaW1pdGl2ZVZhbHVlLkNTU19NTQotZG9jdW1lbnQud3JpdGUoZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZCcpLCAn
JykuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnZm9udC1zaXplJykuZ2V0RmxvYXRWYWx1ZSg3KSk7Ci1k
b2N1bWVudC53cml0ZSgibW0gKHNob3VsZCBiZSAzLjQzOTU4MzMwMTU0NDE4OTUpIik7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKwordmFyIGludmFsaWRBY2Nlc3NFcnJvciA9ICJFcnJvcjogSU5WQUxJRF9B
Q0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1IjsKKworZGVzY3JpcHRpb24oIlRlc3Rpbmcgd2hl
dGhlciBDU1NQcmltaXRpdmVWYWx1ZS5nZXRGbG9hdFZhbHVlKCkgY29udmVydHMgdW5pdHMgY29y
cmVjdGx5LiIpOworCitmdW5jdGlvbiBnZXRGbG9hdFZhbHVlKHByb3BlcnR5TmFtZSwgdW5pdCkK
K3sKKyAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QtZGl2Iiku
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eU5hbWUpLmdldEZsb2F0VmFsdWUodW5p
dCk7CisgICAgcmV0dXJuIE51bWJlcihyZXN1bHQudG9GaXhlZCg2KSk7Cit9CisKK2Z1bmN0aW9u
IGdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdChwcm9wZXJ0eU5hbWUsIHVuaXQpCit7CisgICAgdmFy
IHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0LWRpdiIpLnN0eWxlLmdldFBy
b3BlcnR5Q1NTVmFsdWUocHJvcGVydHlOYW1lKVswXVswXS5nZXRGbG9hdFZhbHVlKHVuaXQpOwor
ICAgIHJldHVybiBOdW1iZXIocmVzdWx0LnRvRml4ZWQoNikpOworfQorCitzaG91bGRCZSgiZ2V0
RmxvYXRWYWx1ZSgnZm9udC1zaXplJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1BUKSIsICIxMCIp
Oworc2hvdWxkQmUoImdldEZsb2F0VmFsdWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1pdGl2ZVZhbHVl
LkNTU19NTSkiLCAiMy41Mjc3NzgiKTsKK3Nob3VsZEJlKCJnZXRGbG9hdFZhbHVlKCdmb250LXNp
emUnLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfQ00pIiwgIjAuMzUyNzc4Iik7CitzaG91bGRCZSgi
Z2V0RmxvYXRWYWx1ZSgnZm9udC1zaXplJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0lOKSIsICIw
LjEzODg4OSIpOworc2hvdWxkQmUoImdldEZsb2F0VmFsdWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1p
dGl2ZVZhbHVlLkNTU19QQykiLCAiMC44MzMzMzMiKTsKK3Nob3VsZEJlKCJnZXRGbG9hdFZhbHVl
KCdmb250LXNpemUnLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUFgpIiwgIjEzLjMzMzMzMyIpOwor
c2hvdWxkQmUoImdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgnLXdlYmtpdC10cmFuc2Zvcm0nLCBD
U1NQcmltaXRpdmVWYWx1ZS5DU1NfREVHKSIsICI5MCIpOworc2hvdWxkQmUoImdldEZpcnN0Rmxv
YXRWYWx1ZUluTGlzdCgnLXdlYmtpdC10cmFuc2Zvcm0nLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1Nf
UkFEKSIsICIxLjU3MDc5NiIpOworc2hvdWxkQmUoImdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgn
LXdlYmtpdC10cmFuc2Zvcm0nLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfR1JBRCkiLCAiMTAwIik7
CitzaG91bGRCZSgiZ2V0RmxvYXRWYWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tZGVsYXknLCBDU1NQ
cmltaXRpdmVWYWx1ZS5DU1NfTVMpIiwgIjIwMCIpOworc2hvdWxkQmUoImdldEZsb2F0VmFsdWUo
Jy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5JywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1MpIiwgIjAu
MiIpOworCitzaG91bGRUaHJvdygiZ2V0RmxvYXRWYWx1ZSgnZm9udC1zaXplJywgQ1NTUHJpbWl0
aXZlVmFsdWUuQ1NTX05VTUJFUikiLCAiaW52YWxpZEFjY2Vzc0Vycm9yIik7CitzaG91bGRUaHJv
dygiZ2V0RmxvYXRWYWx1ZSgnZm9udC1zaXplJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1BFUkNF
TlRBR0UpIiwgImludmFsaWRBY2Nlc3NFcnJvciIpOworc2hvdWxkVGhyb3coImdldEZsb2F0VmFs
dWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19NUykiLCAiaW52YWxpZEFjY2Vz
c0Vycm9yIik7CitzaG91bGRUaHJvdygiZ2V0RmxvYXRWYWx1ZSgnZm9udC1zaXplJywgQ1NTUHJp
bWl0aXZlVmFsdWUuQ1NTX0haKSIsICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsKK3Nob3VsZFRocm93
KCJnZXRGbG9hdFZhbHVlKCdmb250LXNpemUnLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfREVHKSIs
ICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsKK3Nob3VsZFRocm93KCJnZXRGbG9hdFZhbHVlKCdmb250
LXNpemUnLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUkdCQ09MT1IpIiwgImludmFsaWRBY2Nlc3NF
cnJvciIpOworCitzaG91bGRUaHJvdygiZ2V0Rmlyc3RGbG9hdFZhbHVlSW5MaXN0KCctd2Via2l0
LXRyYW5zZm9ybScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIiwgImludmFsaWRBY2Nl
c3NFcnJvciIpOworc2hvdWxkVGhyb3coImdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgnLXdlYmtp
dC10cmFuc2Zvcm0nLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUEVSQ0VOVEFHRSkiLCAiaW52YWxp
ZEFjY2Vzc0Vycm9yIik7CitzaG91bGRUaHJvdygiZ2V0Rmlyc3RGbG9hdFZhbHVlSW5MaXN0KCct
d2Via2l0LXRyYW5zZm9ybScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QWCkiLCAiaW52YWxpZEFj
Y2Vzc0Vycm9yIik7CitzaG91bGRUaHJvdygiZ2V0Rmlyc3RGbG9hdFZhbHVlSW5MaXN0KCctd2Vi
a2l0LXRyYW5zZm9ybScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19NUykiLCAiaW52YWxpZEFjY2Vz
c0Vycm9yIik7CitzaG91bGRUaHJvdygiZ2V0Rmlyc3RGbG9hdFZhbHVlSW5MaXN0KCctd2Via2l0
LXRyYW5zZm9ybScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19IWikiLCAiaW52YWxpZEFjY2Vzc0Vy
cm9yIik7CitzaG91bGRUaHJvdygiZ2V0Rmlyc3RGbG9hdFZhbHVlSW5MaXN0KCctd2Via2l0LXRy
YW5zZm9ybScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19SR0JDT0xPUikiLCAiaW52YWxpZEFjY2Vz
c0Vycm9yIik7CisKK3Nob3VsZFRocm93KCJnZXRGbG9hdFZhbHVlKCctd2Via2l0LWFuaW1hdGlv
bi1kZWxheScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIiwgImludmFsaWRBY2Nlc3NF
cnJvciIpOworc2hvdWxkVGhyb3coImdldEZsb2F0VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLWRl
bGF5JywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1BFUkNFTlRBR0UpIiwgImludmFsaWRBY2Nlc3NF
cnJvciIpOworc2hvdWxkVGhyb3coImdldEZsb2F0VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLWRl
bGF5JywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1BYKSIsICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsK
K3Nob3VsZFRocm93KCJnZXRGbG9hdFZhbHVlKCctd2Via2l0LWFuaW1hdGlvbi1kZWxheScsIENT
U1ByaW1pdGl2ZVZhbHVlLkNTU19ERUcpIiwgImludmFsaWRBY2Nlc3NFcnJvciIpOworc2hvdWxk
VGhyb3coImdldEZsb2F0VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5JywgQ1NTUHJpbWl0
aXZlVmFsdWUuQ1NTX0haKSIsICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsKK3Nob3VsZFRocm93KCJn
ZXRGbG9hdFZhbHVlKCctd2Via2l0LWFuaW1hdGlvbi1kZWxheScsIENTU1ByaW1pdGl2ZVZhbHVl
LkNTU19SR0JDT0xPUikiLCAiaW52YWxpZEFjY2Vzc0Vycm9yIik7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvQ1NTUHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3Jlc291cmNlcy9DU1NQcmltaXRpdmVWYWx1ZS1leGNlcHRp
b25zLmpzCmluZGV4IGUxOTZlMTcuLjkzMzgwMTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3Jlc291cmNlcy9DU1NQcmltaXRpdmVWYWx1ZS1leGNlcHRpb25zLmpzCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3Jlc291cmNlcy9DU1NQcmltaXRpdmVWYWx1ZS1leGNlcHRpb25z
LmpzCkBAIC0yLDYgKzIsNyBAQCBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHRoZSBtZXRo
b2RzIG9uIENTU1ByaW1pdGl2ZVZhbHVlIHRocm93IGV4Y2VwdGlvbnMgIgogCiBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIGRpdi5zdHlsZS53aWR0aCA9ICIxMHB4IjsKK2Rp
di5zdHlsZS5oZWlnaHQgPSAiOTAlIjsKIGRpdi5zdHlsZS5jb250ZW50ID0gImNvdW50ZXIoZHVt
bXksIHNxdWFyZSkiOwogZGl2LnN0eWxlLmNsaXAgPSAicmVjdCgwLCAwLCAxLCAxKSI7CiBkaXYu
c3R5bGUuY29sb3IgPSAicmdiKDAsIDAsIDApIjsKQEAgLTEyLDYgKzEzLDE1IEBAIHZhciBpbnZh
bGlkQWNjZXNzRXJyb3IgPSAiRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlv
biAxNSI7CiBzaG91bGRUaHJvdygiZGl2LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ3dpZHRo
JykuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfVU5LTk9XTikiLCAiaW52YWxp
ZEFjY2Vzc0Vycm9yIik7CiBzaG91bGRUaHJvdygiZGl2LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUoJ3dpZHRoJykuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfU1RSSU5HKSIs
ICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsKIAorLy8gVGVzdCBpbnZhbGlkIHVuaXQgY29udmVyc2lv
bnMgaW4gZ2V0RmxvYXRWYWx1ZQorc2hvdWxkVGhyb3coImRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNT
U1ZhbHVlKCd3aWR0aCcpLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0haKSIs
ICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsKK3Nob3VsZFRocm93KCJkaXYuc3R5bGUuZ2V0UHJvcGVy
dHlDU1NWYWx1ZSgnd2lkdGgnKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19T
KSIsICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsKK3Nob3VsZFRocm93KCJkaXYuc3R5bGUuZ2V0UHJv
cGVydHlDU1NWYWx1ZSgnd2lkdGgnKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNT
U19SQUQpIiwgImludmFsaWRBY2Nlc3NFcnJvciIpOworc2hvdWxkVGhyb3coImRpdi5zdHlsZS5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKCd3aWR0aCcpLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWUuQ1NTX1BFUkNFTlRBR0UpIiwgImludmFsaWRBY2Nlc3NFcnJvciIpOworc2hvdWxkVGhyb3co
ImRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdoZWlnaHQnKS5nZXRGbG9hdFZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlLkNTU19OVU1CRVIpIiwgImludmFsaWRBY2Nlc3NFcnJvciIpOworc2hv
dWxkVGhyb3coImRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdoZWlnaHQnKS5nZXRGbG9h
dFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QWCkiLCAiaW52YWxpZEFjY2Vzc0Vycm9yIik7
CitzaG91bGRUaHJvdygiZGl2LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ2hlaWdodCcpLmdl
dEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0RFRykiLCAiaW52YWxpZEFjY2Vzc0Vy
cm9yIik7CisKIC8vIFRlc3QgY2FsbGluZyBnZXQqVmFsdWUgZm9yIENTU1ByaW1pdGl2ZVZhbHVl
IG9mIHRoZSB3cm9uZyB0eXBlCiBzaG91bGRCZSgiZGl2LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUoJ2NsaXAnKS5wcmltaXRpdmVUeXBlIiwgIkNTU1ByaW1pdGl2ZVZhbHVlLkNTU19SRUNUIik7
CiBzaG91bGRUaHJvdygiZGl2LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ2NsaXAnKS5nZXRG
bG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QWCkiLCAiaW52YWxpZEFjY2Vzc0Vycm9y
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0
L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4
cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDIwNDgwLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3QvY3Nz
L2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotNTgxYWY1NzhjYzJjOTQwZTgwN2FhYWRiYTA3YWUzYTgKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC5wbmcgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9y
VW5pdC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4MWNkMTku
LjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
ZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQt
ZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhNmQwNTEu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvY3Nz
L2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotNjc4Y2Y5YWVlYTVmMTNiNjhiYzNlYjZhMjkyNDI2NjcKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0
LWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGYwOTg4Zi4uMDAw
MDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFz
dC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9j
c3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FmODYzNS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZv
clVuaXQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
Ci1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgODAweDYwMAotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0
eDU4NAotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MAotICAgICAg
UmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3ODR4MjAKLSAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDV4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA0NTogIjEwcHQgPSAiCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoNDUsMCkgc2l6ZSAzNzh4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDUsMCkgd2lkdGgg
Mzc4OiAiMy40Mzk1ODMzMDE1NDQxODk1bW0gKHNob3VsZCBiZSAzLjQzOTU4MzMwMTU0NDE4OTUp
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvZmFzdC9jc3Mv
Z2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtbGVvcGFyZC9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC5j
aGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTZhODViNS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9mYXN0L2Nzcy9nZXRGbG9hdFZh
bHVlRm9yVW5pdC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LWYxZDc1NjRkYzIzZWIzYjUwYjgxOTcxZTc5YTg2NzE4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvZmFzdC9j
c3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLWxlb3BhcmQvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjU5NjJjLi4wMDAwMDAwCkJpbmFyeSBm
aWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL2Zhc3QvY3NzL2dldEZsb2F0
VmFsdWVGb3JVbml0LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0
LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dl
dEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5OTg5ODcyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTM0NWE5YmU5OTJkYmI4M2JhZGNjODZlYWQyZDkwZWJmClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3Rl
ZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4MjNmY2MuLjAwMDAwMDAKQmlu
YXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldEZsb2F0VmFs
dWVGb3JVbml0LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRGbG9hdFZh
bHVlRm9yVW5pdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBm
ODFhMmMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2dl
dEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICsw
LDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDc4NHg1ODQKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUg
Nzg0eDAKLSAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzg0eDE4
Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ1eDE4Ci0gICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDU6ICIxMHB0ID0gIgotICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDQ1LDApIHNpemUgMzgzeDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQg
KDQ1LDApIHdpZHRoIDM4MzogIjMuNDM5NTgzMzAxNTQ0MTg5NW1tIChzaG91bGQgYmUgMy40Mzk1
ODMzMDE1NDQxODk1KSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3Qv
Y3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQ0ZTQ3MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0g
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgwCi0gICAgICBSZW5kZXJCbG9jayAoYW5vbnlt
b3VzKSBhdCAoMCwwKSBzaXplIDc4NHgxOQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSA0NHgxOQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ0OiAi
MTBwdCA9ICIKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0NCwwKSBzaXplIDM4NHgx
OQotICAgICAgICAgIHRleHQgcnVuIGF0ICg0NCwwKSB3aWR0aCAzODQ6ICIzLjQzOTU4MzMwMTU0
NDE4OTVtbSAoc2hvdWxkIGJlIDMuNDM5NTgzMzAxNTQ0MTg5NSkiCi0gICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZWZhOWZjLi45MTcwMDYwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDEwLTExLTEyICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ1NTUHJp
bWl0aXZlVmFsdWUuZ2V0RmxvYXRWYWx1ZSBkb2VzIG5vdCBjb252ZXJ0IHNpemVzCisKKyAgICAg
ICAgSW1wbGVtZW50ZWQgYWxsIHNhbWUtY2F0ZWdvcnkgdW5pdCBjb252ZXJzaW9ucyAobGVuZ3Ro
LCBhbmdsZSwgdGltZSwgZnJlcXVlbmN5KSBhbmQgbGVmdAorICAgICAgICBhYnNvbHV0ZS1yZWxh
dGl2ZSAoY20sIG1tLCBpbiwgcHQsIHBjKSBsZW5ndGggY29udmVyc2lvbnMgaW50YWN0IChhc3N1
bWluZyBhIG1vbml0b3IgcmVzb2x1dGlvbiBvZiA5NnBwaSkuCisgICAgICAgIElsbGVnYWwgdW5p
dCBjb252ZXJzaW9uIGF0dGVtcHRzIHdpbGwgdGhyb3cgYW4gSU5WQUxJRF9BQ0NFU1NfRVJSIERP
TUV4Y2VwdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM1NzcwCisKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OnVuaXRDYXRlZ29yeSk6CisgICAgICAgIChX
ZWJDb3JlOjpzY2FsZUZhY3RvckZvckNvbnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJpbWl0aXZlVmFsdWU6OmdldERvdWJsZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjpjYW5vbmljYWxVbml0VHlwZUZvckNhdGVnb3J5KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpnZXREb3VibGVWYWx1ZUludGVybmFsKToKKyAgICAg
ICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKwogMjAxMC0xMS0xMiAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBDc2FiYSBPc3p0cm9n
b27DoWMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggMDY1YzI0NC4uMGE2OWExMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtNDMsNiArNDMsMTAgQEAKICNpbmNsdWRl
ICJEYXNoYm9hcmRSZWdpb24uaCIKICNlbmRpZgogCisjaWZuZGVmIE1fUEkKKyNkZWZpbmUgTV9Q
SSAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2CisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdURjsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzMsNiArNzcsMzggQEAgaW5saW5lIFBhc3NSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVVbmNhY2hlZChk
b3VibGUgdmEKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZhbHVl
LCB0eXBlKSk7CiB9CiAKK0NTU1ByaW1pdGl2ZVZhbHVlOjpVbml0Q2F0ZWdvcmllcyBDU1NQcmlt
aXRpdmVWYWx1ZTo6dW5pdENhdGVnb3J5KFVuaXRUeXBlcyB0eXBlKQoreworICAgIC8vIEhlcmUg
d2UgdmlvbGF0ZSB0aGUgc3BlYyAoaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTItU3R5
bGUvY3NzLmh0bWwjQ1NTLUNTU1ByaW1pdGl2ZVZhbHVlKQorICAgIC8vIGFuZCBhbGxvdyBjb252
ZXJzaW9ucyBiZXR3ZWVuIENTU19QWCBhbmQgcmVsYXRpdmUgbGVuZ3RoIHVuaXRzIGFzc3VtaW5n
IGEgOTZwcGkgc2NyZWVuIChzZWUgQ1NTSGVscGVyLmgpLgorICAgIHN3aXRjaCAodHlwZSkgewor
ICAgIGNhc2UgQ1NTX05VTUJFUjoKKyAgICAgICAgcmV0dXJuIFVOSVRfTlVNQkVSOworICAgIGNh
c2UgQ1NTX1BFUkNFTlRBR0U6CisgICAgICAgIHJldHVybiBVTklUX1BFUkNFTlQ7CisgICAgY2Fz
ZSBDU1NfUFg6CisgICAgY2FzZSBDU1NfQ006CisgICAgY2FzZSBDU1NfTU06CisgICAgY2FzZSBD
U1NfSU46CisgICAgY2FzZSBDU1NfUFQ6CisgICAgY2FzZSBDU1NfUEM6CisgICAgICAgIHJldHVy
biBVTklUX0xFTkdUSDsKKyAgICBjYXNlIENTU19NUzoKKyAgICBjYXNlIENTU19TOgorICAgICAg
ICByZXR1cm4gVU5JVF9USU1FOworICAgIGNhc2UgQ1NTX0RFRzoKKyAgICBjYXNlIENTU19SQUQ6
CisgICAgY2FzZSBDU1NfR1JBRDoKKyAgICBjYXNlIENTU19UVVJOOgorICAgICAgICByZXR1cm4g
VU5JVF9BTkdMRTsKKyAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSFo6CisgICAgY2Fz
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0tIWjoKKyAgICAgICAgcmV0dXJuIFVOSVRfRlJFUVVF
TkNZOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBVTklUX09USEVSOworICAgIH0KK30K
KwogUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZUlkZW50aWZpZXIoaW50IGlkZW50KQogewogICAgIHN0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+KiBpZGVudFZhbHVlQ2FjaGUgPSBuZXcgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPltu
dW1DU1NWYWx1ZUtleXdvcmRzXTsKQEAgLTQyNiw4ICs0NjIsMTMgQEAgdm9pZCBDU1NQcmltaXRp
dmVWYWx1ZTo6c2V0RmxvYXRWYWx1ZSh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgZG91YmxlIGZs
b2F0VmFsdWUKIHN0YXRpYyBkb3VibGUgc2NhbGVGYWN0b3JGb3JDb252ZXJzaW9uKHVuc2lnbmVk
IHNob3J0IHVuaXRUeXBlKQogewogICAgIGRvdWJsZSBmYWN0b3IgPSAxLjA7CisgICAgLy8gRklY
TUU6IHRoZSBzd2l0Y2ggY2FuIGJlIHJlcGxhY2VkIGJ5IGFuIGFycmF5IG9mIHNjYWxlIGZhY3Rv
cnMuCiAgICAgc3dpdGNoICh1bml0VHlwZSkgeworICAgICAgICAvLyBUaGVzZSBhcmUgImNhbm9u
aWNhbCIgdW5pdHMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBjYXRlZ29yaWVzLgogICAgICAgICBjYXNl
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFg6CisgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19ERUc6CisgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19NUzoKKyAg
ICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0haOgogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19DTToKICAgICAgICAgICAgIGZh
Y3RvciA9IGNzc1BpeGVsc1BlckluY2ggLyAyLjU0OyAvLyAoMi41NCBjbS9pbikKQEAgLTQ0NCw2
ICs0ODUsMTkgQEAgc3RhdGljIGRvdWJsZSBzY2FsZUZhY3RvckZvckNvbnZlcnNpb24odW5zaWdu
ZWQgc2hvcnQgdW5pdFR5cGUpCiAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19Q
QzoKICAgICAgICAgICAgIGZhY3RvciA9IGNzc1BpeGVsc1BlckluY2ggKiAxMi4wIC8gNzIuMDsg
Ly8gMSBwYyA9PSAxMiBwdAogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19SQUQ6CisgICAgICAgICAgICBmYWN0b3IgPSAxODAuMCAvIE1fUEk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0dSQUQ6CisgICAgICAgICAgICBmYWN0b3IgPSAwLjk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1RVUk46CisgICAgICAgICAgICBmYWN0
b3IgPSAzNjAuMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfUzoKKyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0tIWjoK
KyAgICAgICAgICAgIGZhY3RvciA9IDEwMDAuMDsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNDUzLDUwICs1MDcsOTIg
QEAgc3RhdGljIGRvdWJsZSBzY2FsZUZhY3RvckZvckNvbnZlcnNpb24odW5zaWduZWQgc2hvcnQg
dW5pdFR5cGUpCiAKIGRvdWJsZSBDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0RG91YmxlVmFsdWUodW5z
aWduZWQgc2hvcnQgdW5pdFR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGVjID0gMDsK
LSAgICBpZiAobV90eXBlIDwgQ1NTX05VTUJFUiB8fCBtX3R5cGUgPiBDU1NfRElNRU5TSU9OIHx8
IHVuaXRUeXBlIDwgQ1NTX05VTUJFUiB8fCB1bml0VHlwZSA+IENTU19ESU1FTlNJT04pIHsKKyAg
ICBkb3VibGUgcmVzdWx0OworICAgIGJvb2wgc3VjY2VzcyA9IGdldERvdWJsZVZhbHVlSW50ZXJu
YWwoc3RhdGljX2Nhc3Q8VW5pdFR5cGVzPih1bml0VHlwZSksICZyZXN1bHQpOworICAgIGlmICgh
c3VjY2VzcykgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0
dXJuIDAuMDsKICAgICB9CiAKLSAgICBpZiAodW5pdFR5cGUgPT0gbV90eXBlIHx8IHVuaXRUeXBl
IDwgQ1NTX1BYIHx8IHVuaXRUeXBlID4gQ1NTX1BDKQotICAgICAgICByZXR1cm4gbV92YWx1ZS5u
dW07Ci0KLSAgICBkb3VibGUgY29udmVydGVkVmFsdWUgPSBtX3ZhbHVlLm51bTsKLQotICAgIC8v
IEZpcnN0IGNvbnZlcnQgdGhlIHZhbHVlIGZyb20gbV90eXBlIGludG8gQ1NTUGl4ZWxzCi0gICAg
ZG91YmxlIGZhY3RvciA9IHNjYWxlRmFjdG9yRm9yQ29udmVyc2lvbihtX3R5cGUpOwotICAgIGNv
bnZlcnRlZFZhbHVlICo9IGZhY3RvcjsKKyAgICBlYyA9IDA7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KIAotICAgIC8vIE5vdyBjb252ZXJ0IGZyb20gQ1NTUGl4ZWxzIHRvIHRoZSBzcGVjaWZpZWQg
dW5pdFR5cGUKLSAgICBmYWN0b3IgPSBzY2FsZUZhY3RvckZvckNvbnZlcnNpb24odW5pdFR5cGUp
OwotICAgIGNvbnZlcnRlZFZhbHVlIC89IGZhY3RvcjsKK2RvdWJsZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Z2V0RG91YmxlVmFsdWUodW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpCit7CisgICAgZG91Ymxl
IHJlc3VsdDsKKyAgICBnZXREb3VibGVWYWx1ZUludGVybmFsKHN0YXRpY19jYXN0PFVuaXRUeXBl
cz4odW5pdFR5cGUpLCAmcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQogCi0gICAgcmV0
dXJuIGNvbnZlcnRlZFZhbHVlOworQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y2Fub25pY2FsVW5pdFR5cGVGb3JDYXRlZ29yeShVbml0Q2F0ZWdvcmllcyBj
YXRlZ29yeSkKK3sKKyAgICBzd2l0Y2ggKGNhdGVnb3J5KSB7CisgICAgY2FzZSBVTklUX0FOR0xF
OgorICAgICAgICByZXR1cm4gQ1NTX0RFRzsKKyAgICBjYXNlIFVOSVRfTEVOR1RIOgorICAgICAg
ICByZXR1cm4gQ1NTX1BYOworICAgIGNhc2UgVU5JVF9USU1FOgorICAgICAgICByZXR1cm4gQ1NT
X01TOworICAgIGNhc2UgVU5JVF9GUkVRVUVOQ1k6CisgICAgICAgIHJldHVybiBDU1NfSFo7Cisg
ICAgY2FzZSBVTklUX1BFUkNFTlQ6CisgICAgICAgIC8vIENhbm5vdCBjb252ZXJ0IGJldHdlZW4g
bnVtYmVycyBhbmQgcGVyY2VudC4KKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ1NTX1VO
S05PV047CisgICAgfQogfQogCi1kb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmdldERvdWJsZVZh
bHVlKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKQorYm9vbCBDU1NQcmltaXRpdmVWYWx1ZTo6Z2V0
RG91YmxlVmFsdWVJbnRlcm5hbChVbml0VHlwZXMgcmVxdWVzdGVkVW5pdFR5cGUsIGRvdWJsZSog
cmVzdWx0KQogewotICAgIGlmIChtX3R5cGUgPCBDU1NfTlVNQkVSIHx8IG1fdHlwZSA+IENTU19E
SU1FTlNJT04gfHwgdW5pdFR5cGUgPCBDU1NfTlVNQkVSIHx8IHVuaXRUeXBlID4gQ1NTX0RJTUVO
U0lPTikKLSAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKG1fdHlwZSA8IENTU19OVU1CRVIgfHwg
KG1fdHlwZSA+IENTU19LSFogJiYgbV90eXBlIDwgQ1NTX1RVUk4pIHx8IHJlcXVlc3RlZFVuaXRU
eXBlIDwgQ1NTX05VTUJFUiB8fCAocmVxdWVzdGVkVW5pdFR5cGUgPiBDU1NfS0haICYmIHJlcXVl
c3RlZFVuaXRUeXBlIDwgQ1NTX1RVUk4pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KHJlcXVlc3RlZFVuaXRUeXBlID09IG1fdHlwZSkgeworICAgICAgICAqcmVzdWx0ID0gbV92YWx1
ZS5udW07CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworCisgICAgVW5pdFR5cGVzIHNv
dXJjZVVuaXRUeXBlID0gc3RhdGljX2Nhc3Q8VW5pdFR5cGVzPihtX3R5cGUpOworICAgIFVuaXRD
YXRlZ29yaWVzIHNvdXJjZUNhdGVnb3J5ID0gdW5pdENhdGVnb3J5KHNvdXJjZVVuaXRUeXBlKTsK
KyAgICBBU1NFUlQoc291cmNlQ2F0ZWdvcnkgIT0gVU5JVF9PVEhFUik7CiAKLSAgICBpZiAodW5p
dFR5cGUgPT0gbV90eXBlIHx8IHVuaXRUeXBlIDwgQ1NTX1BYIHx8IHVuaXRUeXBlID4gQ1NTX1BD
KQotICAgICAgICByZXR1cm4gbV92YWx1ZS5udW07CisgICAgVW5pdFR5cGVzIHRhcmdldFVuaXRU
eXBlID0gcmVxdWVzdGVkVW5pdFR5cGU7CisgICAgVW5pdENhdGVnb3JpZXMgdGFyZ2V0Q2F0ZWdv
cnkgPSB1bml0Q2F0ZWdvcnkodGFyZ2V0VW5pdFR5cGUpOworICAgIEFTU0VSVCh0YXJnZXRDYXRl
Z29yeSAhPSBVTklUX09USEVSKTsKKworICAgIC8vIENhbm5vdCBjb252ZXJ0IGJldHdlZW4gdW5y
ZWxhdGVkIHVuaXQgY2F0ZWdvcmllcy4KKyAgICBpZiAoc291cmNlQ2F0ZWdvcnkgIT0gdGFyZ2V0
Q2F0ZWdvcnkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICh0YXJnZXRVbml0VHlw
ZSA9PSBDU1NfTlVNQkVSKSB7CisgICAgICAgIC8vIFdlIGludGVycHJldCBjb252ZXJzaW9uIHRv
IENTU19OVU1CRVIgYXMgY29udmVyc2lvbiB0byBhIGNhbm9uaWNhbCB1bml0IGluIHRoaXMgdmFs
dWUncyBjYXRlZ29yeS4KKyAgICAgICAgdGFyZ2V0VW5pdFR5cGUgPSBjYW5vbmljYWxVbml0VHlw
ZUZvckNhdGVnb3J5KHNvdXJjZUNhdGVnb3J5KTsKKyAgICAgICAgaWYgKHRhcmdldFVuaXRUeXBl
ID09IENTU19VTktOT1dOKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IGlmIChzb3VyY2VVbml0VHlwZSA9PSBDU1NfTlVNQkVSKSB7CisgICAgICAgIC8vIFdlIGludGVy
cHJldCBjb252ZXJzaW9uIGZyb20gQ1NTX05VTUJFUiBpbiB0aGUgc2FtZSB3YXkgYXMgQ1NTUGFy
c2VyOjp2YWxpZFVuaXQoKSB3aGlsZSB1c2luZyBub24tc3RyaWN0IG1vZGUuCisgICAgICAgIHNv
dXJjZVVuaXRUeXBlID0gY2Fub25pY2FsVW5pdFR5cGVGb3JDYXRlZ29yeSh0YXJnZXRDYXRlZ29y
eSk7CisgICAgICAgIGlmIChzb3VyY2VVbml0VHlwZSA9PSBDU1NfVU5LTk9XTikKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBkb3VibGUgY29udmVydGVkVmFsdWUgPSBt
X3ZhbHVlLm51bTsKIAotICAgIC8vIEZpcnN0IGNvbnZlcnQgdGhlIHZhbHVlIGZyb20gbV90eXBl
IGludG8gQ1NTUGl4ZWxzCi0gICAgZG91YmxlIGZhY3RvciA9IHNjYWxlRmFjdG9yRm9yQ29udmVy
c2lvbihtX3R5cGUpOworICAgIC8vIEZpcnN0IGNvbnZlcnQgdGhlIHZhbHVlIGZyb20gbV90eXBl
IHRvIGNhbm9uaWNhbCB0eXBlLgorICAgIGRvdWJsZSBmYWN0b3IgPSBzY2FsZUZhY3RvckZvckNv
bnZlcnNpb24oc291cmNlVW5pdFR5cGUpOwogICAgIGNvbnZlcnRlZFZhbHVlICo9IGZhY3RvcjsK
IAotICAgIC8vIE5vdyBjb252ZXJ0IGZyb20gQ1NTUGl4ZWxzIHRvIHRoZSBzcGVjaWZpZWQgdW5p
dFR5cGUKLSAgICBmYWN0b3IgPSBzY2FsZUZhY3RvckZvckNvbnZlcnNpb24odW5pdFR5cGUpOwor
ICAgIC8vIE5vdyBjb252ZXJ0IGZyb20gY2Fub25pY2FsIHR5cGUgdG8gdGhlIHRhcmdldCB1bml0
VHlwZS4KKyAgICBmYWN0b3IgPSBzY2FsZUZhY3RvckZvckNvbnZlcnNpb24odGFyZ2V0VW5pdFR5
cGUpOwogICAgIGNvbnZlcnRlZFZhbHVlIC89IGZhY3RvcjsKIAotICAgIHJldHVybiBjb252ZXJ0
ZWRWYWx1ZTsKKyAgICAqcmVzdWx0ID0gY29udmVydGVkVmFsdWU7CisgICAgcmV0dXJuIHRydWU7
CiB9CiAKLQogdm9pZCBDU1NQcmltaXRpdmVWYWx1ZTo6c2V0U3RyaW5nVmFsdWUodW5zaWduZWQg
c2hvcnQgc3RyaW5nVHlwZSwgY29uc3QgU3RyaW5nJiBzdHJpbmdWYWx1ZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgZWMgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaCBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggYmIzZWE3
MC4uOWFmNzhlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAor
KysgYi9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCkBAIC05NCw2ICs5NCwxNyBAQCBw
dWJsaWM6CiAgICAgICAgIENTU19SRU1TID0gMTA5CiAgICAgfTsKICAgICAKKyAgICAvLyBUaGlz
IGVudW0gZm9sbG93cyB0aGUgQ1NTUGFyc2VyOjpVbml0cyBlbnVtIGF1Z21lbnRlZCB3aXRoIFVO
SVRfRlJFUVVFTkNZIGZvciBmcmVxdWVuY2llcy4KKyAgICBlbnVtIFVuaXRDYXRlZ29yaWVzIHsK
KyAgICAgICAgVU5JVF9OVU1CRVIsCisgICAgICAgIFVOSVRfUEVSQ0VOVCwKKyAgICAgICAgVU5J
VF9MRU5HVEgsCisgICAgICAgIFVOSVRfQU5HTEUsCisgICAgICAgIFVOSVRfVElNRSwKKyAgICAg
ICAgVU5JVF9GUkVRVUVOQ1ksCisgICAgICAgIFVOSVRfT1RIRVIKKyAgICB9OworCiAgICAgc3Rh
dGljIGJvb2wgaXNVbml0VHlwZUxlbmd0aChpbnQgdHlwZSkgeyByZXR1cm4gKHR5cGUgPiBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UgJiYgdHlwZSA8IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfREVHKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19SRU1TOyB9CiAKQEAgLTIw
NCwxMCArMjE1LDE0IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTUHJpbWl0
aXZlVmFsdWU+IGNyZWF0ZVVuY2FjaGVkQ29sb3IodW5zaWduZWQgcmdiVmFsdWUpOwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVVbmNhY2hlZChkb3VibGUg
dmFsdWUsIFVuaXRUeXBlcyB0eXBlKTsKIAorICAgIHN0YXRpYyBVbml0Q2F0ZWdvcmllcyB1bml0
Q2F0ZWdvcnkoVW5pdFR5cGVzIHR5cGUpOworICAgIHN0YXRpYyBVbml0VHlwZXMgY2Fub25pY2Fs
VW5pdFR5cGVGb3JDYXRlZ29yeShVbml0Q2F0ZWdvcmllcyBjYXRlZ29yeSk7CisKICAgICB2b2lk
IGluaXQoUGFzc1JlZlB0cjxDb3VudGVyPik7CiAgICAgdm9pZCBpbml0KFBhc3NSZWZQdHI8UmVj
dD4pOwogICAgIHZvaWQgaW5pdChQYXNzUmVmUHRyPFBhaXI+KTsKICAgICB2b2lkIGluaXQoUGFz
c1JlZlB0cjxEYXNoYm9hcmRSZWdpb24+KTsgLy8gRklYTUU6IERhc2hib2FyZCByZWdpb24gc2hv
dWxkIG5vdCBiZSBhIHByaW1pdGl2ZSB2YWx1ZS4KKyAgICBib29sIGdldERvdWJsZVZhbHVlSW50
ZXJuYWwoVW5pdFR5cGVzIHRhcmdldFVuaXRUeXBlLCBkb3VibGUqIHJlc3VsdCk7CiAKICAgICB2
aXJ0dWFsIGJvb2wgaXNQcmltaXRpdmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAo=
</data>
<flag name="review"
          id="64238"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73760</attachid>
            <date>2010-11-12 10:51:13 -0800</date>
            <delta_ts>2010-11-15 10:06:24 -0800</delta_ts>
            <desc>[PATCH] Comments addressed</desc>
            <filename>getfloatvalue.patch</filename>
            <type>text/plain</type>
            <size>30257</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDg5ZjMzYTY2MmI0YTNmMzkzYTY5OWE1MTIwODY1MDY2YjRmYzg1NzMKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTm92IDEw
IDE4OjQ5OjIwIDIwMTAgKzAzMDAKCiAgICBJbXBsZW1lbnQgZmxvYXQgdW5pdCBjb252ZXJzaW9u
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGVlYzc4NzcuLjE5NTcxOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0x
MS0xMiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVl
LmdldEZsb2F0VmFsdWUgZG9lcyBub3QgY29udmVydCBzaXplcworCisgICAgICAgIEV4dGVuZGVk
IGdldEZsb2F0VmFsdWVGb3JVbml0IGFuZCBDU1NQcmltaXRpdmVWYWx1ZSB0ZXN0cy4gVGhlIGZv
cm1lciBoYXMgYmVlbiBtYWRlIHRleHQtb25seSwKKyAgICAgICAgd2hpY2ggYWxsb3dlZCB0byBn
ZXQgcmlkIG9mIGEgbnVtYmVyIG9mIHVubmVjZXNzYXJ5IGJhc2VsaW5lcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NzcwCisKKyAgICAgICAgKiBm
YXN0L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9jc3MvcmVzb3VyY2VzL0NTU1ByaW1pdGl2ZVZhbHVlLWV4Y2VwdGlvbnMuanM6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVu
aXQtZXhwZWN0ZWQuY2hlY2tzdW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5nOiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2Nzcy9nZXRGbG9hdFZh
bHVlRm9yVW5pdC1leHBlY3RlZC5jaGVja3N1bTogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5n
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2Nzcy9nZXRG
bG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjLWxlb3BhcmQvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQuY2hl
Y2tzdW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvZmFzdC9jc3Mv
Z2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC5jaGVja3N1
bTogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1
ZUZvclVuaXQtZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9m
YXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vcXQvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorCiAyMDEwLTExLTEyICBKdXN0aW4gU2NodWggIDxqc2NodWhAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLWV4Y2VwdGlvbnMt
ZXhwZWN0ZWQudHh0CmluZGV4IDJhMmIwNDcuLjI1ZDQxNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLWV4Y2VwdGlvbnMtZXhw
ZWN0ZWQudHh0CkBAIC01LDYgKzUsMTMgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogUEFT
UyBkaXYuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnd2lkdGgnKS5nZXRGbG9hdFZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlLkNTU19VTktOT1dOKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFM
SURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KIFBBU1MgZGl2LnN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUoJ3dpZHRoJykuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1Nf
U1RSSU5HKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4
Y2VwdGlvbiAxNS4KK1BBU1MgZGl2LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ3dpZHRoJyku
Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfSFopIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgorUEFTUyBkaXYuc3R5
bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnd2lkdGgnKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2
ZVZhbHVlLkNTU19TKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjog
RE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZGl2LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ3dp
ZHRoJykuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUkFEKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1Mg
ZGl2LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFsdWUoJ3dpZHRoJykuZ2V0RmxvYXRWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZS5DU1NfUEVSQ0VOVEFHRSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZB
TElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitQQVNTIGRpdi5zdHlsZS5nZXRQcm9w
ZXJ0eUNTU1ZhbHVlKCdoZWlnaHQnKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNT
U19OVU1CRVIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00g
RXhjZXB0aW9uIDE1LgorUEFTUyBkaXYuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnaGVpZ2h0
JykuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUFgpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgorUEFTUyBkaXYu
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnaGVpZ2h0JykuZ2V0RmxvYXRWYWx1ZShDU1NQcmlt
aXRpdmVWYWx1ZS5DU1NfREVHKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNT
X0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KIFBBU1MgZGl2LnN0eWxlLmdldFByb3BlcnR5Q1NTVmFs
dWUoJ2NsaXAnKS5wcmltaXRpdmVUeXBlIGlzIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19SRUNUCiBQ
QVNTIGRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdjbGlwJykuZ2V0RmxvYXRWYWx1ZShD
U1NQcmltaXRpdmVWYWx1ZS5DU1NfUFgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9B
Q0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgogUEFTUyBkaXYuc3R5bGUuZ2V0UHJvcGVydHlD
U1NWYWx1ZSgnY2xpcCcpLmdldFN0cmluZ1ZhbHVlKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmEwNGNmZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDM4IEBACitUZXN0aW5nIHdoZXRoZXIgQ1NTUHJpbWl0aXZlVmFsdWUuZ2V0RmxvYXRW
YWx1ZSgpIGNvbnZlcnRzIHVuaXRzIGNvcnJlY3RseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgZ2V0RmxvYXRWYWx1ZSgnZm9udC1zaXplJywgQ1NTUHJpbWl0aXZlVmFs
dWUuQ1NTX1BUKSBpcyAxMAorUEFTUyBnZXRGbG9hdFZhbHVlKCdmb250LXNpemUnLCBDU1NQcmlt
aXRpdmVWYWx1ZS5DU1NfTU0pIGlzIDMuNTI3Nzc4CitQQVNTIGdldEZsb2F0VmFsdWUoJ2ZvbnQt
c2l6ZScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19DTSkgaXMgMC4zNTI3NzgKK1BBU1MgZ2V0Rmxv
YXRWYWx1ZSgnZm9udC1zaXplJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0lOKSBpcyAwLjEzODg4
OQorUEFTUyBnZXRGbG9hdFZhbHVlKCdmb250LXNpemUnLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1Nf
UEMpIGlzIDAuODMzMzMzCitQQVNTIGdldEZsb2F0VmFsdWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1p
dGl2ZVZhbHVlLkNTU19QWCkgaXMgMTMuMzMzMzMzCitQQVNTIGdldEZpcnN0RmxvYXRWYWx1ZUlu
TGlzdCgnLXdlYmtpdC10cmFuc2Zvcm0nLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfREVHKSBpcyA5
MAorUEFTUyBnZXRGaXJzdEZsb2F0VmFsdWVJbkxpc3QoJy13ZWJraXQtdHJhbnNmb3JtJywgQ1NT
UHJpbWl0aXZlVmFsdWUuQ1NTX1JBRCkgaXMgMS41NzA3OTYKK1BBU1MgZ2V0Rmlyc3RGbG9hdFZh
bHVlSW5MaXN0KCctd2Via2l0LXRyYW5zZm9ybScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19HUkFE
KSBpcyAxMDAKK1BBU1MgZ2V0RmxvYXRWYWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tZGVsYXknLCBD
U1NQcmltaXRpdmVWYWx1ZS5DU1NfTVMpIGlzIDIwMAorUEFTUyBnZXRGbG9hdFZhbHVlKCctd2Vi
a2l0LWFuaW1hdGlvbi1kZWxheScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19TKSBpcyAwLjIKK1BB
U1MgZ2V0RmxvYXRWYWx1ZSgnZm9udC1zaXplJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJF
UikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRp
b24gMTUuCitQQVNTIGdldEZsb2F0VmFsdWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1pdGl2ZVZhbHVl
LkNTU19QRVJDRU5UQUdFKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VS
UjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0RmxvYXRWYWx1ZSgnZm9udC1zaXplJywgQ1NT
UHJpbWl0aXZlVmFsdWUuQ1NTX01TKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUND
RVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0RmxvYXRWYWx1ZSgnZm9udC1zaXpl
JywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0haKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFM
SURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0RmxvYXRWYWx1ZSgnZm9u
dC1zaXplJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0RFRykgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitQQVNTIGdldEZsb2F0VmFs
dWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19SR0JDT0xPUikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitQQVNT
IGdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgnLXdlYmtpdC10cmFuc2Zvcm0nLCBDU1NQcmltaXRp
dmVWYWx1ZS5DU1NfTlVNQkVSKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNT
X0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0Rmlyc3RGbG9hdFZhbHVlSW5MaXN0KCct
d2Via2l0LXRyYW5zZm9ybScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QRVJDRU5UQUdFKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4K
K1BBU1MgZ2V0Rmlyc3RGbG9hdFZhbHVlSW5MaXN0KCctd2Via2l0LXRyYW5zZm9ybScsIENTU1By
aW1pdGl2ZVZhbHVlLkNTU19QWCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VT
U19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitQQVNTIGdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgn
LXdlYmtpdC10cmFuc2Zvcm0nLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTVMpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgorUEFTUyBn
ZXRGaXJzdEZsb2F0VmFsdWVJbkxpc3QoJy13ZWJraXQtdHJhbnNmb3JtJywgQ1NTUHJpbWl0aXZl
VmFsdWUuQ1NTX0haKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjog
RE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0Rmlyc3RGbG9hdFZhbHVlSW5MaXN0KCctd2Via2l0
LXRyYW5zZm9ybScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19SR0JDT0xPUikgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitQQVNTIGdl
dEZsb2F0VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5JywgQ1NTUHJpbWl0aXZlVmFsdWUu
Q1NTX05VTUJFUikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERP
TSBFeGNlcHRpb24gMTUuCitQQVNTIGdldEZsb2F0VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLWRl
bGF5JywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1BFUkNFTlRBR0UpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgorUEFTUyBnZXRGbG9h
dFZhbHVlKCctd2Via2l0LWFuaW1hdGlvbi1kZWxheScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19Q
WCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRp
b24gMTUuCitQQVNTIGdldEZsb2F0VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5JywgQ1NT
UHJpbWl0aXZlVmFsdWUuQ1NTX0RFRykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FD
Q0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitQQVNTIGdldEZsb2F0VmFsdWUoJy13ZWJraXQt
YW5pbWF0aW9uLWRlbGF5JywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0haKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgZ2V0
RmxvYXRWYWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tZGVsYXknLCBDU1NQcmltaXRpdmVWYWx1ZS5D
U1NfUkdCQ09MT1IpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBE
T00gRXhjZXB0aW9uIDE1LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldEZsb2F0VmFs
dWVGb3JVbml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5p
dC5odG1sCmluZGV4IDNkZjZmNTYuLjI5OWNhN2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQuaHRtbApAQCAtMSw5ICsxLDY3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KIDxib2R5PgotPGRpdiBpZD0n
ZCcgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PC9kaXY+Ci0xMHB0ID0gCis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9InRlc3QtZGl2IiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyAt
d2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEwMGdyYWQpOyAtd2Via2l0LWFuaW1hdGlvbi1kZWxh
eTogMC4yczsiPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgotLy9D
U1NQcmltaXRpdmVWYWx1ZS5DU1NfTU0KLWRvY3VtZW50LndyaXRlKGRvY3VtZW50LmRlZmF1bHRW
aWV3LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2QnKSwgJycpLmdl
dFByb3BlcnR5Q1NTVmFsdWUoJ2ZvbnQtc2l6ZScpLmdldEZsb2F0VmFsdWUoNykpOwotZG9jdW1l
bnQud3JpdGUoIm1tIChzaG91bGQgYmUgMy40Mzk1ODMzMDE1NDQxODk1KSIpOworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisKK3ZhciBpbnZhbGlkQWNjZXNzRXJyb3IgPSAiRXJyb3I6IElOVkFMSURfQUNDRVNT
X0VSUjogRE9NIEV4Y2VwdGlvbiAxNSI7CisKK2Rlc2NyaXB0aW9uKCJUZXN0aW5nIHdoZXRoZXIg
Q1NTUHJpbWl0aXZlVmFsdWUuZ2V0RmxvYXRWYWx1ZSgpIGNvbnZlcnRzIHVuaXRzIGNvcnJlY3Rs
eS4iKTsKKworZnVuY3Rpb24gZ2V0RmxvYXRWYWx1ZShwcm9wZXJ0eU5hbWUsIHVuaXQpCit7Cisg
ICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0LWRpdiIpLnN0eWxl
LmdldFByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHlOYW1lKS5nZXRGbG9hdFZhbHVlKHVuaXQpOwor
ICAgIHJldHVybiBOdW1iZXIocmVzdWx0LnRvRml4ZWQoNikpOworfQorCitmdW5jdGlvbiBnZXRG
aXJzdEZsb2F0VmFsdWVJbkxpc3QocHJvcGVydHlOYW1lLCB1bml0KQoreworICAgIHZhciByZXN1
bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdC1kaXYiKS5zdHlsZS5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKHByb3BlcnR5TmFtZSlbMF1bMF0uZ2V0RmxvYXRWYWx1ZSh1bml0KTsKKyAgICBy
ZXR1cm4gTnVtYmVyKHJlc3VsdC50b0ZpeGVkKDYpKTsKK30KKworc2hvdWxkQmUoImdldEZsb2F0
VmFsdWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QVCkiLCAiMTAiKTsKK3No
b3VsZEJlKCJnZXRGbG9hdFZhbHVlKCdmb250LXNpemUnLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1Nf
TU0pIiwgIjMuNTI3Nzc4Iik7CitzaG91bGRCZSgiZ2V0RmxvYXRWYWx1ZSgnZm9udC1zaXplJywg
Q1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0NNKSIsICIwLjM1Mjc3OCIpOworc2hvdWxkQmUoImdldEZs
b2F0VmFsdWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19JTikiLCAiMC4xMzg4
ODkiKTsKK3Nob3VsZEJlKCJnZXRGbG9hdFZhbHVlKCdmb250LXNpemUnLCBDU1NQcmltaXRpdmVW
YWx1ZS5DU1NfUEMpIiwgIjAuODMzMzMzIik7CitzaG91bGRCZSgiZ2V0RmxvYXRWYWx1ZSgnZm9u
dC1zaXplJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1BYKSIsICIxMy4zMzMzMzMiKTsKK3Nob3Vs
ZEJlKCJnZXRGaXJzdEZsb2F0VmFsdWVJbkxpc3QoJy13ZWJraXQtdHJhbnNmb3JtJywgQ1NTUHJp
bWl0aXZlVmFsdWUuQ1NTX0RFRykiLCAiOTAiKTsKK3Nob3VsZEJlKCJnZXRGaXJzdEZsb2F0VmFs
dWVJbkxpc3QoJy13ZWJraXQtdHJhbnNmb3JtJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1JBRCki
LCAiMS41NzA3OTYiKTsKK3Nob3VsZEJlKCJnZXRGaXJzdEZsb2F0VmFsdWVJbkxpc3QoJy13ZWJr
aXQtdHJhbnNmb3JtJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0dSQUQpIiwgIjEwMCIpOworc2hv
dWxkQmUoImdldEZsb2F0VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5JywgQ1NTUHJpbWl0
aXZlVmFsdWUuQ1NTX01TKSIsICIyMDAiKTsKK3Nob3VsZEJlKCJnZXRGbG9hdFZhbHVlKCctd2Vi
a2l0LWFuaW1hdGlvbi1kZWxheScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19TKSIsICIwLjIiKTsK
Kworc2hvdWxkVGhyb3coImdldEZsb2F0VmFsdWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1pdGl2ZVZh
bHVlLkNTU19OVU1CRVIpIiwgImludmFsaWRBY2Nlc3NFcnJvciIpOworc2hvdWxkVGhyb3coImdl
dEZsb2F0VmFsdWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QRVJDRU5UQUdF
KSIsICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsKK3Nob3VsZFRocm93KCJnZXRGbG9hdFZhbHVlKCdm
b250LXNpemUnLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTVMpIiwgImludmFsaWRBY2Nlc3NFcnJv
ciIpOworc2hvdWxkVGhyb3coImdldEZsb2F0VmFsdWUoJ2ZvbnQtc2l6ZScsIENTU1ByaW1pdGl2
ZVZhbHVlLkNTU19IWikiLCAiaW52YWxpZEFjY2Vzc0Vycm9yIik7CitzaG91bGRUaHJvdygiZ2V0
RmxvYXRWYWx1ZSgnZm9udC1zaXplJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX0RFRykiLCAiaW52
YWxpZEFjY2Vzc0Vycm9yIik7CitzaG91bGRUaHJvdygiZ2V0RmxvYXRWYWx1ZSgnZm9udC1zaXpl
JywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1JHQkNPTE9SKSIsICJpbnZhbGlkQWNjZXNzRXJyb3Ii
KTsKKworc2hvdWxkVGhyb3coImdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgnLXdlYmtpdC10cmFu
c2Zvcm0nLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSIsICJpbnZhbGlkQWNjZXNzRXJy
b3IiKTsKK3Nob3VsZFRocm93KCJnZXRGaXJzdEZsb2F0VmFsdWVJbkxpc3QoJy13ZWJraXQtdHJh
bnNmb3JtJywgQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1BFUkNFTlRBR0UpIiwgImludmFsaWRBY2Nl
c3NFcnJvciIpOworc2hvdWxkVGhyb3coImdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgnLXdlYmtp
dC10cmFuc2Zvcm0nLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUFgpIiwgImludmFsaWRBY2Nlc3NF
cnJvciIpOworc2hvdWxkVGhyb3coImdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgnLXdlYmtpdC10
cmFuc2Zvcm0nLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTVMpIiwgImludmFsaWRBY2Nlc3NFcnJv
ciIpOworc2hvdWxkVGhyb3coImdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgnLXdlYmtpdC10cmFu
c2Zvcm0nLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfSFopIiwgImludmFsaWRBY2Nlc3NFcnJvciIp
Oworc2hvdWxkVGhyb3coImdldEZpcnN0RmxvYXRWYWx1ZUluTGlzdCgnLXdlYmtpdC10cmFuc2Zv
cm0nLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUkdCQ09MT1IpIiwgImludmFsaWRBY2Nlc3NFcnJv
ciIpOworCitzaG91bGRUaHJvdygiZ2V0RmxvYXRWYWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tZGVs
YXknLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSIsICJpbnZhbGlkQWNjZXNzRXJyb3Ii
KTsKK3Nob3VsZFRocm93KCJnZXRGbG9hdFZhbHVlKCctd2Via2l0LWFuaW1hdGlvbi1kZWxheScs
IENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QRVJDRU5UQUdFKSIsICJpbnZhbGlkQWNjZXNzRXJyb3Ii
KTsKK3Nob3VsZFRocm93KCJnZXRGbG9hdFZhbHVlKCctd2Via2l0LWFuaW1hdGlvbi1kZWxheScs
IENTU1ByaW1pdGl2ZVZhbHVlLkNTU19QWCkiLCAiaW52YWxpZEFjY2Vzc0Vycm9yIik7CitzaG91
bGRUaHJvdygiZ2V0RmxvYXRWYWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tZGVsYXknLCBDU1NQcmlt
aXRpdmVWYWx1ZS5DU1NfREVHKSIsICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsKK3Nob3VsZFRocm93
KCJnZXRGbG9hdFZhbHVlKCctd2Via2l0LWFuaW1hdGlvbi1kZWxheScsIENTU1ByaW1pdGl2ZVZh
bHVlLkNTU19IWikiLCAiaW52YWxpZEFjY2Vzc0Vycm9yIik7CitzaG91bGRUaHJvdygiZ2V0Rmxv
YXRWYWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tZGVsYXknLCBDU1NQcmltaXRpdmVWYWx1ZS5DU1Nf
UkdCQ09MT1IpIiwgImludmFsaWRBY2Nlc3NFcnJvciIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvcmVzb3VyY2VzL0NTU1ByaW1pdGl2ZVZhbHVlLWV4Y2VwdGlvbnMuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvQ1NTUHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy5q
cwppbmRleCBlMTk2ZTE3Li45MzM4MDEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9yZXNvdXJjZXMvQ1NTUHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy5qcworKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvQ1NTUHJpbWl0aXZlVmFsdWUtZXhjZXB0aW9ucy5qcwpA
QCAtMiw2ICsyLDcgQEAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB0aGUgbWV0aG9kcyBv
biBDU1NQcmltaXRpdmVWYWx1ZSB0aHJvdyBleGNlcHRpb25zICIKIAogZGl2ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CiBkaXYuc3R5bGUud2lkdGggPSAiMTBweCI7CitkaXYuc3R5
bGUuaGVpZ2h0ID0gIjkwJSI7CiBkaXYuc3R5bGUuY29udGVudCA9ICJjb3VudGVyKGR1bW15LCBz
cXVhcmUpIjsKIGRpdi5zdHlsZS5jbGlwID0gInJlY3QoMCwgMCwgMSwgMSkiOwogZGl2LnN0eWxl
LmNvbG9yID0gInJnYigwLCAwLCAwKSI7CkBAIC0xMiw2ICsxMywxNSBAQCB2YXIgaW52YWxpZEFj
Y2Vzc0Vycm9yID0gIkVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUi
Owogc2hvdWxkVGhyb3coImRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCd3aWR0aCcpLmdl
dEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1VOS05PV04pIiwgImludmFsaWRBY2Nl
c3NFcnJvciIpOwogc2hvdWxkVGhyb3coImRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCd3
aWR0aCcpLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX1NUUklORykiLCAiaW52
YWxpZEFjY2Vzc0Vycm9yIik7CiAKKy8vIFRlc3QgaW52YWxpZCB1bml0IGNvbnZlcnNpb25zIGlu
IGdldEZsb2F0VmFsdWUKK3Nob3VsZFRocm93KCJkaXYuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1
ZSgnd2lkdGgnKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19IWikiLCAiaW52
YWxpZEFjY2Vzc0Vycm9yIik7CitzaG91bGRUaHJvdygiZGl2LnN0eWxlLmdldFByb3BlcnR5Q1NT
VmFsdWUoJ3dpZHRoJykuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUykiLCAi
aW52YWxpZEFjY2Vzc0Vycm9yIik7CitzaG91bGRUaHJvdygiZGl2LnN0eWxlLmdldFByb3BlcnR5
Q1NTVmFsdWUoJ3dpZHRoJykuZ2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUkFE
KSIsICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsKK3Nob3VsZFRocm93KCJkaXYuc3R5bGUuZ2V0UHJv
cGVydHlDU1NWYWx1ZSgnd2lkdGgnKS5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNT
U19QRVJDRU5UQUdFKSIsICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsKK3Nob3VsZFRocm93KCJkaXYu
c3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnaGVpZ2h0JykuZ2V0RmxvYXRWYWx1ZShDU1NQcmlt
aXRpdmVWYWx1ZS5DU1NfTlVNQkVSKSIsICJpbnZhbGlkQWNjZXNzRXJyb3IiKTsKK3Nob3VsZFRo
cm93KCJkaXYuc3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnaGVpZ2h0JykuZ2V0RmxvYXRWYWx1
ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUFgpIiwgImludmFsaWRBY2Nlc3NFcnJvciIpOworc2hv
dWxkVGhyb3coImRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdoZWlnaHQnKS5nZXRGbG9h
dFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlLkNTU19ERUcpIiwgImludmFsaWRBY2Nlc3NFcnJvciIp
OworCiAvLyBUZXN0IGNhbGxpbmcgZ2V0KlZhbHVlIGZvciBDU1NQcmltaXRpdmVWYWx1ZSBvZiB0
aGUgd3JvbmcgdHlwZQogc2hvdWxkQmUoImRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdj
bGlwJykucHJpbWl0aXZlVHlwZSIsICJDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUkVDVCIpOwogc2hv
dWxkVGhyb3coImRpdi5zdHlsZS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCdjbGlwJykuZ2V0RmxvYXRW
YWx1ZShDU1NQcmltaXRpdmVWYWx1ZS5DU1NfUFgpIiwgImludmFsaWRBY2Nlc3NFcnJvciIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jc3Mv
Z2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3Rl
ZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzQyMDQ4MC4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L2Nzcy9nZXRG
bG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLTU4MWFmNTc4Y2MyYzk0MGU4MDdhYWFkYmEwN2FlM2E4ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQt
ZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODFjZDE5Li4wMDAw
MDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zh
c3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qv
Y3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVj
dGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTZkMDUxLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2Nzcy9nZXRG
bG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLTY3OGNmOWFlZWE1ZjEzYjY4YmMzZWI2YTI5MjQyNjY3ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMDk4OGYuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvY3Nz
L2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvY3NzL2dl
dEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhZjg2MzUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLWxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQK
LSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDAKLSAgICAgIFJlbmRl
ckJsb2NrIChhbm9ueW1vdXMpIGF0ICgwLDApIHNpemUgNzg0eDIwCi0gICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ1eDE5Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggNDU6ICIxMHB0ID0gIgotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ1
LDApIHNpemUgMzc4eDE5Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDQ1LDApIHdpZHRoIDM3ODog
IjMuNDM5NTgzMzAxNTQ0MTg5NW1tIChzaG91bGQgYmUgMy40Mzk1ODMzMDE1NDQxODk1KSIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL2Zhc3QvY3NzL2dldEZs
b2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxlb3BhcmQvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQuY2hlY2tz
dW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2YTg1YjUuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZv
clVuaXQtZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1mMWQ3
NTY0ZGMyM2ViM2I1MGI4MTk3MWU3OWE4NjcxOApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL2Zhc3QvY3NzL2dl
dEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1sZW9wYXJkL2Zhc3QvY3NzL2dldEZsb2F0VmFsdWVGb3JVbml0LWV4cGVjdGVkLnBuZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmI1OTYyYy4uMDAwMDAwMApCaW5hcnkgZmlsZXMg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVl
Rm9yVW5pdC1leHBlY3RlZC5wbmcgYW5kIC9kZXYvbnVsbCBkaWZmZXIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBl
Y3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRGbG9h
dFZhbHVlRm9yVW5pdC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTk4OTg3Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVs
bApAQCAtMSArMCwwIEBACi0zNDVhOWJlOTkyZGJiODNiYWRjYzg2ZWFkMmQ5MGViZgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQucG5n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODIzZmNjLi4wMDAwMDAwCkJpbmFyeSBm
aWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9y
VW5pdC1leHBlY3RlZC5wbmcgYW5kIC9kZXYvbnVsbCBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZv
clVuaXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjgxYTJj
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9nZXRGbG9h
dFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBA
Ci1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkg
c2l6ZSA3ODR4NTg0Ci0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgw
Ci0gICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXplIDc4NHgxOAotICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NXgxOAotICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ1OiAiMTBwdCA9ICIKLSAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICg0NSwwKSBzaXplIDM4M3gxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICg0NSww
KSB3aWR0aCAzODM6ICIzLjQzOTU4MzMwMTU0NDE4OTVtbSAoc2hvdWxkIGJlIDMuNDM5NTgzMzAx
NTQ0MTg5NSkiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2Nzcy9n
ZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9mYXN0L2Nzcy9nZXRGbG9hdFZhbHVlRm9yVW5pdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDVkNGU0NzAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvZmFzdC9jc3MvZ2V0RmxvYXRWYWx1ZUZvclVuaXQtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0g
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAotICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MAotICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykg
YXQgKDAsMCkgc2l6ZSA3ODR4MTkKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNDR4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NDogIjEwcHQg
PSAiCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDQsMCkgc2l6ZSAzODR4MTkKLSAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNDQsMCkgd2lkdGggMzg0OiAiMy40Mzk1ODMzMDE1NDQxODk1
bW0gKHNob3VsZCBiZSAzLjQzOTU4MzMwMTU0NDE4OTUpIgotICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWIzMDQwYS4uZWIwOGYxMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAor
MjAxMC0xMS0xMiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENTU1ByaW1pdGl2
ZVZhbHVlLmdldEZsb2F0VmFsdWUgZG9lcyBub3QgY29udmVydCBzaXplcworCisgICAgICAgIElt
cGxlbWVudGVkIGFsbCBzYW1lLWNhdGVnb3J5IHVuaXQgY29udmVyc2lvbnMgKGxlbmd0aCwgYW5n
bGUsIHRpbWUsIGZyZXF1ZW5jeSkgYW5kIGxlZnQKKyAgICAgICAgYWJzb2x1dGUtcmVsYXRpdmUg
KGNtLCBtbSwgaW4sIHB0LCBwYykgbGVuZ3RoIGNvbnZlcnNpb25zIGludGFjdCAoYXNzdW1pbmcg
YSBtb25pdG9yIHJlc29sdXRpb24gb2YgOTZwcGkpLgorICAgICAgICBJbGxlZ2FsIHVuaXQgY29u
dmVyc2lvbiBhdHRlbXB0cyB3aWxsIHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBET01FeGNl
cHRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NTc3MAorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnVuaXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpzY2FsZUZhY3RvckZvckNv
bnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmdldERvdWJs
ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjYW5vbmljYWxV
bml0VHlwZUZvckNhdGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpnZXREb3VibGVWYWx1ZUludGVybmFsKToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuaDoKKwogMjAxMC0xMS0xMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5jcHAKaW5kZXggMDY1YzI0NC4uZTEyOTQ4NiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVk
ZSAiQ291bnRlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJNYXRo
RXh0cmFzLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhaXIuaCIKICNpbmNsdWRl
ICJSR0JDb2xvci5oIgpAQCAtNDcsNiArNDgsMzggQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdENhdGVnb3J5IHVu
aXRDYXRlZ29yeShDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzIHR5cGUpCit7CisgICAgLy8g
SGVyZSB3ZSB2aW9sYXRlIHRoZSBzcGVjIChodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwt
Mi1TdHlsZS9jc3MuaHRtbCNDU1MtQ1NTUHJpbWl0aXZlVmFsdWUpCisgICAgLy8gYW5kIGFsbG93
IGNvbnZlcnNpb25zIGJldHdlZW4gQ1NTX1BYIGFuZCByZWxhdGl2ZSBsZW5ndGggdW5pdHMgYXNz
dW1pbmcgYSA5NnBwaSBzY3JlZW4gKHNlZSBDU1NIZWxwZXIuaCkuCisgICAgc3dpdGNoICh0eXBl
KSB7CisgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUjoKKyAgICAgICAgcmV0
dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpVTnVtYmVyOworICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19QRVJDRU5UQUdFOgorICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVQ
ZXJjZW50OworICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWDoKKyAgICBjYXNlIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfQ006CisgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X01NOgorICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JTjoKKyAgICBjYXNlIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfUFQ6CisgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BD
OgorICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVMZW5ndGg7CisgICAgY2FzZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX01TOgorICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19TOgorICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OlVUaW1lOworICAgIGNhc2Ug
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19ERUc6CisgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1JBRDoKKyAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfR1JBRDoKKyAgICBjYXNl
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVFVSTjoKKyAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2
ZVZhbHVlOjpVQW5nbGU7CisgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0haOgorICAg
IGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19LSFo6CisgICAgICAgIHJldHVybiBDU1NQcmlt
aXRpdmVWYWx1ZTo6VUZyZXF1ZW5jeTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gQ1NT
UHJpbWl0aXZlVmFsdWU6OlVPdGhlcjsKKyAgICB9Cit9CisKIHR5cGVkZWYgSGFzaE1hcDxjb25z
dCBDU1NQcmltaXRpdmVWYWx1ZSosIFN0cmluZz4gQ1NTVGV4dENhY2hlOwogc3RhdGljIENTU1Rl
eHRDYWNoZSYgY3NzVGV4dENhY2hlKCkKIHsKQEAgLTU1LDcgKzg4LDcgQEAgc3RhdGljIENTU1Rl
eHRDYWNoZSYgY3NzVGV4dENhY2hlKCkKIH0KIAogLy8gQSBtb3JlIHN0eWxpc2ggc29sdXRpb24g
dGhhbiBzaGFyaW5nIHdvdWxkIGJlIHRvIHR1cm4gQ1NTUHJpbWl0aXZlVmFsdWUgKG9yIENTU1Zh
bHVlcyBpbiBnZW5lcmFsKSBpbnRvIG5vbi12aXJ0dWFsLAotLy8gbm9uLXJlZmNvdW50ZWQgc2lt
cGxlIHR5cGUgd2l0aCB2YWx1ZSBzZW1hbnRpY3MuIEluIHByYWN0aWNlIHRoZXNlIHNoYXJpbmcg
dHJpY2tzIGdldCBzaW1pbGFyIG1lbW9yeSBiZW5lZml0cyAKKy8vIG5vbi1yZWZjb3VudGVkIHNp
bXBsZSB0eXBlIHdpdGggdmFsdWUgc2VtYW50aWNzLiBJbiBwcmFjdGljZSB0aGVzZSBzaGFyaW5n
IHRyaWNrcyBnZXQgc2ltaWxhciBtZW1vcnkgYmVuZWZpdHMKIC8vIHdpdGggbGVzcyBuZWVkIGZv
ciByZWZhY3RvcmluZy4KIAogaW5saW5lIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVVbmNhY2hlZElkZW50aWZpZXIoaW50IGlkZW50aWZpZXIp
CkBAIC00MjYsOCArNDU5LDEzIEBAIHZvaWQgQ1NTUHJpbWl0aXZlVmFsdWU6OnNldEZsb2F0VmFs
dWUodW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIGRvdWJsZSBmbG9hdFZhbHVlCiBzdGF0aWMgZG91
YmxlIHNjYWxlRmFjdG9yRm9yQ29udmVyc2lvbih1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSkKIHsK
ICAgICBkb3VibGUgZmFjdG9yID0gMS4wOworICAgIC8vIEZJWE1FOiB0aGUgc3dpdGNoIGNhbiBi
ZSByZXBsYWNlZCBieSBhbiBhcnJheSBvZiBzY2FsZSBmYWN0b3JzLgogICAgIHN3aXRjaCAodW5p
dFR5cGUpIHsKKyAgICAgICAgLy8gVGhlc2UgYXJlICJjYW5vbmljYWwiIHVuaXRzIGluIHRoZWly
IHJlc3BlY3RpdmUgY2F0ZWdvcmllcy4KICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1BYOgorICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfREVHOgorICAgICAg
ICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTVM6CisgICAgICAgIGNhc2UgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19IWjoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfQ006CiAgICAgICAgICAgICBmYWN0b3IgPSBjc3NQaXhlbHNQZXJJ
bmNoIC8gMi41NDsgLy8gKDIuNTQgY20vaW4pCkBAIC00NDQsNiArNDgyLDE5IEBAIHN0YXRpYyBk
b3VibGUgc2NhbGVGYWN0b3JGb3JDb252ZXJzaW9uKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKQog
ICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEM6CiAgICAgICAgICAgICBmYWN0
b3IgPSBjc3NQaXhlbHNQZXJJbmNoICogMTIuMCAvIDcyLjA7IC8vIDEgcGMgPT0gMTIgcHQKICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUkFE
OgorICAgICAgICAgICAgZmFjdG9yID0gMTgwIC8gcGlEb3VibGU7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0dSQUQ6CisgICAgICAgICAg
ICBmYWN0b3IgPSAwLjk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1RVUk46CisgICAgICAgICAgICBmYWN0b3IgPSAzNjA7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1M6CisgICAg
ICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19LSFo6CisgICAgICAgICAgICBmYWN0b3Ig
PSAxMDAwOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICBicmVhazsKICAgICB9CkBAIC00NTMsNTAgKzUwNCw5MiBAQCBzdGF0aWMgZG91YmxlIHNjYWxl
RmFjdG9yRm9yQ29udmVyc2lvbih1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSkKIAogZG91YmxlIENT
U1ByaW1pdGl2ZVZhbHVlOjpnZXREb3VibGVWYWx1ZSh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgZWMgPSAwOwotICAgIGlmIChtX3R5cGUgPCBDU1Nf
TlVNQkVSIHx8IG1fdHlwZSA+IENTU19ESU1FTlNJT04gfHwgdW5pdFR5cGUgPCBDU1NfTlVNQkVS
IHx8IHVuaXRUeXBlID4gQ1NTX0RJTUVOU0lPTikgeworICAgIGRvdWJsZSByZXN1bHQ7CisgICAg
Ym9vbCBzdWNjZXNzID0gZ2V0RG91YmxlVmFsdWVJbnRlcm5hbChzdGF0aWNfY2FzdDxVbml0VHlw
ZXM+KHVuaXRUeXBlKSwgJnJlc3VsdCk7CisgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIGVj
ID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1cm4gMC4wOwogICAgIH0KIAotICAg
IGlmICh1bml0VHlwZSA9PSBtX3R5cGUgfHwgdW5pdFR5cGUgPCBDU1NfUFggfHwgdW5pdFR5cGUg
PiBDU1NfUEMpCi0gICAgICAgIHJldHVybiBtX3ZhbHVlLm51bTsKKyAgICBlYyA9IDA7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KIAotICAgIGRvdWJsZSBjb252ZXJ0ZWRWYWx1ZSA9IG1fdmFsdWUu
bnVtOworZG91YmxlIENTU1ByaW1pdGl2ZVZhbHVlOjpnZXREb3VibGVWYWx1ZSh1bnNpZ25lZCBz
aG9ydCB1bml0VHlwZSkKK3sKKyAgICBkb3VibGUgcmVzdWx0OworICAgIGdldERvdWJsZVZhbHVl
SW50ZXJuYWwoc3RhdGljX2Nhc3Q8VW5pdFR5cGVzPih1bml0VHlwZSksICZyZXN1bHQpOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK0NTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgQ1NTUHJp
bWl0aXZlVmFsdWU6OmNhbm9uaWNhbFVuaXRUeXBlRm9yQ2F0ZWdvcnkoVW5pdENhdGVnb3J5IGNh
dGVnb3J5KQoreworICAgIHN3aXRjaCAoY2F0ZWdvcnkpIHsKKyAgICBjYXNlIFVMZW5ndGg6Cisg
ICAgICAgIHJldHVybiBDU1NfUFg7CisgICAgY2FzZSBVUGVyY2VudDoKKyAgICAgICAgcmV0dXJu
IENTU19VTktOT1dOOyAvLyBDYW5ub3QgY29udmVydCBiZXR3ZWVuIG51bWJlcnMgYW5kIHBlcmNl
bnQuCisgICAgY2FzZSBVVGltZToKKyAgICAgICAgcmV0dXJuIENTU19NUzsKKyAgICBjYXNlIFVB
bmdsZToKKyAgICAgICAgcmV0dXJuIENTU19ERUc7CisgICAgY2FzZSBVRnJlcXVlbmN5OgorICAg
ICAgICByZXR1cm4gQ1NTX0haOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBDU1NfVU5L
Tk9XTjsKKyAgICB9Cit9CiAKLSAgICAvLyBGaXJzdCBjb252ZXJ0IHRoZSB2YWx1ZSBmcm9tIG1f
dHlwZSBpbnRvIENTU1BpeGVscwotICAgIGRvdWJsZSBmYWN0b3IgPSBzY2FsZUZhY3RvckZvckNv
bnZlcnNpb24obV90eXBlKTsKLSAgICBjb252ZXJ0ZWRWYWx1ZSAqPSBmYWN0b3I7Citib29sIENT
U1ByaW1pdGl2ZVZhbHVlOjpnZXREb3VibGVWYWx1ZUludGVybmFsKFVuaXRUeXBlcyByZXF1ZXN0
ZWRVbml0VHlwZSwgZG91YmxlKiByZXN1bHQpCit7CisgICAgaWYgKG1fdHlwZSA8IENTU19OVU1C
RVIgfHwgKG1fdHlwZSA+IENTU19LSFogJiYgbV90eXBlIDwgQ1NTX1RVUk4pIHx8IHJlcXVlc3Rl
ZFVuaXRUeXBlIDwgQ1NTX05VTUJFUiB8fCAocmVxdWVzdGVkVW5pdFR5cGUgPiBDU1NfS0haICYm
IHJlcXVlc3RlZFVuaXRUeXBlIDwgQ1NTX1RVUk4pKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKHJlcXVlc3RlZFVuaXRUeXBlID09IG1fdHlwZSkgeworICAgICAgICAqcmVzdWx0ID0g
bV92YWx1ZS5udW07CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAotICAgIC8vIE5vdyBj
b252ZXJ0IGZyb20gQ1NTUGl4ZWxzIHRvIHRoZSBzcGVjaWZpZWQgdW5pdFR5cGUKLSAgICBmYWN0
b3IgPSBzY2FsZUZhY3RvckZvckNvbnZlcnNpb24odW5pdFR5cGUpOwotICAgIGNvbnZlcnRlZFZh
bHVlIC89IGZhY3RvcjsKIAotICAgIHJldHVybiBjb252ZXJ0ZWRWYWx1ZTsKLX0KKyAgICBVbml0
VHlwZXMgc291cmNlVW5pdFR5cGUgPSBzdGF0aWNfY2FzdDxVbml0VHlwZXM+KG1fdHlwZSk7Cisg
ICAgVW5pdENhdGVnb3J5IHNvdXJjZUNhdGVnb3J5ID0gdW5pdENhdGVnb3J5KHNvdXJjZVVuaXRU
eXBlKTsKKyAgICBBU1NFUlQoc291cmNlQ2F0ZWdvcnkgIT0gVU90aGVyKTsKIAotZG91YmxlIENT
U1ByaW1pdGl2ZVZhbHVlOjpnZXREb3VibGVWYWx1ZSh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSkK
LXsKLSAgICBpZiAobV90eXBlIDwgQ1NTX05VTUJFUiB8fCBtX3R5cGUgPiBDU1NfRElNRU5TSU9O
IHx8IHVuaXRUeXBlIDwgQ1NTX05VTUJFUiB8fCB1bml0VHlwZSA+IENTU19ESU1FTlNJT04pCi0g
ICAgICAgIHJldHVybiAwOworICAgIFVuaXRUeXBlcyB0YXJnZXRVbml0VHlwZSA9IHJlcXVlc3Rl
ZFVuaXRUeXBlOworICAgIFVuaXRDYXRlZ29yeSB0YXJnZXRDYXRlZ29yeSA9IHVuaXRDYXRlZ29y
eSh0YXJnZXRVbml0VHlwZSk7CisgICAgQVNTRVJUKHRhcmdldENhdGVnb3J5ICE9IFVPdGhlcik7
CiAKLSAgICBpZiAodW5pdFR5cGUgPT0gbV90eXBlIHx8IHVuaXRUeXBlIDwgQ1NTX1BYIHx8IHVu
aXRUeXBlID4gQ1NTX1BDKQotICAgICAgICByZXR1cm4gbV92YWx1ZS5udW07CisgICAgLy8gQ2Fu
bm90IGNvbnZlcnQgYmV0d2VlbiB1bnJlbGF0ZWQgdW5pdCBjYXRlZ29yaWVzLgorICAgIGlmIChz
b3VyY2VDYXRlZ29yeSAhPSB0YXJnZXRDYXRlZ29yeSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKHRhcmdldFVuaXRUeXBlID09IENTU19OVU1CRVIpIHsKKyAgICAgICAgLy8gV2Ug
aW50ZXJwcmV0IGNvbnZlcnNpb24gdG8gQ1NTX05VTUJFUiBhcyBjb252ZXJzaW9uIHRvIGEgY2Fu
b25pY2FsIHVuaXQgaW4gdGhpcyB2YWx1ZSdzIGNhdGVnb3J5LgorICAgICAgICB0YXJnZXRVbml0
VHlwZSA9IGNhbm9uaWNhbFVuaXRUeXBlRm9yQ2F0ZWdvcnkoc291cmNlQ2F0ZWdvcnkpOworICAg
ICAgICBpZiAodGFyZ2V0VW5pdFR5cGUgPT0gQ1NTX1VOS05PV04pCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKHNvdXJjZVVuaXRUeXBlID09IENTU19OVU1CRVIp
IHsKKyAgICAgICAgLy8gV2UgaW50ZXJwcmV0IGNvbnZlcnNpb24gZnJvbSBDU1NfTlVNQkVSIGlu
IHRoZSBzYW1lIHdheSBhcyBDU1NQYXJzZXI6OnZhbGlkVW5pdCgpIHdoaWxlIHVzaW5nIG5vbi1z
dHJpY3QgbW9kZS4KKyAgICAgICAgc291cmNlVW5pdFR5cGUgPSBjYW5vbmljYWxVbml0VHlwZUZv
ckNhdGVnb3J5KHRhcmdldENhdGVnb3J5KTsKKyAgICAgICAgaWYgKHNvdXJjZVVuaXRUeXBlID09
IENTU19VTktOT1dOKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIGRv
dWJsZSBjb252ZXJ0ZWRWYWx1ZSA9IG1fdmFsdWUubnVtOwogCi0gICAgLy8gRmlyc3QgY29udmVy
dCB0aGUgdmFsdWUgZnJvbSBtX3R5cGUgaW50byBDU1NQaXhlbHMKLSAgICBkb3VibGUgZmFjdG9y
ID0gc2NhbGVGYWN0b3JGb3JDb252ZXJzaW9uKG1fdHlwZSk7CisgICAgLy8gRmlyc3QgY29udmVy
dCB0aGUgdmFsdWUgZnJvbSBtX3R5cGUgdG8gY2Fub25pY2FsIHR5cGUuCisgICAgZG91YmxlIGZh
Y3RvciA9IHNjYWxlRmFjdG9yRm9yQ29udmVyc2lvbihzb3VyY2VVbml0VHlwZSk7CiAgICAgY29u
dmVydGVkVmFsdWUgKj0gZmFjdG9yOwogCi0gICAgLy8gTm93IGNvbnZlcnQgZnJvbSBDU1NQaXhl
bHMgdG8gdGhlIHNwZWNpZmllZCB1bml0VHlwZQotICAgIGZhY3RvciA9IHNjYWxlRmFjdG9yRm9y
Q29udmVyc2lvbih1bml0VHlwZSk7CisgICAgLy8gTm93IGNvbnZlcnQgZnJvbSBjYW5vbmljYWwg
dHlwZSB0byB0aGUgdGFyZ2V0IHVuaXRUeXBlLgorICAgIGZhY3RvciA9IHNjYWxlRmFjdG9yRm9y
Q29udmVyc2lvbih0YXJnZXRVbml0VHlwZSk7CiAgICAgY29udmVydGVkVmFsdWUgLz0gZmFjdG9y
OwogCi0gICAgcmV0dXJuIGNvbnZlcnRlZFZhbHVlOworICAgICpyZXN1bHQgPSBjb252ZXJ0ZWRW
YWx1ZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotCiB2b2lkIENTU1ByaW1pdGl2ZVZhbHVlOjpz
ZXRTdHJpbmdWYWx1ZSh1bnNpZ25lZCBzaG9ydCBzdHJpbmdUeXBlLCBjb25zdCBTdHJpbmcmIHN0
cmluZ1ZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlYyA9IDA7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaAppbmRleCBiYjNlYTcwLi5hZWExMTYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
LmgKQEAgLTk0LDYgKzk0LDE3IEBAIHB1YmxpYzoKICAgICAgICAgQ1NTX1JFTVMgPSAxMDkKICAg
ICB9OwogICAgIAorICAgIC8vIFRoaXMgZW51bSBmb2xsb3dzIHRoZSBDU1NQYXJzZXI6OlVuaXRz
IGVudW0gYXVnbWVudGVkIHdpdGggVU5JVF9GUkVRVUVOQ1kgZm9yIGZyZXF1ZW5jaWVzLgorICAg
IGVudW0gVW5pdENhdGVnb3J5IHsKKyAgICAgICAgVU51bWJlciwKKyAgICAgICAgVVBlcmNlbnQs
CisgICAgICAgIFVMZW5ndGgsCisgICAgICAgIFVBbmdsZSwKKyAgICAgICAgVVRpbWUsCisgICAg
ICAgIFVGcmVxdWVuY3ksCisgICAgICAgIFVPdGhlcgorICAgIH07CisKICAgICBzdGF0aWMgYm9v
bCBpc1VuaXRUeXBlTGVuZ3RoKGludCB0eXBlKSB7IHJldHVybiAodHlwZSA+IENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSAmJiB0eXBlIDwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19E
RUcpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1JFTVM7IH0KIApAQCAtMjA0LDEwICsy
MTUsMTMgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gY3JlYXRlVW5jYWNoZWRDb2xvcih1bnNpZ25lZCByZ2JWYWx1ZSk7CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNyZWF0ZVVuY2FjaGVkKGRvdWJsZSB2YWx1ZSwg
VW5pdFR5cGVzIHR5cGUpOwogCisgICAgc3RhdGljIFVuaXRUeXBlcyBjYW5vbmljYWxVbml0VHlw
ZUZvckNhdGVnb3J5KFVuaXRDYXRlZ29yeSBjYXRlZ29yeSk7CisKICAgICB2b2lkIGluaXQoUGFz
c1JlZlB0cjxDb3VudGVyPik7CiAgICAgdm9pZCBpbml0KFBhc3NSZWZQdHI8UmVjdD4pOwogICAg
IHZvaWQgaW5pdChQYXNzUmVmUHRyPFBhaXI+KTsKICAgICB2b2lkIGluaXQoUGFzc1JlZlB0cjxE
YXNoYm9hcmRSZWdpb24+KTsgLy8gRklYTUU6IERhc2hib2FyZCByZWdpb24gc2hvdWxkIG5vdCBi
ZSBhIHByaW1pdGl2ZSB2YWx1ZS4KKyAgICBib29sIGdldERvdWJsZVZhbHVlSW50ZXJuYWwoVW5p
dFR5cGVzIHRhcmdldFVuaXRUeXBlLCBkb3VibGUqIHJlc3VsdCk7CiAKICAgICB2aXJ0dWFsIGJv
b2wgaXNQcmltaXRpdmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAo=
</data>
<flag name="review"
          id="64252"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>