<?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>89963</bug_id>
          
          <creation_ts>2012-06-26 02:37:02 -0700</creation_ts>
          <short_desc>[Platform] Implement Date Time format parser</short_desc>
          <delta_ts>2012-06-29 00:27:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>88970</blocked>
    
    <blocked>90236</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>yosin</reporter>
          <assigned_to>yosin</assigned_to>
          <cc>rakuco</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>657438</commentid>
    <comment_count>0</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-06-26 02:37:02 -0700</bug_when>
    <thetext>To implement input type &quot;time&quot;, we would like to have date time format text (Unicode TR35 LDML) parser for handling localized date time format.

Definition of date format pattern in LDML is found in
http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657450</commentid>
    <comment_count>1</comment_count>
      <attachid>149499</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-26 02:54:29 -0700</bug_when>
    <thetext>Created attachment 149499
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657451</commentid>
    <comment_count>2</comment_count>
      <attachid>149499</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-26 02:57:06 -0700</bug_when>
    <thetext>Comment on attachment 149499
Patch 1

Could you review this patch?
Thanks in advance.

* This patch is part of time input type implementation.
* Usage of DateTimeFormat class is found in WebCore/html/shadow/DateTimeEditElement.cpp in attachment of https://bugs.webkit.org/show_bug.cgi?id=88970</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658264</commentid>
    <comment_count>3</comment_count>
      <attachid>149499</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-26 19:29:40 -0700</bug_when>
    <thetext>Comment on attachment 149499
Patch 1

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        This patch introduces Unicode TR35 LDML date time format parser for
&gt; +        implementing input type &quot;time&quot; with localized time format.

You had better mention ICU support, and plans for other platforms such as Windows and OS X.

&gt; Source/WebCore/platform/text/DateTimeFormat.h:34
&gt; +#if ENABLE(TIME_INPUT_FIELDS)

I&apos;m not sure if ENABLE_TIME_INPUT_FIELDS is a nice concrete name.  If we made super-verbose one, it would be ENABLE_INPUT_TYPE_TIME_INLINE_EDITABLE_MULTIPLE_FIELDS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658318</commentid>
    <comment_count>4</comment_count>
      <attachid>149499</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-26 21:18:20 -0700</bug_when>
    <thetext>Comment on attachment 149499
Patch 1

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        [Platform][DateTime][Forms] Implement Date Time format parser

nit: three [] looks too busy.  It seems they are unnecessary.

&gt; Source/WebCore/platform/text/DateTimeFormat.h:49
&gt; +class DateTimeFormat {

This class represents a parser.  So the name should be &apos;DateTimeFormatParser&apos; or something.

&gt; Source/WebCore/platform/text/DateTimeFormat.h:113
&gt; +        FormatTypeUnicode,

FormatTypeUnicode is confusing because ICU is for Unicode.  maybe FormatTypeLDML.

&gt; Source/WebCore/platform/text/DateTimeFormat.h:120
&gt; +        virtual void gotField(FieldType, int) = 0;
&gt; +        virtual void gotLiteral(const String&amp;) = 0;

To me, &apos;got&apos; sounds strange.  handleField, visitField, didVisitField, or something might be better.

&gt; Source/WebCore/platform/text/DateTimeFormat.h:126
&gt; +    explicit DateTimeFormat(TokenHandler&amp;, FormatType = FormatTypeUnicode);
&gt; +
&gt; +    // Returns true if succeeded, false if failed.
&gt; +    bool parse(const String&amp;) const;

Do we need to create an object of DateTimeFormat?

static bool parse(const String&amp; format, TokenHandler&amp;, FormatType)
isn&apos;t enough?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659316</commentid>
    <comment_count>5</comment_count>
      <attachid>149897</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-28 01:24:41 -0700</bug_when>
    <thetext>Created attachment 149897
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659317</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-28 01:26:59 -0700</bug_when>
    <thetext>Attachment 149897 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebKit/chromium/tests/DateTimeFormatTest.cpp:33:  Should have a space between // and comment  [whitespace/comments] [4]
Source/WebKit/chromium/tests/DateTimeFormatTest.cpp:344:  Should have a space between // and comment  [whitespace/comments] [4]
Source/WebCore/platform/text/DateTimeFormat.cpp:33:  Should have a space between // and comment  [whitespace/comments] [4]
Source/WebCore/platform/text/DateTimeFormat.h:34:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 4 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659350</commentid>
    <comment_count>7</comment_count>
      <attachid>149906</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-28 02:19:24 -0700</bug_when>
    <thetext>Created attachment 149906
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659361</commentid>
    <comment_count>8</comment_count>
      <attachid>149906</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-28 02:50:18 -0700</bug_when>
    <thetext>Comment on attachment 149906
Patch 3

Could you review this patch?
Thanks in advance.

* Local build on CR-Linux
* Local build on CR-Mac
* Local build on Mac

= Changes since the last review =
* Make DateTimeFormat::parse static
* Update makefiles for adding DateTimeFormat.{cpp,h}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660037</commentid>
    <comment_count>9</comment_count>
      <attachid>150060</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-28 18:33:30 -0700</bug_when>
    <thetext>Created attachment 150060
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660038</commentid>
    <comment_count>10</comment_count>
      <attachid>150060</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-28 18:34:55 -0700</bug_when>
    <thetext>Comment on attachment 150060
Patch 4

Could you review this patch?
Thanks in advance.

* Local build on CR-Linux
* Local build on CR-Mac
* Local build on Mac

= Changes since the last review =
* Make DateTimeFormat::parse static
* Update makefiles for adding DateTimeFormat.{cpp,h}
* Update copyright text</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660052</commentid>
    <comment_count>11</comment_count>
      <attachid>150060</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-28 18:53:18 -0700</bug_when>
    <thetext>Comment on attachment 150060
Patch 4

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

&gt; Source/WebCore/platform/text/DateTimeFormat.cpp:30
&gt; +#include &quot;config.h&quot;
&gt; +
&gt; +#if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS)
&gt; +
&gt; +#include &quot;DateTimeFormat.h&quot;

Blank lines are not needed.

&gt; Source/WebCore/platform/text/DateTimeFormat.cpp:99
&gt; +    if (ch &gt;= &apos;A&apos; &amp;&amp; ch &lt;= &apos;Z&apos;)
&gt; +        return upperCaseToFieldTypeMap[ch - &apos;A&apos;];
&gt; +
&gt; +    if (ch &gt;= &apos;a&apos; &amp;&amp; ch &lt;= &apos;z&apos;)

Use isASCIILower() and isASCIIUpper defined in wtf/ASCIICType.h

&gt; Source/WebCore/platform/text/DateTimeFormat.h:106
&gt; +        FormatTypeICU,

Do we need to support ICU format?  You assume ICU provides LDML-compatible format strings in another bug, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660171</commentid>
    <comment_count>12</comment_count>
      <attachid>150090</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-28 23:26:34 -0700</bug_when>
    <thetext>Created attachment 150090
Patch 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660172</commentid>
    <comment_count>13</comment_count>
      <attachid>150090</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-28 23:28:21 -0700</bug_when>
    <thetext>Comment on attachment 150090
Patch 5

Could you review this patch?
Thanks in advance.

= Changes since last review =
* Remove blank lines around #if ENABLE(...)
* Use isASCIIUpperCase and isASCIILowerCase
* Remove ICU syntax support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660191</commentid>
    <comment_count>14</comment_count>
      <attachid>150090</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-29 00:04:56 -0700</bug_when>
    <thetext>Comment on attachment 150090
Patch 5

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

&gt; Source/WebCore/platform/text/DateTimeFormat.cpp:219
&gt; +        default:
&gt; +            LOG_ERROR(&quot;Invliad state=%d&quot;, state);
&gt; +            ASSERT_NOT_REACHED();
&gt; +            return false;

Please remove default: section.  It&apos;s harmful.

&gt; Source/WebCore/platform/text/DateTimeFormat.cpp:247
&gt; +    default:
&gt; +        LOG_ERROR(&quot;Invliad state=%d&quot;, state);
&gt; +        ASSERT_NOT_REACHED();
&gt; +        return false;

ditto.
Please add ASSERT_NOT_REACHED() at outside of the switch statement.

&gt; Source/WebCore/platform/text/DateTimeFormat.h:100
&gt; +        virtual void visitField(FieldType, int) = 0;

Please add argument name for &apos;int&apos;, or add a comment for it.

&gt; Source/WebKit/chromium/tests/DateTimeFormatTest.cpp:196
&gt; +        virtual void visitField(FieldType fieldType, int count)

add OVERRIDE

&gt; Source/WebKit/chromium/tests/DateTimeFormatTest.cpp:201
&gt; +        virtual void visitLiteral(const String&amp; string)

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660200</commentid>
    <comment_count>15</comment_count>
      <attachid>150096</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-29 00:11:09 -0700</bug_when>
    <thetext>Created attachment 150096
Patch 6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660207</commentid>
    <comment_count>16</comment_count>
      <attachid>150096</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-29 00:12:54 -0700</bug_when>
    <thetext>Comment on attachment 150096
Patch 6

Could you review this patch?
Thanks in advance.

= Changes since the last change =
* Remove default case from DateTimeFormat::parse().
* Add OVERRIDE to DateTimeFormatTest::TokenHandler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660215</commentid>
    <comment_count>17</comment_count>
      <attachid>150096</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-29 00:21:18 -0700</bug_when>
    <thetext>Comment on attachment 150096
Patch 6

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660221</commentid>
    <comment_count>18</comment_count>
      <attachid>150096</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-29 00:27:03 -0700</bug_when>
    <thetext>Comment on attachment 150096
Patch 6

Clearing flags on attachment: 150096

Committed r121525: &lt;http://trac.webkit.org/changeset/121525&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660222</commentid>
    <comment_count>19</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-06-29 00:27:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149499</attachid>
            <date>2012-06-26 02:54:29 -0700</date>
            <delta_ts>2012-06-28 01:24:36 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-89963-20120626185429.patch</filename>
            <type>text/plain</type>
            <size>29709</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDViYWZjYWRlZmM4NGI2
OTZiN2I1YzkzYWEwYTMxOTIxNTA5YzFlMy4uYzQ5OWU3MmRhOWFkNzlmOTZhOTVlZjQzZGFhNmEw
NGNmMTU1YTdlYSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTI2ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1BsYXRmb3JtXVtE
YXRlVGltZV1bRm9ybXNdIEltcGxlbWVudCBEYXRlIFRpbWUgZm9ybWF0IHBhcnNlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk5NjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJv
ZHVjZXMgVW5pY29kZSBUUjM1IExETUwgZGF0ZSB0aW1lIGZvcm1hdCBwYXJzZXIgZm9yCisgICAg
ICAgIGltcGxlbWVudGluZyBpbnB1dCB0eXBlICJ0aW1lIiB3aXRoIGxvY2FsaXplZCB0aW1lIGZv
cm1hdC4KKworICAgICAgICBUZXN0OiBXZWJLaXQvY2hyb21pdW0vdGVzdHMvRGF0ZVRpbWVGaWVs
ZFRlc3QuY3BwCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Om1hcENoYXJhY3Rl
clRvRmllbGRUeXBlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGb3JtYXQ6
OkRhdGVUaW1lRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRm9ybWF0OjptYXBD
aGFyYWN0ZXJUb0ZpZWxkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdDo6
cGFyc2UpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0KToKKyAgICAgICAg
KFRva2VuSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdDo6VG9rZW5I
YW5kbGVyOjp+VG9rZW5IYW5kbGVyKToKKwogMjAxMi0wNi0yNiAgQ3NhYmEgT3N6dHJvZ29uw6Fj
ICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCB0eXBvIGZpeCBh
ZnRlciByMTIxMTQ0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA4ZDM1ODk4M2I4M2Yz
OGJhODIwYjgzMTFkMjUxMmYzZWQ2YjBiMmZkLi5hYWQxY2Y2YjZjYjIwMGQ0MDc5NzlkNTNmZWQ0
MDkyNzJkMjBjMmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBA
CisyMDEyLTA2LTI2ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW1BsYXRmb3JtXVtEYXRlVGltZV1bRm9ybXNdIEltcGxlbWVudCBEYXRlIFRpbWUgZm9y
bWF0IHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODk5NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHRlc3RzL0RhdGVUaW1lRm9ybWF0VGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoRGF0ZVRp
bWVGb3JtYXRUZXN0KToKKyAgICAgICAgKFRva2VuKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0
VGVzdDo6VG9rZW46OlRva2VuKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW46
Om9wZXJhdG9yPT0pOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbjo6dG9TdHJp
bmcpOgorICAgICAgICAoVG9rZW5zKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9r
ZW5zOjpUb2tlbnMpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbnM6Om9wZXJh
dG9yPT0pOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbnM6OnRvU3RyaW5nKToK
KyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6cGFyc2UpOgorICAgICAgICAoRGF0ZVRpbWVG
b3JtYXRUZXN0OjpzaW5nbGUpOgorICAgICAgICAoVG9rZW5IYW5kbGVyKToKKyAgICAgICAgKERh
dGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5kbGVyOjp+VG9rZW5IYW5kbGVyKToKKyAgICAgICAg
KERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5kbGVyOjpmaWVsZFR5cGUpOgorICAgICAgICAo
RGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbkhhbmRsZXI6OnRva2Vucyk6CisgICAgICAgIChEYXRl
VGltZUZvcm1hdFRlc3Q6OlRva2VuSGFuZGxlcjo6Z290RmllbGQpOgorICAgICAgICAoRGF0ZVRp
bWVGb3JtYXRUZXN0OjpUb2tlbkhhbmRsZXI6OmdvdExpdGVyYWwpOgorICAgICAgICAob3BlcmF0
b3I8PCk6CisgICAgICAgIChURVNUX0YpOgorCiAyMDEyLTA2LTI2ICBKdW4gTXVrYWkgIDxtdWth
aUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWxsb3cgdXNpbmcgPGlucHV0IHR5cGU9ImNvbG9y
Ij4gVUkgaW4gQ2hyb21lT1MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0
ZVRpbWVGb3JtYXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViNWQwOWFiNTNmOTU3MGI4YjY0MWI5MDVhMGYx
ZTBiMjRkMDMyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcApAQCAtMCwwICsxLDI4MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShUSU1FX0lOUFVUX0ZJRUxEUykKKworI2luY2x1ZGUgIkRhdGVUaW1l
Rm9ybWF0LmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUg
bG93ZXJDYXNlVG9GaWVsZFR5cGVNYXBbMjZdID0geworICAgIERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVQZXJpb2QsIC8vIGEKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwg
Ly8gYgorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMb2NhbERheU9mV2Vla1N0YW5kQWxv
biwgLy8gYworICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZk1vbnRoLCAvLyBkCisg
ICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxvY2FsRGF5T2ZXZWVrLCAvLyBlCisgICAgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIGYKKyAgICBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlTW9kaWZpZWRKdWxpYW5EYXksIC8vIGcKKyAgICBEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlSG91cjEyLCAvLyBoCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQs
IC8vIGkKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gagorICAgIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjQsIC8vIGsKKyAgICBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlSW52YWxpZCwgLy8gbAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51
dGUsIC8vIG0KKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gbgorICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBvCisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIHAKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
UXVhdGVyU3RhbmRBbG9uZSwgLy8gcQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZh
bGlkLCAvLyByCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29uZCwgLy8gcworICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyB0CisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUV4dGVuZGVkWWVhciwgLy8gdQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVOb25Mb2NhdGlvblpvbmUsIC8vIHYKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
V2Vla09mTW9udGgsIC8vIHcKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwg
Ly8geAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVZZWFyLCAvLyB5CisgICAgRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZVpvbmUsIC8vIHoKK307CisKK3N0YXRpYyBjb25zdCBEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlIHVwcGVyQ2FzZVRvRmllbGRUeXBlTWFwWzI2XSA9IHsKKyAgICBE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWlsbGlzZWNvbmRzSW5EYXksIC8vIEEKKyAgICBEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gQgorICAgIERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGVJbnZhbGlkLCAvLyBDCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9m
WWVhciwgLy8gRAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZldlZWssIC8vIEUK
KyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZXZWVrSW5Nb250aCwgLy8gRgorICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVFcmEsIC8vIEcKKyAgICBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlSG91cjIzLCAvLyBICisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFs
aWQsIC8vIEkKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gSgorICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTEsIC8vIEsKKyAgICBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlTW9udGhTdGFuZEFsb25lLCAvLyBMCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZU1vbnRoLCAvLyBNCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQs
IC8vIE4KKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gTworICAgIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBQCisgICAgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZVF1YXRlciwgLy8gUQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZh
bGlkLCAvLyBSCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUZyYWN0aW9uYWxTZWNvbmQs
IC8vIFMKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gVAorICAgIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBVCisgICAgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUxvY2F0aW9uWm9uZSwgLy8gVgorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVXZWVrT2ZZZWFyLCAvLyBXCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQs
IC8vIFgKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhck9mV2Vla09mWWVhciwgLy8g
WQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVSRkM4MjJab25lLCAvLyBaCit9OworCitz
dGF0aWMgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBtYXBDaGFyYWN0ZXJUb0ZpZWxkVHlwZUlu
dGVybmFsKGNvbnN0IFVDaGFyIGNoKQoreworICAgIGlmIChjaCA+PSAnQScgJiYgY2ggPD0gJ1on
KQorICAgICAgICByZXR1cm4gdXBwZXJDYXNlVG9GaWVsZFR5cGVNYXBbY2ggLSAnQSddOworCisg
ICAgaWYgKGNoID49ICdhJyAmJiBjaCA8PSAneicpCisgICAgICAgIHJldHVybiBsb3dlckNhc2VU
b0ZpZWxkVHlwZU1hcFtjaCAtICdhJ107CisKKyAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZUxpdGVyYWw7Cit9CisKK0RhdGVUaW1lRm9ybWF0OjpEYXRlVGltZUZvcm1hdChUb2tl
bkhhbmRsZXImIHRva2VuSGFuZGxlciwgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQorICAgIDogbV90
b2tlbkhhbmRsZXIodG9rZW5IYW5kbGVyKQorICAgICwgbV9mb3JtYXRUeXBlKGZvcm1hdFR5cGUp
Cit7Cit9CisKK0RhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgRGF0ZVRpbWVGb3JtYXQ6Om1hcENo
YXJhY3RlclRvRmllbGRUeXBlKFVDaGFyIGNoKSBjb25zdAoreworICAgIGNvbnN0IEZpZWxkVHlw
ZSBmaWVsZFR5cGUgPSBtYXBDaGFyYWN0ZXJUb0ZpZWxkVHlwZUludGVybmFsKGNoKTsKKyAgICBz
d2l0Y2ggKG1fZm9ybWF0VHlwZSkgeworICAgIGNhc2UgRm9ybWF0VHlwZUlDVToKKyAgICAgICAg
cmV0dXJuIGZpZWxkVHlwZSA9PSBGaWVsZFR5cGVMb2NhbERheU9mV2Vla1N0YW5kQWxvbiA/IEZp
ZWxkVHlwZUludmFsaWQgOiBmaWVsZFR5cGU7CisgICAgY2FzZSBGb3JtYXRUeXBlVW5pY29kZToK
KyAgICAgICAgcmV0dXJuIGZpZWxkVHlwZSA9PSBGaWVsZFR5cGVMb2NhdGlvblpvbmUgPyBGaWVs
ZFR5cGVJbnZhbGlkIDogZmllbGRUeXBlOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmllbGRUeXBlOworICAgIH0KK30KKworYm9v
bCBEYXRlVGltZUZvcm1hdDo6cGFyc2UoY29uc3QgU3RyaW5nJiBzb3VyY2UpIGNvbnN0Cit7Cisg
ICAgZW51bSBTdGF0ZSB7CisgICAgICAgIFN0YXRlTGl0ZXJhbCwKKworICAgICAgICBTdGF0ZVF1
b3RlLAorICAgICAgICBTdGF0ZVF1b3RlTm90UXVvdGUsCisgICAgICAgIFN0YXRlUXVvdGVRdW90
ZSwKKworICAgICAgICBTdGF0ZVN5bWJvbCwKKyAgICB9IHN0YXRlID0gU3RhdGVMaXRlcmFsOwor
CisgICAgRmllbGRUeXBlIGZpZWxkVHlwZSA9IEZpZWxkVHlwZUxpdGVyYWw7CisgICAgU3RyaW5n
QnVpbGRlciBsaXRlcmFsQnVmZmVyOworICAgIGludCBmaWVsZENvdW50ZXIgPSAwOworCisgICAg
Zm9yICh1bnNpZ25lZCBpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNvdXJjZS5sZW5ndGgoKTsgKytp
bmRleCkgeworICAgICAgICBjb25zdCBVQ2hhciBjaCA9IHNvdXJjZVtpbmRleF07CisgICAgICAg
IHN3aXRjaCAoc3RhdGUpIHsKKyAgICAgICAgY2FzZSBTdGF0ZUxpdGVyYWw6CisgICAgICAgICAg
ICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGVRdW90ZTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZmll
bGRUeXBlID0gbWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGUoY2gpOworICAgICAgICAgICAgaWYgKGZp
ZWxkVHlwZSA9PSBGaWVsZFR5cGVJbnZhbGlkKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICAgICAgaWYgKGZpZWxkVHlwZSA9PSBGaWVsZFR5cGVMaXRlcmFsKSB7Cisg
ICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5s
ZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIG1fdG9rZW5IYW5kbGVyLmdvdExpdGVyYWwobGl0
ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmNs
ZWFyKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZpZWxkQ291bnRlciA9IDE7Cisg
ICAgICAgICAgICBzdGF0ZSA9IFN0YXRlU3ltYm9sOworICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgY2FzZSBTdGF0ZVF1b3RlOgorICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5hcHBlbmQo
Y2gpOworICAgICAgICAgICAgc3RhdGUgPSBjaCA9PSAnXCcnID8gU3RhdGVMaXRlcmFsIDogU3Rh
dGVRdW90ZU5vdFF1b3RlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBTdGF0
ZVF1b3RlTm90UXVvdGU6CisgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAg
ICAgICAgIHN0YXRlID0gU3RhdGVRdW90ZVF1b3RlOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZChjaCk7Cisg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFN0YXRlUXVvdGVRdW90ZToKKyAgICAg
ICAgICAgIGlmIChjaCA9PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5h
cHBlbmQoJ1wnJyk7CisgICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZVF1b3RlTm90UXVvdGU7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZp
ZWxkVHlwZSA9IG1hcENoYXJhY3RlclRvRmllbGRUeXBlKGNoKTsKKyAgICAgICAgICAgIGlmIChm
aWVsZFR5cGUgPT0gRmllbGRUeXBlSW52YWxpZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgICAgIGlmIChmaWVsZFR5cGUgPT0gRmllbGRUeXBlTGl0ZXJhbCkgewor
ICAgICAgICAgICAgICAgIGxpdGVyYWxCdWZmZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAg
ICBzdGF0ZSA9IFN0YXRlTGl0ZXJhbDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpIHsKKyAgICAg
ICAgICAgICAgICBtX3Rva2VuSGFuZGxlci5nb3RMaXRlcmFsKGxpdGVyYWxCdWZmZXIudG9TdHJp
bmcoKSk7CisgICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5jbGVhcigpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBmaWVsZENvdW50ZXIgPSAxOworICAgICAgICAgICAgc3RhdGUg
PSBTdGF0ZVN5bWJvbDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgU3RhdGVT
eW1ib2w6IHsKKyAgICAgICAgICAgIEFTU0VSVChmaWVsZFR5cGUgIT0gRmllbGRUeXBlSW52YWxp
ZCk7CisgICAgICAgICAgICBBU1NFUlQoZmllbGRUeXBlICE9IEZpZWxkVHlwZUxpdGVyYWwpOwor
CisgICAgICAgICAgICBGaWVsZFR5cGUgZmllbGRUeXBlMiA9IG1hcENoYXJhY3RlclRvRmllbGRU
eXBlKGNoKTsKKyAgICAgICAgICAgIGlmIChmaWVsZFR5cGUyID09IEZpZWxkVHlwZUludmFsaWQp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpZiAoZmllbGRU
eXBlID09IGZpZWxkVHlwZTIpIHsKKyAgICAgICAgICAgICAgICArK2ZpZWxkQ291bnRlcjsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV90b2tl
bkhhbmRsZXIuZ290RmllbGQoZmllbGRUeXBlLCBmaWVsZENvdW50ZXIpOworCisgICAgICAgICAg
ICBpZiAoZmllbGRUeXBlMiA9PSBGaWVsZFR5cGVMaXRlcmFsKSB7CisgICAgICAgICAgICAgICAg
aWYgKGNoID09ICdcJycpCisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGVRdW90ZTsK
KyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZl
ci5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFN0YXRlTGl0ZXJhbDsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGZpZWxkQ291bnRlciA9IDE7CisgICAgICAgICAgICBmaWVsZFR5cGUg
PSBmaWVsZFR5cGUyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgTE9HX0VSUk9SKCJJbnZsaWFkIHN0YXRlPSVkIiwgc3RhdGUp
OworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBBU1NFUlQoZmllbGRUeXBlICE9IEZpZWxk
VHlwZUludmFsaWQpOworCisgICAgc3dpdGNoIChzdGF0ZSkgeworICAgIGNhc2UgU3RhdGVMaXRl
cmFsOgorICAgIGNhc2UgU3RhdGVRdW90ZVF1b3RlOgorICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZl
ci5sZW5ndGgoKSkKKyAgICAgICAgICAgIG1fdG9rZW5IYW5kbGVyLmdvdExpdGVyYWwobGl0ZXJh
bEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjYXNlIFN0
YXRlUXVvdGU6CisgICAgY2FzZSBTdGF0ZVF1b3RlTm90UXVvdGU6CisgICAgICAgIGlmIChsaXRl
cmFsQnVmZmVyLmxlbmd0aCgpKQorICAgICAgICAgICAgbV90b2tlbkhhbmRsZXIuZ290TGl0ZXJh
bChsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBjYXNlIFN0YXRlU3ltYm9sOgorICAgICAgICBBU1NFUlQoZmllbGRUeXBlICE9IEZpZWxkVHlw
ZUxpdGVyYWwpOworICAgICAgICBBU1NFUlQoIWxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpOworICAg
ICAgICBtX3Rva2VuSGFuZGxlci5nb3RGaWVsZChmaWVsZFR5cGUsIGZpZWxkQ291bnRlcik7Cisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgTE9HX0VSUk9SKCJJ
bnZsaWFkIHN0YXRlPSVkIiwgc3RhdGUpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0
ZVRpbWVGb3JtYXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3Jt
YXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NDRkM2EwMjkyNjFmODM2M2JiZTc5NDNiMzRmZDc2NTEwMThkNmFi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGlt
ZUZvcm1hdC5oCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRlVGltZUZvcm1hdF9oCisjZGVm
aW5lIERhdGVUaW1lRm9ybWF0X2gKKworI2lmIEVOQUJMRShUSU1FX0lOUFVUX0ZJRUxEUykKKwor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
Ky8vIERhdGVUaW1lRm9ybWF0IHBhcnNlcyBkYXRlIHRpbWUgZm9ybWF0IGRlZmluZWQgaW4gVW5p
Y29kZSBUZWNobmljYWwKKy8vIHN0YW5kYXJkIDM1LCBMb2NhbGUgRGF0YSBNYXJrdXAgTGFuZ3Vh
Z2UgKExETUwpWzFdLCBhbmQgSUNVIHZhcmlhbnRbMl0uCisvLworLy8gRGlmZmVyZW5jZXMgYmV0
d2VlbiBMRE1MIGFuZCBJQ1UgYXJlOgorLy8gIC0gTERNTCBzdXBwb3J0IHN5bWJvbCAiYyIsIGJ1
dCBJQ1UgZG9lc24ndC4KKy8vICAtIElDVSBzdXBwb3J0IHN5bWJvbCAiViIsIGJ1dCBMRE1MIGRv
ZXNuJ3QuCisvLworLy8gWzFdIExETUwgaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS90
cjM1LTYuaHRtbCNEYXRlX0Zvcm1hdF9QYXR0ZXJucworLy8gWzJdIGh0dHA6Ly91c2VyZ3VpZGUu
aWN1LXByb2plY3Qub3JnL2Zvcm1hdHBhcnNlL2RhdGV0aW1lCitjbGFzcyBEYXRlVGltZUZvcm1h
dCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVGb3JtYXQpOworcHVibGljOgor
ICAgIGVudW0gRmllbGRUeXBlIHsKKyAgICAgICAgRmllbGRUeXBlSW52YWxpZCwKKyAgICAgICAg
RmllbGRUeXBlTGl0ZXJhbCwKKworICAgICAgICAvLyBFcmE6IEFECisgICAgICAgIEZpZWxkVHlw
ZUVyYSA9ICdHJywKKworICAgICAgICAvLyBZZWFyOiAxOTk2CisgICAgICAgIEZpZWxkVHlwZVll
YXIgPSAneScsCisgICAgICAgIEZpZWxkVHlwZVllYXJPZldlZWtPZlllYXIgPSAnWScsCisgICAg
ICAgIEZpZWxkVHlwZUV4dGVuZGVkWWVhciA9ICd1JywKKworICAgICAgICAvLyBRdWF0ZXI6IFEy
CisgICAgICAgIEZpZWxkVHlwZVF1YXRlciA9ICdRJywKKyAgICAgICAgRmllbGRUeXBlUXVhdGVy
U3RhbmRBbG9uZSA9ICdxJywKKworICAgICAgICAvLyBNb250aDogU2VwdGVtYmVyCisgICAgICAg
IEZpZWxkVHlwZU1vbnRoID0gJ00nLAorICAgICAgICBGaWVsZFR5cGVNb250aFN0YW5kQWxvbmUg
PSAnTCcsCisKKyAgICAgICAgLy8gV2VlazogNDIKKyAgICAgICAgRmllbGRUeXBlV2Vla09mWWVh
ciA9ICdXJywKKyAgICAgICAgRmllbGRUeXBlV2Vla09mTW9udGggPSAndycsCisKKyAgICAgICAg
Ly8gRGF5OiAxMgorICAgICAgICBGaWVsZFR5cGVEYXlPZk1vbnRoID0gJ2QnLAorICAgICAgICBG
aWVsZFR5cGVEYXlPZlllYXIgPSAnRCcsCisgICAgICAgIEZpZWxkVHlwZURheU9mV2Vla0luTW9u
dGggPSAnRicsCisgICAgICAgIEZpZWxkVHlwZU1vZGlmaWVkSnVsaWFuRGF5ID0gJ2cnLAorCisg
ICAgICAgIC8vIFdlZWsgRGF5OiBUdWVzZGF5CisgICAgICAgIEZpZWxkVHlwZURheU9mV2VlayA9
ICdFJywKKyAgICAgICAgRmllbGRUeXBlTG9jYWxEYXlPZldlZWsgPSAnZScsCisgICAgICAgIEZp
ZWxkVHlwZUxvY2FsRGF5T2ZXZWVrU3RhbmRBbG9uID0gJ2MnLCAvLyBJQ1UgZG9lc24ndCBzdXBw
b3J0IHRoaXMuCisKKyAgICAgICAgLy8gUGVyaW9kOiBBTSBvciBQTQorICAgICAgICBGaWVsZFR5
cGVQZXJpb2QgPSAnYScsCisKKyAgICAgICAgLy8gSG91cjogNworICAgICAgICBGaWVsZFR5cGVI
b3VyMTIgPSAnaCcsCisgICAgICAgIEZpZWxkVHlwZUhvdXIyMyA9ICdIJywKKyAgICAgICAgRmll
bGRUeXBlSG91cjExID0gJ0snLAorICAgICAgICBGaWVsZFR5cGVIb3VyMjQgPSAnaycsCisKKyAg
ICAgICAgLy8gTWludXRlOiA1OQorICAgICAgICBGaWVsZFR5cGVNaW51dGUgPSAnbScsCisKKyAg
ICAgICAgLy8gU2Vjb25kOiAxMgorICAgICAgICBGaWVsZFR5cGVTZWNvbmQgPSAncycsCisgICAg
ICAgIEZpZWxkVHlwZUZyYWN0aW9uYWxTZWNvbmQgPSAnUycsCisgICAgICAgIEZpZWxkVHlwZU1p
bGxpc2Vjb25kc0luRGF5ID0gJ0EnLAorCisgICAgICAgIC8vIFpvbmU6IFBEVAorICAgICAgICBG
aWVsZFR5cGVab25lID0gJ3onLAorICAgICAgICBGaWVsZFR5cGVSRkM4MjJab25lID0gJ1onLAor
ICAgICAgICBGaWVsZFR5cGVOb25Mb2NhdGlvblpvbmUgPSAndicsCisgICAgICAgIEZpZWxkVHlw
ZUxvY2F0aW9uWm9uZSA9ICdWJywgLy8gSUNVIG9ubHkuCisgICAgfTsKKworICAgIGVudW0gRm9y
bWF0VHlwZSB7CisgICAgICAgIEZvcm1hdFR5cGVJQ1UsCisgICAgICAgIEZvcm1hdFR5cGVVbmlj
b2RlLAorICAgIH07CisKKyAgICBjbGFzcyBUb2tlbkhhbmRsZXIgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgdmlydHVhbCB+VG9rZW5IYW5kbGVyKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBn
b3RGaWVsZChGaWVsZFR5cGUsIGludCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ290TGl0
ZXJhbChjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgfTsKKworICAgIGV4cGxpY2l0IERhdGVUaW1l
Rm9ybWF0KFRva2VuSGFuZGxlciYsIEZvcm1hdFR5cGUgPSBGb3JtYXRUeXBlVW5pY29kZSk7CisK
KyAgICAvLyBSZXR1cm5zIHRydWUgaWYgc3VjY2VlZGVkLCBmYWxzZSBpZiBmYWlsZWQuCisgICAg
Ym9vbCBwYXJzZShjb25zdCBTdHJpbmcmKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBGaWVsZFR5
cGUgbWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGUoVUNoYXIpIGNvbnN0OworCisgICAgVG9rZW5IYW5k
bGVyJiBtX3Rva2VuSGFuZGxlcjsKKyAgICBGb3JtYXRUeXBlIGNvbnN0IG1fZm9ybWF0VHlwZTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBEYXRl
VGltZUZvcm1hdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Rh
dGVUaW1lRm9ybWF0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0RhdGVU
aW1lRm9ybWF0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDkzMjYyYTM2YzE2NGMxOTY2YzYyNGViOTA0
NDlhMjFjZjMwY2U3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0LmNwcApAQCAtMCwwICsxLDM0NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShUSU1FX0lOUFVUX0ZJRUxEUykKKworI2luY2x1ZGUgIkRh
dGVUaW1lRm9ybWF0LmgiCisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitjbGFzcyBEYXRlVGltZUZvcm1hdFRlc3QgOiBw
dWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGUgRmllbGRUeXBlOworCisgICAgc3RydWN0IFRva2VuIHsKKyAgICAgICAg
U3RyaW5nIHN0cmluZzsKKyAgICAgICAgaW50IGNvdW50OworICAgICAgICBGaWVsZFR5cGUgZmll
bGRUeXBlOworCisgICAgICAgIFRva2VuKEZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCBjb3VudCA9
IDEpCisgICAgICAgICAgICA6IGNvdW50KGNvdW50KQorICAgICAgICAgICAgLCBmaWVsZFR5cGUo
ZmllbGRUeXBlKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoZmllbGRUeXBlICE9IERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMaXRlcmFsKTsKKyAgICAgICAgfQorCisgICAgICAgIFRv
a2VuKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgICAgICAgICAgOiBzdHJpbmcoc3RyaW5nKQor
ICAgICAgICAgICAgLCBjb3VudCgwKQorICAgICAgICAgICAgLCBmaWVsZFR5cGUoRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUxpdGVyYWwpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBUb2tlbiYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBmaWVsZFR5cGUgPT0gb3RoZXIuZmllbGRUeXBlICYmIGNvdW50ID09
IG90aGVyLmNvdW50ICYmIHN0cmluZyA9PSBvdGhlci5zdHJpbmc7CisgICAgICAgIH0KKworICAg
ICAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBzd2l0
Y2ggKGZpZWxkVHlwZSkgeworICAgICAgICAgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSW52YWxpZDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIippbnZhbGlkKiI7CisgICAgICAg
ICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMaXRlcmFsOiB7CisgICAgICAgICAg
ICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCciJyk7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RyaW5nKTsKKyAgICAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnIicpOworICAgICAgICAgICAgICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiVG9rZW4oJWQsICVkKSIsIGZp
ZWxkVHlwZSwgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfTsKKworICAg
IGNsYXNzIFRva2VucyB7CisgICAgcHVibGljOgorICAgICAgICBUb2tlbnMoKSB7IH0KKworICAg
ICAgICBleHBsaWNpdCBUb2tlbnMoY29uc3QgVmVjdG9yPFRva2VuPiB0b2tlbnMpCisgICAgICAg
ICAgICA6IG1fdG9rZW5zKHRva2VucykKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAg
ZXhwbGljaXQgVG9rZW5zKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgICAgICB7CisgICAgICAg
ICAgICBtX3Rva2Vucy5hcHBlbmQoVG9rZW4oc3RyaW5nKSk7CisgICAgICAgIH0KKworICAgICAg
ICBleHBsaWNpdCBUb2tlbnMoVG9rZW4gdG9rZW4xKQorICAgICAgICB7CisgICAgICAgICAgICBt
X3Rva2Vucy5hcHBlbmQodG9rZW4xKTsKKyAgICAgICAgfQorCisgICAgICAgIFRva2VucyhUb2tl
biB0b2tlbjEsIFRva2VuIHRva2VuMikKKyAgICAgICAgeworICAgICAgICAgICAgbV90b2tlbnMu
YXBwZW5kKHRva2VuMSk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4yKTsKKyAg
ICAgICAgfQorCisgICAgICAgIFRva2VucyhUb2tlbiB0b2tlbjEsIFRva2VuIHRva2VuMiwgVG9r
ZW4gdG9rZW4zKQorICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4x
KTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjIpOworICAgICAgICAgICAgbV90
b2tlbnMuYXBwZW5kKHRva2VuMyk7CisgICAgICAgIH0KKworICAgICAgICBUb2tlbnMoVG9rZW4g
dG9rZW4xLCBUb2tlbiB0b2tlbjIsIFRva2VuIHRva2VuMywgVG9rZW4gdG9rZW40KQorICAgICAg
ICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4xKTsKKyAgICAgICAgICAgIG1f
dG9rZW5zLmFwcGVuZCh0b2tlbjIpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2Vu
Myk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW40KTsKKyAgICAgICAgfQorCisg
ICAgICAgIFRva2VucyhUb2tlbiB0b2tlbjEsIFRva2VuIHRva2VuMiwgVG9rZW4gdG9rZW4zLCBU
b2tlbiB0b2tlbjQsIFRva2VuIHRva2VuNSkKKyAgICAgICAgeworICAgICAgICAgICAgbV90b2tl
bnMuYXBwZW5kKHRva2VuMSk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4yKTsK
KyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjMpOworICAgICAgICAgICAgbV90b2tl
bnMuYXBwZW5kKHRva2VuNCk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW41KTsK
KyAgICAgICAgfQorCisgICAgICAgIFRva2VucyhUb2tlbiB0b2tlbjEsIFRva2VuIHRva2VuMiwg
VG9rZW4gdG9rZW4zLCBUb2tlbiB0b2tlbjQsIFRva2VuIHRva2VuNSwgVG9rZW4gdG9rZW42KQor
ICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4xKTsKKyAgICAgICAg
ICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjIpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5k
KHRva2VuMyk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW40KTsKKyAgICAgICAg
ICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjUpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5k
KHRva2VuNik7CisgICAgICAgIH0KKworICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgVG9r
ZW5zJiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fdG9rZW5z
ID09IG90aGVyLm1fdG9rZW5zOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHRvU3RyaW5n
KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwor
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIlRva2VucygiKTsKKyAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IG1fdG9rZW5zLnNpemUoKTsgKytpbmRleCkgewor
ICAgICAgICAgICAgICAgIGlmIChpbmRleCkKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoIiwiKTsKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChtX3Rva2Vuc1tpbmRl
eF0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiKSIpOworICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAg
fQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgVmVjdG9yPFRva2VuPiBtX3Rva2VuczsKKyAgICB9
OworCitwcm90ZWN0ZWQ6CisgICAgVG9rZW5zIHBhcnNlKGNvbnN0IFN0cmluZyYgZm9ybWF0U3Ry
aW5nKQorICAgIHsKKyAgICAgICAgVG9rZW5IYW5kbGVyIGhhbmRsZXI7CisgICAgICAgIERhdGVU
aW1lRm9ybWF0IGZvcm1hdChoYW5kbGVyKTsKKyAgICAgICAgaWYgKCFmb3JtYXQucGFyc2UoZm9y
bWF0U3RyaW5nKSkKKyAgICAgICAgICAgIHJldHVybiBUb2tlbnMoVG9rZW4oIipmYWlsZWQqIikp
OworICAgICAgICByZXR1cm4gaGFuZGxlci50b2tlbnMoKTsKKyAgICB9CisKKyAgICBGaWVsZFR5
cGUgc2luZ2xlKGNvbnN0IGNoYXIgY2gpCisgICAgeworICAgICAgICBjaGFyIGZvcm1hdFN0cmlu
Z1syXTsKKyAgICAgICAgZm9ybWF0U3RyaW5nWzBdID0gY2g7CisgICAgICAgIGZvcm1hdFN0cmlu
Z1sxXSA9IDA7CisgICAgICAgIFRva2VuSGFuZGxlciBoYW5kbGVyOworICAgICAgICBEYXRlVGlt
ZUZvcm1hdCBmb3JtYXQoaGFuZGxlcik7CisgICAgICAgIGlmICghZm9ybWF0LnBhcnNlKGZvcm1h
dFN0cmluZykpCisgICAgICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUlu
dmFsaWQ7CisgICAgICAgIHJldHVybiBoYW5kbGVyLmZpZWxkVHlwZSgwKTsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgY2xhc3MgVG9rZW5IYW5kbGVyIDogcHVibGljIERhdGVUaW1lRm9ybWF0OjpU
b2tlbkhhbmRsZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+VG9rZW5IYW5kbGVy
KCkgeyB9CisKKyAgICAgICAgRmllbGRUeXBlIGZpZWxkVHlwZShpbnQgaW5kZXgpIGNvbnN0Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBpbmRleCA+PTAgJiYgaW5kZXggPCBzdGF0aWNf
Y2FzdDxpbnQ+KG1fdG9rZW5zLnNpemUoKSkgPyBtX3Rva2Vuc1tpbmRleF0uZmllbGRUeXBlIDog
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQ7CisgICAgICAgIH0KKworICAgICAgICBU
b2tlbnMgdG9rZW5zKCkgY29uc3QgeyByZXR1cm4gVG9rZW5zKG1fdG9rZW5zKTsgfQorCisgICAg
cHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCB2b2lkIGdvdEZpZWxkKEZpZWxkVHlwZSBmaWVsZFR5
cGUsIGludCBjb3VudCkKKyAgICAgICAgeworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKFRv
a2VuKGZpZWxkVHlwZSwgY291bnQpKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9p
ZCBnb3RMaXRlcmFsKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgICAgICB7CisgICAgICAgICAg
ICBtX3Rva2Vucy5hcHBlbmQoVG9rZW4oc3RyaW5nKSk7CisgICAgICAgIH0KKworICAgICAgICBW
ZWN0b3I8VG9rZW4+IG1fdG9rZW5zOworICAgIH07Cit9OworCitzdGQ6Om9zdHJlYW0mIG9wZXJh
dG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgY29uc3QgRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbnMm
IHRva2VucykKK3sKKyAgICByZXR1cm4gb3MgPDwgdG9rZW5zLnRvU3RyaW5nKCkuYXNjaWkoKS5k
YXRhKCk7Cit9CisKK1RFU1RfRihEYXRlVGltZUZvcm1hdFRlc3QsIENvbW1vblBhdHRlcm4pCit7
CisgICAgRVhQRUNUX0VRKFRva2VucygpLCBwYXJzZSgiIikpOworCisgICAgRVhQRUNUX0VRKAor
ICAgICAgICBUb2tlbnMoCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlWWVhciwgNCksIFRva2VuKCItIiksCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlTW9udGgsIDIpLCBUb2tlbigiLSIpLAorICAgICAgICAgICAgVG9rZW4oRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mTW9udGgsIDIpKSwKKyAgICAgICAgcGFyc2UoInl5
eXktTU0tZGQiKSk7CisKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFRva2VucygKKyAgICAgICAg
ICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjQsIDIpLCBUb2tlbigiOiIp
LAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1pbnV0ZSwgMiks
IFRva2VuKCI6IiksCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
U2Vjb25kLCAyKSksCisgICAgICAgIHBhcnNlKCJrazptbTpzcyIpKTsKKworICAgIEVYUEVDVF9F
USgKKyAgICAgICAgVG9rZW5zKAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZUhvdXIxMiksIFRva2VuKCI6IiksCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlTWludXRlKSwgVG9rZW4oIiAiKSwKKyAgICAgICAgICAgIFRva2VuKERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJpb2QpKSwKKyAgICAgICAgcGFyc2UoImg6bSBhIikp
OworCisgICAgRVhQRUNUX0VRKAorICAgICAgICBUb2tlbnMoCisgICAgICAgICAgICBUb2tlbihE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhciksIFRva2VuKCJOZW4gIiksCisgICAgICAgICAg
ICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGgpLCBUb2tlbigiR2V0c3UgIiks
CisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aCks
IFRva2VuKCJOaWNoaSIpKSwKKyAgICAgICAgcGFyc2UoInknTmVuJyBNJ0dldHN1JyBkJ05pY2hp
JyIpKTsKK30KKworVEVTVF9GKERhdGVUaW1lRm9ybWF0VGVzdCwgTWlzc2luZ0Nsb3NpbmdRdW90
ZSkKK3sKKyAgICBFWFBFQ1RfRVEoVG9rZW5zKCIqZmFpbGVkKiIpLCBwYXJzZSgiJ2ZvbyIpKTsK
KyAgICBFWFBFQ1RfRVEoVG9rZW5zKCIqZmFpbGVkKiIpLCBwYXJzZSgiZm8nbyIpKTsKKyAgICBF
WFBFQ1RfRVEoVG9rZW5zKCIqZmFpbGVkKiIpLCBwYXJzZSgiZm9vJyIpKTsKK30KKworVEVTVF9G
KERhdGVUaW1lRm9ybWF0VGVzdCwgUXVvdGUpCit7CisgICAgRVhQRUNUX0VRKFRva2VucygiRm9v
QmFyIiksIHBhcnNlKCInRm9vQmFyJyIpKTsKKyAgICBFWFBFQ1RfRVEoVG9rZW5zKCInIiksIHBh
cnNlKCInJyIpKTsKKyAgICBFWFBFQ1RfRVEoVG9rZW5zKCInLSciKSwgcGFyc2UoIicnLScnIikp
OworICAgIEVYUEVDVF9FUShUb2tlbnMoIkZvbydCYXIiKSwgcGFyc2UoIidGb28nJ0JhciciKSk7
CisgICAgRVhQRUNUX0VRKAorICAgICAgICBUb2tlbnMoVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZUVyYSksIFRva2VuKCIncyIpKSwKKyAgICAgICAgcGFyc2UoIkcnJydzJyIpKTsKKyAg
ICBFWFBFQ1RfRVEoCisgICAgICAgIFRva2VucyhUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlRXJhKSwgVG9rZW4oIiciKSwgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29u
ZCkpLAorICAgICAgICBwYXJzZSgiRycncyIpKTsKK30KKworVEVTVF9GKERhdGVUaW1lRm9ybWF0
VGVzdCwgU2luZ2xlTG93ZXJDYXNlQ2hhcmFjdGVyKQoreworICAgIEVYUEVDVF9FUShEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdiJykpOworICAgIEVYUEVDVF9FUShE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTG9jYWxEYXlPZldlZWtTdGFuZEFsb24sIHNpbmdsZSgn
YycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mTW9udGgs
IHNpbmdsZSgnZCcpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxv
Y2FsRGF5T2ZXZWVrLCBzaW5nbGUoJ2UnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVNb2RpZmllZEp1bGlhbkRheSwgc2luZ2xlKCdnJykpOworICAgIEVYUEVDVF9F
UShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjEyLCBzaW5nbGUoJ2gnKSk7CisgICAgRVhQ
RUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjQsIHNpbmdsZSgnaycpKTsKKyAg
ICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1pbnV0ZSwgc2luZ2xlKCdtJykp
OworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUXVhdGVyU3RhbmRBbG9u
ZSwgc2luZ2xlKCdxJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
U2Vjb25kLCBzaW5nbGUoJ3MnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVFeHRlbmRlZFllYXIsIHNpbmdsZSgndScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZU5vbkxvY2F0aW9uWm9uZSwgc2luZ2xlKCd2JykpOworICAgIEVYUEVD
VF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlV2Vla09mTW9udGgsIHNpbmdsZSgndycpKTsK
KyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXIsIHNpbmdsZSgneScp
KTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVpvbmUsIHNpbmdsZSgn
eicpKTsKK30KKworVEVTVF9GKERhdGVUaW1lRm9ybWF0VGVzdCwgU2luZ2xlTG93ZXJDYXNlSW52
YWxpZCkKK3sKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVBlcmlvZCwg
c2luZ2xlKCdhJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52
YWxpZCwgc2luZ2xlKCdmJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSW52YWxpZCwgc2luZ2xlKCdpJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdqJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdsJykpOworICAgIEVYUEVDVF9FUShEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCduJykpOworICAgIEVYUEVDVF9F
UShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdvJykpOworICAgIEVY
UEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdwJykpOwor
ICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdy
JykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2lu
Z2xlKCd0JykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxp
ZCwgc2luZ2xlKCd4JykpOworfQorCitURVNUX0YoRGF0ZVRpbWVGb3JtYXRUZXN0LCBTaW5nbGVV
cHBlckNhc2VDaGFyYWN0ZXIpCit7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVNaWxsaXNlY29uZHNJbkRheSwgc2luZ2xlKCdBJykpOworICAgIEVYUEVDVF9FUShEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZZZWFyLCBzaW5nbGUoJ0QnKSk7CisgICAgRVhQRUNU
X0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZldlZWssIHNpbmdsZSgnRScpKTsKKyAg
ICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mV2Vla0luTW9udGgsIHNp
bmdsZSgnRicpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUVyYSwg
c2luZ2xlKCdHJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91
cjIzLCBzaW5nbGUoJ0gnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVIb3VyMTEsIHNpbmdsZSgnSycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZU1vbnRoU3RhbmRBbG9uZSwgc2luZ2xlKCdMJykpOworICAgIEVYUEVDVF9FUShEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGgsIHNpbmdsZSgnTScpKTsKKyAgICBFWFBFQ1RfRVEo
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVF1YXRlciwgc2luZ2xlKCdRJykpOworICAgIEVYUEVD
VF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRnJhY3Rpb25hbFNlY29uZCwgc2luZ2xlKCdT
JykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlV2Vla09mWWVhciwg
c2luZ2xlKCdXJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVh
ck9mV2Vla09mWWVhciwgc2luZ2xlKCdZJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlUkZDODIyWm9uZSwgc2luZ2xlKCdaJykpOworfQorCitURVNUX0YoRGF0ZVRp
bWVGb3JtYXRUZXN0LCBTaW5nbGVVcHBlckNhc2VJbnZhbGlkKQoreworICAgIEVYUEVDVF9FUShE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdCJykpOworICAgIEVYUEVD
VF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdDJykpOworICAg
IEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdJJykp
OworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xl
KCdKJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwg
c2luZ2xlKCdOJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52
YWxpZCwgc2luZ2xlKCdPJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSW52YWxpZCwgc2luZ2xlKCdQJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdSJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdUJykpOworICAgIEVYUEVDVF9FUShEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdVJykpOworICAgIEVYUEVDVF9F
UShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdWJykpOworICAgIEVY
UEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdYJykpOwor
fQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149897</attachid>
            <date>2012-06-28 01:24:41 -0700</date>
            <delta_ts>2012-06-28 02:19:15 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-89963-20120628172440.patch</filename>
            <type>text/plain</type>
            <size>37318</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2YwYmMzZWQxZmFlODA3
MWExZjAzZWJmZWY2OGFmNDFhNzhiMDYyNC4uNDAzNzg1OWIxMTJjYjg1ZTZiMmI2ZDNmZGYxYTk5
NTY4NmVhMDgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEyLTA2LTI4ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW1BsYXRmb3JtXSBJ
bXBsZW1lbnQgRGF0ZSBUaW1lIGZvcm1hdCBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFVuaWNvZGUgVFIz
NSBMRE1MIGRhdGUgdGltZSBmb3JtYXQgcGFyc2VyIGZvcgorICAgICAgICBpbnB1dCB0eXBlICJ0
aW1lIiBpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykgaXMgdHJ1ZS4K
KworICAgICAgICBUZXN0OiBXZWJLaXQvY2hyb21pdW0vdGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0
LmNwcAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERhdGVUaW1lRm9ybWF0LmNw
cAorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIERhdGVUaW1lRm9ybWF0Lntj
cHAsaH0KKyAgICAgICAgKiBUYXJnZXQucHJpOiBkaXR0bworICAgICAgICAqIFdlYkNvcmUuZ3lw
aTogZGl0dG8KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogZGl0dG8K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9kdWN0LnBieHByb2o6IGRpdHRvCisgICAg
ICAgICogcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6bWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZvcm1hdDo6RGF0ZVRpbWVGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGb3JtYXQ6Om1hcENoYXJhY3RlclRvRmllbGRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRm9ybWF0OjpwYXJzZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9EYXRl
VGltZUZvcm1hdC5oOiBBZGRlZC4KKyAgICAgICAgKERhdGVUaW1lRm9ybWF0KToKKyAgICAgICAg
KFRva2VuSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdDo6VG9rZW5I
YW5kbGVyOjp+VG9rZW5IYW5kbGVyKToKKworMjAxMi0wNi0yOCAgWW9zaGlmdW1pIElub3VlICA8
eW9zaW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtQbGF0Zm9ybV0gSW1wbGVtZW50IGZ1bmN0
aW9ucyBmb3IgbG9jYWxpemVkIHRpbWUgZm9ybWF0IGluZm9ybWF0aW9uCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk2NQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDY3OWFlNmZlOWU5Zjg1OWM4YzgzN2M1NTRlNWMzZTI4NTQ2YWNmMmYu
LjFiMDZhZGQzODQyMWQwNTJiNzM4MDE0YThlMTI5YzhiZDA4ZDZjNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzYgQEAKIDIwMTItMDYtMjggIFlvc2hpZnVtaSBJbm91
ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbUGxhdGZvcm1dIEltcGxlbWVudCBE
YXRlIFRpbWUgZm9ybWF0IHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODk5NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gdW5pdCB0ZXN0IGZvciBkYXRlIHRpbWUg
Zm9ybWF0IHBhcnNlciBpZgorICAgICAgICBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExF
X0ZJRUxEUykgaXMgdHJ1ZS4KKworICAgICAgICAqIHRlc3RzL0RhdGVUaW1lRm9ybWF0VGVzdC5j
cHA6IEFkZGVkLgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0KToKKyAgICAgICAgKFRva2Vu
KToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW46OlRva2VuKToKKyAgICAgICAg
KERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW46Om9wZXJhdG9yPT0pOgorICAgICAgICAoRGF0ZVRp
bWVGb3JtYXRUZXN0OjpUb2tlbjo6dG9TdHJpbmcpOgorICAgICAgICAoVG9rZW5zKToKKyAgICAg
ICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5zOjpUb2tlbnMpOgorICAgICAgICAoRGF0ZVRp
bWVGb3JtYXRUZXN0OjpUb2tlbnM6Om9wZXJhdG9yPT0pOgorICAgICAgICAoRGF0ZVRpbWVGb3Jt
YXRUZXN0OjpUb2tlbnM6OnRvU3RyaW5nKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6
cGFyc2UpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpzaW5nbGUpOgorICAgICAgICAo
VG9rZW5IYW5kbGVyKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5kbGVy
Ojp+VG9rZW5IYW5kbGVyKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5k
bGVyOjpmaWVsZFR5cGUpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbkhhbmRs
ZXI6OnRva2Vucyk6CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6OlRva2VuSGFuZGxlcjo6
dmlzaXRGaWVsZCk6CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6OlRva2VuSGFuZGxlcjo6
dmlzaXRMaXRlcmFsKToKKyAgICAgICAgKG9wZXJhdG9yPDwpOgorICAgICAgICAoVEVTVF9GKToK
KworMjAxMi0wNi0yOCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIFtQbGF0Zm9ybV0gSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgbG9jYWxpemVkIHRpbWUg
Zm9ybWF0IGluZm9ybWF0aW9uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04OTk2NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDZkM2RhN2Y4YzI0YjQ2
MjdjNWYxMjMzOTk4ZGYzNzBlNTEzNDQzZjcuLmU1YzI3NDNlYzc5NTQ1MTMzYzg5MTk3ZTFjZTA1
NjBiNzc0YmMwMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjk1LDYgKzEyOTUsNyBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKICAgICBw
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAorICAgIHBsYXRmb3JtL3RleHQvRGF0ZVRpbWVG
b3JtYXQuY3BwCiAgICAgcGxhdGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKICAgICBwbGF0Zm9y
bS90ZXh0L0xpbmVFbmRpbmcuY3BwCiAgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1h
cHBpbmdEZWZhdWx0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzVlYzJl
YzE1NTZmNDRmMjZmMTlkMTlkZjE3M2JjNzdlNDNmMmM4ZS4uOTEwYWU1ZGYzMGMxOTliMjAwOWM4
Y2JmNWZkZTQ1YzViNTI3Yjk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0z
Njc4LDYgKzM2NzgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9CaWRpUmVzb2x2ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpUnVu
TGlzdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNw
cCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDdiOTZi
NzYyNDMwODk4OGJlNDUwNmJhZjVkZTMwMmFmMjFiZDA0ZGMuLmM1MjRlN2FkODEyNDk4MDE5ZDEx
M2JlNmQ1ZjIyMmEyZDg1OWUxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTA3NSw2ICsxMDc1LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0
L0Jhc2U2NC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwIFwKKyAgICBw
bGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9IeXBo
ZW5hdGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVm
YXVsdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZU5vbmUuY3BwIFwKQEAg
LTI0MTEsNiArMjQxMiw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL3NxbC9TUUxWYWx1
ZS5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jp
ZGlDb250ZXh0LmggXAorICAgIHBsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuaCBcCiAgICAg
cGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCBcCiAgICAgcGxhdGZvcm0vdGV4
dC9IeXBoZW5hdGlvbi5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L1F1b3RlZFByaW50YWJsZS5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCAxMDU0ZTA3MjU1Y2E3NmFiOGJkZTVlNGMwMjlhOTY1ZTlkMzAy
ODA1Li5hNjYyMDkwNjdhZGYwNWM2YzA4NTYxZGUyMmVmOTgwY2EzMGQ2Y2FiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC00OTMsNiArNDkzLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0Jp
ZGlSdW5MaXN0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2ZXIuaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90
ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90
ZXh0L0xpbmVFbmRpbmcuaCcsCkBAIC00NTU1LDYgKzQ1NTYsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL3RleHQvQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvQmlk
aUNvbnRleHQuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL3RleHQvSHlwaGVuYXRpb24uaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQxMmRiNTY2YzhjMzk1OTZmZDBmMTI1NDhlMDcxMTU2
ODZjMTI3ZTkuLjQ5Y2EwNDhjNTRlYjZmMzljZmY1ZjFkNWQ0ZWNkM2FiNmMxMzA2NmEgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zMzE5OCw2
ICszMzE5OCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cdGV4dFxEYXRlVGltZUZvcm1hdC5jcHAiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0
XERhdGVUaW1lRm9ybWF0LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XERlY29kZUVzY2FwZVNlcXVlbmNlcy5oIgog
CQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJkZDM1OGM2ODIyYjdjOThkZGRmMzY3YjEwMTY1Yzgx
OGQyOGQ2ZjcuLjYwNzRlODM4ZjRlYWIyNDI5YmUzY2U2NTFjNTZmZGEwODUwN2QzZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTExOTQsNiArMTE5NCw4IEBACiAJCTQ1QkFDMkIwMTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJM
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NUJBQzJB
RjEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ1RkVBNUNGMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNp
bWFsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1
RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCAqLzsgfTsKIAkJNDVGRUE1RDAx
NTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDVGRUE1
Q0YxNTZEREU4QzAwNjU0MTBBIC8qIERhdGVUaW1lRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAv
KiBEYXRlVGltZUZvcm1hdC5jcHAgKi87IH07CisJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwQiAv
KiBEYXRlVGltZUZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDVGRUE1Q0UxNTZEREU4QzAwNjU0MTAxIC8qIERhdGVUaW1lRm9ybWF0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYxNEExRkUw
QjIzQThENjAwNDQ2RTFDIC8qIGNvcHlDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjE0QTFGRDBCMjNBOEQ2MDA0NDZFMUMgLyogY29w
eUN1cnNvci5wbmcgKi87IH07CiAJCTQ2NzAwRUQwMTI3Qjk2Q0IwMEY1RDVENiAvKiBGaWxlV3Jp
dGVyU3luYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NjcwMEVDRTEyN0I5NkNCMDBGNUQ1RDYgLyogRmlsZVdyaXRlclN5bmMuY3BwICovOyB9Owog
CQk0NjcwMEVEMTEyN0I5NkNCMDBGNUQ1RDYgLyogRmlsZVdyaXRlclN5bmMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzAwRUNGMTI3Qjk2Q0IwMEY1
RDVENiAvKiBGaWxlV3JpdGVyU3luYy5oICovOyB9OwpAQCAtMTk3MTUsNiArMTk3MTcsOCBAQAog
CQkJCUIyQzNEOUYzMEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpQ29udGV4dC5oICovLAogCQkJCUIy
QzNEOUY0MEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCAqLywKIAkJCQlBOEM0MDI5
MjEzNDhCMjIyMDA2M0YxRTUgLyogQmlkaVJ1bkxpc3QuaCAqLywKKwkJCQk0NUZFQTVEMDE1NkRE
RThDMDA2NTQxMEEgLyogRGF0ZVRpbWVGb3JtYXQuY3BwICovLAorCQkJCTQ1RkVBNUQwMTU2RERF
OEMwMDY1NDEwQiAvKiBEYXRlVGltZUZvcm1hdC5oICovLAogCQkJCUNFQ0NGQzNBMTQxOTczRDUw
MDJBMEFDMSAvKiBEZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCAqLywKIAkJCQkzNzVDRDIzMTExOUQ0
M0M4MDBBMkE4NTkgLyogSHlwaGVuYXRpb24uaCAqLywKIAkJCQlBNUFCQjc4NjEzQjkwNEJDMDBG
MTk3RTMgLyogTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmggKi8sCkBAIC0yMjI2Myw2ICsyMjI2
Nyw3IEBACiAJCQkJMkU5N0NDRUIxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNTczMkIwQjEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREI2MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlSW5w
dXRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NUZFQTVEMDE1NkRERThDMDA2NTQxMEIgLyog
RGF0ZVRpbWVGb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREI4MTI1MUYxMkQwMDNF
RjI2OSAvKiBEYXRlVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQkEx
MjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ1RkVBNUQwMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAq
LywKQEAgLTI1Nzc2LDYgKzI1NzgxLDcgQEAKIAkJCQkyRTk3Q0NFQTEyOTM5Q0I4MDBDNUM4RkYg
LyogRGF0YVZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3MzJCMEExMzZBMTYxRDAwNUM4
RDdDIC8qIERhdGVDb21wb25lbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREI1MTI1
MUYxMkQwMDNFRjI2OSAvKiBEYXRlSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ1
RkVBNUQwMTU2RERFOEMwMDY1NDEwQSAvKiBEYXRlVGltZUZvcm1hdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGNTVCM0RCNzEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVJbnB1dFR5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQjkxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1l
TG9jYWxJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDVGRUE1Q0YxNTZEREU4QzAw
NjU0MTAxIC8qIERlY2ltYWwuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjNDFlNjEzYjIy
YWVjOTg4NzkxZTg4MTg4MTcyNTEyMzE0OTU0ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcApAQCAtMCwwICsxLDI3MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworLy8jaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxU
SVBMRV9GSUVMRFMpCisKKyNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgorCisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRp
YyBjb25zdCBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGxvd2VyQ2FzZVRvRmllbGRUeXBlTWFw
WzI2XSA9IHsKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kLCAvLyBhCisgICAg
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIGIKKyAgICBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlTG9jYWxEYXlPZldlZWtTdGFuZEFsb24sIC8vIGMKKyAgICBEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aCwgLy8gZAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVMb2NhbERheU9mV2VlaywgLy8gZQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJ
bnZhbGlkLCAvLyBmCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vZGlmaWVkSnVsaWFu
RGF5LCAvLyBnCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMiwgLy8gaAorICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBpCisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIGoKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SG91cjI0LCAvLyBrCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIGwK
KyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWludXRlLCAvLyBtCisgICAgRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIG4KKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSW52YWxpZCwgLy8gbworICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAv
LyBwCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVF1YXRlclN0YW5kQWxvbmUsIC8vIHEK
KyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gcgorICAgIERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVTZWNvbmQsIC8vIHMKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSW52YWxpZCwgLy8gdAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVFeHRlbmRlZFll
YXIsIC8vIHUKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTm9uTG9jYXRpb25ab25lLCAv
LyB2CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVdlZWtPZk1vbnRoLCAvLyB3CisgICAg
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIHgKKyAgICBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlWWVhciwgLy8geQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVab25l
LCAvLyB6Cit9OworCitzdGF0aWMgY29uc3QgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSB1cHBl
ckNhc2VUb0ZpZWxkVHlwZU1hcFsyNl0gPSB7CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZU1pbGxpc2Vjb25kc0luRGF5LCAvLyBBCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUlu
dmFsaWQsIC8vIEIKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gQwor
ICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZlllYXIsIC8vIEQKKyAgICBEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZXZWVrLCAvLyBFCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZURheU9mV2Vla0luTW9udGgsIC8vIEYKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlRXJhLCAvLyBHCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyMywgLy8gSAor
ICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBJCisgICAgRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIEoKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSG91cjExLCAvLyBLCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRB
bG9uZSwgLy8gTAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCwgLy8gTQorICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBOCisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIE8KKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SW52YWxpZCwgLy8gUAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVRdWF0ZXIsIC8vIFEK
KyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gUgorICAgIERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVGcmFjdGlvbmFsU2Vjb25kLCAvLyBTCisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIFQKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SW52YWxpZCwgLy8gVQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMb2NhdGlvblpvbmUs
IC8vIFYKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlV2Vla09mWWVhciwgLy8gVworICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBYCisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZVllYXJPZldlZWtPZlllYXIsIC8vIFkKKyAgICBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlUkZDODIyWm9uZSwgLy8gWgorfTsKKworc3RhdGljIERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGUgbWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGVJbnRlcm5hbChjb25zdCBVQ2hhciBjaCkK
K3sKKyAgICBpZiAoY2ggPj0gJ0EnICYmIGNoIDw9ICdaJykKKyAgICAgICAgcmV0dXJuIHVwcGVy
Q2FzZVRvRmllbGRUeXBlTWFwW2NoIC0gJ0EnXTsKKworICAgIGlmIChjaCA+PSAnYScgJiYgY2gg
PD0gJ3onKQorICAgICAgICByZXR1cm4gbG93ZXJDYXNlVG9GaWVsZFR5cGVNYXBbY2ggLSAnYSdd
OworCisgICAgcmV0dXJuIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMaXRlcmFsOworfQorCitz
dGF0aWMgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBtYXBDaGFyYWN0ZXJUb0ZpZWxkVHlwZShE
YXRlVGltZUZvcm1hdDo6Rm9ybWF0VHlwZSBmb3JtYXRUeXBlLCBVQ2hhciBjaCkKK3sKKyAgICBj
b25zdCBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGZpZWxkVHlwZSA9IG1hcENoYXJhY3RlclRv
RmllbGRUeXBlSW50ZXJuYWwoY2gpOworICAgIHN3aXRjaCAoZm9ybWF0VHlwZSkgeworICAgIGNh
c2UgRGF0ZVRpbWVGb3JtYXQ6OkZvcm1hdFR5cGVJQ1U6CisgICAgICAgIHJldHVybiBmaWVsZFR5
cGUgPT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxvY2FsRGF5T2ZXZWVrU3RhbmRBbG9uID8g
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQgOiBmaWVsZFR5cGU7CisgICAgY2FzZSBE
YXRlVGltZUZvcm1hdDo6Rm9ybWF0VHlwZUxETUw6CisgICAgICAgIHJldHVybiBmaWVsZFR5cGUg
PT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxvY2F0aW9uWm9uZSA/IERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVJbnZhbGlkIDogZmllbGRUeXBlOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmllbGRUeXBlOworICAgIH0KK30K
KworYm9vbCBEYXRlVGltZUZvcm1hdDo6cGFyc2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIFRva2Vu
SGFuZGxlciYgdG9rZW5IYW5kbGVyLCBGb3JtYXRUeXBlIGZvcm1hdFR5cGUpCit7CisgICAgZW51
bSBTdGF0ZSB7CisgICAgICAgIFN0YXRlSW5RdW90ZSwKKyAgICAgICAgU3RhdGVJblF1b3RlUXVv
dGUsCisgICAgICAgIFN0YXRlTGl0ZXJhbCwKKyAgICAgICAgU3RhdGVRdW90ZSwKKyAgICAgICAg
U3RhdGVTeW1ib2wsCisgICAgfSBzdGF0ZSA9IFN0YXRlTGl0ZXJhbDsKKworICAgIEZpZWxkVHlw
ZSBmaWVsZFR5cGUgPSBGaWVsZFR5cGVMaXRlcmFsOworICAgIFN0cmluZ0J1aWxkZXIgbGl0ZXJh
bEJ1ZmZlcjsKKyAgICBpbnQgZmllbGRDb3VudGVyID0gMDsKKworICAgIGZvciAodW5zaWduZWQg
aW50IGluZGV4ID0gMDsgaW5kZXggPCBzb3VyY2UubGVuZ3RoKCk7ICsraW5kZXgpIHsKKyAgICAg
ICAgY29uc3QgVUNoYXIgY2ggPSBzb3VyY2VbaW5kZXhdOworICAgICAgICBzd2l0Y2ggKHN0YXRl
KSB7CisgICAgICAgIGNhc2UgU3RhdGVJblF1b3RlOgorICAgICAgICAgICAgaWYgKGNoID09ICdc
JycpIHsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IFN0YXRlSW5RdW90ZVF1b3RlOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsaXRlcmFsQnVm
ZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFN0YXRl
SW5RdW90ZVF1b3RlOgorICAgICAgICAgICAgaWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAg
ICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZCgnXCcnKTsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9
IFN0YXRlSW5RdW90ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZmllbGRUeXBlID0gbWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGUoZm9ybWF0VHlw
ZSwgY2gpOworICAgICAgICAgICAgaWYgKGZpZWxkVHlwZSA9PSBGaWVsZFR5cGVJbnZhbGlkKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYgKGZpZWxkVHlw
ZSA9PSBGaWVsZFR5cGVMaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5h
cHBlbmQoY2gpOworICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGVMaXRlcmFsOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGl0ZXJh
bEJ1ZmZlci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExp
dGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBsaXRlcmFs
QnVmZmVyLmNsZWFyKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZpZWxkQ291bnRl
ciA9IDE7CisgICAgICAgICAgICBzdGF0ZSA9IFN0YXRlU3ltYm9sOworICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgY2FzZSBTdGF0ZUxpdGVyYWw6CisgICAgICAgICAgICBpZiAoY2ggPT0g
J1wnJykgeworICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGVRdW90ZTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZmllbGRUeXBlID0gbWFw
Q2hhcmFjdGVyVG9GaWVsZFR5cGUoZm9ybWF0VHlwZSwgY2gpOworICAgICAgICAgICAgaWYgKGZp
ZWxkVHlwZSA9PSBGaWVsZFR5cGVJbnZhbGlkKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICAgICAgaWYgKGZpZWxkVHlwZSA9PSBGaWVsZFR5cGVMaXRlcmFsKSB7Cisg
ICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5s
ZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwobGl0
ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmNs
ZWFyKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZpZWxkQ291bnRlciA9IDE7Cisg
ICAgICAgICAgICBzdGF0ZSA9IFN0YXRlU3ltYm9sOworICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgY2FzZSBTdGF0ZVF1b3RlOgorICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5hcHBlbmQo
Y2gpOworICAgICAgICAgICAgc3RhdGUgPSBjaCA9PSAnXCcnID8gU3RhdGVMaXRlcmFsIDogU3Rh
dGVJblF1b3RlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBTdGF0ZVN5bWJv
bDogeworICAgICAgICAgICAgQVNTRVJUKGZpZWxkVHlwZSAhPSBGaWVsZFR5cGVJbnZhbGlkKTsK
KyAgICAgICAgICAgIEFTU0VSVChmaWVsZFR5cGUgIT0gRmllbGRUeXBlTGl0ZXJhbCk7CisgICAg
ICAgICAgICBBU1NFUlQobGl0ZXJhbEJ1ZmZlci5pc0VtcHR5KCkpOworCisgICAgICAgICAgICBG
aWVsZFR5cGUgZmllbGRUeXBlMiA9IG1hcENoYXJhY3RlclRvRmllbGRUeXBlKGZvcm1hdFR5cGUs
IGNoKTsKKyAgICAgICAgICAgIGlmIChmaWVsZFR5cGUyID09IEZpZWxkVHlwZUludmFsaWQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpZiAoZmllbGRUeXBl
ID09IGZpZWxkVHlwZTIpIHsKKyAgICAgICAgICAgICAgICArK2ZpZWxkQ291bnRlcjsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdG9rZW5IYW5k
bGVyLnZpc2l0RmllbGQoZmllbGRUeXBlLCBmaWVsZENvdW50ZXIpOworCisgICAgICAgICAgICBp
ZiAoZmllbGRUeXBlMiA9PSBGaWVsZFR5cGVMaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgaWYg
KGNoID09ICdcJycpCisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGVRdW90ZTsKKyAg
ICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5h
cHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFN0YXRlTGl0ZXJhbDsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZpZWxkQ291bnRlciA9IDE7CisgICAgICAgICAgICBmaWVsZFR5cGUgPSBm
aWVsZFR5cGUyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgTE9HX0VSUk9SKCJJbnZsaWFkIHN0YXRlPSVkIiwgc3RhdGUpOwor
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBBU1NFUlQoZmllbGRUeXBlICE9IEZpZWxkVHlw
ZUludmFsaWQpOworCisgICAgc3dpdGNoIChzdGF0ZSkgeworICAgIGNhc2UgU3RhdGVMaXRlcmFs
OgorICAgIGNhc2UgU3RhdGVJblF1b3RlUXVvdGU6CisgICAgICAgIGlmIChsaXRlcmFsQnVmZmVy
Lmxlbmd0aCgpKQorICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFs
QnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNhc2UgU3Rh
dGVRdW90ZToKKyAgICBjYXNlIFN0YXRlSW5RdW90ZToKKyAgICAgICAgaWYgKGxpdGVyYWxCdWZm
ZXIubGVuZ3RoKCkpCisgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKGxpdGVy
YWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGNhc2Ug
U3RhdGVTeW1ib2w6CisgICAgICAgIEFTU0VSVChmaWVsZFR5cGUgIT0gRmllbGRUeXBlTGl0ZXJh
bCk7CisgICAgICAgIEFTU0VSVCghbGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSk7CisgICAgICAgIHRv
a2VuSGFuZGxlci52aXNpdEZpZWxkKGZpZWxkVHlwZSwgZmllbGRDb3VudGVyKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBMT0dfRVJST1IoIkludmxpYWQg
c3RhdGU9JWQiLCBzdGF0ZSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKy8v
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGlt
ZUZvcm1hdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAyZTM1NDMwZTMyMjMwODUwMzJhODA0ZjE2MGI5ZGFmMDIyZWU1NTcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9y
bWF0LmgKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERhdGVUaW1lRm9ybWF0X2gKKyNkZWZpbmUg
RGF0ZVRpbWVGb3JtYXRfaAorCisvLyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExF
X0ZJRUxEUykKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKy8vIERhdGVUaW1lRm9ybWF0IHBhcnNlcyBkYXRlIHRpbWUgZm9ybWF0IGRl
ZmluZWQgaW4gVW5pY29kZSBUZWNobmljYWwKKy8vIHN0YW5kYXJkIDM1LCBMb2NhbGUgRGF0YSBN
YXJrdXAgTGFuZ3VhZ2UgKExETUwpWzFdLCBhbmQgSUNVIHZhcmlhbnRbMl0uCisvLworLy8gRGlm
ZmVyZW5jZXMgYmV0d2VlbiBMRE1MIGFuZCBJQ1UgYXJlOgorLy8gIC0gTERNTCBzdXBwb3J0IHN5
bWJvbCAiYyIsIGJ1dCBJQ1UgZG9lc24ndC4KKy8vICAtIElDVSBzdXBwb3J0IHN5bWJvbCAiViIs
IGJ1dCBMRE1MIGRvZXNuJ3QuCisvLworLy8gWzFdIExETUwgaHR0cDovL3VuaWNvZGUub3JnL3Jl
cG9ydHMvdHIzNS90cjM1LTYuaHRtbCNEYXRlX0Zvcm1hdF9QYXR0ZXJucworLy8gWzJdIGh0dHA6
Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2Zvcm1hdHBhcnNlL2RhdGV0aW1lCitjbGFzcyBE
YXRlVGltZUZvcm1hdCB7CitwdWJsaWM6CisgICAgZW51bSBGaWVsZFR5cGUgeworICAgICAgICBG
aWVsZFR5cGVJbnZhbGlkLAorICAgICAgICBGaWVsZFR5cGVMaXRlcmFsLAorCisgICAgICAgIC8v
IEVyYTogQUQKKyAgICAgICAgRmllbGRUeXBlRXJhID0gJ0cnLAorCisgICAgICAgIC8vIFllYXI6
IDE5OTYKKyAgICAgICAgRmllbGRUeXBlWWVhciA9ICd5JywKKyAgICAgICAgRmllbGRUeXBlWWVh
ck9mV2Vla09mWWVhciA9ICdZJywKKyAgICAgICAgRmllbGRUeXBlRXh0ZW5kZWRZZWFyID0gJ3Un
LAorCisgICAgICAgIC8vIFF1YXRlcjogUTIKKyAgICAgICAgRmllbGRUeXBlUXVhdGVyID0gJ1En
LAorICAgICAgICBGaWVsZFR5cGVRdWF0ZXJTdGFuZEFsb25lID0gJ3EnLAorCisgICAgICAgIC8v
IE1vbnRoOiBTZXB0ZW1iZXIKKyAgICAgICAgRmllbGRUeXBlTW9udGggPSAnTScsCisgICAgICAg
IEZpZWxkVHlwZU1vbnRoU3RhbmRBbG9uZSA9ICdMJywKKworICAgICAgICAvLyBXZWVrOiA0Mgor
ICAgICAgICBGaWVsZFR5cGVXZWVrT2ZZZWFyID0gJ1cnLAorICAgICAgICBGaWVsZFR5cGVXZWVr
T2ZNb250aCA9ICd3JywKKworICAgICAgICAvLyBEYXk6IDEyCisgICAgICAgIEZpZWxkVHlwZURh
eU9mTW9udGggPSAnZCcsCisgICAgICAgIEZpZWxkVHlwZURheU9mWWVhciA9ICdEJywKKyAgICAg
ICAgRmllbGRUeXBlRGF5T2ZXZWVrSW5Nb250aCA9ICdGJywKKyAgICAgICAgRmllbGRUeXBlTW9k
aWZpZWRKdWxpYW5EYXkgPSAnZycsCisKKyAgICAgICAgLy8gV2VlayBEYXk6IFR1ZXNkYXkKKyAg
ICAgICAgRmllbGRUeXBlRGF5T2ZXZWVrID0gJ0UnLAorICAgICAgICBGaWVsZFR5cGVMb2NhbERh
eU9mV2VlayA9ICdlJywKKyAgICAgICAgRmllbGRUeXBlTG9jYWxEYXlPZldlZWtTdGFuZEFsb24g
PSAnYycsIC8vIElDVSBkb2Vzbid0IHN1cHBvcnQgdGhpcy4KKworICAgICAgICAvLyBQZXJpb2Q6
IEFNIG9yIFBNCisgICAgICAgIEZpZWxkVHlwZVBlcmlvZCA9ICdhJywKKworICAgICAgICAvLyBI
b3VyOiA3CisgICAgICAgIEZpZWxkVHlwZUhvdXIxMiA9ICdoJywKKyAgICAgICAgRmllbGRUeXBl
SG91cjIzID0gJ0gnLAorICAgICAgICBGaWVsZFR5cGVIb3VyMTEgPSAnSycsCisgICAgICAgIEZp
ZWxkVHlwZUhvdXIyNCA9ICdrJywKKworICAgICAgICAvLyBNaW51dGU6IDU5CisgICAgICAgIEZp
ZWxkVHlwZU1pbnV0ZSA9ICdtJywKKworICAgICAgICAvLyBTZWNvbmQ6IDEyCisgICAgICAgIEZp
ZWxkVHlwZVNlY29uZCA9ICdzJywKKyAgICAgICAgRmllbGRUeXBlRnJhY3Rpb25hbFNlY29uZCA9
ICdTJywKKyAgICAgICAgRmllbGRUeXBlTWlsbGlzZWNvbmRzSW5EYXkgPSAnQScsCisKKyAgICAg
ICAgLy8gWm9uZTogUERUCisgICAgICAgIEZpZWxkVHlwZVpvbmUgPSAneicsCisgICAgICAgIEZp
ZWxkVHlwZVJGQzgyMlpvbmUgPSAnWicsCisgICAgICAgIEZpZWxkVHlwZU5vbkxvY2F0aW9uWm9u
ZSA9ICd2JywKKyAgICAgICAgRmllbGRUeXBlTG9jYXRpb25ab25lID0gJ1YnLCAvLyBJQ1Ugb25s
eS4KKyAgICB9OworCisgICAgZW51bSBGb3JtYXRUeXBlIHsKKyAgICAgICAgRm9ybWF0VHlwZUlD
VSwKKyAgICAgICAgRm9ybWF0VHlwZUxETUwsCisgICAgfTsKKworICAgIGNsYXNzIFRva2VuSGFu
ZGxlciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5Ub2tlbkhhbmRsZXIoKSB7IH0K
KyAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0RmllbGQoRmllbGRUeXBlLCBpbnQpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmKSA9IDA7CisgICAg
fTsKKworICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBzdWNjZWVkZWQsIGZhbHNlIGlmIGZhaWxlZC4K
KyAgICBzdGF0aWMgYm9vbCBwYXJzZShjb25zdCBTdHJpbmcmLCBUb2tlbkhhbmRsZXImLCBGb3Jt
YXRUeXBlID0gRm9ybWF0VHlwZUxETUwpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisvLyAjZW5kaWYKKworI2VuZGlmIC8vIERhdGVUaW1lRm9ybWF0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXBpCmluZGV4IGE4ZGQzYTYyNjUzNTA1MzcwMTUwYzY1ZWU4ZGZjZTA5MTdlNzg0
ZGQuLjI3YzM3YjY0NGE4OTk3NTViNzNkOGM0NmJiZWM2NTViZTYwM2M3OTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwaQpAQCAtOTcsNiArOTcsNyBAQAogICAgICAgICAgICAgJ3Rlc3Rz
L0NDVGltZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvQ2xpcGJvYXJkQ2hyb21pdW1U
ZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvQ29tcG9zaXRvckZha2VXZWJHcmFwaGljc0Nv
bnRleHQzRC5oJywKKyAgICAgICAgICAgICd0ZXN0cy9EYXRlVGltZUZvcm1hdFRlc3QuY3BwJywK
ICAgICAgICAgICAgICd0ZXN0cy9EZWNpbWFsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3Rz
L0RyYWdJbWFnZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9FdmVudExpc3RlbmVyVGVz
dC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9EYXRlVGlt
ZUZvcm1hdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9EYXRlVGltZUZv
cm1hdFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyOGVmODZhZjM2OTMyMWM1YTI0NDcwOTRmOWNjNmFh
ZjkyMTYxYzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0RhdGVUaW1lRm9ybWF0VGVzdC5jcHAKQEAgLTAsMCArMSwzNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKy8vI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorCisj
aW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2NsYXNzIERhdGVUaW1lRm9y
bWF0VGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworcHVibGljOgorICAgIHR5cGVkZWYg
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBGaWVsZFR5cGU7CisKKyAgICBzdHJ1Y3QgVG9rZW4g
eworICAgICAgICBTdHJpbmcgc3RyaW5nOworICAgICAgICBpbnQgY291bnQ7CisgICAgICAgIEZp
ZWxkVHlwZSBmaWVsZFR5cGU7CisKKyAgICAgICAgVG9rZW4oRmllbGRUeXBlIGZpZWxkVHlwZSwg
aW50IGNvdW50ID0gMSkKKyAgICAgICAgICAgIDogY291bnQoY291bnQpCisgICAgICAgICAgICAs
IGZpZWxkVHlwZShmaWVsZFR5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChmaWVs
ZFR5cGUgIT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxpdGVyYWwpOworICAgICAgICB9CisK
KyAgICAgICAgVG9rZW4oY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgICAgICAgICA6IHN0cmlu
ZyhzdHJpbmcpCisgICAgICAgICAgICAsIGNvdW50KDApCisgICAgICAgICAgICAsIGZpZWxkVHlw
ZShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTGl0ZXJhbCkKKyAgICAgICAgeworICAgICAgICB9
CisKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRva2VuJiBvdGhlcikgY29uc3QKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZpZWxkVHlwZSA9PSBvdGhlci5maWVsZFR5cGUg
JiYgY291bnQgPT0gb3RoZXIuY291bnQgJiYgc3RyaW5nID09IG90aGVyLnN0cmluZzsKKyAgICAg
ICAgfQorCisgICAgICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0CisgICAgICAgIHsKKyAgICAg
ICAgICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7CisgICAgICAgICAgICBjYXNlIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVJbnZhbGlkOgorICAgICAgICAgICAgICAgIHJldHVybiAiKmludmFsaWQq
IjsKKyAgICAgICAgICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxpdGVyYWw6IHsK
KyAgICAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJyInKTsKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChzdHJp
bmcpOworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCciJyk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJUb2tlbigl
ZCwgJWQpIiwgZmllbGRUeXBlLCBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9OworCisgICAgY2xhc3MgVG9rZW5zIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRva2Vucygp
IHsgfQorCisgICAgICAgIGV4cGxpY2l0IFRva2Vucyhjb25zdCBWZWN0b3I8VG9rZW4+IHRva2Vu
cykKKyAgICAgICAgICAgIDogbV90b2tlbnModG9rZW5zKQorICAgICAgICB7CisgICAgICAgIH0K
KworICAgICAgICBleHBsaWNpdCBUb2tlbnMoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgICAg
IHsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZChUb2tlbihzdHJpbmcpKTsKKyAgICAgICAg
fQorCisgICAgICAgIGV4cGxpY2l0IFRva2VucyhUb2tlbiB0b2tlbjEpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjEpOworICAgICAgICB9CisKKyAgICAgICAg
VG9rZW5zKFRva2VuIHRva2VuMSwgVG9rZW4gdG9rZW4yKQorICAgICAgICB7CisgICAgICAgICAg
ICBtX3Rva2Vucy5hcHBlbmQodG9rZW4xKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0
b2tlbjIpOworICAgICAgICB9CisKKyAgICAgICAgVG9rZW5zKFRva2VuIHRva2VuMSwgVG9rZW4g
dG9rZW4yLCBUb2tlbiB0b2tlbjMpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFw
cGVuZCh0b2tlbjEpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMik7CisgICAg
ICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4zKTsKKyAgICAgICAgfQorCisgICAgICAgIFRv
a2VucyhUb2tlbiB0b2tlbjEsIFRva2VuIHRva2VuMiwgVG9rZW4gdG9rZW4zLCBUb2tlbiB0b2tl
bjQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjEpOworICAg
ICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMik7CisgICAgICAgICAgICBtX3Rva2Vucy5h
cHBlbmQodG9rZW4zKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjQpOworICAg
ICAgICB9CisKKyAgICAgICAgVG9rZW5zKFRva2VuIHRva2VuMSwgVG9rZW4gdG9rZW4yLCBUb2tl
biB0b2tlbjMsIFRva2VuIHRva2VuNCwgVG9rZW4gdG9rZW41KQorICAgICAgICB7CisgICAgICAg
ICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4xKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVu
ZCh0b2tlbjIpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMyk7CisgICAgICAg
ICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW40KTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVu
ZCh0b2tlbjUpOworICAgICAgICB9CisKKyAgICAgICAgVG9rZW5zKFRva2VuIHRva2VuMSwgVG9r
ZW4gdG9rZW4yLCBUb2tlbiB0b2tlbjMsIFRva2VuIHRva2VuNCwgVG9rZW4gdG9rZW41LCBUb2tl
biB0b2tlbjYpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjEp
OworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMik7CisgICAgICAgICAgICBtX3Rv
a2Vucy5hcHBlbmQodG9rZW4zKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjQp
OworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuNSk7CisgICAgICAgICAgICBtX3Rv
a2Vucy5hcHBlbmQodG9rZW42KTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBUb2tlbnMmIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gbV90b2tlbnMgPT0gb3RoZXIubV90b2tlbnM7CisgICAgICAgIH0KKworICAgICAgICBTdHJp
bmcgdG9TdHJpbmcoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiVG9rZW5zKCIpOworICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbV90b2tlbnMuc2l6ZSgpOyAr
K2luZGV4KSB7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4KQorICAgICAgICAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiLCIpOworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1f
dG9rZW5zW2luZGV4XS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCIpIik7CisgICAgICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBWZWN0b3I8VG9rZW4+IG1fdG9r
ZW5zOworICAgIH07CisKK3Byb3RlY3RlZDoKKyAgICBUb2tlbnMgcGFyc2UoY29uc3QgU3RyaW5n
JiBmb3JtYXRTdHJpbmcpCisgICAgeworICAgICAgICBUb2tlbkhhbmRsZXIgaGFuZGxlcjsKKyAg
ICAgICAgaWYgKCFEYXRlVGltZUZvcm1hdDo6cGFyc2UoZm9ybWF0U3RyaW5nLCBoYW5kbGVyKSkK
KyAgICAgICAgICAgIHJldHVybiBUb2tlbnMoVG9rZW4oIipmYWlsZWQqIikpOworICAgICAgICBy
ZXR1cm4gaGFuZGxlci50b2tlbnMoKTsKKyAgICB9CisKKyAgICBGaWVsZFR5cGUgc2luZ2xlKGNv
bnN0IGNoYXIgY2gpCisgICAgeworICAgICAgICBjaGFyIGZvcm1hdFN0cmluZ1syXTsKKyAgICAg
ICAgZm9ybWF0U3RyaW5nWzBdID0gY2g7CisgICAgICAgIGZvcm1hdFN0cmluZ1sxXSA9IDA7Cisg
ICAgICAgIFRva2VuSGFuZGxlciBoYW5kbGVyOworICAgICAgICBpZiAoIURhdGVUaW1lRm9ybWF0
OjpwYXJzZShmb3JtYXRTdHJpbmcsIGhhbmRsZXIpKQorICAgICAgICAgICAgcmV0dXJuIERhdGVU
aW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkOworICAgICAgICByZXR1cm4gaGFuZGxlci5maWVs
ZFR5cGUoMCk7CisgICAgfQorCitwcml2YXRlOgorICAgIGNsYXNzIFRva2VuSGFuZGxlciA6IHB1
YmxpYyBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5kbGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAg
IHZpcnR1YWwgflRva2VuSGFuZGxlcigpIHsgfQorCisgICAgICAgIEZpZWxkVHlwZSBmaWVsZFR5
cGUoaW50IGluZGV4KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaW5kZXgg
Pj0wICYmIGluZGV4IDwgc3RhdGljX2Nhc3Q8aW50PihtX3Rva2Vucy5zaXplKCkpID8gbV90b2tl
bnNbaW5kZXhdLmZpZWxkVHlwZSA6IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkOwor
ICAgICAgICB9CisKKyAgICAgICAgVG9rZW5zIHRva2VucygpIGNvbnN0IHsgcmV0dXJuIFRva2Vu
cyhtX3Rva2Vucyk7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNp
dEZpZWxkKEZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCBjb3VudCkKKyAgICAgICAgeworICAgICAg
ICAgICAgbV90b2tlbnMuYXBwZW5kKFRva2VuKGZpZWxkVHlwZSwgY291bnQpKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZChUb2tlbihzdHJpbmcp
KTsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3RvcjxUb2tlbj4gbV90b2tlbnM7CisgICAgfTsK
K307CisKK3N0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBE
YXRlVGltZUZvcm1hdFRlc3Q6OlRva2VucyYgdG9rZW5zKQoreworICAgIHJldHVybiBvcyA8PCB0
b2tlbnMudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEoKTsKK30KKworVEVTVF9GKERhdGVUaW1lRm9y
bWF0VGVzdCwgQ29tbW9uUGF0dGVybikKK3sKKyAgICBFWFBFQ1RfRVEoVG9rZW5zKCksIHBhcnNl
KCIiKSk7CisKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFRva2VucygKKyAgICAgICAgICAgIFRv
a2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVZZWFyLCA0KSwgVG9rZW4oIi0iKSwKKyAgICAg
ICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCwgMiksIFRva2VuKCIt
IiksCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZNb250
aCwgMikpLAorICAgICAgICBwYXJzZSgieXl5eS1NTS1kZCIpKTsKKworICAgIEVYUEVDVF9FUSgK
KyAgICAgICAgVG9rZW5zKAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZUhvdXIyNCwgMiksIFRva2VuKCI6IiksCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlTWludXRlLCAyKSwgVG9rZW4oIjoiKSwKKyAgICAgICAgICAgIFRva2Vu
KERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVTZWNvbmQsIDIpKSwKKyAgICAgICAgcGFyc2UoImtr
Om1tOnNzIikpOworCisgICAgRVhQRUNUX0VRKAorICAgICAgICBUb2tlbnMoCisgICAgICAgICAg
ICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjEyKSwgVG9rZW4oIjoiKSwKKyAg
ICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGUpLCBUb2tlbigi
ICIpLAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVBlcmlvZCkp
LAorICAgICAgICBwYXJzZSgiaDptIGEiKSk7CisKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFRv
a2VucygKKyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVZZWFyKSwg
VG9rZW4oIk5lbiAiKSwKKyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVNb250aCksIFRva2VuKCJHZXRzdSAiKSwKKyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVEYXlPZk1vbnRoKSwgVG9rZW4oIk5pY2hpIikpLAorICAgICAgICBwYXJz
ZSgieSdOZW4nIE0nR2V0c3UnIGQnTmljaGknIikpOworfQorCitURVNUX0YoRGF0ZVRpbWVGb3Jt
YXRUZXN0LCBNaXNzaW5nQ2xvc2luZ1F1b3RlKQoreworICAgIEVYUEVDVF9FUShUb2tlbnMoIipm
YWlsZWQqIiksIHBhcnNlKCInZm9vIikpOworICAgIEVYUEVDVF9FUShUb2tlbnMoIipmYWlsZWQq
IiksIHBhcnNlKCJmbydvIikpOworICAgIEVYUEVDVF9FUShUb2tlbnMoIipmYWlsZWQqIiksIHBh
cnNlKCJmb28nIikpOworfQorCitURVNUX0YoRGF0ZVRpbWVGb3JtYXRUZXN0LCBRdW90ZSkKK3sK
KyAgICBFWFBFQ1RfRVEoVG9rZW5zKCJGb29CYXIiKSwgcGFyc2UoIidGb29CYXInIikpOworICAg
IEVYUEVDVF9FUShUb2tlbnMoIiciKSwgcGFyc2UoIicnIikpOworICAgIEVYUEVDVF9FUShUb2tl
bnMoIictJyIpLCBwYXJzZSgiJyctJyciKSk7CisgICAgRVhQRUNUX0VRKFRva2VucygiRm9vJ0Jh
ciIpLCBwYXJzZSgiJ0ZvbycnQmFyJyIpKTsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFRva2Vu
cyhUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRXJhKSwgVG9rZW4oIidzIikpLAorICAg
ICAgICBwYXJzZSgiRycnJ3MnIikpOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgVG9rZW5zKFRv
a2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVFcmEpLCBUb2tlbigiJyIpLCBUb2tlbihEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlU2Vjb25kKSksCisgICAgICAgIHBhcnNlKCJHJydzIikpOwor
fQorCitURVNUX0YoRGF0ZVRpbWVGb3JtYXRUZXN0LCBTaW5nbGVMb3dlckNhc2VDaGFyYWN0ZXIp
Cit7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5n
bGUoJ2InKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMb2NhbERh
eU9mV2Vla1N0YW5kQWxvbiwgc2luZ2xlKCdjJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aCwgc2luZ2xlKCdkJykpOworICAgIEVYUEVDVF9FUShE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTG9jYWxEYXlPZldlZWssIHNpbmdsZSgnZScpKTsKKyAg
ICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vZGlmaWVkSnVsaWFuRGF5LCBz
aW5nbGUoJ2cnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3Vy
MTIsIHNpbmdsZSgnaCcpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZUhvdXIyNCwgc2luZ2xlKCdrJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlTWludXRlLCBzaW5nbGUoJ20nKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVRdWF0ZXJTdGFuZEFsb25lLCBzaW5nbGUoJ3EnKSk7CisgICAgRVhQRUNUX0VR
KERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVTZWNvbmQsIHNpbmdsZSgncycpKTsKKyAgICBFWFBF
Q1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUV4dGVuZGVkWWVhciwgc2luZ2xlKCd1Jykp
OworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTm9uTG9jYXRpb25ab25l
LCBzaW5nbGUoJ3YnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVX
ZWVrT2ZNb250aCwgc2luZ2xlKCd3JykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlWWVhciwgc2luZ2xlKCd5JykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlWm9uZSwgc2luZ2xlKCd6JykpOworfQorCitURVNUX0YoRGF0ZVRpbWVGb3Jt
YXRUZXN0LCBTaW5nbGVMb3dlckNhc2VJbnZhbGlkKQoreworICAgIEVYUEVDVF9FUShEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kLCBzaW5nbGUoJ2EnKSk7CisgICAgRVhQRUNUX0VRKERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ2YnKSk7CisgICAgRVhQRUNU
X0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ2knKSk7CisgICAg
RVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ2onKSk7
CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUo
J2wnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBz
aW5nbGUoJ24nKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZh
bGlkLCBzaW5nbGUoJ28nKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVJbnZhbGlkLCBzaW5nbGUoJ3AnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ3InKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ3QnKSk7CisgICAgRVhQRUNUX0VRKERhdGVU
aW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ3gnKSk7Cit9CisKK1RFU1RfRihE
YXRlVGltZUZvcm1hdFRlc3QsIFNpbmdsZVVwcGVyQ2FzZUNoYXJhY3RlcikKK3sKKyAgICBFWFBF
Q1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1pbGxpc2Vjb25kc0luRGF5LCBzaW5nbGUo
J0EnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZlllYXIs
IHNpbmdsZSgnRCcpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURh
eU9mV2Vlaywgc2luZ2xlKCdFJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlRGF5T2ZXZWVrSW5Nb250aCwgc2luZ2xlKCdGJykpOworICAgIEVYUEVDVF9FUShEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlRXJhLCBzaW5nbGUoJ0cnKSk7CisgICAgRVhQRUNUX0VRKERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjMsIHNpbmdsZSgnSCcpKTsKKyAgICBFWFBFQ1Rf
RVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMSwgc2luZ2xlKCdLJykpOworICAgIEVY
UEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGhTdGFuZEFsb25lLCBzaW5nbGUo
J0wnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCwgc2lu
Z2xlKCdNJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUXVhdGVy
LCBzaW5nbGUoJ1EnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVG
cmFjdGlvbmFsU2Vjb25kLCBzaW5nbGUoJ1MnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVXZWVrT2ZZZWFyLCBzaW5nbGUoJ1cnKSk7CisgICAgRVhQRUNUX0VRKERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVZZWFyT2ZXZWVrT2ZZZWFyLCBzaW5nbGUoJ1knKSk7Cisg
ICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVSRkM4MjJab25lLCBzaW5nbGUo
J1onKSk7Cit9CisKK1RFU1RfRihEYXRlVGltZUZvcm1hdFRlc3QsIFNpbmdsZVVwcGVyQ2FzZUlu
dmFsaWQpCit7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlk
LCBzaW5nbGUoJ0InKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJ
bnZhbGlkLCBzaW5nbGUoJ0MnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ0knKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ0onKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ04nKSk7CisgICAgRVhQRUNUX0VRKERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ08nKSk7CisgICAgRVhQRUNU
X0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ1AnKSk7CisgICAg
RVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ1InKSk7
CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUo
J1QnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBz
aW5nbGUoJ1UnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZh
bGlkLCBzaW5nbGUoJ1YnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVJbnZhbGlkLCBzaW5nbGUoJ1gnKSk7Cit9CisKKy8vI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149906</attachid>
            <date>2012-06-28 02:19:24 -0700</date>
            <delta_ts>2012-06-28 18:33:25 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-89963-20120628181923.patch</filename>
            <type>text/plain</type>
            <size>38875</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2YwYmMzZWQxZmFlODA3
MWExZjAzZWJmZWY2OGFmNDFhNzhiMDYyNC4uNDAzNzg1OWIxMTJjYjg1ZTZiMmI2ZDNmZGYxYTk5
NTY4NmVhMDgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEyLTA2LTI4ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW1BsYXRmb3JtXSBJ
bXBsZW1lbnQgRGF0ZSBUaW1lIGZvcm1hdCBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFVuaWNvZGUgVFIz
NSBMRE1MIGRhdGUgdGltZSBmb3JtYXQgcGFyc2VyIGZvcgorICAgICAgICBpbnB1dCB0eXBlICJ0
aW1lIiBpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykgaXMgdHJ1ZS4K
KworICAgICAgICBUZXN0OiBXZWJLaXQvY2hyb21pdW0vdGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0
LmNwcAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERhdGVUaW1lRm9ybWF0LmNw
cAorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIERhdGVUaW1lRm9ybWF0Lntj
cHAsaH0KKyAgICAgICAgKiBUYXJnZXQucHJpOiBkaXR0bworICAgICAgICAqIFdlYkNvcmUuZ3lw
aTogZGl0dG8KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogZGl0dG8K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9kdWN0LnBieHByb2o6IGRpdHRvCisgICAg
ICAgICogcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6bWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZvcm1hdDo6RGF0ZVRpbWVGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGb3JtYXQ6Om1hcENoYXJhY3RlclRvRmllbGRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRm9ybWF0OjpwYXJzZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9EYXRl
VGltZUZvcm1hdC5oOiBBZGRlZC4KKyAgICAgICAgKERhdGVUaW1lRm9ybWF0KToKKyAgICAgICAg
KFRva2VuSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdDo6VG9rZW5I
YW5kbGVyOjp+VG9rZW5IYW5kbGVyKToKKworMjAxMi0wNi0yOCAgWW9zaGlmdW1pIElub3VlICA8
eW9zaW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtQbGF0Zm9ybV0gSW1wbGVtZW50IGZ1bmN0
aW9ucyBmb3IgbG9jYWxpemVkIHRpbWUgZm9ybWF0IGluZm9ybWF0aW9uCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk2NQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDY3OWFlNmZlOWU5Zjg1OWM4YzgzN2M1NTRlNWMzZTI4NTQ2YWNmMmYu
LjFiMDZhZGQzODQyMWQwNTJiNzM4MDE0YThlMTI5YzhiZDA4ZDZjNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzYgQEAKIDIwMTItMDYtMjggIFlvc2hpZnVtaSBJbm91
ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbUGxhdGZvcm1dIEltcGxlbWVudCBE
YXRlIFRpbWUgZm9ybWF0IHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODk5NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gdW5pdCB0ZXN0IGZvciBkYXRlIHRpbWUg
Zm9ybWF0IHBhcnNlciBpZgorICAgICAgICBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExF
X0ZJRUxEUykgaXMgdHJ1ZS4KKworICAgICAgICAqIHRlc3RzL0RhdGVUaW1lRm9ybWF0VGVzdC5j
cHA6IEFkZGVkLgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0KToKKyAgICAgICAgKFRva2Vu
KToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW46OlRva2VuKToKKyAgICAgICAg
KERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW46Om9wZXJhdG9yPT0pOgorICAgICAgICAoRGF0ZVRp
bWVGb3JtYXRUZXN0OjpUb2tlbjo6dG9TdHJpbmcpOgorICAgICAgICAoVG9rZW5zKToKKyAgICAg
ICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5zOjpUb2tlbnMpOgorICAgICAgICAoRGF0ZVRp
bWVGb3JtYXRUZXN0OjpUb2tlbnM6Om9wZXJhdG9yPT0pOgorICAgICAgICAoRGF0ZVRpbWVGb3Jt
YXRUZXN0OjpUb2tlbnM6OnRvU3RyaW5nKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6
cGFyc2UpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpzaW5nbGUpOgorICAgICAgICAo
VG9rZW5IYW5kbGVyKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5kbGVy
Ojp+VG9rZW5IYW5kbGVyKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5k
bGVyOjpmaWVsZFR5cGUpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbkhhbmRs
ZXI6OnRva2Vucyk6CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6OlRva2VuSGFuZGxlcjo6
dmlzaXRGaWVsZCk6CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6OlRva2VuSGFuZGxlcjo6
dmlzaXRMaXRlcmFsKToKKyAgICAgICAgKG9wZXJhdG9yPDwpOgorICAgICAgICAoVEVTVF9GKToK
KworMjAxMi0wNi0yOCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIFtQbGF0Zm9ybV0gSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgbG9jYWxpemVkIHRpbWUg
Zm9ybWF0IGluZm9ybWF0aW9uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04OTk2NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDZkM2RhN2Y4YzI0YjQ2
MjdjNWYxMjMzOTk4ZGYzNzBlNTEzNDQzZjcuLmU1YzI3NDNlYzc5NTQ1MTMzYzg5MTk3ZTFjZTA1
NjBiNzc0YmMwMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjk1LDYgKzEyOTUsNyBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKICAgICBw
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAorICAgIHBsYXRmb3JtL3RleHQvRGF0ZVRpbWVG
b3JtYXQuY3BwCiAgICAgcGxhdGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKICAgICBwbGF0Zm9y
bS90ZXh0L0xpbmVFbmRpbmcuY3BwCiAgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1h
cHBpbmdEZWZhdWx0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzVlYzJl
YzE1NTZmNDRmMjZmMTlkMTlkZjE3M2JjNzdlNDNmMmM4ZS4uOTEwYWU1ZGYzMGMxOTliMjAwOWM4
Y2JmNWZkZTQ1YzViNTI3Yjk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0z
Njc4LDYgKzM2NzgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9CaWRpUmVzb2x2ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpUnVu
TGlzdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNw
cCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDdiOTZi
NzYyNDMwODk4OGJlNDUwNmJhZjVkZTMwMmFmMjFiZDA0ZGMuLmM1MjRlN2FkODEyNDk4MDE5ZDEx
M2JlNmQ1ZjIyMmEyZDg1OWUxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTA3NSw2ICsxMDc1LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vQXJlbmEuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0
L0Jhc2U2NC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwIFwKKyAgICBw
bGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9IeXBo
ZW5hdGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvTG9jYWxlVG9TY3JpcHRNYXBwaW5nRGVm
YXVsdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZU5vbmUuY3BwIFwKQEAg
LTI0MTEsNiArMjQxMiw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL3NxbC9TUUxWYWx1
ZS5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jp
ZGlDb250ZXh0LmggXAorICAgIHBsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuaCBcCiAgICAg
cGxhdGZvcm0vdGV4dC9EZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCBcCiAgICAgcGxhdGZvcm0vdGV4
dC9IeXBoZW5hdGlvbi5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L1F1b3RlZFByaW50YWJsZS5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCAxMDU0ZTA3MjU1Y2E3NmFiOGJkZTVlNGMwMjlhOTY1ZTlkMzAy
ODA1Li5hNjYyMDkwNjdhZGYwNWM2YzA4NTYxZGUyMmVmOTgwY2EzMGQ2Y2FiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC00OTMsNiArNDkzLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0Jp
ZGlSdW5MaXN0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9CaWRpUmVzb2x2ZXIuaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS90ZXh0L0RlY29kZUVzY2FwZVNlcXVlbmNlcy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90
ZXh0L0xpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90
ZXh0L0xpbmVFbmRpbmcuaCcsCkBAIC00NTU1LDYgKzQ1NTYsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL3RleHQvQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvQmlk
aUNvbnRleHQuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL3RleHQvSHlwaGVuYXRpb24uaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGQxMmRiNTY2YzhjMzk1OTZmZDBmMTI1NDhlMDcxMTU2
ODZjMTI3ZTkuLjQ5Y2EwNDhjNTRlYjZmMzljZmY1ZjFkNWQ0ZWNkM2FiNmMxMzA2NmEgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zMzE5OCw2
ICszMzE5OCwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGxhdGZvcm1cdGV4dFxEYXRlVGltZUZvcm1hdC5jcHAiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0
XERhdGVUaW1lRm9ybWF0LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XERlY29kZUVzY2FwZVNlcXVlbmNlcy5oIgog
CQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJkZDM1OGM2ODIyYjdjOThkZGRmMzY3YjEwMTY1Yzgx
OGQyOGQ2ZjcuLjA3ZmYzZjA4YjBkZWU0ZGEzOTk3ZDk3Y2M2MDEwYWM1NTg4ZjJmNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTExODksNiArMTE4OSw4IEBACiAJCTQ1MDk5QzQxMTM3MEE3ODAwMDU4RDUxMyAvKiBJY29uVVJM
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MDk5
QzQwMTM3MEE3ODAwMDU4RDUxMyAvKiBJY29uVVJMLmNwcCAqLzsgfTsKIAkJNDUwQ0VCRjAxNTA3
M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUwQ0VCRUUxNTA3M0JCRTAwMkJCMTQ5IC8qIExh
YmVsYWJsZUVsZW1lbnQuY3BwICovOyB9OwogCQk0NTBDRUJGMTE1MDczQkJFMDAyQkIxNDkgLyog
TGFiZWxhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDUwQ0VCRUYxNTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NTNFQjYz
NjE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUzRUI2MzQxNTlDNTcwNDAwMDAxQkI3IC8q
IERhdGVUaW1lRm9ybWF0LmNwcCAqLzsgfTsKKwkJNDUzRUI2MzcxNTlDNTcwNDAwMDAxQkI3IC8q
IERhdGVUaW1lRm9ybWF0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NTNFQjYzNTE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NThGRTQwOTE1
ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDU4RkU0MDcxNTg5REYwQjAwNTYwOUU2IC8q
IFJlbmRlclNlYXJjaEZpZWxkLmNwcCAqLzsgfTsKIAkJNDU4RkU0MEExNTg5REYwQjAwNTYwOUU2
IC8qIFJlbmRlclNlYXJjaEZpZWxkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NThGRTQwODE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmll
bGQuaCAqLzsgfTsKIAkJNDVCQUMyQjAxMzYwQkJBQjAwNURBMjU4IC8qIEljb25VUkwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1QkFDMkFGMTM2MEJC
QUIwMDVEQTI1OCAvKiBJY29uVVJMLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTgyMzksNiArODI0MSw4IEBACiAJCTQ1MDk5QzQwMTM3MEE3ODAw
MDU4RDUxMyAvKiBJY29uVVJMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEljb25VUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTBDRUJFRTE1
MDczQkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBMYWJlbGFibGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDUwQ0VCRUYxNTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGFiZWxhYmxlRWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NTNFQjYzNDE1OUM1NzA0MDAwMDFCQjcg
LyogRGF0ZVRpbWVGb3JtYXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRGF0ZVRpbWVGb3JtYXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NTNF
QjYzNTE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVGb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDU4RkU0MDcxNTg5REYwQjAwNTYwOUU2IC8qIFJlbmRlclNlYXJjaEZpZWxkLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNlYXJjaEZpZWxk
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDU4RkU0MDgxNTg5REYwQjAwNTYw
OUU2IC8qIFJlbmRlclNlYXJjaEZpZWxkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlclNlYXJjaEZpZWxkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1
QkFDMkFGMTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJMLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEljb25VUkwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5
NzE1LDYgKzE5NzE5LDggQEAKIAkJCQlCMkMzRDlGMzBEMDA2QzFEMDBFRjZGMjYgLyogQmlkaUNv
bnRleHQuaCAqLywKIAkJCQlCMkMzRDlGNDBEMDA2QzFEMDBFRjZGMjYgLyogQmlkaVJlc29sdmVy
LmggKi8sCiAJCQkJQThDNDAyOTIxMzQ4QjIyMjAwNjNGMUU1IC8qIEJpZGlSdW5MaXN0LmggKi8s
CisJCQkJNDUzRUI2MzQxNTlDNTcwNDAwMDAxQkI3IC8qIERhdGVUaW1lRm9ybWF0LmNwcCAqLywK
KwkJCQk0NTNFQjYzNTE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuaCAqLywKIAkJ
CQlDRUNDRkMzQTE0MTk3M0Q1MDAyQTBBQzEgLyogRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggKi8s
CiAJCQkJMzc1Q0QyMzExMTlENDNDODAwQTJBODU5IC8qIEh5cGhlbmF0aW9uLmggKi8sCiAJCQkJ
QTVBQkI3ODYxM0I5MDRCQzAwRjE5N0UzIC8qIExpbmVCcmVha0l0ZXJhdG9yUG9vbElDVS5oICov
LApAQCAtMjIyNjIsNiArMjIyNjgsNyBAQAogCQkJCTgxQUM1OTlBMTMxNjM2RTYwMDA5QTdFMCAv
KiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU5N0NDRUIxMjkz
OUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTczMkIwQjEz
NkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ1
M0VCNjM3MTU5QzU3MDQwMDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRjU1QjNEQjYxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVJbnB1dFR5cGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY1NUIzREI4MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlVGltZUlucHV0VHlw
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQkExMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjU3NzYsNiArMjU3ODMsNyBA
QAogCQkJCTJFOTdDQ0VBMTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNTczMkIwQTEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQjUxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVJbnB1
dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDUzRUI2MzYxNTlDNTcwNDAwMDAxQkI3IC8q
IERhdGVUaW1lRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREI3MTI1MUYxMkQw
MDNFRjI2OSAvKiBEYXRlVGltZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVC
M0RCOTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0NUZFQTVDRjE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0
ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZv
cm1hdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjllYmEyNmNhYmU2MjQ5MDMzYWE1N2ZmNzU2NjViYTEyY2Ni
YmE4MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0
ZVRpbWVGb3JtYXQuY3BwCkBAIC0wLDAgKzEsMjczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisKKyNpbmNsdWRlICJE
YXRlVGltZUZvcm1hdC5oIgorCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBjb25zdCBEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlIGxvd2VyQ2FzZVRvRmllbGRUeXBlTWFwWzI2XSA9IHsKKyAgICBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlUGVyaW9kLCAvLyBhCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUlu
dmFsaWQsIC8vIGIKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTG9jYWxEYXlPZldlZWtT
dGFuZEFsb24sIC8vIGMKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aCwg
Ly8gZAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMb2NhbERheU9mV2VlaywgLy8gZQor
ICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBmCisgICAgRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZU1vZGlmaWVkSnVsaWFuRGF5LCAvLyBnCisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUhvdXIxMiwgLy8gaAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJ
bnZhbGlkLCAvLyBpCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIGoK
KyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjI0LCAvLyBrCisgICAgRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIGwKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlTWludXRlLCAvLyBtCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8v
IG4KKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gbworICAgIERhdGVU
aW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBwCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZVF1YXRlclN0YW5kQWxvbmUsIC8vIHEKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSW52YWxpZCwgLy8gcgorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVTZWNvbmQsIC8v
IHMKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gdAorICAgIERhdGVU
aW1lRm9ybWF0OjpGaWVsZFR5cGVFeHRlbmRlZFllYXIsIC8vIHUKKyAgICBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlTm9uTG9jYXRpb25ab25lLCAvLyB2CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZVdlZWtPZk1vbnRoLCAvLyB3CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUlu
dmFsaWQsIC8vIHgKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhciwgLy8geQorICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVab25lLCAvLyB6Cit9OworCitzdGF0aWMgY29uc3Qg
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSB1cHBlckNhc2VUb0ZpZWxkVHlwZU1hcFsyNl0gPSB7
CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1pbGxpc2Vjb25kc0luRGF5LCAvLyBBCisg
ICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIEIKKyAgICBEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gQworICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVEYXlPZlllYXIsIC8vIEQKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZXZWVr
LCAvLyBFCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mV2Vla0luTW9udGgsIC8v
IEYKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRXJhLCAvLyBHCisgICAgRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUhvdXIyMywgLy8gSAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVJbnZhbGlkLCAvLyBJCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8v
IEoKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjExLCAvLyBLCisgICAgRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9uZSwgLy8gTAorICAgIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVNb250aCwgLy8gTQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJ
bnZhbGlkLCAvLyBOCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIE8K
KyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gUAorICAgIERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVRdWF0ZXIsIC8vIFEKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSW52YWxpZCwgLy8gUgorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVGcmFjdGlvbmFs
U2Vjb25kLCAvLyBTCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIFQK
KyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gVQorICAgIERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVMb2NhdGlvblpvbmUsIC8vIFYKKyAgICBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlV2Vla09mWWVhciwgLy8gVworICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJ
bnZhbGlkLCAvLyBYCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXJPZldlZWtPZlll
YXIsIC8vIFkKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUkZDODIyWm9uZSwgLy8gWgor
fTsKKworc3RhdGljIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgbWFwQ2hhcmFjdGVyVG9GaWVs
ZFR5cGVJbnRlcm5hbChjb25zdCBVQ2hhciBjaCkKK3sKKyAgICBpZiAoY2ggPj0gJ0EnICYmIGNo
IDw9ICdaJykKKyAgICAgICAgcmV0dXJuIHVwcGVyQ2FzZVRvRmllbGRUeXBlTWFwW2NoIC0gJ0En
XTsKKworICAgIGlmIChjaCA+PSAnYScgJiYgY2ggPD0gJ3onKQorICAgICAgICByZXR1cm4gbG93
ZXJDYXNlVG9GaWVsZFR5cGVNYXBbY2ggLSAnYSddOworCisgICAgcmV0dXJuIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVMaXRlcmFsOworfQorCitzdGF0aWMgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZSBtYXBDaGFyYWN0ZXJUb0ZpZWxkVHlwZShEYXRlVGltZUZvcm1hdDo6Rm9ybWF0VHlwZSBm
b3JtYXRUeXBlLCBVQ2hhciBjaCkKK3sKKyAgICBjb25zdCBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlIGZpZWxkVHlwZSA9IG1hcENoYXJhY3RlclRvRmllbGRUeXBlSW50ZXJuYWwoY2gpOworICAg
IHN3aXRjaCAoZm9ybWF0VHlwZSkgeworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZvcm1hdFR5
cGVJQ1U6CisgICAgICAgIHJldHVybiBmaWVsZFR5cGUgPT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZUxvY2FsRGF5T2ZXZWVrU3RhbmRBbG9uID8gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUlu
dmFsaWQgOiBmaWVsZFR5cGU7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6Rm9ybWF0VHlwZUxE
TUw6CisgICAgICAgIHJldHVybiBmaWVsZFR5cGUgPT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZUxvY2F0aW9uWm9uZSA/IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkIDogZmllbGRU
eXBlOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm4gZmllbGRUeXBlOworICAgIH0KK30KKworYm9vbCBEYXRlVGltZUZvcm1hdDo6cGFy
c2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIFRva2VuSGFuZGxlciYgdG9rZW5IYW5kbGVyLCBGb3Jt
YXRUeXBlIGZvcm1hdFR5cGUpCit7CisgICAgZW51bSBTdGF0ZSB7CisgICAgICAgIFN0YXRlSW5R
dW90ZSwKKyAgICAgICAgU3RhdGVJblF1b3RlUXVvdGUsCisgICAgICAgIFN0YXRlTGl0ZXJhbCwK
KyAgICAgICAgU3RhdGVRdW90ZSwKKyAgICAgICAgU3RhdGVTeW1ib2wsCisgICAgfSBzdGF0ZSA9
IFN0YXRlTGl0ZXJhbDsKKworICAgIEZpZWxkVHlwZSBmaWVsZFR5cGUgPSBGaWVsZFR5cGVMaXRl
cmFsOworICAgIFN0cmluZ0J1aWxkZXIgbGl0ZXJhbEJ1ZmZlcjsKKyAgICBpbnQgZmllbGRDb3Vu
dGVyID0gMDsKKworICAgIGZvciAodW5zaWduZWQgaW50IGluZGV4ID0gMDsgaW5kZXggPCBzb3Vy
Y2UubGVuZ3RoKCk7ICsraW5kZXgpIHsKKyAgICAgICAgY29uc3QgVUNoYXIgY2ggPSBzb3VyY2Vb
aW5kZXhdOworICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgICAgIGNhc2UgU3RhdGVJblF1
b3RlOgorICAgICAgICAgICAgaWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICBzdGF0
ZSA9IFN0YXRlSW5RdW90ZVF1b3RlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICBjYXNlIFN0YXRlSW5RdW90ZVF1b3RlOgorICAgICAgICAgICAg
aWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZCgn
XCcnKTsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IFN0YXRlSW5RdW90ZTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZmllbGRUeXBlID0gbWFw
Q2hhcmFjdGVyVG9GaWVsZFR5cGUoZm9ybWF0VHlwZSwgY2gpOworICAgICAgICAgICAgaWYgKGZp
ZWxkVHlwZSA9PSBGaWVsZFR5cGVJbnZhbGlkKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICAgICAgaWYgKGZpZWxkVHlwZSA9PSBGaWVsZFR5cGVMaXRlcmFsKSB7Cisg
ICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAg
IHN0YXRlID0gU3RhdGVMaXRlcmFsOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkgeworICAgICAg
ICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmlu
ZygpKTsKKyAgICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmNsZWFyKCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZpZWxkQ291bnRlciA9IDE7CisgICAgICAgICAgICBzdGF0ZSA9
IFN0YXRlU3ltYm9sOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBTdGF0ZUxp
dGVyYWw6CisgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAgICAgICAgIHN0
YXRlID0gU3RhdGVRdW90ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZmllbGRUeXBlID0gbWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGUoZm9ybWF0
VHlwZSwgY2gpOworICAgICAgICAgICAgaWYgKGZpZWxkVHlwZSA9PSBGaWVsZFR5cGVJbnZhbGlk
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYgKGZpZWxk
VHlwZSA9PSBGaWVsZFR5cGVMaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZl
ci5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAg
IHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAg
ICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmNsZWFyKCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZpZWxkQ291bnRlciA9IDE7CisgICAgICAgICAgICBzdGF0ZSA9IFN0YXRlU3lt
Ym9sOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBTdGF0ZVF1b3RlOgorICAg
ICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5hcHBlbmQoY2gpOworICAgICAgICAgICAgc3RhdGUgPSBj
aCA9PSAnXCcnID8gU3RhdGVMaXRlcmFsIDogU3RhdGVJblF1b3RlOworICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgY2FzZSBTdGF0ZVN5bWJvbDogeworICAgICAgICAgICAgQVNTRVJUKGZp
ZWxkVHlwZSAhPSBGaWVsZFR5cGVJbnZhbGlkKTsKKyAgICAgICAgICAgIEFTU0VSVChmaWVsZFR5
cGUgIT0gRmllbGRUeXBlTGl0ZXJhbCk7CisgICAgICAgICAgICBBU1NFUlQobGl0ZXJhbEJ1ZmZl
ci5pc0VtcHR5KCkpOworCisgICAgICAgICAgICBGaWVsZFR5cGUgZmllbGRUeXBlMiA9IG1hcENo
YXJhY3RlclRvRmllbGRUeXBlKGZvcm1hdFR5cGUsIGNoKTsKKyAgICAgICAgICAgIGlmIChmaWVs
ZFR5cGUyID09IEZpZWxkVHlwZUludmFsaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgICAgICBpZiAoZmllbGRUeXBlID09IGZpZWxkVHlwZTIpIHsKKyAgICAgICAg
ICAgICAgICArK2ZpZWxkQ291bnRlcjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0RmllbGQoZmllbGRUeXBlLCBm
aWVsZENvdW50ZXIpOworCisgICAgICAgICAgICBpZiAoZmllbGRUeXBlMiA9PSBGaWVsZFR5cGVM
aXRlcmFsKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoID09ICdcJycpCisgICAgICAgICAgICAg
ICAgICAgIHN0YXRlID0gU3RhdGVRdW90ZTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgbGl0ZXJhbEJ1ZmZlci5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAg
ICAgICBzdGF0ZSA9IFN0YXRlTGl0ZXJhbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZpZWxkQ291bnRlciA9
IDE7CisgICAgICAgICAgICBmaWVsZFR5cGUgPSBmaWVsZFR5cGUyOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgTE9HX0VSUk9S
KCJJbnZsaWFkIHN0YXRlPSVkIiwgc3RhdGUpOworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBBU1NFUlQoZmllbGRUeXBlICE9IEZpZWxkVHlwZUludmFsaWQpOworCisgICAgc3dpdGNoIChz
dGF0ZSkgeworICAgIGNhc2UgU3RhdGVMaXRlcmFsOgorICAgIGNhc2UgU3RhdGVJblF1b3RlUXVv
dGU6CisgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKQorICAgICAgICAgICAgdG9r
ZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGNhc2UgU3RhdGVRdW90ZToKKyAgICBjYXNlIFN0YXRlSW5R
dW90ZToKKyAgICAgICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpCisgICAgICAgICAgICB0
b2tlbkhhbmRsZXIudmlzaXRMaXRlcmFsKGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGNhc2UgU3RhdGVTeW1ib2w6CisgICAgICAgIEFTU0VS
VChmaWVsZFR5cGUgIT0gRmllbGRUeXBlTGl0ZXJhbCk7CisgICAgICAgIEFTU0VSVCghbGl0ZXJh
bEJ1ZmZlci5sZW5ndGgoKSk7CisgICAgICAgIHRva2VuSGFuZGxlci52aXNpdEZpZWxkKGZpZWxk
VHlwZSwgZmllbGRDb3VudGVyKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBkZWZhdWx0
OgorICAgICAgICBMT0dfRVJST1IoIkludmxpYWQgc3RhdGU9JWQiLCBzdGF0ZSk7CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NzUyZDg0MzlmMTZkODI3
ODcxY2Q0YmY4YTcyNzRjMmY5NDg3YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmgKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IERhdGVUaW1lRm9ybWF0X2gKKyNkZWZpbmUgRGF0ZVRpbWVGb3JtYXRfaAorCisjaWYgRU5BQkxF
KElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBEYXRlVGltZUZvcm1hdCBw
YXJzZXMgZGF0ZSB0aW1lIGZvcm1hdCBkZWZpbmVkIGluIFVuaWNvZGUgVGVjaG5pY2FsCisvLyBz
dGFuZGFyZCAzNSwgTG9jYWxlIERhdGEgTWFya3VwIExhbmd1YWdlIChMRE1MKVsxXSwgYW5kIElD
VSB2YXJpYW50WzJdLgorLy8KKy8vIERpZmZlcmVuY2VzIGJldHdlZW4gTERNTCBhbmQgSUNVIGFy
ZToKKy8vICAtIExETUwgc3VwcG9ydCBzeW1ib2wgImMiLCBidXQgSUNVIGRvZXNuJ3QuCisvLyAg
LSBJQ1Ugc3VwcG9ydCBzeW1ib2wgIlYiLCBidXQgTERNTCBkb2Vzbid0LgorLy8KKy8vIFsxXSBM
RE1MIGh0dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvdHIzNS02Lmh0bWwjRGF0ZV9Gb3Jt
YXRfUGF0dGVybnMKKy8vIFsyXSBodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9mb3Jt
YXRwYXJzZS9kYXRldGltZQorY2xhc3MgRGF0ZVRpbWVGb3JtYXQgeworcHVibGljOgorICAgIGVu
dW0gRmllbGRUeXBlIHsKKyAgICAgICAgRmllbGRUeXBlSW52YWxpZCwKKyAgICAgICAgRmllbGRU
eXBlTGl0ZXJhbCwKKworICAgICAgICAvLyBFcmE6IEFECisgICAgICAgIEZpZWxkVHlwZUVyYSA9
ICdHJywKKworICAgICAgICAvLyBZZWFyOiAxOTk2CisgICAgICAgIEZpZWxkVHlwZVllYXIgPSAn
eScsCisgICAgICAgIEZpZWxkVHlwZVllYXJPZldlZWtPZlllYXIgPSAnWScsCisgICAgICAgIEZp
ZWxkVHlwZUV4dGVuZGVkWWVhciA9ICd1JywKKworICAgICAgICAvLyBRdWF0ZXI6IFEyCisgICAg
ICAgIEZpZWxkVHlwZVF1YXRlciA9ICdRJywKKyAgICAgICAgRmllbGRUeXBlUXVhdGVyU3RhbmRB
bG9uZSA9ICdxJywKKworICAgICAgICAvLyBNb250aDogU2VwdGVtYmVyCisgICAgICAgIEZpZWxk
VHlwZU1vbnRoID0gJ00nLAorICAgICAgICBGaWVsZFR5cGVNb250aFN0YW5kQWxvbmUgPSAnTCcs
CisKKyAgICAgICAgLy8gV2VlazogNDIKKyAgICAgICAgRmllbGRUeXBlV2Vla09mWWVhciA9ICdX
JywKKyAgICAgICAgRmllbGRUeXBlV2Vla09mTW9udGggPSAndycsCisKKyAgICAgICAgLy8gRGF5
OiAxMgorICAgICAgICBGaWVsZFR5cGVEYXlPZk1vbnRoID0gJ2QnLAorICAgICAgICBGaWVsZFR5
cGVEYXlPZlllYXIgPSAnRCcsCisgICAgICAgIEZpZWxkVHlwZURheU9mV2Vla0luTW9udGggPSAn
RicsCisgICAgICAgIEZpZWxkVHlwZU1vZGlmaWVkSnVsaWFuRGF5ID0gJ2cnLAorCisgICAgICAg
IC8vIFdlZWsgRGF5OiBUdWVzZGF5CisgICAgICAgIEZpZWxkVHlwZURheU9mV2VlayA9ICdFJywK
KyAgICAgICAgRmllbGRUeXBlTG9jYWxEYXlPZldlZWsgPSAnZScsCisgICAgICAgIEZpZWxkVHlw
ZUxvY2FsRGF5T2ZXZWVrU3RhbmRBbG9uID0gJ2MnLCAvLyBJQ1UgZG9lc24ndCBzdXBwb3J0IHRo
aXMuCisKKyAgICAgICAgLy8gUGVyaW9kOiBBTSBvciBQTQorICAgICAgICBGaWVsZFR5cGVQZXJp
b2QgPSAnYScsCisKKyAgICAgICAgLy8gSG91cjogNworICAgICAgICBGaWVsZFR5cGVIb3VyMTIg
PSAnaCcsCisgICAgICAgIEZpZWxkVHlwZUhvdXIyMyA9ICdIJywKKyAgICAgICAgRmllbGRUeXBl
SG91cjExID0gJ0snLAorICAgICAgICBGaWVsZFR5cGVIb3VyMjQgPSAnaycsCisKKyAgICAgICAg
Ly8gTWludXRlOiA1OQorICAgICAgICBGaWVsZFR5cGVNaW51dGUgPSAnbScsCisKKyAgICAgICAg
Ly8gU2Vjb25kOiAxMgorICAgICAgICBGaWVsZFR5cGVTZWNvbmQgPSAncycsCisgICAgICAgIEZp
ZWxkVHlwZUZyYWN0aW9uYWxTZWNvbmQgPSAnUycsCisgICAgICAgIEZpZWxkVHlwZU1pbGxpc2Vj
b25kc0luRGF5ID0gJ0EnLAorCisgICAgICAgIC8vIFpvbmU6IFBEVAorICAgICAgICBGaWVsZFR5
cGVab25lID0gJ3onLAorICAgICAgICBGaWVsZFR5cGVSRkM4MjJab25lID0gJ1onLAorICAgICAg
ICBGaWVsZFR5cGVOb25Mb2NhdGlvblpvbmUgPSAndicsCisgICAgICAgIEZpZWxkVHlwZUxvY2F0
aW9uWm9uZSA9ICdWJywgLy8gSUNVIG9ubHkuCisgICAgfTsKKworICAgIGVudW0gRm9ybWF0VHlw
ZSB7CisgICAgICAgIEZvcm1hdFR5cGVJQ1UsCisgICAgICAgIEZvcm1hdFR5cGVMRE1MLAorICAg
IH07CisKKyAgICBjbGFzcyBUb2tlbkhhbmRsZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmly
dHVhbCB+VG9rZW5IYW5kbGVyKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdEZpZWxk
KEZpZWxkVHlwZSwgaW50KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdExpdGVyYWwo
Y29uc3QgU3RyaW5nJikgPSAwOworICAgIH07CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgc3Vj
Y2VlZGVkLCBmYWxzZSBpZiBmYWlsZWQuCisgICAgc3RhdGljIGJvb2wgcGFyc2UoY29uc3QgU3Ry
aW5nJiwgVG9rZW5IYW5kbGVyJiwgRm9ybWF0VHlwZSA9IEZvcm1hdFR5cGVMRE1MKTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBEYXRlVGltZUZv
cm1hdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCBhOGRkM2E2MjY1MzUwNTM3
MDE1MGM2NWVlOGRmY2UwOTE3ZTc4NGRkLi4yN2MzN2I2NDRhODk5NzU1YjczZDhjNDZiYmVjNjU1
YmU2MDNjNzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBp
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTk3LDYgKzk3LDcg
QEAKICAgICAgICAgICAgICd0ZXN0cy9DQ1RpbWVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rl
c3RzL0NsaXBib2FyZENocm9taXVtVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NvbXBv
c2l0b3JGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QuaCcsCisgICAgICAgICAgICAndGVzdHMvRGF0
ZVRpbWVGb3JtYXRUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvRGVjaW1hbFRlc3QuY3Bw
JywKICAgICAgICAgICAgICd0ZXN0cy9EcmFnSW1hZ2VUZXN0LmNwcCcsCiAgICAgICAgICAgICAn
dGVzdHMvRXZlbnRMaXN0ZW5lclRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTg0YTQwODI5
NDA4Y2U4M2U5NjAxZmRlMmU2MTUwZjdjZWM1NjBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9EYXRlVGltZUZvcm1hdFRlc3QuY3BwCkBAIC0wLDAgKzEs
MzQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9N
VUxUSVBMRV9GSUVMRFMpCisKKyNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgorCisjaW5jbHVk
ZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworY2xhc3MgRGF0ZVRpbWVGb3JtYXRUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Citw
dWJsaWM6CisgICAgdHlwZWRlZiBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIEZpZWxkVHlwZTsK
KworICAgIHN0cnVjdCBUb2tlbiB7CisgICAgICAgIFN0cmluZyBzdHJpbmc7CisgICAgICAgIGlu
dCBjb3VudDsKKyAgICAgICAgRmllbGRUeXBlIGZpZWxkVHlwZTsKKworICAgICAgICBUb2tlbihG
aWVsZFR5cGUgZmllbGRUeXBlLCBpbnQgY291bnQgPSAxKQorICAgICAgICAgICAgOiBjb3VudChj
b3VudCkKKyAgICAgICAgICAgICwgZmllbGRUeXBlKGZpZWxkVHlwZSkKKyAgICAgICAgeworICAg
ICAgICAgICAgQVNTRVJUKGZpZWxkVHlwZSAhPSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTGl0
ZXJhbCk7CisgICAgICAgIH0KKworICAgICAgICBUb2tlbihjb25zdCBTdHJpbmcmIHN0cmluZykK
KyAgICAgICAgICAgIDogc3RyaW5nKHN0cmluZykKKyAgICAgICAgICAgICwgY291bnQoMCkKKyAg
ICAgICAgICAgICwgZmllbGRUeXBlKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMaXRlcmFsKQor
ICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgVG9r
ZW4mIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmllbGRUeXBl
ID09IG90aGVyLmZpZWxkVHlwZSAmJiBjb3VudCA9PSBvdGhlci5jb3VudCAmJiBzdHJpbmcgPT0g
b3RoZXIuc3RyaW5nOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29u
c3QKKyAgICAgICAgeworICAgICAgICAgICAgc3dpdGNoIChmaWVsZFR5cGUpIHsKKyAgICAgICAg
ICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQ6CisgICAgICAgICAgICAg
ICAgcmV0dXJuICIqaW52YWxpZCoiOworICAgICAgICAgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlTGl0ZXJhbDogeworICAgICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnIicpOworICAgICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKHN0cmluZyk7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
JyInKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gU3Ry
aW5nOjpmb3JtYXQoIlRva2VuKCVkLCAlZCkiLCBmaWVsZFR5cGUsIGNvdW50KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIH07CisKKyAgICBjbGFzcyBUb2tlbnMgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgVG9rZW5zKCkgeyB9CisKKyAgICAgICAgZXhwbGljaXQgVG9rZW5zKGNvbnN0
IFZlY3RvcjxUb2tlbj4gdG9rZW5zKQorICAgICAgICAgICAgOiBtX3Rva2Vucyh0b2tlbnMpCisg
ICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGV4cGxpY2l0IFRva2Vucyhjb25zdCBTdHJp
bmcmIHN0cmluZykKKyAgICAgICAgeworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKFRva2Vu
KHN0cmluZykpOworICAgICAgICB9CisKKyAgICAgICAgZXhwbGljaXQgVG9rZW5zKFRva2VuIHRv
a2VuMSkKKyAgICAgICAgeworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMSk7Cisg
ICAgICAgIH0KKworICAgICAgICBUb2tlbnMoVG9rZW4gdG9rZW4xLCBUb2tlbiB0b2tlbjIpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjEpOworICAgICAgICAg
ICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMik7CisgICAgICAgIH0KKworICAgICAgICBUb2tlbnMo
VG9rZW4gdG9rZW4xLCBUb2tlbiB0b2tlbjIsIFRva2VuIHRva2VuMykKKyAgICAgICAgeworICAg
ICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMSk7CisgICAgICAgICAgICBtX3Rva2Vucy5h
cHBlbmQodG9rZW4yKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjMpOworICAg
ICAgICB9CisKKyAgICAgICAgVG9rZW5zKFRva2VuIHRva2VuMSwgVG9rZW4gdG9rZW4yLCBUb2tl
biB0b2tlbjMsIFRva2VuIHRva2VuNCkKKyAgICAgICAgeworICAgICAgICAgICAgbV90b2tlbnMu
YXBwZW5kKHRva2VuMSk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4yKTsKKyAg
ICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjMpOworICAgICAgICAgICAgbV90b2tlbnMu
YXBwZW5kKHRva2VuNCk7CisgICAgICAgIH0KKworICAgICAgICBUb2tlbnMoVG9rZW4gdG9rZW4x
LCBUb2tlbiB0b2tlbjIsIFRva2VuIHRva2VuMywgVG9rZW4gdG9rZW40LCBUb2tlbiB0b2tlbjUp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjEpOworICAgICAg
ICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMik7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBl
bmQodG9rZW4zKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjQpOworICAgICAg
ICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuNSk7CisgICAgICAgIH0KKworICAgICAgICBUb2tl
bnMoVG9rZW4gdG9rZW4xLCBUb2tlbiB0b2tlbjIsIFRva2VuIHRva2VuMywgVG9rZW4gdG9rZW40
LCBUb2tlbiB0b2tlbjUsIFRva2VuIHRva2VuNikKKyAgICAgICAgeworICAgICAgICAgICAgbV90
b2tlbnMuYXBwZW5kKHRva2VuMSk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4y
KTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjMpOworICAgICAgICAgICAgbV90
b2tlbnMuYXBwZW5kKHRva2VuNCk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW41
KTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjYpOworICAgICAgICB9CisKKyAg
ICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRva2VucyYgb3RoZXIpIGNvbnN0CisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiBtX3Rva2VucyA9PSBvdGhlci5tX3Rva2VuczsKKyAgICAg
ICAgfQorCisgICAgICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0CisgICAgICAgIHsKKyAgICAg
ICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCJUb2tlbnMoIik7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXgg
PCBtX3Rva2Vucy5zaXplKCk7ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXgp
CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsIik7CisgICAgICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQobV90b2tlbnNbaW5kZXhdLnRvU3RyaW5nKCkpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIikiKTsKKyAgICAgICAgICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAg
IFZlY3RvcjxUb2tlbj4gbV90b2tlbnM7CisgICAgfTsKKworcHJvdGVjdGVkOgorICAgIFRva2Vu
cyBwYXJzZShjb25zdCBTdHJpbmcmIGZvcm1hdFN0cmluZykKKyAgICB7CisgICAgICAgIFRva2Vu
SGFuZGxlciBoYW5kbGVyOworICAgICAgICBpZiAoIURhdGVUaW1lRm9ybWF0OjpwYXJzZShmb3Jt
YXRTdHJpbmcsIGhhbmRsZXIpKQorICAgICAgICAgICAgcmV0dXJuIFRva2VucyhUb2tlbigiKmZh
aWxlZCoiKSk7CisgICAgICAgIHJldHVybiBoYW5kbGVyLnRva2VucygpOworICAgIH0KKworICAg
IEZpZWxkVHlwZSBzaW5nbGUoY29uc3QgY2hhciBjaCkKKyAgICB7CisgICAgICAgIGNoYXIgZm9y
bWF0U3RyaW5nWzJdOworICAgICAgICBmb3JtYXRTdHJpbmdbMF0gPSBjaDsKKyAgICAgICAgZm9y
bWF0U3RyaW5nWzFdID0gMDsKKyAgICAgICAgVG9rZW5IYW5kbGVyIGhhbmRsZXI7CisgICAgICAg
IGlmICghRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGZvcm1hdFN0cmluZywgaGFuZGxlcikpCisgICAg
ICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQ7CisgICAgICAg
IHJldHVybiBoYW5kbGVyLmZpZWxkVHlwZSgwKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY2xh
c3MgVG9rZW5IYW5kbGVyIDogcHVibGljIERhdGVUaW1lRm9ybWF0OjpUb2tlbkhhbmRsZXIgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+VG9rZW5IYW5kbGVyKCkgeyB9CisKKyAgICAg
ICAgRmllbGRUeXBlIGZpZWxkVHlwZShpbnQgaW5kZXgpIGNvbnN0CisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBpbmRleCA+PTAgJiYgaW5kZXggPCBzdGF0aWNfY2FzdDxpbnQ+KG1fdG9r
ZW5zLnNpemUoKSkgPyBtX3Rva2Vuc1tpbmRleF0uZmllbGRUeXBlIDogRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUludmFsaWQ7CisgICAgICAgIH0KKworICAgICAgICBUb2tlbnMgdG9rZW5zKCkg
Y29uc3QgeyByZXR1cm4gVG9rZW5zKG1fdG9rZW5zKTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHZpc2l0RmllbGQoRmllbGRUeXBlIGZpZWxkVHlwZSwgaW50IGNvdW50
KQorICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQoVG9rZW4oZmllbGRUeXBl
LCBjb3VudCkpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0TGl0ZXJh
bChjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICAgICAgeworICAgICAgICAgICAgbV90b2tlbnMu
YXBwZW5kKFRva2VuKHN0cmluZykpOworICAgICAgICB9CisKKyAgICAgICAgVmVjdG9yPFRva2Vu
PiBtX3Rva2VuczsKKyAgICB9OworfTsKKworc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6
b3N0cmVhbSYgb3MsIGNvbnN0IERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5zJiB0b2tlbnMpCit7
CisgICAgcmV0dXJuIG9zIDw8IHRva2Vucy50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpOworfQor
CitURVNUX0YoRGF0ZVRpbWVGb3JtYXRUZXN0LCBDb21tb25QYXR0ZXJuKQoreworICAgIEVYUEVD
VF9FUShUb2tlbnMoKSwgcGFyc2UoIiIpKTsKKworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgVG9r
ZW5zKAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXIsIDQp
LCBUb2tlbigiLSIpLAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZU1vbnRoLCAyKSwgVG9rZW4oIi0iKSwKKyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVEYXlPZk1vbnRoLCAyKSksCisgICAgICAgIHBhcnNlKCJ5eXl5LU1NLWRkIikp
OworCisgICAgRVhQRUNUX0VRKAorICAgICAgICBUb2tlbnMoCisgICAgICAgICAgICBUb2tlbihE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjI0LCAyKSwgVG9rZW4oIjoiKSwKKyAgICAgICAg
ICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGUsIDIpLCBUb2tlbigiOiIp
LAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29uZCwgMikp
LAorICAgICAgICBwYXJzZSgia2s6bW06c3MiKSk7CisKKyAgICBFWFBFQ1RfRVEoCisgICAgICAg
IFRva2VucygKKyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3Vy
MTIpLCBUb2tlbigiOiIpLAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZU1pbnV0ZSksIFRva2VuKCIgIiksCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlUGVyaW9kKSksCisgICAgICAgIHBhcnNlKCJoOm0gYSIpKTsKKworICAgIEVY
UEVDVF9FUSgKKyAgICAgICAgVG9rZW5zKAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZVllYXIpLCBUb2tlbigiTmVuICIpLAorICAgICAgICAgICAgVG9rZW4oRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoKSwgVG9rZW4oIkdldHN1ICIpLAorICAgICAgICAg
ICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mTW9udGgpLCBUb2tlbigiTmlj
aGkiKSksCisgICAgICAgIHBhcnNlKCJ5J05lbicgTSdHZXRzdScgZCdOaWNoaSciKSk7Cit9CisK
K1RFU1RfRihEYXRlVGltZUZvcm1hdFRlc3QsIE1pc3NpbmdDbG9zaW5nUXVvdGUpCit7CisgICAg
RVhQRUNUX0VRKFRva2VucygiKmZhaWxlZCoiKSwgcGFyc2UoIidmb28iKSk7CisgICAgRVhQRUNU
X0VRKFRva2VucygiKmZhaWxlZCoiKSwgcGFyc2UoImZvJ28iKSk7CisgICAgRVhQRUNUX0VRKFRv
a2VucygiKmZhaWxlZCoiKSwgcGFyc2UoImZvbyciKSk7Cit9CisKK1RFU1RfRihEYXRlVGltZUZv
cm1hdFRlc3QsIFF1b3RlKQoreworICAgIEVYUEVDVF9FUShUb2tlbnMoIkZvb0JhciIpLCBwYXJz
ZSgiJ0Zvb0JhciciKSk7CisgICAgRVhQRUNUX0VRKFRva2VucygiJyIpLCBwYXJzZSgiJyciKSk7
CisgICAgRVhQRUNUX0VRKFRva2VucygiJy0nIiksIHBhcnNlKCInJy0nJyIpKTsKKyAgICBFWFBF
Q1RfRVEoVG9rZW5zKCJGb28nQmFyIiksIHBhcnNlKCInRm9vJydCYXInIikpOworICAgIEVYUEVD
VF9FUSgKKyAgICAgICAgVG9rZW5zKFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVFcmEp
LCBUb2tlbigiJ3MiKSksCisgICAgICAgIHBhcnNlKCJHJycncyciKSk7CisgICAgRVhQRUNUX0VR
KAorICAgICAgICBUb2tlbnMoVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUVyYSksIFRv
a2VuKCInIiksIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVTZWNvbmQpKSwKKyAgICAg
ICAgcGFyc2UoIkcnJ3MiKSk7Cit9CisKK1RFU1RfRihEYXRlVGltZUZvcm1hdFRlc3QsIFNpbmds
ZUxvd2VyQ2FzZUNoYXJhY3RlcikKK3sKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZUludmFsaWQsIHNpbmdsZSgnYicpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUxvY2FsRGF5T2ZXZWVrU3RhbmRBbG9uLCBzaW5nbGUoJ2MnKSk7CisgICAg
RVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZk1vbnRoLCBzaW5nbGUoJ2Qn
KSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMb2NhbERheU9mV2Vl
aywgc2luZ2xlKCdlJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
TW9kaWZpZWRKdWxpYW5EYXksIHNpbmdsZSgnZycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUhvdXIxMiwgc2luZ2xlKCdoJykpOworICAgIEVYUEVDVF9FUShEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjI0LCBzaW5nbGUoJ2snKSk7CisgICAgRVhQRUNUX0VR
KERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGUsIHNpbmdsZSgnbScpKTsKKyAgICBFWFBF
Q1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVF1YXRlclN0YW5kQWxvbmUsIHNpbmdsZSgn
cScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29uZCwgc2lu
Z2xlKCdzJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRXh0ZW5k
ZWRZZWFyLCBzaW5nbGUoJ3UnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVOb25Mb2NhdGlvblpvbmUsIHNpbmdsZSgndicpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZVdlZWtPZk1vbnRoLCBzaW5nbGUoJ3cnKSk7CisgICAgRVhQRUNU
X0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVZZWFyLCBzaW5nbGUoJ3knKSk7CisgICAgRVhQ
RUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVab25lLCBzaW5nbGUoJ3onKSk7Cit9CisK
K1RFU1RfRihEYXRlVGltZUZvcm1hdFRlc3QsIFNpbmdsZUxvd2VyQ2FzZUludmFsaWQpCit7Cisg
ICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJpb2QsIHNpbmdsZSgnYScp
KTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmds
ZSgnZicpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQs
IHNpbmdsZSgnaScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUlu
dmFsaWQsIHNpbmdsZSgnaicpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZUludmFsaWQsIHNpbmdsZSgnbCcpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgnbicpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgnbycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgncCcpKTsKKyAgICBFWFBFQ1Rf
RVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgncicpKTsKKyAgICBF
WFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgndCcpKTsK
KyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgn
eCcpKTsKK30KKworVEVTVF9GKERhdGVUaW1lRm9ybWF0VGVzdCwgU2luZ2xlVXBwZXJDYXNlQ2hh
cmFjdGVyKQoreworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWlsbGlz
ZWNvbmRzSW5EYXksIHNpbmdsZSgnQScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZURheU9mWWVhciwgc2luZ2xlKCdEJykpOworICAgIEVYUEVDVF9FUShEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZXZWVrLCBzaW5nbGUoJ0UnKSk7CisgICAgRVhQRUNUX0VR
KERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZldlZWtJbk1vbnRoLCBzaW5nbGUoJ0YnKSk7
CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVFcmEsIHNpbmdsZSgnRycp
KTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyMywgc2luZ2xl
KCdIJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjExLCBz
aW5nbGUoJ0snKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250
aFN0YW5kQWxvbmUsIHNpbmdsZSgnTCcpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZU1vbnRoLCBzaW5nbGUoJ00nKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVRdWF0ZXIsIHNpbmdsZSgnUScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZUZyYWN0aW9uYWxTZWNvbmQsIHNpbmdsZSgnUycpKTsKKyAgICBF
WFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVdlZWtPZlllYXIsIHNpbmdsZSgnVycp
KTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXJPZldlZWtPZlll
YXIsIHNpbmdsZSgnWScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZVJGQzgyMlpvbmUsIHNpbmdsZSgnWicpKTsKK30KKworVEVTVF9GKERhdGVUaW1lRm9ybWF0VGVz
dCwgU2luZ2xlVXBwZXJDYXNlSW52YWxpZCkKK3sKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgnQicpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgnQycpKTsKKyAgICBFWFBFQ1RfRVEo
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgnSScpKTsKKyAgICBFWFBF
Q1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgnSicpKTsKKyAg
ICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgnTicp
KTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmds
ZSgnTycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQs
IHNpbmdsZSgnUCcpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUlu
dmFsaWQsIHNpbmdsZSgnUicpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZUludmFsaWQsIHNpbmdsZSgnVCcpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgnVScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgnVicpKTsKKyAgICBFWFBFQ1RfRVEoRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIHNpbmdsZSgnWCcpKTsKK30KKworI2VuZGlm
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150060</attachid>
            <date>2012-06-28 18:33:30 -0700</date>
            <delta_ts>2012-06-28 23:26:29 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>bug-89963-20120629103330.patch</filename>
            <type>text/plain</type>
            <size>38118</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ5MGNkMTUxYWFjNDEz
Zjc2MDY4ZWFhNjRlNzcxMDY5ZDlhNTIzNy4uZGEyNmY3YmI0OTVmMWVhMmRlY2IyYjI1ZWZiYmU2
YjBmOWI2ODgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA2LTI4ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1BsYXRmb3JtXSBJ
bXBsZW1lbnQgRGF0ZSBUaW1lIGZvcm1hdCBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFVuaWNvZGUgVFIz
NSBMRE1MIGRhdGUgdGltZSBmb3JtYXQgcGFyc2VyIGZvcgorICAgICAgICBpbnB1dCB0eXBlICJ0
aW1lIiBpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykgaXMgdHJ1ZS4K
KworICAgICAgICBUZXN0OiBXZWJLaXQvY2hyb21pdW0vdGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0
LmNwcAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERhdGVUaW1lRm9ybWF0LmNw
cAorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIERhdGVUaW1lRm9ybWF0Lntj
cHAsaH0KKyAgICAgICAgKiBUYXJnZXQucHJpOiBkaXR0bworICAgICAgICAqIFdlYkNvcmUuZ3lw
aTogZGl0dG8KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogZGl0dG8K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9kdWN0LnBieHByb2o6IGRpdHRvCisgICAg
ICAgICogcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6bWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZvcm1hdDo6RGF0ZVRpbWVGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGb3JtYXQ6Om1hcENoYXJhY3RlclRvRmllbGRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRm9ybWF0OjpwYXJzZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9EYXRl
VGltZUZvcm1hdC5oOiBBZGRlZC4KKyAgICAgICAgKERhdGVUaW1lRm9ybWF0KToKKyAgICAgICAg
KFRva2VuSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdDo6VG9rZW5I
YW5kbGVyOjp+VG9rZW5IYW5kbGVyKToKKwogMjAxMi0wNi0yOCAgRWxsaW90dCBTcHJlaG4gIDxl
c3ByZWhuQGdtYWlsLmNvbT4KIAogICAgICAgICBmcmFtZWJvcmRlcj0ibm8iIG9uIGZyYW1lc2V0
IGlzIGlnbm9yZWQgaWYgYm9yZGVyIGF0dHJpYnV0ZSBzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggODg2MTM5NTdiMmM0NjlmY2Y4OGExNjczMDQ5ZDE0YzA2NWY3MGJhMC4uNTAzOWI0
MzQ3ZGE3NGJmZDkwYmYyM2ExNzY1M2U3ZDgxNTVlMWQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0wNi0yOCAgWW9zaGlmdW1pIElub3VlICA8eW9z
aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtQbGF0Zm9ybV0gSW1wbGVtZW50IERhdGUgVGlt
ZSBmb3JtYXQgcGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04OTk2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiB1bml0IHRlc3QgZm9yIGRhdGUgdGltZSBmb3JtYXQg
cGFyc2VyIGlmCisgICAgICAgIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERT
KSBpcyB0cnVlLgorCisgICAgICAgICogdGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0LmNwcDogQWRk
ZWQuCisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3QpOgorICAgICAgICAoVG9rZW4pOgorICAg
ICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbjo6VG9rZW4pOgorICAgICAgICAoRGF0ZVRp
bWVGb3JtYXRUZXN0OjpUb2tlbjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChEYXRlVGltZUZvcm1h
dFRlc3Q6OlRva2VuOjp0b1N0cmluZyk6CisgICAgICAgIChUb2tlbnMpOgorICAgICAgICAoRGF0
ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbnM6OlRva2Vucyk6CisgICAgICAgIChEYXRlVGltZUZvcm1h
dFRlc3Q6OlRva2Vuczo6b3BlcmF0b3I9PSk6CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6
OlRva2Vuczo6dG9TdHJpbmcpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpwYXJzZSk6
CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6OnNpbmdsZSk6CisgICAgICAgIChUb2tlbkhh
bmRsZXIpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbkhhbmRsZXI6On5Ub2tl
bkhhbmRsZXIpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbkhhbmRsZXI6OmZp
ZWxkVHlwZSk6CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6OlRva2VuSGFuZGxlcjo6dG9r
ZW5zKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5kbGVyOjp2aXNpdEZp
ZWxkKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5kbGVyOjp2aXNpdExp
dGVyYWwpOgorICAgICAgICAob3BlcmF0b3I8PCk6CisgICAgICAgIChURVNUX0YpOgorCiAyMDEy
LTA2LTI4ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5k
ZXhlZERCOiBJbXBsZW1lbnQgSURCVHJhbnNhY3Rpb24gaW50ZXJuYWwgYWN0aXZlIGZsYWcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNmQzZGE3ZjhjMjRiNDYyN2M1ZjEyMzM5OThkZjM3MGU1MTM0
NDNmNy4uZTVjMjc0M2VjNzk1NDUxMzNjODkxOTdlMWNlMDU2MGI3NzRiYzAwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTEyOTUsNiArMTI5NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKIAog
ICAgIHBsYXRmb3JtL3RleHQvQmFzZTY0LmNwcAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRl
eHQuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAKICAgICBwbGF0Zm9y
bS90ZXh0L0h5cGhlbmF0aW9uLmNwcAogICAgIHBsYXRmb3JtL3RleHQvTGluZUVuZGluZy5jcHAK
ICAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNWVjMmVjMTU1NmY0NGYyNmYxOWQxOWRmMTcz
YmM3N2U0M2YyYzhlLi45MTBhZTVkZjMwYzE5OWIyMDA5YzhjYmY1ZmRlNDVjNWI1MjdiOTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM2NzgsNiArMzY3OCw4IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSdW5MaXN0LmggXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvSHlwaGVuYXRpb24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0h5
cGhlbmF0aW9uLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggN2I5NmI3NjI0MzA4OTg4YmU0NTA2YmFmNWRl
MzAyYWYyMWJkMDRkYy4uYzUyNGU3YWQ4MTI0OTgwMTlkMTEzYmU2ZDVmMjIyYTJkODU5ZTExOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCkBAIC0xMDc1LDYgKzEwNzUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0
Zm9ybS9BcmVuYS5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvQmFzZTY0LmNwcCBcCiAgICAgcGxh
dGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHAgXAorICAgIHBsYXRmb3JtL3RleHQvRGF0ZVRpbWVG
b3JtYXQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcCBcCiAgICAgcGxh
dGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcCBcCiAgICAgcGxhdGZv
cm0vdGV4dC9Mb2NhbGl6ZWREYXRlTm9uZS5jcHAgXApAQCAtMjQxMSw2ICsyNDEyLDcgQEAgSEVB
REVSUyArPSBcCiAgICAgcGxhdGZvcm0vc3FsL1NRTFZhbHVlLmggXAogICAgIHBsYXRmb3JtL3Rl
eHQvQmFzZTY0LmggXAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaCBcCisgICAgcGxh
dGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0RlY29kZUVz
Y2FwZVNlcXVlbmNlcy5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmggXAogICAg
IHBsYXRmb3JtL3RleHQvUXVvdGVkUHJpbnRhYmxlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDdm
NmUyMmRkNTQwMGRmYWEwYmNjYTE5OWE4OGY4OTc5ZWEzM2FhMjMuLjc1MGNkYjRjMmE1NDNiM2U3
YzFkYmQ2MThmYjZjYmNkZDBkMTRiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQ5Myw2ICs0OTMs
NyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvQmlkaVJ1bkxpc3QuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS90ZXh0L0JpZGlSZXNvbHZlci5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0RhdGVU
aW1lRm9ybWF0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2Vx
dWVuY2VzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTGluZUJyZWFrSXRlcmF0b3JQ
b29sSUNVLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTGluZUVuZGluZy5oJywKQEAg
LTQzNzgsNiArNDM3OSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9BdG9taWNTdHJp
bmdLZXllZE1SVUNhY2hlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvQmFzZTY0LmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHAnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4
dC9IeXBoZW5hdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggZDEyZGI1NjZjOGMzOTU5NmZkMGYxMjU0OGUwNzExNTY4NmMxMjdlOS4uNDljYTA0OGM1NGVi
NmYzOWNmZjVmMWQ1ZDRlY2QzYWI2YzEzMDY2YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTMzMTk4LDYgKzMzMTk4LDE0IEBACiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0
ZXh0XERhdGVUaW1lRm9ybWF0LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcRGF0ZVRpbWVGb3JtYXQuaCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXHRleHRcRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMmRkMzU4YzY4MjJiN2M5OGRkZGYzNjdiMTAxNjVjODE4ZDI4ZDZmNy4uMDdmZjNmMDhiMGRl
ZTRkYTM5OTdkOTdjYzYwMTBhYzU1ODhmMmY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE4OSw2ICsxMTg5LDggQEAKIAkJ
NDUwOTlDNDExMzcwQTc4MDAwNThENTEzIC8qIEljb25VUkwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUwOTlDNDAxMzcwQTc4MDAwNThENTEzIC8q
IEljb25VUkwuY3BwICovOyB9OwogCQk0NTBDRUJGMDE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxh
YmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NTBDRUJFRTE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5jcHAgKi87
IH07CiAJCTQ1MENFQkYxMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NTBDRUJFRjE1MDcz
QkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQ1M0VCNjM2MTU5QzU3MDQwMDAwMUJCNyAvKiBE
YXRlVGltZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NTNFQjYzNDE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuY3BwICov
OyB9OworCQk0NTNFQjYzNzE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1M0VCNjM1MTU5QzU3
MDQwMDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ1OEZFNDA5MTU4OURGMEIwMDU2MDlFNiAvKiBSZW5k
ZXJTZWFyY2hGaWVsZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NThGRTQwNzE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQuY3Bw
ICovOyB9OwogCQk0NThGRTQwQTE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1OEZFNDA4
MTU4OURGMEIwMDU2MDlFNiAvKiBSZW5kZXJTZWFyY2hGaWVsZC5oICovOyB9OwogCQk0NUJBQzJC
MDEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDVCQUMyQUYxMzYwQkJBQjAwNURBMjU4IC8qIEljb25VUkwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODIz
OSw2ICs4MjQxLDggQEAKIAkJNDUwOTlDNDAxMzcwQTc4MDAwNThENTEzIC8qIEljb25VUkwuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvblVSTC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MENFQkVFMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJl
bGFibGVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExh
YmVsYWJsZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTBDRUJF
RjE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMYWJlbGFibGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQ1M0VCNjM0MTU5QzU3MDQwMDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZUZvcm1hdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ1M0VCNjM1MTU5QzU3MDQwMDAwMUJCNyAv
KiBEYXRlVGltZUZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRl
VGltZUZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NThGRTQwNzE1ODlE
RjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU2VhcmNoRmllbGQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NThGRTQwODE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmll
bGQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU2VhcmNoRmllbGQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVCQUMyQUYxMzYwQkJBQjAwNURBMjU4
IC8qIEljb25VUkwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvblVSTC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk3MTUsNiArMTk3MTksOCBAQAogCQkJ
CUIyQzNEOUYzMEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpQ29udGV4dC5oICovLAogCQkJCUIyQzNE
OUY0MEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCAqLywKIAkJCQlBOEM0MDI5MjEz
NDhCMjIyMDA2M0YxRTUgLyogQmlkaVJ1bkxpc3QuaCAqLywKKwkJCQk0NTNFQjYzNDE1OUM1NzA0
MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuY3BwICovLAorCQkJCTQ1M0VCNjM1MTU5QzU3MDQw
MDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5oICovLAogCQkJCUNFQ0NGQzNBMTQxOTczRDUwMDJB
MEFDMSAvKiBEZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCAqLywKIAkJCQkzNzVDRDIzMTExOUQ0M0M4
MDBBMkE4NTkgLyogSHlwaGVuYXRpb24uaCAqLywKIAkJCQlBNUFCQjc4NjEzQjkwNEJDMDBGMTk3
RTMgLyogTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmggKi8sCkBAIC0yMjI2Miw2ICsyMjI2OCw3
IEBACiAJCQkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTk3Q0NFQjEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0YVZp
ZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NzMyQjBCMTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRl
Q29tcG9uZW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDUzRUI2MzcxNTlDNTcwNDAwMDAxQkI3
IC8qIERhdGVUaW1lRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCNjEyNTFGMTJE
MDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQjgx
MjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNTVCM0RCQTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTc3Niw2ICsyNTc4Myw3IEBACiAJCQkJMkU5N0NDRUExMjkzOUNC
ODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1NzMyQjBBMTM2
QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NTVCM0RCNTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk0NTNFQjYzNjE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQjcxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lSW5w
dXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREI5MTI1MUYxMkQwMDNFRjI2OSAv
KiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ1RkVBNUNG
MTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MWMyMjNjYzRlNTg1MGEwMjlkYzZjMzZhZWJlMTY4NTc1YTI4Y2I5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAKQEAgLTAs
MCArMSwyNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisg
KiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKworI2luY2x1ZGUgIkRh
dGVUaW1lRm9ybWF0LmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGUgbG93ZXJDYXNlVG9GaWVsZFR5cGVNYXBbMjZdID0geworICAgIERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVQZXJpb2QsIC8vIGEKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52
YWxpZCwgLy8gYgorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMb2NhbERheU9mV2Vla1N0
YW5kQWxvbiwgLy8gYworICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZk1vbnRoLCAv
LyBkCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxvY2FsRGF5T2ZXZWVrLCAvLyBlCisg
ICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIGYKKyAgICBEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlTW9kaWZpZWRKdWxpYW5EYXksIC8vIGcKKyAgICBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlSG91cjEyLCAvLyBoCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUlu
dmFsaWQsIC8vIGkKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gagor
ICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjQsIC8vIGsKKyAgICBEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gbAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVNaW51dGUsIC8vIG0KKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8g
bgorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBvCisgICAgRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIHAKKyAgICBEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlUXVhdGVyU3RhbmRBbG9uZSwgLy8gcQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVJbnZhbGlkLCAvLyByCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29uZCwgLy8g
cworICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyB0CisgICAgRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZUV4dGVuZGVkWWVhciwgLy8gdQorICAgIERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVOb25Mb2NhdGlvblpvbmUsIC8vIHYKKyAgICBEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlV2Vla09mTW9udGgsIC8vIHcKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52
YWxpZCwgLy8geAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVZZWFyLCAvLyB5CisgICAg
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVpvbmUsIC8vIHoKK307CisKK3N0YXRpYyBjb25zdCBE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIHVwcGVyQ2FzZVRvRmllbGRUeXBlTWFwWzI2XSA9IHsK
KyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWlsbGlzZWNvbmRzSW5EYXksIC8vIEEKKyAg
ICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gQgorICAgIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBDCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZURheU9mWWVhciwgLy8gRAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZldlZWss
IC8vIEUKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZXZWVrSW5Nb250aCwgLy8g
RgorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVFcmEsIC8vIEcKKyAgICBEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlSG91cjIzLCAvLyBICisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZUludmFsaWQsIC8vIEkKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8g
SgorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTEsIC8vIEsKKyAgICBEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlTW9udGhTdGFuZEFsb25lLCAvLyBMCisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZU1vbnRoLCAvLyBNCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUlu
dmFsaWQsIC8vIE4KKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gTwor
ICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBQCisgICAgRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZVF1YXRlciwgLy8gUQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVJbnZhbGlkLCAvLyBSCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUZyYWN0aW9uYWxT
ZWNvbmQsIC8vIFMKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gVAor
ICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBVCisgICAgRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUxvY2F0aW9uWm9uZSwgLy8gVgorICAgIERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGVXZWVrT2ZZZWFyLCAvLyBXCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUlu
dmFsaWQsIC8vIFgKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhck9mV2Vla09mWWVh
ciwgLy8gWQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVSRkM4MjJab25lLCAvLyBaCit9
OworCitzdGF0aWMgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBtYXBDaGFyYWN0ZXJUb0ZpZWxk
VHlwZUludGVybmFsKGNvbnN0IFVDaGFyIGNoKQoreworICAgIGlmIChjaCA+PSAnQScgJiYgY2gg
PD0gJ1onKQorICAgICAgICByZXR1cm4gdXBwZXJDYXNlVG9GaWVsZFR5cGVNYXBbY2ggLSAnQSdd
OworCisgICAgaWYgKGNoID49ICdhJyAmJiBjaCA8PSAneicpCisgICAgICAgIHJldHVybiBsb3dl
ckNhc2VUb0ZpZWxkVHlwZU1hcFtjaCAtICdhJ107CisKKyAgICByZXR1cm4gRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUxpdGVyYWw7Cit9CisKK3N0YXRpYyBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlIG1hcENoYXJhY3RlclRvRmllbGRUeXBlKERhdGVUaW1lRm9ybWF0OjpGb3JtYXRUeXBlIGZv
cm1hdFR5cGUsIFVDaGFyIGNoKQoreworICAgIGNvbnN0IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGUgZmllbGRUeXBlID0gbWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGVJbnRlcm5hbChjaCk7CisgICAg
c3dpdGNoIChmb3JtYXRUeXBlKSB7CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6Rm9ybWF0VHlw
ZUlDVToKKyAgICAgICAgcmV0dXJuIGZpZWxkVHlwZSA9PSBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlTG9jYWxEYXlPZldlZWtTdGFuZEFsb24gPyBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52
YWxpZCA6IGZpZWxkVHlwZTsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGb3JtYXRUeXBlTERN
TDoKKyAgICAgICAgcmV0dXJuIGZpZWxkVHlwZSA9PSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
TG9jYXRpb25ab25lID8gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQgOiBmaWVsZFR5
cGU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBmaWVsZFR5cGU7CisgICAgfQorfQorCitib29sIERhdGVUaW1lRm9ybWF0OjpwYXJz
ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgVG9rZW5IYW5kbGVyJiB0b2tlbkhhbmRsZXIsIEZvcm1h
dFR5cGUgZm9ybWF0VHlwZSkKK3sKKyAgICBlbnVtIFN0YXRlIHsKKyAgICAgICAgU3RhdGVJblF1
b3RlLAorICAgICAgICBTdGF0ZUluUXVvdGVRdW90ZSwKKyAgICAgICAgU3RhdGVMaXRlcmFsLAor
ICAgICAgICBTdGF0ZVF1b3RlLAorICAgICAgICBTdGF0ZVN5bWJvbCwKKyAgICB9IHN0YXRlID0g
U3RhdGVMaXRlcmFsOworCisgICAgRmllbGRUeXBlIGZpZWxkVHlwZSA9IEZpZWxkVHlwZUxpdGVy
YWw7CisgICAgU3RyaW5nQnVpbGRlciBsaXRlcmFsQnVmZmVyOworICAgIGludCBmaWVsZENvdW50
ZXIgPSAwOworCisgICAgZm9yICh1bnNpZ25lZCBpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNvdXJj
ZS5sZW5ndGgoKTsgKytpbmRleCkgeworICAgICAgICBjb25zdCBVQ2hhciBjaCA9IHNvdXJjZVtp
bmRleF07CisgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICAgICAgY2FzZSBTdGF0ZUluUXVv
dGU6CisgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAgICAgICAgIHN0YXRl
ID0gU3RhdGVJblF1b3RlUXVvdGU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGxpdGVyYWxCdWZmZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgIGNhc2UgU3RhdGVJblF1b3RlUXVvdGU6CisgICAgICAgICAgICBp
ZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAgICAgICAgIGxpdGVyYWxCdWZmZXIuYXBwZW5kKCdc
JycpOworICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGVJblF1b3RlOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmaWVsZFR5cGUgPSBtYXBD
aGFyYWN0ZXJUb0ZpZWxkVHlwZShmb3JtYXRUeXBlLCBjaCk7CisgICAgICAgICAgICBpZiAoZmll
bGRUeXBlID09IEZpZWxkVHlwZUludmFsaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgICAgICBpZiAoZmllbGRUeXBlID09IEZpZWxkVHlwZUxpdGVyYWwpIHsKKyAg
ICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAg
c3RhdGUgPSBTdGF0ZUxpdGVyYWw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKSB7CisgICAgICAg
ICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVyLnRvU3RyaW5n
KCkpOworICAgICAgICAgICAgICAgIGxpdGVyYWxCdWZmZXIuY2xlYXIoKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZmllbGRDb3VudGVyID0gMTsKKyAgICAgICAgICAgIHN0YXRlID0g
U3RhdGVTeW1ib2w7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFN0YXRlTGl0
ZXJhbDoKKyAgICAgICAgICAgIGlmIChjaCA9PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgc3Rh
dGUgPSBTdGF0ZVF1b3RlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmaWVsZFR5cGUgPSBtYXBDaGFyYWN0ZXJUb0ZpZWxkVHlwZShmb3JtYXRU
eXBlLCBjaCk7CisgICAgICAgICAgICBpZiAoZmllbGRUeXBlID09IEZpZWxkVHlwZUludmFsaWQp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpZiAoZmllbGRU
eXBlID09IEZpZWxkVHlwZUxpdGVyYWwpIHsKKyAgICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVy
LmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAg
dG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpOworICAg
ICAgICAgICAgICAgIGxpdGVyYWxCdWZmZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZmllbGRDb3VudGVyID0gMTsKKyAgICAgICAgICAgIHN0YXRlID0gU3RhdGVTeW1i
b2w7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFN0YXRlUXVvdGU6CisgICAg
ICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICBzdGF0ZSA9IGNo
ID09ICdcJycgPyBTdGF0ZUxpdGVyYWwgOiBTdGF0ZUluUXVvdGU7CisgICAgICAgICAgICBicmVh
azsKKworICAgICAgICBjYXNlIFN0YXRlU3ltYm9sOiB7CisgICAgICAgICAgICBBU1NFUlQoZmll
bGRUeXBlICE9IEZpZWxkVHlwZUludmFsaWQpOworICAgICAgICAgICAgQVNTRVJUKGZpZWxkVHlw
ZSAhPSBGaWVsZFR5cGVMaXRlcmFsKTsKKyAgICAgICAgICAgIEFTU0VSVChsaXRlcmFsQnVmZmVy
LmlzRW1wdHkoKSk7CisKKyAgICAgICAgICAgIEZpZWxkVHlwZSBmaWVsZFR5cGUyID0gbWFwQ2hh
cmFjdGVyVG9GaWVsZFR5cGUoZm9ybWF0VHlwZSwgY2gpOworICAgICAgICAgICAgaWYgKGZpZWxk
VHlwZTIgPT0gRmllbGRUeXBlSW52YWxpZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgICAgIGlmIChmaWVsZFR5cGUgPT0gZmllbGRUeXBlMikgeworICAgICAgICAg
ICAgICAgICsrZmllbGRDb3VudGVyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRGaWVsZChmaWVsZFR5cGUsIGZp
ZWxkQ291bnRlcik7CisKKyAgICAgICAgICAgIGlmIChmaWVsZFR5cGUyID09IEZpZWxkVHlwZUxp
dGVyYWwpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykKKyAgICAgICAgICAgICAg
ICAgICAgc3RhdGUgPSBTdGF0ZVF1b3RlOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAg
ICAgIHN0YXRlID0gU3RhdGVMaXRlcmFsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZmllbGRDb3VudGVyID0g
MTsKKyAgICAgICAgICAgIGZpZWxkVHlwZSA9IGZpZWxkVHlwZTI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBMT0dfRVJST1Io
IkludmxpYWQgc3RhdGU9JWQiLCBzdGF0ZSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IEFTU0VSVChmaWVsZFR5cGUgIT0gRmllbGRUeXBlSW52YWxpZCk7CisKKyAgICBzd2l0Y2ggKHN0
YXRlKSB7CisgICAgY2FzZSBTdGF0ZUxpdGVyYWw6CisgICAgY2FzZSBTdGF0ZUluUXVvdGVRdW90
ZToKKyAgICAgICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpCisgICAgICAgICAgICB0b2tl
bkhhbmRsZXIudmlzaXRMaXRlcmFsKGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgY2FzZSBTdGF0ZVF1b3RlOgorICAgIGNhc2UgU3RhdGVJblF1
b3RlOgorICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkKKyAgICAgICAgICAgIHRv
a2VuSGFuZGxlci52aXNpdExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgY2FzZSBTdGF0ZVN5bWJvbDoKKyAgICAgICAgQVNTRVJU
KGZpZWxkVHlwZSAhPSBGaWVsZFR5cGVMaXRlcmFsKTsKKyAgICAgICAgQVNTRVJUKCFsaXRlcmFs
QnVmZmVyLmxlbmd0aCgpKTsKKyAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0RmllbGQoZmllbGRU
eXBlLCBmaWVsZENvdW50ZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGRlZmF1bHQ6
CisgICAgICAgIExPR19FUlJPUigiSW52bGlhZCBzdGF0ZT0lZCIsIHN0YXRlKTsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI2NWNlNTUxMTBjMmEyZWFk
NzI0NjhjMTRkOTNjNjYwZTczYzdhNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuaApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFN
QUdFLgorICovCisKKyNpZm5kZWYgRGF0ZVRpbWVGb3JtYXRfaAorI2RlZmluZSBEYXRlVGltZUZv
cm1hdF9oCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKwor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
Ky8vIERhdGVUaW1lRm9ybWF0IHBhcnNlcyBkYXRlIHRpbWUgZm9ybWF0IGRlZmluZWQgaW4gVW5p
Y29kZSBUZWNobmljYWwKKy8vIHN0YW5kYXJkIDM1LCBMb2NhbGUgRGF0YSBNYXJrdXAgTGFuZ3Vh
Z2UgKExETUwpWzFdLCBhbmQgSUNVIHZhcmlhbnRbMl0uCisvLworLy8gRGlmZmVyZW5jZXMgYmV0
d2VlbiBMRE1MIGFuZCBJQ1UgYXJlOgorLy8gIC0gTERNTCBzdXBwb3J0IHN5bWJvbCAiYyIsIGJ1
dCBJQ1UgZG9lc24ndC4KKy8vICAtIElDVSBzdXBwb3J0IHN5bWJvbCAiViIsIGJ1dCBMRE1MIGRv
ZXNuJ3QuCisvLworLy8gWzFdIExETUwgaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS90
cjM1LTYuaHRtbCNEYXRlX0Zvcm1hdF9QYXR0ZXJucworLy8gWzJdIGh0dHA6Ly91c2VyZ3VpZGUu
aWN1LXByb2plY3Qub3JnL2Zvcm1hdHBhcnNlL2RhdGV0aW1lCitjbGFzcyBEYXRlVGltZUZvcm1h
dCB7CitwdWJsaWM6CisgICAgZW51bSBGaWVsZFR5cGUgeworICAgICAgICBGaWVsZFR5cGVJbnZh
bGlkLAorICAgICAgICBGaWVsZFR5cGVMaXRlcmFsLAorCisgICAgICAgIC8vIEVyYTogQUQKKyAg
ICAgICAgRmllbGRUeXBlRXJhID0gJ0cnLAorCisgICAgICAgIC8vIFllYXI6IDE5OTYKKyAgICAg
ICAgRmllbGRUeXBlWWVhciA9ICd5JywKKyAgICAgICAgRmllbGRUeXBlWWVhck9mV2Vla09mWWVh
ciA9ICdZJywKKyAgICAgICAgRmllbGRUeXBlRXh0ZW5kZWRZZWFyID0gJ3UnLAorCisgICAgICAg
IC8vIFF1YXRlcjogUTIKKyAgICAgICAgRmllbGRUeXBlUXVhdGVyID0gJ1EnLAorICAgICAgICBG
aWVsZFR5cGVRdWF0ZXJTdGFuZEFsb25lID0gJ3EnLAorCisgICAgICAgIC8vIE1vbnRoOiBTZXB0
ZW1iZXIKKyAgICAgICAgRmllbGRUeXBlTW9udGggPSAnTScsCisgICAgICAgIEZpZWxkVHlwZU1v
bnRoU3RhbmRBbG9uZSA9ICdMJywKKworICAgICAgICAvLyBXZWVrOiA0MgorICAgICAgICBGaWVs
ZFR5cGVXZWVrT2ZZZWFyID0gJ1cnLAorICAgICAgICBGaWVsZFR5cGVXZWVrT2ZNb250aCA9ICd3
JywKKworICAgICAgICAvLyBEYXk6IDEyCisgICAgICAgIEZpZWxkVHlwZURheU9mTW9udGggPSAn
ZCcsCisgICAgICAgIEZpZWxkVHlwZURheU9mWWVhciA9ICdEJywKKyAgICAgICAgRmllbGRUeXBl
RGF5T2ZXZWVrSW5Nb250aCA9ICdGJywKKyAgICAgICAgRmllbGRUeXBlTW9kaWZpZWRKdWxpYW5E
YXkgPSAnZycsCisKKyAgICAgICAgLy8gV2VlayBEYXk6IFR1ZXNkYXkKKyAgICAgICAgRmllbGRU
eXBlRGF5T2ZXZWVrID0gJ0UnLAorICAgICAgICBGaWVsZFR5cGVMb2NhbERheU9mV2VlayA9ICdl
JywKKyAgICAgICAgRmllbGRUeXBlTG9jYWxEYXlPZldlZWtTdGFuZEFsb24gPSAnYycsIC8vIElD
VSBkb2Vzbid0IHN1cHBvcnQgdGhpcy4KKworICAgICAgICAvLyBQZXJpb2Q6IEFNIG9yIFBNCisg
ICAgICAgIEZpZWxkVHlwZVBlcmlvZCA9ICdhJywKKworICAgICAgICAvLyBIb3VyOiA3CisgICAg
ICAgIEZpZWxkVHlwZUhvdXIxMiA9ICdoJywKKyAgICAgICAgRmllbGRUeXBlSG91cjIzID0gJ0gn
LAorICAgICAgICBGaWVsZFR5cGVIb3VyMTEgPSAnSycsCisgICAgICAgIEZpZWxkVHlwZUhvdXIy
NCA9ICdrJywKKworICAgICAgICAvLyBNaW51dGU6IDU5CisgICAgICAgIEZpZWxkVHlwZU1pbnV0
ZSA9ICdtJywKKworICAgICAgICAvLyBTZWNvbmQ6IDEyCisgICAgICAgIEZpZWxkVHlwZVNlY29u
ZCA9ICdzJywKKyAgICAgICAgRmllbGRUeXBlRnJhY3Rpb25hbFNlY29uZCA9ICdTJywKKyAgICAg
ICAgRmllbGRUeXBlTWlsbGlzZWNvbmRzSW5EYXkgPSAnQScsCisKKyAgICAgICAgLy8gWm9uZTog
UERUCisgICAgICAgIEZpZWxkVHlwZVpvbmUgPSAneicsCisgICAgICAgIEZpZWxkVHlwZVJGQzgy
MlpvbmUgPSAnWicsCisgICAgICAgIEZpZWxkVHlwZU5vbkxvY2F0aW9uWm9uZSA9ICd2JywKKyAg
ICAgICAgRmllbGRUeXBlTG9jYXRpb25ab25lID0gJ1YnLCAvLyBJQ1Ugb25seS4KKyAgICB9Owor
CisgICAgZW51bSBGb3JtYXRUeXBlIHsKKyAgICAgICAgRm9ybWF0VHlwZUlDVSwKKyAgICAgICAg
Rm9ybWF0VHlwZUxETUwsCisgICAgfTsKKworICAgIGNsYXNzIFRva2VuSGFuZGxlciB7CisgICAg
cHVibGljOgorICAgICAgICB2aXJ0dWFsIH5Ub2tlbkhhbmRsZXIoKSB7IH0KKyAgICAgICAgdmly
dHVhbCB2b2lkIHZpc2l0RmllbGQoRmllbGRUeXBlLCBpbnQpID0gMDsKKyAgICAgICAgdmlydHVh
bCB2b2lkIHZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgfTsKKworICAgIC8v
IFJldHVybnMgdHJ1ZSBpZiBzdWNjZWVkZWQsIGZhbHNlIGlmIGZhaWxlZC4KKyAgICBzdGF0aWMg
Ym9vbCBwYXJzZShjb25zdCBTdHJpbmcmLCBUb2tlbkhhbmRsZXImLCBGb3JtYXRUeXBlID0gRm9y
bWF0VHlwZUxETUwpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKwor
I2VuZGlmIC8vIERhdGVUaW1lRm9ybWF0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmlu
ZGV4IGE4ZGQzYTYyNjUzNTA1MzcwMTUwYzY1ZWU4ZGZjZTA5MTdlNzg0ZGQuLjI3YzM3YjY0NGE4
OTk3NTViNzNkOGM0NmJiZWM2NTViZTYwM2M3OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwaQpAQCAtOTcsNiArOTcsNyBAQAogICAgICAgICAgICAgJ3Rlc3RzL0NDVGltZXJUZXN0LmNw
cCcsCiAgICAgICAgICAgICAndGVzdHMvQ2xpcGJvYXJkQ2hyb21pdW1UZXN0LmNwcCcsCiAgICAg
ICAgICAgICAndGVzdHMvQ29tcG9zaXRvckZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oJywKKyAg
ICAgICAgICAgICd0ZXN0cy9EYXRlVGltZUZvcm1hdFRlc3QuY3BwJywKICAgICAgICAgICAgICd0
ZXN0cy9EZWNpbWFsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0RyYWdJbWFnZVRlc3Qu
Y3BwJywKICAgICAgICAgICAgICd0ZXN0cy9FdmVudExpc3RlbmVyVGVzdC5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9EYXRlVGltZUZvcm1hdFRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9EYXRlVGltZUZvcm1hdFRlc3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM4YTM3MmFhNTcwNWE1ZjliYzkxNTYxZGZjNTYwMzQyMDNjNmIwNzcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0RhdGVUaW1lRm9ybWF0
VGVzdC5jcHAKQEAgLTAsMCArMSwzMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykK
KworI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitjbGFzcyBEYXRlVGlt
ZUZvcm1hdFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKK3B1YmxpYzoKKyAgICB0eXBl
ZGVmIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgRmllbGRUeXBlOworCisgICAgc3RydWN0IFRv
a2VuIHsKKyAgICAgICAgU3RyaW5nIHN0cmluZzsKKyAgICAgICAgaW50IGNvdW50OworICAgICAg
ICBGaWVsZFR5cGUgZmllbGRUeXBlOworCisgICAgICAgIFRva2VuKEZpZWxkVHlwZSBmaWVsZFR5
cGUsIGludCBjb3VudCA9IDEpCisgICAgICAgICAgICA6IGNvdW50KGNvdW50KQorICAgICAgICAg
ICAgLCBmaWVsZFR5cGUoZmllbGRUeXBlKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQo
ZmllbGRUeXBlICE9IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMaXRlcmFsKTsKKyAgICAgICAg
fQorCisgICAgICAgIFRva2VuKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgICAgICAgICAgOiBz
dHJpbmcoc3RyaW5nKQorICAgICAgICAgICAgLCBjb3VudCgwKQorICAgICAgICAgICAgLCBmaWVs
ZFR5cGUoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxpdGVyYWwpCisgICAgICAgIHsKKyAgICAg
ICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBUb2tlbiYgb3RoZXIpIGNvbnN0
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmaWVsZFR5cGUgPT0gb3RoZXIuZmllbGRU
eXBlICYmIGNvdW50ID09IG90aGVyLmNvdW50ICYmIHN0cmluZyA9PSBvdGhlci5zdHJpbmc7Cisg
ICAgICAgIH0KKworICAgICAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdAorICAgICAgICB7Cisg
ICAgICAgICAgICBzd2l0Y2ggKGZpZWxkVHlwZSkgeworICAgICAgICAgICAgY2FzZSBEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIippbnZh
bGlkKiI7CisgICAgICAgICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMaXRlcmFs
OiB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCciJyk7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
c3RyaW5nKTsKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnIicpOworICAgICAgICAg
ICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiVG9r
ZW4oJWQsICVkKSIsIGZpZWxkVHlwZSwgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfTsKKworICAgIGNsYXNzIFRva2VucyB7CisgICAgcHVibGljOgorICAgICAgICBUb2tl
bnMoKSB7IH0KKworICAgICAgICBleHBsaWNpdCBUb2tlbnMoY29uc3QgVmVjdG9yPFRva2VuPiB0
b2tlbnMpCisgICAgICAgICAgICA6IG1fdG9rZW5zKHRva2VucykKKyAgICAgICAgeworICAgICAg
ICB9CisKKyAgICAgICAgZXhwbGljaXQgVG9rZW5zKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAg
ICAgICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQoVG9rZW4oc3RyaW5nKSk7CisgICAg
ICAgIH0KKworICAgICAgICBleHBsaWNpdCBUb2tlbnMoVG9rZW4gdG9rZW4xKQorICAgICAgICB7
CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4xKTsKKyAgICAgICAgfQorCisgICAg
ICAgIFRva2VucyhUb2tlbiB0b2tlbjEsIFRva2VuIHRva2VuMikKKyAgICAgICAgeworICAgICAg
ICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMSk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBl
bmQodG9rZW4yKTsKKyAgICAgICAgfQorCisgICAgICAgIFRva2VucyhUb2tlbiB0b2tlbjEsIFRv
a2VuIHRva2VuMiwgVG9rZW4gdG9rZW4zKQorICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vu
cy5hcHBlbmQodG9rZW4xKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjIpOwor
ICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMyk7CisgICAgICAgIH0KKworICAgICAg
ICBUb2tlbnMoVG9rZW4gdG9rZW4xLCBUb2tlbiB0b2tlbjIsIFRva2VuIHRva2VuMywgVG9rZW4g
dG9rZW40KQorICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4xKTsK
KyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjIpOworICAgICAgICAgICAgbV90b2tl
bnMuYXBwZW5kKHRva2VuMyk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW40KTsK
KyAgICAgICAgfQorCisgICAgICAgIFRva2VucyhUb2tlbiB0b2tlbjEsIFRva2VuIHRva2VuMiwg
VG9rZW4gdG9rZW4zLCBUb2tlbiB0b2tlbjQsIFRva2VuIHRva2VuNSkKKyAgICAgICAgeworICAg
ICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMSk7CisgICAgICAgICAgICBtX3Rva2Vucy5h
cHBlbmQodG9rZW4yKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjMpOworICAg
ICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuNCk7CisgICAgICAgICAgICBtX3Rva2Vucy5h
cHBlbmQodG9rZW41KTsKKyAgICAgICAgfQorCisgICAgICAgIFRva2VucyhUb2tlbiB0b2tlbjEs
IFRva2VuIHRva2VuMiwgVG9rZW4gdG9rZW4zLCBUb2tlbiB0b2tlbjQsIFRva2VuIHRva2VuNSwg
VG9rZW4gdG9rZW42KQorICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9r
ZW4xKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjIpOworICAgICAgICAgICAg
bV90b2tlbnMuYXBwZW5kKHRva2VuMyk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9r
ZW40KTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjUpOworICAgICAgICAgICAg
bV90b2tlbnMuYXBwZW5kKHRva2VuNik7CisgICAgICAgIH0KKworICAgICAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgVG9rZW5zJiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIG1fdG9rZW5zID09IG90aGVyLm1fdG9rZW5zOworICAgICAgICB9CisKKyAgICAgICAg
U3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIlRva2VucygiKTsKKyAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IG1fdG9rZW5zLnNpemUo
KTsgKytpbmRleCkgeworICAgICAgICAgICAgICAgIGlmIChpbmRleCkKKyAgICAgICAgICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoIiwiKTsKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZChtX3Rva2Vuc1tpbmRleF0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZCgiKSIpOworICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJp
bmcoKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgVmVjdG9yPFRva2VuPiBt
X3Rva2VuczsKKyAgICB9OworCitwcm90ZWN0ZWQ6CisgICAgVG9rZW5zIHBhcnNlKGNvbnN0IFN0
cmluZyYgZm9ybWF0U3RyaW5nKQorICAgIHsKKyAgICAgICAgVG9rZW5IYW5kbGVyIGhhbmRsZXI7
CisgICAgICAgIGlmICghRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGZvcm1hdFN0cmluZywgaGFuZGxl
cikpCisgICAgICAgICAgICByZXR1cm4gVG9rZW5zKFRva2VuKCIqZmFpbGVkKiIpKTsKKyAgICAg
ICAgcmV0dXJuIGhhbmRsZXIudG9rZW5zKCk7CisgICAgfQorCisgICAgRmllbGRUeXBlIHNpbmds
ZShjb25zdCBjaGFyIGNoKQorICAgIHsKKyAgICAgICAgY2hhciBmb3JtYXRTdHJpbmdbMl07Cisg
ICAgICAgIGZvcm1hdFN0cmluZ1swXSA9IGNoOworICAgICAgICBmb3JtYXRTdHJpbmdbMV0gPSAw
OworICAgICAgICBUb2tlbkhhbmRsZXIgaGFuZGxlcjsKKyAgICAgICAgaWYgKCFEYXRlVGltZUZv
cm1hdDo6cGFyc2UoZm9ybWF0U3RyaW5nLCBoYW5kbGVyKSkKKyAgICAgICAgICAgIHJldHVybiBE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZDsKKyAgICAgICAgcmV0dXJuIGhhbmRsZXIu
ZmllbGRUeXBlKDApOworICAgIH0KKworcHJpdmF0ZToKKyAgICBjbGFzcyBUb2tlbkhhbmRsZXIg
OiBwdWJsaWMgRGF0ZVRpbWVGb3JtYXQ6OlRva2VuSGFuZGxlciB7CisgICAgcHVibGljOgorICAg
ICAgICB2aXJ0dWFsIH5Ub2tlbkhhbmRsZXIoKSB7IH0KKworICAgICAgICBGaWVsZFR5cGUgZmll
bGRUeXBlKGludCBpbmRleCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGlu
ZGV4ID49MCAmJiBpbmRleCA8IHN0YXRpY19jYXN0PGludD4obV90b2tlbnMuc2l6ZSgpKSA/IG1f
dG9rZW5zW2luZGV4XS5maWVsZFR5cGUgOiBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxp
ZDsKKyAgICAgICAgfQorCisgICAgICAgIFRva2VucyB0b2tlbnMoKSBjb25zdCB7IHJldHVybiBU
b2tlbnMobV90b2tlbnMpOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIHZvaWQg
dmlzaXRGaWVsZChGaWVsZFR5cGUgZmllbGRUeXBlLCBpbnQgY291bnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZChUb2tlbihmaWVsZFR5cGUsIGNvdW50KSk7CisgICAg
ICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRMaXRlcmFsKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQorICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQoVG9rZW4oc3Ry
aW5nKSk7CisgICAgICAgIH0KKworICAgICAgICBWZWN0b3I8VG9rZW4+IG1fdG9rZW5zOworICAg
IH07Cit9OworCitzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgY29u
c3QgRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbnMmIHRva2VucykKK3sKKyAgICByZXR1cm4gb3Mg
PDwgdG9rZW5zLnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCk7Cit9CisKK1RFU1RfRihEYXRlVGlt
ZUZvcm1hdFRlc3QsIENvbW1vblBhdHRlcm4pCit7CisgICAgRVhQRUNUX0VRKFRva2VucygpLCBw
YXJzZSgiIikpOworCisgICAgRVhQRUNUX0VRKAorICAgICAgICBUb2tlbnMoCisgICAgICAgICAg
ICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhciwgNCksIFRva2VuKCItIiksCisg
ICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGgsIDIpLCBUb2tl
bigiLSIpLAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9m
TW9udGgsIDIpKSwKKyAgICAgICAgcGFyc2UoInl5eXktTU0tZGQiKSk7CisKKyAgICBFWFBFQ1Rf
RVEoCisgICAgICAgIFRva2VucygKKyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGVIb3VyMjQsIDIpLCBUb2tlbigiOiIpLAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZU1pbnV0ZSwgMiksIFRva2VuKCI6IiksCisgICAgICAgICAgICBU
b2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlU2Vjb25kLCAyKSksCisgICAgICAgIHBhcnNl
KCJrazptbTpzcyIpKTsKKworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgVG9rZW5zKAorICAgICAg
ICAgICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMiksIFRva2VuKCI6Iiks
CisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWludXRlKSwgVG9r
ZW4oIiAiKSwKKyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJp
b2QpKSwKKyAgICAgICAgcGFyc2UoImg6bSBhIikpOworCisgICAgRVhQRUNUX0VRKAorICAgICAg
ICBUb2tlbnMoCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVh
ciksIFRva2VuKCJOZW4gIiksCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlTW9udGgpLCBUb2tlbigiR2V0c3UgIiksCisgICAgICAgICAgICBUb2tlbihEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aCksIFRva2VuKCJOaWNoaSIpKSwKKyAgICAgICAg
cGFyc2UoInknTmVuJyBNJ0dldHN1JyBkJ05pY2hpJyIpKTsKK30KKworVEVTVF9GKERhdGVUaW1l
Rm9ybWF0VGVzdCwgTWlzc2luZ0Nsb3NpbmdRdW90ZSkKK3sKKyAgICBFWFBFQ1RfRVEoVG9rZW5z
KCIqZmFpbGVkKiIpLCBwYXJzZSgiJ2ZvbyIpKTsKKyAgICBFWFBFQ1RfRVEoVG9rZW5zKCIqZmFp
bGVkKiIpLCBwYXJzZSgiZm8nbyIpKTsKKyAgICBFWFBFQ1RfRVEoVG9rZW5zKCIqZmFpbGVkKiIp
LCBwYXJzZSgiZm9vJyIpKTsKK30KKworVEVTVF9GKERhdGVUaW1lRm9ybWF0VGVzdCwgUXVvdGUp
Cit7CisgICAgRVhQRUNUX0VRKFRva2VucygiRm9vQmFyIiksIHBhcnNlKCInRm9vQmFyJyIpKTsK
KyAgICBFWFBFQ1RfRVEoVG9rZW5zKCInIiksIHBhcnNlKCInJyIpKTsKKyAgICBFWFBFQ1RfRVEo
VG9rZW5zKCInLSciKSwgcGFyc2UoIicnLScnIikpOworICAgIEVYUEVDVF9FUShUb2tlbnMoIkZv
bydCYXIiKSwgcGFyc2UoIidGb28nJ0JhciciKSk7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBU
b2tlbnMoVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUVyYSksIFRva2VuKCIncyIpKSwK
KyAgICAgICAgcGFyc2UoIkcnJydzJyIpKTsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFRva2Vu
cyhUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRXJhKSwgVG9rZW4oIiciKSwgVG9rZW4o
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29uZCkpLAorICAgICAgICBwYXJzZSgiRycncyIp
KTsKK30KKworVEVTVF9GKERhdGVUaW1lRm9ybWF0VGVzdCwgU2luZ2xlTG93ZXJDYXNlQ2hhcmFj
dGVyKQoreworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwg
c2luZ2xlKCdiJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTG9j
YWxEYXlPZldlZWtTdGFuZEFsb24sIHNpbmdsZSgnYycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mTW9udGgsIHNpbmdsZSgnZCcpKTsKKyAgICBFWFBFQ1Rf
RVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxvY2FsRGF5T2ZXZWVrLCBzaW5nbGUoJ2UnKSk7
CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb2RpZmllZEp1bGlhbkRh
eSwgc2luZ2xlKCdnJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SG91cjEyLCBzaW5nbGUoJ2gnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVIb3VyMjQsIHNpbmdsZSgnaycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZU1pbnV0ZSwgc2luZ2xlKCdtJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlUXVhdGVyU3RhbmRBbG9uZSwgc2luZ2xlKCdxJykpOworICAgIEVYUEVD
VF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlU2Vjb25kLCBzaW5nbGUoJ3MnKSk7CisgICAg
RVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVFeHRlbmRlZFllYXIsIHNpbmdsZSgn
dScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU5vbkxvY2F0aW9u
Wm9uZSwgc2luZ2xlKCd2JykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlV2Vla09mTW9udGgsIHNpbmdsZSgndycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZVllYXIsIHNpbmdsZSgneScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZVpvbmUsIHNpbmdsZSgneicpKTsKK30KKworVEVTVF9GKERhdGVUaW1l
Rm9ybWF0VGVzdCwgU2luZ2xlTG93ZXJDYXNlSW52YWxpZCkKK3sKKyAgICBFWFBFQ1RfRVEoRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVBlcmlvZCwgc2luZ2xlKCdhJykpOworICAgIEVYUEVDVF9F
UShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdmJykpOworICAgIEVY
UEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdpJykpOwor
ICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdq
JykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2lu
Z2xlKCdsJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxp
ZCwgc2luZ2xlKCduJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SW52YWxpZCwgc2luZ2xlKCdvJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlSW52YWxpZCwgc2luZ2xlKCdwJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdyJykpOworICAgIEVYUEVDVF9FUShEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCd0JykpOworICAgIEVYUEVDVF9FUShE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCd4JykpOworfQorCitURVNU
X0YoRGF0ZVRpbWVGb3JtYXRUZXN0LCBTaW5nbGVVcHBlckNhc2VDaGFyYWN0ZXIpCit7CisgICAg
RVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaWxsaXNlY29uZHNJbkRheSwgc2lu
Z2xlKCdBJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZZ
ZWFyLCBzaW5nbGUoJ0QnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVEYXlPZldlZWssIHNpbmdsZSgnRScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZURheU9mV2Vla0luTW9udGgsIHNpbmdsZSgnRicpKTsKKyAgICBFWFBFQ1RfRVEo
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUVyYSwgc2luZ2xlKCdHJykpOworICAgIEVYUEVDVF9F
UShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjIzLCBzaW5nbGUoJ0gnKSk7CisgICAgRVhQ
RUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTEsIHNpbmdsZSgnSycpKTsKKyAg
ICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9uZSwgc2lu
Z2xlKCdMJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGgs
IHNpbmdsZSgnTScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVF1
YXRlciwgc2luZ2xlKCdRJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlRnJhY3Rpb25hbFNlY29uZCwgc2luZ2xlKCdTJykpOworICAgIEVYUEVDVF9FUShEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlV2Vla09mWWVhciwgc2luZ2xlKCdXJykpOworICAgIEVYUEVDVF9F
UShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhck9mV2Vla09mWWVhciwgc2luZ2xlKCdZJykp
OworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUkZDODIyWm9uZSwgc2lu
Z2xlKCdaJykpOworfQorCitURVNUX0YoRGF0ZVRpbWVGb3JtYXRUZXN0LCBTaW5nbGVVcHBlckNh
c2VJbnZhbGlkKQoreworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52
YWxpZCwgc2luZ2xlKCdCJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSW52YWxpZCwgc2luZ2xlKCdDJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdJJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdKJykpOworICAgIEVYUEVDVF9FUShEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdOJykpOworICAgIEVYUEVDVF9F
UShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdPJykpOworICAgIEVY
UEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdQJykpOwor
ICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdS
JykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2lu
Z2xlKCdUJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxp
ZCwgc2luZ2xlKCdVJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SW52YWxpZCwgc2luZ2xlKCdWJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlSW52YWxpZCwgc2luZ2xlKCdYJykpOworfQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150090</attachid>
            <date>2012-06-28 23:26:34 -0700</date>
            <delta_ts>2012-06-29 00:11:03 -0700</delta_ts>
            <desc>Patch 5</desc>
            <filename>bug-89963-20120629152633.patch</filename>
            <type>text/plain</type>
            <size>37001</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ5MGNkMTUxYWFjNDEz
Zjc2MDY4ZWFhNjRlNzcxMDY5ZDlhNTIzNy4uZGEyNmY3YmI0OTVmMWVhMmRlY2IyYjI1ZWZiYmU2
YjBmOWI2ODgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA2LTI4ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1BsYXRmb3JtXSBJ
bXBsZW1lbnQgRGF0ZSBUaW1lIGZvcm1hdCBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFVuaWNvZGUgVFIz
NSBMRE1MIGRhdGUgdGltZSBmb3JtYXQgcGFyc2VyIGZvcgorICAgICAgICBpbnB1dCB0eXBlICJ0
aW1lIiBpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykgaXMgdHJ1ZS4K
KworICAgICAgICBUZXN0OiBXZWJLaXQvY2hyb21pdW0vdGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0
LmNwcAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERhdGVUaW1lRm9ybWF0LmNw
cAorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIERhdGVUaW1lRm9ybWF0Lntj
cHAsaH0KKyAgICAgICAgKiBUYXJnZXQucHJpOiBkaXR0bworICAgICAgICAqIFdlYkNvcmUuZ3lw
aTogZGl0dG8KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogZGl0dG8K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9kdWN0LnBieHByb2o6IGRpdHRvCisgICAg
ICAgICogcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6bWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZvcm1hdDo6RGF0ZVRpbWVGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGb3JtYXQ6Om1hcENoYXJhY3RlclRvRmllbGRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRm9ybWF0OjpwYXJzZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9EYXRl
VGltZUZvcm1hdC5oOiBBZGRlZC4KKyAgICAgICAgKERhdGVUaW1lRm9ybWF0KToKKyAgICAgICAg
KFRva2VuSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdDo6VG9rZW5I
YW5kbGVyOjp+VG9rZW5IYW5kbGVyKToKKwogMjAxMi0wNi0yOCAgRWxsaW90dCBTcHJlaG4gIDxl
c3ByZWhuQGdtYWlsLmNvbT4KIAogICAgICAgICBmcmFtZWJvcmRlcj0ibm8iIG9uIGZyYW1lc2V0
IGlzIGlnbm9yZWQgaWYgYm9yZGVyIGF0dHJpYnV0ZSBzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggODg2MTM5NTdiMmM0NjlmY2Y4OGExNjczMDQ5ZDE0YzA2NWY3MGJhMC4uNTAzOWI0
MzQ3ZGE3NGJmZDkwYmYyM2ExNzY1M2U3ZDgxNTVlMWQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0wNi0yOCAgWW9zaGlmdW1pIElub3VlICA8eW9z
aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtQbGF0Zm9ybV0gSW1wbGVtZW50IERhdGUgVGlt
ZSBmb3JtYXQgcGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04OTk2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiB1bml0IHRlc3QgZm9yIGRhdGUgdGltZSBmb3JtYXQg
cGFyc2VyIGlmCisgICAgICAgIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERT
KSBpcyB0cnVlLgorCisgICAgICAgICogdGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0LmNwcDogQWRk
ZWQuCisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3QpOgorICAgICAgICAoVG9rZW4pOgorICAg
ICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbjo6VG9rZW4pOgorICAgICAgICAoRGF0ZVRp
bWVGb3JtYXRUZXN0OjpUb2tlbjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChEYXRlVGltZUZvcm1h
dFRlc3Q6OlRva2VuOjp0b1N0cmluZyk6CisgICAgICAgIChUb2tlbnMpOgorICAgICAgICAoRGF0
ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbnM6OlRva2Vucyk6CisgICAgICAgIChEYXRlVGltZUZvcm1h
dFRlc3Q6OlRva2Vuczo6b3BlcmF0b3I9PSk6CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6
OlRva2Vuczo6dG9TdHJpbmcpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpwYXJzZSk6
CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6OnNpbmdsZSk6CisgICAgICAgIChUb2tlbkhh
bmRsZXIpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbkhhbmRsZXI6On5Ub2tl
bkhhbmRsZXIpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbkhhbmRsZXI6OmZp
ZWxkVHlwZSk6CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6OlRva2VuSGFuZGxlcjo6dG9r
ZW5zKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5kbGVyOjp2aXNpdEZp
ZWxkKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5kbGVyOjp2aXNpdExp
dGVyYWwpOgorICAgICAgICAob3BlcmF0b3I8PCk6CisgICAgICAgIChURVNUX0YpOgorCiAyMDEy
LTA2LTI4ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5k
ZXhlZERCOiBJbXBsZW1lbnQgSURCVHJhbnNhY3Rpb24gaW50ZXJuYWwgYWN0aXZlIGZsYWcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNmQzZGE3ZjhjMjRiNDYyN2M1ZjEyMzM5OThkZjM3MGU1MTM0
NDNmNy4uZTVjMjc0M2VjNzk1NDUxMzNjODkxOTdlMWNlMDU2MGI3NzRiYzAwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTEyOTUsNiArMTI5NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKIAog
ICAgIHBsYXRmb3JtL3RleHQvQmFzZTY0LmNwcAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRl
eHQuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAKICAgICBwbGF0Zm9y
bS90ZXh0L0h5cGhlbmF0aW9uLmNwcAogICAgIHBsYXRmb3JtL3RleHQvTGluZUVuZGluZy5jcHAK
ICAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNWVjMmVjMTU1NmY0NGYyNmYxOWQxOWRmMTcz
YmM3N2U0M2YyYzhlLi45MTBhZTVkZjMwYzE5OWIyMDA5YzhjYmY1ZmRlNDVjNWI1MjdiOTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM2NzgsNiArMzY3OCw4IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSdW5MaXN0LmggXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvSHlwaGVuYXRpb24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0h5
cGhlbmF0aW9uLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggN2I5NmI3NjI0MzA4OTg4YmU0NTA2YmFmNWRl
MzAyYWYyMWJkMDRkYy4uYzUyNGU3YWQ4MTI0OTgwMTlkMTEzYmU2ZDVmMjIyYTJkODU5ZTExOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCkBAIC0xMDc1LDYgKzEwNzUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0
Zm9ybS9BcmVuYS5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvQmFzZTY0LmNwcCBcCiAgICAgcGxh
dGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHAgXAorICAgIHBsYXRmb3JtL3RleHQvRGF0ZVRpbWVG
b3JtYXQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcCBcCiAgICAgcGxh
dGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcCBcCiAgICAgcGxhdGZv
cm0vdGV4dC9Mb2NhbGl6ZWREYXRlTm9uZS5jcHAgXApAQCAtMjQxMSw2ICsyNDEyLDcgQEAgSEVB
REVSUyArPSBcCiAgICAgcGxhdGZvcm0vc3FsL1NRTFZhbHVlLmggXAogICAgIHBsYXRmb3JtL3Rl
eHQvQmFzZTY0LmggXAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaCBcCisgICAgcGxh
dGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0RlY29kZUVz
Y2FwZVNlcXVlbmNlcy5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmggXAogICAg
IHBsYXRmb3JtL3RleHQvUXVvdGVkUHJpbnRhYmxlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDdm
NmUyMmRkNTQwMGRmYWEwYmNjYTE5OWE4OGY4OTc5ZWEzM2FhMjMuLjc1MGNkYjRjMmE1NDNiM2U3
YzFkYmQ2MThmYjZjYmNkZDBkMTRiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQ5Myw2ICs0OTMs
NyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvQmlkaVJ1bkxpc3QuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS90ZXh0L0JpZGlSZXNvbHZlci5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0RhdGVU
aW1lRm9ybWF0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2Vx
dWVuY2VzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTGluZUJyZWFrSXRlcmF0b3JQ
b29sSUNVLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTGluZUVuZGluZy5oJywKQEAg
LTQzNzgsNiArNDM3OSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9BdG9taWNTdHJp
bmdLZXllZE1SVUNhY2hlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvQmFzZTY0LmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHAnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4
dC9IeXBoZW5hdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggZDEyZGI1NjZjOGMzOTU5NmZkMGYxMjU0OGUwNzExNTY4NmMxMjdlOS4uNDljYTA0OGM1NGVi
NmYzOWNmZjVmMWQ1ZDRlY2QzYWI2YzEzMDY2YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTMzMTk4LDYgKzMzMTk4LDE0IEBACiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0
ZXh0XERhdGVUaW1lRm9ybWF0LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcRGF0ZVRpbWVGb3JtYXQuaCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXHRleHRcRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMmRkMzU4YzY4MjJiN2M5OGRkZGYzNjdiMTAxNjVjODE4ZDI4ZDZmNy4uMDdmZjNmMDhiMGRl
ZTRkYTM5OTdkOTdjYzYwMTBhYzU1ODhmMmY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE4OSw2ICsxMTg5LDggQEAKIAkJ
NDUwOTlDNDExMzcwQTc4MDAwNThENTEzIC8qIEljb25VUkwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUwOTlDNDAxMzcwQTc4MDAwNThENTEzIC8q
IEljb25VUkwuY3BwICovOyB9OwogCQk0NTBDRUJGMDE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxh
YmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NTBDRUJFRTE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5jcHAgKi87
IH07CiAJCTQ1MENFQkYxMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NTBDRUJFRjE1MDcz
QkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQ1M0VCNjM2MTU5QzU3MDQwMDAwMUJCNyAvKiBE
YXRlVGltZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NTNFQjYzNDE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuY3BwICov
OyB9OworCQk0NTNFQjYzNzE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1M0VCNjM1MTU5QzU3
MDQwMDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ1OEZFNDA5MTU4OURGMEIwMDU2MDlFNiAvKiBSZW5k
ZXJTZWFyY2hGaWVsZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NThGRTQwNzE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQuY3Bw
ICovOyB9OwogCQk0NThGRTQwQTE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1OEZFNDA4
MTU4OURGMEIwMDU2MDlFNiAvKiBSZW5kZXJTZWFyY2hGaWVsZC5oICovOyB9OwogCQk0NUJBQzJC
MDEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDVCQUMyQUYxMzYwQkJBQjAwNURBMjU4IC8qIEljb25VUkwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODIz
OSw2ICs4MjQxLDggQEAKIAkJNDUwOTlDNDAxMzcwQTc4MDAwNThENTEzIC8qIEljb25VUkwuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvblVSTC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MENFQkVFMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJl
bGFibGVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExh
YmVsYWJsZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTBDRUJF
RjE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMYWJlbGFibGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQ1M0VCNjM0MTU5QzU3MDQwMDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZUZvcm1hdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ1M0VCNjM1MTU5QzU3MDQwMDAwMUJCNyAv
KiBEYXRlVGltZUZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRl
VGltZUZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NThGRTQwNzE1ODlE
RjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU2VhcmNoRmllbGQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NThGRTQwODE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmll
bGQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU2VhcmNoRmllbGQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVCQUMyQUYxMzYwQkJBQjAwNURBMjU4
IC8qIEljb25VUkwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvblVSTC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk3MTUsNiArMTk3MTksOCBAQAogCQkJ
CUIyQzNEOUYzMEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpQ29udGV4dC5oICovLAogCQkJCUIyQzNE
OUY0MEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCAqLywKIAkJCQlBOEM0MDI5MjEz
NDhCMjIyMDA2M0YxRTUgLyogQmlkaVJ1bkxpc3QuaCAqLywKKwkJCQk0NTNFQjYzNDE1OUM1NzA0
MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuY3BwICovLAorCQkJCTQ1M0VCNjM1MTU5QzU3MDQw
MDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5oICovLAogCQkJCUNFQ0NGQzNBMTQxOTczRDUwMDJB
MEFDMSAvKiBEZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCAqLywKIAkJCQkzNzVDRDIzMTExOUQ0M0M4
MDBBMkE4NTkgLyogSHlwaGVuYXRpb24uaCAqLywKIAkJCQlBNUFCQjc4NjEzQjkwNEJDMDBGMTk3
RTMgLyogTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmggKi8sCkBAIC0yMjI2Miw2ICsyMjI2OCw3
IEBACiAJCQkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTk3Q0NFQjEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0YVZp
ZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NzMyQjBCMTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRl
Q29tcG9uZW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDUzRUI2MzcxNTlDNTcwNDAwMDAxQkI3
IC8qIERhdGVUaW1lRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCNjEyNTFGMTJE
MDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQjgx
MjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNTVCM0RCQTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTc3Niw2ICsyNTc4Myw3IEBACiAJCQkJMkU5N0NDRUExMjkzOUNC
ODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1NzMyQjBBMTM2
QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NTVCM0RCNTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk0NTNFQjYzNjE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQjcxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lSW5w
dXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREI5MTI1MUYxMkQwMDNFRjI2OSAv
KiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ1RkVBNUNG
MTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YWRjZTEyNjFjMjJiM2NlMDU0NzBlNDBmNTIyYjFlYTY2NmE0MDkxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAKQEAgLTAs
MCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisg
KiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVM
VElQTEVfRklFTERTKQorI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBj
b25zdCBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGxvd2VyQ2FzZVRvRmllbGRUeXBlTWFwWzI2
XSA9IHsKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kLCAvLyBhCisgICAgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIGIKKyAgICBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlTG9jYWxEYXlPZldlZWtTdGFuZEFsb24sIC8vIGMKKyAgICBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlRGF5T2ZNb250aCwgLy8gZAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVMb2NhbERheU9mV2VlaywgLy8gZQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZh
bGlkLCAvLyBmCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vZGlmaWVkSnVsaWFuRGF5
LCAvLyBnCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMiwgLy8gaAorICAgIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBpCisgICAgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUludmFsaWQsIC8vIGoKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91
cjI0LCAvLyBrCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIGwKKyAg
ICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWludXRlLCAvLyBtCisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIG4KKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SW52YWxpZCwgLy8gbworICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBw
CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVF1YXRlclN0YW5kQWxvbmUsIC8vIHEKKyAg
ICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gcgorICAgIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVTZWNvbmQsIC8vIHMKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SW52YWxpZCwgLy8gdAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVFeHRlbmRlZFllYXIs
IC8vIHUKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTm9uTG9jYXRpb25ab25lLCAvLyB2
CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVdlZWtPZk1vbnRoLCAvLyB3CisgICAgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIHgKKyAgICBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlWWVhciwgLy8geQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVab25lLCAv
LyB6Cit9OworCitzdGF0aWMgY29uc3QgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSB1cHBlckNh
c2VUb0ZpZWxkVHlwZU1hcFsyNl0gPSB7CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1p
bGxpc2Vjb25kc0luRGF5LCAvLyBBCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFs
aWQsIC8vIEIKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gQworICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZlllYXIsIC8vIEQKKyAgICBEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlRGF5T2ZXZWVrLCAvLyBFCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZURheU9mV2Vla0luTW9udGgsIC8vIEYKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
RXJhLCAvLyBHCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyMywgLy8gSAorICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBJCisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIEoKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SG91cjExLCAvLyBLCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9u
ZSwgLy8gTAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCwgLy8gTQorICAgIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBOCisgICAgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUludmFsaWQsIC8vIE8KKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52
YWxpZCwgLy8gUAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVRdWF0ZXIsIC8vIFEKKyAg
ICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gUgorICAgIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVGcmFjdGlvbmFsU2Vjb25kLCAvLyBTCisgICAgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUludmFsaWQsIC8vIFQKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52
YWxpZCwgLy8gVQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBWCisg
ICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVdlZWtPZlllYXIsIC8vIFcKKyAgICBEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gWAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVZZWFyT2ZXZWVrT2ZZZWFyLCAvLyBZCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZVJGQzgyMlpvbmUsIC8vIFoKK307CisKK3N0YXRpYyBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
IG1hcENoYXJhY3RlclRvRmllbGRUeXBlKGNvbnN0IFVDaGFyIGNoKQoreworICAgIGlmIChpc0FT
Q0lJVXBwZXIoY2gpKQorICAgICAgICByZXR1cm4gdXBwZXJDYXNlVG9GaWVsZFR5cGVNYXBbY2gg
LSAnQSddOworCisgICAgaWYgKGlzQVNDSUlMb3dlcihjaCkpCisgICAgICAgIHJldHVybiBsb3dl
ckNhc2VUb0ZpZWxkVHlwZU1hcFtjaCAtICdhJ107CisKKyAgICByZXR1cm4gRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUxpdGVyYWw7Cit9CisKK2Jvb2wgRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGNv
bnN0IFN0cmluZyYgc291cmNlLCBUb2tlbkhhbmRsZXImIHRva2VuSGFuZGxlcikKK3sKKyAgICBl
bnVtIFN0YXRlIHsKKyAgICAgICAgU3RhdGVJblF1b3RlLAorICAgICAgICBTdGF0ZUluUXVvdGVR
dW90ZSwKKyAgICAgICAgU3RhdGVMaXRlcmFsLAorICAgICAgICBTdGF0ZVF1b3RlLAorICAgICAg
ICBTdGF0ZVN5bWJvbCwKKyAgICB9IHN0YXRlID0gU3RhdGVMaXRlcmFsOworCisgICAgRmllbGRU
eXBlIGZpZWxkVHlwZSA9IEZpZWxkVHlwZUxpdGVyYWw7CisgICAgU3RyaW5nQnVpbGRlciBsaXRl
cmFsQnVmZmVyOworICAgIGludCBmaWVsZENvdW50ZXIgPSAwOworCisgICAgZm9yICh1bnNpZ25l
ZCBpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNvdXJjZS5sZW5ndGgoKTsgKytpbmRleCkgeworICAg
ICAgICBjb25zdCBVQ2hhciBjaCA9IHNvdXJjZVtpbmRleF07CisgICAgICAgIHN3aXRjaCAoc3Rh
dGUpIHsKKyAgICAgICAgY2FzZSBTdGF0ZUluUXVvdGU6CisgICAgICAgICAgICBpZiAoY2ggPT0g
J1wnJykgeworICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGVJblF1b3RlUXVvdGU7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpdGVyYWxC
dWZmZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgU3Rh
dGVJblF1b3RlUXVvdGU6CisgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAg
ICAgICAgIGxpdGVyYWxCdWZmZXIuYXBwZW5kKCdcJycpOworICAgICAgICAgICAgICAgIHN0YXRl
ID0gU3RhdGVJblF1b3RlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmaWVsZFR5cGUgPSBtYXBDaGFyYWN0ZXJUb0ZpZWxkVHlwZShjaCk7Cisg
ICAgICAgICAgICBpZiAoZmllbGRUeXBlID09IEZpZWxkVHlwZUludmFsaWQpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpZiAoZmllbGRUeXBlID09IEZpZWxk
VHlwZUxpdGVyYWwpIHsKKyAgICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZChjaCk7
CisgICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZUxpdGVyYWw7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxl
bmd0aCgpKSB7CisgICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRl
cmFsQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGxpdGVyYWxCdWZmZXIuY2xl
YXIoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZmllbGRDb3VudGVyID0gMTsKKyAg
ICAgICAgICAgIHN0YXRlID0gU3RhdGVTeW1ib2w7CisgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICBjYXNlIFN0YXRlTGl0ZXJhbDoKKyAgICAgICAgICAgIGlmIChjaCA9PSAnXCcnKSB7Cisg
ICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZVF1b3RlOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmaWVsZFR5cGUgPSBtYXBDaGFyYWN0ZXJU
b0ZpZWxkVHlwZShjaCk7CisgICAgICAgICAgICBpZiAoZmllbGRUeXBlID09IEZpZWxkVHlwZUlu
dmFsaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpZiAo
ZmllbGRUeXBlID09IEZpZWxkVHlwZUxpdGVyYWwpIHsKKyAgICAgICAgICAgICAgICBsaXRlcmFs
QnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKSB7CisgICAgICAgICAg
ICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkp
OworICAgICAgICAgICAgICAgIGxpdGVyYWxCdWZmZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZmllbGRDb3VudGVyID0gMTsKKyAgICAgICAgICAgIHN0YXRlID0gU3Rh
dGVTeW1ib2w7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFN0YXRlUXVvdGU6
CisgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICBzdGF0
ZSA9IGNoID09ICdcJycgPyBTdGF0ZUxpdGVyYWwgOiBTdGF0ZUluUXVvdGU7CisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICBjYXNlIFN0YXRlU3ltYm9sOiB7CisgICAgICAgICAgICBBU1NF
UlQoZmllbGRUeXBlICE9IEZpZWxkVHlwZUludmFsaWQpOworICAgICAgICAgICAgQVNTRVJUKGZp
ZWxkVHlwZSAhPSBGaWVsZFR5cGVMaXRlcmFsKTsKKyAgICAgICAgICAgIEFTU0VSVChsaXRlcmFs
QnVmZmVyLmlzRW1wdHkoKSk7CisKKyAgICAgICAgICAgIEZpZWxkVHlwZSBmaWVsZFR5cGUyID0g
bWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGUoY2gpOworICAgICAgICAgICAgaWYgKGZpZWxkVHlwZTIg
PT0gRmllbGRUeXBlSW52YWxpZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgICAgIGlmIChmaWVsZFR5cGUgPT0gZmllbGRUeXBlMikgeworICAgICAgICAgICAgICAg
ICsrZmllbGRDb3VudGVyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRGaWVsZChmaWVsZFR5cGUsIGZpZWxkQ291
bnRlcik7CisKKyAgICAgICAgICAgIGlmIChmaWVsZFR5cGUyID09IEZpZWxkVHlwZUxpdGVyYWwp
IHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykKKyAgICAgICAgICAgICAgICAgICAg
c3RhdGUgPSBTdGF0ZVF1b3RlOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgIHN0
YXRlID0gU3RhdGVMaXRlcmFsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZmllbGRDb3VudGVyID0gMTsKKyAg
ICAgICAgICAgIGZpZWxkVHlwZSA9IGZpZWxkVHlwZTI7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBMT0dfRVJST1IoIkludmxp
YWQgc3RhdGU9JWQiLCBzdGF0ZSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEFTU0VS
VChmaWVsZFR5cGUgIT0gRmllbGRUeXBlSW52YWxpZCk7CisKKyAgICBzd2l0Y2ggKHN0YXRlKSB7
CisgICAgY2FzZSBTdGF0ZUxpdGVyYWw6CisgICAgY2FzZSBTdGF0ZUluUXVvdGVRdW90ZToKKyAg
ICAgICAgaWYgKGxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpCisgICAgICAgICAgICB0b2tlbkhhbmRs
ZXIudmlzaXRMaXRlcmFsKGxpdGVyYWxCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgY2FzZSBTdGF0ZVF1b3RlOgorICAgIGNhc2UgU3RhdGVJblF1b3RlOgor
ICAgICAgICBpZiAobGl0ZXJhbEJ1ZmZlci5sZW5ndGgoKSkKKyAgICAgICAgICAgIHRva2VuSGFu
ZGxlci52aXNpdExpdGVyYWwobGl0ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgY2FzZSBTdGF0ZVN5bWJvbDoKKyAgICAgICAgQVNTRVJUKGZpZWxk
VHlwZSAhPSBGaWVsZFR5cGVMaXRlcmFsKTsKKyAgICAgICAgQVNTRVJUKCFsaXRlcmFsQnVmZmVy
Lmxlbmd0aCgpKTsKKyAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0RmllbGQoZmllbGRUeXBlLCBm
aWVsZENvdW50ZXIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGRlZmF1bHQ6CisgICAg
ICAgIExPR19FUlJPUigiSW52bGlhZCBzdGF0ZT0lZCIsIHN0YXRlKTsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0RhdGVUaW1lRm9ybWF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM3NTZiOGJhOGE4YTY1OWZkZjFhYjZi
MjVmZTAyYWFmOTBkNWZiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor
ICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QK
KyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorICogREFNQUdFLgor
ICovCisKKyNpZm5kZWYgRGF0ZVRpbWVGb3JtYXRfaAorI2RlZmluZSBEYXRlVGltZUZvcm1hdF9o
CisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBEYXRl
VGltZUZvcm1hdCBwYXJzZXMgZGF0ZSB0aW1lIGZvcm1hdCBkZWZpbmVkIGluIFVuaWNvZGUgVGVj
aG5pY2FsCisvLyBzdGFuZGFyZCAzNSwgTG9jYWxlIERhdGEgTWFya3VwIExhbmd1YWdlIChMRE1M
KVsxXS4KKy8vIFsxXSBMRE1MIGh0dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvdHIzNS02
Lmh0bWwjRGF0ZV9Gb3JtYXRfUGF0dGVybnMKK2NsYXNzIERhdGVUaW1lRm9ybWF0IHsKK3B1Ymxp
YzoKKyAgICBlbnVtIEZpZWxkVHlwZSB7CisgICAgICAgIEZpZWxkVHlwZUludmFsaWQsCisgICAg
ICAgIEZpZWxkVHlwZUxpdGVyYWwsCisKKyAgICAgICAgLy8gRXJhOiBBRAorICAgICAgICBGaWVs
ZFR5cGVFcmEgPSAnRycsCisKKyAgICAgICAgLy8gWWVhcjogMTk5NgorICAgICAgICBGaWVsZFR5
cGVZZWFyID0gJ3knLAorICAgICAgICBGaWVsZFR5cGVZZWFyT2ZXZWVrT2ZZZWFyID0gJ1knLAor
ICAgICAgICBGaWVsZFR5cGVFeHRlbmRlZFllYXIgPSAndScsCisKKyAgICAgICAgLy8gUXVhdGVy
OiBRMgorICAgICAgICBGaWVsZFR5cGVRdWF0ZXIgPSAnUScsCisgICAgICAgIEZpZWxkVHlwZVF1
YXRlclN0YW5kQWxvbmUgPSAncScsCisKKyAgICAgICAgLy8gTW9udGg6IFNlcHRlbWJlcgorICAg
ICAgICBGaWVsZFR5cGVNb250aCA9ICdNJywKKyAgICAgICAgRmllbGRUeXBlTW9udGhTdGFuZEFs
b25lID0gJ0wnLAorCisgICAgICAgIC8vIFdlZWs6IDQyCisgICAgICAgIEZpZWxkVHlwZVdlZWtP
ZlllYXIgPSAnVycsCisgICAgICAgIEZpZWxkVHlwZVdlZWtPZk1vbnRoID0gJ3cnLAorCisgICAg
ICAgIC8vIERheTogMTIKKyAgICAgICAgRmllbGRUeXBlRGF5T2ZNb250aCA9ICdkJywKKyAgICAg
ICAgRmllbGRUeXBlRGF5T2ZZZWFyID0gJ0QnLAorICAgICAgICBGaWVsZFR5cGVEYXlPZldlZWtJ
bk1vbnRoID0gJ0YnLAorICAgICAgICBGaWVsZFR5cGVNb2RpZmllZEp1bGlhbkRheSA9ICdnJywK
KworICAgICAgICAvLyBXZWVrIERheTogVHVlc2RheQorICAgICAgICBGaWVsZFR5cGVEYXlPZldl
ZWsgPSAnRScsCisgICAgICAgIEZpZWxkVHlwZUxvY2FsRGF5T2ZXZWVrID0gJ2UnLAorICAgICAg
ICBGaWVsZFR5cGVMb2NhbERheU9mV2Vla1N0YW5kQWxvbiA9ICdjJywKKworICAgICAgICAvLyBQ
ZXJpb2Q6IEFNIG9yIFBNCisgICAgICAgIEZpZWxkVHlwZVBlcmlvZCA9ICdhJywKKworICAgICAg
ICAvLyBIb3VyOiA3CisgICAgICAgIEZpZWxkVHlwZUhvdXIxMiA9ICdoJywKKyAgICAgICAgRmll
bGRUeXBlSG91cjIzID0gJ0gnLAorICAgICAgICBGaWVsZFR5cGVIb3VyMTEgPSAnSycsCisgICAg
ICAgIEZpZWxkVHlwZUhvdXIyNCA9ICdrJywKKworICAgICAgICAvLyBNaW51dGU6IDU5CisgICAg
ICAgIEZpZWxkVHlwZU1pbnV0ZSA9ICdtJywKKworICAgICAgICAvLyBTZWNvbmQ6IDEyCisgICAg
ICAgIEZpZWxkVHlwZVNlY29uZCA9ICdzJywKKyAgICAgICAgRmllbGRUeXBlRnJhY3Rpb25hbFNl
Y29uZCA9ICdTJywKKyAgICAgICAgRmllbGRUeXBlTWlsbGlzZWNvbmRzSW5EYXkgPSAnQScsCisK
KyAgICAgICAgLy8gWm9uZTogUERUCisgICAgICAgIEZpZWxkVHlwZVpvbmUgPSAneicsCisgICAg
ICAgIEZpZWxkVHlwZVJGQzgyMlpvbmUgPSAnWicsCisgICAgICAgIEZpZWxkVHlwZU5vbkxvY2F0
aW9uWm9uZSA9ICd2JywKKyAgICB9OworCisgICAgY2xhc3MgVG9rZW5IYW5kbGVyIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIHZpcnR1YWwgflRva2VuSGFuZGxlcigpIHsgfQorICAgICAgICB2aXJ0
dWFsIHZvaWQgdmlzaXRGaWVsZChGaWVsZFR5cGUsIGludCkgPSAwOworICAgICAgICB2aXJ0dWFs
IHZvaWQgdmlzaXRMaXRlcmFsKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB9OworCisgICAgLy8g
UmV0dXJucyB0cnVlIGlmIHN1Y2NlZWRlZCwgZmFsc2UgaWYgZmFpbGVkLgorICAgIHN0YXRpYyBi
b29sIHBhcnNlKGNvbnN0IFN0cmluZyYsIFRva2VuSGFuZGxlciYpOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmIC8vIERhdGVUaW1lRm9ybWF0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4IGE4ZGQzYTYyNjUzNTA1MzcwMTUwYzY1ZWU4
ZGZjZTA5MTdlNzg0ZGQuLjI3YzM3YjY0NGE4OTk3NTViNzNkOGM0NmJiZWM2NTViZTYwM2M3OTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpAQCAtOTcsNiArOTcsNyBAQAogICAgICAg
ICAgICAgJ3Rlc3RzL0NDVGltZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvQ2xpcGJv
YXJkQ2hyb21pdW1UZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvQ29tcG9zaXRvckZha2VX
ZWJHcmFwaGljc0NvbnRleHQzRC5oJywKKyAgICAgICAgICAgICd0ZXN0cy9EYXRlVGltZUZvcm1h
dFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9EZWNpbWFsVGVzdC5jcHAnLAogICAgICAg
ICAgICAgJ3Rlc3RzL0RyYWdJbWFnZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9FdmVu
dExpc3RlbmVyVGVzdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9EYXRlVGltZUZvcm1hdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9EYXRlVGltZUZvcm1hdFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0NDBkMjAwYzViMjBhYzk5NDFh
M2Q2MzcxNTkxMmE2ZWFiYWE3YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0RhdGVUaW1lRm9ybWF0VGVzdC5jcHAKQEAgLTAsMCArMSwzMzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICog
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVG
b3JtYXQuaCIKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQor
I2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK2NsYXNzIERhdGVUaW1lRm9ybWF0VGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRl
c3QgeworcHVibGljOgorICAgIHR5cGVkZWYgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBGaWVs
ZFR5cGU7CisKKyAgICBzdHJ1Y3QgVG9rZW4geworICAgICAgICBTdHJpbmcgc3RyaW5nOworICAg
ICAgICBpbnQgY291bnQ7CisgICAgICAgIEZpZWxkVHlwZSBmaWVsZFR5cGU7CisKKyAgICAgICAg
VG9rZW4oRmllbGRUeXBlIGZpZWxkVHlwZSwgaW50IGNvdW50ID0gMSkKKyAgICAgICAgICAgIDog
Y291bnQoY291bnQpCisgICAgICAgICAgICAsIGZpZWxkVHlwZShmaWVsZFR5cGUpCisgICAgICAg
IHsKKyAgICAgICAgICAgIEFTU0VSVChmaWVsZFR5cGUgIT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZUxpdGVyYWwpOworICAgICAgICB9CisKKyAgICAgICAgVG9rZW4oY29uc3QgU3RyaW5nJiBz
dHJpbmcpCisgICAgICAgICAgICA6IHN0cmluZyhzdHJpbmcpCisgICAgICAgICAgICAsIGNvdW50
KDApCisgICAgICAgICAgICAsIGZpZWxkVHlwZShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTGl0
ZXJhbCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFRva2VuJiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZp
ZWxkVHlwZSA9PSBvdGhlci5maWVsZFR5cGUgJiYgY291bnQgPT0gb3RoZXIuY291bnQgJiYgc3Ry
aW5nID09IG90aGVyLnN0cmluZzsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyB0b1N0cmlu
ZygpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7Cisg
ICAgICAgICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkOgorICAgICAg
ICAgICAgICAgIHJldHVybiAiKmludmFsaWQqIjsKKyAgICAgICAgICAgIGNhc2UgRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUxpdGVyYWw6IHsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyInKTsKKyAgICAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZChzdHJpbmcpOworICAgICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCciJyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0
dXJuIFN0cmluZzo6Zm9ybWF0KCJUb2tlbiglZCwgJWQpIiwgZmllbGRUeXBlLCBjb3VudCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9OworCisgICAgY2xhc3MgVG9rZW5zIHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIFRva2VucygpIHsgfQorCisgICAgICAgIGV4cGxpY2l0IFRva2Vu
cyhjb25zdCBWZWN0b3I8VG9rZW4+IHRva2VucykKKyAgICAgICAgICAgIDogbV90b2tlbnModG9r
ZW5zKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBleHBsaWNpdCBUb2tlbnMoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVu
ZChUb2tlbihzdHJpbmcpKTsKKyAgICAgICAgfQorCisgICAgICAgIGV4cGxpY2l0IFRva2VucyhU
b2tlbiB0b2tlbjEpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tl
bjEpOworICAgICAgICB9CisKKyAgICAgICAgVG9rZW5zKFRva2VuIHRva2VuMSwgVG9rZW4gdG9r
ZW4yKQorICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4xKTsKKyAg
ICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjIpOworICAgICAgICB9CisKKyAgICAgICAg
VG9rZW5zKFRva2VuIHRva2VuMSwgVG9rZW4gdG9rZW4yLCBUb2tlbiB0b2tlbjMpCisgICAgICAg
IHsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjEpOworICAgICAgICAgICAgbV90
b2tlbnMuYXBwZW5kKHRva2VuMik7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4z
KTsKKyAgICAgICAgfQorCisgICAgICAgIFRva2VucyhUb2tlbiB0b2tlbjEsIFRva2VuIHRva2Vu
MiwgVG9rZW4gdG9rZW4zLCBUb2tlbiB0b2tlbjQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1f
dG9rZW5zLmFwcGVuZCh0b2tlbjEpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2Vu
Mik7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4zKTsKKyAgICAgICAgICAgIG1f
dG9rZW5zLmFwcGVuZCh0b2tlbjQpOworICAgICAgICB9CisKKyAgICAgICAgVG9rZW5zKFRva2Vu
IHRva2VuMSwgVG9rZW4gdG9rZW4yLCBUb2tlbiB0b2tlbjMsIFRva2VuIHRva2VuNCwgVG9rZW4g
dG9rZW41KQorICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4xKTsK
KyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjIpOworICAgICAgICAgICAgbV90b2tl
bnMuYXBwZW5kKHRva2VuMyk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW40KTsK
KyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjUpOworICAgICAgICB9CisKKyAgICAg
ICAgVG9rZW5zKFRva2VuIHRva2VuMSwgVG9rZW4gdG9rZW4yLCBUb2tlbiB0b2tlbjMsIFRva2Vu
IHRva2VuNCwgVG9rZW4gdG9rZW41LCBUb2tlbiB0b2tlbjYpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjEpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5k
KHRva2VuMik7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4zKTsKKyAgICAgICAg
ICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjQpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5k
KHRva2VuNSk7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW42KTsKKyAgICAgICAg
fQorCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBUb2tlbnMmIG90aGVyKSBjb25zdAor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV90b2tlbnMgPT0gb3RoZXIubV90b2tlbnM7
CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdAorICAgICAgICB7
CisgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgiVG9rZW5zKCIpOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7
IGluZGV4IDwgbV90b2tlbnMuc2l6ZSgpOyArK2luZGV4KSB7CisgICAgICAgICAgICAgICAgaWYg
KGluZGV4KQorICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCIpOworICAgICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG1fdG9rZW5zW2luZGV4XS50b1N0cmluZygpKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIpIik7CisgICAgICAgICAg
ICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBWZWN0b3I8VG9rZW4+IG1fdG9rZW5zOworICAgIH07CisKK3Byb3RlY3RlZDoKKyAg
ICBUb2tlbnMgcGFyc2UoY29uc3QgU3RyaW5nJiBmb3JtYXRTdHJpbmcpCisgICAgeworICAgICAg
ICBUb2tlbkhhbmRsZXIgaGFuZGxlcjsKKyAgICAgICAgaWYgKCFEYXRlVGltZUZvcm1hdDo6cGFy
c2UoZm9ybWF0U3RyaW5nLCBoYW5kbGVyKSkKKyAgICAgICAgICAgIHJldHVybiBUb2tlbnMoVG9r
ZW4oIipmYWlsZWQqIikpOworICAgICAgICByZXR1cm4gaGFuZGxlci50b2tlbnMoKTsKKyAgICB9
CisKKyAgICBGaWVsZFR5cGUgc2luZ2xlKGNvbnN0IGNoYXIgY2gpCisgICAgeworICAgICAgICBj
aGFyIGZvcm1hdFN0cmluZ1syXTsKKyAgICAgICAgZm9ybWF0U3RyaW5nWzBdID0gY2g7CisgICAg
ICAgIGZvcm1hdFN0cmluZ1sxXSA9IDA7CisgICAgICAgIFRva2VuSGFuZGxlciBoYW5kbGVyOwor
ICAgICAgICBpZiAoIURhdGVUaW1lRm9ybWF0OjpwYXJzZShmb3JtYXRTdHJpbmcsIGhhbmRsZXIp
KQorICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkOwor
ICAgICAgICByZXR1cm4gaGFuZGxlci5maWVsZFR5cGUoMCk7CisgICAgfQorCitwcml2YXRlOgor
ICAgIGNsYXNzIFRva2VuSGFuZGxlciA6IHB1YmxpYyBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5k
bGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgflRva2VuSGFuZGxlcigpIHsgfQor
CisgICAgICAgIEZpZWxkVHlwZSBmaWVsZFR5cGUoaW50IGluZGV4KSBjb25zdAorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gaW5kZXggPj0wICYmIGluZGV4IDwgc3RhdGljX2Nhc3Q8aW50
PihtX3Rva2Vucy5zaXplKCkpID8gbV90b2tlbnNbaW5kZXhdLmZpZWxkVHlwZSA6IERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkOworICAgICAgICB9CisKKyAgICAgICAgVG9rZW5zIHRv
a2VucygpIGNvbnN0IHsgcmV0dXJuIFRva2VucyhtX3Rva2Vucyk7IH0KKworICAgIHByaXZhdGU6
CisgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdEZpZWxkKEZpZWxkVHlwZSBmaWVsZFR5cGUsIGlu
dCBjb3VudCkKKyAgICAgICAgeworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKFRva2VuKGZp
ZWxkVHlwZSwgY291bnQpKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNp
dExpdGVyYWwoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1f
dG9rZW5zLmFwcGVuZChUb2tlbihzdHJpbmcpKTsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3Rv
cjxUb2tlbj4gbV90b2tlbnM7CisgICAgfTsKK307CisKK3N0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8
PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBEYXRlVGltZUZvcm1hdFRlc3Q6OlRva2VucyYgdG9r
ZW5zKQoreworICAgIHJldHVybiBvcyA8PCB0b2tlbnMudG9TdHJpbmcoKS5hc2NpaSgpLmRhdGEo
KTsKK30KKworVEVTVF9GKERhdGVUaW1lRm9ybWF0VGVzdCwgQ29tbW9uUGF0dGVybikKK3sKKyAg
ICBFWFBFQ1RfRVEoVG9rZW5zKCksIHBhcnNlKCIiKSk7CisKKyAgICBFWFBFQ1RfRVEoCisgICAg
ICAgIFRva2VucygKKyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVZ
ZWFyLCA0KSwgVG9rZW4oIi0iKSwKKyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGVNb250aCwgMiksIFRva2VuKCItIiksCisgICAgICAgICAgICBUb2tlbihEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aCwgMikpLAorICAgICAgICBwYXJzZSgieXl5eS1N
TS1kZCIpKTsKKworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgVG9rZW5zKAorICAgICAgICAgICAg
VG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyNCwgMiksIFRva2VuKCI6IiksCisg
ICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWludXRlLCAyKSwgVG9r
ZW4oIjoiKSwKKyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVTZWNv
bmQsIDIpKSwKKyAgICAgICAgcGFyc2UoImtrOm1tOnNzIikpOworCisgICAgRVhQRUNUX0VRKAor
ICAgICAgICBUb2tlbnMoCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSG91cjEyKSwgVG9rZW4oIjoiKSwKKyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVNaW51dGUpLCBUb2tlbigiICIpLAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZVBlcmlvZCkpLAorICAgICAgICBwYXJzZSgiaDptIGEiKSk7CisK
KyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFRva2VucygKKyAgICAgICAgICAgIFRva2VuKERhdGVU
aW1lRm9ybWF0OjpGaWVsZFR5cGVZZWFyKSwgVG9rZW4oIk5lbiAiKSwKKyAgICAgICAgICAgIFRv
a2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCksIFRva2VuKCJHZXRzdSAiKSwKKyAg
ICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZk1vbnRoKSwgVG9r
ZW4oIk5pY2hpIikpLAorICAgICAgICBwYXJzZSgieSdOZW4nIE0nR2V0c3UnIGQnTmljaGknIikp
OworfQorCitURVNUX0YoRGF0ZVRpbWVGb3JtYXRUZXN0LCBNaXNzaW5nQ2xvc2luZ1F1b3RlKQor
eworICAgIEVYUEVDVF9FUShUb2tlbnMoIipmYWlsZWQqIiksIHBhcnNlKCInZm9vIikpOworICAg
IEVYUEVDVF9FUShUb2tlbnMoIipmYWlsZWQqIiksIHBhcnNlKCJmbydvIikpOworICAgIEVYUEVD
VF9FUShUb2tlbnMoIipmYWlsZWQqIiksIHBhcnNlKCJmb28nIikpOworfQorCitURVNUX0YoRGF0
ZVRpbWVGb3JtYXRUZXN0LCBRdW90ZSkKK3sKKyAgICBFWFBFQ1RfRVEoVG9rZW5zKCJGb29CYXIi
KSwgcGFyc2UoIidGb29CYXInIikpOworICAgIEVYUEVDVF9FUShUb2tlbnMoIiciKSwgcGFyc2Uo
IicnIikpOworICAgIEVYUEVDVF9FUShUb2tlbnMoIictJyIpLCBwYXJzZSgiJyctJyciKSk7Cisg
ICAgRVhQRUNUX0VRKFRva2VucygiRm9vJ0JhciIpLCBwYXJzZSgiJ0ZvbycnQmFyJyIpKTsKKyAg
ICBFWFBFQ1RfRVEoCisgICAgICAgIFRva2VucyhUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlRXJhKSwgVG9rZW4oIidzIikpLAorICAgICAgICBwYXJzZSgiRycnJ3MnIikpOworICAgIEVY
UEVDVF9FUSgKKyAgICAgICAgVG9rZW5zKFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVF
cmEpLCBUb2tlbigiJyIpLCBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlU2Vjb25kKSks
CisgICAgICAgIHBhcnNlKCJHJydzIikpOworfQorCitURVNUX0YoRGF0ZVRpbWVGb3JtYXRUZXN0
LCBTaW5nbGVMb3dlckNhc2VDaGFyYWN0ZXIpCit7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ2InKSk7CisgICAgRVhQRUNUX0VRKERhdGVU
aW1lRm9ybWF0OjpGaWVsZFR5cGVMb2NhbERheU9mV2Vla1N0YW5kQWxvbiwgc2luZ2xlKCdjJykp
OworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZNb250aCwgc2lu
Z2xlKCdkJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTG9jYWxE
YXlPZldlZWssIHNpbmdsZSgnZScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZU1vZGlmaWVkSnVsaWFuRGF5LCBzaW5nbGUoJ2cnKSk7CisgICAgRVhQRUNUX0VRKERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTIsIHNpbmdsZSgnaCcpKTsKKyAgICBFWFBFQ1Rf
RVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyNCwgc2luZ2xlKCdrJykpOworICAgIEVY
UEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWludXRlLCBzaW5nbGUoJ20nKSk7Cisg
ICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVRdWF0ZXJTdGFuZEFsb25lLCBz
aW5nbGUoJ3EnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVTZWNv
bmQsIHNpbmdsZSgncycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZUV4dGVuZGVkWWVhciwgc2luZ2xlKCd1JykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlTm9uTG9jYXRpb25ab25lLCBzaW5nbGUoJ3YnKSk7CisgICAgRVhQRUNUX0VR
KERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVXZWVrT2ZNb250aCwgc2luZ2xlKCd3JykpOworICAg
IEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhciwgc2luZ2xlKCd5JykpOwor
ICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWm9uZSwgc2luZ2xlKCd6Jykp
OworfQorCitURVNUX0YoRGF0ZVRpbWVGb3JtYXRUZXN0LCBTaW5nbGVMb3dlckNhc2VJbnZhbGlk
KQoreworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kLCBzaW5n
bGUoJ2EnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlk
LCBzaW5nbGUoJ2YnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJ
bnZhbGlkLCBzaW5nbGUoJ2knKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ2onKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ2wnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ24nKSk7CisgICAgRVhQRUNUX0VRKERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ28nKSk7CisgICAgRVhQRUNU
X0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ3AnKSk7CisgICAg
RVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ3InKSk7
CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUo
J3QnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBz
aW5nbGUoJ3gnKSk7Cit9CisKK1RFU1RfRihEYXRlVGltZUZvcm1hdFRlc3QsIFNpbmdsZVVwcGVy
Q2FzZUNoYXJhY3RlcikKK3sKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZU1pbGxpc2Vjb25kc0luRGF5LCBzaW5nbGUoJ0EnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVEYXlPZlllYXIsIHNpbmdsZSgnRCcpKTsKKyAgICBFWFBFQ1RfRVEo
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mV2Vlaywgc2luZ2xlKCdFJykpOworICAgIEVY
UEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZXZWVrSW5Nb250aCwgc2luZ2xl
KCdGJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRXJhLCBzaW5n
bGUoJ0cnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjMs
IHNpbmdsZSgnSCcpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhv
dXIxMSwgc2luZ2xlKCdLJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlTW9udGhTdGFuZEFsb25lLCBzaW5nbGUoJ0wnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVNb250aCwgc2luZ2xlKCdNJykpOworICAgIEVYUEVDVF9FUShEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlUXVhdGVyLCBzaW5nbGUoJ1EnKSk7CisgICAgRVhQRUNUX0VR
KERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVGcmFjdGlvbmFsU2Vjb25kLCBzaW5nbGUoJ1MnKSk7
CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVXZWVrT2ZZZWFyLCBzaW5n
bGUoJ1cnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVZZWFyT2ZX
ZWVrT2ZZZWFyLCBzaW5nbGUoJ1knKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGVSRkM4MjJab25lLCBzaW5nbGUoJ1onKSk7Cit9CisKK1RFU1RfRihEYXRlVGltZUZv
cm1hdFRlc3QsIFNpbmdsZVVwcGVyQ2FzZUludmFsaWQpCit7CisgICAgRVhQRUNUX0VRKERhdGVU
aW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ0InKSk7CisgICAgRVhQRUNUX0VR
KERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ0MnKSk7CisgICAgRVhQ
RUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ0knKSk7Cisg
ICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ0on
KSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5n
bGUoJ04nKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlk
LCBzaW5nbGUoJ08nKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJ
bnZhbGlkLCBzaW5nbGUoJ1AnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ1InKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ1QnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ1UnKSk7CisgICAgRVhQRUNUX0VRKERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ1YnKSk7CisgICAgRVhQRUNU
X0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCBzaW5nbGUoJ1gnKSk7Cit9CisK
KyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150096</attachid>
            <date>2012-06-29 00:11:09 -0700</date>
            <delta_ts>2012-06-29 00:27:03 -0700</delta_ts>
            <desc>Patch 6</desc>
            <filename>bug-89963-20120629161109.patch</filename>
            <type>text/plain</type>
            <size>36843</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ5MGNkMTUxYWFjNDEz
Zjc2MDY4ZWFhNjRlNzcxMDY5ZDlhNTIzNy4uZGEyNmY3YmI0OTVmMWVhMmRlY2IyYjI1ZWZiYmU2
YjBmOWI2ODgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA2LTI4ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1BsYXRmb3JtXSBJ
bXBsZW1lbnQgRGF0ZSBUaW1lIGZvcm1hdCBwYXJzZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFVuaWNvZGUgVFIz
NSBMRE1MIGRhdGUgdGltZSBmb3JtYXQgcGFyc2VyIGZvcgorICAgICAgICBpbnB1dCB0eXBlICJ0
aW1lIiBpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykgaXMgdHJ1ZS4K
KworICAgICAgICBUZXN0OiBXZWJLaXQvY2hyb21pdW0vdGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0
LmNwcAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEFkZGVkIERhdGVUaW1lRm9ybWF0LmNw
cAorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIERhdGVUaW1lRm9ybWF0Lntj
cHAsaH0KKyAgICAgICAgKiBUYXJnZXQucHJpOiBkaXR0bworICAgICAgICAqIFdlYkNvcmUuZ3lw
aTogZGl0dG8KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogZGl0dG8K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9kdWN0LnBieHByb2o6IGRpdHRvCisgICAg
ICAgICogcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6bWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUZvcm1hdDo6RGF0ZVRpbWVGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGb3JtYXQ6Om1hcENoYXJhY3RlclRvRmllbGRUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRm9ybWF0OjpwYXJzZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9EYXRl
VGltZUZvcm1hdC5oOiBBZGRlZC4KKyAgICAgICAgKERhdGVUaW1lRm9ybWF0KToKKyAgICAgICAg
KFRva2VuSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUZvcm1hdDo6VG9rZW5I
YW5kbGVyOjp+VG9rZW5IYW5kbGVyKToKKwogMjAxMi0wNi0yOCAgRWxsaW90dCBTcHJlaG4gIDxl
c3ByZWhuQGdtYWlsLmNvbT4KIAogICAgICAgICBmcmFtZWJvcmRlcj0ibm8iIG9uIGZyYW1lc2V0
IGlzIGlnbm9yZWQgaWYgYm9yZGVyIGF0dHJpYnV0ZSBzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggODg2MTM5NTdiMmM0NjlmY2Y4OGExNjczMDQ5ZDE0YzA2NWY3MGJhMC4uNTAzOWI0
MzQ3ZGE3NGJmZDkwYmYyM2ExNzY1M2U3ZDgxNTVlMWQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0wNi0yOCAgWW9zaGlmdW1pIElub3VlICA8eW9z
aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtQbGF0Zm9ybV0gSW1wbGVtZW50IERhdGUgVGlt
ZSBmb3JtYXQgcGFyc2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04OTk2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiB1bml0IHRlc3QgZm9yIGRhdGUgdGltZSBmb3JtYXQg
cGFyc2VyIGlmCisgICAgICAgIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERT
KSBpcyB0cnVlLgorCisgICAgICAgICogdGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0LmNwcDogQWRk
ZWQuCisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3QpOgorICAgICAgICAoVG9rZW4pOgorICAg
ICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbjo6VG9rZW4pOgorICAgICAgICAoRGF0ZVRp
bWVGb3JtYXRUZXN0OjpUb2tlbjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChEYXRlVGltZUZvcm1h
dFRlc3Q6OlRva2VuOjp0b1N0cmluZyk6CisgICAgICAgIChUb2tlbnMpOgorICAgICAgICAoRGF0
ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbnM6OlRva2Vucyk6CisgICAgICAgIChEYXRlVGltZUZvcm1h
dFRlc3Q6OlRva2Vuczo6b3BlcmF0b3I9PSk6CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6
OlRva2Vuczo6dG9TdHJpbmcpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpwYXJzZSk6
CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6OnNpbmdsZSk6CisgICAgICAgIChUb2tlbkhh
bmRsZXIpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbkhhbmRsZXI6On5Ub2tl
bkhhbmRsZXIpOgorICAgICAgICAoRGF0ZVRpbWVGb3JtYXRUZXN0OjpUb2tlbkhhbmRsZXI6OmZp
ZWxkVHlwZSk6CisgICAgICAgIChEYXRlVGltZUZvcm1hdFRlc3Q6OlRva2VuSGFuZGxlcjo6dG9r
ZW5zKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5kbGVyOjp2aXNpdEZp
ZWxkKToKKyAgICAgICAgKERhdGVUaW1lRm9ybWF0VGVzdDo6VG9rZW5IYW5kbGVyOjp2aXNpdExp
dGVyYWwpOgorICAgICAgICAob3BlcmF0b3I8PCk6CisgICAgICAgIChURVNUX0YpOgorCiAyMDEy
LTA2LTI4ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5k
ZXhlZERCOiBJbXBsZW1lbnQgSURCVHJhbnNhY3Rpb24gaW50ZXJuYWwgYWN0aXZlIGZsYWcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNmQzZGE3ZjhjMjRiNDYyN2M1ZjEyMzM5OThkZjM3MGU1MTM0
NDNmNy4uZTVjMjc0M2VjNzk1NDUxMzNjODkxOTdlMWNlMDU2MGI3NzRiYzAwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTEyOTUsNiArMTI5NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKIAog
ICAgIHBsYXRmb3JtL3RleHQvQmFzZTY0LmNwcAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRl
eHQuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAKICAgICBwbGF0Zm9y
bS90ZXh0L0h5cGhlbmF0aW9uLmNwcAogICAgIHBsYXRmb3JtL3RleHQvTGluZUVuZGluZy5jcHAK
ICAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsZVRvU2NyaXB0TWFwcGluZ0RlZmF1bHQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNWVjMmVjMTU1NmY0NGYyNmYxOWQxOWRmMTcz
YmM3N2U0M2YyYzhlLi45MTBhZTVkZjMwYzE5OWIyMDA5YzhjYmY1ZmRlNDVjNWI1MjdiOTdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM2NzgsNiArMzY3OCw4IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSZXNvbHZlci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0JpZGlSdW5MaXN0LmggXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvSHlwaGVuYXRpb24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0h5
cGhlbmF0aW9uLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggN2I5NmI3NjI0MzA4OTg4YmU0NTA2YmFmNWRl
MzAyYWYyMWJkMDRkYy4uYzUyNGU3YWQ4MTI0OTgwMTlkMTEzYmU2ZDVmMjIyYTJkODU5ZTExOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCkBAIC0xMDc1LDYgKzEwNzUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0
Zm9ybS9BcmVuYS5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvQmFzZTY0LmNwcCBcCiAgICAgcGxh
dGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHAgXAorICAgIHBsYXRmb3JtL3RleHQvRGF0ZVRpbWVG
b3JtYXQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcCBcCiAgICAgcGxh
dGZvcm0vdGV4dC9Mb2NhbGVUb1NjcmlwdE1hcHBpbmdEZWZhdWx0LmNwcCBcCiAgICAgcGxhdGZv
cm0vdGV4dC9Mb2NhbGl6ZWREYXRlTm9uZS5jcHAgXApAQCAtMjQxMSw2ICsyNDEyLDcgQEAgSEVB
REVSUyArPSBcCiAgICAgcGxhdGZvcm0vc3FsL1NRTFZhbHVlLmggXAogICAgIHBsYXRmb3JtL3Rl
eHQvQmFzZTY0LmggXAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuaCBcCisgICAgcGxh
dGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0RlY29kZUVz
Y2FwZVNlcXVlbmNlcy5oIFwKICAgICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmggXAogICAg
IHBsYXRmb3JtL3RleHQvUXVvdGVkUHJpbnRhYmxlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDdm
NmUyMmRkNTQwMGRmYWEwYmNjYTE5OWE4OGY4OTc5ZWEzM2FhMjMuLjc1MGNkYjRjMmE1NDNiM2U3
YzFkYmQ2MThmYjZjYmNkZDBkMTRiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQ5Myw2ICs0OTMs
NyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvQmlkaVJ1bkxpc3QuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS90ZXh0L0JpZGlSZXNvbHZlci5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0RhdGVU
aW1lRm9ybWF0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvRGVjb2RlRXNjYXBlU2Vx
dWVuY2VzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTGluZUJyZWFrSXRlcmF0b3JQ
b29sSUNVLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTGluZUVuZGluZy5oJywKQEAg
LTQzNzgsNiArNDM3OSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9BdG9taWNTdHJp
bmdLZXllZE1SVUNhY2hlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvQmFzZTY0LmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHAnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4
dC9IeXBoZW5hdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggZDEyZGI1NjZjOGMzOTU5NmZkMGYxMjU0OGUwNzExNTY4NmMxMjdlOS4uNDljYTA0OGM1NGVi
NmYzOWNmZjVmMWQ1ZDRlY2QzYWI2YzEzMDY2YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTMzMTk4LDYgKzMzMTk4LDE0IEBACiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0
ZXh0XERhdGVUaW1lRm9ybWF0LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcRGF0ZVRpbWVGb3JtYXQuaCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXHRleHRcRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMmRkMzU4YzY4MjJiN2M5OGRkZGYzNjdiMTAxNjVjODE4ZDI4ZDZmNy4uMDdmZjNmMDhiMGRl
ZTRkYTM5OTdkOTdjYzYwMTBhYzU1ODhmMmY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE4OSw2ICsxMTg5LDggQEAKIAkJ
NDUwOTlDNDExMzcwQTc4MDAwNThENTEzIC8qIEljb25VUkwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUwOTlDNDAxMzcwQTc4MDAwNThENTEzIC8q
IEljb25VUkwuY3BwICovOyB9OwogCQk0NTBDRUJGMDE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxh
YmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NTBDRUJFRTE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5jcHAgKi87
IH07CiAJCTQ1MENFQkYxMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NTBDRUJFRjE1MDcz
QkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQ1M0VCNjM2MTU5QzU3MDQwMDAwMUJCNyAvKiBE
YXRlVGltZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NTNFQjYzNDE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuY3BwICov
OyB9OworCQk0NTNFQjYzNzE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1M0VCNjM1MTU5QzU3
MDQwMDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ1OEZFNDA5MTU4OURGMEIwMDU2MDlFNiAvKiBSZW5k
ZXJTZWFyY2hGaWVsZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NThGRTQwNzE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQuY3Bw
ICovOyB9OwogCQk0NThGRTQwQTE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1OEZFNDA4
MTU4OURGMEIwMDU2MDlFNiAvKiBSZW5kZXJTZWFyY2hGaWVsZC5oICovOyB9OwogCQk0NUJBQzJC
MDEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDVCQUMyQUYxMzYwQkJBQjAwNURBMjU4IC8qIEljb25VUkwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODIz
OSw2ICs4MjQxLDggQEAKIAkJNDUwOTlDNDAxMzcwQTc4MDAwNThENTEzIC8qIEljb25VUkwuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvblVSTC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MENFQkVFMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJl
bGFibGVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExh
YmVsYWJsZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTBDRUJF
RjE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMYWJlbGFibGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQ1M0VCNjM0MTU5QzU3MDQwMDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZUZvcm1hdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ1M0VCNjM1MTU5QzU3MDQwMDAwMUJCNyAv
KiBEYXRlVGltZUZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRl
VGltZUZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NThGRTQwNzE1ODlE
RjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU2VhcmNoRmllbGQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NThGRTQwODE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmll
bGQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU2VhcmNoRmllbGQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVCQUMyQUYxMzYwQkJBQjAwNURBMjU4
IC8qIEljb25VUkwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSWNvblVSTC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk3MTUsNiArMTk3MTksOCBAQAogCQkJ
CUIyQzNEOUYzMEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpQ29udGV4dC5oICovLAogCQkJCUIyQzNE
OUY0MEQwMDZDMUQwMEVGNkYyNiAvKiBCaWRpUmVzb2x2ZXIuaCAqLywKIAkJCQlBOEM0MDI5MjEz
NDhCMjIyMDA2M0YxRTUgLyogQmlkaVJ1bkxpc3QuaCAqLywKKwkJCQk0NTNFQjYzNDE1OUM1NzA0
MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuY3BwICovLAorCQkJCTQ1M0VCNjM1MTU5QzU3MDQw
MDAwMUJCNyAvKiBEYXRlVGltZUZvcm1hdC5oICovLAogCQkJCUNFQ0NGQzNBMTQxOTczRDUwMDJB
MEFDMSAvKiBEZWNvZGVFc2NhcGVTZXF1ZW5jZXMuaCAqLywKIAkJCQkzNzVDRDIzMTExOUQ0M0M4
MDBBMkE4NTkgLyogSHlwaGVuYXRpb24uaCAqLywKIAkJCQlBNUFCQjc4NjEzQjkwNEJDMDBGMTk3
RTMgLyogTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmggKi8sCkBAIC0yMjI2Miw2ICsyMjI2OCw3
IEBACiAJCQkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTk3Q0NFQjEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0YVZp
ZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NzMyQjBCMTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRl
Q29tcG9uZW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDUzRUI2MzcxNTlDNTcwNDAwMDAxQkI3
IC8qIERhdGVUaW1lRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCNjEyNTFGMTJE
MDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQjgx
MjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNTVCM0RCQTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNTc3Niw2ICsyNTc4Myw3IEBACiAJCQkJMkU5N0NDRUExMjkzOUNC
ODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1NzMyQjBBMTM2
QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NTVCM0RCNTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk0NTNFQjYzNjE1OUM1NzA0MDAwMDFCQjcgLyogRGF0ZVRpbWVGb3JtYXQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQjcxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lSW5w
dXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREI5MTI1MUYxMkQwMDNFRjI2OSAv
KiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ1RkVBNUNG
MTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0RhdGVUaW1lRm9ybWF0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZGU3ZmRjZGVhZTUwY2NkZGQwOTU0ZDRlYjMxOTNhYmQ2NmRkMGQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5jcHAKQEAgLTAs
MCArMSwyNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisg
KiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVM
VElQTEVfRklFTERTKQorI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBj
b25zdCBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGxvd2VyQ2FzZVRvRmllbGRUeXBlTWFwWzI2
XSA9IHsKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kLCAvLyBhCisgICAgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIGIKKyAgICBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlTG9jYWxEYXlPZldlZWtTdGFuZEFsb24sIC8vIGMKKyAgICBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlRGF5T2ZNb250aCwgLy8gZAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGVMb2NhbERheU9mV2VlaywgLy8gZQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZh
bGlkLCAvLyBmCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vZGlmaWVkSnVsaWFuRGF5
LCAvLyBnCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMiwgLy8gaAorICAgIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBpCisgICAgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUludmFsaWQsIC8vIGoKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91
cjI0LCAvLyBrCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIGwKKyAg
ICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWludXRlLCAvLyBtCisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIG4KKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SW52YWxpZCwgLy8gbworICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBw
CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVF1YXRlclN0YW5kQWxvbmUsIC8vIHEKKyAg
ICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gcgorICAgIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVTZWNvbmQsIC8vIHMKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SW52YWxpZCwgLy8gdAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVFeHRlbmRlZFllYXIs
IC8vIHUKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTm9uTG9jYXRpb25ab25lLCAvLyB2
CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVdlZWtPZk1vbnRoLCAvLyB3CisgICAgRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIHgKKyAgICBEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlWWVhciwgLy8geQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVab25lLCAv
LyB6Cit9OworCitzdGF0aWMgY29uc3QgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSB1cHBlckNh
c2VUb0ZpZWxkVHlwZU1hcFsyNl0gPSB7CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1p
bGxpc2Vjb25kc0luRGF5LCAvLyBBCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUludmFs
aWQsIC8vIEIKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gQworICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZlllYXIsIC8vIEQKKyAgICBEYXRlVGltZUZv
cm1hdDo6RmllbGRUeXBlRGF5T2ZXZWVrLCAvLyBFCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZURheU9mV2Vla0luTW9udGgsIC8vIEYKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
RXJhLCAvLyBHCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyMywgLy8gSAorICAg
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBJCisgICAgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUludmFsaWQsIC8vIEoKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SG91cjExLCAvLyBLCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9u
ZSwgLy8gTAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNb250aCwgLy8gTQorICAgIERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBOCisgICAgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUludmFsaWQsIC8vIE8KKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52
YWxpZCwgLy8gUAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVRdWF0ZXIsIC8vIFEKKyAg
ICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gUgorICAgIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVGcmFjdGlvbmFsU2Vjb25kLCAvLyBTCisgICAgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUludmFsaWQsIC8vIFQKKyAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52
YWxpZCwgLy8gVQorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVJbnZhbGlkLCAvLyBWCisg
ICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVdlZWtPZlllYXIsIC8vIFcKKyAgICBEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgLy8gWAorICAgIERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVZZWFyT2ZXZWVrT2ZZZWFyLCAvLyBZCisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZVJGQzgyMlpvbmUsIC8vIFoKK307CisKK3N0YXRpYyBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
IG1hcENoYXJhY3RlclRvRmllbGRUeXBlKGNvbnN0IFVDaGFyIGNoKQoreworICAgIGlmIChpc0FT
Q0lJVXBwZXIoY2gpKQorICAgICAgICByZXR1cm4gdXBwZXJDYXNlVG9GaWVsZFR5cGVNYXBbY2gg
LSAnQSddOworCisgICAgaWYgKGlzQVNDSUlMb3dlcihjaCkpCisgICAgICAgIHJldHVybiBsb3dl
ckNhc2VUb0ZpZWxkVHlwZU1hcFtjaCAtICdhJ107CisKKyAgICByZXR1cm4gRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUxpdGVyYWw7Cit9CisKK2Jvb2wgRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGNv
bnN0IFN0cmluZyYgc291cmNlLCBUb2tlbkhhbmRsZXImIHRva2VuSGFuZGxlcikKK3sKKyAgICBl
bnVtIFN0YXRlIHsKKyAgICAgICAgU3RhdGVJblF1b3RlLAorICAgICAgICBTdGF0ZUluUXVvdGVR
dW90ZSwKKyAgICAgICAgU3RhdGVMaXRlcmFsLAorICAgICAgICBTdGF0ZVF1b3RlLAorICAgICAg
ICBTdGF0ZVN5bWJvbCwKKyAgICB9IHN0YXRlID0gU3RhdGVMaXRlcmFsOworCisgICAgRmllbGRU
eXBlIGZpZWxkVHlwZSA9IEZpZWxkVHlwZUxpdGVyYWw7CisgICAgU3RyaW5nQnVpbGRlciBsaXRl
cmFsQnVmZmVyOworICAgIGludCBmaWVsZENvdW50ZXIgPSAwOworCisgICAgZm9yICh1bnNpZ25l
ZCBpbnQgaW5kZXggPSAwOyBpbmRleCA8IHNvdXJjZS5sZW5ndGgoKTsgKytpbmRleCkgeworICAg
ICAgICBjb25zdCBVQ2hhciBjaCA9IHNvdXJjZVtpbmRleF07CisgICAgICAgIHN3aXRjaCAoc3Rh
dGUpIHsKKyAgICAgICAgY2FzZSBTdGF0ZUluUXVvdGU6CisgICAgICAgICAgICBpZiAoY2ggPT0g
J1wnJykgeworICAgICAgICAgICAgICAgIHN0YXRlID0gU3RhdGVJblF1b3RlUXVvdGU7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpdGVyYWxC
dWZmZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgU3Rh
dGVJblF1b3RlUXVvdGU6CisgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAg
ICAgICAgIGxpdGVyYWxCdWZmZXIuYXBwZW5kKCdcJycpOworICAgICAgICAgICAgICAgIHN0YXRl
ID0gU3RhdGVJblF1b3RlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmaWVsZFR5cGUgPSBtYXBDaGFyYWN0ZXJUb0ZpZWxkVHlwZShjaCk7Cisg
ICAgICAgICAgICBpZiAoZmllbGRUeXBlID09IEZpZWxkVHlwZUludmFsaWQpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpZiAoZmllbGRUeXBlID09IEZpZWxk
VHlwZUxpdGVyYWwpIHsKKyAgICAgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZChjaCk7
CisgICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZUxpdGVyYWw7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxl
bmd0aCgpKSB7CisgICAgICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRl
cmFsQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGxpdGVyYWxCdWZmZXIuY2xl
YXIoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZmllbGRDb3VudGVyID0gMTsKKyAg
ICAgICAgICAgIHN0YXRlID0gU3RhdGVTeW1ib2w7CisgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICBjYXNlIFN0YXRlTGl0ZXJhbDoKKyAgICAgICAgICAgIGlmIChjaCA9PSAnXCcnKSB7Cisg
ICAgICAgICAgICAgICAgc3RhdGUgPSBTdGF0ZVF1b3RlOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmaWVsZFR5cGUgPSBtYXBDaGFyYWN0ZXJU
b0ZpZWxkVHlwZShjaCk7CisgICAgICAgICAgICBpZiAoZmllbGRUeXBlID09IEZpZWxkVHlwZUlu
dmFsaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpZiAo
ZmllbGRUeXBlID09IEZpZWxkVHlwZUxpdGVyYWwpIHsKKyAgICAgICAgICAgICAgICBsaXRlcmFs
QnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmIChsaXRlcmFsQnVmZmVyLmxlbmd0aCgpKSB7CisgICAgICAgICAg
ICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChsaXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkp
OworICAgICAgICAgICAgICAgIGxpdGVyYWxCdWZmZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZmllbGRDb3VudGVyID0gMTsKKyAgICAgICAgICAgIHN0YXRlID0gU3Rh
dGVTeW1ib2w7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFN0YXRlUXVvdGU6
CisgICAgICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICBzdGF0
ZSA9IGNoID09ICdcJycgPyBTdGF0ZUxpdGVyYWwgOiBTdGF0ZUluUXVvdGU7CisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICBjYXNlIFN0YXRlU3ltYm9sOiB7CisgICAgICAgICAgICBBU1NF
UlQoZmllbGRUeXBlICE9IEZpZWxkVHlwZUludmFsaWQpOworICAgICAgICAgICAgQVNTRVJUKGZp
ZWxkVHlwZSAhPSBGaWVsZFR5cGVMaXRlcmFsKTsKKyAgICAgICAgICAgIEFTU0VSVChsaXRlcmFs
QnVmZmVyLmlzRW1wdHkoKSk7CisKKyAgICAgICAgICAgIEZpZWxkVHlwZSBmaWVsZFR5cGUyID0g
bWFwQ2hhcmFjdGVyVG9GaWVsZFR5cGUoY2gpOworICAgICAgICAgICAgaWYgKGZpZWxkVHlwZTIg
PT0gRmllbGRUeXBlSW52YWxpZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgICAgIGlmIChmaWVsZFR5cGUgPT0gZmllbGRUeXBlMikgeworICAgICAgICAgICAgICAg
ICsrZmllbGRDb3VudGVyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICB0b2tlbkhhbmRsZXIudmlzaXRGaWVsZChmaWVsZFR5cGUsIGZpZWxkQ291
bnRlcik7CisKKyAgICAgICAgICAgIGlmIChmaWVsZFR5cGUyID09IEZpZWxkVHlwZUxpdGVyYWwp
IHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykKKyAgICAgICAgICAgICAgICAgICAg
c3RhdGUgPSBTdGF0ZVF1b3RlOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICBsaXRlcmFsQnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgIHN0
YXRlID0gU3RhdGVMaXRlcmFsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZmllbGRDb3VudGVyID0gMTsKKyAg
ICAgICAgICAgIGZpZWxkVHlwZSA9IGZpZWxkVHlwZTI7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgQVNTRVJUKGZpZWxkVHlwZSAhPSBGaWVs
ZFR5cGVJbnZhbGlkKTsKKworICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICBjYXNlIFN0YXRlTGl0
ZXJhbDoKKyAgICBjYXNlIFN0YXRlSW5RdW90ZVF1b3RlOgorICAgICAgICBpZiAobGl0ZXJhbEJ1
ZmZlci5sZW5ndGgoKSkKKyAgICAgICAgICAgIHRva2VuSGFuZGxlci52aXNpdExpdGVyYWwobGl0
ZXJhbEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjYXNl
IFN0YXRlUXVvdGU6CisgICAgY2FzZSBTdGF0ZUluUXVvdGU6CisgICAgICAgIGlmIChsaXRlcmFs
QnVmZmVyLmxlbmd0aCgpKQorICAgICAgICAgICAgdG9rZW5IYW5kbGVyLnZpc2l0TGl0ZXJhbChs
aXRlcmFsQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBj
YXNlIFN0YXRlU3ltYm9sOgorICAgICAgICBBU1NFUlQoZmllbGRUeXBlICE9IEZpZWxkVHlwZUxp
dGVyYWwpOworICAgICAgICBBU1NFUlQoIWxpdGVyYWxCdWZmZXIubGVuZ3RoKCkpOworICAgICAg
ICB0b2tlbkhhbmRsZXIudmlzaXRGaWVsZChmaWVsZFR5cGUsIGZpZWxkQ291bnRlcik7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvRGF0ZVRpbWVGb3JtYXQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lN2Q1MzlmMmJkYzZiY2JjODUzOGRhYjJhYmIyMGQyMzBiMjViN2M2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9EYXRlVGltZUZvcm1hdC5oCkBAIC0w
LDAgKzEsMTEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
ICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNICisgKiBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRlVGltZUZvcm1hdF9o
CisjZGVmaW5lIERhdGVUaW1lRm9ybWF0X2gKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVf
TVVMVElQTEVfRklFTERTKQorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIERhdGVUaW1lRm9ybWF0IHBhcnNlcyBkYXRlIHRpbWUgZm9y
bWF0IGRlZmluZWQgaW4gVW5pY29kZSBUZWNobmljYWwKKy8vIHN0YW5kYXJkIDM1LCBMb2NhbGUg
RGF0YSBNYXJrdXAgTGFuZ3VhZ2UgKExETUwpWzFdLgorLy8gWzFdIExETUwgaHR0cDovL3VuaWNv
ZGUub3JnL3JlcG9ydHMvdHIzNS90cjM1LTYuaHRtbCNEYXRlX0Zvcm1hdF9QYXR0ZXJucworY2xh
c3MgRGF0ZVRpbWVGb3JtYXQgeworcHVibGljOgorICAgIGVudW0gRmllbGRUeXBlIHsKKyAgICAg
ICAgRmllbGRUeXBlSW52YWxpZCwKKyAgICAgICAgRmllbGRUeXBlTGl0ZXJhbCwKKworICAgICAg
ICAvLyBFcmE6IEFECisgICAgICAgIEZpZWxkVHlwZUVyYSA9ICdHJywKKworICAgICAgICAvLyBZ
ZWFyOiAxOTk2CisgICAgICAgIEZpZWxkVHlwZVllYXIgPSAneScsCisgICAgICAgIEZpZWxkVHlw
ZVllYXJPZldlZWtPZlllYXIgPSAnWScsCisgICAgICAgIEZpZWxkVHlwZUV4dGVuZGVkWWVhciA9
ICd1JywKKworICAgICAgICAvLyBRdWF0ZXI6IFEyCisgICAgICAgIEZpZWxkVHlwZVF1YXRlciA9
ICdRJywKKyAgICAgICAgRmllbGRUeXBlUXVhdGVyU3RhbmRBbG9uZSA9ICdxJywKKworICAgICAg
ICAvLyBNb250aDogU2VwdGVtYmVyCisgICAgICAgIEZpZWxkVHlwZU1vbnRoID0gJ00nLAorICAg
ICAgICBGaWVsZFR5cGVNb250aFN0YW5kQWxvbmUgPSAnTCcsCisKKyAgICAgICAgLy8gV2Vlazog
NDIKKyAgICAgICAgRmllbGRUeXBlV2Vla09mWWVhciA9ICdXJywKKyAgICAgICAgRmllbGRUeXBl
V2Vla09mTW9udGggPSAndycsCisKKyAgICAgICAgLy8gRGF5OiAxMgorICAgICAgICBGaWVsZFR5
cGVEYXlPZk1vbnRoID0gJ2QnLAorICAgICAgICBGaWVsZFR5cGVEYXlPZlllYXIgPSAnRCcsCisg
ICAgICAgIEZpZWxkVHlwZURheU9mV2Vla0luTW9udGggPSAnRicsCisgICAgICAgIEZpZWxkVHlw
ZU1vZGlmaWVkSnVsaWFuRGF5ID0gJ2cnLAorCisgICAgICAgIC8vIFdlZWsgRGF5OiBUdWVzZGF5
CisgICAgICAgIEZpZWxkVHlwZURheU9mV2VlayA9ICdFJywKKyAgICAgICAgRmllbGRUeXBlTG9j
YWxEYXlPZldlZWsgPSAnZScsCisgICAgICAgIEZpZWxkVHlwZUxvY2FsRGF5T2ZXZWVrU3RhbmRB
bG9uID0gJ2MnLAorCisgICAgICAgIC8vIFBlcmlvZDogQU0gb3IgUE0KKyAgICAgICAgRmllbGRU
eXBlUGVyaW9kID0gJ2EnLAorCisgICAgICAgIC8vIEhvdXI6IDcKKyAgICAgICAgRmllbGRUeXBl
SG91cjEyID0gJ2gnLAorICAgICAgICBGaWVsZFR5cGVIb3VyMjMgPSAnSCcsCisgICAgICAgIEZp
ZWxkVHlwZUhvdXIxMSA9ICdLJywKKyAgICAgICAgRmllbGRUeXBlSG91cjI0ID0gJ2snLAorCisg
ICAgICAgIC8vIE1pbnV0ZTogNTkKKyAgICAgICAgRmllbGRUeXBlTWludXRlID0gJ20nLAorCisg
ICAgICAgIC8vIFNlY29uZDogMTIKKyAgICAgICAgRmllbGRUeXBlU2Vjb25kID0gJ3MnLAorICAg
ICAgICBGaWVsZFR5cGVGcmFjdGlvbmFsU2Vjb25kID0gJ1MnLAorICAgICAgICBGaWVsZFR5cGVN
aWxsaXNlY29uZHNJbkRheSA9ICdBJywKKworICAgICAgICAvLyBab25lOiBQRFQKKyAgICAgICAg
RmllbGRUeXBlWm9uZSA9ICd6JywKKyAgICAgICAgRmllbGRUeXBlUkZDODIyWm9uZSA9ICdaJywK
KyAgICAgICAgRmllbGRUeXBlTm9uTG9jYXRpb25ab25lID0gJ3YnLAorICAgIH07CisKKyAgICBj
bGFzcyBUb2tlbkhhbmRsZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+VG9rZW5I
YW5kbGVyKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdEZpZWxkKEZpZWxkVHlwZSwg
aW50IG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgfTsKKworICAgIC8vIFJldHVy
bnMgdHJ1ZSBpZiBzdWNjZWVkZWQsIGZhbHNlIGlmIGZhaWxlZC4KKyAgICBzdGF0aWMgYm9vbCBw
YXJzZShjb25zdCBTdHJpbmcmLCBUb2tlbkhhbmRsZXImKTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBEYXRlVGltZUZvcm1hdF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCBhOGRkM2E2MjY1MzUwNTM3MDE1MGM2NWVlOGRmY2Uw
OTE3ZTc4NGRkLi4yN2MzN2I2NDRhODk5NzU1YjczZDhjNDZiYmVjNjU1YmU2MDNjNzkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTk3LDYgKzk3LDcgQEAKICAgICAgICAgICAg
ICd0ZXN0cy9DQ1RpbWVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NsaXBib2FyZENo
cm9taXVtVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0NvbXBvc2l0b3JGYWtlV2ViR3Jh
cGhpY3NDb250ZXh0M0QuaCcsCisgICAgICAgICAgICAndGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0
LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvRGVjaW1hbFRlc3QuY3BwJywKICAgICAgICAgICAg
ICd0ZXN0cy9EcmFnSW1hZ2VUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvRXZlbnRMaXN0
ZW5lclRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
RGF0ZVRpbWVGb3JtYXRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRGF0
ZVRpbWVGb3JtYXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzAwNmFiYWZiMzBlMGViNDc2ZDZkNjk3
NDdiYmE1MDEyMDhkOGU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9EYXRlVGltZUZvcm1hdFRlc3QuY3BwCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0
LmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyNpbmNs
dWRlIDxndGVzdC9ndGVzdC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCitjbGFzcyBEYXRlVGltZUZvcm1hdFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsK
K3B1YmxpYzoKKyAgICB0eXBlZGVmIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgRmllbGRUeXBl
OworCisgICAgc3RydWN0IFRva2VuIHsKKyAgICAgICAgU3RyaW5nIHN0cmluZzsKKyAgICAgICAg
aW50IGNvdW50OworICAgICAgICBGaWVsZFR5cGUgZmllbGRUeXBlOworCisgICAgICAgIFRva2Vu
KEZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCBjb3VudCA9IDEpCisgICAgICAgICAgICA6IGNvdW50
KGNvdW50KQorICAgICAgICAgICAgLCBmaWVsZFR5cGUoZmllbGRUeXBlKQorICAgICAgICB7Cisg
ICAgICAgICAgICBBU1NFUlQoZmllbGRUeXBlICE9IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVM
aXRlcmFsKTsKKyAgICAgICAgfQorCisgICAgICAgIFRva2VuKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQorICAgICAgICAgICAgOiBzdHJpbmcoc3RyaW5nKQorICAgICAgICAgICAgLCBjb3VudCgwKQor
ICAgICAgICAgICAgLCBmaWVsZFR5cGUoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxpdGVyYWwp
CisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBU
b2tlbiYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmaWVsZFR5
cGUgPT0gb3RoZXIuZmllbGRUeXBlICYmIGNvdW50ID09IG90aGVyLmNvdW50ICYmIHN0cmluZyA9
PSBvdGhlci5zdHJpbmc7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgdG9TdHJpbmcoKSBj
b25zdAorICAgICAgICB7CisgICAgICAgICAgICBzd2l0Y2ggKGZpZWxkVHlwZSkgeworICAgICAg
ICAgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZDoKKyAgICAgICAgICAg
ICAgICByZXR1cm4gIippbnZhbGlkKiI7CisgICAgICAgICAgICBjYXNlIERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVMaXRlcmFsOiB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCciJyk7CisgICAgICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoc3RyaW5nKTsKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnIicpOworICAgICAgICAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBT
dHJpbmc6OmZvcm1hdCgiVG9rZW4oJWQsICVkKSIsIGZpZWxkVHlwZSwgY291bnQpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfTsKKworICAgIGNsYXNzIFRva2VucyB7CisgICAgcHVi
bGljOgorICAgICAgICBUb2tlbnMoKSB7IH0KKworICAgICAgICBleHBsaWNpdCBUb2tlbnMoY29u
c3QgVmVjdG9yPFRva2VuPiB0b2tlbnMpCisgICAgICAgICAgICA6IG1fdG9rZW5zKHRva2VucykK
KyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgZXhwbGljaXQgVG9rZW5zKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQorICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQoVG9r
ZW4oc3RyaW5nKSk7CisgICAgICAgIH0KKworICAgICAgICBleHBsaWNpdCBUb2tlbnMoVG9rZW4g
dG9rZW4xKQorICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4xKTsK
KyAgICAgICAgfQorCisgICAgICAgIFRva2VucyhUb2tlbiB0b2tlbjEsIFRva2VuIHRva2VuMikK
KyAgICAgICAgeworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMSk7CisgICAgICAg
ICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4yKTsKKyAgICAgICAgfQorCisgICAgICAgIFRva2Vu
cyhUb2tlbiB0b2tlbjEsIFRva2VuIHRva2VuMiwgVG9rZW4gdG9rZW4zKQorICAgICAgICB7Cisg
ICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4xKTsKKyAgICAgICAgICAgIG1fdG9rZW5z
LmFwcGVuZCh0b2tlbjIpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMyk7Cisg
ICAgICAgIH0KKworICAgICAgICBUb2tlbnMoVG9rZW4gdG9rZW4xLCBUb2tlbiB0b2tlbjIsIFRv
a2VuIHRva2VuMywgVG9rZW4gdG9rZW40KQorICAgICAgICB7CisgICAgICAgICAgICBtX3Rva2Vu
cy5hcHBlbmQodG9rZW4xKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbjIpOwor
ICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMyk7CisgICAgICAgICAgICBtX3Rva2Vu
cy5hcHBlbmQodG9rZW40KTsKKyAgICAgICAgfQorCisgICAgICAgIFRva2VucyhUb2tlbiB0b2tl
bjEsIFRva2VuIHRva2VuMiwgVG9rZW4gdG9rZW4zLCBUb2tlbiB0b2tlbjQsIFRva2VuIHRva2Vu
NSkKKyAgICAgICAgeworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMSk7CisgICAg
ICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4yKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFw
cGVuZCh0b2tlbjMpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuNCk7CisgICAg
ICAgICAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW41KTsKKyAgICAgICAgfQorCisgICAgICAgIFRv
a2VucyhUb2tlbiB0b2tlbjEsIFRva2VuIHRva2VuMiwgVG9rZW4gdG9rZW4zLCBUb2tlbiB0b2tl
bjQsIFRva2VuIHRva2VuNSwgVG9rZW4gdG9rZW42KQorICAgICAgICB7CisgICAgICAgICAgICBt
X3Rva2Vucy5hcHBlbmQodG9rZW4xKTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tl
bjIpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuMyk7CisgICAgICAgICAgICBt
X3Rva2Vucy5hcHBlbmQodG9rZW40KTsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tl
bjUpOworICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2VuNik7CisgICAgICAgIH0KKwor
ICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgVG9rZW5zJiBvdGhlcikgY29uc3QKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIG1fdG9rZW5zID09IG90aGVyLm1fdG9rZW5zOworICAg
ICAgICB9CisKKyAgICAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKKyAgICAgICAgeworICAg
ICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQoIlRva2VucygiKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRl
eCA8IG1fdG9rZW5zLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICAgICAgICAgIGlmIChpbmRl
eCkKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwiKTsKKyAgICAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZChtX3Rva2Vuc1tpbmRleF0udG9TdHJpbmcoKSk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiKSIpOworICAgICAgICAgICAgcmV0
dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAg
ICAgVmVjdG9yPFRva2VuPiBtX3Rva2VuczsKKyAgICB9OworCitwcm90ZWN0ZWQ6CisgICAgVG9r
ZW5zIHBhcnNlKGNvbnN0IFN0cmluZyYgZm9ybWF0U3RyaW5nKQorICAgIHsKKyAgICAgICAgVG9r
ZW5IYW5kbGVyIGhhbmRsZXI7CisgICAgICAgIGlmICghRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGZv
cm1hdFN0cmluZywgaGFuZGxlcikpCisgICAgICAgICAgICByZXR1cm4gVG9rZW5zKFRva2VuKCIq
ZmFpbGVkKiIpKTsKKyAgICAgICAgcmV0dXJuIGhhbmRsZXIudG9rZW5zKCk7CisgICAgfQorCisg
ICAgRmllbGRUeXBlIHNpbmdsZShjb25zdCBjaGFyIGNoKQorICAgIHsKKyAgICAgICAgY2hhciBm
b3JtYXRTdHJpbmdbMl07CisgICAgICAgIGZvcm1hdFN0cmluZ1swXSA9IGNoOworICAgICAgICBm
b3JtYXRTdHJpbmdbMV0gPSAwOworICAgICAgICBUb2tlbkhhbmRsZXIgaGFuZGxlcjsKKyAgICAg
ICAgaWYgKCFEYXRlVGltZUZvcm1hdDo6cGFyc2UoZm9ybWF0U3RyaW5nLCBoYW5kbGVyKSkKKyAg
ICAgICAgICAgIHJldHVybiBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZDsKKyAgICAg
ICAgcmV0dXJuIGhhbmRsZXIuZmllbGRUeXBlKDApOworICAgIH0KKworcHJpdmF0ZToKKyAgICBj
bGFzcyBUb2tlbkhhbmRsZXIgOiBwdWJsaWMgRGF0ZVRpbWVGb3JtYXQ6OlRva2VuSGFuZGxlciB7
CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5Ub2tlbkhhbmRsZXIoKSB7IH0KKworICAg
ICAgICBGaWVsZFR5cGUgZmllbGRUeXBlKGludCBpbmRleCkgY29uc3QKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIGluZGV4ID49MCAmJiBpbmRleCA8IHN0YXRpY19jYXN0PGludD4obV90
b2tlbnMuc2l6ZSgpKSA/IG1fdG9rZW5zW2luZGV4XS5maWVsZFR5cGUgOiBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlSW52YWxpZDsKKyAgICAgICAgfQorCisgICAgICAgIFRva2VucyB0b2tlbnMo
KSBjb25zdCB7IHJldHVybiBUb2tlbnMobV90b2tlbnMpOyB9CisKKyAgICBwcml2YXRlOgorICAg
ICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRGaWVsZChGaWVsZFR5cGUgZmllbGRUeXBlLCBpbnQgY291
bnQpIE9WRVJSSURFCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZChUb2tl
bihmaWVsZFR5cGUsIGNvdW50KSk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQg
dmlzaXRMaXRlcmFsKGNvbnN0IFN0cmluZyYgc3RyaW5nKSBPVkVSUklERQorICAgICAgICB7Cisg
ICAgICAgICAgICBtX3Rva2Vucy5hcHBlbmQoVG9rZW4oc3RyaW5nKSk7CisgICAgICAgIH0KKwor
ICAgICAgICBWZWN0b3I8VG9rZW4+IG1fdG9rZW5zOworICAgIH07Cit9OworCitzdGQ6Om9zdHJl
YW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgY29uc3QgRGF0ZVRpbWVGb3JtYXRUZXN0
OjpUb2tlbnMmIHRva2VucykKK3sKKyAgICByZXR1cm4gb3MgPDwgdG9rZW5zLnRvU3RyaW5nKCku
YXNjaWkoKS5kYXRhKCk7Cit9CisKK1RFU1RfRihEYXRlVGltZUZvcm1hdFRlc3QsIENvbW1vblBh
dHRlcm4pCit7CisgICAgRVhQRUNUX0VRKFRva2VucygpLCBwYXJzZSgiIikpOworCisgICAgRVhQ
RUNUX0VRKAorICAgICAgICBUb2tlbnMoCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlWWVhciwgNCksIFRva2VuKCItIiksCisgICAgICAgICAgICBUb2tlbihEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGgsIDIpLCBUb2tlbigiLSIpLAorICAgICAgICAgICAg
VG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mTW9udGgsIDIpKSwKKyAgICAgICAg
cGFyc2UoInl5eXktTU0tZGQiKSk7CisKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFRva2VucygK
KyAgICAgICAgICAgIFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjQsIDIpLCBU
b2tlbigiOiIpLAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1p
bnV0ZSwgMiksIFRva2VuKCI6IiksCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlU2Vjb25kLCAyKSksCisgICAgICAgIHBhcnNlKCJrazptbTpzcyIpKTsKKworICAg
IEVYUEVDVF9FUSgKKyAgICAgICAgVG9rZW5zKAorICAgICAgICAgICAgVG9rZW4oRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUhvdXIxMiksIFRva2VuKCI6IiksCisgICAgICAgICAgICBUb2tlbihE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWludXRlKSwgVG9rZW4oIiAiKSwKKyAgICAgICAgICAg
IFRva2VuKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJpb2QpKSwKKyAgICAgICAgcGFyc2Uo
Img6bSBhIikpOworCisgICAgRVhQRUNUX0VRKAorICAgICAgICBUb2tlbnMoCisgICAgICAgICAg
ICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlWWVhciksIFRva2VuKCJOZW4gIiksCisg
ICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGgpLCBUb2tlbigi
R2V0c3UgIiksCisgICAgICAgICAgICBUb2tlbihEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5
T2ZNb250aCksIFRva2VuKCJOaWNoaSIpKSwKKyAgICAgICAgcGFyc2UoInknTmVuJyBNJ0dldHN1
JyBkJ05pY2hpJyIpKTsKK30KKworVEVTVF9GKERhdGVUaW1lRm9ybWF0VGVzdCwgTWlzc2luZ0Ns
b3NpbmdRdW90ZSkKK3sKKyAgICBFWFBFQ1RfRVEoVG9rZW5zKCIqZmFpbGVkKiIpLCBwYXJzZSgi
J2ZvbyIpKTsKKyAgICBFWFBFQ1RfRVEoVG9rZW5zKCIqZmFpbGVkKiIpLCBwYXJzZSgiZm8nbyIp
KTsKKyAgICBFWFBFQ1RfRVEoVG9rZW5zKCIqZmFpbGVkKiIpLCBwYXJzZSgiZm9vJyIpKTsKK30K
KworVEVTVF9GKERhdGVUaW1lRm9ybWF0VGVzdCwgUXVvdGUpCit7CisgICAgRVhQRUNUX0VRKFRv
a2VucygiRm9vQmFyIiksIHBhcnNlKCInRm9vQmFyJyIpKTsKKyAgICBFWFBFQ1RfRVEoVG9rZW5z
KCInIiksIHBhcnNlKCInJyIpKTsKKyAgICBFWFBFQ1RfRVEoVG9rZW5zKCInLSciKSwgcGFyc2Uo
IicnLScnIikpOworICAgIEVYUEVDVF9FUShUb2tlbnMoIkZvbydCYXIiKSwgcGFyc2UoIidGb28n
J0JhciciKSk7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBUb2tlbnMoVG9rZW4oRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUVyYSksIFRva2VuKCIncyIpKSwKKyAgICAgICAgcGFyc2UoIkcnJydz
JyIpKTsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFRva2VucyhUb2tlbihEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlRXJhKSwgVG9rZW4oIiciKSwgVG9rZW4oRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZVNlY29uZCkpLAorICAgICAgICBwYXJzZSgiRycncyIpKTsKK30KKworVEVTVF9GKERhdGVU
aW1lRm9ybWF0VGVzdCwgU2luZ2xlTG93ZXJDYXNlQ2hhcmFjdGVyKQoreworICAgIEVYUEVDVF9F
UShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdiJykpOworICAgIEVY
UEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTG9jYWxEYXlPZldlZWtTdGFuZEFsb24s
IHNpbmdsZSgnYycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURh
eU9mTW9udGgsIHNpbmdsZSgnZCcpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZUxvY2FsRGF5T2ZXZWVrLCBzaW5nbGUoJ2UnKSk7CisgICAgRVhQRUNUX0VRKERhdGVU
aW1lRm9ybWF0OjpGaWVsZFR5cGVNb2RpZmllZEp1bGlhbkRheSwgc2luZ2xlKCdnJykpOworICAg
IEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjEyLCBzaW5nbGUoJ2gnKSk7
CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjQsIHNpbmdsZSgn
aycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1pbnV0ZSwgc2lu
Z2xlKCdtJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlUXVhdGVy
U3RhbmRBbG9uZSwgc2luZ2xlKCdxJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlU2Vjb25kLCBzaW5nbGUoJ3MnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVFeHRlbmRlZFllYXIsIHNpbmdsZSgndScpKTsKKyAgICBFWFBFQ1RfRVEo
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU5vbkxvY2F0aW9uWm9uZSwgc2luZ2xlKCd2JykpOwor
ICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlV2Vla09mTW9udGgsIHNpbmds
ZSgndycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVllYXIsIHNp
bmdsZSgneScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVpvbmUs
IHNpbmdsZSgneicpKTsKK30KKworVEVTVF9GKERhdGVUaW1lRm9ybWF0VGVzdCwgU2luZ2xlTG93
ZXJDYXNlSW52YWxpZCkKK3sKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZVBlcmlvZCwgc2luZ2xlKCdhJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlSW52YWxpZCwgc2luZ2xlKCdmJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdpJykpOworICAgIEVYUEVDVF9FUShEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdqJykpOworICAgIEVYUEVDVF9FUShE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdsJykpOworICAgIEVYUEVD
VF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCduJykpOworICAg
IEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdvJykp
OworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xl
KCdwJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwg
c2luZ2xlKCdyJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52
YWxpZCwgc2luZ2xlKCd0JykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlSW52YWxpZCwgc2luZ2xlKCd4JykpOworfQorCitURVNUX0YoRGF0ZVRpbWVGb3JtYXRUZXN0
LCBTaW5nbGVVcHBlckNhc2VDaGFyYWN0ZXIpCit7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVNaWxsaXNlY29uZHNJbkRheSwgc2luZ2xlKCdBJykpOworICAgIEVYUEVD
VF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRGF5T2ZZZWFyLCBzaW5nbGUoJ0QnKSk7Cisg
ICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVEYXlPZldlZWssIHNpbmdsZSgn
RScpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZURheU9mV2Vla0lu
TW9udGgsIHNpbmdsZSgnRicpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZUVyYSwgc2luZ2xlKCdHJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlSG91cjIzLCBzaW5nbGUoJ0gnKSk7CisgICAgRVhQRUNUX0VRKERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVIb3VyMTEsIHNpbmdsZSgnSycpKTsKKyAgICBFWFBFQ1RfRVEoRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZU1vbnRoU3RhbmRBbG9uZSwgc2luZ2xlKCdMJykpOworICAgIEVYUEVD
VF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTW9udGgsIHNpbmdsZSgnTScpKTsKKyAgICBF
WFBFQ1RfRVEoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVF1YXRlciwgc2luZ2xlKCdRJykpOwor
ICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlRnJhY3Rpb25hbFNlY29uZCwg
c2luZ2xlKCdTJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlV2Vl
a09mWWVhciwgc2luZ2xlKCdXJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlWWVhck9mV2Vla09mWWVhciwgc2luZ2xlKCdZJykpOworICAgIEVYUEVDVF9FUShEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlUkZDODIyWm9uZSwgc2luZ2xlKCdaJykpOworfQorCitURVNU
X0YoRGF0ZVRpbWVGb3JtYXRUZXN0LCBTaW5nbGVVcHBlckNhc2VJbnZhbGlkKQoreworICAgIEVY
UEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdCJykpOwor
ICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdD
JykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2lu
Z2xlKCdJJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxp
ZCwgc2luZ2xlKCdKJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
SW52YWxpZCwgc2luZ2xlKCdOJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlSW52YWxpZCwgc2luZ2xlKCdPJykpOworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdQJykpOworICAgIEVYUEVDVF9FUShEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdSJykpOworICAgIEVYUEVDVF9FUShE
YXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdUJykpOworICAgIEVYUEVD
VF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdVJykpOworICAg
IEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xlKCdWJykp
OworICAgIEVYUEVDVF9FUShEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSW52YWxpZCwgc2luZ2xl
KCdYJykpOworfQorCisjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>