<?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>142687</bug_id>
          
          <creation_ts>2015-03-13 18:50:46 -0700</creation_ts>
          <short_desc>Parsing and Style Resolution of Container-based Animation Triggers</short_desc>
          <delta_ts>2015-03-17 11:24:26 -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>Animations</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>142755</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1077096</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-03-13 18:50:46 -0700</bug_when>
    <thetext>Prototype an implementation of animation-trigger, as described by
https://lists.w3.org/Archives/Public/www-style/2014Sep/0135.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077097</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-03-13 18:51:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/20162335&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077098</commentid>
    <comment_count>2</comment_count>
      <attachid>248632</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-03-13 18:52:30 -0700</bug_when>
    <thetext>Created attachment 248632
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077099</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-13 18:54:28 -0700</bug_when>
    <thetext>Attachment 248632 did not pass style-queue:


ERROR: Source/WebCore/css/CSSToStyleMap.cpp:529:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/animation/Animation.cpp:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/animation/Animation.cpp:151:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1229:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
ERROR: Source/WebCore/platform/animation/Animation.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/animation/Animation.h:189:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 7 in 29 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>1077357</commentid>
    <comment_count>4</comment_count>
      <attachid>248714</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-03-16 00:18:53 -0700</bug_when>
    <thetext>Created attachment 248714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077358</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-16 00:21:07 -0700</bug_when>
    <thetext>Attachment 248714 did not pass style-queue:


ERROR: Source/WebCore/platform/animation/Animation.h:202:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1236:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 3 in 21 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>1077359</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-03-16 00:22:58 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Attachment 248714 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR: Source/WebCore/platform/animation/Animation.h:202:  Please declare
&gt; enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
&gt; ERROR: Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1236:  Weird
&gt; number of spaces at line-start.  Are you using a 4-space indent? 
&gt; [whitespace/indent] [3]
&gt; ERROR: Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1237:  Weird
&gt; number of spaces at line-start.  Are you using a 4-space indent? 
&gt; [whitespace/indent] [3]
&gt; Total errors found: 3 in 21 files
&gt;

I don&apos;t like either of those warnings. I&apos;m going to file a bug for the first one at least.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077440</commentid>
    <comment_count>7</comment_count>
      <attachid>248730</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-03-16 10:22:13 -0700</bug_when>
    <thetext>Created attachment 248730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077443</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-16 10:25:19 -0700</bug_when>
    <thetext>Attachment 248730 did not pass style-queue:


ERROR: Source/WebCore/platform/animation/Animation.h:202:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1236:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 3 in 21 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>1077466</commentid>
    <comment_count>9</comment_count>
      <attachid>248730</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-16 10:55:26 -0700</bug_when>
    <thetext>Comment on attachment 248730
Patch

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

&gt; Source/WebCore/css/CSSAnimationTriggerScrollValue.cpp:37
&gt; +    if (m_hasEndValue)
&gt; +        return &quot;container-scroll(&quot; + m_startValue-&gt;cssText() + &quot;, &quot; + m_endValue-&gt;cssText() + &apos;)&apos;;
&gt; +    return &quot;container-scroll(&quot; + m_startValue-&gt;cssText() + &apos;)&apos;;

This should probably use StringBuilder.

&gt; Source/WebCore/css/CSSAnimationTriggerScrollValue.cpp:42
&gt; +    return m_startValue-&gt;equals(*other.m_startValue.get()) &amp;&amp; m_endValue-&gt;equals(*other.m_endValue.get()) &amp;&amp; m_hasEndValue == other.m_hasEndValue;

Check m_hasEndValue == other.m_hasEndValue before comparing m_endValues?

&gt; Source/WebCore/css/CSSAnimationTriggerScrollValue.h:44
&gt; +    CSSValue* startValue() const { return m_startValue.get(); }
&gt; +    CSSValue* endValue() const { return m_endValue.get(); }

Return const CSSValue*

&gt; Source/WebCore/css/CSSAnimationTriggerScrollValue.h:62
&gt; +    RefPtr&lt;CSSValue&gt; m_endValue;
&gt; +    bool m_hasEndValue;

Do you need to store m_hasEndValue rather than just null-check m_endValue?

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1230
&gt; +static Ref&lt;CSSValue&gt; createAnimationTriggerValue(const AnimationTrigger* trigger, const RenderStyle* style)

Pass AnimationTrigger by reference.

&gt; Source/WebCore/css/CSSParser.cpp:4768
&gt; +        if (!validateUnit(firstArgumentWithCalculation, FLength))

Has to be a length? No percentages?

&gt; Source/WebCore/css/CSSToStyleMap.h:71
&gt; +    void mapAnimationTrigger(Animation&amp;, CSSValue&amp;);

These CSSValue&amp; should all be const :|

&gt; Source/WebCore/platform/animation/Animation.h:141
&gt; +    const PassRefPtr&lt;AnimationTrigger&gt; trigger() const { return m_trigger; }

This should return a raw const*. You&apos;re not passing off ownership.

&gt; Source/WebCore/platform/animation/Animation.h:155
&gt; +    void setTrigger(PassRefPtr&lt;AnimationTrigger&gt; f) { m_trigger = f; m_triggerSet = true; }

f? Do you want to do m_triggerSet = true if the trigger is null?

&gt; Source/WebCore/platform/animation/AnimationTrigger.h:42
&gt; +    enum AnimationTriggerType {

enum class.

&gt; Source/WebCore/platform/animation/AnimationTrigger.h:101
&gt; +        if (other.isScrollAnimationTrigger()) {

Early return would be better.

&gt; Source/WebCore/platform/animation/AnimationTrigger.h:105
&gt; +            const ScrollAnimationTrigger* otherTrigger = static_cast&lt;const ScrollAnimationTrigger*&gt;(&amp;other);
&gt; +            return m_startValue == otherTrigger-&gt;m_startValue
&gt; +                &amp;&amp; m_endValue == otherTrigger-&gt;m_endValue
&gt; +                &amp;&amp; m_hasEndValue == otherTrigger-&gt;m_hasEndValue;

Doesn&apos;t ScrollAnimationTrigger have an operator== you can use?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077504</commentid>
    <comment_count>10</comment_count>
      <attachid>248730</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-03-16 11:43:48 -0700</bug_when>
    <thetext>Comment on attachment 248730
Patch

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

&gt;&gt; Source/WebCore/css/CSSAnimationTriggerScrollValue.cpp:37
&gt;&gt; +    return &quot;container-scroll(&quot; + m_startValue-&gt;cssText() + &apos;)&apos;;
&gt; 
&gt; This should probably use StringBuilder.

Done. Now:

    StringBuilder result;
    result.append(&quot;container-scroll(&quot;);
    result.append(m_startValue-&gt;cssText());
    if (m_hasEndValue) {
        result.append(&quot;, &quot;);
        result.append(m_endValue-&gt;cssText());
    }
    result.append(&apos;)&apos;);
    return result.toString();

&gt;&gt; Source/WebCore/css/CSSAnimationTriggerScrollValue.cpp:42
&gt;&gt; +    return m_startValue-&gt;equals(*other.m_startValue.get()) &amp;&amp; m_endValue-&gt;equals(*other.m_endValue.get()) &amp;&amp; m_hasEndValue == other.m_hasEndValue;
&gt; 
&gt; Check m_hasEndValue == other.m_hasEndValue before comparing m_endValues?

Done.

&gt;&gt; Source/WebCore/css/CSSAnimationTriggerScrollValue.h:44
&gt;&gt; +    CSSValue* endValue() const { return m_endValue.get(); }
&gt; 
&gt; Return const CSSValue*

Done

&gt;&gt; Source/WebCore/css/CSSAnimationTriggerScrollValue.h:62
&gt;&gt; +    bool m_hasEndValue;
&gt; 
&gt; Do you need to store m_hasEndValue rather than just null-check m_endValue?

Removed.

&gt;&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1230
&gt;&gt; +static Ref&lt;CSSValue&gt; createAnimationTriggerValue(const AnimationTrigger* trigger, const RenderStyle* style)
&gt; 
&gt; Pass AnimationTrigger by reference.

I don&apos;t think there is any need to do this, and the rest of CSSComputedStyleDeclaration passes around the const pointers here.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:4768
&gt;&gt; +        if (!validateUnit(firstArgumentWithCalculation, FLength))
&gt; 
&gt; Has to be a length? No percentages?

For now it is a length. I&apos;ll add percentages soon (and you&apos;ll definitely want them).

&gt;&gt; Source/WebCore/css/CSSToStyleMap.h:71
&gt;&gt; +    void mapAnimationTrigger(Animation&amp;, CSSValue&amp;);
&gt; 
&gt; These CSSValue&amp; should all be const :|

Separate patch.

&gt;&gt; Source/WebCore/platform/animation/Animation.h:141
&gt;&gt; +    const PassRefPtr&lt;AnimationTrigger&gt; trigger() const { return m_trigger; }
&gt; 
&gt; This should return a raw const*. You&apos;re not passing off ownership.

We can&apos;t do this due to the way StyleBuilder works. It expects to get and set RefPtrs.

&gt;&gt; Source/WebCore/platform/animation/Animation.h:155
&gt;&gt; +    void setTrigger(PassRefPtr&lt;AnimationTrigger&gt; f) { m_trigger = f; m_triggerSet = true; }
&gt; 
&gt; f? Do you want to do m_triggerSet = true if the trigger is null?

Yeah - we want to know if it is ever been changed from the initial value.

&gt;&gt; Source/WebCore/platform/animation/AnimationTrigger.h:42
&gt;&gt; +    enum AnimationTriggerType {
&gt; 
&gt; enum class.

Done

&gt;&gt; Source/WebCore/platform/animation/AnimationTrigger.h:105
&gt;&gt; +                &amp;&amp; m_hasEndValue == otherTrigger-&gt;m_hasEndValue;
&gt; 
&gt; Doesn&apos;t ScrollAnimationTrigger have an operator== you can use?

This is ScrollAnimationTrigger::operator== :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077519</commentid>
    <comment_count>11</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-03-16 12:09:39 -0700</bug_when>
    <thetext>Committed r181572: &lt;http://trac.webkit.org/changeset/181572&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077581</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-03-16 15:03:42 -0700</bug_when>
    <thetext>Looks like this broke a test:

https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=transitions%2Ftransitions-parsing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077589</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-03-16 15:28:26 -0700</bug_when>
    <thetext>Also this one: https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=animations%2Fanimation-shorthand.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077617</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-16 15:59:32 -0700</bug_when>
    <thetext>And now this one:
https://build.webkit.org/results/Apple%20Yosemite%20Release%20WK2%20(Tests)/r181581%20(3643)/animations/fill-unset-properties-pretty-diff.html

Every time, the parsed list values are in wrong order and on different tests. It looks like this patch caused weird side effects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077630</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-16 16:22:23 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 142755</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077915</commentid>
    <comment_count>16</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-03-17 11:24:26 -0700</bug_when>
    <thetext>Landed again in r181602</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248632</attachid>
            <date>2015-03-13 18:52:30 -0700</date>
            <delta_ts>2015-03-16 00:18:46 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-142687-20150313185203.patch</filename>
            <type>text/plain</type>
            <size>74018</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MmVhMTMyNmQ3M2YzYWEzOTczMzEwMzIyZTMyYTZlNTNiZmM2ZjAxLi44MzM1YzM0MjlkYThjMmI2
MjA4ZDljOGUyODllMjBlMWI3ZWJjNmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wMy0xMyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IEFuaW1hdGlvbiBUcmlnZ2VycyBwcm9wb3NhbAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxNS0wMy0xMiAgTWFyayBMYW0gIDxtYXJrLmxh
bUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hhbmdlIHRoZSBERkcgY3Jhc2hMb2NrIHRvIHVzZSBz
dGQ6OmF0b21pYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MGVmY2U0NzEwZTY3ZGMwMzk2MTdmY2UzNmRmYTdh
YjYxNWM5ZTVlLi4xZmM3M2Q4MjVmZTJjZGY2N2M3NTNjYTM1YjZmZjY2N2ZiNjY5OTFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTUtMDMtMTMgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBBbmltYXRpb24gVHJpZ2dlcnMgcHJvcG9z
YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjY4
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldEFu
aW1hdGlvblRyaWdnZXJzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjphbmltYXRpb25UcmlnZ2Vyc0VuYWJsZWQpOgorICAgICAgICAqIGNzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQW5p
bWF0aW9uVHJpZ2dlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEFuaW1hdGlvblRyaWdn
ZXJWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9w
ZXJ0eVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OnBhcnNlQW5pbWF0aW9uVHJpZ2dlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlQW5pbWF0aW9uUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAg
ICAgKiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5pbjoKKyAgICAgICAgKiBjc3MvQ1NTVG9TdHlsZU1h
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25Ucmln
Z2VyKToKKyAgICAgICAgKiBjc3MvQ1NTVG9TdHlsZU1hcC5oOgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6ZXF1YWxzKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVl
OjpkZXN0cm95KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1ZhbHVlOjppc0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZSk6CisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZW5kU2Nyb2xs
RXZlbnQpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6dXBkYXRlU3RhdGVNYWNoaW5lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OmZpcmVBbmltYXRpb25FdmVudHNJZk5lZWRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjp0aW1lVG9OZXh0U2VydmljZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjpnZXRFbGFwc2VkVGltZSk6CisgICAgICAg
ICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6ZW5zdXJlQ29tcG9zaXRlQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpiZWdpbkFu
aW1hdGlvblVwZGF0ZVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxl
clByaXZhdGU6OnNjcm9sbFdhc1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9u
Q29udHJvbGxlcjo6c2Nyb2xsV2FzVXBkYXRlZCk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlLmg6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRl
QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6Q29t
cG9zaXRlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6
dXBkYXRlS2V5ZnJhbWVBbmltYXRpb25zKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9Db21w
b3NpdGVBbmltYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6
aGFzU2Nyb2xsVHJpZ2dlcmVkQW5pbWF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRp
b24vQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6QW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvbjo6YW5pbWF0aW9uc01hdGNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
bmltYXRpb24vQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmlzVHJp
Z2dlclNldCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmlzRW1wdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6QW5pbWF0aW9uOjpjbGVhclRyaWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6
QW5pbWF0aW9uOjpjbGVhckFsbCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OnRyaWdn
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uOjpzZXRUcmlnZ2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OkFuaW1hdGlvbjo6aW5pdGlhbFRyaWdnZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ0E6OmFuaW1hdGlvbkNhbkJlQWNjZWxlcmF0ZWQpOgorCiAyMDE1LTAzLTEzICBK
b29uZ2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBGaXggRGVi
dWcgYnVpbGQgZXJyb3IgJ2NvbXBhcmlzb24gaXMgYWx3YXlzIHRydWUgZHVlIHRvIGxpbWl0ZWQg
cmFuZ2Ugb2YgZGF0YSB0eXBlIFstV2Vycm9yPXR5cGUtbGltaXRzXScKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpp
bmRleCAxMjg3ZTM2YmU4OTM4NWUwNDk5M2I0YWM3MmUyMmJjOTdlMGM2ODgzLi43ODgzZjU3ZThm
MWVlMjBiMTI1NWU3ZDFkODc4N2VjNThiMmNjMjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTUtMDMtMTMgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisg
ICAgICAgIEltcGxlbWVudCBBbmltYXRpb24gVHJpZ2dlcnMgcHJvcG9zYWwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjY4NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTUtMDMtMTAgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBBbGxvdyBhZGRpbmcgYSBidXR0b24gaW4gaW5wdXQgZWxlbWVu
dHMgZm9yIGF1dG8gZmlsbCByZWxhdGVkIGZ1bmN0aW9uYWxpdHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhNjk3
YWQ2YmY2ZTFmZGUwMGFkMGZjYTczMTRkODUwMWExMjVkYjI1Li45M2M4YTAzNjA3M2JjYWRlZjc4
OGE4MjdjOTFmZDBlMTYxMWE3ZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUt
MDMtMTMgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBBbmltYXRpb24gVHJpZ2dlcnMgcHJvcG9zYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjY4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWc6CisKIDIwMTUtMDMtMTIgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNv
bT4KIAogICAgICAgICBVc2UgVUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlciB0byBhbGxvdyBz
ZWxlY3Rpb24gb2YgZmlsZXMgZnJvbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGFkMGI4
ZThjNGM2ZmY4MGUxMzJjMjlhYTgwNjQwMDBjM2Q2ZGQ3YTkuLjQ3MmNjYzBjZDNlNTgxNzY3YWVm
NjFkYTcwMDUyMWNkMThmOTY3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTQ3LDYg
KzQ3LDcgQEAgRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HID0gRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HOwogRU5BQkxFX0VTNl9DTEFTU19TWU5UQVggPSA7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJ
TkcgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ1NQX05FWFQgPSA7CitFTkFC
TEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMiA9IEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8y
OwogRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyA9IEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUs7CiBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HID0gRU5BQkxFX0NTU19DT01QT1NJ
VElORzsKIEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04gPSA7CkBAIC0yMDksNCArMjEwLDQg
QEAgRU5BQkxFX0xMSU5UX0NfTE9PUCA9IDsKIAogRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJ
VEhNRVRJQyA9IEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUM7CiAKLUZFQVRVUkVf
REVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxF
X0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9DQUNI
RV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJP
WFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFY
KSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxF
X0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVO
QUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChF
TkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElP
TikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAk
KEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVY
VF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9N
X1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFU
QUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVU
QUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRf
RVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VO
Q1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GT05U
X0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkg
JChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFC
TEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0lDT05EQVRBQkFT
RSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkg
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BP
VkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfV0VFSykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJM
RV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5B
QkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVT
KSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9Q
UkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTEVUVEVSUFJFU1Mp
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
Q09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJM
RV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAk
KEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykg
JChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9Q
Uk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJ
WF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
ICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9S
KSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SVUJCRVJfQkFORElO
RykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAk
KEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZH
X0ZPTlRTKSAkKEVOQUJMRV9TVkdfT1RGX0NPTlZFUlRFUikgJChFTkFCTEVfVEVMRVBIT05FX05V
TUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRf
QVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xP
QURJTkcpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FM
TCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VF
X1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChF
TkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VU
UykgJChFTkFCTEVfUElDVFVSRV9TSVpFUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVf
V0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVO
QUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1ApICQoRU5BQkxFX1NBVFVSQVRFRF9M
QVlPVVRfQVJJVEhNRVRJQykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpOworRkVB
VFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChF
TkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxF
X0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZB
U19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0VTNl9DTEFTU19T
WU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChF
TkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURB
UFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVH
SU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMp
ICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5B
QkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQo
RU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVO
QUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1Ip
ICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAk
KEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RF
UFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01f
VElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVO
QUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5U
UykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5U
UykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9M
RUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVG
RVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQo
RU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVf
TUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9I
V0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExV
R0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9Q
Uk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FV
T1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVTVF9B
VVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJ
T05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NS
T0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJ
KSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NW
R19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChF
TkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJM
RV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfQ1NT
X1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJ
RVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQo
RU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJF
X1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChF
TkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5B
QkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAk
KEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGFkMGI4ZThj
NGM2ZmY4MGUxMzJjMjlhYTgwNjQwMDBjM2Q2ZGQ3YTkuLjQ3MmNjYzBjZDNlNTgxNzY3YWVmNjFk
YTcwMDUyMWNkMThmOTY3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00Nyw2ICs0Nyw3IEBAIEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORyA9IEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORzsKIEVOQUJMRV9FUzZf
Q0xBU1NfU1lOVEFYID0gOwogRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HID0gRU5BQkxFX0NPTlRF
TlRfRklMVEVSSU5HOwogRU5BQkxFX0NTUF9ORVhUID0gOworRU5BQkxFX0NTU19BTklNQVRJT05T
X0xFVkVMXzIgPSBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMjsKIEVOQUJMRV9DU1NfQk9Y
X0RFQ09SQVRJT05fQlJFQUsgPSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLOwogRU5B
QkxFX0NTU19DT01QT1NJVElORyA9IEVOQUJMRV9DU1NfQ09NUE9TSVRJTkc7CiBFTkFCTEVfQ1NT
X0RFVklDRV9BREFQVEFUSU9OID0gOwpAQCAtMjA5LDQgKzIxMCw0IEBAIEVOQUJMRV9MTElOVF9D
X0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMgPSBFTkFCTEVf
U0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQo
RU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAk
KEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJ
T05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9B
REFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9P
UklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19S
RUdJT05TKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1NIQVBF
UykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChF
TkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikg
JChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RP
UikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIp
ICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChF
TkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURf
REVQUkVDQVRFRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RP
TV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJ
Q0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05U
SCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQo
RU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZF
TlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZF
TlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZ
X05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxF
X0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BS
RUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1ND
QUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9S
X0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9Q
TFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxF
X1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVf
UVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVFVRVNU
X0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xV
VElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX0NTU19T
Q1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19B
UEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVf
U1ZHX09URl9DT05WRVJURVIpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAk
KEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5B
QkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9D
U1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVP
KSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVf
VklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RV
UkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAk
KEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChF
TkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMp
ICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQo
RU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9O
UykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05J
TkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYKSAkKEVOQUJMRV9D
T05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19BTklNQVRJ
T05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVf
Q1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxF
X0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJM
RV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NT
U19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX1RF
WFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJ
TElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZF
Ul9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNSWVBU
RURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSU19M
RVZFTF8yKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcp
ICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJT
KSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19U
RVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xFR0FD
WV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChF
TkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykg
JChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01B
VEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VS
Q0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQo
RU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklH
QVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChF
TkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9J
TlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykg
JChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVO
QUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAk
KEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJM
RV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VCVExF
X0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfT1RGX0NPTlZFUlRFUikg
JChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VM
RU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAk
KEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAk
KEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RS
QUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElB
KSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZ
KSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9TSVpFUykgJChFTkFCTEVf
V0VCX1RJTUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VU
KSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1Ap
ICQoRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChFTkFCTEVfVklERU9fUFJF
U0VOVEFUSU9OX01PREUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDMwMDIwMWFhNDY1MTIyMGFjZTU4OWIxNjMzNzZhZmRjZDNm
NWFmMjIuLjNiZWYxYzdmYjNkOGE1NGYyNzliYzNiZDM1ODcyNmEyMDIzZTM4YTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEy
ODAsNiArMTI4MCw5IEBACiAJCTMxQTc5NUM3MTg4OEJDQjIwMDM4MkY5MCAvKiBBTkdMRUluc3Rh
bmNlZEFycmF5cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzFBNzk1QzIxODg4QjcyNDAwMzgyRjkwIC8qIEFOR0xFSW5zdGFuY2VkQXJyYXlzLmggKi87
IH07CiAJCTMxQTc5NUM4MTg4OEJDQjUwMDM4MkY5MCAvKiBBTkdMRUluc3RhbmNlZEFycmF5cy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUE3OTVD
MTE4ODhCNzI0MDAzODJGOTAgLyogQU5HTEVJbnN0YW5jZWRBcnJheXMuY3BwICovOyB9OwogCQkz
MUFCNTAwMDEyMjg3OEEyMDAxQTdEQjAgLyogR3JhcGhpY3NDb250ZXh0M0RJT1MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQUI0RkZGMTIyODc4QTIw
MDFBN0RCMCAvKiBHcmFwaGljc0NvbnRleHQzRElPUy5oICovOyB9OworCQkzMUJDNzQyQTFBQUZG
NDE0MDA2QjQzNDAgLyogQW5pbWF0aW9uVHJpZ2dlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFCQzc0MjkxQUFGRjQwOTAwNkI0MzQwIC8qIEFuaW1h
dGlvblRyaWdnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkzMUJDNzQyRDFBQUZGNDVDMDA2QjQzNDAgLyogQ1NTQW5pbWF0aW9uVHJpZ2dlclNj
cm9sbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxQkM3NDJCMUFBRkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xs
VmFsdWUuY3BwICovOyB9OworCQkzMUJDNzQyRTFBQUZGNDVDMDA2QjQzNDAgLyogQ1NTQW5pbWF0
aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUJDNzQyQzFBQUZGNDVDMDA2QjQzNDAgLyogQ1NTQW5pbWF0aW9uVHJp
Z2dlclNjcm9sbFZhbHVlLmggKi87IH07CiAJCTMxQzBGRjIxMEU0Q0VCNkUwMDdENkZFNSAvKiBX
ZWJLaXRBbmltYXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUMwRkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9u
RXZlbnQuY3BwICovOyB9OwogCQkzMUMwRkYyMjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5p
bWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxQzBGRjFDMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICov
OyB9OwogCQkzMUMwRkYyNDBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBG
RjFFMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwICovOyB9OwpA
QCAtODM3Niw2ICs4Mzc5LDkgQEAKIAkJMzFBNzk1QzQxODg4QkFEMTAwMzgyRjkwIC8qIEpTQU5H
TEVJbnN0YW5jZWRBcnJheXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNBTkdMRUluc3RhbmNlZEFycmF5cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxQTc5NUM1MTg4OEJBRDEwMDM4MkY5MCAvKiBKU0FOR0xFSW5zdGFuY2VkQXJyYXlzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQU5HTEVJbnN0YW5jZWRBcnJheXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBQjRGRkYxMjI4NzhBMjAwMUE3REIw
IC8qIEdyYXBoaWNzQ29udGV4dDNESU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dDNESU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxQkM3NDI5MUFBRkY0MDkwMDZCNDM0MCAvKiBBbmltYXRpb25UcmlnZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFuaW1hdGlvblRyaWdnZXIuaDsgcGF0aCA9IGFuaW1h
dGlvbi9BbmltYXRpb25UcmlnZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMx
QkM3NDJCMUFBRkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQW5pbWF0aW9uVHJp
Z2dlclNjcm9sbFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFCQzc0
MkMxQUFGRjQ1QzAwNkI0MzQwIC8qIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xs
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUIwRTRDRUI2RTAw
N0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlv
bkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdEFuaW1hdGlv
bkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFEMEU0Q0VCNkUw
MDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTYxMzYsNiArMTYxNDIsNyBAQAogCQk0OUU5MTJBNDBFRkFDOEU2MDA5RDBDQUYgLyogYW5p
bWF0aW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkz
MUJDNzQyOTFBQUZGNDA5MDA2QjQzNDAgLyogQW5pbWF0aW9uVHJpZ2dlci5oICovLAogCQkJCTQ5
RTkxMkE1MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb24uY3BwICovLAogCQkJCTQ5RTkxMkE2
MEVGQUM5MDYwMDlEMENBRiAvKiBBbmltYXRpb24uaCAqLywKIAkJCQk0OUU5MTJBNzBFRkFDOTA2
MDA5RDBDQUYgLyogQW5pbWF0aW9uTGlzdC5jcHAgKi8sCkBAIC0yMjE4MCw2ICsyMjE4Nyw4IEBA
CiAJCUY1MjNEMTg0MDJERTQyRTgwMTg2MzVDQSAvKiBjc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTMxQkM3NDJCMUFBRkY0NUMwMDZCNDM0MCAvKiBD
U1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwICovLAorCQkJCTMxQkM3NDJDMUFBRkY0
NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuaCAqLywKIAkJCQk4
MzUyMEM3RDFBNzFCRkNDMDA2QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovLAogCQkJCUZCRDZB
Rjg0MTVFRjIxRDQwMDhCNzExMCAvKiBCYXNpY1NoYXBlRnVuY3Rpb25zLmNwcCAqLywKIAkJCQlG
QkQ2QUY4NTE1RUYyMUQ0MDA4QjcxMTAgLyogQmFzaWNTaGFwZUZ1bmN0aW9ucy5oICovLApAQCAt
MjQzMTYsNiArMjQzMjUsNyBAQAogCQkJCTg1MThERDc4MEE5Q0YzMUIwMDkxQjdBNiAvKiBET01O
YW1lZE5vZGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUQyMEFDNUQ1MzUwMDUzMjcw
RiAvKiBET01OYW1lZE5vZGVNYXBJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUzQkY0
REIwQUJCNkI1NTAwODY0N0JCIC8qIERPTU5vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQkM3
NDJFMUFBRkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTg1NDA3NTI2MEFENkM2NjcwMDYyMEM1NyAvKiBET01Ob2RlRmls
dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUI0OThGQjBBREIzNDAyMDA5MjVDQkIgLyogRE9N
Tm9kZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTUyNkMzNzBBQjBBMTdFMDAwMzAy
RUEgLyogRE9NTm9kZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTI2NTY2LDYgKzI2NTc2
LDcgQEAKIAkJCQk4M0MxRDQzNDE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0xpbmV0b1Zl
cnRpY2FsUmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E4MTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzZDOUU2MTFERjZBMEIw
MDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMx
QkM3NDJBMUFBRkY0MTQwMDZCNDM0MCAvKiBBbmltYXRpb25UcmlnZ2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODRBMDgyOTEyOEQ3ODY3MDAyREIxRjEgLyogU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAv
KiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNDMUQ0MzUxNzhE
NUFCNTAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9BYnMuaCBpbiBIZWFkZXJzICovLApAQCAt
Mjk4OTQsNiArMjk5MDUsNyBAQAogCQkJCUIyOEM2QTI5MEQwMEM0NDgwMDMzNEFBNCAvKiBTVkdJ
bWFnZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0EyRjBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHTGFuZ1NwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QTMyMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdMZW5ndGguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzFCQzc0MkQx
QUFGRjQ1QzAwNkI0MzQwIC8qIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3MTM0NDk2RDE0Njk0MUIzMDA3MjAzMTIgLyogU1ZHTGVuZ3RoQ29u
dGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0EzNTBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHTGVuZ3RoTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0EzODBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5jcHAKaW5kZXggNjU1ZTg0YWY3ZTI2ZjYzNjQ0MTFjZDNkM2MyZmUyZTJhZjQ3
YzQ2YS4uNTcwM2JkY2Q2M2RjZDlmMWIzZDAwNTJmZGJjYzUzZjJkMDBhYzdmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuY3BwCkBAIC05OSw2ICs5OSw5IEBAIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXMoKQogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgICwgbV9hcmVH
YW1lcGFkc0VuYWJsZWQoZmFsc2UpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNf
TEVWRUxfMikKKyAgICAsIG1fYXJlQW5pbWF0aW9uVHJpZ2dlcnNFbmFibGVkKGZhbHNlKQorI2Vu
ZGlmCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggMTIyOGJjNzE0MDIwMzdhYmNjNmJjMGUw
ZmFhMmU1MjBiZjlhZGU4Yy4uYjllNjQzZjYyZDRiNjc4YzBlYWE5MWNmZTdhMGVlMWNjN2E2Y2Zm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTE5Niw2ICsxOTYsMTEgQEAgcHVibGljOgogICAgIGJv
b2wgZ2FtZXBhZHNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hcmVHYW1lcGFkc0VuYWJsZWQ7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgdm9p
ZCBzZXRBbmltYXRpb25UcmlnZ2Vyc0VuYWJsZWQoYm9vbCBhcmVFbmFibGVkKSB7IG1fYXJlQW5p
bWF0aW9uVHJpZ2dlcnNFbmFibGVkID0gYXJlRW5hYmxlZDsgfQorICAgIGJvb2wgYW5pbWF0aW9u
VHJpZ2dlcnNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hcmVBbmltYXRpb25UcmlnZ2Vyc0Vu
YWJsZWQ7IH0KKyNlbmRpZgorCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMmIHNoYXJlZEZlYXR1cmVzKCk7CiAKIHByaXZhdGU6CkBAIC0yNzEsNiArMjc2
LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2FyZUdhbWVwYWRzRW5hYmxlZDsKICNlbmRpZgog
CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgYm9vbCBtX2FyZUFuaW1h
dGlvblRyaWdnZXJzRW5hYmxlZDsKKyNlbmRpZgorCiAgICAgZnJpZW5kIGNsYXNzIFdURjo6TmV2
ZXJEZXN0cm95ZWQ8UnVudGltZUVuYWJsZWRGZWF0dXJlcz47CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGJjOGY1
OTg3ZmYyYjg2MDJlYWFlNjlkZDM4MjU3N2JiYWE4MmI3YjUuLmJiMmRiMzI0NWYzYTBiMmVlODdk
OTI1ZDhhN2EzOGVhOWZmNzEwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAi
QW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkJhc2ljU2hhcGVGdW5jdGlvbnMuaCIK
ICNpbmNsdWRlICJCYXNpY1NoYXBlcy5oIgorI2luY2x1ZGUgIkNTU0FuaW1hdGlvblRyaWdnZXJT
Y3JvbGxWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0FzcGVjdFJhdGlvVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NCYXNpY1NoYXBlcy5oIgogI2luY2x1ZGUgIkNTU0JvcmRlckltYWdlLmgiCkBAIC0xMjIx
LDYgKzEyMjIsMzMgQEAgc3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IGdldFRpbWluZ0Z1bmN0aW9u
VmFsdWUoY29uc3QgQW5pbWF0aW9uTGlzdCogYW5pbUxpc3QpCiAgICAgcmV0dXJuIGxpc3Q7CiB9
CiAKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKK3N0YXRpYyBSZWY8Q1NTVmFs
dWU+IGNyZWF0ZUFuaW1hdGlvblRyaWdnZXJWYWx1ZShjb25zdCBBbmltYXRpb25UcmlnZ2VyKiB0
cmlnZ2VyKQoreworICAgIHN3aXRjaCAodHJpZ2dlci0+dHlwZSgpKSB7CisgICAgICAgIGNhc2Ug
QW5pbWF0aW9uVHJpZ2dlcjo6U2Nyb2xsQW5pbWF0aW9uVHJpZ2dlclR5cGU6IHsKKyAgICAgICAg
ICAgIGNvbnN0IFNjcm9sbEFuaW1hdGlvblRyaWdnZXIqIHNjcm9sbEFuaW1hdGlvblRyaWdnZXIg
PSBzdGF0aWNfY2FzdDxjb25zdCBTY3JvbGxBbmltYXRpb25UcmlnZ2VyKj4odHJpZ2dlcik7Cisg
ICAgICAgICAgICByZXR1cm4gQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpjcmVhdGUo
c2Nyb2xsQW5pbWF0aW9uVHJpZ2dlci0+c3RhcnRWYWx1ZSgpLCBzY3JvbGxBbmltYXRpb25Ucmln
Z2VyLT5lbmRWYWx1ZSgpLCBzY3JvbGxBbmltYXRpb25UcmlnZ2VyLT5oYXNFbmRWYWx1ZSgpKTsK
KyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUKHRyaWdnZXIt
PnR5cGUoKSA9PSBBbmltYXRpb25UcmlnZ2VyOjpBdXRvQW5pbWF0aW9uVHJpZ2dlclR5cGUpOwor
ICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShD
U1NWYWx1ZUF1dG8pOworICAgIH0KK30KKworc3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IGdldEFu
aW1hdGlvblRyaWdnZXJWYWx1ZShjb25zdCBBbmltYXRpb25MaXN0KiBhbmltTGlzdCkKK3sKKyAg
ICBhdXRvIGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAg
aWYgKGFuaW1MaXN0KSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYW5pbUxpc3Qt
PnNpemUoKTsgKytpKQorICAgICAgICAgICAgbGlzdC5nZXQoKS5hcHBlbmQoY3JlYXRlQW5pbWF0
aW9uVHJpZ2dlclZhbHVlKGFuaW1MaXN0LT5hbmltYXRpb24oaSkudHJpZ2dlcigpLmdldCgpKSk7
CisgICAgfSBlbHNlCisgICAgICAgIGxpc3QuZ2V0KCkuYXBwZW5kKGNyZWF0ZUFuaW1hdGlvblRy
aWdnZXJWYWx1ZShBbmltYXRpb246OmluaXRpYWxUcmlnZ2VyKCkuZ2V0KCkpKTsKKworICAgIHJl
dHVybiBsaXN0OworfQorI2VuZGlmCisKIHN0YXRpYyBSZWY8Q1NTVmFsdWU+IGNyZWF0ZUxpbmVC
b3hDb250YWluVmFsdWUodW5zaWduZWQgbGluZUJveENvbnRhaW4pCiB7CiAgICAgaWYgKCFsaW5l
Qm94Q29udGFpbikKQEAgLTI3MjAsNiArMjc0OCwxMCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBD
b21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVy
dAogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRpb25UaW1pbmdGdW5jdGlvbjoKICAgICAg
ICAgICAgIHJldHVybiBnZXRUaW1pbmdGdW5jdGlvblZhbHVlKHN0eWxlLT5hbmltYXRpb25zKCkp
OworI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAgICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0QW5pbWF0aW9uVHJpZ2dlcjoKKyAgICAgICAgICAgIHJldHVybiBnZXRBbmlt
YXRpb25UcmlnZ2VyVmFsdWUoc3R5bGUtPmFuaW1hdGlvbnMoKSk7CisjZW5kaWYKICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFwcGVhcmFuY2U6CiAgICAgICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc3R5bGUtPmFwcGVhcmFuY2UoKSk7CiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRBc3BlY3RSYXRpbzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
aW5kZXggZDY4YTczNDZkYTIwYTZjZDA2MDFmODI1OGY1NDZjNTliOTczOGQzZS4uZjI2YTc3ZWJk
ZmQ4NjE3NzBlM2Q5ZWI2NWUwZGM3Mjg0YjdjODBkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NQ
YXJzZXIuaCIKIAorI2luY2x1ZGUgIkNTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oIgog
I2luY2x1ZGUgIkNTU0FzcGVjdFJhdGlvVmFsdWUuaCIKICNpbmNsdWRlICJDU1NCYXNpY1NoYXBl
cy5oIgogI2luY2x1ZGUgIkNTU0JvcmRlckltYWdlLmgiCkBAIC0yNjg5LDYgKzI2OTAsOSBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBv
cnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblBsYXlTdGF0ZToKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOgorI2lmIEVOQUJMRShD
U1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBbmltYXRp
b25UcmlnZ2VyOgorI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25EZWxheToK
ICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbkR1cmF0aW9uOgogICAgIGNhc2UgQ1NTUHJv
cGVydHlUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb246CkBAIC00NzQzLDYgKzQ3NDcsNDggQEAgUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblBsYXlTdGF0ZSgpCiAg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxf
MikKK1Bhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VBbmltYXRpb25UcmlnZ2Vy
KCkKK3sKKyAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgp
OworICAgIGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVBdXRvKQorICAgICAgICByZXR1cm4gY3Nz
VmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7CisKKyAgICBp
ZiAodmFsdWUtPnVuaXQgIT0gQ1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIENTU1BhcnNlclZhbHVlTGlzdCogYXJncyA9IHZhbHVlLT5mdW5jdGlvbi0+
YXJncy5nZXQoKTsKKworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZS0+ZnVuY3Rpb24t
Pm5hbWUsICJzY3JvbGwoIikpIHsKKyAgICAgICAgaWYgKCFhcmdzIHx8IChhcmdzLT5zaXplKCkg
IT0gMSAmJiBhcmdzLT5zaXplKCkgIT0gMykpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAg
ICAgICBDU1NQYXJzZXJWYWx1ZSogYXJndW1lbnQgPSBhcmdzLT5jdXJyZW50KCk7CisgICAgICAg
IFZhbHVlV2l0aENhbGN1bGF0aW9uIGZpcnN0QXJndW1lbnRXaXRoQ2FsY3VsYXRpb24oKmFyZ3Vt
ZW50KTsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZVVuaXQoZmlyc3RBcmd1bWVudFdpdGhDYWxjdWxh
dGlvbiwgRk51bWJlcikpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgZG91YmxlIHN0
YXJ0VmFsdWUgPSBwYXJzZWREb3VibGUoZmlyc3RBcmd1bWVudFdpdGhDYWxjdWxhdGlvbik7CisK
KyAgICAgICAgYXJndW1lbnQgPSBhcmdzLT5uZXh0KCk7CisKKyAgICAgICAgaWYgKCFhcmd1bWVu
dCkKKyAgICAgICAgICAgIHJldHVybiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmNy
ZWF0ZShzdGFydFZhbHVlKTsKKworICAgICAgICBpZiAoIWlzQ29tbWEoYXJndW1lbnQpKQorICAg
ICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgYXJndW1lbnQgPSBhcmdzLT5uZXh0KCk7Cisg
ICAgICAgIFZhbHVlV2l0aENhbGN1bGF0aW9uIHNlY29uZEFyZ3VtZW50V2l0aENhbGN1bGF0aW9u
KCphcmd1bWVudCk7CisgICAgICAgIGlmICghdmFsaWRhdGVVbml0KHNlY29uZEFyZ3VtZW50V2l0
aENhbGN1bGF0aW9uLCBGTnVtYmVyKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBk
b3VibGUgZW5kVmFsdWUgPSBwYXJzZWREb3VibGUoc2Vjb25kQXJndW1lbnRXaXRoQ2FsY3VsYXRp
b24pOworICAgICAgICByZXR1cm4gQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpjcmVh
dGUoc3RhcnRWYWx1ZSwgZW5kVmFsdWUsIHRydWUpOworICAgIH0KKworICAgIHJldHVybiAwOwor
fQorI2VuZGlmCisKIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VBbmltYXRp
b25Qcm9wZXJ0eShBbmltYXRpb25QYXJzZUNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgQ1NTUGFy
c2VyVmFsdWUmIHZhbHVlID0gKm1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CkBAIC00OTgwLDYgKzUw
MjYsMTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9uUHJvcGVydHkoQ1NTUHJvcGVy
dHlJRCBwcm9wSWQsIFJlZlB0cjxDU1NWYWx1ZT4mIHIKICAgICAgICAgICAgICAgICBpZiAoY3Vy
clZhbHVlKQogICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAg
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblRyaWdnZXI6CisgICAgICAg
ICAgICAgICAgY3VyclZhbHVlID0gcGFyc2VBbmltYXRpb25UcmlnZ2VyKCk7CisgICAgICAgICAg
ICAgICAgaWYgKGN1cnJWYWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgbV92YWx1ZUxpc3QtPm5l
eHQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggNTM1ZDIyMmQ0OTRiMzU5
MzRkZDI0ZGY2ZTIwYTNkODQxOTQzNjE0Yi4uODdmYmI2M2I0YjAwNDlhZjAyODJjYjk3MDk3MWFm
YWRkOGZkNWU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMTgxLDYgKzE4MSw5IEBAIHB1
YmxpYzoKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUFuaW1hdGlvblBsYXlTdGF0ZSgp
OwogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlQW5pbWF0aW9uUHJvcGVydHkoQW5pbWF0
aW9uUGFyc2VDb250ZXh0Jik7CiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VBbmltYXRp
b25UaW1pbmdGdW5jdGlvbigpOworI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQor
ICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlQW5pbWF0aW9uVHJpZ2dlcigpOworI2VuZGlm
CiAgICAgc3RhdGljIFZlY3Rvcjxkb3VibGU+IHBhcnNlS2V5ZnJhbWVTZWxlY3Rvcihjb25zdCBT
dHJpbmcmKTsKIAogICAgIGJvb2wgcGFyc2VUcmFuc2Zvcm1PcmlnaW5TaG9ydGhhbmQoUmVmUHRy
PENTU1ZhbHVlPiYsIFJlZlB0cjxDU1NWYWx1ZT4mLCBSZWZQdHI8Q1NTVmFsdWU+Jik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDEyMWQ2Mzc1ZjQ4NmFkZGY2ZDY0
N2NlNTBjYmY4NWIwYjk0MWI0ZDIuLmI0ZjMxY2UwYmExNDE4ZDQ3YzA1YjI5M2UyZWM0OGMyMzQ2
ODEwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC0zNjcsNiAr
MzY3LDkgQEAgYWx0IFtOYW1lRm9yTWV0aG9kcz1Db250ZW50QWx0VGV4dCwgQ3VzdG9tPVZhbHVl
XQogLXdlYmtpdC1hbmltYXRpb24tbmFtZSBbQW5pbWF0aW9uUHJvcGVydHksIE5hbWVGb3JNZXRo
b2RzPU5hbWVdCiAtd2Via2l0LWFuaW1hdGlvbi1wbGF5LXN0YXRlIFtBbmltYXRpb25Qcm9wZXJ0
eSwgTmFtZUZvck1ldGhvZHM9UGxheVN0YXRlXQogLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1
bmN0aW9uIFtBbmltYXRpb25Qcm9wZXJ0eSwgTmFtZUZvck1ldGhvZHM9VGltaW5nRnVuY3Rpb25d
CisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJiYgRU5BQkxFX0NT
U19BTklNQVRJT05TX0xFVkVMXzIKKy13ZWJraXQtYW5pbWF0aW9uLXRyaWdnZXIgW0FuaW1hdGlv
blByb3BlcnR5LCBOYW1lRm9yTWV0aG9kcz1UaW1pbmdGdW5jdGlvbl0KKyNlbmRpZgogLXdlYmtp
dC1hcHBlYXJhbmNlCiAtd2Via2l0LWFzcGVjdC1yYXRpbyBbSW5oZXJpdGVkLCBDdXN0b209QWxs
XQogLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1h
cC5jcHAKaW5kZXggZGM2MWE1YzVlMzYwODU1MGU2MWJjZDUwM2I4MjhiYzFlMWRlOTBhOS4uMjQw
YzM2Nzg2MDg3ODUwZWZhMDhlOGY4ODkwZGUyOGUzOTlmNTk1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NUb1N0eWxlTWFwLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNTU1RvU3R5bGVN
YXAuaCIKIAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIkNTU0FuaW1hdGlvblRy
aWdnZXJTY3JvbGxWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0JvcmRlckltYWdlU2xpY2VWYWx1ZS5o
IgogI2luY2x1ZGUgIkNTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaCIKICNpbmNsdWRlICJDU1NJbWFn
ZVNldFZhbHVlLmgiCkBAIC01MTMsNiArNTE0LDI5IEBAIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFw
QW5pbWF0aW9uVGltaW5nRnVuY3Rpb24oQW5pbWF0aW9uJiBhbmltYXRpb24sIENTU1ZhbHVlJiB2
CiAgICAgfQogfQogCisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCit2b2lkIENT
U1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvblRyaWdnZXIoQW5pbWF0aW9uJiBhbmltYXRpb24sIENT
U1ZhbHVlJiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUuaXNJbml0aWFsVmFsdWUoKSkgeworICAg
ICAgICBhbmltYXRpb24uc2V0VHJpZ2dlcihBbmltYXRpb246OmluaXRpYWxUcmlnZ2VyKCkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHZhbHVlLmlzUHJpbWl0aXZlVmFsdWUo
KSkgeworICAgICAgICBhdXRvJiBwcmltaXRpdmVWYWx1ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlPih2YWx1ZSk7CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkg
PT0gQ1NTVmFsdWVBdXRvKSB7CisgICAgICAgICAgICBhbmltYXRpb24uc2V0VHJpZ2dlcihBdXRv
QW5pbWF0aW9uVHJpZ2dlcjo6Y3JlYXRlKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAodmFsdWUuaXNBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUoKSkg
eworICAgICAgICBhdXRvJiBzY3JvbGxUcmlnZ2VyID0gZG93bmNhc3Q8Q1NTQW5pbWF0aW9uVHJp
Z2dlclNjcm9sbFZhbHVlPih2YWx1ZSk7CisgICAgICAgIGFuaW1hdGlvbi5zZXRUcmlnZ2VyKFNj
cm9sbEFuaW1hdGlvblRyaWdnZXI6OmNyZWF0ZShzY3JvbGxUcmlnZ2VyLnN0YXJ0VmFsdWUoKSwg
c2Nyb2xsVHJpZ2dlci5lbmRWYWx1ZSgpLCBzY3JvbGxUcmlnZ2VyLmhhc0VuZFZhbHVlKCkpKTsK
KyAgICB9Cit9CisjZW5kaWYKKwogdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBOaW5lUGllY2VJbWFn
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1NWYWx1ZSogdmFsdWUsIE5pbmVQaWVjZUltYWdl
JiBpbWFnZSkKIHsKICAgICAvLyBJZiB3ZSdyZSBub3QgYSB2YWx1ZSBsaXN0LCB0aGVuIHdlIGFy
ZSAibm9uZSIgYW5kIGRvbid0IG5lZWQgdG8gYWx0ZXIgdGhlIGVtcHR5IGltYWdlIGF0IGFsbC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5oCmluZGV4IGFhMWI0ODYyZjZhZDA0NDg0MTZiMGE3
ZDE3MzEyNGYwZmY1OGQxYjAuLmI1ZjNlZTc5MDYzYTkzNjUxZTk3MTUxMmU5YjNkMmZjM2M2MTE3
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuaApAQCAtNjcsNiArNjcsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBtYXBBbmltYXRpb25QbGF5U3RhdGUoQW5pbWF0aW9uJiwgQ1NTVmFsdWUm
KTsKICAgICB2b2lkIG1hcEFuaW1hdGlvblByb3BlcnR5KEFuaW1hdGlvbiYsIENTU1ZhbHVlJik7
CiAgICAgdm9pZCBtYXBBbmltYXRpb25UaW1pbmdGdW5jdGlvbihBbmltYXRpb24mLCBDU1NWYWx1
ZSYpOworI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAgIHZvaWQgbWFwQW5p
bWF0aW9uVHJpZ2dlcihBbmltYXRpb24mLCBDU1NWYWx1ZSYpOworI2VuZGlmCiAKICAgICB2b2lk
IG1hcE5pbmVQaWVjZUltYWdlKENTU1Byb3BlcnR5SUQsIENTU1ZhbHVlKiwgTmluZVBpZWNlSW1h
Z2UmKTsKICAgICB2b2lkIG1hcE5pbmVQaWVjZUltYWdlU2xpY2UoQ1NTVmFsdWUmLCBOaW5lUGll
Y2VJbWFnZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggMjc1MjM0MzhhNGIzZGFlYmM1
MTdkZjRhZTFlZDk5ZjY5MTcxZTMxYi4uMzc3ZjZlZGE5OTk4YjY3Yjg4OTc2ZjJjZTliNDE5MGVk
ZTAxZDQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKIAorI2luY2x1ZGUgIkNTU0Fu
aW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0FzcGVjdFJhdGlvVmFs
dWUuaCIKICNpbmNsdWRlICJDU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUuaCIKICNpbmNsdWRlICJD
U1NDYWxjdWxhdGlvblZhbHVlLmgiCkBAIC0yMjYsNiArMjI3LDEwIEBAIGJvb2wgQ1NTVmFsdWU6
OmVxdWFscyhjb25zdCBDU1NWYWx1ZSYgb3RoZXIpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4g
Y29tcGFyZUNTU1ZhbHVlczxTVkdDb2xvcj4oKnRoaXMsIG90aGVyKTsKICAgICAgICAgY2FzZSBT
VkdQYWludENsYXNzOgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8U1ZHUGFp
bnQ+KCp0aGlzLCBvdGhlcik7CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisg
ICAgICAgIGNhc2UgQW5pbWF0aW9uVHJpZ2dlclNjcm9sbENsYXNzOgorICAgICAgICAgICAgcmV0
dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlPigqdGhp
cywgb3RoZXIpOworI2VuZGlmCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMxMiw2ICszMTcs
MTAgQEAgU3RyaW5nIENTU1ZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PFNWR0NvbG9yPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgU1ZHUGFp
bnRDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFNWR1BhaW50PigqdGhpcykuY3VzdG9t
Q1NTVGV4dCgpOworI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAgIGNhc2Ug
QW5pbWF0aW9uVHJpZ2dlclNjcm9sbENsYXNzOgorICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NT
QW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOworI2Vu
ZGlmCiAgICAgY2FzZSBXZWJLaXRDU1NSZXNvdXJjZUNsYXNzOgogICAgICAgICByZXR1cm4gZG93
bmNhc3Q8V2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAg
ICB9CkBAIC00MjYsNiArNDM1LDExIEBAIHZvaWQgQ1NTVmFsdWU6OmRlc3Ryb3koKQogICAgIGNh
c2UgU1ZHUGFpbnRDbGFzczoKICAgICAgICAgZGVsZXRlIGRvd25jYXN0PFNWR1BhaW50Pih0aGlz
KTsKICAgICAgICAgcmV0dXJuOworI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQor
ICAgIGNhc2UgQW5pbWF0aW9uVHJpZ2dlclNjcm9sbENsYXNzOgorICAgICAgICBkZWxldGUgZG93
bmNhc3Q8Q1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlPih0aGlzKTsKKyAgICAgICAgcmV0
dXJuOworI2VuZGlmCiAgICAgY2FzZSBXZWJLaXRDU1NSZXNvdXJjZUNsYXNzOgogICAgICAgICBk
ZWxldGUgZG93bmNhc3Q8V2ViS2l0Q1NTUmVzb3VyY2VWYWx1ZT4odGhpcyk7CiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggNjMyZWY5YWE5ZTZkN2M3NDA0MmM3OTJmODlh
MmNmYjhiYjc1ZmQ0MC4uOWYxOWFmOWM5NGEwMzYzMTNhY2U0ZDI1YmZmNDUyMjUzNTZjMzYzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTEwNSw2ICsxMDUsMTAgQEAgcHVibGljOgogICAgIGJv
b2wgaXNVbmljb2RlUmFuZ2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IFVu
aWNvZGVSYW5nZUNsYXNzOyB9CiAgICAgYm9vbCBpc1dlYktpdENTU1Jlc291cmNlVmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBXZWJLaXRDU1NSZXNvdXJjZUNsYXNzOyB9CiAK
KyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICBib29sIGlzQW5pbWF0aW9u
VHJpZ2dlclNjcm9sbFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gQW5pbWF0
aW9uVHJpZ2dlclNjcm9sbENsYXNzOyB9CisjZW5kaWYKKwogICAgIGJvb2wgaXNDU1NPTVNhZmUo
KSBjb25zdCB7IHJldHVybiBtX2lzQ1NTT01TYWZlOyB9CiAgICAgYm9vbCBpc1N1YnR5cGVFeHBv
c2VkVG9DU1NPTSgpIGNvbnN0CiAgICAgeyAKQEAgLTE2NSw2ICsxNjksMTAgQEAgcHJvdGVjdGVk
OgogICAgICAgICBTVkdQYWludENsYXNzLAogICAgICAgICBXZWJLaXRDU1NSZXNvdXJjZUNsYXNz
LAogCisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgICAgIEFuaW1hdGlv
blRyaWdnZXJTY3JvbGxDbGFzcywKKyNlbmRpZgorCiAgICAgICAgIC8vIExpc3QgY2xhc3MgdHlw
ZXMgbXVzdCBhcHBlYXIgYWZ0ZXIgVmFsdWVMaXN0Q2xhc3MuCiAgICAgICAgIFZhbHVlTGlzdENs
YXNzLAogI2lmIEVOQUJMRShDU1NfSU1BR0VfU0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CmluZGV4IDIyOWM4YTkxMGEwNDI0ODZjOTk5MWU0Nzg1ZDhhOGRkODA1OGQ3MTEuLjBmNmJkODVi
NzMwMGY0MGNjNDExNGU5OGJjMDJhMDUxNTM3OGFhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKQEAgLTQzNjUsNiArNDM2NSw5IEBAIHZvaWQgRnJhbWVWaWV3OjpzZW5kU2Nyb2xsRXZl
bnQoKQogewogICAgIGZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuc2VuZFNjcm9sbEV2ZW50KCk7CiAg
ICAgZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb24o
KTsKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICBmcmFtZSgpLmFuaW1h
dGlvbigpLnNjcm9sbFdhc1VwZGF0ZWQoKTsKKyNlbmRpZgogfQogCiB2b2lkIEZyYW1lVmlldzo6
cmVtb3ZlQ2hpbGQoV2lkZ2V0JiB3aWRnZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCmluZGV4IDJlMmQ3MmViNTQwOTIyZTdiYjVjOGM2ZjNm
MjFjYzk5NDYwYjNhZWQuLmVhNGQ4M2NkNDQ5ODc3MDRmNGYzYWUwYzY5N2E1NWExNTRjZGZjYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3Bw
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbmRl
ckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5o
IgogI2luY2x1ZGUgIlVuaXRCZXppZXIuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBAIC0xOTcsNiArMTk4LDcgQEAgdm9pZCBBbmltYXRpb25C
YXNlOjp1cGRhdGVTdGF0ZU1hY2hpbmUoQW5pbWF0aW9uU3RhdGVJbnB1dCBpbnB1dCwgZG91Ymxl
IHBhcmFtKQogICAgIHN3aXRjaCAobV9hbmltYXRpb25TdGF0ZSkgewogICAgICAgICBjYXNlIEFu
aW1hdGlvblN0YXRlOjpOZXc6CiAgICAgICAgICAgICBBU1NFUlQoaW5wdXQgPT0gQW5pbWF0aW9u
U3RhdGVJbnB1dDo6U3RhcnRBbmltYXRpb24gfHwgaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1
dDo6UGxheVN0YXRlUnVubmluZyB8fCBpbnB1dCA9PSBBbmltYXRpb25TdGF0ZUlucHV0OjpQbGF5
U3RhdGVQYXVzZWQpOworCiAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJ
bnB1dDo6U3RhcnRBbmltYXRpb24gfHwgaW5wdXQgPT0gQW5pbWF0aW9uU3RhdGVJbnB1dDo6UGxh
eVN0YXRlUnVubmluZykgewogICAgICAgICAgICAgICAgIG1fcmVxdWVzdGVkU3RhcnRUaW1lID0g
YmVnaW5BbmltYXRpb25VcGRhdGVUaW1lKCk7CiAgICAgICAgICAgICAgICAgTE9HKEFuaW1hdGlv
bnMsICIlcCBBbmltYXRpb25TdGF0ZSAlcyAtPiBTdGFydFdhaXRUaW1lciIsIHRoaXMsIG5hbWVG
b3JTdGF0ZShtX2FuaW1hdGlvblN0YXRlKSk7CkBAIC00NTYsMTIgKzQ1OCwyOSBAQCB2b2lkIEFu
aW1hdGlvbkJhc2U6OmZpcmVBbmltYXRpb25FdmVudHNJZk5lZWRlZCgpCiAgICAgCiAgICAgLy8g
Q2hlY2sgZm9yIHN0YXJ0IHRpbWVvdXQKICAgICBpZiAobV9hbmltYXRpb25TdGF0ZSA9PSBBbmlt
YXRpb25TdGF0ZTo6U3RhcnRXYWl0VGltZXIpIHsKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNf
TEVWRUxfMikKKyAgICAgICAgaWYgKG1fYW5pbWF0aW9uLT50cmlnZ2VyKCkgJiYgbV9hbmltYXRp
b24tPnRyaWdnZXIoKS0+aXNTY3JvbGxBbmltYXRpb25UcmlnZ2VyKCkpIHsKKyAgICAgICAgICAg
IGlmIChtX29iamVjdCkgeworICAgICAgICAgICAgICAgIExheW91dFNpemUgb2Zmc2V0ID0gbV9v
YmplY3QtPnZpZXcoKS5mcmFtZVZpZXcoKS5zY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCk7
CisgICAgICAgICAgICAgICAgU2Nyb2xsQW5pbWF0aW9uVHJpZ2dlciogc2Nyb2xsVHJpZ2dlciA9
IHN0YXRpY19jYXN0PFNjcm9sbEFuaW1hdGlvblRyaWdnZXIqPihtX2FuaW1hdGlvbi0+dHJpZ2dl
cigpLmdldCgpKTsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0LmhlaWdodCgpLnRvRmxvYXQo
KSA+IHNjcm9sbFRyaWdnZXItPnN0YXJ0VmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgdXBk
YXRlU3RhdGVNYWNoaW5lKEFuaW1hdGlvblN0YXRlSW5wdXQ6OlN0YXJ0VGltZXJGaXJlZCwgMCk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorI2VuZGlm
CiAgICAgICAgIGlmIChiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSAtIG1fcmVxdWVzdGVkU3Rh
cnRUaW1lID49IG1fYW5pbWF0aW9uLT5kZWxheSgpKQogICAgICAgICAgICAgdXBkYXRlU3RhdGVN
YWNoaW5lKEFuaW1hdGlvblN0YXRlSW5wdXQ6OlN0YXJ0VGltZXJGaXJlZCwgMCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgCiAgICAgZG91YmxlIGVsYXBzZWREdXJhdGlvbiA9IGJlZ2lu
QW5pbWF0aW9uVXBkYXRlVGltZSgpIC0gbV9zdGFydFRpbWU7CisjaWYgRU5BQkxFKENTU19BTklN
QVRJT05TX0xFVkVMXzIpCisgICAgaWYgKG1fYW5pbWF0aW9uLT50cmlnZ2VyKCkgJiYgbV9hbmlt
YXRpb24tPnRyaWdnZXIoKS0+aXNTY3JvbGxBbmltYXRpb25UcmlnZ2VyKCkpCisgICAgICAgIGVs
YXBzZWREdXJhdGlvbiA9IGdldEVsYXBzZWRUaW1lKCk7CisjZW5kaWYKKwogICAgIC8vIEZJWE1F
OiB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IGVsYXBzZWREdXJhdGlvbiBpcyBuZXZlciA8IDAuIElm
IGl0IGlzLCB0aGlzIHN1Z2dlc3RzIHRoYXQKICAgICAvLyB3ZSBoYWQgYSByZWNhbGNTdHlsZSgp
IG91dHNpZGUgb2YgYmVnaW5BbmltYXRpb25VcGRhdGUoKS9lbmRBbmltYXRpb25VcGRhdGUoKS4K
ICAgICAvLyBBbHNvIGNoZWNrIGluIGdldFRpbWVUb05leHRFdmVudCgpLgpAQCAtNTIwLDggKzUz
OSwyNCBAQCBkb3VibGUgQW5pbWF0aW9uQmFzZTo6dGltZVRvTmV4dFNlcnZpY2UoKQogICAgICAg
ICByZXR1cm4gLTE7CiAgICAgCiAgICAgaWYgKG1fYW5pbWF0aW9uU3RhdGUgPT0gQW5pbWF0aW9u
U3RhdGU6OlN0YXJ0V2FpdFRpbWVyKSB7CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVM
XzIpCisgICAgICAgIGlmICghbV9hbmltYXRpb24tPnRyaWdnZXIoKSB8fCBtX2FuaW1hdGlvbi0+
dHJpZ2dlcigpLT5pc0F1dG9BbmltYXRpb25UcmlnZ2VyKCkpIHsKKyAgICAgICAgICAgIGRvdWJs
ZSB0aW1lRnJvbU5vdyA9IG1fYW5pbWF0aW9uLT5kZWxheSgpIC0gKGJlZ2luQW5pbWF0aW9uVXBk
YXRlVGltZSgpIC0gbV9yZXF1ZXN0ZWRTdGFydFRpbWUpOworICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bWF4KHRpbWVGcm9tTm93LCAwLjApOworICAgICAgICB9CisgICAgICAgIGlmIChtX2FuaW1h
dGlvbi0+dHJpZ2dlcigpLT5pc1Njcm9sbEFuaW1hdGlvblRyaWdnZXIoKSkgeworICAgICAgICAg
ICAgaWYgKG1fb2JqZWN0KSB7CisgICAgICAgICAgICAgICAgZmxvYXQgY3VycmVudFNjcm9sbE9m
ZnNldCA9IG1fb2JqZWN0LT52aWV3KCkuZnJhbWVWaWV3KCkuc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQ
b3NpdGlvbigpLmhlaWdodCgpLnRvRmxvYXQoKTsKKyAgICAgICAgICAgICAgICBTY3JvbGxBbmlt
YXRpb25UcmlnZ2VyKiBzY3JvbGxUcmlnZ2VyID0gc3RhdGljX2Nhc3Q8U2Nyb2xsQW5pbWF0aW9u
VHJpZ2dlcio+KG1fYW5pbWF0aW9uLT50cmlnZ2VyKCkuZ2V0KCkpOworICAgICAgICAgICAgICAg
IGlmIChjdXJyZW50U2Nyb2xsT2Zmc2V0ID49IHNjcm9sbFRyaWdnZXItPnN0YXJ0VmFsdWUoKSAm
JiAoIXNjcm9sbFRyaWdnZXItPmhhc0VuZFZhbHVlKCkgfHwgY3VycmVudFNjcm9sbE9mZnNldCA8
PSBzY3JvbGxUcmlnZ2VyLT5lbmRWYWx1ZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyNl
bHNlCiAgICAgICAgIGRvdWJsZSB0aW1lRnJvbU5vdyA9IG1fYW5pbWF0aW9uLT5kZWxheSgpIC0g
KGJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZSgpIC0gbV9yZXF1ZXN0ZWRTdGFydFRpbWUpOwogICAg
ICAgICByZXR1cm4gc3RkOjptYXgodGltZUZyb21Ob3csIDAuMCk7CisjZW5kaWYKICAgICB9CiAg
ICAgCiAgICAgZmlyZUFuaW1hdGlvbkV2ZW50c0lmTmVlZGVkKCk7CkBAIC02NzEsNyArNzA2LDIx
IEBAIGRvdWJsZSBBbmltYXRpb25CYXNlOjpiZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWUoKSBjb25z
dAogCiBkb3VibGUgQW5pbWF0aW9uQmFzZTo6Z2V0RWxhcHNlZFRpbWUoKSBjb25zdAogewotICAg
IGlmIChwYXVzZWQoKSkgICAgCisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisg
ICAgaWYgKG1fYW5pbWF0aW9uLT50cmlnZ2VyKCkgJiYgbV9hbmltYXRpb24tPnRyaWdnZXIoKS0+
aXNTY3JvbGxBbmltYXRpb25UcmlnZ2VyKCkpIHsKKyAgICAgICAgU2Nyb2xsQW5pbWF0aW9uVHJp
Z2dlciogc2Nyb2xsVHJpZ2dlciA9IHN0YXRpY19jYXN0PFNjcm9sbEFuaW1hdGlvblRyaWdnZXIq
PihtX2FuaW1hdGlvbi0+dHJpZ2dlcigpLmdldCgpKTsKKyAgICAgICAgaWYgKHNjcm9sbFRyaWdn
ZXItPmhhc0VuZFZhbHVlKCkgJiYgbV9vYmplY3QpIHsKKyAgICAgICAgICAgIGZsb2F0IG9mZnNl
dCA9IG1fb2JqZWN0LT52aWV3KCkuZnJhbWVWaWV3KCkuc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3Np
dGlvbigpLmhlaWdodCgpLnRvRmxvYXQoKTsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgPCBzY3Jv
bGxUcmlnZ2VyLT5zdGFydFZhbHVlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgICAgICBpZiAob2Zmc2V0ID4gc2Nyb2xsVHJpZ2dlci0+ZW5kVmFsdWUoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbV9hbmltYXRpb24tPmR1cmF0aW9uKCk7CisgICAgICAgICAgICByZXR1
cm4gbV9hbmltYXRpb24tPmR1cmF0aW9uKCkgKiAob2Zmc2V0IC0gc2Nyb2xsVHJpZ2dlci0+c3Rh
cnRWYWx1ZSgpKSAvIChzY3JvbGxUcmlnZ2VyLT5lbmRWYWx1ZSgpIC0gc2Nyb2xsVHJpZ2dlci0+
c3RhcnRWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCisgICAgaWYgKHBhdXNl
ZCgpKQogICAgICAgICByZXR1cm4gbV9wYXVzZVRpbWUgLSBtX3N0YXJ0VGltZTsKICAgICBpZiAo
bV9zdGFydFRpbWUgPD0gMCkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDUwNTg3
ZTFmM2E0NDZiYTU4ZmEyZGJiZmZhZTVkMzY5ZThiMWM0ZWQuLjU0MDE5YTAyZmQyZGE0MmNkZDQz
OWFhZDJiMDg4ZjE5MDVhYmU5YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC05Miw2ICs5Miw3IEBAIENvbXBv
c2l0ZUFuaW1hdGlvbiYgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmVuc3VyZUNvbXBvc2l0
ZUFuaW1hdGlvbihSZW5kZXJFCiAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBDb21w
b3NpdGVBbmltYXRpb246OmNyZWF0ZSh0aGlzKTsKICAgICAgICAgcmVuZGVyZXIuc2V0SXNDU1NB
bmltYXRpbmcodHJ1ZSk7CiAgICAgfQorCiAgICAgcmV0dXJuICpyZXN1bHQuaXRlcmF0b3ItPnZh
bHVlOwogfQogCkBAIC0zNzIsNyArMzczLDcgQEAgYm9vbCBBbmltYXRpb25Db250cm9sbGVyUHJp
dmF0ZTo6cGF1c2VUcmFuc2l0aW9uQXRUaW1lKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLAogCiBk
b3VibGUgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmJlZ2luQW5pbWF0aW9uVXBkYXRlVGlt
ZSgpCiB7Ci0gICAgQVNTRVJUKG1fYmVnaW5BbmltYXRpb25VcGRhdGVDb3VudCk7CisgICAgLy8g
QVNTRVJUKG1fYmVnaW5BbmltYXRpb25VcGRhdGVDb3VudCk7CiAgICAgaWYgKG1fYmVnaW5Bbmlt
YXRpb25VcGRhdGVUaW1lID09IGNCZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWVOb3RTZXQpCiAgICAg
ICAgIG1fYmVnaW5BbmltYXRpb25VcGRhdGVUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdU
aW1lKCk7CiAKQEAgLTUwMiw2ICs1MDMsMTMgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJp
dmF0ZTo6YW5pbWF0aW9uV2lsbEJlUmVtb3ZlZChBbmltYXRpb25CYXNlKiBhbmltYXRpb24KICAg
ICByZW1vdmVGcm9tQW5pbWF0aW9uc1dhaXRpbmdGb3JTdGFydFRpbWVSZXNwb25zZShhbmltYXRp
b24pOwogfQogCisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCit2b2lkIEFuaW1h
dGlvbkNvbnRyb2xsZXJQcml2YXRlOjpzY3JvbGxXYXNVcGRhdGVkKCkKK3sKKyAgICB1cGRhdGVB
bmltYXRpb25zKENhbGxTZXRDaGFuZ2VkKTsKK30KKyNlbmRpZgorCiBBbmltYXRpb25Db250cm9s
bGVyOjpBbmltYXRpb25Db250cm9sbGVyKEZyYW1lJiBmcmFtZSkKICAgICA6IG1fZGF0YShzdGQ6
Om1ha2VfdW5pcXVlPEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlPihmcmFtZSkpCiB7CkBAIC02
ODAsNCArNjg4LDExIEBAIGJvb2wgQW5pbWF0aW9uQ29udHJvbGxlcjo6c3VwcG9ydHNBY2NlbGVy
YXRlZEFuaW1hdGlvbk9mUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwCiAgICAgcmV0dXJuIENTU1By
b3BlcnR5QW5pbWF0aW9uOjphbmltYXRpb25PZlByb3BlcnR5SXNBY2NlbGVyYXRlZChwcm9wZXJ0
eSk7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKK3ZvaWQgQW5pbWF0
aW9uQ29udHJvbGxlcjo6c2Nyb2xsV2FzVXBkYXRlZCgpCit7CisgICAgbV9kYXRhLT5zY3JvbGxX
YXNVcGRhdGVkKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5oCmlu
ZGV4IDVlZTMzNzQxZjUzZDYyNWFhYTZmMjZmNzExODZiMGMwMjU0MTFiYWEuLjNlZjIyZjMyZmZm
ZDE0MjIzZjIzM2FkMzVmOTU1MjY0Y2RmNGFkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmgKQEAgLTgwLDYgKzgwLDEwIEBA
IHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkQW5pbWF0
aW9uT2ZQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKTsKIAorI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9O
U19MRVZFTF8yKQorICAgIHZvaWQgc2Nyb2xsV2FzVXBkYXRlZCgpOworI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
PiBtX2RhdGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXggOTkwYWU4NmU4MzQxZGUxZGJj
ZjQxZTZkZWI2OGQ0Nzk4NmI3YThlMy4uZDRjMDRjNGI0ZmQ1MzJlZjE5MDg3YjM4MDI4YWUwMjE5
YzBkYzcyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0
aW9uQ29udHJvbGxlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCkBAIC0xMTUsNiArMTE1LDEwIEBAIHB1Ymxp
YzoKICAgICBib29sIGFsbG93c05ld0FuaW1hdGlvbnNXaGlsZVN1c3BlbmRlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWxsb3dzTmV3QW5pbWF0aW9uc1doaWxlU3VzcGVuZGVkOyB9CiAgICAgdm9pZCBz
ZXRBbGxvd3NOZXdBbmltYXRpb25zV2hpbGVTdXNwZW5kZWQoYm9vbCk7CiAKKyNpZiBFTkFCTEUo
Q1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICB2b2lkIHNjcm9sbFdhc1VwZGF0ZWQoKTsKKyNl
bmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgYW5pbWF0aW9uVGltZXJGaXJlZCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNw
cAppbmRleCA3ZmY3ZTRkOGQ2OGJkYjU1YzE2NTA0YzUwYzVkZjA5MjA0NzA1ZjE5Li5hOTVjYzIz
MTFkNTNkYzQ2ZjU3NmViYjc0ZGQwMmI2ZDJhYWQ2ODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKQEAgLTQzLDYgKzQz
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDb21wb3NpdGVBbmltYXRpb246OkNvbXBvc2l0
ZUFuaW1hdGlvbihBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSogYW5pbWF0aW9uQ29udHJvbGxl
cikKICAgICA6IG1fYW5pbWF0aW9uQ29udHJvbGxlcihhbmltYXRpb25Db250cm9sbGVyKQorI2lm
IEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAgICwgbV9oYXNTY3JvbGxUcmlnZ2Vy
ZWRBbmltYXRpb24oZmFsc2UpCisjZW5kaWYKIHsKICAgICBtX3N1c3BlbmRlZCA9IGFuaW1hdGlv
bkNvbnRyb2xsZXItPmlzU3VzcGVuZGVkKCkgJiYgIWFuaW1hdGlvbkNvbnRyb2xsZXItPmFsbG93
c05ld0FuaW1hdGlvbnNXaGlsZVN1c3BlbmRlZCgpOwogfQpAQCAtMjIyLDcgKzIyNSwxMSBAQCB2
b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlS2V5ZnJhbWVBbmltYXRpb25zKFJlbmRlckVs
ZW1lbnQqIHJlbmRlcmVyLCBSZW5kZQogICAgICAgICAvLyBNYXJrIGFsbCBleGlzdGluZyBhbmlt
YXRpb25zIGFzIG5vIGxvbmdlciBhY3RpdmUuCiAgICAgICAgIGZvciAoQW5pbWF0aW9uTmFtZU1h
cDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2tleWZyYW1lQW5pbWF0aW9ucy5iZWdpbigpOyBpdCAh
PSBrZmVuZDsgKytpdCkKICAgICAgICAgICAgIGl0LT52YWx1ZS0+c2V0SW5kZXgoLTEpOwotICAg
ICAgICAgICAgCisKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICAgICAg
bV9oYXNTY3JvbGxUcmlnZ2VyZWRBbmltYXRpb24gPSBmYWxzZTsKKyNlbmRpZgorCiAgICAgICAg
IC8vIFRvc3MgdGhlIGFuaW1hdGlvbiBvcmRlciBtYXAuCiAgICAgICAgIG1fa2V5ZnJhbWVBbmlt
YXRpb25PcmRlck1hcC5jbGVhcigpOwogCkBAIC0yNDUsNyArMjUyLDEyIEBAIHZvaWQgQ29tcG9z
aXRlQW5pbWF0aW9uOjp1cGRhdGVLZXlmcmFtZUFuaW1hdGlvbnMoUmVuZGVyRWxlbWVudCogcmVu
ZGVyZXIsIFJlbmRlCiAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgYW5pbWF0aW9uIGlz
IHBvc3RBY3RpdmUsIHNraXAgaXQgc28gaXQgZ2V0cyByZW1vdmVkIGF0IHRoZSBlbmQgb2YgdGhp
cyBmdW5jdGlvbi4KICAgICAgICAgICAgICAgICAgICAgaWYgKGtleWZyYW1lQW5pbS0+cG9zdEFj
dGl2ZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAg
ICAgICAgIAorCisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgICAgICAg
ICAgICAgICAgIGlmIChhbmltYXRpb24udHJpZ2dlcigpLT5pc1Njcm9sbEFuaW1hdGlvblRyaWdn
ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1faGFzU2Nyb2xsVHJpZ2dlcmVkQW5pbWF0
aW9uID0gdHJ1ZTsKKyNlbmRpZgorCiAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgb25lIGlz
IHN0aWxsIGFjdGl2ZS4KIAogICAgICAgICAgICAgICAgICAgICAvLyBBbmltYXRpb25zIG1hdGNo
LCBidXQgcGxheSBzdGF0ZXMgbWF5IGRpZmZlci4gVXBkYXRlIGlmIG5lZWRlZC4KQEAgLTI2NSw2
ICsyNzcsMTIgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZUtleWZyYW1lQW5pbWF0
aW9ucyhSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgUmVuZGUKICAgICAgICAgICAgICAgICAgICAg
Zm9yIChhdXRvIGl0ID0ga2V5ZnJhbWVBbmltLT5rZXlmcmFtZXMoKS5iZWdpblByb3BlcnRpZXMo
KSwgZW5kID0ga2V5ZnJhbWVBbmltLT5rZXlmcmFtZXMoKS5lbmRQcm9wZXJ0aWVzKCk7IGl0ICE9
IGVuZDsgKytpdCkKICAgICAgICAgICAgICAgICAgICAgICAgIExPRyhBbmltYXRpb25zLCAiICBw
cm9wZXJ0eSAlcyIsIGdldFByb3BlcnR5TmFtZSgqaXQpKTsKICNlbmRpZgorCisjaWYgRU5BQkxF
KENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgICAgICAgICAgICAgICAgIGlmIChhbmltYXRp
b24udHJpZ2dlcigpLT5pc1Njcm9sbEFuaW1hdGlvblRyaWdnZXIoKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1faGFzU2Nyb2xsVHJpZ2dlcmVkQW5pbWF0aW9uID0gdHJ1ZTsKKyNlbmRpZgor
CiAgICAgICAgICAgICAgICAgICAgIG1fa2V5ZnJhbWVBbmltYXRpb25zLnNldChrZXlmcmFtZUFu
aW0tPm5hbWUoKS5pbXBsKCksIGtleWZyYW1lQW5pbSk7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q29tcG9zaXRlQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21w
b3NpdGVBbmltYXRpb24uaAppbmRleCBiZWQzNzkzODI3MjNmZDAwNzk4ZTk3MDQyMDkzMjE5ODVi
YWNmYmMzLi4xZGYxNzZkNWYxZTE5NDcwNTA5MGI3ZjM5NTdjMmYyODQ2ZjNlNDkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaApA
QCAtNzksNiArNzksMTAgQEAgcHVibGljOgogICAgIGJvb2wgcGF1c2VUcmFuc2l0aW9uQXRUaW1l
KENTU1Byb3BlcnR5SUQsIGRvdWJsZSk7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZBY3RpdmVBbmlt
YXRpb25zKCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAg
ICBib29sIGhhc1Njcm9sbFRyaWdnZXJlZEFuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faGFz
U2Nyb2xsVHJpZ2dlcmVkQW5pbWF0aW9uOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBDb21w
b3NpdGVBbmltYXRpb24oQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUqKTsKIApAQCAtODYsMTMg
KzkwLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVLZXlmcmFtZUFuaW1hdGlvbnMoUmVu
ZGVyRWxlbWVudCosIFJlbmRlclN0eWxlKiBjdXJyZW50U3R5bGUsIFJlbmRlclN0eWxlKiB0YXJn
ZXRTdHlsZSk7CiAgICAgCiAgICAgdHlwZWRlZiBIYXNoTWFwPGludCwgUmVmUHRyPEltcGxpY2l0
QW5pbWF0aW9uPj4gQ1NTUHJvcGVydHlUcmFuc2l0aW9uc01hcDsKLSAgICB0eXBlZGVmIEhhc2hN
YXA8QXRvbWljU3RyaW5nSW1wbCosIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4+ICBBbmltYXRp
b25OYW1lTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgUmVmUHRy
PEtleWZyYW1lQW5pbWF0aW9uPj4gQW5pbWF0aW9uTmFtZU1hcDsKIAogICAgIEFuaW1hdGlvbkNv
bnRyb2xsZXJQcml2YXRlKiBtX2FuaW1hdGlvbkNvbnRyb2xsZXI7CiAgICAgQ1NTUHJvcGVydHlU
cmFuc2l0aW9uc01hcCBtX3RyYW5zaXRpb25zOwogICAgIEFuaW1hdGlvbk5hbWVNYXAgbV9rZXlm
cmFtZUFuaW1hdGlvbnM7CiAgICAgVmVjdG9yPEF0b21pY1N0cmluZ0ltcGwqPiBtX2tleWZyYW1l
QW5pbWF0aW9uT3JkZXJNYXA7CiAgICAgYm9vbCBtX3N1c3BlbmRlZDsKKyNpZiBFTkFCTEUoQ1NT
X0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICBib29sIG1faGFzU2Nyb2xsVHJpZ2dlcmVkQW5pbWF0
aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwCmluZGV4IDM0OTZjNWE0NTc3
MTRmYjM5MjcyMDQ2NDhkMTA4NTdmMmM4OGY5NWEuLmIxNDhlZjM2Nzg2OTczNWYwYWM1Yzg1NjY1
NjlhMGVlNDhlMGNiYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1h
dGlvbi9BbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlv
bi9BbmltYXRpb24uY3BwCkBAIC0zMiw2ICszMiw5IEBAIEFuaW1hdGlvbjo6QW5pbWF0aW9uKCkK
ICAgICAsIG1fZGVsYXkoaW5pdGlhbERlbGF5KCkpCiAgICAgLCBtX2R1cmF0aW9uKGluaXRpYWxE
dXJhdGlvbigpKQogICAgICwgbV90aW1pbmdGdW5jdGlvbihpbml0aWFsVGltaW5nRnVuY3Rpb24o
KSkKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICAsIG1fdHJpZ2dlcihp
bml0aWFsVHJpZ2dlcigpKQorI2VuZGlmCiAgICAgLCBtX2RpcmVjdGlvbihpbml0aWFsRGlyZWN0
aW9uKCkpCiAgICAgLCBtX2ZpbGxNb2RlKGluaXRpYWxGaWxsTW9kZSgpKQogICAgICwgbV9wbGF5
U3RhdGUoaW5pdGlhbFBsYXlTdGF0ZSgpKQpAQCAtNDQsNiArNDcsOSBAQCBBbmltYXRpb246OkFu
aW1hdGlvbigpCiAgICAgLCBtX3BsYXlTdGF0ZVNldChmYWxzZSkKICAgICAsIG1fcHJvcGVydHlT
ZXQoZmFsc2UpCiAgICAgLCBtX3RpbWluZ0Z1bmN0aW9uU2V0KGZhbHNlKQorI2lmIEVOQUJMRShD
U1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAgICwgbV90cmlnZ2VyU2V0KGZhbHNlKQorI2VuZGlm
CiAgICAgLCBtX2lzTm9uZShmYWxzZSkKIHsKIH0KQEAgLTU3LDYgKzYzLDkgQEAgQW5pbWF0aW9u
OjpBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uJiBvKQogICAgICwgbV9kZWxheShvLm1fZGVsYXkp
CiAgICAgLCBtX2R1cmF0aW9uKG8ubV9kdXJhdGlvbikKICAgICAsIG1fdGltaW5nRnVuY3Rpb24o
by5tX3RpbWluZ0Z1bmN0aW9uKQorI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQor
ICAgICwgbV90cmlnZ2VyKG8ubV90cmlnZ2VyKQorI2VuZGlmCiAgICAgLCBtX2RpcmVjdGlvbihv
Lm1fZGlyZWN0aW9uKQogICAgICwgbV9maWxsTW9kZShvLm1fZmlsbE1vZGUpCiAgICAgLCBtX3Bs
YXlTdGF0ZShvLm1fcGxheVN0YXRlKQpAQCAtNjksNiArNzgsOSBAQCBBbmltYXRpb246OkFuaW1h
dGlvbihjb25zdCBBbmltYXRpb24mIG8pCiAgICAgLCBtX3BsYXlTdGF0ZVNldChvLm1fcGxheVN0
YXRlU2V0KQogICAgICwgbV9wcm9wZXJ0eVNldChvLm1fcHJvcGVydHlTZXQpCiAgICAgLCBtX3Rp
bWluZ0Z1bmN0aW9uU2V0KG8ubV90aW1pbmdGdW5jdGlvblNldCkKKyNpZiBFTkFCTEUoQ1NTX0FO
SU1BVElPTlNfTEVWRUxfMikKKyAgICAsIG1fdHJpZ2dlclNldChvLm1fdHJpZ2dlclNldCkKKyNl
bmRpZgogICAgICwgbV9pc05vbmUoby5tX2lzTm9uZSkKIHsKIH0KQEAgLTgyLDYgKzk0LDkgQEAg
QW5pbWF0aW9uJiBBbmltYXRpb246Om9wZXJhdG9yPShjb25zdCBBbmltYXRpb24mIG8pCiAgICAg
bV9kZWxheSA9IG8ubV9kZWxheTsKICAgICBtX2R1cmF0aW9uID0gby5tX2R1cmF0aW9uOwogICAg
IG1fdGltaW5nRnVuY3Rpb24gPSBvLm1fdGltaW5nRnVuY3Rpb247CisjaWYgRU5BQkxFKENTU19B
TklNQVRJT05TX0xFVkVMXzIpCisgICAgbV90cmlnZ2VyID0gby5tX3RyaWdnZXI7CisjZW5kaWYK
ICAgICBtX2RpcmVjdGlvbiA9IG8ubV9kaXJlY3Rpb247CiAgICAgbV9maWxsTW9kZSA9IG8ubV9m
aWxsTW9kZTsKICAgICBtX3BsYXlTdGF0ZSA9IG8ubV9wbGF5U3RhdGU7CkBAIC05NSw2ICsxMTAs
OSBAQCBBbmltYXRpb24mIEFuaW1hdGlvbjo6b3BlcmF0b3I9KGNvbnN0IEFuaW1hdGlvbiYgbykK
ICAgICBtX3BsYXlTdGF0ZVNldCA9IG8ubV9wbGF5U3RhdGVTZXQ7CiAgICAgbV9wcm9wZXJ0eVNl
dCA9IG8ubV9wcm9wZXJ0eVNldDsKICAgICBtX3RpbWluZ0Z1bmN0aW9uU2V0ID0gby5tX3RpbWlu
Z0Z1bmN0aW9uU2V0OworI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAgIG1f
dHJpZ2dlclNldCA9IG8ubV90cmlnZ2VyU2V0OworI2VuZGlmCiAgICAgbV9pc05vbmUgPSBvLm1f
aXNOb25lOwogCiAgICAgcmV0dXJuICp0aGlzOwpAQCAtMTE2LDYgKzEzNCw5IEBAIGJvb2wgQW5p
bWF0aW9uOjphbmltYXRpb25zTWF0Y2goY29uc3QgQW5pbWF0aW9uKiBvLCBib29sIG1hdGNoUGxh
eVN0YXRlcykgY29uc3QKICAgICAgICAgICAgICAgICAgICYmIG1fZGVsYXkgPT0gby0+bV9kZWxh
eQogICAgICAgICAgICAgICAgICAgJiYgbV9kdXJhdGlvbiA9PSBvLT5tX2R1cmF0aW9uCiAgICAg
ICAgICAgICAgICAgICAmJiAqKG1fdGltaW5nRnVuY3Rpb24uZ2V0KCkpID09ICooby0+bV90aW1p
bmdGdW5jdGlvbi5nZXQoKSkKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAg
ICAgICAgICAgICAgICAgICYmICoobV90cmlnZ2VyLmdldCgpKSA9PSAqKG8tPm1fdHJpZ2dlci5n
ZXQoKSkKKyNlbmRpZgogICAgICAgICAgICAgICAgICAgJiYgbV9kaXJlY3Rpb24gPT0gby0+bV9k
aXJlY3Rpb24KICAgICAgICAgICAgICAgICAgICYmIG1fZmlsbE1vZGUgPT0gby0+bV9maWxsTW9k
ZQogICAgICAgICAgICAgICAgICAgJiYgbV9kZWxheVNldCA9PSBvLT5tX2RlbGF5U2V0CkBAIC0x
MjYsNiArMTQ3LDkgQEAgYm9vbCBBbmltYXRpb246OmFuaW1hdGlvbnNNYXRjaChjb25zdCBBbmlt
YXRpb24qIG8sIGJvb2wgbWF0Y2hQbGF5U3RhdGVzKSBjb25zdAogICAgICAgICAgICAgICAgICAg
JiYgbV9uYW1lU2V0ID09IG8tPm1fbmFtZVNldAogICAgICAgICAgICAgICAgICAgJiYgbV9wcm9w
ZXJ0eVNldCA9PSBvLT5tX3Byb3BlcnR5U2V0CiAgICAgICAgICAgICAgICAgICAmJiBtX3RpbWlu
Z0Z1bmN0aW9uU2V0ID09IG8tPm1fdGltaW5nRnVuY3Rpb25TZXQKKyNpZiBFTkFCTEUoQ1NTX0FO
SU1BVElPTlNfTEVWRUxfMikKKyAgICAgICAgICAgICAgICAgICYmIG1fdHJpZ2dlclNldCA9PSBv
LT5tX3RyaWdnZXJTZXQKKyNlbmRpZgogICAgICAgICAgICAgICAgICAgJiYgbV9pc05vbmUgPT0g
by0+bV9pc05vbmU7CiAKICAgICBpZiAoIXJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaAppbmRleCBlMTYzODRmZTk3ZDY3YjI5NzAxOWY4NmI2
ODA1M2Q5YjZjOTY3NTMxLi4zNjkyY2JiYzJkN2RlZDQ1ZmE4ODdlYWFmMDMxNWNiNTI5Y2YyOWMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUg
IlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiVGltaW5nRnVuY3Rpb24uaCIKKyNp
bmNsdWRlICJBbmltYXRpb25UcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgpAQCAtNTAsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BsYXlTdGF0ZVNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGxheVN0YXRlU2V0OyB9CiAgICAgYm9vbCBpc1Byb3BlcnR5U2V0
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0eVNldDsgfQogICAgIGJvb2wgaXNUaW1pbmdGdW5j
dGlvblNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltaW5nRnVuY3Rpb25TZXQ7IH0KKyAgICBib29s
IGlzVHJpZ2dlclNldCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJpZ2dlclNldDsgfQogCiAgICAgLy8g
RmxhZ3MgdGhpcyB0byBiZSB0aGUgc3BlY2lhbCAibm9uZSIgYW5pbWF0aW9uIChhbmltYXRpb24t
bmFtZTogbm9uZSkKICAgICBib29sIGlzTm9uZUFuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
aXNOb25lOyB9CkBAIC02MSw3ICs2Myw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVy
biAoIW1fZGlyZWN0aW9uU2V0ICYmICFtX2R1cmF0aW9uU2V0ICYmICFtX2ZpbGxNb2RlU2V0CiAg
ICAgICAgICAgICAgICAgJiYgIW1fbmFtZVNldCAmJiAhbV9wbGF5U3RhdGVTZXQgJiYgIW1faXRl
cmF0aW9uQ291bnRTZXQKLSAgICAgICAgICAgICAgICAmJiAhbV9kZWxheVNldCAmJiAhbV90aW1p
bmdGdW5jdGlvblNldCAmJiAhbV9wcm9wZXJ0eVNldCk7CisgICAgICAgICAgICAgICAgJiYgIW1f
ZGVsYXlTZXQgJiYgIW1fdGltaW5nRnVuY3Rpb25TZXQgJiYgIW1fcHJvcGVydHlTZXQKKyAgICAg
ICAgICAgICAgICAmJiAhbV90cmlnZ2VyU2V0KTsKICAgICB9CiAKICAgICBib29sIGlzRW1wdHlP
clplcm9EdXJhdGlvbigpIGNvbnN0CkBAIC03OCw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNsZWFyUGxheVN0YXRlKCkgeyBtX3BsYXlTdGF0ZVNldCA9IEFuaW1QbGF5U3RhdGVQbGF5aW5n
OyB9CiAgICAgdm9pZCBjbGVhclByb3BlcnR5KCkgeyBtX3Byb3BlcnR5U2V0ID0gZmFsc2U7IH0K
ICAgICB2b2lkIGNsZWFyVGltaW5nRnVuY3Rpb24oKSB7IG1fdGltaW5nRnVuY3Rpb25TZXQgPSBm
YWxzZTsgfQorICAgIHZvaWQgY2xlYXJUcmlnZ2VyKCkgeyBtX3RyaWdnZXJTZXQgPSBmYWxzZTsg
fQogCiAgICAgdm9pZCBjbGVhckFsbCgpCiAgICAgewpAQCAtOTAsNiArOTQsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGNsZWFyUGxheVN0YXRlKCk7CiAgICAgICAgIGNsZWFyUHJvcGVydHkoKTsKICAg
ICAgICAgY2xlYXJUaW1pbmdGdW5jdGlvbigpOworICAgICAgICBjbGVhclRyaWdnZXIoKTsKICAg
ICB9CiAKICAgICBkb3VibGUgZGVsYXkoKSBjb25zdCB7IHJldHVybiBtX2RlbGF5OyB9CkBAIC0x
MTksNiArMTI0LDkgQEAgcHVibGljOgogICAgIEVBbmltUGxheVN0YXRlIHBsYXlTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVBbmltUGxheVN0YXRlPihtX3BsYXlTdGF0ZSk7IH0K
ICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0eTsg
fQogICAgIGNvbnN0IFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV90aW1pbmdGdW5jdGlvbjsgfQorI2lmIEVOQUJMRShDU1NfQU5JTUFU
SU9OU19MRVZFTF8yKQorICAgIGNvbnN0IFBhc3NSZWZQdHI8QW5pbWF0aW9uVHJpZ2dlcj4gdHJp
Z2dlcigpIGNvbnN0IHsgcmV0dXJuIG1fdHJpZ2dlcjsgfQorI2VuZGlmCiAgICAgQW5pbWF0aW9u
TW9kZSBhbmltYXRpb25Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAKICAgICB2b2lk
IHNldERlbGF5KGRvdWJsZSBjKSB7IG1fZGVsYXkgPSBjOyBtX2RlbGF5U2V0ID0gdHJ1ZTsgfQpA
QCAtMTMwLDYgKzEzOCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBsYXlTdGF0ZShFQW5pbVBs
YXlTdGF0ZSBkKSB7IG1fcGxheVN0YXRlID0gZDsgbV9wbGF5U3RhdGVTZXQgPSB0cnVlOyB9CiAg
ICAgdm9pZCBzZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHQpIHsgbV9wcm9wZXJ0eSA9IHQ7IG1f
cHJvcGVydHlTZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRUaW1pbmdGdW5jdGlvbihQYXNzUmVm
UHRyPFRpbWluZ0Z1bmN0aW9uPiBmKSB7IG1fdGltaW5nRnVuY3Rpb24gPSBmOyBtX3RpbWluZ0Z1
bmN0aW9uU2V0ID0gdHJ1ZTsgfQorI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQor
ICAgIHZvaWQgc2V0VHJpZ2dlcihQYXNzUmVmUHRyPEFuaW1hdGlvblRyaWdnZXI+IGYpIHsgbV90
cmlnZ2VyID0gZjsgbV90cmlnZ2VyU2V0ID0gdHJ1ZTsgfQorI2VuZGlmCiAgICAgdm9pZCBzZXRB
bmltYXRpb25Nb2RlKEFuaW1hdGlvbk1vZGUgbW9kZSkgeyBtX21vZGUgPSBtb2RlOyB9CiAKICAg
ICB2b2lkIHNldElzTm9uZUFuaW1hdGlvbihib29sIG4pIHsgbV9pc05vbmUgPSBuOyB9CkBAIC0x
NTcsNiArMTY4LDkgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9kZWxheTsKICAgICBkb3VibGUg
bV9kdXJhdGlvbjsKICAgICBSZWZQdHI8VGltaW5nRnVuY3Rpb24+IG1fdGltaW5nRnVuY3Rpb247
CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgUmVmUHRyPEFuaW1hdGlv
blRyaWdnZXI+IG1fdHJpZ2dlcjsKKyNlbmRpZgogICAgIHVuc2lnbmVkIG1fZGlyZWN0aW9uIDog
MjsgLy8gQW5pbWF0aW9uRGlyZWN0aW9uCiAgICAgdW5zaWduZWQgbV9maWxsTW9kZSA6IDI7CiAK
QEAgLTE3MSw3ICsxODUsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGxheVN0YXRlU2V0ICAg
ICAgOiAxOwogICAgIGJvb2wgbV9wcm9wZXJ0eVNldCAgICAgICA6IDE7CiAgICAgYm9vbCBtX3Rp
bWluZ0Z1bmN0aW9uU2V0IDogMTsKLSAgICAKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVW
RUxfMikKKyAgICBib29sIG1fdHJpZ2dlclNldCAgICAgICAgOiAxOworI2VuZGlmCisKICAgICBi
b29sIG1faXNOb25lICAgICAgICAgICAgOiAxOwogCiBwdWJsaWM6CkBAIC0xODQsNiArMjAxLDkg
QEAgcHVibGljOgogICAgIHN0YXRpYyBFQW5pbVBsYXlTdGF0ZSBpbml0aWFsUGxheVN0YXRlKCkg
eyByZXR1cm4gQW5pbVBsYXlTdGF0ZVBsYXlpbmc7IH0KICAgICBzdGF0aWMgQ1NTUHJvcGVydHlJ
RCBpbml0aWFsUHJvcGVydHkoKSB7IHJldHVybiBDU1NQcm9wZXJ0eUludmFsaWQ7IH0KICAgICBz
dGF0aWMgY29uc3QgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gaW5pdGlhbFRpbWluZ0Z1bmN0
aW9uKCkgeyByZXR1cm4gQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6Y3JlYXRlKCk7IH0KKyNp
ZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICBzdGF0aWMgY29uc3QgUGFzc1Jl
ZlB0cjxBbmltYXRpb25UcmlnZ2VyPiBpbml0aWFsVHJpZ2dlcigpIHsgcmV0dXJuIEF1dG9Bbmlt
YXRpb25UcmlnZ2VyOjpjcmVhdGUoKTsgfQorI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcAppbmRleCA2ZWI4ZDkyMTc1NDQyYTBiODRlNjNiYWQ5OGE0ZTRk
MzQ1NmRkMmRkLi5lYzg3Y2I2ZWFmODJiNTAwNWFhNzczMzIzMDU5MDg5NTQ5OWI4NmFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKQEAgLTg2NCw2ICs4NjQsMTQgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFu
aW1hdGlvbkNhbkJlQWNjZWxlcmF0ZWQoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVlTGkK
ICAgICBpZiAoYW5pbWF0aW9uSGFzU3RlcHNUaW1pbmdGdW5jdGlvbih2YWx1ZUxpc3QsIGFuaW0p
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVW
RUxfMikKKyAgICBpZiAoYW5pbS0+dHJpZ2dlcigpLT5pc1Njcm9sbEFuaW1hdGlvblRyaWdnZXIo
KSkgeworICAgICAgICBTY3JvbGxBbmltYXRpb25UcmlnZ2VyKiBzY3JvbGxUcmlnZ2VyID0gc3Rh
dGljX2Nhc3Q8U2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcio+KGFuaW0tPnRyaWdnZXIoKS5nZXQoKSk7
CisgICAgICAgIGlmIChzY3JvbGxUcmlnZ2VyLT5oYXNFbmRWYWx1ZSgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyNlbmRpZgorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKaW5kZXggYWQwYjhlOGM0YzZmZjgwZTEzMmMyOWFhODA2NDAwMGMzZDZkZDdh
OS4uNDcyY2NjMGNkM2U1ODE3NjdhZWY2MWRhNzAwNTIxY2QxOGY5NjcwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKQEAgLTQ3LDYgKzQ3LDcgQEAgRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HID0gRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HOwogRU5BQkxFX0VTNl9DTEFTU19TWU5UQVggPSA7CiBFTkFCTEVf
Q09OVEVOVF9GSUxURVJJTkcgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ1NQ
X05FWFQgPSA7CitFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMiA9IEVOQUJMRV9DU1NfQU5J
TUFUSU9OU19MRVZFTF8yOwogRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyA9IEVOQUJM
RV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUs7CiBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HID0gRU5B
QkxFX0NTU19DT01QT1NJVElORzsKIEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04gPSA7CkBA
IC0yMDksNCArMjEwLDQgQEAgRU5BQkxFX0xMSU5UX0NfTE9PUCA9IDsKIAogRU5BQkxFX1NBVFVS
QVRFRF9MQVlPVVRfQVJJVEhNRVRJQyA9IEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVU
SUM7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVf
QUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JP
TExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5U
KSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVO
QUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9F
UzZfQ0xBU1NfU1lOVEFYKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQ
X05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NP
TVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19H
UklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1Nf
SU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxF
Q1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQo
RU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkg
JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9S
VCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVN
UykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04p
ICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNSWVBURURfTUVE
SUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSU19MRVZFTF8y
KSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HRU9M
T0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5B
QkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVO
QUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19URVhUX0FV
VE9TSVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xFR0FDWV9DU1Nf
VkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
TEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFC
TEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQo
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxF
X01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9D
T05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9M
T0NLKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFC
TEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9B
TklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9S
RU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJM
RV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9TUEVF
Q0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBU
TykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfT1RGX0NPTlZFUlRFUikgJChFTkFC
TEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQp
ICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJM
RV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJM
RV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAk
KEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVO
QUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVO
QUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9TSVpFUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVO
QUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1ApICQoRU5B
QkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFU
SU9OX01PREUpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9X
X1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VM
RU1FTlQpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgp
ICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0VTNl9DTEFTU19TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJM
RV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxF
X0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJM
RV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAk
KEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5B
QkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJ
TkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NI
RU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElT
VF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxT
X0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVO
VFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQ
VEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9B
RF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVO
QUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9I
SURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9J
TkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lP
U19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVf
SU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChF
TkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05U
Uk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElT
VElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5B
QkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01J
U0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJ
U1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChF
TkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQo
RU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAk
KEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVS
X0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRP
U0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RykgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAk
KEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFM
VUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJM
RV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJW
VFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxF
X0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9V
VF9BUklUSE1FVElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CmluZGV4IGFkMGI4ZThjNGM2ZmY4MGUxMzJjMjlhYTgwNjQwMDBjM2Q2ZGQ3YTkuLjQ3MmNjYzBj
ZDNlNTgxNzY3YWVmNjFkYTcwMDUyMWNkMThmOTY3MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00Nyw2ICs0
Nyw3IEBAIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyA9IEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RzsKIEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYID0gOwogRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5H
ID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NTUF9ORVhUID0gOworRU5BQkxF
X0NTU19BTklNQVRJT05TX0xFVkVMXzIgPSBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMjsK
IEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsgPSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFU
SU9OX0JSRUFLOwogRU5BQkxFX0NTU19DT01QT1NJVElORyA9IEVOQUJMRV9DU1NfQ09NUE9TSVRJ
Tkc7CiBFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OID0gOwpAQCAtMjA5LDQgKzIxMCw0IEBA
IEVOQUJMRV9MTElOVF9DX0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRI
TUVUSUMgPSBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9B
VkZfQ0FQVElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVf
UEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZ
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkg
JChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9D
U1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFC
TEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5B
QkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04p
ICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChF
TkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRf
TElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9T
Q0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFM
SVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJ
TFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VW
RU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNS
WVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRk9OVF9M
T0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQo
RU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQo
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZF
UikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
X0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVf
SU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJM
RV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykg
JChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAk
KEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NP
TlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVf
TU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChF
TkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJP
TUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhf
TElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAk
KEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikg
JChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcp
ICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChF
TkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfU1ZHX09URl9DT05WRVJURVIpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1C
RVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FV
VE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FE
SU5HKSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwp
ICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9W
QUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5B
QkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMp
ICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dF
QlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFC
TEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZ
T1VUX0FSSVRITUVUSUMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKTsKK0ZFQVRV
UkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5B
QkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9D
QUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNf
UFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9FUzZfQ0xBU1NfU1lO
VEFYKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5B
QkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9C
UkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBU
QVRJT04pICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lP
TlMpICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAk
KEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAk
KEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChF
TkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJM
RV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBS
RUNBVEVEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJ
TUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9D
T05UUk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQRV9D
T0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFC
TEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMp
ICQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMp
ICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9U
SUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVH
QUNZX1dFQl9BVURJTykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVU
Q0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01F
VEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUp
ICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdD
T05DVVJSRU5DWSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJ
TikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJP
WElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9U
QSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFUVVFU1RfQVVU
T0NPTVBMRVRFKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9O
X01FRElBX1FVRVJZKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfQ1NTX1NDUk9M
TF9TTkFQKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkg
JChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdf
T1RGX0NPTlZFUlRFUikgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5B
QkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVf
VE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX0NTU19U
UkFJTElOR19XT1JEKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVX
X01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVO
QUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9T
SVpFUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5B
QkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJM
RV9MTElOVF9DX0xPT1ApICQoRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChF
TkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248714</attachid>
            <date>2015-03-16 00:18:53 -0700</date>
            <delta_ts>2015-03-16 10:22:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142687-20150316001824.patch</filename>
            <type>text/plain</type>
            <size>55905</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGEzMDQwMzkwN2I4NzZi
OGM0YTlkY2JiNjBhNjZlMmUwM2U4NjRjZi4uMGM3OGFjMTY1MjhmMGU4OWVkNGYyNDM3MzIyNTNh
ZTQ1ZDYwNGZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDE1LTAzLTE2ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBQYXJzaW5nIGFuZCBTdHlsZSBS
ZXNvbHV0aW9uIG9mIENvbnRhaW5lci1iYXNlZCBBbmltYXRpb24gVHJpZ2dlcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjY4NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGJlZ2lu
bmluZyBvZiBhIHByb3RvdHlwZSBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICBDU1MgQW5pbWF0
aW9uIFRyaWdnZXJzLCBhcyBkZXNjcmliZWQgYnkKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53My5v
cmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDE0U2VwLzAxMzUuaHRtbAorCisgICAgICAg
IEluIHRoaXMgcGF0Y2ggd2UgcGFyc2UgYW5kIHJlc29sdmUgdGhlIHZhbHVlIG9mIGEgbmV3Cisg
ICAgICAgIENTUyBwcm9wZXJ0eSAiLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dlciIuIEF0IHRoZSBt
b21lbnQgaXQKKyAgICAgICAgb25seSBhY2NlcHRzIG9uZSBmdW5jdGlvbiB2YWx1ZSAiY29udGFp
bmVyLXNjcm9sbCIsIHdoaWNoCisgICAgICAgIHdpbGwgdHJpZ2dlciB0aGUgYW5pbWF0aW9uIGF0
IGFuIGFic29sdXRlIHBvc2l0aW9uIHdpdGhpbgorICAgICAgICBhbiBlbGVtZW50J3Mgc2Nyb2xs
aW5nIGNvbnRhaW5lci4gV2UgZXhwZWN0IHRoZSBzeW50YXggdG8KKyAgICAgICAgY2hhbmdlIGlu
IHRoZSBuZWFyIGZ1dHVyZSwgYXMgdGhlIHNwZWMgaXMgd3JpdHRlbi4KKworICAgICAgICBUZXN0
czogYW5pbWF0aW9ucy90cmlnZ2VyLWNvbXB1dGVkLXN0eWxlLmh0bWwKKyAgICAgICAgICAgICAg
IGFuaW1hdGlvbnMvdHJpZ2dlci1wYXJzaW5nLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIHRoZSBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBj
c3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmN1c3RvbUNTU1RleHQpOiBP
dXRwdXQgdGV4dCBmb3IgY29tcHV0ZWQgc3R5bGUuCisgICAgICAgIChXZWJDb3JlOjpDU1NBbmlt
YXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmVxdWFscyk6IENvbXBhcmUgdHdvIHZhbHVlcy4KKyAg
ICAgICAgKiBjc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmg6IEFkZGVkLiBUaGlz
IGhvbGRzIHRoZSBDU1Mgc2lkZSBvZiB0aGUKKyAgICAgICAgc2Nyb2xsIHRyaWdnZXIuIFRoaXMg
bmFtZSBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmV0dGVyIHJlcHJlc2VudCB0aGUKKyAg
ICAgICAgdHlwZSBvZiB0cmlnZ2VyLCBidXQgaXQgaXMgZ29vZCBlbm91Z2ggZm9yIG5vdy4KKyAg
ICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZTo6c3RhcnRW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6
OmVuZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxW
YWx1ZTo6aGFzRW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uVHJpZ2dl
clNjcm9sbFZhbHVlOjpDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUpOgorCisgICAgICAg
ICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVBbmltYXRpb25UcmlnZ2VyVmFsdWUpOiBNYXBzIGFuIEFuaW1hdGlvblRyaWdnZXIg
aW50byBhIENTU1ZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6Z2V0QW5pbWF0aW9uVHJpZ2dlclZh
bHVlKTogR2V0cyB0aGUgY3VycmVudCBjb21wdXRlZCBzdHlsZS4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUpOgorCisgICAgICAgICogY3Nz
L0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblRyaWdnZXIpOiBQ
YXJzZSB0aGUgImNvbnRhaW5lci1zY3JvbGwiIGZ1bmN0aW9uCisgICAgICAgIGFuZCByZWNvcmQg
dGhlIHZhbHVlIGFzIGEgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblByb3BlcnR5KTogSGFuZGxlIHRoZSBu
ZXcgcHJvcGVydHkuCisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorCisgICAgICAgICogY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW46IEFkZCAiLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dlciIuCisK
KyAgICAgICAgKiBjc3MvQ1NTVG9TdHlsZU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NU
b1N0eWxlTWFwOjptYXBBbmltYXRpb25UcmlnZ2VyKTogTWFwIGEgQ1NTVmFsdWUgaW50byBhIHRy
aWdnZXIgdmFsdWUgb24KKyAgICAgICAgYW4gQW5pbWF0aW9uIG9iamVjdC4KKyAgICAgICAgKiBj
c3MvQ1NTVG9TdHlsZU1hcC5oOgorCisgICAgICAgICogY3NzL0NTU1ZhbHVlLmNwcDogSGFuZGxl
IHRoZSBuZXcgQ1NTVmFsdWUgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjplcXVh
bHMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmNzc1RleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVmFsdWU6OmRlc3Ryb3kpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlKToK
KworICAgICAgICAqIHBsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaDogQWRkIEFuaW1hdGlv
blRyaWdnZXIgYXMgYSBuZXcgZmllbGQuCisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246Omlz
VHJpZ2dlclNldCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmlzRW1wdHkpOgorCisg
ICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvblRyaWdnZXIuaDogQWRkZWQuIE5l
dyBiYXNlIGNsYXNzIGFuZCBzdWJjbGFzc2VzIGZvcgorICAgICAgICAiYXV0byIgYW5kIHRoZSBz
Y3JvbGxpbmcgdHJpZ2dlci4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblRyaWdnZXI6On5B
bmltYXRpb25UcmlnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblRyaWdnZXI6OnR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uVHJpZ2dlcjo6aXNBdXRvQW5pbWF0aW9u
VHJpZ2dlcik6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25UcmlnZ2VyOjppc1Njcm9sbEFu
aW1hdGlvblRyaWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uVHJpZ2dlcjo6QW5p
bWF0aW9uVHJpZ2dlcik6CisgICAgICAgIChXZWJDb3JlOjpBdXRvQW5pbWF0aW9uVHJpZ2dlcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9BbmltYXRpb25UcmlnZ2VyOjp+QXV0b0Fu
aW1hdGlvblRyaWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXV0b0FuaW1hdGlvblRyaWdnZXI6
OkF1dG9BbmltYXRpb25UcmlnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlv
blRyaWdnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25Ucmln
Z2VyOjp+U2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRpb25UcmlnZ2VyOjpzdGFydFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdGlvblRyaWdnZXI6OnNldFN0YXJ0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0aW9uVHJpZ2dlcjo6ZW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0aW9uVHJpZ2dlcjo6c2V0RW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0aW9uVHJpZ2dlcjo6aGFzRW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0aW9uVHJpZ2dlcjo6c2V0SGFzRW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0aW9uVHJpZ2dlcjo6U2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcik6CisKIDIwMTUtMDMtMTQg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEZlYXR1cmUgZmxhZyBm
b3IgQW5pbWF0aW9ucyBMZXZlbCAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzAwMjAxYWE0NjUxMjIwYWNlNTg5YjE2MzM3NmFm
ZGNkM2Y1YWYyMi4uZTc1MjVkNTdjYmQ1Y2JkMTdmZjJiYmM0Y2Q3ZmIxZmZjOWZiMDUyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTI4MCw2ICsxMjgwLDggQEAKIAkJMzFBNzk1QzcxODg4QkNCMjAwMzgyRjkwIC8qIEFOR0xF
SW5zdGFuY2VkQXJyYXlzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMUE3OTVDMjE4ODhCNzI0MDAzODJGOTAgLyogQU5HTEVJbnN0YW5jZWRBcnJheXMu
aCAqLzsgfTsKIAkJMzFBNzk1QzgxODg4QkNCNTAwMzgyRjkwIC8qIEFOR0xFSW5zdGFuY2VkQXJy
YXlzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
QTc5NUMxMTg4OEI3MjQwMDM4MkY5MCAvKiBBTkdMRUluc3RhbmNlZEFycmF5cy5jcHAgKi87IH07
CiAJCTMxQUI1MDAwMTIyODc4QTIwMDFBN0RCMCAvKiBHcmFwaGljc0NvbnRleHQzRElPUy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBQjRGRkYxMjI4
NzhBMjAwMUE3REIwIC8qIEdyYXBoaWNzQ29udGV4dDNESU9TLmggKi87IH07CisJCTMxQkM3NDJE
MUFBRkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFCQzc0MkIxQUFG
RjQ1QzAwNkI0MzQwIC8qIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAgKi87IH07
CisJCTMxQkM3NDJFMUFBRkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xs
VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
QkM3NDJDMUFBRkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUu
aCAqLzsgfTsKIAkJMzFDMEZGMjEwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
QzBGRjFCMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87IH07
CiAJCTMxQzBGRjIyMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUMwRTRD
RUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggKi87IH07CiAJCTMxQzBGRjI0
MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUUwRTRDRUI2RTAwN0Q2
RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgKi87IH07CkBAIC0xMjk1LDYgKzEyOTcs
NyBAQAogCQkzMUMwRkY0RDBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2
ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFD
MEZGNDcwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSAqLzsg
fTsKIAkJMzFDMEZGNEUwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVu
dEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMUMwRkY0ODBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50
ZXJuYWwuaCAqLzsgfTsKIAkJMzFENTkxQjMxNjY5N0E2QzAwRTZCRjAyIC8qIFBsdWdJbkNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFENTkx
QjExNjY5N0E2QzAwRTZCRjAyIC8qIFBsdWdJbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxRENEMjlEMUFCNEZCREUwMDcyRTgxNyAv
KiBBbmltYXRpb25UcmlnZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMURDRDI5QzFBQjRGQkRFMDA3MkU4MTcgLyogQW5pbWF0aW9uVHJpZ2dlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxRUFG
OTdFMTIxNDM1QTQwMEU3QzFCRiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRUFGOTdDMTIxNDM1QTQwMEU3
QzFCRiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCAqLzsgfTsKIAkJMzFFQUY5N0YxMjE0MzVB
NDAwRTdDMUJGIC8qIERldmljZU1vdGlvbkNsaWVudElPUy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRUFGOTdEMTIxNDM1QTQwMEU3QzFCRiAvKiBE
ZXZpY2VNb3Rpb25DbGllbnRJT1MubW0gKi87IH07CiAJCTMxRUMxRTI4MTRGRjYwRUUwMEM5NDY2
MiAvKiBKU05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUVDMUUyNjE0RkY2MEVFMDBDOTQ2NjIg
LyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suY3BwICovOyB9OwpAQCAtODM3Niw2
ICs4Mzc5LDggQEAKIAkJMzFBNzk1QzQxODg4QkFEMTAwMzgyRjkwIC8qIEpTQU5HTEVJbnN0YW5j
ZWRBcnJheXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBTkdM
RUluc3RhbmNlZEFycmF5cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQTc5
NUM1MTg4OEJBRDEwMDM4MkY5MCAvKiBKU0FOR0xFSW5zdGFuY2VkQXJyYXlzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBQjRGRkYxMjI4NzhBMjAwMUE3REIwIC8qIEdyYXBo
aWNzQ29udGV4dDNESU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBo
aWNzQ29udGV4dDNESU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQkM3NDJC
MUFBRkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQW5pbWF0aW9uVHJpZ2dlclNj
cm9sbFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFCQzc0MkMxQUFG
RjQ1QzAwNkI0MzQwIC8qIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZGMUIwRTRDRUI2RTAwN0Q2RkU1
IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjFEMEU0Q0VCNkUwMDdENkZF
NSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODM5
Myw2ICs4Mzk4LDcgQEAKIAkJMzFDMEZGNDcwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRy
YW5zaXRpb25FdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzFDMEZGNDgwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdFRyYW5z
aXRpb25FdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxRDU5
MUIxMTY2OTdBNkMwMEU2QkYwMiAvKiBQbHVnSW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUGx1Z0luQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxRENEMjlDMUFCNEZCREUwMDcyRTgxNyAvKiBBbmltYXRpb25UcmlnZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFuaW1hdGlvblRyaWdnZXIuaDsgcGF0aCA9IGFu
aW1hdGlvbi9BbmltYXRpb25UcmlnZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMxRThEOEJBMTYwQkM5NEIwMDRDRThGNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxRThEOEJCMTYwQkM5NEMw
MDRDRThGNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMUVBRjk3QzEyMTQzNUE0MDBFN0MxQkYgLyogRGV2aWNlTW90aW9uQ2xp
ZW50SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERldmljZU1vdGlvbkNs
aWVudElPUy5oOyBwYXRoID0gaW9zL0RldmljZU1vdGlvbkNsaWVudElPUy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTYwNjUsNyArMTYwNzEsNiBAQAogCQk0OTg3NzBDMTEyNDJD
NTBEMDAyMjI2QkEgLyogZ3B1ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKLQkJCQk0OTg3NzExNjEyNDJDRDdGMDAyMjI2QkEgLyogbWFjICovLAogCQkJCTQ5ODc3
MEQ3MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmNwcCAqLywKIAkJCQk0OTg3NzBEODEyNDJD
NTM1MDAyMjI2QkEgLyogVGV4dHVyZS5oICovLAogCQkJCTQ5ODc3MEQ5MTI0MkM1MzUwMDIyMjZC
QSAvKiBUaWxpbmdEYXRhLmNwcCAqLywKQEAgLTE2MTQwLDYgKzE2MTQ1LDcgQEAKIAkJCQk0OUU5
MTJBNjBFRkFDOTA2MDA5RDBDQUYgLyogQW5pbWF0aW9uLmggKi8sCiAJCQkJNDlFOTEyQTcwRUZB
QzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlvbkxpc3QuY3BwICovLAogCQkJCTQ5RTkxMkE4MEVGQUM5
MDYwMDlEMENBRiAvKiBBbmltYXRpb25MaXN0LmggKi8sCisJCQkJMzFEQ0QyOUMxQUI0RkJERTAw
NzJFODE3IC8qIEFuaW1hdGlvblRyaWdnZXIuaCAqLywKIAkJCQkwRjU4MEZBRTE0OTgwMEQ0MDBG
QjVCRDggLyogQW5pbWF0aW9uVXRpbGl0aWVzLmggKi8sCiAJCQkJNDlFOTEyQTkwRUZBQzkwNjAw
OUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9uLmggKi8sCiAJCQkpOwpAQCAtMjIxODAsNiArMjIxODYs
OCBAQAogCQlGNTIzRDE4NDAyREU0MkU4MDE4NjM1Q0EgLyogY3NzICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkzMUJDNzQyQjFBQUZGNDVDMDA2QjQzNDAg
LyogQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCAqLywKKwkJCQkzMUJDNzQyQzFB
QUZGNDVDMDA2QjQzNDAgLyogQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmggKi8sCiAJ
CQkJODM1MjBDN0QxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCAqLywKIAkJCQlG
QkQ2QUY4NDE1RUYyMUQ0MDA4QjcxMTAgLyogQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHAgKi8sCiAJ
CQkJRkJENkFGODUxNUVGMjFENDAwOEI3MTEwIC8qIEJhc2ljU2hhcGVGdW5jdGlvbnMuaCAqLywK
QEAgLTI0MTg0LDYgKzI0MTkyLDcgQEAKIAkJCQk4NUJBNENERDBBQTY4NjFCMDA4ODA1MkQgLyog
RE9NSFRNTEJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUExMEFDNUQ1
MzUwMDUzMjcwRiAvKiBET01IVE1MQnV0dG9uRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0QzQzE1OTBGOTdBOUQ3MDA1M0MwMTMgLyogRE9NSFRNTENhbnZhc0VsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTMxRENEMjlEMUFCNEZCREUwMDcyRTgxNyAvKiBBbmltYXRp
b25UcmlnZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Y5QjY1ODBCQTBGMzVFMDA4NTQwNjQg
LyogRE9NSFRNTENhbnZhc0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVE
RjJGOEUwQUEzQzg4MTAwQUQ2NEM1IC8qIERPTUhUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NUU3MTFBMjBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTENvbGxlY3Rpb25JbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDMxNiw2ICsyNDMyNSw3IEBACiAJCQkJODUxOERE
NzgwQTlDRjMxQjAwOTFCN0E2IC8qIERPTU5hbWVkTm9kZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODVFNzExRDIwQUM1RDUzNTAwNTMyNzBGIC8qIERPTU5hbWVkTm9kZU1hcEludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NTNCRjREQjBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMzFCQzc0MkUxQUFGRjQ1QzAwNkI0MzQwIC8qIENTU0FuaW1h
dGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU0MDc1MjYwQUQ2
QzY2NzAwNjIwQzU3IC8qIERPTU5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1QjQ5
OEZCMEFEQjM0MDIwMDkyNUNCQiAvKiBET01Ob2RlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg1NTI2QzM3MEFCMEExN0UwMDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3IuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjk4OTQsNiArMjk5MDQsNyBAQAogCQkJCUIyOEM2QTI5MEQwMEM0NDgwMDMz
NEFBNCAvKiBTVkdJbWFnZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0EyRjBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHTGFuZ1NwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
MjI3QTMyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMZW5ndGguY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMzFCQzc0MkQxQUFGRjQ1QzAwNkI0MzQwIC8qIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MTM0NDk2RDE0Njk0MUIzMDA3MjAzMTIgLyog
U1ZHTGVuZ3RoQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0EzNTBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHTGVuZ3RoTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0Ez
ODBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FuaW1hdGlvblRyaWdn
ZXJTY3JvbGxWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dl
clNjcm9sbFZhbHVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjdmZTM3OTQ5ZjgyMTk4OTY2MDdjZDA3OGQz
YWNmNWZlZGI0YjA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Fu
aW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuaCIKKworI2lmIEVOQUJM
RShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmlu
ZyBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAor
eworICAgIGlmIChtX2hhc0VuZFZhbHVlKQorICAgICAgICByZXR1cm4gImNvbnRhaW5lci1zY3Jv
bGwoIiArIG1fc3RhcnRWYWx1ZS0+Y3NzVGV4dCgpICsgIiwgIiArIG1fZW5kVmFsdWUtPmNzc1Rl
eHQoKSArICcpJzsKKyAgICByZXR1cm4gImNvbnRhaW5lci1zY3JvbGwoIiArIG1fc3RhcnRWYWx1
ZS0+Y3NzVGV4dCgpICsgJyknOworfQorCitib29sIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxW
YWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZSYgb3RoZXIp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RhcnRWYWx1ZS0+ZXF1YWxzKCpvdGhlci5tX3N0YXJ0
VmFsdWUuZ2V0KCkpICYmIG1fZW5kVmFsdWUtPmVxdWFscygqb3RoZXIubV9lbmRWYWx1ZS5nZXQo
KSkgJiYgbV9oYXNFbmRWYWx1ZSA9PSBvdGhlci5tX2hhc0VuZFZhbHVlOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwZjlmY2UwZmRjYzRk
YTg0MWVkN2U2M2E3MzYxY2EzODY4OThmNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmgKQEAgLTAsMCArMSw3MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
Q1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlX2gKKyNkZWZpbmUgQ1NTQW5pbWF0aW9uVHJp
Z2dlclNjcm9sbFZhbHVlX2gKKworI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQor
CisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1
ZSA6IHB1YmxpYyBDU1NWYWx1ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDU1NBbmltYXRp
b25UcmlnZ2VyU2Nyb2xsVmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBzdGFydFZh
bHVlLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBlbmRWYWx1ZSA9IG51bGxwdHIsIGJvb2wgaGFzRW5k
VmFsdWUgPSBmYWxzZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENTU0Fu
aW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZShzdGFydFZhbHVlLCBlbmRWYWx1ZSwgaGFzRW5kVmFs
dWUpKTsKKyAgICB9CisKKyAgICBDU1NWYWx1ZSogc3RhcnRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhcnRWYWx1ZS5nZXQoKTsgfQorICAgIENTU1ZhbHVlKiBlbmRWYWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZW5kVmFsdWUuZ2V0KCk7IH0KKyAgICBib29sIGhhc0VuZFZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNFbmRWYWx1ZTsgfQorCisgICAgU3RyaW5nIGN1c3RvbUNTU1RleHQoKSBj
b25zdDsKKworICAgIGJvb2wgZXF1YWxzKGNvbnN0IENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxW
YWx1ZSYpIGNvbnN0OworCitwcml2YXRlOgorICAgIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxW
YWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBzdGFydFZhbHVlLCBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBlbmRWYWx1ZSwgYm9vbCBoYXNFbmRWYWx1ZSkKKyAgICAgICAgOiBDU1NWYWx1ZShBbmltYXRp
b25UcmlnZ2VyU2Nyb2xsQ2xhc3MpCisgICAgICAgICwgbV9zdGFydFZhbHVlKHN0YXJ0VmFsdWUp
CisgICAgICAgICwgbV9lbmRWYWx1ZShlbmRWYWx1ZSkKKyAgICAgICAgLCBtX2hhc0VuZFZhbHVl
KGhhc0VuZFZhbHVlKQorICAgIHsKKyAgICB9CisKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fc3Rh
cnRWYWx1ZTsKKyAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fZW5kVmFsdWU7CisgICAgYm9vbCBtX2hh
c0VuZFZhbHVlOworfTsKKworfQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NTU19WQUxVRShD
U1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUsIGlzQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZh
bHVlKCkpCisKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggYmM4ZjU5ODdmZjJiODYwMmVhYWU2
OWRkMzgyNTc3YmJhYTgyYjdiNS4uMDVjNDM1NTkwMmYyNDM3OTQyZTAwNDU1Zjg1ZjNmZTQzYWM3
Y2NiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIgogI2luY2x1ZGUgIkJhc2lj
U2hhcGVzLmgiCisjaW5jbHVkZSAiQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmgiCiAj
aW5jbHVkZSAiQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0Jhc2ljU2hhcGVz
LmgiCiAjaW5jbHVkZSAiQ1NTQm9yZGVySW1hZ2UuaCIKQEAgLTg3LDYgKzg4LDEwIEBACiAjaW5j
bHVkZSAiU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShDU1Nf
QU5JTUFUSU9OU19MRVZFTF8yKQorI2luY2x1ZGUgIkFuaW1hdGlvblRyaWdnZXIuaCIKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIExpc3Qgb2YgYWxsIHByb3BlcnRpZXMgd2Ug
a25vdyBob3cgdG8gY29tcHV0ZSwgb21pdHRpbmcgc2hvcnRoYW5kcy4KQEAgLTEyMjEsNiArMTIy
NiwzNSBAQCBzdGF0aWMgUmVmPENTU1ZhbHVlTGlzdD4gZ2V0VGltaW5nRnVuY3Rpb25WYWx1ZShj
b25zdCBBbmltYXRpb25MaXN0KiBhbmltTGlzdCkKICAgICByZXR1cm4gbGlzdDsKIH0KIAorI2lm
IEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorc3RhdGljIFJlZjxDU1NWYWx1ZT4gY3Jl
YXRlQW5pbWF0aW9uVHJpZ2dlclZhbHVlKGNvbnN0IEFuaW1hdGlvblRyaWdnZXIqIHRyaWdnZXIs
IGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBzd2l0Y2ggKHRyaWdnZXItPnR5cGUo
KSkgeworICAgIGNhc2UgQW5pbWF0aW9uVHJpZ2dlcjo6U2Nyb2xsQW5pbWF0aW9uVHJpZ2dlclR5
cGU6IHsKKyAgICAgICAgY29uc3QgU2Nyb2xsQW5pbWF0aW9uVHJpZ2dlciogc2Nyb2xsQW5pbWF0
aW9uVHJpZ2dlciA9IHN0YXRpY19jYXN0PGNvbnN0IFNjcm9sbEFuaW1hdGlvblRyaWdnZXIqPih0
cmlnZ2VyKTsKKyAgICAgICAgcmV0dXJuIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZTo6
Y3JlYXRlKHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc2Nyb2xsQW5pbWF0aW9uVHJp
Z2dlci0+c3RhcnRWYWx1ZSgpLCBzdHlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3Ro
KHNjcm9sbEFuaW1hdGlvblRyaWdnZXItPmVuZFZhbHVlKCksIHN0eWxlKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbEFuaW1hdGlv
blRyaWdnZXItPmhhc0VuZFZhbHVlKCkpOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBB
U1NFUlQodHJpZ2dlci0+dHlwZSgpID09IEFuaW1hdGlvblRyaWdnZXI6OkF1dG9BbmltYXRpb25U
cmlnZ2VyVHlwZSk7CisgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlm
aWVyVmFsdWUoQ1NTVmFsdWVBdXRvKTsKKyAgICB9Cit9CisKK3N0YXRpYyBSZWY8Q1NTVmFsdWVM
aXN0PiBnZXRBbmltYXRpb25UcmlnZ2VyVmFsdWUoY29uc3QgQW5pbWF0aW9uTGlzdCogYW5pbUxp
c3QsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBhdXRvIGxpc3QgPSBDU1NWYWx1
ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAgaWYgKGFuaW1MaXN0KSB7CisgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYW5pbUxpc3QtPnNpemUoKTsgKytpKQorICAgICAg
ICAgICAgbGlzdC5nZXQoKS5hcHBlbmQoY3JlYXRlQW5pbWF0aW9uVHJpZ2dlclZhbHVlKGFuaW1M
aXN0LT5hbmltYXRpb24oaSkudHJpZ2dlcigpLmdldCgpLCBzdHlsZSkpOworICAgIH0gZWxzZQor
ICAgICAgICBsaXN0LmdldCgpLmFwcGVuZChjcmVhdGVBbmltYXRpb25UcmlnZ2VyVmFsdWUoQW5p
bWF0aW9uOjppbml0aWFsVHJpZ2dlcigpLmdldCgpLCBzdHlsZSkpOworCisgICAgcmV0dXJuIGxp
c3Q7Cit9CisjZW5kaWYKKwogc3RhdGljIFJlZjxDU1NWYWx1ZT4gY3JlYXRlTGluZUJveENvbnRh
aW5WYWx1ZSh1bnNpZ25lZCBsaW5lQm94Q29udGFpbikKIHsKICAgICBpZiAoIWxpbmVCb3hDb250
YWluKQpAQCAtMjcyMCw2ICsyNzU0LDEwIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVk
U3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlBbmltYXRpb25UaW1pbmdGdW5jdGlvbjoKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOgogICAgICAgICAgICAg
cmV0dXJuIGdldFRpbWluZ0Z1bmN0aW9uVmFsdWUoc3R5bGUtPmFuaW1hdGlvbnMoKSk7CisjaWYg
RU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRBbmltYXRpb25UcmlnZ2VyOgorICAgICAgICAgICAgcmV0dXJuIGdldEFuaW1hdGlvblRy
aWdnZXJWYWx1ZShzdHlsZS0+YW5pbWF0aW9ucygpLCBzdHlsZS5nZXQoKSk7CisjZW5kaWYKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFwcGVhcmFuY2U6CiAgICAgICAgICAgICByZXR1
cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc3R5bGUtPmFwcGVhcmFuY2UoKSk7CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRBc3BlY3RSYXRpbzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKaW5kZXggZDY4YTczNDZkYTIwYTZjZDA2MDFmODI1OGY1NDZjNTliOTczOGQzZS4uN2Qy
NzI2MTI2ODg5YzY4YmU0NThkOTQ2MDc1NGUzMTkzMzViNjE1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJDU1NQYXJzZXIuaCIKIAorI2luY2x1ZGUgIkNTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1
ZS5oIgogI2luY2x1ZGUgIkNTU0FzcGVjdFJhdGlvVmFsdWUuaCIKICNpbmNsdWRlICJDU1NCYXNp
Y1NoYXBlcy5oIgogI2luY2x1ZGUgIkNTU0JvcmRlckltYWdlLmgiCkBAIC0yNjg5LDYgKzI2OTAs
OSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9v
bCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblBsYXlTdGF0
ZToKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOgorI2lmIEVO
QUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRB
bmltYXRpb25UcmlnZ2VyOgorI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25E
ZWxheToKICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbkR1cmF0aW9uOgogICAgIGNhc2Ug
Q1NTUHJvcGVydHlUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb246CkBAIC00NzQzLDYgKzQ3NDcsNTEg
QEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblBsYXlTdGF0
ZSgpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNf
TEVWRUxfMikKK1Bhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VBbmltYXRpb25U
cmlnZ2VyKCkKK3sKKyAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3Vy
cmVudCgpOworICAgIGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVBdXRvKQorICAgICAgICByZXR1
cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7CisK
KyAgICBpZiAodmFsdWUtPnVuaXQgIT0gQ1NTUGFyc2VyVmFsdWU6OkZ1bmN0aW9uKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIENTU1BhcnNlclZhbHVlTGlzdCogYXJncyA9IHZhbHVl
LT5mdW5jdGlvbi0+YXJncy5nZXQoKTsKKworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1
ZS0+ZnVuY3Rpb24tPm5hbWUsICJjb250YWluZXItc2Nyb2xsKCIpKSB7CisgICAgICAgIGlmICgh
YXJncyB8fCAoYXJncy0+c2l6ZSgpICE9IDEgJiYgYXJncy0+c2l6ZSgpICE9IDMpKQorICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAgQ1NTUGFyc2VyVmFsdWUqIGFyZ3VtZW50
ID0gYXJncy0+Y3VycmVudCgpOworICAgICAgICBWYWx1ZVdpdGhDYWxjdWxhdGlvbiBmaXJzdEFy
Z3VtZW50V2l0aENhbGN1bGF0aW9uKCphcmd1bWVudCk7CisgICAgICAgIGlmICghdmFsaWRhdGVV
bml0KGZpcnN0QXJndW1lbnRXaXRoQ2FsY3VsYXRpb24sIEZMZW5ndGgpKQorICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiBzdGFydFZhbHVlID0g
Y3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKGZpcnN0QXJndW1lbnRXaXRoQ2FsY3VsYXRpb24p
OworCisgICAgICAgIGFyZ3VtZW50ID0gYXJncy0+bmV4dCgpOworCisgICAgICAgIGlmICghYXJn
dW1lbnQpCisgICAgICAgICAgICByZXR1cm4gQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVl
OjpjcmVhdGUoc3RhcnRWYWx1ZS5yZWxlYXNlKCkpOworCisgICAgICAgIGlmICghaXNDb21tYShh
cmd1bWVudCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBhcmd1bWVu
dCA9IGFyZ3MtPm5leHQoKTsKKyAgICAgICAgVmFsdWVXaXRoQ2FsY3VsYXRpb24gc2Vjb25kQXJn
dW1lbnRXaXRoQ2FsY3VsYXRpb24oKmFyZ3VtZW50KTsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZVVu
aXQoc2Vjb25kQXJndW1lbnRXaXRoQ2FsY3VsYXRpb24sIEZMZW5ndGgpKQorICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiBlbmRWYWx1ZSA9IGNy
ZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZShzZWNvbmRBcmd1bWVudFdpdGhDYWxjdWxhdGlvbik7
CisKKyAgICAgICAgcmV0dXJuIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZTo6Y3JlYXRl
KHN0YXJ0VmFsdWUucmVsZWFzZSgpLCBlbmRWYWx1ZS5yZWxlYXNlKCksIHRydWUpOworICAgIH0K
KworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1Bh
cnNlcjo6cGFyc2VBbmltYXRpb25Qcm9wZXJ0eShBbmltYXRpb25QYXJzZUNvbnRleHQmIGNvbnRl
eHQpCiB7CiAgICAgQ1NTUGFyc2VyVmFsdWUmIHZhbHVlID0gKm1fdmFsdWVMaXN0LT5jdXJyZW50
KCk7CkBAIC00OTgwLDYgKzUwMjksMTMgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9u
UHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIFJlZlB0cjxDU1NWYWx1ZT4mIHIKICAgICAg
ICAgICAgICAgICBpZiAoY3VyclZhbHVlKQogICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlTGlz
dC0+bmV4dCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShDU1NfQU5JTUFU
SU9OU19MRVZFTF8yKQorICAgICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlv
blRyaWdnZXI6CisgICAgICAgICAgICAgICAgY3VyclZhbHVlID0gcGFyc2VBbmltYXRpb25Ucmln
Z2VyKCk7CisgICAgICAgICAgICAgICAgaWYgKGN1cnJWYWx1ZSkKKyAgICAgICAgICAgICAgICAg
ICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgog
ICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5k
ZXggNTM1ZDIyMmQ0OTRiMzU5MzRkZDI0ZGY2ZTIwYTNkODQxOTQzNjE0Yi4uODdmYmI2M2I0YjAw
NDlhZjAyODJjYjk3MDk3MWFmYWRkOGZkNWU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAt
MTgxLDYgKzE4MSw5IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUFu
aW1hdGlvblBsYXlTdGF0ZSgpOwogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlQW5pbWF0
aW9uUHJvcGVydHkoQW5pbWF0aW9uUGFyc2VDb250ZXh0Jik7CiAgICAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gcGFyc2VBbmltYXRpb25UaW1pbmdGdW5jdGlvbigpOworI2lmIEVOQUJMRShDU1NfQU5J
TUFUSU9OU19MRVZFTF8yKQorICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlQW5pbWF0aW9u
VHJpZ2dlcigpOworI2VuZGlmCiAgICAgc3RhdGljIFZlY3Rvcjxkb3VibGU+IHBhcnNlS2V5ZnJh
bWVTZWxlY3Rvcihjb25zdCBTdHJpbmcmKTsKIAogICAgIGJvb2wgcGFyc2VUcmFuc2Zvcm1Pcmln
aW5TaG9ydGhhbmQoUmVmUHRyPENTU1ZhbHVlPiYsIFJlZlB0cjxDU1NWYWx1ZT4mLCBSZWZQdHI8
Q1NTVmFsdWU+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlO
YW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDEy
MWQ2Mzc1ZjQ4NmFkZGY2ZDY0N2NlNTBjYmY4NWIwYjk0MWI0ZDIuLjAzYzhlZTA3MTY0OWVlNTZj
MjI2ZWE5MDBiMjM4OWQ2M2I3M2M2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5h
bWVzLmluCkBAIC0zNjcsNiArMzY3LDkgQEAgYWx0IFtOYW1lRm9yTWV0aG9kcz1Db250ZW50QWx0
VGV4dCwgQ3VzdG9tPVZhbHVlXQogLXdlYmtpdC1hbmltYXRpb24tbmFtZSBbQW5pbWF0aW9uUHJv
cGVydHksIE5hbWVGb3JNZXRob2RzPU5hbWVdCiAtd2Via2l0LWFuaW1hdGlvbi1wbGF5LXN0YXRl
IFtBbmltYXRpb25Qcm9wZXJ0eSwgTmFtZUZvck1ldGhvZHM9UGxheVN0YXRlXQogLXdlYmtpdC1h
bmltYXRpb24tdGltaW5nLWZ1bmN0aW9uIFtBbmltYXRpb25Qcm9wZXJ0eSwgTmFtZUZvck1ldGhv
ZHM9VGltaW5nRnVuY3Rpb25dCisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVW
RUxfMikgJiYgRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIKKy13ZWJraXQtYW5pbWF0aW9u
LXRyaWdnZXIgW0FuaW1hdGlvblByb3BlcnR5LCBOYW1lRm9yTWV0aG9kcz1UcmlnZ2VyXQorI2Vu
ZGlmCiAtd2Via2l0LWFwcGVhcmFuY2UKIC13ZWJraXQtYXNwZWN0LXJhdGlvIFtJbmhlcml0ZWQs
IEN1c3RvbT1BbGxdCiAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NUb1N0eWxlTWFwLmNwcAppbmRleCBkYzYxYTVjNWUzNjA4NTUwZTYxYmNkNTAzYjgyOGJjMWUx
ZGU5MGE5Li42MDc5YTNjZGQ5ZmM3Njc2YTRhMmNiOTY3YTA1NzJjMTk2ZTBlMzkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
Q1NTVG9TdHlsZU1hcC5oIgogCiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCisjaW5jbHVkZSAiQ1NT
QW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTQm9yZGVySW1hZ2VT
bGljZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oIgogI2luY2x1
ZGUgIkNTU0ltYWdlU2V0VmFsdWUuaCIKQEAgLTUxMyw2ICs1MTQsMzggQEAgdm9pZCBDU1NUb1N0
eWxlTWFwOjptYXBBbmltYXRpb25UaW1pbmdGdW5jdGlvbihBbmltYXRpb24mIGFuaW1hdGlvbiwg
Q1NTVmFsdWUmIHYKICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxf
MikKK3ZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uVHJpZ2dlcihBbmltYXRpb24mIGFu
aW1hdGlvbiwgQ1NTVmFsdWUmIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc0luaXRpYWxWYWx1
ZSgpKSB7CisgICAgICAgIGFuaW1hdGlvbi5zZXRUcmlnZ2VyKEFuaW1hdGlvbjo6aW5pdGlhbFRy
aWdnZXIoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAodmFsdWUuaXNQcmlt
aXRpdmVWYWx1ZSgpKSB7CisgICAgICAgIGF1dG8mIHByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLmdl
dFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgICAgICBhbmltYXRpb24uc2V0VHJp
Z2dlcihBdXRvQW5pbWF0aW9uVHJpZ2dlcjo6Y3JlYXRlKCkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKHZhbHVlLmlzQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlKCkpIHsK
KyAgICAgICAgYXV0byYgc2Nyb2xsVHJpZ2dlciA9IGRvd25jYXN0PENTU0FuaW1hdGlvblRyaWdn
ZXJTY3JvbGxWYWx1ZT4odmFsdWUpOworCisgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBzdGFy
dFZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHNjcm9sbFRyaWdnZXIuc3RhcnRW
YWx1ZSgpKTsKKyAgICAgICAgTGVuZ3RoIHN0YXJ0TGVuZ3RoID0gc3RhcnRWYWx1ZS0+Y29tcHV0
ZUxlbmd0aDxMZW5ndGg+KG1fcmVzb2x2ZXItPnN0YXRlKCkuY3NzVG9MZW5ndGhDb252ZXJzaW9u
RGF0YSgpKTsKKworICAgICAgICBMZW5ndGggZW5kTGVuZ3RoOworICAgICAgICBpZiAoc2Nyb2xs
VHJpZ2dlci5oYXNFbmRWYWx1ZSgpKSB7CisgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSog
ZW5kVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oc2Nyb2xsVHJpZ2dlci5lbmRW
YWx1ZSgpKTsKKyAgICAgICAgICAgIGVuZExlbmd0aCA9IGVuZFZhbHVlLT5jb21wdXRlTGVuZ3Ro
PExlbmd0aD4obV9yZXNvbHZlci0+c3RhdGUoKS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkp
OworICAgICAgICB9CisKKyAgICAgICAgYW5pbWF0aW9uLnNldFRyaWdnZXIoU2Nyb2xsQW5pbWF0
aW9uVHJpZ2dlcjo6Y3JlYXRlKHN0YXJ0TGVuZ3RoLCBlbmRMZW5ndGgsIHNjcm9sbFRyaWdnZXIu
aGFzRW5kVmFsdWUoKSkpOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIENTU1RvU3R5bGVNYXA6
Om1hcE5pbmVQaWVjZUltYWdlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTU1ZhbHVlKiB2YWx1
ZSwgTmluZVBpZWNlSW1hZ2UmIGltYWdlKQogewogICAgIC8vIElmIHdlJ3JlIG5vdCBhIHZhbHVl
IGxpc3QsIHRoZW4gd2UgYXJlICJub25lIiBhbmQgZG9uJ3QgbmVlZCB0byBhbHRlciB0aGUgZW1w
dHkgaW1hZ2UgYXQgYWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5
bGVNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgKaW5kZXggYWExYjQ4
NjJmNmFkMDQ0ODQxNmIwYTdkMTczMTI0ZjBmZjU4ZDFiMC4uYjVmM2VlNzkwNjNhOTM2NTFlOTcx
NTEyZTliM2QyZmMzYzYxMTdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Rv
U3R5bGVNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5oCkBAIC02
Nyw2ICs2Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcEFuaW1hdGlvblBsYXlTdGF0ZShBbmlt
YXRpb24mLCBDU1NWYWx1ZSYpOwogICAgIHZvaWQgbWFwQW5pbWF0aW9uUHJvcGVydHkoQW5pbWF0
aW9uJiwgQ1NTVmFsdWUmKTsKICAgICB2b2lkIG1hcEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKEFu
aW1hdGlvbiYsIENTU1ZhbHVlJik7CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIp
CisgICAgdm9pZCBtYXBBbmltYXRpb25UcmlnZ2VyKEFuaW1hdGlvbiYsIENTU1ZhbHVlJik7Cisj
ZW5kaWYKIAogICAgIHZvaWQgbWFwTmluZVBpZWNlSW1hZ2UoQ1NTUHJvcGVydHlJRCwgQ1NTVmFs
dWUqLCBOaW5lUGllY2VJbWFnZSYpOwogICAgIHZvaWQgbWFwTmluZVBpZWNlSW1hZ2VTbGljZShD
U1NWYWx1ZSYsIE5pbmVQaWVjZUltYWdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAppbmRleCAy
NzUyMzQzOGE0YjNkYWViYzUxN2RmNGFlMWVkOTlmNjkxNzFlMzFiLi4zNzdmNmVkYTk5OThiNjdi
ODg5NzZmMmNlOWI0MTkwZWRlMDFkNDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgog
CisjaW5jbHVkZSAiQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTQXNwZWN0UmF0aW9WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0JvcmRlckltYWdlU2xpY2VWYWx1
ZS5oIgogI2luY2x1ZGUgIkNTU0NhbGN1bGF0aW9uVmFsdWUuaCIKQEAgLTIyNiw2ICsyMjcsMTAg
QEAgYm9vbCBDU1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBvdGhlcikgY29uc3QKICAg
ICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPFNWR0NvbG9yPigqdGhpcywgb3RoZXIp
OwogICAgICAgICBjYXNlIFNWR1BhaW50Q2xhc3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFy
ZUNTU1ZhbHVlczxTVkdQYWludD4oKnRoaXMsIG90aGVyKTsKKyNpZiBFTkFCTEUoQ1NTX0FOSU1B
VElPTlNfTEVWRUxfMikKKyAgICAgICAgY2FzZSBBbmltYXRpb25UcmlnZ2VyU2Nyb2xsQ2xhc3M6
CisgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NBbmltYXRpb25UcmlnZ2Vy
U2Nyb2xsVmFsdWU+KCp0aGlzLCBvdGhlcik7CisjZW5kaWYKICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMzEyLDYgKzMxNywxMCBAQCBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAog
ICAgICAgICByZXR1cm4gZG93bmNhc3Q8U1ZHQ29sb3I+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7
CiAgICAgY2FzZSBTVkdQYWludENsYXNzOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8U1ZHUGFp
bnQ+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xF
VkVMXzIpCisgICAgY2FzZSBBbmltYXRpb25UcmlnZ2VyU2Nyb2xsQ2xhc3M6CisgICAgICAgIHJl
dHVybiBkb3duY2FzdDxDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU+KCp0aGlzKS5jdXN0
b21DU1NUZXh0KCk7CisjZW5kaWYKICAgICBjYXNlIFdlYktpdENTU1Jlc291cmNlQ2xhc3M6CiAg
ICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJLaXRDU1NSZXNvdXJjZVZhbHVlPigqdGhpcykuY3Vz
dG9tQ1NTVGV4dCgpOwogICAgIH0KQEAgLTQyNiw2ICs0MzUsMTEgQEAgdm9pZCBDU1NWYWx1ZTo6
ZGVzdHJveSgpCiAgICAgY2FzZSBTVkdQYWludENsYXNzOgogICAgICAgICBkZWxldGUgZG93bmNh
c3Q8U1ZHUGFpbnQ+KHRoaXMpOwogICAgICAgICByZXR1cm47CisjaWYgRU5BQkxFKENTU19BTklN
QVRJT05TX0xFVkVMXzIpCisgICAgY2FzZSBBbmltYXRpb25UcmlnZ2VyU2Nyb2xsQ2xhc3M6Cisg
ICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU+KHRo
aXMpOworICAgICAgICByZXR1cm47CisjZW5kaWYKICAgICBjYXNlIFdlYktpdENTU1Jlc291cmNl
Q2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxXZWJLaXRDU1NSZXNvdXJjZVZhbHVlPih0
aGlzKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAppbmRleCA2MzJlZjlhYTll
NmQ3Yzc0MDQyYzc5MmY4OWEyY2ZiOGJiNzVmZDQwLi45ZjE5YWY5Yzk0YTAzNjMxM2FjZTRkMjVi
ZmY0NTIyNTM1NmMzNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaApAQCAtMTA1LDYgKzEwNSwxMCBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc1VuaWNvZGVSYW5nZVZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9jbGFzc1R5cGUgPT0gVW5pY29kZVJhbmdlQ2xhc3M7IH0KICAgICBib29sIGlzV2ViS2l0Q1NT
UmVzb3VyY2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IFdlYktpdENTU1Jl
c291cmNlQ2xhc3M7IH0KIAorI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAg
IGJvb2wgaXNBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2Ns
YXNzVHlwZSA9PSBBbmltYXRpb25UcmlnZ2VyU2Nyb2xsQ2xhc3M7IH0KKyNlbmRpZgorCiAgICAg
Ym9vbCBpc0NTU09NU2FmZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDU1NPTVNhZmU7IH0KICAgICBi
b29sIGlzU3VidHlwZUV4cG9zZWRUb0NTU09NKCkgY29uc3QKICAgICB7IApAQCAtMTY1LDYgKzE2
OSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIFNWR1BhaW50Q2xhc3MsCiAgICAgICAgIFdlYktp
dENTU1Jlc291cmNlQ2xhc3MsCiAKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikK
KyAgICAgICAgQW5pbWF0aW9uVHJpZ2dlclNjcm9sbENsYXNzLAorI2VuZGlmCisKICAgICAgICAg
Ly8gTGlzdCBjbGFzcyB0eXBlcyBtdXN0IGFwcGVhciBhZnRlciBWYWx1ZUxpc3RDbGFzcy4KICAg
ICAgICAgVmFsdWVMaXN0Q2xhc3MsCiAjaWYgRU5BQkxFKENTU19JTUFHRV9TRVQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKaW5kZXggZTE2Mzg0ZmU5
N2Q2N2IyOTcwMTlmODZiNjgwNTNkOWI2Yzk2NzUzMS4uZTc4ZjlkMTRjMjg3NGEzYjNhZDA5NzIz
ZmI1OWZhYjUzNGJmYmJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5p
bWF0aW9uL0FuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlv
bi9BbmltYXRpb24uaApAQCAtMjUsNiArMjUsOSBAQAogI2lmbmRlZiBBbmltYXRpb25faAogI2Rl
ZmluZSBBbmltYXRpb25faAogCisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisj
aW5jbHVkZSAiQW5pbWF0aW9uVHJpZ2dlci5oIgorI2VuZGlmCiAjaW5jbHVkZSAiQ1NTUHJvcGVy
dHlOYW1lcy5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAi
VGltaW5nRnVuY3Rpb24uaCIKQEAgLTUwLDYgKzUzLDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNQ
bGF5U3RhdGVTZXQoKSBjb25zdCB7IHJldHVybiBtX3BsYXlTdGF0ZVNldDsgfQogICAgIGJvb2wg
aXNQcm9wZXJ0eVNldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHlTZXQ7IH0KICAgICBib29s
IGlzVGltaW5nRnVuY3Rpb25TZXQoKSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1bmN0aW9uU2V0
OyB9CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgYm9vbCBpc1RyaWdn
ZXJTZXQoKSBjb25zdCB7IHJldHVybiBtX3RyaWdnZXJTZXQ7IH0KKyNlbmRpZgogCiAgICAgLy8g
RmxhZ3MgdGhpcyB0byBiZSB0aGUgc3BlY2lhbCAibm9uZSIgYW5pbWF0aW9uIChhbmltYXRpb24t
bmFtZTogbm9uZSkKICAgICBib29sIGlzTm9uZUFuaW1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
aXNOb25lOyB9CkBAIC02MSw3ICs2NywxMiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1
cm4gKCFtX2RpcmVjdGlvblNldCAmJiAhbV9kdXJhdGlvblNldCAmJiAhbV9maWxsTW9kZVNldAog
ICAgICAgICAgICAgICAgICYmICFtX25hbWVTZXQgJiYgIW1fcGxheVN0YXRlU2V0ICYmICFtX2l0
ZXJhdGlvbkNvdW50U2V0Ci0gICAgICAgICAgICAgICAgJiYgIW1fZGVsYXlTZXQgJiYgIW1fdGlt
aW5nRnVuY3Rpb25TZXQgJiYgIW1fcHJvcGVydHlTZXQpOworICAgICAgICAgICAgICAgICYmICFt
X2RlbGF5U2V0ICYmICFtX3RpbWluZ0Z1bmN0aW9uU2V0ICYmICFtX3Byb3BlcnR5U2V0CisjaWYg
RU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgICAgICAgICAgICAgJiYgIW1fdHJp
Z2dlclNldCk7CisjZWxzZQorICAgICAgICAgICAgICAgICk7CisjZW5kaWYKICAgICB9CiAKICAg
ICBib29sIGlzRW1wdHlPclplcm9EdXJhdGlvbigpIGNvbnN0CkBAIC03OCw2ICs4OSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNsZWFyUGxheVN0YXRlKCkgeyBtX3BsYXlTdGF0ZVNldCA9IEFuaW1Q
bGF5U3RhdGVQbGF5aW5nOyB9CiAgICAgdm9pZCBjbGVhclByb3BlcnR5KCkgeyBtX3Byb3BlcnR5
U2V0ID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyVGltaW5nRnVuY3Rpb24oKSB7IG1fdGltaW5n
RnVuY3Rpb25TZXQgPSBmYWxzZTsgfQorI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8y
KQorICAgIHZvaWQgY2xlYXJUcmlnZ2VyKCkgeyBtX3RyaWdnZXJTZXQgPSBmYWxzZTsgfQorI2Vu
ZGlmCiAKICAgICB2b2lkIGNsZWFyQWxsKCkKICAgICB7CkBAIC05MCw2ICsxMDQsOSBAQCBwdWJs
aWM6CiAgICAgICAgIGNsZWFyUGxheVN0YXRlKCk7CiAgICAgICAgIGNsZWFyUHJvcGVydHkoKTsK
ICAgICAgICAgY2xlYXJUaW1pbmdGdW5jdGlvbigpOworI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9O
U19MRVZFTF8yKQorICAgICAgICBjbGVhclRyaWdnZXIoKTsKKyNlbmRpZgogICAgIH0KIAogICAg
IGRvdWJsZSBkZWxheSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsYXk7IH0KQEAgLTEyMCw2ICsxMzcs
OSBAQCBwdWJsaWM6CiAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJvcGVydHk7IH0KICAgICBjb25zdCBQYXNzUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiB0aW1p
bmdGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdGltaW5nRnVuY3Rpb247IH0KICAgICBBbmlt
YXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KKyNpZiBF
TkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICBjb25zdCBQYXNzUmVmUHRyPEFuaW1h
dGlvblRyaWdnZXI+IHRyaWdnZXIoKSBjb25zdCB7IHJldHVybiBtX3RyaWdnZXI7IH0KKyNlbmRp
ZgogCiAgICAgdm9pZCBzZXREZWxheShkb3VibGUgYykgeyBtX2RlbGF5ID0gYzsgbV9kZWxheVNl
dCA9IHRydWU7IH0KICAgICB2b2lkIHNldERpcmVjdGlvbihBbmltYXRpb25EaXJlY3Rpb24gZCkg
eyBtX2RpcmVjdGlvbiA9IGQ7IG1fZGlyZWN0aW9uU2V0ID0gdHJ1ZTsgfQpAQCAtMTMxLDYgKzE1
MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByb3BlcnR5KENTU1Byb3BlcnR5SUQgdCkgeyBt
X3Byb3BlcnR5ID0gdDsgbV9wcm9wZXJ0eVNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldFRpbWlu
Z0Z1bmN0aW9uKFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IGYpIHsgbV90aW1pbmdGdW5jdGlv
biA9IGY7IG1fdGltaW5nRnVuY3Rpb25TZXQgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRBbmltYXRp
b25Nb2RlKEFuaW1hdGlvbk1vZGUgbW9kZSkgeyBtX21vZGUgPSBtb2RlOyB9CisjaWYgRU5BQkxF
KENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgdm9pZCBzZXRUcmlnZ2VyKFBhc3NSZWZQdHI8
QW5pbWF0aW9uVHJpZ2dlcj4gZikgeyBtX3RyaWdnZXIgPSBmOyBtX3RyaWdnZXJTZXQgPSB0cnVl
OyB9CisjZW5kaWYKIAogICAgIHZvaWQgc2V0SXNOb25lQW5pbWF0aW9uKGJvb2wgbikgeyBtX2lz
Tm9uZSA9IG47IH0KIApAQCAtMTU3LDkgKzE4MCwxMyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBt
X2RlbGF5OwogICAgIGRvdWJsZSBtX2R1cmF0aW9uOwogICAgIFJlZlB0cjxUaW1pbmdGdW5jdGlv
bj4gbV90aW1pbmdGdW5jdGlvbjsKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikK
KyAgICBSZWZQdHI8QW5pbWF0aW9uVHJpZ2dlcj4gbV90cmlnZ2VyOworI2VuZGlmCiAgICAgdW5z
aWduZWQgbV9kaXJlY3Rpb24gOiAyOyAvLyBBbmltYXRpb25EaXJlY3Rpb24KICAgICB1bnNpZ25l
ZCBtX2ZpbGxNb2RlIDogMjsKIAorCiAgICAgdW5zaWduZWQgbV9wbGF5U3RhdGUgICAgIDogMjsK
IAogICAgIGJvb2wgbV9kZWxheVNldCAgICAgICAgICA6IDE7CkBAIC0xNzEsNyArMTk4LDEwIEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX3BsYXlTdGF0ZVNldCAgICAgIDogMTsKICAgICBib29sIG1f
cHJvcGVydHlTZXQgICAgICAgOiAxOwogICAgIGJvb2wgbV90aW1pbmdGdW5jdGlvblNldCA6IDE7
Ci0gICAgCisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgYm9vbCBtX3Ry
aWdnZXJTZXQgICAgICAgIDogMTsKKyNlbmRpZgorCiAgICAgYm9vbCBtX2lzTm9uZSAgICAgICAg
ICAgIDogMTsKIAogcHVibGljOgpAQCAtMTg0LDYgKzIxNCw5IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgRUFuaW1QbGF5U3RhdGUgaW5pdGlhbFBsYXlTdGF0ZSgpIHsgcmV0dXJuIEFuaW1QbGF5U3Rh
dGVQbGF5aW5nOyB9CiAgICAgc3RhdGljIENTU1Byb3BlcnR5SUQgaW5pdGlhbFByb3BlcnR5KCkg
eyByZXR1cm4gQ1NTUHJvcGVydHlJbnZhbGlkOyB9CiAgICAgc3RhdGljIGNvbnN0IFBhc3NSZWZQ
dHI8VGltaW5nRnVuY3Rpb24+IGluaXRpYWxUaW1pbmdGdW5jdGlvbigpIHsgcmV0dXJuIEN1Ymlj
QmV6aWVyVGltaW5nRnVuY3Rpb246OmNyZWF0ZSgpOyB9CisjaWYgRU5BQkxFKENTU19BTklNQVRJ
T05TX0xFVkVMXzIpCisgICAgc3RhdGljIGNvbnN0IFBhc3NSZWZQdHI8QW5pbWF0aW9uVHJpZ2dl
cj4gaW5pdGlhbFRyaWdnZXIoKSB7IHJldHVybiBBdXRvQW5pbWF0aW9uVHJpZ2dlcjo6Y3JlYXRl
KCk7IH0KKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvblRyaWdnZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25UcmlnZ2VyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjA4MmY0YzAzMmZmN2YxODVjNDhiNTlhYmU0YWJlNDg1ZjIxZWRjZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25Ucmln
Z2VyLmgKQEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIEFuaW1hdGlvblRyaWdnZXJfaAorI2RlZmluZSBBbmltYXRp
b25UcmlnZ2VyX2gKKworI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorCisjaW5j
bHVkZSA8TGVuZ3RoLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQW5pbWF0aW9uVHJp
Z2dlciA6IHB1YmxpYyBSZWZDb3VudGVkPEFuaW1hdGlvblRyaWdnZXI+IHsKK3B1YmxpYzoKKwor
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxBbmltYXRpb25UcmlnZ2VyPiBjbG9uZSgpIGNvbnN0ID0g
MDsKKworICAgIGVudW0gQW5pbWF0aW9uVHJpZ2dlclR5cGUgeworICAgICAgICBBdXRvQW5pbWF0
aW9uVHJpZ2dlclR5cGUsIFNjcm9sbEFuaW1hdGlvblRyaWdnZXJUeXBlCisgICAgfTsKKworICAg
IHZpcnR1YWwgfkFuaW1hdGlvblRyaWdnZXIoKSB7IH0KKworICAgIEFuaW1hdGlvblRyaWdnZXJU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKworICAgIGJvb2wgaXNBdXRvQW5p
bWF0aW9uVHJpZ2dlcigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBBdXRvQW5pbWF0aW9uVHJp
Z2dlclR5cGU7IH0KKyAgICBib29sIGlzU2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcigpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZSA9PSBTY3JvbGxBbmltYXRpb25UcmlnZ2VyVHlwZTsgfQorCisgICAgdmly
dHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgQW5pbWF0aW9uVHJpZ2dlciYgb3RoZXIpID0gMDsK
KworcHJvdGVjdGVkOgorICAgIEFuaW1hdGlvblRyaWdnZXIoQW5pbWF0aW9uVHJpZ2dlclR5cGUg
dHlwZSkKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICB7CisgICAgfQorCisgICAgQW5pbWF0
aW9uVHJpZ2dlclR5cGUgbV90eXBlOworfTsKKworY2xhc3MgQXV0b0FuaW1hdGlvblRyaWdnZXIg
OiBwdWJsaWMgQW5pbWF0aW9uVHJpZ2dlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8QXV0b0FuaW1hdGlvblRyaWdnZXI+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEF1dG9BbmltYXRpb25UcmlnZ2VyKTsKKyAgICB9CisKKyAgICB2aXJ0dWFs
IH5BdXRvQW5pbWF0aW9uVHJpZ2dlcigpIHsgfQorCisgICAgdmlydHVhbCBib29sIG9wZXJhdG9y
PT0oY29uc3QgQW5pbWF0aW9uVHJpZ2dlciYgb3RoZXIpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICByZXR1cm4gb3RoZXIuaXNBdXRvQW5pbWF0aW9uVHJpZ2dlcigpOworICAgIH0KKworcHJpdmF0
ZToKKyAgICBBdXRvQW5pbWF0aW9uVHJpZ2dlcigpCisgICAgICAgIDogQW5pbWF0aW9uVHJpZ2dl
cihBdXRvQW5pbWF0aW9uVHJpZ2dlclR5cGUpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxBbmltYXRpb25UcmlnZ2VyPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEF1dG9BbmltYXRpb25UcmlnZ2VyKTsKKyAg
ICB9Cit9OworCitjbGFzcyBTY3JvbGxBbmltYXRpb25UcmlnZ2VyIDogcHVibGljIEFuaW1hdGlv
blRyaWdnZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcm9sbEFuaW1hdGlv
blRyaWdnZXI+IGNyZWF0ZShMZW5ndGggc3RhcnRWYWx1ZSwgTGVuZ3RoIGVuZFZhbHVlICwgYm9v
bCBoYXNFbmRWYWx1ZSA9IGZhbHNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTY3JvbGxBbmltYXRpb25UcmlnZ2VyKHN0YXJ0VmFsdWUsIGVuZFZhbHVlLCBoYXNFbmRWYWx1
ZSkpOworICAgIH0KKworICAgIHZpcnR1YWwgflNjcm9sbEFuaW1hdGlvblRyaWdnZXIoKSB7IH0K
KworICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEFuaW1hdGlvblRyaWdnZXImIG90
aGVyKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKG90aGVyLmlzU2Nyb2xsQW5pbWF0aW9u
VHJpZ2dlcigpKSB7CisgICAgICAgICAgICBjb25zdCBTY3JvbGxBbmltYXRpb25UcmlnZ2VyKiBv
dGhlclRyaWdnZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBTY3JvbGxBbmltYXRpb25UcmlnZ2VyKj4o
Jm90aGVyKTsKKyAgICAgICAgICAgIHJldHVybiBtX3N0YXJ0VmFsdWUgPT0gb3RoZXJUcmlnZ2Vy
LT5tX3N0YXJ0VmFsdWUKKyAgICAgICAgICAgICAgICAmJiBtX2VuZFZhbHVlID09IG90aGVyVHJp
Z2dlci0+bV9lbmRWYWx1ZQorICAgICAgICAgICAgICAgICYmIG1faGFzRW5kVmFsdWUgPT0gb3Ro
ZXJUcmlnZ2VyLT5tX2hhc0VuZFZhbHVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisKKyAgICBMZW5ndGggc3RhcnRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
cnRWYWx1ZTsgfQorCisgICAgdm9pZCBzZXRTdGFydFZhbHVlKExlbmd0aCB2YWx1ZSkKKyAgICB7
CisgICAgICAgIG1fc3RhcnRWYWx1ZSA9IHZhbHVlOworICAgIH0KKworICAgIExlbmd0aCBlbmRW
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kVmFsdWU7IH0KKworICAgIHZvaWQgc2V0RW5kVmFs
dWUoTGVuZ3RoIHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9lbmRWYWx1ZSA9IHZhbHVlOworICAg
IH0KKworICAgIGJvb2wgaGFzRW5kVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2hhc0VuZFZhbHVl
OyB9CisKKyAgICB2b2lkIHNldEhhc0VuZFZhbHVlKGJvb2wgdmFsdWUpCisgICAgeworICAgICAg
ICBtX2hhc0VuZFZhbHVlID0gdmFsdWU7CisgICAgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IFNjcm9sbEFuaW1hdGlvblRyaWdnZXIoTGVuZ3RoIHN0YXJ0VmFsdWUsIExlbmd0aCBlbmRWYWx1
ZSwgYm9vbCBoYXNFbmRWYWx1ZSkKKyAgICAgICAgOiBBbmltYXRpb25UcmlnZ2VyKFNjcm9sbEFu
aW1hdGlvblRyaWdnZXJUeXBlKQorICAgICAgICAsIG1fc3RhcnRWYWx1ZShzdGFydFZhbHVlKQor
ICAgICAgICAsIG1fZW5kVmFsdWUoZW5kVmFsdWUpCisgICAgICAgICwgbV9oYXNFbmRWYWx1ZSho
YXNFbmRWYWx1ZSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEFuaW1h
dGlvblRyaWdnZXI+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcihtX3N0YXJ0VmFsdWUsIG1fZW5k
VmFsdWUsIG1faGFzRW5kVmFsdWUpKTsKKyAgICB9CisKKyAgICBMZW5ndGggbV9zdGFydFZhbHVl
OworICAgIExlbmd0aCBtX2VuZFZhbHVlOworICAgIGJvb2wgbV9oYXNFbmRWYWx1ZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBBbmltYXRpb25U
cmlnZ2VyX2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA0MzRlZjhmMjNmM2JkOWNkMDIxZmE3MGYzODcxNGRlOGRhNTIwMDU0
Li4zODNkZWE0MWZiMTRiYWNlY2QzN2E4NWY3MTJiODU3ZGQwMmE0MGU2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTUtMDMtMTYgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisg
ICAgICAgIFBhcnNpbmcgYW5kIFN0eWxlIFJlc29sdXRpb24gb2YgQ29udGFpbmVyLWJhc2VkIEFu
aW1hdGlvbiBUcmlnZ2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNjg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTmV3IHRlc3RzIHRoYXQgZXhlcmNpc2UgdGhlIHBhcnNlciBhbmQgY29tcHV0ZWQg
c3R5bGUKKyAgICAgICAgb2YgLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dlci4KKworICAgICAgICAq
IGFuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3RyaWdnZXItY29tcHV0ZWQtc3R5bGUuanM6IEFkZGVk
LgorICAgICAgICAodGVzdENvbXB1dGVkVHJpZ2dlclJ1bGUpOgorICAgICAgICAqIGFuaW1hdGlv
bnMvc2NyaXB0LXRlc3RzL3RyaWdnZXItcGFyc2luZy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
VHJpZ2dlclJ1bGUpOgorICAgICAgICAqIGFuaW1hdGlvbnMvdHJpZ2dlci1jb21wdXRlZC1zdHls
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvdHJpZ2dlci1jb21w
dXRlZC1zdHlsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25zL3RyaWdnZXItcGFy
c2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbnMvdHJpZ2dlci1w
YXJzaW5nLmh0bWw6IEFkZGVkLgorCiAyMDE1LTAzLTE0ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJv
ZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEVTNjogQWRkIGJpbmFyeSBhbmQgb2N0YWwgbGl0ZXJh
bCBzdXBwb3J0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3NjcmlwdC10ZXN0
cy90cmlnZ2VyLWNvbXB1dGVkLXN0eWxlLmpzIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvdHJpZ2dlci1jb21wdXRlZC1zdHlsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDhiMWMxYjI5
ZGFjNTRiZTVhZDk1MDAzZGYxYTE3NjBkMWRhMzVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9zY3JpcHQtdGVzdHMvdHJpZ2dlci1jb21wdXRlZC1zdHlsZS5qcwpA
QCAtMCwwICsxLDY1IEBACitkZXNjcmlwdGlvbigiVGVzdCB0aGUgY29tcHV0ZWQgc3R5bGUgb2Yg
dGhlIC13ZWJraXQtYW5pbWF0aW9uLXRyaWdnZXIgcHJvcGVydHkuIik7CisKKy8vIFRoZXNlIGhh
dmUgdG8gYmUgZ2xvYmFsIGZvciB0aGUgdGVzdCBoZWxwZXJzIHRvIHNlZSB0aGVtLgordmFyIHN0
eWxlc2hlZXQsIHRyaWdnZXJTdHlsZSwgc3ViUnVsZTsKK3ZhciBzdHlsZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOworZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChz
dHlsZUVsZW1lbnQpOworc3R5bGVzaGVldCA9IHN0eWxlRWxlbWVudC5zaGVldDsKKworZnVuY3Rp
b24gdGVzdENvbXB1dGVkVHJpZ2dlclJ1bGUoZGVzY3JpcHRpb24sIHJ1bGUsIGV4cGVjdGVkTGVu
Z3RoLCBleHBlY3RlZFRleHRzKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZyhkZXNjcmlw
dGlvbiArICIgOiAiICsgcnVsZSk7CisKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoImJvZHkg
eyAtd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyOiAiICsgcnVsZSArICI7IH0iLCAwKTsKKworICAg
IHRyaWdnZXJTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdl
dFByb3BlcnR5Q1NTVmFsdWUoIi13ZWJraXQtYW5pbWF0aW9uLXRyaWdnZXIiKTsKKyAgICBzaG91
bGRCZSgidHJpZ2dlclN0eWxlLmxlbmd0aCIsICIiICsgZXhwZWN0ZWRMZW5ndGgpOworICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRMZW5ndGg7IGkrKykgeworICAgICAgICBzdWJSdWxl
ID0gdHJpZ2dlclN0eWxlW2ldOworICAgICAgICBzaG91bGRCZSgic3ViUnVsZS5jc3NUZXh0Iiwg
IiciICsgZXhwZWN0ZWRUZXh0c1tpXSArICInIik7CisgICAgfQorICAgIHN0eWxlc2hlZXQuZGVs
ZXRlUnVsZSgwKTsKK30KKwordGVzdENvbXB1dGVkVHJpZ2dlclJ1bGUoIkF1dG8iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgImF1dG8iLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgWyJh
dXRvIl0pOworCit0ZXN0Q29tcHV0ZWRUcmlnZ2VyUnVsZSgiT25lIGNvbnRhaW5lci1zY3JvbGwg
dmFsdWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRhaW5lci1zY3JvbGwoMTBweCki
LCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgWyJjb250YWluZXItc2Nyb2xsKDEwcHgpIl0p
OworCit0ZXN0Q29tcHV0ZWRUcmlnZ2VyUnVsZSgiT25lIGNvbnRhaW5lci1zY3JvbGwgdmFsdWUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRhaW5lci1zY3JvbGwoMmVtKSIsIDEsCisg
ICAgICAgICAgICAgICAgICAgICAgICBbImNvbnRhaW5lci1zY3JvbGwoMzJweCkiXSk7CisKK3Rl
c3RDb21wdXRlZFRyaWdnZXJSdWxlKCJPbmUgY29udGFpbmVyLXNjcm9sbCB2YWx1ZSB3aXRoIGVu
ZCB2YWx1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAiY29udGFpbmVyLXNjcm9sbCgxMHB4
LCAyMHB4KSIsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICBbImNvbnRhaW5lci1zY3JvbGwo
MTBweCwgMjBweCkiXSk7CisKK3Rlc3RDb21wdXRlZFRyaWdnZXJSdWxlKCJUd28gY29udGFpbmVy
LXNjcm9sbCB2YWx1ZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRhaW5lci1zY3Jv
bGwoMTBweCksIGNvbnRhaW5lci1zY3JvbGwoMjBweCkiLCAyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgWyJjb250YWluZXItc2Nyb2xsKDEwcHgpIiwgImNvbnRhaW5lci1zY3JvbGwoMjBweCki
XSk7CisKK3Rlc3RDb21wdXRlZFRyaWdnZXJSdWxlKCJNYW55IGNvbnRhaW5lci1zY3JvbGwgdmFs
dWVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJjb250YWluZXItc2Nyb2xsKDEwcHgpLCBj
b250YWluZXItc2Nyb2xsKDIwcHgpLCBjb250YWluZXItc2Nyb2xsKDMwcHgpLCBjb250YWluZXIt
c2Nyb2xsKDQwcHgpLCBjb250YWluZXItc2Nyb2xsKDFweCkiLCA1LAorICAgICAgICAgICAgICAg
ICAgICAgICAgWyJjb250YWluZXItc2Nyb2xsKDEwcHgpIiwgImNvbnRhaW5lci1zY3JvbGwoMjBw
eCkiLCAiY29udGFpbmVyLXNjcm9sbCgzMHB4KSIsICJjb250YWluZXItc2Nyb2xsKDQwcHgpIiwg
ImNvbnRhaW5lci1zY3JvbGwoMXB4KSJdKTsKKwordGVzdENvbXB1dGVkVHJpZ2dlclJ1bGUoIk5v
IHZhbHVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICIiLCAxLAorICAgICAgICAgICAgICAg
ICAgICAgICAgWyJhdXRvIl0pOworCit0ZXN0Q29tcHV0ZWRUcmlnZ2VyUnVsZSgiQmFkIHZhbHVl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJiYW5hbmEiLCAxLAorICAgICAgICAgICAgICAg
ICAgICAgICAgWyJhdXRvIl0pOworCit0ZXN0Q29tcHV0ZWRUcmlnZ2VyUnVsZSgiTXVsdGlwbGUg
YmFkIHZhbHVlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAiYmFuYW5hLCBlZ2dzLCBiYWNv
biIsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICBbImF1dG8iXSk7CisKK3Rlc3RDb21wdXRl
ZFRyaWdnZXJSdWxlKCJTb21lIGdvb2QsIHNvbWUgYmFkIHZhbHVlcyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAiY29udGFpbmVyLXNjcm9sbCgxMCksIGVnZ3MsIGJhY29uIiwgMSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFsiYXV0byJdKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3RyaWdn
ZXItcGFyc2luZy5qcyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3RyaWdn
ZXItcGFyc2luZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGRmYmJhNTU3MjI1MTE0M2UzYjEyMGMwMDkzOWYx
MTExMzAwYWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zY3Jp
cHQtdGVzdHMvdHJpZ2dlci1wYXJzaW5nLmpzCkBAIC0wLDAgKzEsODAgQEAKK2Rlc2NyaXB0aW9u
KCJUZXN0IHRoZSBwYXJzaW5nIG9mIHRoZSAtd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyIHByb3Bl
cnR5LiIpOworCisvLyBUaGVzZSBoYXZlIHRvIGJlIGdsb2JhbCBmb3IgdGhlIHRlc3QgaGVscGVy
cyB0byBzZWUgdGhlbS4KK3ZhciBzdHlsZXNoZWV0LCBjc3NSdWxlLCBkZWNsYXJhdGlvbiwgdHJp
Z2dlclJ1bGUsIHN1YlJ1bGU7Cit2YXIgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic3R5bGUiKTsKK2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTsK
K3N0eWxlc2hlZXQgPSBzdHlsZUVsZW1lbnQuc2hlZXQ7CisKK2Z1bmN0aW9uIHRlc3RUcmlnZ2Vy
UnVsZShkZXNjcmlwdGlvbiwgcnVsZSwgZXhwZWN0ZWRMZW5ndGgsIGV4cGVjdGVkVmFsdWUsIGV4
cGVjdGVkVGV4dHMpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKGRlc2NyaXB0aW9uICsg
IiA6ICIgKyBydWxlKTsKKworICAgIHN0eWxlc2hlZXQuaW5zZXJ0UnVsZSgiYm9keSB7IC13ZWJr
aXQtYW5pbWF0aW9uLXRyaWdnZXI6ICIgKyBydWxlICsgIjsgfSIsIDApOworICAgIGNzc1J1bGUg
PSBzdHlsZXNoZWV0LmNzc1J1bGVzLml0ZW0oMCk7CisKKyAgICBzaG91bGRCZSgiY3NzUnVsZS50
eXBlIiwgIjEiKTsKKworICAgIGRlY2xhcmF0aW9uID0gY3NzUnVsZS5zdHlsZTsKKyAgICBpZiAo
IWV4cGVjdGVkTGVuZ3RoIHx8ICFleHBlY3RlZFZhbHVlKSB7CisgICAgICAgIHNob3VsZEJlKCJk
ZWNsYXJhdGlvbi5sZW5ndGgiLCAiMCIpOworICAgICAgICBzaG91bGRCZSgiZGVjbGFyYXRpb24u
Z2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dlcicpIiwgIm51bGwiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzaG91bGRCZSgiZGVjbGFyYXRpb24ubGVuZ3Ro
IiwgIjEiKTsKKyAgICBzaG91bGRCZSgiZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1hbmltYXRpb24tdHJpZ2dlcicpIiwgIiciICsgZXhwZWN0ZWRWYWx1ZSArICInIik7CisK
KyAgICB0cmlnZ2VyUnVsZSA9IGRlY2xhcmF0aW9uLmdldFByb3BlcnR5Q1NTVmFsdWUoIi13ZWJr
aXQtYW5pbWF0aW9uLXRyaWdnZXIiKTsKKyAgICBpZiAoZXhwZWN0ZWRMZW5ndGggPiAxKSB7Cisg
ICAgICAgIHNob3VsZEJlKCJ0cmlnZ2VyUnVsZS5sZW5ndGgiLCAiIiArIGV4cGVjdGVkTGVuZ3Ro
KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZExlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICBzdWJSdWxlID0gdHJpZ2dlclJ1bGVbaV07CisgICAgICAgICAgICBzaG91bGRC
ZSgic3ViUnVsZS5jc3NUZXh0IiwgIiciICsgZXhwZWN0ZWRUZXh0c1tpXSArICInIik7CisgICAg
ICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBzaG91bGRCZSgidHJpZ2dlclJ1bGUuY3NzVGV4
dCIsICInIiArIGV4cGVjdGVkVmFsdWUgKyAiJyIpOworICAgIH0KKworICAgIHN0eWxlc2hlZXQu
ZGVsZXRlUnVsZSgwKTsKK30KKworZGVidWcoIiIpCitkZWJ1ZygiVmFsaWQgcHJvcGVydHkgdGVz
dHMiKTsKK2RlYnVnKCIiKQorCit0ZXN0VHJpZ2dlclJ1bGUoIkF1dG8iLAorICAgICAgICAgICAg
ICAgICJhdXRvIiwgMSwgImF1dG8iKTsKKwordGVzdFRyaWdnZXJSdWxlKCJDb250YWluZXIgU2Ny
b2xsIiwKKyAgICAgICAgICAgICAgICAiY29udGFpbmVyLXNjcm9sbCgyMDBweCkiLCAxLCAiY29u
dGFpbmVyLXNjcm9sbCgyMDBweCkiKTsKKwordGVzdFRyaWdnZXJSdWxlKCJDb250YWluZXIgU2Ny
b2xsIiwKKyAgICAgICAgICAgICAgICAiY29udGFpbmVyLXNjcm9sbCgyZW0pIiwgMSwgImNvbnRh
aW5lci1zY3JvbGwoMmVtKSIpOworCit0ZXN0VHJpZ2dlclJ1bGUoIkNvbnRhaW5lciBTY3JvbGwi
LAorICAgICAgICAgICAgICAgICJjb250YWluZXItc2Nyb2xsKDMwdncpIiwgMSwgImNvbnRhaW5l
ci1zY3JvbGwoMzB2dykiKTsKKwordGVzdFRyaWdnZXJSdWxlKCJDb250YWluZXIgU2Nyb2xsIHdp
dGggZW5kIHZhbHVlIiwKKyAgICAgICAgICAgICAgICAiY29udGFpbmVyLXNjcm9sbCgyMDBweCwg
MzAwcHgpIiwgMSwgImNvbnRhaW5lci1zY3JvbGwoMjAwcHgsIDMwMHB4KSIpOworCit0ZXN0VHJp
Z2dlclJ1bGUoIlR3byBzY3JvbGwgdmFsdWVzIiwKKyAgICAgICAgICAgICAgICAiY29udGFpbmVy
LXNjcm9sbCgxcHgpLCBjb250YWluZXItc2Nyb2xsKDJweCkiLCAyLCAiY29udGFpbmVyLXNjcm9s
bCgxcHgpLCBjb250YWluZXItc2Nyb2xsKDJweCkiLCBbImNvbnRhaW5lci1zY3JvbGwoMXB4KSIs
ICJjb250YWluZXItc2Nyb2xsKDJweCkiXSk7CisKK3Rlc3RUcmlnZ2VyUnVsZSgiTWFueSBzY3Jv
bGwgdmFsdWVzIiwKKyAgICAgICAgICAgICAgICAiY29udGFpbmVyLXNjcm9sbCgxcHgpLCBjb250
YWluZXItc2Nyb2xsKDJweCksIGNvbnRhaW5lci1zY3JvbGwoM3B4KSwgY29udGFpbmVyLXNjcm9s
bCg0cHgpLCBjb250YWluZXItc2Nyb2xsKDVweCksIGNvbnRhaW5lci1zY3JvbGwoMzAwMHB4KSIs
CisgICAgICAgICAgICAgICAgNiwKKyAgICAgICAgICAgICAgICAiY29udGFpbmVyLXNjcm9sbCgx
cHgpLCBjb250YWluZXItc2Nyb2xsKDJweCksIGNvbnRhaW5lci1zY3JvbGwoM3B4KSwgY29udGFp
bmVyLXNjcm9sbCg0cHgpLCBjb250YWluZXItc2Nyb2xsKDVweCksIGNvbnRhaW5lci1zY3JvbGwo
MzAwMHB4KSIsCisgICAgICAgICAgICAgICAgWyJjb250YWluZXItc2Nyb2xsKDFweCkiLCAiY29u
dGFpbmVyLXNjcm9sbCgycHgpIiwgImNvbnRhaW5lci1zY3JvbGwoM3B4KSIsICJjb250YWluZXIt
c2Nyb2xsKDRweCkiLCAiY29udGFpbmVyLXNjcm9sbCg1cHgpIiwgImNvbnRhaW5lci1zY3JvbGwo
MzAwMHB4KSJdKTsKKworZGVidWcoIiIpCitkZWJ1ZygiSW52YWxpZCBwcm9wZXJ0eSB0ZXN0cyIp
OworZGVidWcoIiIpCisKK3Rlc3RUcmlnZ2VyUnVsZSgiTm8gdmFsdWUiLCAiIiwgMCwgbnVsbCk7
Cit0ZXN0VHJpZ2dlclJ1bGUoIkJhZCB2YWx1ZSIsICJiYW5hbmEiLCAwLCBudWxsKTsKK3Rlc3RU
cmlnZ2VyUnVsZSgiQmFkIGxpc3QiLCAiY29udGFpbmVyLXNjcm9sbCgxcHgpLCBvcmFuZ2UiLCAw
LCBudWxsKTsKK3Rlc3RUcmlnZ2VyUnVsZSgiTWlzc2luZyBjb21tYSIsICJjb250YWluZXItc2Ny
b2xsKDFweCkgY29udGFpbmVyLXNjcm9sbCgycHgpIiwgMCwgbnVsbCk7Cit0ZXN0VHJpZ2dlclJ1
bGUoIlRvbyBtYW55IHZhbHVlcyIsICJjb250YWluZXItc2Nyb2xsKDFweCwgMnB4LCAzcHgpIiwg
MCwgbnVsbCk7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL3RyaWdnZXItY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy90cmlnZ2VyLWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43YjhhZjhjNjI4NmM3YjEyNGNiNDBiYmMxMDc0NzA3ODVkMWQwMjQxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy90cmlnZ2VyLWNvbXB1dGVk
LXN0eWxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU0IEBACitUZXN0IHRoZSBjb21wdXRlZCBz
dHlsZSBvZiB0aGUgLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dlciBwcm9wZXJ0eS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworQXV0byA6IGF1dG8KK1BBU1MgdHJpZ2dlclN0eWxl
Lmxlbmd0aCBpcyAxCitQQVNTIHN1YlJ1bGUuY3NzVGV4dCBpcyAnYXV0bycKKworT25lIGNvbnRh
aW5lci1zY3JvbGwgdmFsdWUgOiBjb250YWluZXItc2Nyb2xsKDEwcHgpCitQQVNTIHRyaWdnZXJT
dHlsZS5sZW5ndGggaXMgMQorUEFTUyBzdWJSdWxlLmNzc1RleHQgaXMgJ2NvbnRhaW5lci1zY3Jv
bGwoMTBweCknCisKK09uZSBjb250YWluZXItc2Nyb2xsIHZhbHVlIDogY29udGFpbmVyLXNjcm9s
bCgyZW0pCitQQVNTIHRyaWdnZXJTdHlsZS5sZW5ndGggaXMgMQorUEFTUyBzdWJSdWxlLmNzc1Rl
eHQgaXMgJ2NvbnRhaW5lci1zY3JvbGwoMzJweCknCisKK09uZSBjb250YWluZXItc2Nyb2xsIHZh
bHVlIHdpdGggZW5kIHZhbHVlIDogY29udGFpbmVyLXNjcm9sbCgxMHB4LCAyMHB4KQorUEFTUyB0
cmlnZ2VyU3R5bGUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdjb250YWlu
ZXItc2Nyb2xsKDEwcHgsIDIwcHgpJworCitUd28gY29udGFpbmVyLXNjcm9sbCB2YWx1ZXMgOiBj
b250YWluZXItc2Nyb2xsKDEwcHgpLCBjb250YWluZXItc2Nyb2xsKDIwcHgpCitQQVNTIHRyaWdn
ZXJTdHlsZS5sZW5ndGggaXMgMgorUEFTUyBzdWJSdWxlLmNzc1RleHQgaXMgJ2NvbnRhaW5lci1z
Y3JvbGwoMTBweCknCitQQVNTIHN1YlJ1bGUuY3NzVGV4dCBpcyAnY29udGFpbmVyLXNjcm9sbCgy
MHB4KScKKworTWFueSBjb250YWluZXItc2Nyb2xsIHZhbHVlcyA6IGNvbnRhaW5lci1zY3JvbGwo
MTBweCksIGNvbnRhaW5lci1zY3JvbGwoMjBweCksIGNvbnRhaW5lci1zY3JvbGwoMzBweCksIGNv
bnRhaW5lci1zY3JvbGwoNDBweCksIGNvbnRhaW5lci1zY3JvbGwoMXB4KQorUEFTUyB0cmlnZ2Vy
U3R5bGUubGVuZ3RoIGlzIDUKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdjb250YWluZXItc2Ny
b2xsKDEwcHgpJworUEFTUyBzdWJSdWxlLmNzc1RleHQgaXMgJ2NvbnRhaW5lci1zY3JvbGwoMjBw
eCknCitQQVNTIHN1YlJ1bGUuY3NzVGV4dCBpcyAnY29udGFpbmVyLXNjcm9sbCgzMHB4KScKK1BB
U1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdjb250YWluZXItc2Nyb2xsKDQwcHgpJworUEFTUyBzdWJS
dWxlLmNzc1RleHQgaXMgJ2NvbnRhaW5lci1zY3JvbGwoMXB4KScKKworTm8gdmFsdWUgOiAKK1BB
U1MgdHJpZ2dlclN0eWxlLmxlbmd0aCBpcyAxCitQQVNTIHN1YlJ1bGUuY3NzVGV4dCBpcyAnYXV0
bycKKworQmFkIHZhbHVlIDogYmFuYW5hCitQQVNTIHRyaWdnZXJTdHlsZS5sZW5ndGggaXMgMQor
UEFTUyBzdWJSdWxlLmNzc1RleHQgaXMgJ2F1dG8nCisKK011bHRpcGxlIGJhZCB2YWx1ZXMgOiBi
YW5hbmEsIGVnZ3MsIGJhY29uCitQQVNTIHRyaWdnZXJTdHlsZS5sZW5ndGggaXMgMQorUEFTUyBz
dWJSdWxlLmNzc1RleHQgaXMgJ2F1dG8nCisKK1NvbWUgZ29vZCwgc29tZSBiYWQgdmFsdWVzIDog
Y29udGFpbmVyLXNjcm9sbCgxMCksIGVnZ3MsIGJhY29uCitQQVNTIHRyaWdnZXJTdHlsZS5sZW5n
dGggaXMgMQorUEFTUyBzdWJSdWxlLmNzc1RleHQgaXMgJ2F1dG8nCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYW5pbWF0aW9ucy90cmlnZ2VyLWNvbXB1dGVkLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL3RyaWdnZXItY29tcHV0ZWQtc3R5bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTUxZDU2
NmM0MTMzYTYzYzU1ODllZTk0MGFhZGJkNWJhOGY4M2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy90cmlnZ2VyLWNvbXB1dGVkLXN0eWxlLmh0bWwKQEAgLTAsMCAr
MSw2IEBACis8IURPQ1RZUEUgSFRNTD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdHJpZ2dlci1jb21wdXRl
ZC1zdHlsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Ry
aWdnZXItcGFyc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3RyaWdn
ZXItcGFyc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJmNTA2Y2VkN2RhZjJjYTEzNWZk
NWExZmMyZTUyZmM4NjAwMzEwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1h
dGlvbnMvdHJpZ2dlci1wYXJzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkwIEBACitUZXN0
IHRoZSBwYXJzaW5nIG9mIHRoZSAtd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyIHByb3BlcnR5Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitWYWxpZCBwcm9wZXJ0eSB0ZXN0cwor
CisKK0F1dG8gOiBhdXRvCitQQVNTIGNzc1J1bGUudHlwZSBpcyAxCitQQVNTIGRlY2xhcmF0aW9u
Lmxlbmd0aCBpcyAxCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
YW5pbWF0aW9uLXRyaWdnZXInKSBpcyAnYXV0bycKK1BBU1MgdHJpZ2dlclJ1bGUuY3NzVGV4dCBp
cyAnYXV0bycKKworQ29udGFpbmVyIFNjcm9sbCA6IGNvbnRhaW5lci1zY3JvbGwoMjAwcHgpCitQ
QVNTIGNzc1J1bGUudHlwZSBpcyAxCitQQVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAxCitQQVNT
IGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLXRyaWdnZXIn
KSBpcyAnY29udGFpbmVyLXNjcm9sbCgyMDBweCknCitQQVNTIHRyaWdnZXJSdWxlLmNzc1RleHQg
aXMgJ2NvbnRhaW5lci1zY3JvbGwoMjAwcHgpJworCitDb250YWluZXIgU2Nyb2xsIDogY29udGFp
bmVyLXNjcm9sbCgyZW0pCitQQVNTIGNzc1J1bGUudHlwZSBpcyAxCitQQVNTIGRlY2xhcmF0aW9u
Lmxlbmd0aCBpcyAxCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
YW5pbWF0aW9uLXRyaWdnZXInKSBpcyAnY29udGFpbmVyLXNjcm9sbCgyZW0pJworUEFTUyB0cmln
Z2VyUnVsZS5jc3NUZXh0IGlzICdjb250YWluZXItc2Nyb2xsKDJlbSknCisKK0NvbnRhaW5lciBT
Y3JvbGwgOiBjb250YWluZXItc2Nyb2xsKDMwdncpCitQQVNTIGNzc1J1bGUudHlwZSBpcyAxCitQ
QVNTIGRlY2xhcmF0aW9uLmxlbmd0aCBpcyAxCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5
VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLXRyaWdnZXInKSBpcyAnY29udGFpbmVyLXNjcm9sbCgz
MHZ3KScKK1BBU1MgdHJpZ2dlclJ1bGUuY3NzVGV4dCBpcyAnY29udGFpbmVyLXNjcm9sbCgzMHZ3
KScKKworQ29udGFpbmVyIFNjcm9sbCB3aXRoIGVuZCB2YWx1ZSA6IGNvbnRhaW5lci1zY3JvbGwo
MjAwcHgsIDMwMHB4KQorUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5s
ZW5ndGggaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWFu
aW1hdGlvbi10cmlnZ2VyJykgaXMgJ2NvbnRhaW5lci1zY3JvbGwoMjAwcHgsIDMwMHB4KScKK1BB
U1MgdHJpZ2dlclJ1bGUuY3NzVGV4dCBpcyAnY29udGFpbmVyLXNjcm9sbCgyMDBweCwgMzAwcHgp
JworCitUd28gc2Nyb2xsIHZhbHVlcyA6IGNvbnRhaW5lci1zY3JvbGwoMXB4KSwgY29udGFpbmVy
LXNjcm9sbCgycHgpCitQQVNTIGNzc1J1bGUudHlwZSBpcyAxCitQQVNTIGRlY2xhcmF0aW9uLmxl
bmd0aCBpcyAxCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtYW5p
bWF0aW9uLXRyaWdnZXInKSBpcyAnY29udGFpbmVyLXNjcm9sbCgxcHgpLCBjb250YWluZXItc2Ny
b2xsKDJweCknCitQQVNTIHRyaWdnZXJSdWxlLmxlbmd0aCBpcyAyCitQQVNTIHN1YlJ1bGUuY3Nz
VGV4dCBpcyAnY29udGFpbmVyLXNjcm9sbCgxcHgpJworUEFTUyBzdWJSdWxlLmNzc1RleHQgaXMg
J2NvbnRhaW5lci1zY3JvbGwoMnB4KScKKworTWFueSBzY3JvbGwgdmFsdWVzIDogY29udGFpbmVy
LXNjcm9sbCgxcHgpLCBjb250YWluZXItc2Nyb2xsKDJweCksIGNvbnRhaW5lci1zY3JvbGwoM3B4
KSwgY29udGFpbmVyLXNjcm9sbCg0cHgpLCBjb250YWluZXItc2Nyb2xsKDVweCksIGNvbnRhaW5l
ci1zY3JvbGwoMzAwMHB4KQorUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlv
bi5sZW5ndGggaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWFuaW1hdGlvbi10cmlnZ2VyJykgaXMgJ2NvbnRhaW5lci1zY3JvbGwoMXB4KSwgY29udGFpbmVy
LXNjcm9sbCgycHgpLCBjb250YWluZXItc2Nyb2xsKDNweCksIGNvbnRhaW5lci1zY3JvbGwoNHB4
KSwgY29udGFpbmVyLXNjcm9sbCg1cHgpLCBjb250YWluZXItc2Nyb2xsKDMwMDBweCknCitQQVNT
IHRyaWdnZXJSdWxlLmxlbmd0aCBpcyA2CitQQVNTIHN1YlJ1bGUuY3NzVGV4dCBpcyAnY29udGFp
bmVyLXNjcm9sbCgxcHgpJworUEFTUyBzdWJSdWxlLmNzc1RleHQgaXMgJ2NvbnRhaW5lci1zY3Jv
bGwoMnB4KScKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdjb250YWluZXItc2Nyb2xsKDNweCkn
CitQQVNTIHN1YlJ1bGUuY3NzVGV4dCBpcyAnY29udGFpbmVyLXNjcm9sbCg0cHgpJworUEFTUyBz
dWJSdWxlLmNzc1RleHQgaXMgJ2NvbnRhaW5lci1zY3JvbGwoNXB4KScKK1BBU1Mgc3ViUnVsZS5j
c3NUZXh0IGlzICdjb250YWluZXItc2Nyb2xsKDMwMDBweCknCisKK0ludmFsaWQgcHJvcGVydHkg
dGVzdHMKKworCitObyB2YWx1ZSA6IAorUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNs
YXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyJykgaXMgbnVsbAorCitCYWQgdmFsdWUgOiBiYW5hbmEK
K1BBU1MgY3NzUnVsZS50eXBlIGlzIDEKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BB
U1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dl
cicpIGlzIG51bGwKKworQmFkIGxpc3QgOiBjb250YWluZXItc2Nyb2xsKDFweCksIG9yYW5nZQor
UEFTUyBjc3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFT
UyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWFuaW1hdGlvbi10cmlnZ2Vy
JykgaXMgbnVsbAorCitNaXNzaW5nIGNvbW1hIDogY29udGFpbmVyLXNjcm9sbCgxcHgpIGNvbnRh
aW5lci1zY3JvbGwoMnB4KQorUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlv
bi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWFuaW1hdGlvbi10cmlnZ2VyJykgaXMgbnVsbAorCitUb28gbWFueSB2YWx1ZXMgOiBjb250YWlu
ZXItc2Nyb2xsKDFweCwgMnB4LCAzcHgpCitQQVNTIGNzc1J1bGUudHlwZSBpcyAxCitQQVNTIGRl
Y2xhcmF0aW9uLmxlbmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtYW5pbWF0aW9uLXRyaWdnZXInKSBpcyBudWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy90cmlnZ2VyLXBhcnNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMv
dHJpZ2dlci1wYXJzaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NkZmYwOTkxZDU2NjBhYzU3N2Y4Zjdh
NTdhNjY5NDVhNWFkMWQ2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvdHJpZ2dlci1wYXJzaW5nLmh0bWwKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgSFRNTD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvdHJpZ2dlci1wYXJzaW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248730</attachid>
            <date>2015-03-16 10:22:13 -0700</date>
            <delta_ts>2015-03-16 10:55:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142687-20150316102143.patch</filename>
            <type>text/plain</type>
            <size>55975</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGEzMDQwMzkwN2I4NzZi
OGM0YTlkY2JiNjBhNjZlMmUwM2U4NjRjZi4uMjkxMjVkODdjMGQwY2VmZDI2ODBlMzdhZDc0M2Nh
NTExNTI0ZTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDE1LTAzLTE2ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBQYXJzaW5nIGFuZCBTdHlsZSBS
ZXNvbHV0aW9uIG9mIENvbnRhaW5lci1iYXNlZCBBbmltYXRpb24gVHJpZ2dlcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjY4NworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjAxNzAwMDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBpcyB0aGUgYmVnaW5uaW5nIG9mIGEgcHJvdG90eXBlIGlt
cGxlbWVudGF0aW9uIG9mCisgICAgICAgIENTUyBBbmltYXRpb24gVHJpZ2dlcnMsIGFzIGRlc2Ny
aWJlZCBieQorICAgICAgICBodHRwczovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3
LXN0eWxlLzIwMTRTZXAvMDEzNS5odG1sCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCB3ZSBwYXJz
ZSBhbmQgcmVzb2x2ZSB0aGUgdmFsdWUgb2YgYSBuZXcKKyAgICAgICAgQ1NTIHByb3BlcnR5ICIt
d2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyIi4gQXQgdGhlIG1vbWVudCBpdAorICAgICAgICBvbmx5
IGFjY2VwdHMgb25lIGZ1bmN0aW9uIHZhbHVlICJjb250YWluZXItc2Nyb2xsIiwgd2hpY2gKKyAg
ICAgICAgd2lsbCB0cmlnZ2VyIHRoZSBhbmltYXRpb24gYXQgYW4gYWJzb2x1dGUgcG9zaXRpb24g
d2l0aGluCisgICAgICAgIGFuIGVsZW1lbnQncyBzY3JvbGxpbmcgY29udGFpbmVyLiBXZSBleHBl
Y3QgdGhlIHN5bnRheCB0bworICAgICAgICBjaGFuZ2UgaW4gdGhlIG5lYXIgZnV0dXJlLCBhcyB0
aGUgc3BlYyBpcyB3cml0dGVuLgorCisgICAgICAgIFRlc3RzOiBhbmltYXRpb25zL3RyaWdnZXIt
Y29tcHV0ZWQtc3R5bGUuaHRtbAorICAgICAgICAgICAgICAgYW5pbWF0aW9ucy90cmlnZ2VyLXBh
cnNpbmcuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBBZGQgdGhlIG5ldyBmaWxlcy4KKworICAgICAgICAqIGNzcy9DU1NBbmltYXRpb25UcmlnZ2Vy
U2Nyb2xsVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvblRy
aWdnZXJTY3JvbGxWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCk6IE91dHB1dCB0ZXh0IGZvciBjb21wdXRl
ZCBzdHlsZS4KKyAgICAgICAgKFdlYkNvcmU6OkNTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1
ZTo6ZXF1YWxzKTogQ29tcGFyZSB0d28gdmFsdWVzLgorICAgICAgICAqIGNzcy9DU1NBbmltYXRp
b25UcmlnZ2VyU2Nyb2xsVmFsdWUuaDogQWRkZWQuIFRoaXMgaG9sZHMgdGhlIENTUyBzaWRlIG9m
IHRoZQorICAgICAgICBzY3JvbGwgdHJpZ2dlci4gVGhpcyBuYW1lIG1heSBjaGFuZ2UgaW4gdGhl
IGZ1dHVyZSB0byBiZXR0ZXIgcmVwcmVzZW50IHRoZQorICAgICAgICB0eXBlIG9mIHRyaWdnZXIs
IGJ1dCBpdCBpcyBnb29kIGVub3VnaCBmb3Igbm93LgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5p
bWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
QW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpzdGFydFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZTo6ZW5kVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpoYXNFbmRWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OkNTU0FuaW1h
dGlvblRyaWdnZXJTY3JvbGxWYWx1ZSk6CisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFuaW1hdGlvblRyaWdn
ZXJWYWx1ZSk6IE1hcHMgYW4gQW5pbWF0aW9uVHJpZ2dlciBpbnRvIGEgQ1NTVmFsdWUuCisgICAg
ICAgIChXZWJDb3JlOjpnZXRBbmltYXRpb25UcmlnZ2VyVmFsdWUpOiBHZXRzIHRoZSBjdXJyZW50
IGNvbXB1dGVkIHN0eWxlLgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rv
cjo6cHJvcGVydHlWYWx1ZSk6CisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9uVHJpZ2dlcik6IFBhcnNlIHRoZSAiY29udGFpbmVyLXNj
cm9sbCIgZnVuY3Rpb24KKyAgICAgICAgYW5kIHJlY29yZCB0aGUgdmFsdWUgYXMgYSBDU1NBbmlt
YXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlQW5pbWF0aW9uUHJvcGVydHkpOiBIYW5kbGUgdGhlIG5ldyBwcm9wZXJ0eS4KKyAgICAgICAg
KiBjc3MvQ1NTUGFyc2VyLmg6CisKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5pbjog
QWRkICItd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyIi4KKworICAgICAgICAqIGNzcy9DU1NUb1N0
eWxlTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlv
blRyaWdnZXIpOiBNYXAgYSBDU1NWYWx1ZSBpbnRvIGEgdHJpZ2dlciB2YWx1ZSBvbgorICAgICAg
ICBhbiBBbmltYXRpb24gb2JqZWN0LgorICAgICAgICAqIGNzcy9DU1NUb1N0eWxlTWFwLmg6CisK
KyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuY3BwOiBIYW5kbGUgdGhlIG5ldyBDU1NWYWx1ZSB0eXBl
LgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmVxdWFscyk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NWYWx1ZTo6Y3NzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6ZGVzdHJv
eSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZTo6aXNBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUpOgorCisgICAgICAgICogcGxhdGZvcm0v
YW5pbWF0aW9uL0FuaW1hdGlvbi5oOiBBZGQgQW5pbWF0aW9uVHJpZ2dlciBhcyBhIG5ldyBmaWVs
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6aXNUcmlnZ2VyU2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OkFuaW1hdGlvbjo6aXNFbXB0eSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmlt
YXRpb24vQW5pbWF0aW9uVHJpZ2dlci5oOiBBZGRlZC4gTmV3IGJhc2UgY2xhc3MgYW5kIHN1YmNs
YXNzZXMgZm9yCisgICAgICAgICJhdXRvIiBhbmQgdGhlIHNjcm9sbGluZyB0cmlnZ2VyLgorICAg
ICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uVHJpZ2dlcjo6fkFuaW1hdGlvblRyaWdnZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uVHJpZ2dlcjo6dHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBbmltYXRpb25UcmlnZ2VyOjppc0F1dG9BbmltYXRpb25UcmlnZ2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvblRyaWdnZXI6OmlzU2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcik6CisgICAg
ICAgIChXZWJDb3JlOjpBbmltYXRpb25UcmlnZ2VyOjpBbmltYXRpb25UcmlnZ2VyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1dG9BbmltYXRpb25UcmlnZ2VyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXV0b0FuaW1hdGlvblRyaWdnZXI6On5BdXRvQW5pbWF0aW9uVHJpZ2dlcik6CisgICAg
ICAgIChXZWJDb3JlOjpBdXRvQW5pbWF0aW9uVHJpZ2dlcjo6QXV0b0FuaW1hdGlvblRyaWdnZXIp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvblRyaWdnZXI6On5TY3JvbGxBbmltYXRpb25U
cmlnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvblRyaWdnZXI6OnN0YXJ0
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcjo6c2V0U3Rh
cnRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25UcmlnZ2VyOjplbmRW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25UcmlnZ2VyOjpzZXRFbmRW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25UcmlnZ2VyOjpoYXNFbmRW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25UcmlnZ2VyOjpzZXRIYXNF
bmRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25UcmlnZ2VyOjpTY3Jv
bGxBbmltYXRpb25UcmlnZ2VyKToKKwogMjAxNS0wMy0xNCAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgRmVhdHVyZSBmbGFnIGZvciBBbmltYXRpb25zIExldmVsIDIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzMDAyMDFhYTQ2NTEyMjBhY2U1ODliMTYzMzc2YWZkY2QzZjVhZjIyLi5lNzUyNWQ1N2Ni
ZDVjYmQxN2ZmMmJiYzRjZDdmYjFmZmM5ZmIwNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjgwLDYgKzEyODAsOCBAQAog
CQkzMUE3OTVDNzE4ODhCQ0IyMDAzODJGOTAgLyogQU5HTEVJbnN0YW5jZWRBcnJheXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTc5NUMyMTg4OEI3
MjQwMDM4MkY5MCAvKiBBTkdMRUluc3RhbmNlZEFycmF5cy5oICovOyB9OwogCQkzMUE3OTVDODE4
ODhCQ0I1MDAzODJGOTAgLyogQU5HTEVJbnN0YW5jZWRBcnJheXMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFBNzk1QzExODg4QjcyNDAwMzgyRjkw
IC8qIEFOR0xFSW5zdGFuY2VkQXJyYXlzLmNwcCAqLzsgfTsKIAkJMzFBQjUwMDAxMjI4NzhBMjAw
MUE3REIwIC8qIEdyYXBoaWNzQ29udGV4dDNESU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUFCNEZGRjEyMjg3OEEyMDAxQTdEQjAgLyogR3JhcGhp
Y3NDb250ZXh0M0RJT1MuaCAqLzsgfTsKKwkJMzFCQzc0MkQxQUFGRjQ1QzAwNkI0MzQwIC8qIENT
U0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUJDNzQyQjFBQUZGNDVDMDA2QjQzNDAgLyogQ1NTQW5p
bWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCAqLzsgfTsKKwkJMzFCQzc0MkUxQUFGRjQ1QzAw
NkI0MzQwIC8qIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFCQzc0MkMxQUFGRjQ1QzAwNkI0MzQw
IC8qIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oICovOyB9OwogCQkzMUMwRkYyMTBF
NENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUIwRTRDRUI2RTAwN0Q2RkU1
IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLzsgfTsKIAkJMzFDMEZGMjIwRTRDRUI2RTAw
N0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYxQzBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0
QW5pbWF0aW9uRXZlbnQuaCAqLzsgfTsKIAkJMzFDMEZGMjQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdl
YktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUMwRkYxRTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmNwcCAqLzsgfTsKQEAgLTEyOTUsNiArMTI5Nyw3IEBACiAJCTMxQzBGRjREMEU0Q0VG
REQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0NzBFNENFRkREMDA3RDZGRTUg
LyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tICovOyB9OwogCQkzMUMwRkY0RTBFNENFRkRE
MDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjQ4MEU0Q0VGREQwMDdE
NkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJbnRlcm5hbC5oICovOyB9OwogCQkzMUQ1
OTFCMzE2Njk3QTZDMDBFNkJGMDIgLyogUGx1Z0luQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUQ1OTFCMTE2Njk3QTZDMDBFNkJGMDIgLyog
UGx1Z0luQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMzFEQ0QyOUQxQUI0RkJERTAwNzJFODE3IC8qIEFuaW1hdGlvblRyaWdnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRENEMjlDMUFC
NEZCREUwMDcyRTgxNyAvKiBBbmltYXRpb25UcmlnZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzFFQUY5N0UxMjE0MzVBNDAwRTdDMUJGIC8q
IERldmljZU1vdGlvbkNsaWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzFFQUY5N0MxMjE0MzVBNDAwRTdDMUJGIC8qIERldmljZU1vdGlvbkNs
aWVudElPUy5oICovOyB9OwogCQkzMUVBRjk3RjEyMTQzNUE0MDBFN0MxQkYgLyogRGV2aWNlTW90
aW9uQ2xpZW50SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzFFQUY5N0QxMjE0MzVBNDAwRTdDMUJGIC8qIERldmljZU1vdGlvbkNsaWVudElPUy5t
bSAqLzsgfTsKIAkJMzFFQzFFMjgxNEZGNjBFRTAwQzk0NjYyIC8qIEpTTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxRUMxRTI2MTRGRjYwRUUwMEM5NDY2MiAvKiBKU05vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjay5jcHAgKi87IH07CkBAIC04Mzc2LDYgKzgzNzksOCBAQAogCQkzMUE3OTVD
NDE4ODhCQUQxMDAzODJGOTAgLyogSlNBTkdMRUluc3RhbmNlZEFycmF5cy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FOR0xFSW5zdGFuY2VkQXJyYXlzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFBNzk1QzUxODg4QkFEMTAwMzgyRjkwIC8q
IEpTQU5HTEVJbnN0YW5jZWRBcnJheXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNBTkdMRUluc3RhbmNlZEFycmF5cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMUFCNEZGRjEyMjg3OEEyMDAxQTdEQjAgLyogR3JhcGhpY3NDb250ZXh0M0RJT1MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0RJT1MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFCQzc0MkIxQUFGRjQ1QzAwNkI0MzQwIC8qIENT
U0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMUJDNzQyQzFBQUZGNDVDMDA2QjQzNDAgLyogQ1NTQW5p
bWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMUMwRkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0QW5pbWF0
aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkYxQzBFNENF
QjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzFDMEZGMUQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRBbmltYXRpb25FdmVudC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MzkzLDYgKzgzOTgsNyBAQAogCQkzMUMw
RkY0NzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0VHJhbnNpdGlvbkV2
ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkY0ODBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFENTkxQjExNjY5N0E2QzAwRTZCRjAyIC8q
IFBsdWdJbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnSW5D
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFEQ0QyOUMxQUI0RkJERTAw
NzJFODE3IC8qIEFuaW1hdGlvblRyaWdnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQW5pbWF0aW9uVHJpZ2dlci5oOyBwYXRoID0gYW5pbWF0aW9uL0FuaW1hdGlvblRyaWdn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFFOEQ4QkExNjBCQzk0QjAwNENF
OEY1IC8qIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzFFOEQ4QkIxNjBCQzk0QzAwNENFOEY1IC8qIFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxRUFGOTdD
MTIxNDM1QTQwMEU3QzFCRiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gRGV2aWNlTW90aW9uQ2xpZW50SU9TLmg7IHBhdGggPSBpb3Mv
RGV2aWNlTW90aW9uQ2xpZW50SU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NjA2NSw3ICsxNjA3MSw2IEBACiAJCTQ5ODc3MEMxMTI0MkM1MEQwMDIyMjZCQSAvKiBncHUgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTQ5ODc3MTE2MTI0
MkNEN0YwMDIyMjZCQSAvKiBtYWMgKi8sCiAJCQkJNDk4NzcwRDcxMjQyQzUzNTAwMjIyNkJBIC8q
IFRleHR1cmUuY3BwICovLAogCQkJCTQ5ODc3MEQ4MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJl
LmggKi8sCiAJCQkJNDk4NzcwRDkxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwICov
LApAQCAtMTYxNDAsNiArMTYxNDUsNyBAQAogCQkJCTQ5RTkxMkE2MEVGQUM5MDYwMDlEMENBRiAv
KiBBbmltYXRpb24uaCAqLywKIAkJCQk0OUU5MTJBNzBFRkFDOTA2MDA5RDBDQUYgLyogQW5pbWF0
aW9uTGlzdC5jcHAgKi8sCiAJCQkJNDlFOTEyQTgwRUZBQzkwNjAwOUQwQ0FGIC8qIEFuaW1hdGlv
bkxpc3QuaCAqLywKKwkJCQkzMURDRDI5QzFBQjRGQkRFMDA3MkU4MTcgLyogQW5pbWF0aW9uVHJp
Z2dlci5oICovLAogCQkJCTBGNTgwRkFFMTQ5ODAwRDQwMEZCNUJEOCAvKiBBbmltYXRpb25VdGls
aXRpZXMuaCAqLywKIAkJCQk0OUU5MTJBOTBFRkFDOTA2MDA5RDBDQUYgLyogVGltaW5nRnVuY3Rp
b24uaCAqLywKIAkJCSk7CkBAIC0yMjE4MCw2ICsyMjE4Niw4IEBACiAJCUY1MjNEMTg0MDJERTQy
RTgwMTg2MzVDQSAvKiBjc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTMxQkM3NDJCMUFBRkY0NUMwMDZCNDM0MCAvKiBDU1NBbmltYXRpb25UcmlnZ2Vy
U2Nyb2xsVmFsdWUuY3BwICovLAorCQkJCTMxQkM3NDJDMUFBRkY0NUMwMDZCNDM0MCAvKiBDU1NB
bmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuaCAqLywKIAkJCQk4MzUyMEM3RDFBNzFCRkNDMDA2
QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovLAogCQkJCUZCRDZBRjg0MTVFRjIxRDQwMDhCNzEx
MCAvKiBCYXNpY1NoYXBlRnVuY3Rpb25zLmNwcCAqLywKIAkJCQlGQkQ2QUY4NTE1RUYyMUQ0MDA4
QjcxMTAgLyogQmFzaWNTaGFwZUZ1bmN0aW9ucy5oICovLApAQCAtMjQxODQsNiArMjQxOTIsNyBA
QAogCQkJCTg1QkE0Q0REMEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MQnV0dG9uRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODVFNzExQTEwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxC
dXR0b25FbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDNDMTU5MEY5N0E5
RDcwMDUzQzAxMyAvKiBET01IVE1MQ2FudmFzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MzFEQ0QyOUQxQUI0RkJERTAwNzJFODE3IC8qIEFuaW1hdGlvblRyaWdnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzRjlCNjU4MEJBMEYzNUUwMDg1NDA2NCAvKiBET01IVE1MQ2FudmFzRWxlbWVu
dEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NURGMkY4RTBBQTNDODgxMDBBRDY0QzUg
LyogRE9NSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUEyMEFDNUQ1
MzUwMDUzMjcwRiAvKiBET01IVE1MQ29sbGVjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywK
QEAgLTI0MzE2LDYgKzI0MzI1LDcgQEAKIAkJCQk4NTE4REQ3ODBBOUNGMzFCMDA5MUI3QTYgLyog
RE9NTmFtZWROb2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTFEMjBBQzVENTM1MDA1
MzI3MEYgLyogRE9NTmFtZWROb2RlTWFwSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1
M0JGNERCMEFCQjZCNTUwMDg2NDdCQiAvKiBET01Ob2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkz
MUJDNzQyRTFBQUZGNDVDMDA2QjQzNDAgLyogQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTQwNzUyNjBBRDZDNjY3MDA2MjBDNTcgLyogRE9NTm9k
ZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVCNDk4RkIwQURCMzQwMjAwOTI1Q0JCIC8q
IERPTU5vZGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU1MjZDMzcwQUIwQTE3RTAw
MDMwMkVBIC8qIERPTU5vZGVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTg5NCw2ICsy
OTkwNCw3IEBACiAJCQkJQjI4QzZBMjkwRDAwQzQ0ODAwMzM0QUE0IC8qIFNWR0ltYWdlTG9hZGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QTJGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdM
YW5nU3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIyMjdBMzIwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR0xlbmd0aC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUJDNzQyRDFBQUZGNDVDMDA2
QjQzNDAgLyogQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTcxMzQ0OTZEMTQ2OTQxQjMwMDcyMDMxMiAvKiBTVkdMZW5ndGhDb250ZXh0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUIyMjI3QTM1MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMZW5ndGhM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3QTM4MEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIyN2ZlMzc5NDlmODIxOTg5NjYwN2NkMDc4ZDNhY2Y1ZmVkYjRiMDUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZh
bHVlLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTU0FuaW1hdGlv
blRyaWdnZXJTY3JvbGxWYWx1ZS5oIgorCisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVM
XzIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3RyaW5nIENTU0FuaW1hdGlvblRyaWdnZXJT
Y3JvbGxWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0Cit7CisgICAgaWYgKG1faGFzRW5kVmFs
dWUpCisgICAgICAgIHJldHVybiAiY29udGFpbmVyLXNjcm9sbCgiICsgbV9zdGFydFZhbHVlLT5j
c3NUZXh0KCkgKyAiLCAiICsgbV9lbmRWYWx1ZS0+Y3NzVGV4dCgpICsgJyknOworICAgIHJldHVy
biAiY29udGFpbmVyLXNjcm9sbCgiICsgbV9zdGFydFZhbHVlLT5jc3NUZXh0KCkgKyAnKSc7Cit9
CisKK2Jvb2wgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjplcXVhbHMoY29uc3QgQ1NT
QW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9zdGFydFZhbHVlLT5lcXVhbHMoKm90aGVyLm1fc3RhcnRWYWx1ZS5nZXQoKSkgJiYgbV9lbmRW
YWx1ZS0+ZXF1YWxzKCpvdGhlci5tX2VuZFZhbHVlLmdldCgpKSAmJiBtX2hhc0VuZFZhbHVlID09
IG90aGVyLm1faGFzRW5kVmFsdWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNj
cm9sbFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9s
bFZhbHVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTBmOWZjZTBmZGNjNGRhODQxZWQ3ZTYzYTczNjFjYTM4Njg5
OGY0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbmltYXRpb25U
cmlnZ2VyU2Nyb2xsVmFsdWUuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDU1NBbmltYXRpb25UcmlnZ2VyU2Ny
b2xsVmFsdWVfaAorI2RlZmluZSBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWVfaAorCisj
aWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisKKyNpbmNsdWRlICJDU1NWYWx1ZS5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlIDogcHVibGljIENTU1ZhbHVlIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZT4g
Y3JlYXRlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHN0YXJ0VmFsdWUsIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IGVuZFZhbHVlID0gbnVsbHB0ciwgYm9vbCBoYXNFbmRWYWx1ZSA9IGZhbHNlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZh
bHVlKHN0YXJ0VmFsdWUsIGVuZFZhbHVlLCBoYXNFbmRWYWx1ZSkpOworICAgIH0KKworICAgIENT
U1ZhbHVlKiBzdGFydFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFZhbHVlLmdldCgpOyB9
CisgICAgQ1NTVmFsdWUqIGVuZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9lbmRWYWx1ZS5nZXQo
KTsgfQorICAgIGJvb2wgaGFzRW5kVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2hhc0VuZFZhbHVl
OyB9CisKKyAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OworCisgICAgYm9vbCBlcXVh
bHMoY29uc3QgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlJikgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlKFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IHN0YXJ0VmFsdWUsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGVuZFZhbHVlLCBib29sIGhhc0Vu
ZFZhbHVlKQorICAgICAgICA6IENTU1ZhbHVlKEFuaW1hdGlvblRyaWdnZXJTY3JvbGxDbGFzcykK
KyAgICAgICAgLCBtX3N0YXJ0VmFsdWUoc3RhcnRWYWx1ZSkKKyAgICAgICAgLCBtX2VuZFZhbHVl
KGVuZFZhbHVlKQorICAgICAgICAsIG1faGFzRW5kVmFsdWUoaGFzRW5kVmFsdWUpCisgICAgewor
ICAgIH0KKworICAgIFJlZlB0cjxDU1NWYWx1ZT4gbV9zdGFydFZhbHVlOworICAgIFJlZlB0cjxD
U1NWYWx1ZT4gbV9lbmRWYWx1ZTsKKyAgICBib29sIG1faGFzRW5kVmFsdWU7Cit9OworCit9CisK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU0FuaW1hdGlvblRyaWdnZXJTY3Jv
bGxWYWx1ZSwgaXNBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUoKSkKKworI2VuZGlmCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcAppbmRleCBiYzhmNTk4N2ZmMmI4NjAyZWFhZTY5ZGQzODI1NzdiYmFhODJiN2I1Li4w
NWM0MzU1OTAyZjI0Mzc5NDJlMDA0NTVmODVmM2ZlNDNhYzdjY2I4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJCYXNp
Y1NoYXBlRnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiQmFzaWNTaGFwZXMuaCIKKyNpbmNsdWRlICJD
U1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUuaCIKICNpbmNsdWRlICJDU1NBc3BlY3RSYXRp
b1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTQmFzaWNTaGFwZXMuaCIKICNpbmNsdWRlICJDU1NCb3Jk
ZXJJbWFnZS5oIgpAQCAtODcsNiArODgsMTAgQEAKICNpbmNsdWRlICJTdHlsZVNjcm9sbFNuYXBQ
b2ludHMuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisj
aW5jbHVkZSAiQW5pbWF0aW9uVHJpZ2dlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogLy8gTGlzdCBvZiBhbGwgcHJvcGVydGllcyB3ZSBrbm93IGhvdyB0byBjb21wdXRlLCBv
bWl0dGluZyBzaG9ydGhhbmRzLgpAQCAtMTIyMSw2ICsxMjI2LDM1IEBAIHN0YXRpYyBSZWY8Q1NT
VmFsdWVMaXN0PiBnZXRUaW1pbmdGdW5jdGlvblZhbHVlKGNvbnN0IEFuaW1hdGlvbkxpc3QqIGFu
aW1MaXN0KQogICAgIHJldHVybiBsaXN0OwogfQogCisjaWYgRU5BQkxFKENTU19BTklNQVRJT05T
X0xFVkVMXzIpCitzdGF0aWMgUmVmPENTU1ZhbHVlPiBjcmVhdGVBbmltYXRpb25UcmlnZ2VyVmFs
dWUoY29uc3QgQW5pbWF0aW9uVHJpZ2dlciogdHJpZ2dlciwgY29uc3QgUmVuZGVyU3R5bGUqIHN0
eWxlKQoreworICAgIHN3aXRjaCAodHJpZ2dlci0+dHlwZSgpKSB7CisgICAgY2FzZSBBbmltYXRp
b25UcmlnZ2VyOjpTY3JvbGxBbmltYXRpb25UcmlnZ2VyVHlwZTogeworICAgICAgICBjb25zdCBT
Y3JvbGxBbmltYXRpb25UcmlnZ2VyKiBzY3JvbGxBbmltYXRpb25UcmlnZ2VyID0gc3RhdGljX2Nh
c3Q8Y29uc3QgU2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcio+KHRyaWdnZXIpOworICAgICAgICByZXR1
cm4gQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpjcmVhdGUoem9vbUFkanVzdGVkUGl4
ZWxWYWx1ZUZvckxlbmd0aChzY3JvbGxBbmltYXRpb25UcmlnZ2VyLT5zdGFydFZhbHVlKCksIHN0
eWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgoc2Nyb2xsQW5pbWF0aW9uVHJpZ2dl
ci0+ZW5kVmFsdWUoKSwgc3R5bGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsQW5pbWF0aW9uVHJpZ2dlci0+aGFzRW5kVmFsdWUo
KSk7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVCh0cmlnZ2VyLT50eXBlKCkg
PT0gQW5pbWF0aW9uVHJpZ2dlcjo6QXV0b0FuaW1hdGlvblRyaWdnZXJUeXBlKTsKKyAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8p
OworICAgIH0KK30KKworc3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IGdldEFuaW1hdGlvblRyaWdn
ZXJWYWx1ZShjb25zdCBBbmltYXRpb25MaXN0KiBhbmltTGlzdCwgY29uc3QgUmVuZGVyU3R5bGUq
IHN0eWxlKQoreworICAgIGF1dG8gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBh
cmF0ZWQoKTsKKyAgICBpZiAoYW5pbUxpc3QpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBhbmltTGlzdC0+c2l6ZSgpOyArK2kpCisgICAgICAgICAgICBsaXN0LmdldCgpLmFwcGVu
ZChjcmVhdGVBbmltYXRpb25UcmlnZ2VyVmFsdWUoYW5pbUxpc3QtPmFuaW1hdGlvbihpKS50cmln
Z2VyKCkuZ2V0KCksIHN0eWxlKSk7CisgICAgfSBlbHNlCisgICAgICAgIGxpc3QuZ2V0KCkuYXBw
ZW5kKGNyZWF0ZUFuaW1hdGlvblRyaWdnZXJWYWx1ZShBbmltYXRpb246OmluaXRpYWxUcmlnZ2Vy
KCkuZ2V0KCksIHN0eWxlKSk7CisKKyAgICByZXR1cm4gbGlzdDsKK30KKyNlbmRpZgorCiBzdGF0
aWMgUmVmPENTU1ZhbHVlPiBjcmVhdGVMaW5lQm94Q29udGFpblZhbHVlKHVuc2lnbmVkIGxpbmVC
b3hDb250YWluKQogewogICAgIGlmICghbGluZUJveENvbnRhaW4pCkBAIC0yNzIwLDYgKzI3NTQs
MTAgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVy
dHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnQKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUFu
aW1hdGlvblRpbWluZ0Z1bmN0aW9uOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5p
bWF0aW9uVGltaW5nRnVuY3Rpb246CiAgICAgICAgICAgICByZXR1cm4gZ2V0VGltaW5nRnVuY3Rp
b25WYWx1ZShzdHlsZS0+YW5pbWF0aW9ucygpKTsKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNf
TEVWRUxfMikKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblRyaWdnZXI6
CisgICAgICAgICAgICByZXR1cm4gZ2V0QW5pbWF0aW9uVHJpZ2dlclZhbHVlKHN0eWxlLT5hbmlt
YXRpb25zKCksIHN0eWxlLmdldCgpKTsKKyNlbmRpZgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0QXBwZWFyYW5jZToKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVh
dGVWYWx1ZShzdHlsZS0+YXBwZWFyYW5jZSgpKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEFzcGVjdFJhdGlvOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBkNjhhNzM0NmRh
MjBhNmNkMDYwMWY4MjU4ZjU0NmM1OWI5NzM4ZDNlLi43ZDI3MjYxMjY4ODljNjhiZTQ1OGQ5NDYw
NzU0ZTMxOTMzNWI2MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogCisjaW5j
bHVkZSAiQ1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTQXNw
ZWN0UmF0aW9WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0Jhc2ljU2hhcGVzLmgiCiAjaW5jbHVkZSAi
Q1NTQm9yZGVySW1hZ2UuaCIKQEAgLTI2ODksNiArMjY5MCw5IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uUGxheVN0YXRlOgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xF
VkVMXzIpCisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEFuaW1hdGlvblRyaWdnZXI6CisjZW5k
aWYKICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNpdGlvbkRlbGF5OgogICAgIGNhc2UgQ1NTUHJv
cGVydHlUcmFuc2l0aW9uRHVyYXRpb246CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25U
aW1pbmdGdW5jdGlvbjoKQEAgLTQ3NDMsNiArNDc0Nyw1MSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBDU1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9uUGxheVN0YXRlKCkKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAorI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblRyaWdnZXIoKQoreworICAgIENTU1Bh
cnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CisgICAgaWYgKHZhbHVl
LT5pZCA9PSBDU1NWYWx1ZUF1dG8pCisgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVh
dGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBdXRvKTsKKworICAgIGlmICh2YWx1ZS0+dW5pdCAh
PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24pCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzID0gdmFsdWUtPmZ1bmN0aW9uLT5hcmdzLmdldCgp
OworCisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgImNv
bnRhaW5lci1zY3JvbGwoIikpIHsKKyAgICAgICAgaWYgKCFhcmdzIHx8IChhcmdzLT5zaXplKCkg
IT0gMSAmJiBhcmdzLT5zaXplKCkgIT0gMykpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgICAgICBDU1NQYXJzZXJWYWx1ZSogYXJndW1lbnQgPSBhcmdzLT5jdXJyZW50KCk7Cisg
ICAgICAgIFZhbHVlV2l0aENhbGN1bGF0aW9uIGZpcnN0QXJndW1lbnRXaXRoQ2FsY3VsYXRpb24o
KmFyZ3VtZW50KTsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZVVuaXQoZmlyc3RBcmd1bWVudFdpdGhD
YWxjdWxhdGlvbiwgRkxlbmd0aCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
ICAgICBSZWZQdHI8Q1NTVmFsdWU+IHN0YXJ0VmFsdWUgPSBjcmVhdGVQcmltaXRpdmVOdW1lcmlj
VmFsdWUoZmlyc3RBcmd1bWVudFdpdGhDYWxjdWxhdGlvbik7CisKKyAgICAgICAgYXJndW1lbnQg
PSBhcmdzLT5uZXh0KCk7CisKKyAgICAgICAgaWYgKCFhcmd1bWVudCkKKyAgICAgICAgICAgIHJl
dHVybiBDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWU6OmNyZWF0ZShzdGFydFZhbHVlLnJl
bGVhc2UoKSk7CisKKyAgICAgICAgaWYgKCFpc0NvbW1hKGFyZ3VtZW50KSkKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgICAgIGFyZ3VtZW50ID0gYXJncy0+bmV4dCgpOworICAg
ICAgICBWYWx1ZVdpdGhDYWxjdWxhdGlvbiBzZWNvbmRBcmd1bWVudFdpdGhDYWxjdWxhdGlvbigq
YXJndW1lbnQpOworICAgICAgICBpZiAoIXZhbGlkYXRlVW5pdChzZWNvbmRBcmd1bWVudFdpdGhD
YWxjdWxhdGlvbiwgRkxlbmd0aCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
ICAgICBSZWZQdHI8Q1NTVmFsdWU+IGVuZFZhbHVlID0gY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1Zh
bHVlKHNlY29uZEFyZ3VtZW50V2l0aENhbGN1bGF0aW9uKTsKKworICAgICAgICByZXR1cm4gQ1NT
QW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlOjpjcmVhdGUoc3RhcnRWYWx1ZS5yZWxlYXNlKCks
IGVuZFZhbHVlLnJlbGVhc2UoKSwgdHJ1ZSk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9Cisj
ZW5kaWYKKwogUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblBy
b3BlcnR5KEFuaW1hdGlvblBhcnNlQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBDU1NQYXJzZXJW
YWx1ZSYgdmFsdWUgPSAqbV92YWx1ZUxpc3QtPmN1cnJlbnQoKTsKQEAgLTQ5ODAsNiArNTAyOSwx
MyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VBbmltYXRpb25Qcm9wZXJ0eShDU1NQcm9wZXJ0eUlE
IHByb3BJZCwgUmVmUHRyPENTU1ZhbHVlPiYgcgogICAgICAgICAgICAgICAgIGlmIChjdXJyVmFs
dWUpCiAgICAgICAgICAgICAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QW5pbWF0aW9uVHJpZ2dlcjoKKyAgICAgICAgICAg
ICAgICBjdXJyVmFsdWUgPSBwYXJzZUFuaW1hdGlvblRyaWdnZXIoKTsKKyAgICAgICAgICAgICAg
ICBpZiAoY3VyclZhbHVlKQorICAgICAgICAgICAgICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgp
OworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCA1MzVkMjIyZDQ5NGIzNTkzNGRk
MjRkZjZlMjBhM2Q4NDE5NDM2MTRiLi44N2ZiYjYzYjRiMDA0OWFmMDI4MmNiOTcwOTcxYWZhZGQ4
ZmQ1ZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0xODEsNiArMTgxLDkgQEAgcHVibGlj
OgogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlQW5pbWF0aW9uUGxheVN0YXRlKCk7CiAg
ICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VBbmltYXRpb25Qcm9wZXJ0eShBbmltYXRpb25Q
YXJzZUNvbnRleHQmKTsKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZUFuaW1hdGlvblRp
bWluZ0Z1bmN0aW9uKCk7CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VBbmltYXRpb25UcmlnZ2VyKCk7CisjZW5kaWYKICAg
ICBzdGF0aWMgVmVjdG9yPGRvdWJsZT4gcGFyc2VLZXlmcmFtZVNlbGVjdG9yKGNvbnN0IFN0cmlu
ZyYpOwogCiAgICAgYm9vbCBwYXJzZVRyYW5zZm9ybU9yaWdpblNob3J0aGFuZChSZWZQdHI8Q1NT
VmFsdWU+JiwgUmVmUHRyPENTU1ZhbHVlPiYsIFJlZlB0cjxDU1NWYWx1ZT4mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggMTIxZDYzNzVmNDg2YWRkZjZkNjQ3Y2U1
MGNiZjg1YjBiOTQxYjRkMi4uMDNjOGVlMDcxNjQ5ZWU1NmMyMjZlYTkwMGIyMzg5ZDYzYjczYzZj
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTM2Nyw2ICszNjcs
OSBAQCBhbHQgW05hbWVGb3JNZXRob2RzPUNvbnRlbnRBbHRUZXh0LCBDdXN0b209VmFsdWVdCiAt
d2Via2l0LWFuaW1hdGlvbi1uYW1lIFtBbmltYXRpb25Qcm9wZXJ0eSwgTmFtZUZvck1ldGhvZHM9
TmFtZV0KIC13ZWJraXQtYW5pbWF0aW9uLXBsYXktc3RhdGUgW0FuaW1hdGlvblByb3BlcnR5LCBO
YW1lRm9yTWV0aG9kcz1QbGF5U3RhdGVdCiAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rp
b24gW0FuaW1hdGlvblByb3BlcnR5LCBOYW1lRm9yTWV0aG9kcz1UaW1pbmdGdW5jdGlvbl0KKyNp
ZiBkZWZpbmVkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAmJiBFTkFCTEVfQ1NTX0FO
SU1BVElPTlNfTEVWRUxfMgorLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dlciBbQW5pbWF0aW9uUHJv
cGVydHksIE5hbWVGb3JNZXRob2RzPVRyaWdnZXJdCisjZW5kaWYKIC13ZWJraXQtYXBwZWFyYW5j
ZQogLXdlYmtpdC1hc3BlY3QtcmF0aW8gW0luaGVyaXRlZCwgQ3VzdG9tPUFsbF0KIC13ZWJraXQt
YmFja2ZhY2UtdmlzaWJpbGl0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Rv
U3R5bGVNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCmluZGV4
IGRjNjFhNWM1ZTM2MDg1NTBlNjFiY2Q1MDNiODI4YmMxZTFkZTkwYTkuLjYwNzlhM2NkZDlmYzc2
NzZhNGEyY2I5NjdhMDU3MmMxOTZlMGUzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NUb1N0eWxlTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1h
cC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDU1NUb1N0eWxlTWFwLmgiCiAKICNp
bmNsdWRlICJBbmltYXRpb24uaCIKKyNpbmNsdWRlICJDU1NBbmltYXRpb25UcmlnZ2VyU2Nyb2xs
VmFsdWUuaCIKICNpbmNsdWRlICJDU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTSW1hZ2VTZXRWYWx1ZS5o
IgpAQCAtNTEzLDYgKzUxNCwzOCBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcEFuaW1hdGlvblRp
bWluZ0Z1bmN0aW9uKEFuaW1hdGlvbiYgYW5pbWF0aW9uLCBDU1NWYWx1ZSYgdgogICAgIH0KIH0K
IAorI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQordm9pZCBDU1NUb1N0eWxlTWFw
OjptYXBBbmltYXRpb25UcmlnZ2VyKEFuaW1hdGlvbiYgYW5pbWF0aW9uLCBDU1NWYWx1ZSYgdmFs
dWUpCit7CisgICAgaWYgKHZhbHVlLmlzSW5pdGlhbFZhbHVlKCkpIHsKKyAgICAgICAgYW5pbWF0
aW9uLnNldFRyaWdnZXIoQW5pbWF0aW9uOjppbml0aWFsVHJpZ2dlcigpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmICh2YWx1ZS5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKKyAgICAg
ICAgYXV0byYgcHJpbWl0aXZlVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFs
dWUpOworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUuZ2V0VmFsdWVJRCgpID09IENTU1ZhbHVl
QXV0bykKKyAgICAgICAgICAgIGFuaW1hdGlvbi5zZXRUcmlnZ2VyKEF1dG9BbmltYXRpb25Ucmln
Z2VyOjpjcmVhdGUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAodmFsdWUu
aXNBbmltYXRpb25UcmlnZ2VyU2Nyb2xsVmFsdWUoKSkgeworICAgICAgICBhdXRvJiBzY3JvbGxU
cmlnZ2VyID0gZG93bmNhc3Q8Q1NTQW5pbWF0aW9uVHJpZ2dlclNjcm9sbFZhbHVlPih2YWx1ZSk7
CisKKyAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHN0YXJ0VmFsdWUgPSBkb3duY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZT4oc2Nyb2xsVHJpZ2dlci5zdGFydFZhbHVlKCkpOworICAgICAgICBMZW5n
dGggc3RhcnRMZW5ndGggPSBzdGFydFZhbHVlLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4obV9yZXNv
bHZlci0+c3RhdGUoKS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkpOworCisgICAgICAgIExl
bmd0aCBlbmRMZW5ndGg7CisgICAgICAgIGlmIChzY3JvbGxUcmlnZ2VyLmhhc0VuZFZhbHVlKCkp
IHsKKyAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBlbmRWYWx1ZSA9IGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPihzY3JvbGxUcmlnZ2VyLmVuZFZhbHVlKCkpOworICAgICAgICAgICAg
ZW5kTGVuZ3RoID0gZW5kVmFsdWUtPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihtX3Jlc29sdmVyLT5z
dGF0ZSgpLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKSk7CisgICAgICAgIH0KKworICAgICAg
ICBhbmltYXRpb24uc2V0VHJpZ2dlcihTY3JvbGxBbmltYXRpb25UcmlnZ2VyOjpjcmVhdGUoc3Rh
cnRMZW5ndGgsIGVuZExlbmd0aCwgc2Nyb2xsVHJpZ2dlci5oYXNFbmRWYWx1ZSgpKSk7CisgICAg
fQorfQorI2VuZGlmCisKIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFwTmluZVBpZWNlSW1hZ2UoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTVmFsdWUqIHZhbHVlLCBOaW5lUGllY2VJbWFnZSYgaW1h
Z2UpCiB7CiAgICAgLy8gSWYgd2UncmUgbm90IGEgdmFsdWUgbGlzdCwgdGhlbiB3ZSBhcmUgIm5v
bmUiIGFuZCBkb24ndCBuZWVkIHRvIGFsdGVyIHRoZSBlbXB0eSBpbWFnZSBhdCBhbGwuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1RvU3R5bGVNYXAuaAppbmRleCBhYTFiNDg2MmY2YWQwNDQ4NDE2YjBhN2QxNzMx
MjRmMGZmNThkMWIwLi5iNWYzZWU3OTA2M2E5MzY1MWU5NzE1MTJlOWIzZDJmYzNjNjExN2FiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgKQEAgLTY3LDYgKzY3LDkgQEAgcHVibGljOgog
ICAgIHZvaWQgbWFwQW5pbWF0aW9uUGxheVN0YXRlKEFuaW1hdGlvbiYsIENTU1ZhbHVlJik7CiAg
ICAgdm9pZCBtYXBBbmltYXRpb25Qcm9wZXJ0eShBbmltYXRpb24mLCBDU1NWYWx1ZSYpOwogICAg
IHZvaWQgbWFwQW5pbWF0aW9uVGltaW5nRnVuY3Rpb24oQW5pbWF0aW9uJiwgQ1NTVmFsdWUmKTsK
KyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICB2b2lkIG1hcEFuaW1hdGlv
blRyaWdnZXIoQW5pbWF0aW9uJiwgQ1NTVmFsdWUmKTsKKyNlbmRpZgogCiAgICAgdm9pZCBtYXBO
aW5lUGllY2VJbWFnZShDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZSosIE5pbmVQaWVjZUltYWdlJik7
CiAgICAgdm9pZCBtYXBOaW5lUGllY2VJbWFnZVNsaWNlKENTU1ZhbHVlJiwgTmluZVBpZWNlSW1h
Z2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCmluZGV4IDI3NTIzNDM4YTRiM2RhZWJjNTE3ZGY0
YWUxZWQ5OWY2OTE3MWUzMWIuLjM3N2Y2ZWRhOTk5OGI2N2I4ODk3NmYyY2U5YjQxOTBlZGUwMWQ0
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAKKyNpbmNsdWRlICJDU1NBbmltYXRp
b25UcmlnZ2VyU2Nyb2xsVmFsdWUuaCIKICNpbmNsdWRlICJDU1NBc3BlY3RSYXRpb1ZhbHVlLmgi
CiAjaW5jbHVkZSAiQ1NTQm9yZGVySW1hZ2VTbGljZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTQ2Fs
Y3VsYXRpb25WYWx1ZS5oIgpAQCAtMjI2LDYgKzIyNywxMCBAQCBib29sIENTU1ZhbHVlOjplcXVh
bHMoY29uc3QgQ1NTVmFsdWUmIG90aGVyKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIGNvbXBh
cmVDU1NWYWx1ZXM8U1ZHQ29sb3I+KCp0aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2UgU1ZHUGFp
bnRDbGFzczoKICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPFNWR1BhaW50Pigq
dGhpcywgb3RoZXIpOworI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAgICAg
ICBjYXNlIEFuaW1hdGlvblRyaWdnZXJTY3JvbGxDbGFzczoKKyAgICAgICAgICAgIHJldHVybiBj
b21wYXJlQ1NTVmFsdWVzPENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZT4oKnRoaXMsIG90
aGVyKTsKKyNlbmRpZgogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMTIsNiArMzE3LDEwIEBA
IFN0cmluZyBDU1NWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBkb3duY2Fz
dDxTVkdDb2xvcj4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIFNWR1BhaW50Q2xh
c3M6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxTVkdQYWludD4oKnRoaXMpLmN1c3RvbUNTU1Rl
eHQoKTsKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICBjYXNlIEFuaW1h
dGlvblRyaWdnZXJTY3JvbGxDbGFzczoKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0FuaW1h
dGlvblRyaWdnZXJTY3JvbGxWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKKyNlbmRpZgog
ICAgIGNhc2UgV2ViS2l0Q1NTUmVzb3VyY2VDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFdlYktpdENTU1Jlc291cmNlVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgfQpA
QCAtNDI2LDYgKzQzNSwxMSBAQCB2b2lkIENTU1ZhbHVlOjpkZXN0cm95KCkKICAgICBjYXNlIFNW
R1BhaW50Q2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxTVkdQYWludD4odGhpcyk7CiAg
ICAgICAgIHJldHVybjsKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICBj
YXNlIEFuaW1hdGlvblRyaWdnZXJTY3JvbGxDbGFzczoKKyAgICAgICAgZGVsZXRlIGRvd25jYXN0
PENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZT4odGhpcyk7CisgICAgICAgIHJldHVybjsK
KyNlbmRpZgogICAgIGNhc2UgV2ViS2l0Q1NTUmVzb3VyY2VDbGFzczoKICAgICAgICAgZGVsZXRl
IGRvd25jYXN0PFdlYktpdENTU1Jlc291cmNlVmFsdWU+KHRoaXMpOwogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IDYzMmVmOWFhOWU2ZDdjNzQwNDJjNzkyZjg5YTJjZmI4
YmI3NWZkNDAuLjlmMTlhZjljOTRhMDM2MzEzYWNlNGQyNWJmZjQ1MjI1MzU2YzM2MzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZS5oCkBAIC0xMDUsNiArMTA1LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlz
VW5pY29kZVJhbmdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBVbmljb2Rl
UmFuZ2VDbGFzczsgfQogICAgIGJvb2wgaXNXZWJLaXRDU1NSZXNvdXJjZVZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gV2ViS2l0Q1NTUmVzb3VyY2VDbGFzczsgfQogCisjaWYg
RU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgYm9vbCBpc0FuaW1hdGlvblRyaWdn
ZXJTY3JvbGxWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEFuaW1hdGlvblRy
aWdnZXJTY3JvbGxDbGFzczsgfQorI2VuZGlmCisKICAgICBib29sIGlzQ1NTT01TYWZlKCkgY29u
c3QgeyByZXR1cm4gbV9pc0NTU09NU2FmZTsgfQogICAgIGJvb2wgaXNTdWJ0eXBlRXhwb3NlZFRv
Q1NTT00oKSBjb25zdAogICAgIHsgCkBAIC0xNjUsNiArMTY5LDEwIEBAIHByb3RlY3RlZDoKICAg
ICAgICAgU1ZHUGFpbnRDbGFzcywKICAgICAgICAgV2ViS2l0Q1NTUmVzb3VyY2VDbGFzcywKIAor
I2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAgICAgICBBbmltYXRpb25Ucmln
Z2VyU2Nyb2xsQ2xhc3MsCisjZW5kaWYKKwogICAgICAgICAvLyBMaXN0IGNsYXNzIHR5cGVzIG11
c3QgYXBwZWFyIGFmdGVyIFZhbHVlTGlzdENsYXNzLgogICAgICAgICBWYWx1ZUxpc3RDbGFzcywK
ICNpZiBFTkFCTEUoQ1NTX0lNQUdFX1NFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fu
aW1hdGlvbi9BbmltYXRpb24uaAppbmRleCBlMTYzODRmZTk3ZDY3YjI5NzAxOWY4NmI2ODA1M2Q5
YjZjOTY3NTMxLi5lNzhmOWQxNGMyODc0YTNiM2FkMDk3MjNmYjU5ZmFiNTM0YmZiYmQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCkBAIC0yNSw2
ICsyNSw5IEBACiAjaWZuZGVmIEFuaW1hdGlvbl9oCiAjZGVmaW5lIEFuaW1hdGlvbl9oCiAKKyNp
ZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyNpbmNsdWRlICJBbmltYXRpb25Ucmln
Z2VyLmgiCisjZW5kaWYKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAi
UmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJUaW1pbmdGdW5jdGlvbi5oIgpAQCAt
NTAsNiArNTMsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BsYXlTdGF0ZVNldCgpIGNvbnN0IHsg
cmV0dXJuIG1fcGxheVN0YXRlU2V0OyB9CiAgICAgYm9vbCBpc1Byb3BlcnR5U2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9wcm9wZXJ0eVNldDsgfQogICAgIGJvb2wgaXNUaW1pbmdGdW5jdGlvblNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGltaW5nRnVuY3Rpb25TZXQ7IH0KKyNpZiBFTkFCTEUoQ1NTX0FO
SU1BVElPTlNfTEVWRUxfMikKKyAgICBib29sIGlzVHJpZ2dlclNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fdHJpZ2dlclNldDsgfQorI2VuZGlmCiAKICAgICAvLyBGbGFncyB0aGlzIHRvIGJlIHRoZSBz
cGVjaWFsICJub25lIiBhbmltYXRpb24gKGFuaW1hdGlvbi1uYW1lOiBub25lKQogICAgIGJvb2wg
aXNOb25lQW5pbWF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9pc05vbmU7IH0KQEAgLTYxLDcgKzY3
LDEyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiAoIW1fZGlyZWN0aW9uU2V0ICYm
ICFtX2R1cmF0aW9uU2V0ICYmICFtX2ZpbGxNb2RlU2V0CiAgICAgICAgICAgICAgICAgJiYgIW1f
bmFtZVNldCAmJiAhbV9wbGF5U3RhdGVTZXQgJiYgIW1faXRlcmF0aW9uQ291bnRTZXQKLSAgICAg
ICAgICAgICAgICAmJiAhbV9kZWxheVNldCAmJiAhbV90aW1pbmdGdW5jdGlvblNldCAmJiAhbV9w
cm9wZXJ0eVNldCk7CisgICAgICAgICAgICAgICAgJiYgIW1fZGVsYXlTZXQgJiYgIW1fdGltaW5n
RnVuY3Rpb25TZXQgJiYgIW1fcHJvcGVydHlTZXQKKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNf
TEVWRUxfMikKKyAgICAgICAgICAgICAgICAmJiAhbV90cmlnZ2VyU2V0KTsKKyNlbHNlCisgICAg
ICAgICAgICAgICAgKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGJvb2wgaXNFbXB0eU9yWmVyb0R1
cmF0aW9uKCkgY29uc3QKQEAgLTc4LDYgKzg5LDkgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJQ
bGF5U3RhdGUoKSB7IG1fcGxheVN0YXRlU2V0ID0gQW5pbVBsYXlTdGF0ZVBsYXlpbmc7IH0KICAg
ICB2b2lkIGNsZWFyUHJvcGVydHkoKSB7IG1fcHJvcGVydHlTZXQgPSBmYWxzZTsgfQogICAgIHZv
aWQgY2xlYXJUaW1pbmdGdW5jdGlvbigpIHsgbV90aW1pbmdGdW5jdGlvblNldCA9IGZhbHNlOyB9
CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgdm9pZCBjbGVhclRyaWdn
ZXIoKSB7IG1fdHJpZ2dlclNldCA9IGZhbHNlOyB9CisjZW5kaWYKIAogICAgIHZvaWQgY2xlYXJB
bGwoKQogICAgIHsKQEAgLTkwLDYgKzEwNCw5IEBAIHB1YmxpYzoKICAgICAgICAgY2xlYXJQbGF5
U3RhdGUoKTsKICAgICAgICAgY2xlYXJQcm9wZXJ0eSgpOwogICAgICAgICBjbGVhclRpbWluZ0Z1
bmN0aW9uKCk7CisjaWYgRU5BQkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisgICAgICAgIGNs
ZWFyVHJpZ2dlcigpOworI2VuZGlmCiAgICAgfQogCiAgICAgZG91YmxlIGRlbGF5KCkgY29uc3Qg
eyByZXR1cm4gbV9kZWxheTsgfQpAQCAtMTIwLDYgKzEzNyw5IEBAIHB1YmxpYzoKICAgICBDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0eTsgfQogICAgIGNv
bnN0IFBhc3NSZWZQdHI8VGltaW5nRnVuY3Rpb24+IHRpbWluZ0Z1bmN0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV90aW1pbmdGdW5jdGlvbjsgfQogICAgIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQorI2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19M
RVZFTF8yKQorICAgIGNvbnN0IFBhc3NSZWZQdHI8QW5pbWF0aW9uVHJpZ2dlcj4gdHJpZ2dlcigp
IGNvbnN0IHsgcmV0dXJuIG1fdHJpZ2dlcjsgfQorI2VuZGlmCiAKICAgICB2b2lkIHNldERlbGF5
KGRvdWJsZSBjKSB7IG1fZGVsYXkgPSBjOyBtX2RlbGF5U2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQg
c2V0RGlyZWN0aW9uKEFuaW1hdGlvbkRpcmVjdGlvbiBkKSB7IG1fZGlyZWN0aW9uID0gZDsgbV9k
aXJlY3Rpb25TZXQgPSB0cnVlOyB9CkBAIC0xMzEsNiArMTUxLDkgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UHJvcGVydHkoQ1NTUHJvcGVydHlJRCB0KSB7IG1fcHJvcGVydHkgPSB0OyBtX3Byb3Bl
cnR5U2V0ID0gdHJ1ZTsgfQogICAgIHZvaWQgc2V0VGltaW5nRnVuY3Rpb24oUGFzc1JlZlB0cjxU
aW1pbmdGdW5jdGlvbj4gZikgeyBtX3RpbWluZ0Z1bmN0aW9uID0gZjsgbV90aW1pbmdGdW5jdGlv
blNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldEFuaW1hdGlvbk1vZGUoQW5pbWF0aW9uTW9kZSBt
b2RlKSB7IG1fbW9kZSA9IG1vZGU7IH0KKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxf
MikKKyAgICB2b2lkIHNldFRyaWdnZXIoUGFzc1JlZlB0cjxBbmltYXRpb25UcmlnZ2VyPiBmKSB7
IG1fdHJpZ2dlciA9IGY7IG1fdHJpZ2dlclNldCA9IHRydWU7IH0KKyNlbmRpZgogCiAgICAgdm9p
ZCBzZXRJc05vbmVBbmltYXRpb24oYm9vbCBuKSB7IG1faXNOb25lID0gbjsgfQogCkBAIC0xNTcs
OSArMTgwLDEzIEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1fZGVsYXk7CiAgICAgZG91YmxlIG1f
ZHVyYXRpb247CiAgICAgUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiBtX3RpbWluZ0Z1bmN0aW9uOwor
I2lmIEVOQUJMRShDU1NfQU5JTUFUSU9OU19MRVZFTF8yKQorICAgIFJlZlB0cjxBbmltYXRpb25U
cmlnZ2VyPiBtX3RyaWdnZXI7CisjZW5kaWYKICAgICB1bnNpZ25lZCBtX2RpcmVjdGlvbiA6IDI7
IC8vIEFuaW1hdGlvbkRpcmVjdGlvbgogICAgIHVuc2lnbmVkIG1fZmlsbE1vZGUgOiAyOwogCisK
ICAgICB1bnNpZ25lZCBtX3BsYXlTdGF0ZSAgICAgOiAyOwogCiAgICAgYm9vbCBtX2RlbGF5U2V0
ICAgICAgICAgIDogMTsKQEAgLTE3MSw3ICsxOTgsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
cGxheVN0YXRlU2V0ICAgICAgOiAxOwogICAgIGJvb2wgbV9wcm9wZXJ0eVNldCAgICAgICA6IDE7
CiAgICAgYm9vbCBtX3RpbWluZ0Z1bmN0aW9uU2V0IDogMTsKLSAgICAKKyNpZiBFTkFCTEUoQ1NT
X0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICBib29sIG1fdHJpZ2dlclNldCAgICAgICAgOiAxOwor
I2VuZGlmCisKICAgICBib29sIG1faXNOb25lICAgICAgICAgICAgOiAxOwogCiBwdWJsaWM6CkBA
IC0xODQsNiArMjE0LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBFQW5pbVBsYXlTdGF0ZSBpbml0
aWFsUGxheVN0YXRlKCkgeyByZXR1cm4gQW5pbVBsYXlTdGF0ZVBsYXlpbmc7IH0KICAgICBzdGF0
aWMgQ1NTUHJvcGVydHlJRCBpbml0aWFsUHJvcGVydHkoKSB7IHJldHVybiBDU1NQcm9wZXJ0eUlu
dmFsaWQ7IH0KICAgICBzdGF0aWMgY29uc3QgUGFzc1JlZlB0cjxUaW1pbmdGdW5jdGlvbj4gaW5p
dGlhbFRpbWluZ0Z1bmN0aW9uKCkgeyByZXR1cm4gQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6
Y3JlYXRlKCk7IH0KKyNpZiBFTkFCTEUoQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikKKyAgICBzdGF0
aWMgY29uc3QgUGFzc1JlZlB0cjxBbmltYXRpb25UcmlnZ2VyPiBpbml0aWFsVHJpZ2dlcigpIHsg
cmV0dXJuIEF1dG9BbmltYXRpb25UcmlnZ2VyOjpjcmVhdGUoKTsgfQorI2VuZGlmCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hbmltYXRpb24vQW5pbWF0aW9uVHJpZ2dlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YW5pbWF0aW9uL0FuaW1hdGlvblRyaWdnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTcyZThlYTY2YzQzOWJj
YjBhZDkxNTE1NDM4YTgyNzg2MzBmMTA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvblRyaWdnZXIuaApAQCAtMCwwICsxLDE1NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
QW5pbWF0aW9uVHJpZ2dlcl9oCisjZGVmaW5lIEFuaW1hdGlvblRyaWdnZXJfaAorCisjaWYgRU5B
QkxFKENTU19BTklNQVRJT05TX0xFVkVMXzIpCisKKyNpbmNsdWRlICJMZW5ndGguaCIKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBBbmltYXRpb25UcmlnZ2VyIDogcHVibGljIFJlZkNvdW50
ZWQ8QW5pbWF0aW9uVHJpZ2dlcj4geworcHVibGljOgorCisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PEFuaW1hdGlvblRyaWdnZXI+IGNsb25lKCkgY29uc3QgPSAwOworCisgICAgZW51bSBBbmltYXRp
b25UcmlnZ2VyVHlwZSB7CisgICAgICAgIEF1dG9BbmltYXRpb25UcmlnZ2VyVHlwZSwgU2Nyb2xs
QW5pbWF0aW9uVHJpZ2dlclR5cGUKKyAgICB9OworCisgICAgdmlydHVhbCB+QW5pbWF0aW9uVHJp
Z2dlcigpIHsgfQorCisgICAgQW5pbWF0aW9uVHJpZ2dlclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZTsgfQorCisgICAgYm9vbCBpc0F1dG9BbmltYXRpb25UcmlnZ2VyKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlID09IEF1dG9BbmltYXRpb25UcmlnZ2VyVHlwZTsgfQorICAgIGJvb2wg
aXNTY3JvbGxBbmltYXRpb25UcmlnZ2VyKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFNjcm9s
bEFuaW1hdGlvblRyaWdnZXJUeXBlOyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBBbmltYXRpb25UcmlnZ2VyJiBvdGhlcikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgQW5p
bWF0aW9uVHJpZ2dlcihBbmltYXRpb25UcmlnZ2VyVHlwZSB0eXBlKQorICAgICAgICA6IG1fdHlw
ZSh0eXBlKQorICAgIHsKKyAgICB9CisKKyAgICBBbmltYXRpb25UcmlnZ2VyVHlwZSBtX3R5cGU7
Cit9OworCitjbGFzcyBBdXRvQW5pbWF0aW9uVHJpZ2dlciA6IHB1YmxpYyBBbmltYXRpb25Ucmln
Z2VyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxBdXRvQW5pbWF0aW9uVHJpZ2dl
cj4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXV0b0FuaW1h
dGlvblRyaWdnZXIpOworICAgIH0KKworICAgIHZpcnR1YWwgfkF1dG9BbmltYXRpb25UcmlnZ2Vy
KCkgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBbmltYXRpb25Ucmln
Z2VyJiBvdGhlcikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBvdGhlci5pc0F1dG9B
bmltYXRpb25UcmlnZ2VyKCk7CisgICAgfQorCitwcml2YXRlOgorICAgIEF1dG9BbmltYXRpb25U
cmlnZ2VyKCkKKyAgICAgICAgOiBBbmltYXRpb25UcmlnZ2VyKEF1dG9BbmltYXRpb25UcmlnZ2Vy
VHlwZSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEFuaW1hdGlvblRy
aWdnZXI+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgQXV0b0FuaW1hdGlvblRyaWdnZXIpOworICAgIH0KK307CisKK2NsYXNzIFNjcm9s
bEFuaW1hdGlvblRyaWdnZXIgOiBwdWJsaWMgQW5pbWF0aW9uVHJpZ2dlciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcj4gY3JlYXRlKExlbmd0
aCBzdGFydFZhbHVlLCBMZW5ndGggZW5kVmFsdWUgLCBib29sIGhhc0VuZFZhbHVlID0gZmFsc2Up
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcm9sbEFuaW1hdGlvblRyaWdn
ZXIoc3RhcnRWYWx1ZSwgZW5kVmFsdWUsIGhhc0VuZFZhbHVlKSk7CisgICAgfQorCisgICAgdmly
dHVhbCB+U2Nyb2xsQW5pbWF0aW9uVHJpZ2dlcigpIHsgfQorCisgICAgdmlydHVhbCBib29sIG9w
ZXJhdG9yPT0oY29uc3QgQW5pbWF0aW9uVHJpZ2dlciYgb3RoZXIpIG92ZXJyaWRlCisgICAgewor
ICAgICAgICBpZiAob3RoZXIuaXNTY3JvbGxBbmltYXRpb25UcmlnZ2VyKCkpIHsKKyAgICAgICAg
ICAgIGNvbnN0IFNjcm9sbEFuaW1hdGlvblRyaWdnZXIqIG90aGVyVHJpZ2dlciA9IHN0YXRpY19j
YXN0PGNvbnN0IFNjcm9sbEFuaW1hdGlvblRyaWdnZXIqPigmb3RoZXIpOworICAgICAgICAgICAg
cmV0dXJuIG1fc3RhcnRWYWx1ZSA9PSBvdGhlclRyaWdnZXItPm1fc3RhcnRWYWx1ZQorICAgICAg
ICAgICAgICAgICYmIG1fZW5kVmFsdWUgPT0gb3RoZXJUcmlnZ2VyLT5tX2VuZFZhbHVlCisgICAg
ICAgICAgICAgICAgJiYgbV9oYXNFbmRWYWx1ZSA9PSBvdGhlclRyaWdnZXItPm1faGFzRW5kVmFs
dWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIExlbmd0
aCBzdGFydFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFZhbHVlOyB9CisKKyAgICB2b2lk
IHNldFN0YXJ0VmFsdWUoTGVuZ3RoIHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9zdGFydFZhbHVl
ID0gdmFsdWU7CisgICAgfQorCisgICAgTGVuZ3RoIGVuZFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9lbmRWYWx1ZTsgfQorCisgICAgdm9pZCBzZXRFbmRWYWx1ZShMZW5ndGggdmFsdWUpCisgICAg
eworICAgICAgICBtX2VuZFZhbHVlID0gdmFsdWU7CisgICAgfQorCisgICAgYm9vbCBoYXNFbmRW
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzRW5kVmFsdWU7IH0KKworICAgIHZvaWQgc2V0SGFz
RW5kVmFsdWUoYm9vbCB2YWx1ZSkKKyAgICB7CisgICAgICAgIG1faGFzRW5kVmFsdWUgPSB2YWx1
ZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgU2Nyb2xsQW5pbWF0aW9uVHJpZ2dl
cihMZW5ndGggc3RhcnRWYWx1ZSwgTGVuZ3RoIGVuZFZhbHVlLCBib29sIGhhc0VuZFZhbHVlKQor
ICAgICAgICA6IEFuaW1hdGlvblRyaWdnZXIoU2Nyb2xsQW5pbWF0aW9uVHJpZ2dlclR5cGUpCisg
ICAgICAgICwgbV9zdGFydFZhbHVlKHN0YXJ0VmFsdWUpCisgICAgICAgICwgbV9lbmRWYWx1ZShl
bmRWYWx1ZSkKKyAgICAgICAgLCBtX2hhc0VuZFZhbHVlKGhhc0VuZFZhbHVlKQorICAgIHsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QW5pbWF0aW9uVHJpZ2dlcj4gY2xvbmUoKSBj
b25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTY3JvbGxB
bmltYXRpb25UcmlnZ2VyKG1fc3RhcnRWYWx1ZSwgbV9lbmRWYWx1ZSwgbV9oYXNFbmRWYWx1ZSkp
OworICAgIH0KKworICAgIExlbmd0aCBtX3N0YXJ0VmFsdWU7CisgICAgTGVuZ3RoIG1fZW5kVmFs
dWU7CisgICAgYm9vbCBtX2hhc0VuZFZhbHVlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKKworI2VuZGlmIC8vIEFuaW1hdGlvblRyaWdnZXJfaApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQzNGVm
OGYyM2YzYmQ5Y2QwMjFmYTcwZjM4NzE0ZGU4ZGE1MjAwNTQuLjY5NDg4ZWQzOGJiYjI2ODQzYmQy
NzZlMGVmMTg4ZTRkYTkwOGU1MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNS0wMy0xNiAg
RGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgUGFyc2luZyBhbmQgU3R5
bGUgUmVzb2x1dGlvbiBvZiBDb250YWluZXItYmFzZWQgQW5pbWF0aW9uIFRyaWdnZXJzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2ODcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzIwMTcwMDA3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0cyB0aGF0IGV4ZXJjaXNlIHRoZSBwYXJzZXIg
YW5kIGNvbXB1dGVkIHN0eWxlCisgICAgICAgIG9mIC13ZWJraXQtYW5pbWF0aW9uLXRyaWdnZXIu
CisKKyAgICAgICAgKiBhbmltYXRpb25zL3NjcmlwdC10ZXN0cy90cmlnZ2VyLWNvbXB1dGVkLXN0
eWxlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RDb21wdXRlZFRyaWdnZXJSdWxlKToKKyAgICAg
ICAgKiBhbmltYXRpb25zL3NjcmlwdC10ZXN0cy90cmlnZ2VyLXBhcnNpbmcuanM6IEFkZGVkLgor
ICAgICAgICAodGVzdFRyaWdnZXJSdWxlKToKKyAgICAgICAgKiBhbmltYXRpb25zL3RyaWdnZXIt
Y29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb25z
L3RyaWdnZXItY29tcHV0ZWQtc3R5bGUuaHRtbDogQWRkZWQuCisgICAgICAgICogYW5pbWF0aW9u
cy90cmlnZ2VyLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRp
b25zL3RyaWdnZXItcGFyc2luZy5odG1sOiBBZGRlZC4KKwogMjAxNS0wMy0xNCAgTWljaGFlbCBT
YWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBFUzY6IEFkZCBiaW5hcnkgYW5k
IG9jdGFsIGxpdGVyYWwgc3VwcG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9u
cy9zY3JpcHQtdGVzdHMvdHJpZ2dlci1jb21wdXRlZC1zdHlsZS5qcyBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3RyaWdnZXItY29tcHV0ZWQtc3R5bGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTA4YjFjMWIyOWRhYzU0YmU1YWQ5NTAwM2RmMWExNzYwZDFkYTM1ZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc2NyaXB0LXRlc3RzL3RyaWdnZXItY29tcHV0
ZWQtc3R5bGUuanMKQEAgLTAsMCArMSw2NSBAQAorZGVzY3JpcHRpb24oIlRlc3QgdGhlIGNvbXB1
dGVkIHN0eWxlIG9mIHRoZSAtd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyIHByb3BlcnR5LiIpOwor
CisvLyBUaGVzZSBoYXZlIHRvIGJlIGdsb2JhbCBmb3IgdGhlIHRlc3QgaGVscGVycyB0byBzZWUg
dGhlbS4KK3ZhciBzdHlsZXNoZWV0LCB0cmlnZ2VyU3R5bGUsIHN1YlJ1bGU7Cit2YXIgc3R5bGVF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKK2RvY3VtZW50LmhlYWQu
YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTsKK3N0eWxlc2hlZXQgPSBzdHlsZUVsZW1lbnQuc2hl
ZXQ7CisKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZFRyaWdnZXJSdWxlKGRlc2NyaXB0aW9uLCBydWxl
LCBleHBlY3RlZExlbmd0aCwgZXhwZWN0ZWRUZXh0cykKK3sKKyAgICBkZWJ1ZygiIik7CisgICAg
ZGVidWcoZGVzY3JpcHRpb24gKyAiIDogIiArIHJ1bGUpOworCisgICAgc3R5bGVzaGVldC5pbnNl
cnRSdWxlKCJib2R5IHsgLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dlcjogIiArIHJ1bGUgKyAiOyB9
IiwgMCk7CisKKyAgICB0cmlnZ2VyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5ib2R5KS5nZXRQcm9wZXJ0eUNTU1ZhbHVlKCItd2Via2l0LWFuaW1hdGlvbi10cmlnZ2Vy
Iik7CisgICAgc2hvdWxkQmUoInRyaWdnZXJTdHlsZS5sZW5ndGgiLCAiIiArIGV4cGVjdGVkTGVu
Z3RoKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkTGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgc3ViUnVsZSA9IHRyaWdnZXJTdHlsZVtpXTsKKyAgICAgICAgc2hvdWxkQmUoInN1YlJ1
bGUuY3NzVGV4dCIsICInIiArIGV4cGVjdGVkVGV4dHNbaV0gKyAiJyIpOworICAgIH0KKyAgICBz
dHlsZXNoZWV0LmRlbGV0ZVJ1bGUoMCk7Cit9CisKK3Rlc3RDb21wdXRlZFRyaWdnZXJSdWxlKCJB
dXRvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJhdXRvIiwgMSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIFsiYXV0byJdKTsKKwordGVzdENvbXB1dGVkVHJpZ2dlclJ1bGUoIk9uZSBjb250
YWluZXItc2Nyb2xsIHZhbHVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJjb250YWluZXIt
c2Nyb2xsKDEwcHgpIiwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFsiY29udGFpbmVyLXNj
cm9sbCgxMHB4KSJdKTsKKwordGVzdENvbXB1dGVkVHJpZ2dlclJ1bGUoIk9uZSBjb250YWluZXIt
c2Nyb2xsIHZhbHVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJjb250YWluZXItc2Nyb2xs
KDJlbSkiLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgWyJjb250YWluZXItc2Nyb2xsKDMy
cHgpIl0pOworCit0ZXN0Q29tcHV0ZWRUcmlnZ2VyUnVsZSgiT25lIGNvbnRhaW5lci1zY3JvbGwg
dmFsdWUgd2l0aCBlbmQgdmFsdWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRhaW5l
ci1zY3JvbGwoMTBweCwgMjBweCkiLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgWyJjb250
YWluZXItc2Nyb2xsKDEwcHgsIDIwcHgpIl0pOworCit0ZXN0Q29tcHV0ZWRUcmlnZ2VyUnVsZSgi
VHdvIGNvbnRhaW5lci1zY3JvbGwgdmFsdWVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJj
b250YWluZXItc2Nyb2xsKDEwcHgpLCBjb250YWluZXItc2Nyb2xsKDIwcHgpIiwgMiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFsiY29udGFpbmVyLXNjcm9sbCgxMHB4KSIsICJjb250YWluZXIt
c2Nyb2xsKDIwcHgpIl0pOworCit0ZXN0Q29tcHV0ZWRUcmlnZ2VyUnVsZSgiTWFueSBjb250YWlu
ZXItc2Nyb2xsIHZhbHVlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAiY29udGFpbmVyLXNj
cm9sbCgxMHB4KSwgY29udGFpbmVyLXNjcm9sbCgyMHB4KSwgY29udGFpbmVyLXNjcm9sbCgzMHB4
KSwgY29udGFpbmVyLXNjcm9sbCg0MHB4KSwgY29udGFpbmVyLXNjcm9sbCgxcHgpIiwgNSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIFsiY29udGFpbmVyLXNjcm9sbCgxMHB4KSIsICJjb250YWlu
ZXItc2Nyb2xsKDIwcHgpIiwgImNvbnRhaW5lci1zY3JvbGwoMzBweCkiLCAiY29udGFpbmVyLXNj
cm9sbCg0MHB4KSIsICJjb250YWluZXItc2Nyb2xsKDFweCkiXSk7CisKK3Rlc3RDb21wdXRlZFRy
aWdnZXJSdWxlKCJObyB2YWx1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAiIiwgMSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIFsiYXV0byJdKTsKKwordGVzdENvbXB1dGVkVHJpZ2dlclJ1
bGUoIkJhZCB2YWx1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAiYmFuYW5hIiwgMSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIFsiYXV0byJdKTsKKwordGVzdENvbXB1dGVkVHJpZ2dlclJ1
bGUoIk11bHRpcGxlIGJhZCB2YWx1ZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgImJhbmFu
YSwgZWdncywgYmFjb24iLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgWyJhdXRvIl0pOwor
Cit0ZXN0Q29tcHV0ZWRUcmlnZ2VyUnVsZSgiU29tZSBnb29kLCBzb21lIGJhZCB2YWx1ZXMiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRhaW5lci1zY3JvbGwoMTApLCBlZ2dzLCBiYWNv
biIsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICBbImF1dG8iXSk7CisKK3N1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy90cmlnZ2VyLXBhcnNpbmcuanMgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Njcmlw
dC10ZXN0cy90cmlnZ2VyLXBhcnNpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmRkZmJiYTU1NzIyNTExNDNl
M2IxMjBjMDA5MzlmMTExMTMwMGFiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvc2NyaXB0LXRlc3RzL3RyaWdnZXItcGFyc2luZy5qcwpAQCAtMCwwICsxLDgwIEBA
CitkZXNjcmlwdGlvbigiVGVzdCB0aGUgcGFyc2luZyBvZiB0aGUgLXdlYmtpdC1hbmltYXRpb24t
dHJpZ2dlciBwcm9wZXJ0eS4iKTsKKworLy8gVGhlc2UgaGF2ZSB0byBiZSBnbG9iYWwgZm9yIHRo
ZSB0ZXN0IGhlbHBlcnMgdG8gc2VlIHRoZW0uCit2YXIgc3R5bGVzaGVldCwgY3NzUnVsZSwgZGVj
bGFyYXRpb24sIHRyaWdnZXJSdWxlLCBzdWJSdWxlOwordmFyIHN0eWxlRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Citkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0
eWxlRWxlbWVudCk7CitzdHlsZXNoZWV0ID0gc3R5bGVFbGVtZW50LnNoZWV0OworCitmdW5jdGlv
biB0ZXN0VHJpZ2dlclJ1bGUoZGVzY3JpcHRpb24sIHJ1bGUsIGV4cGVjdGVkTGVuZ3RoLCBleHBl
Y3RlZFZhbHVlLCBleHBlY3RlZFRleHRzKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zyhk
ZXNjcmlwdGlvbiArICIgOiAiICsgcnVsZSk7CisKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUo
ImJvZHkgeyAtd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyOiAiICsgcnVsZSArICI7IH0iLCAwKTsK
KyAgICBjc3NSdWxlID0gc3R5bGVzaGVldC5jc3NSdWxlcy5pdGVtKDApOworCisgICAgc2hvdWxk
QmUoImNzc1J1bGUudHlwZSIsICIxIik7CisKKyAgICBkZWNsYXJhdGlvbiA9IGNzc1J1bGUuc3R5
bGU7CisgICAgaWYgKCFleHBlY3RlZExlbmd0aCB8fCAhZXhwZWN0ZWRWYWx1ZSkgeworICAgICAg
ICBzaG91bGRCZSgiZGVjbGFyYXRpb24ubGVuZ3RoIiwgIjAiKTsKKyAgICAgICAgc2hvdWxkQmUo
ImRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLXRyaWdnZXIn
KSIsICJudWxsIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2hvdWxkQmUoImRlY2xh
cmF0aW9uLmxlbmd0aCIsICIxIik7CisgICAgc2hvdWxkQmUoImRlY2xhcmF0aW9uLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtYW5pbWF0aW9uLXRyaWdnZXInKSIsICInIiArIGV4cGVjdGVkVmFs
dWUgKyAiJyIpOworCisgICAgdHJpZ2dlclJ1bGUgPSBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eUNT
U1ZhbHVlKCItd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyIik7CisgICAgaWYgKGV4cGVjdGVkTGVu
Z3RoID4gMSkgeworICAgICAgICBzaG91bGRCZSgidHJpZ2dlclJ1bGUubGVuZ3RoIiwgIiIgKyBl
eHBlY3RlZExlbmd0aCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRMZW5n
dGg7IGkrKykgeworICAgICAgICAgICAgc3ViUnVsZSA9IHRyaWdnZXJSdWxlW2ldOworICAgICAg
ICAgICAgc2hvdWxkQmUoInN1YlJ1bGUuY3NzVGV4dCIsICInIiArIGV4cGVjdGVkVGV4dHNbaV0g
KyAiJyIpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2hvdWxkQmUoInRyaWdn
ZXJSdWxlLmNzc1RleHQiLCAiJyIgKyBleHBlY3RlZFZhbHVlICsgIiciKTsKKyAgICB9CisKKyAg
ICBzdHlsZXNoZWV0LmRlbGV0ZVJ1bGUoMCk7Cit9CisKK2RlYnVnKCIiKQorZGVidWcoIlZhbGlk
IHByb3BlcnR5IHRlc3RzIik7CitkZWJ1ZygiIikKKwordGVzdFRyaWdnZXJSdWxlKCJBdXRvIiwK
KyAgICAgICAgICAgICAgICAiYXV0byIsIDEsICJhdXRvIik7CisKK3Rlc3RUcmlnZ2VyUnVsZSgi
Q29udGFpbmVyIFNjcm9sbCIsCisgICAgICAgICAgICAgICAgImNvbnRhaW5lci1zY3JvbGwoMjAw
cHgpIiwgMSwgImNvbnRhaW5lci1zY3JvbGwoMjAwcHgpIik7CisKK3Rlc3RUcmlnZ2VyUnVsZSgi
Q29udGFpbmVyIFNjcm9sbCIsCisgICAgICAgICAgICAgICAgImNvbnRhaW5lci1zY3JvbGwoMmVt
KSIsIDEsICJjb250YWluZXItc2Nyb2xsKDJlbSkiKTsKKwordGVzdFRyaWdnZXJSdWxlKCJDb250
YWluZXIgU2Nyb2xsIiwKKyAgICAgICAgICAgICAgICAiY29udGFpbmVyLXNjcm9sbCgzMHZ3KSIs
IDEsICJjb250YWluZXItc2Nyb2xsKDMwdncpIik7CisKK3Rlc3RUcmlnZ2VyUnVsZSgiQ29udGFp
bmVyIFNjcm9sbCB3aXRoIGVuZCB2YWx1ZSIsCisgICAgICAgICAgICAgICAgImNvbnRhaW5lci1z
Y3JvbGwoMjAwcHgsIDMwMHB4KSIsIDEsICJjb250YWluZXItc2Nyb2xsKDIwMHB4LCAzMDBweCki
KTsKKwordGVzdFRyaWdnZXJSdWxlKCJUd28gc2Nyb2xsIHZhbHVlcyIsCisgICAgICAgICAgICAg
ICAgImNvbnRhaW5lci1zY3JvbGwoMXB4KSwgY29udGFpbmVyLXNjcm9sbCgycHgpIiwgMiwgImNv
bnRhaW5lci1zY3JvbGwoMXB4KSwgY29udGFpbmVyLXNjcm9sbCgycHgpIiwgWyJjb250YWluZXIt
c2Nyb2xsKDFweCkiLCAiY29udGFpbmVyLXNjcm9sbCgycHgpIl0pOworCit0ZXN0VHJpZ2dlclJ1
bGUoIk1hbnkgc2Nyb2xsIHZhbHVlcyIsCisgICAgICAgICAgICAgICAgImNvbnRhaW5lci1zY3Jv
bGwoMXB4KSwgY29udGFpbmVyLXNjcm9sbCgycHgpLCBjb250YWluZXItc2Nyb2xsKDNweCksIGNv
bnRhaW5lci1zY3JvbGwoNHB4KSwgY29udGFpbmVyLXNjcm9sbCg1cHgpLCBjb250YWluZXItc2Ny
b2xsKDMwMDBweCkiLAorICAgICAgICAgICAgICAgIDYsCisgICAgICAgICAgICAgICAgImNvbnRh
aW5lci1zY3JvbGwoMXB4KSwgY29udGFpbmVyLXNjcm9sbCgycHgpLCBjb250YWluZXItc2Nyb2xs
KDNweCksIGNvbnRhaW5lci1zY3JvbGwoNHB4KSwgY29udGFpbmVyLXNjcm9sbCg1cHgpLCBjb250
YWluZXItc2Nyb2xsKDMwMDBweCkiLAorICAgICAgICAgICAgICAgIFsiY29udGFpbmVyLXNjcm9s
bCgxcHgpIiwgImNvbnRhaW5lci1zY3JvbGwoMnB4KSIsICJjb250YWluZXItc2Nyb2xsKDNweCki
LCAiY29udGFpbmVyLXNjcm9sbCg0cHgpIiwgImNvbnRhaW5lci1zY3JvbGwoNXB4KSIsICJjb250
YWluZXItc2Nyb2xsKDMwMDBweCkiXSk7CisKK2RlYnVnKCIiKQorZGVidWcoIkludmFsaWQgcHJv
cGVydHkgdGVzdHMiKTsKK2RlYnVnKCIiKQorCit0ZXN0VHJpZ2dlclJ1bGUoIk5vIHZhbHVlIiwg
IiIsIDAsIG51bGwpOwordGVzdFRyaWdnZXJSdWxlKCJCYWQgdmFsdWUiLCAiYmFuYW5hIiwgMCwg
bnVsbCk7Cit0ZXN0VHJpZ2dlclJ1bGUoIkJhZCBsaXN0IiwgImNvbnRhaW5lci1zY3JvbGwoMXB4
KSwgb3JhbmdlIiwgMCwgbnVsbCk7Cit0ZXN0VHJpZ2dlclJ1bGUoIk1pc3NpbmcgY29tbWEiLCAi
Y29udGFpbmVyLXNjcm9sbCgxcHgpIGNvbnRhaW5lci1zY3JvbGwoMnB4KSIsIDAsIG51bGwpOwor
dGVzdFRyaWdnZXJSdWxlKCJUb28gbWFueSB2YWx1ZXMiLCAiY29udGFpbmVyLXNjcm9sbCgxcHgs
IDJweCwgM3B4KSIsIDAsIG51bGwpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy90cmlnZ2VyLWNvbXB1dGVkLXN0eWxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvdHJpZ2dlci1jb21wdXRlZC1zdHls
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I4YWY4YzYyODZjN2IxMjRjYjQwYmJjMTA3NDcw
Nzg1ZDFkMDI0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvdHJp
Z2dlci1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NCBAQAorVGVzdCB0
aGUgY29tcHV0ZWQgc3R5bGUgb2YgdGhlIC13ZWJraXQtYW5pbWF0aW9uLXRyaWdnZXIgcHJvcGVy
dHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK0F1dG8gOiBhdXRvCitQQVNT
IHRyaWdnZXJTdHlsZS5sZW5ndGggaXMgMQorUEFTUyBzdWJSdWxlLmNzc1RleHQgaXMgJ2F1dG8n
CisKK09uZSBjb250YWluZXItc2Nyb2xsIHZhbHVlIDogY29udGFpbmVyLXNjcm9sbCgxMHB4KQor
UEFTUyB0cmlnZ2VyU3R5bGUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdj
b250YWluZXItc2Nyb2xsKDEwcHgpJworCitPbmUgY29udGFpbmVyLXNjcm9sbCB2YWx1ZSA6IGNv
bnRhaW5lci1zY3JvbGwoMmVtKQorUEFTUyB0cmlnZ2VyU3R5bGUubGVuZ3RoIGlzIDEKK1BBU1Mg
c3ViUnVsZS5jc3NUZXh0IGlzICdjb250YWluZXItc2Nyb2xsKDMycHgpJworCitPbmUgY29udGFp
bmVyLXNjcm9sbCB2YWx1ZSB3aXRoIGVuZCB2YWx1ZSA6IGNvbnRhaW5lci1zY3JvbGwoMTBweCwg
MjBweCkKK1BBU1MgdHJpZ2dlclN0eWxlLmxlbmd0aCBpcyAxCitQQVNTIHN1YlJ1bGUuY3NzVGV4
dCBpcyAnY29udGFpbmVyLXNjcm9sbCgxMHB4LCAyMHB4KScKKworVHdvIGNvbnRhaW5lci1zY3Jv
bGwgdmFsdWVzIDogY29udGFpbmVyLXNjcm9sbCgxMHB4KSwgY29udGFpbmVyLXNjcm9sbCgyMHB4
KQorUEFTUyB0cmlnZ2VyU3R5bGUubGVuZ3RoIGlzIDIKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlz
ICdjb250YWluZXItc2Nyb2xsKDEwcHgpJworUEFTUyBzdWJSdWxlLmNzc1RleHQgaXMgJ2NvbnRh
aW5lci1zY3JvbGwoMjBweCknCisKK01hbnkgY29udGFpbmVyLXNjcm9sbCB2YWx1ZXMgOiBjb250
YWluZXItc2Nyb2xsKDEwcHgpLCBjb250YWluZXItc2Nyb2xsKDIwcHgpLCBjb250YWluZXItc2Ny
b2xsKDMwcHgpLCBjb250YWluZXItc2Nyb2xsKDQwcHgpLCBjb250YWluZXItc2Nyb2xsKDFweCkK
K1BBU1MgdHJpZ2dlclN0eWxlLmxlbmd0aCBpcyA1CitQQVNTIHN1YlJ1bGUuY3NzVGV4dCBpcyAn
Y29udGFpbmVyLXNjcm9sbCgxMHB4KScKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdjb250YWlu
ZXItc2Nyb2xsKDIwcHgpJworUEFTUyBzdWJSdWxlLmNzc1RleHQgaXMgJ2NvbnRhaW5lci1zY3Jv
bGwoMzBweCknCitQQVNTIHN1YlJ1bGUuY3NzVGV4dCBpcyAnY29udGFpbmVyLXNjcm9sbCg0MHB4
KScKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdjb250YWluZXItc2Nyb2xsKDFweCknCisKK05v
IHZhbHVlIDogCitQQVNTIHRyaWdnZXJTdHlsZS5sZW5ndGggaXMgMQorUEFTUyBzdWJSdWxlLmNz
c1RleHQgaXMgJ2F1dG8nCisKK0JhZCB2YWx1ZSA6IGJhbmFuYQorUEFTUyB0cmlnZ2VyU3R5bGUu
bGVuZ3RoIGlzIDEKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdhdXRvJworCitNdWx0aXBsZSBi
YWQgdmFsdWVzIDogYmFuYW5hLCBlZ2dzLCBiYWNvbgorUEFTUyB0cmlnZ2VyU3R5bGUubGVuZ3Ro
IGlzIDEKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdhdXRvJworCitTb21lIGdvb2QsIHNvbWUg
YmFkIHZhbHVlcyA6IGNvbnRhaW5lci1zY3JvbGwoMTApLCBlZ2dzLCBiYWNvbgorUEFTUyB0cmln
Z2VyU3R5bGUubGVuZ3RoIGlzIDEKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdhdXRvJworUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvdHJpZ2dlci1jb21wdXRlZC1zdHlsZS5odG1sIGIv
TGF5b3V0VGVzdHMvYW5pbWF0aW9ucy90cmlnZ2VyLWNvbXB1dGVkLXN0eWxlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjk1MWQ1NjZjNDEzM2E2M2M1NTg5ZWU5NDBhYWRiZDViYThmODNmOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvdHJpZ2dlci1jb21wdXRlZC1zdHlsZS5o
dG1sCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIEhUTUw+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Ry
aWdnZXItY29tcHV0ZWQtc3R5bGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YW5pbWF0aW9ucy90cmlnZ2VyLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy90cmlnZ2VyLXBhcnNpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyZjUwNmNl
ZDdkYWYyY2ExMzVmZDVhMWZjMmU1MmZjODYwMDMxMGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL3RyaWdnZXItcGFyc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw5MCBAQAorVGVzdCB0aGUgcGFyc2luZyBvZiB0aGUgLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dl
ciBwcm9wZXJ0eS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworVmFsaWQgcHJv
cGVydHkgdGVzdHMKKworCitBdXRvIDogYXV0bworUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQorUEFT
UyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyJykgaXMgJ2F1dG8nCitQQVNTIHRyaWdnZXJS
dWxlLmNzc1RleHQgaXMgJ2F1dG8nCisKK0NvbnRhaW5lciBTY3JvbGwgOiBjb250YWluZXItc2Ny
b2xsKDIwMHB4KQorUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5n
dGggaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWFuaW1h
dGlvbi10cmlnZ2VyJykgaXMgJ2NvbnRhaW5lci1zY3JvbGwoMjAwcHgpJworUEFTUyB0cmlnZ2Vy
UnVsZS5jc3NUZXh0IGlzICdjb250YWluZXItc2Nyb2xsKDIwMHB4KScKKworQ29udGFpbmVyIFNj
cm9sbCA6IGNvbnRhaW5lci1zY3JvbGwoMmVtKQorUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQorUEFT
UyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZh
bHVlKCctd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyJykgaXMgJ2NvbnRhaW5lci1zY3JvbGwoMmVt
KScKK1BBU1MgdHJpZ2dlclJ1bGUuY3NzVGV4dCBpcyAnY29udGFpbmVyLXNjcm9sbCgyZW0pJwor
CitDb250YWluZXIgU2Nyb2xsIDogY29udGFpbmVyLXNjcm9sbCgzMHZ3KQorUEFTUyBjc3NSdWxl
LnR5cGUgaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMQorUEFTUyBkZWNsYXJhdGlv
bi5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyJykgaXMgJ2NvbnRh
aW5lci1zY3JvbGwoMzB2dyknCitQQVNTIHRyaWdnZXJSdWxlLmNzc1RleHQgaXMgJ2NvbnRhaW5l
ci1zY3JvbGwoMzB2dyknCisKK0NvbnRhaW5lciBTY3JvbGwgd2l0aCBlbmQgdmFsdWUgOiBjb250
YWluZXItc2Nyb2xsKDIwMHB4LCAzMDBweCkKK1BBU1MgY3NzUnVsZS50eXBlIGlzIDEKK1BBU1Mg
ZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1
ZSgnLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dlcicpIGlzICdjb250YWluZXItc2Nyb2xsKDIwMHB4
LCAzMDBweCknCitQQVNTIHRyaWdnZXJSdWxlLmNzc1RleHQgaXMgJ2NvbnRhaW5lci1zY3JvbGwo
MjAwcHgsIDMwMHB4KScKKworVHdvIHNjcm9sbCB2YWx1ZXMgOiBjb250YWluZXItc2Nyb2xsKDFw
eCksIGNvbnRhaW5lci1zY3JvbGwoMnB4KQorUEFTUyBjc3NSdWxlLnR5cGUgaXMgMQorUEFTUyBk
ZWNsYXJhdGlvbi5sZW5ndGggaXMgMQorUEFTUyBkZWNsYXJhdGlvbi5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyJykgaXMgJ2NvbnRhaW5lci1zY3JvbGwoMXB4KSwg
Y29udGFpbmVyLXNjcm9sbCgycHgpJworUEFTUyB0cmlnZ2VyUnVsZS5sZW5ndGggaXMgMgorUEFT
UyBzdWJSdWxlLmNzc1RleHQgaXMgJ2NvbnRhaW5lci1zY3JvbGwoMXB4KScKK1BBU1Mgc3ViUnVs
ZS5jc3NUZXh0IGlzICdjb250YWluZXItc2Nyb2xsKDJweCknCisKK01hbnkgc2Nyb2xsIHZhbHVl
cyA6IGNvbnRhaW5lci1zY3JvbGwoMXB4KSwgY29udGFpbmVyLXNjcm9sbCgycHgpLCBjb250YWlu
ZXItc2Nyb2xsKDNweCksIGNvbnRhaW5lci1zY3JvbGwoNHB4KSwgY29udGFpbmVyLXNjcm9sbCg1
cHgpLCBjb250YWluZXItc2Nyb2xsKDMwMDBweCkKK1BBU1MgY3NzUnVsZS50eXBlIGlzIDEKK1BB
U1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDEKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dlcicpIGlzICdjb250YWluZXItc2Nyb2xsKDFw
eCksIGNvbnRhaW5lci1zY3JvbGwoMnB4KSwgY29udGFpbmVyLXNjcm9sbCgzcHgpLCBjb250YWlu
ZXItc2Nyb2xsKDRweCksIGNvbnRhaW5lci1zY3JvbGwoNXB4KSwgY29udGFpbmVyLXNjcm9sbCgz
MDAwcHgpJworUEFTUyB0cmlnZ2VyUnVsZS5sZW5ndGggaXMgNgorUEFTUyBzdWJSdWxlLmNzc1Rl
eHQgaXMgJ2NvbnRhaW5lci1zY3JvbGwoMXB4KScKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdj
b250YWluZXItc2Nyb2xsKDJweCknCitQQVNTIHN1YlJ1bGUuY3NzVGV4dCBpcyAnY29udGFpbmVy
LXNjcm9sbCgzcHgpJworUEFTUyBzdWJSdWxlLmNzc1RleHQgaXMgJ2NvbnRhaW5lci1zY3JvbGwo
NHB4KScKK1BBU1Mgc3ViUnVsZS5jc3NUZXh0IGlzICdjb250YWluZXItc2Nyb2xsKDVweCknCitQ
QVNTIHN1YlJ1bGUuY3NzVGV4dCBpcyAnY29udGFpbmVyLXNjcm9sbCgzMDAwcHgpJworCitJbnZh
bGlkIHByb3BlcnR5IHRlc3RzCisKKworTm8gdmFsdWUgOiAKK1BBU1MgY3NzUnVsZS50eXBlIGlz
IDEKK1BBU1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dlcicpIGlzIG51bGwKKworQmFkIHZh
bHVlIDogYmFuYW5hCitQQVNTIGNzc1J1bGUudHlwZSBpcyAxCitQQVNTIGRlY2xhcmF0aW9uLmxl
bmd0aCBpcyAwCitQQVNTIGRlY2xhcmF0aW9uLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtYW5p
bWF0aW9uLXRyaWdnZXInKSBpcyBudWxsCisKK0JhZCBsaXN0IDogY29udGFpbmVyLXNjcm9sbCgx
cHgpLCBvcmFuZ2UKK1BBU1MgY3NzUnVsZS50eXBlIGlzIDEKK1BBU1MgZGVjbGFyYXRpb24ubGVu
Z3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1hbmlt
YXRpb24tdHJpZ2dlcicpIGlzIG51bGwKKworTWlzc2luZyBjb21tYSA6IGNvbnRhaW5lci1zY3Jv
bGwoMXB4KSBjb250YWluZXItc2Nyb2xsKDJweCkKK1BBU1MgY3NzUnVsZS50eXBlIGlzIDEKK1BB
U1MgZGVjbGFyYXRpb24ubGVuZ3RoIGlzIDAKK1BBU1MgZGVjbGFyYXRpb24uZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1hbmltYXRpb24tdHJpZ2dlcicpIGlzIG51bGwKKworVG9vIG1hbnkgdmFs
dWVzIDogY29udGFpbmVyLXNjcm9sbCgxcHgsIDJweCwgM3B4KQorUEFTUyBjc3NSdWxlLnR5cGUg
aXMgMQorUEFTUyBkZWNsYXJhdGlvbi5sZW5ndGggaXMgMAorUEFTUyBkZWNsYXJhdGlvbi5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWFuaW1hdGlvbi10cmlnZ2VyJykgaXMgbnVsbAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvdHJpZ2dlci1wYXJzaW5nLmh0bWwgYi9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL3RyaWdnZXItcGFyc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjZGZmMDk5MWQ1
NjYwYWM1NzdmOGY3YTU3YTY2OTQ1YTVhZDFkNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL3RyaWdnZXItcGFyc2luZy5odG1sCkBAIC0wLDAgKzEsNiBAQAorPCFE
T0NUWVBFIEhUTUw+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3RyaWdnZXItcGFyc2luZy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cg==
</data>
<flag name="review"
          id="273608"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>