<?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>158032</bug_id>
          
          <creation_ts>2016-05-24 11:36:08 -0700</creation_ts>
          <short_desc>LLInt should be able to cache prototype loads for values in GetById</short_desc>
          <delta_ts>2016-06-02 14:32:56 -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>New Bugs</component>
          <version>WebKit 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>158240</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1195925</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-05-24 11:36:08 -0700</bug_when>
    <thetext>LLInt should be able to cache prototype loads for values in GetById</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195964</commentid>
    <comment_count>1</comment_count>
      <attachid>279687</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-05-24 12:31:14 -0700</bug_when>
    <thetext>Created attachment 279687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195989</commentid>
    <comment_count>2</comment_count>
      <attachid>279696</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-05-24 13:15:47 -0700</bug_when>
    <thetext>Created attachment 279696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195994</commentid>
    <comment_count>3</comment_count>
      <attachid>279696</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-24 13:24:50 -0700</bug_when>
    <thetext>Comment on attachment 279696
Patch

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

I think that this would be even better if it integrated with GetByIdStatus.  Would that be hard?

&gt; Source/JavaScriptCore/bytecode/GetByIdStatus.cpp:81
&gt; +    if (opcode == LLInt::getOpcode(op_get_array_length) || opcode == LLInt::getOpcode(op_try_get_by_id) || opcode == LLInt::getOpcode(op_get_by_id_proto_load))

It would be better if this didn&apos;t bail on op_get_by_id_proto_load.  Can you add a FIXME that links to a bug?

&gt; Source/JavaScriptCore/bytecode/ObjectPropertyConditionSet.h:81
&gt; +    bool isValidAndWatchable() const
&gt; +    {
&gt; +        if (!isValid())
&gt; +            return false;
&gt; +
&gt; +        for (ObjectPropertyCondition condition : m_data-&gt;vector) {
&gt; +            if (!condition.isWatchable())
&gt; +                return false;
&gt; +        }
&gt; +        return true;
&gt; +    }

You should move the body out of line.  Also, I&apos;d call this isWatchable() because if you&apos;re not valid then you&apos;re not watchable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195995</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-05-24 13:26:42 -0700</bug_when>
    <thetext>Needs rebasing.

&gt; Source/JavaScriptCore/bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h:49
&gt; +inline void clearLLIntGetByIdCache(Instruction* instruction)

This belongs in CodeBlock.h.

&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:618
&gt; +    // We know that this pointer will remain valid because it is the prototype of some structure, s,
&gt; +    // watchpointed above. If any object with structure s were to change prototypes then the conditions
&gt; +    // for this cache would fail and this value will never be used again.

It is hard to reason about having a dangling pointer and proving that you won&apos;t use it.

clearLLIntGetByIdCache() should clear this pointer.

Then, you can just point out that this pointer is guarded by a watchpoint, and the watchpoint will set this pointer to nullptr if necessary.

&gt; Source/WTF/wtf/Bag.h:64
&gt; +    Bag(Bag&lt;T&gt;&amp;&amp; other)
&gt; +    {
&gt; +        ASSERT(!m_head);
&gt; +        std::swap(m_head, other.m_head);
&gt; +    }
&gt; +
&gt; +    Bag&amp; operator=(Bag&lt;T&gt;&amp;&amp; other)
&gt; +    {
&gt; +        std::swap(m_head, other.m_head);
&gt; +        return *this;
&gt; +    }

It&apos;s generally bad style to use swap in move construction or assignment. The reason is that order of destruction sometimes matters, and the swap approach produces strange destruction order. It&apos;s possible to convince yourself through analysis that your particular class does not care about order of destruction, but it&apos;s best not to have to do that kind of analysis. I would say instead:

m_head = other.m_head;
other.m_head = nullptr;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196026</commentid>
    <comment_count>5</comment_count>
      <attachid>279703</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-05-24 14:13:55 -0700</bug_when>
    <thetext>Created attachment 279703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196027</commentid>
    <comment_count>6</comment_count>
      <attachid>279704</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-05-24 14:14:19 -0700</bug_when>
    <thetext>Created attachment 279704
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196028</commentid>
    <comment_count>7</comment_count>
      <attachid>279704</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-24 14:15:22 -0700</bug_when>
    <thetext>Comment on attachment 279704
Patch for landing

Rejecting attachment 279704 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 279704, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/JavaScriptCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/1376656</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196030</commentid>
    <comment_count>8</comment_count>
      <attachid>279706</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-05-24 14:15:44 -0700</bug_when>
    <thetext>Created attachment 279706
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196034</commentid>
    <comment_count>9</comment_count>
      <attachid>279708</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-05-24 14:46:51 -0700</bug_when>
    <thetext>Created attachment 279708
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196036</commentid>
    <comment_count>10</comment_count>
      <attachid>279709</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-05-24 14:48:45 -0700</bug_when>
    <thetext>Created attachment 279709
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196037</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-24 14:51:34 -0700</bug_when>
    <thetext>Attachment 279709 did not pass style-queue:


ERROR: Source/JavaScriptCore/CMakeLists.txt:206:  Alphabetical sorting problem. &quot;bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp&quot; should be before &quot;bytecode/LazyOperandValueProfile.cpp&quot;.  [list/order] [5]
Total errors found: 1 in 24 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>1196051</commentid>
    <comment_count>12</comment_count>
      <attachid>279712</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-05-24 15:32:38 -0700</bug_when>
    <thetext>Created attachment 279712
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196078</commentid>
    <comment_count>13</comment_count>
      <attachid>279712</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-24 16:48:50 -0700</bug_when>
    <thetext>Comment on attachment 279712
Patch for landing

Clearing flags on attachment: 279712

Committed r201363: &lt;http://trac.webkit.org/changeset/201363&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196079</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-24 16:48:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197983</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-31 15:32:13 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 158240</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198691</commentid>
    <comment_count>16</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-06-02 14:32:56 -0700</bug_when>
    <thetext>This was rolled back in by http://trac.webkit.org/changeset/201617</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279687</attachid>
            <date>2016-05-24 12:31:14 -0700</date>
            <delta_ts>2016-05-24 13:15:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158032-20160524123225.patch</filename>
            <type>text/plain</type>
            <size>39005</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwOTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
Y2Y3NzVmN2ZjMjY4OGE2ZmFiNjliMmZkZTNiZTE5NzUxYzZlZWNmLi43ZDc4NTMxM2U2YTk3NTMw
NTQwY2U1NWM2MmQxMWFkMTRiYWY3NzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NiBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0byBjYWNoZSBwcm90b3R5cGUg
bG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgcHJvdG90eXBlIHZhbHVlIGNhY2hp
bmcgdG8gdGhlIExMSW50IGZvciBvcF9nZXRfYnlfaWQuCisgICAgICAgIFR3byBwcmV2aW91c2x5
IHVudXNlZCB3b3JkcyBpbiB0aGUgb3BfZ2V0X2J5X2lkIGJ5dGVjb2RlIGhhdmUgYmVlbgorICAg
ICAgICByZXB1cnBvc2VkIHRvIGhvbGQgZXh0cmEgaW5mb3JtYXRpb24gZm9yIHRoZSBjYWNoZS4g
VGhlIGZpcnN0IGlzIGEKKyAgICAgICAgY291bnRlciB0aGF0IHJlY29yZHMgdGhlIG51bWJlciBv
ZiBnZXRfYnlfaWRzIHRoYXQgaGl0IGEgY2FjaGVhYmxlIHZhbHVlCisgICAgICAgIG9uIGEgcHJv
dG90eXBlLiBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVkIGZyb20gb25lIHRvIHplcm8g
d2UKKyAgICAgICAgYXR0ZW1wdCB0byBjYWNoZSB0aGUgcHJvdG90eXBlIGxvYWQsIHdoaWNoIHdp
bGwgYmUgZGlzY3Vzc2VkIGZ1cnRoZXIKKyAgICAgICAgYmVsb3cuIFRoZSBzZWNvbmQgd29yZCBp
cyB1c2VkIHRvIGhvbGQgdGhlIHByb3RvdHlwZSBvYmplY3Qgd2hlbiB3ZSBoYXZlCisgICAgICAg
IHN0YXJ0ZWQgY2FjaGluZy4KKworICAgICAgICBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVu
dGVkIHRvIHplcm8gd2UgZmlyc3QgYXR0ZW1wdCB0byBnZW5lcmF0ZSBhbmQKKyAgICAgICAgd2F0
Y2ggdGhlIHByb3BlcnR5IGNvbmRpdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgdmFsaWRpdHkg
b2YgcHJvdG90eXBlCisgICAgICAgIGxvYWQuIElmIHRoZSB3YXRjaHBvaW50cyBhcmUgc3VjY2Vz
c2Z1bGx5IGNyZWF0ZWQgYW5kIGluc3RhbGxlZCB3ZQorICAgICAgICByZXBsYWNlIHRoZSBvcF9n
ZXRfYnlfaWQgb3Bjb2RlIHdpdGggdGhlIG5ldyBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZAorICAg
ICAgICBvcGNvZGUsIHdoaWNoIHRlbGxzIHRoZSBMTEludCB0byB1c2UgdGhlIGNhY2hlIHByb3Rv
dHlwZSBvYmplY3QgZm9yIHRoZQorICAgICAgICBsb2FkIHJhdGhlciB0aGFuIHRoZSBiYXNlIHZh
bHVlLgorCisgICAgICAgIFByaW9yIHRvIHRoaXMgcGF0Y2ggdGhlcmUgd2FzIG5vdCBMTEludCBz
cGVjaWZpYyBkYXRhIG9uQ29kZUJsb2Nrcy4KKyAgICAgICAgU2luY2UgdGhlIENvZGVCbG9jayBu
ZWVkcyB0byBvd24gdGhlIFdhdGNocG9pbnRzIGZvciB0aGUgY2FjaGUsIGEgd2VhaworICAgICAg
ICBtYXAgZnJvbSBlYWNoIGJhc2Ugc3RydWN0dXJlIHRvIGEgYmFnIG9mIFdhdGNocG9pbnRzIGNy
ZWF0ZWQgZm9yIHRoYXQKKyAgICAgICAgc3RydWN0dXJlIGJ5IHNvbWUgb3BfZ2V0X2J5X2lkIGhh
cyBiZWVuIGFkZGVkIHRvIHRoZSBDb2RlQmxvY2suIER1cmluZworICAgICAgICBHQywgaWYgd2Ug
ZmluZCB0aGF0IHRoZSBhIHN0cnVjdHVyZSBpbiB0aGUgbWFwIGhhcyBub3QgYmVlbiBtYXJrZWQg
d2UKKyAgICAgICAgZnJlZSB0aGUgYXNzb2NpYXRlZCBiYWcgb24gdGhlIENvZGVCbG9jay4KKwor
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAgICAgKiBieXRlY29kZS9C
eXRlY29kZVVzZURlZi5oOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zm
c2V0KToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldCk6CisgICAg
ICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpw
cmludEdldEJ5SWRPcCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJpbnRHZXRCeUlkQ2Fj
aGVTdGF0dXMpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6ZmluYWxpemVMTEludElubGluZUNhY2hlcyk6CisgICAgICAg
ICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6bGxpbnRH
ZXRCeUlkV2F0Y2hwb2ludE1hcCk6CisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHA6CisgICAgICAgIChKU0M6OkdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQpOgorICAg
ICAgICAqIGJ5dGVjb2RlL0xMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2
ZVN0cnVjdHVyZVdhdGNocG9pbnQ6OkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJl
V2F0Y2hwb2ludCk6CisgICAgICAgIChKU0M6OkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3Ry
dWN0dXJlV2F0Y2hwb2ludDo6aW5zdGFsbCk6CisgICAgICAgIChKU0M6OkxMSW50UHJvdG90eXBl
TG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6ZmlyZUludGVybmFsKToKKyAgICAgICAg
KiBieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQu
aDogQWRkZWQuCisgICAgICAgIChKU0M6OmNsZWFyTExJbnRHZXRCeUlkQ2FjaGUpOgorICAgICAg
ICAqIGJ5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcDoKKyAgICAgICAgKiBi
eXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oOgorICAgICAgICAoSlNDOjpPYmpl
Y3RQcm9wZXJ0eUNvbmRpdGlvblNldDo6aXNWYWxpZEFuZFdhdGNoYWJsZSk6CisgICAgICAgICog
Ynl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRHZXRCeUlkKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToK
KyAgICAgICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpj
YXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpK
SVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlU2xvd0Nhc2VzKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6Cisg
ICAgICAgIChKU0M6OkxMSW50OjpzZXR1cEdldEJ5SWRQcm90b3R5cGVDYWNoZSk6CisgICAgICAg
IChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogbGxpbnQvTExJ
bnRTbG93UGF0aHMuaDoKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAg
ICogcnVudGltZS9PcHRpb25zLmg6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2xsaW50LWdldC1i
eS1pZC1jYWNoZS1wcm90b3R5cGUtbG9hZC1mcm9tLWRpY3Rpb25hcnkuanM6IEFkZGVkLgorICAg
ICAgICAodGVzdCk6CisKIDIwMTYtMDUtMTYgIFNhYW0gYmFyYXRpICA8c2JhcmF0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBDbG9vcCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUwZjQ3YzI3
ZWQ5Yjc3NTVkZTExZjRmZWE5YzU0ZjNhODBkMzYwNWUuLjI1MTVkZDIwZDY1ZjY5NTM2ZWM2MDM3
NjJmYTE2MDJiNGY4ZjBjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDUtMjQgIEtlaXRo
IE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgTExJbnQgc2hvdWxk
IGJlIGFibGUgdG8gY2FjaGUgcHJvdG90eXBlIGxvYWRzIGZvciB2YWx1ZXMgaW4gR2V0QnlJZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MDMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG1vdmUg
Y29uc3RydWN0b3JzL2luaXRpYWxpemVycyB0byBCYWdzLgorCisgICAgICAgICogd3RmL0JhZy5o
OgorICAgICAgICAoV1RGOjpCYWc6OkJhZyk6CisgICAgICAgIChXVEY6OkJhZzo6b3BlcmF0b3I9
KToKKwogMjAxNi0wNS0xNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVzZSBtb3JlIHJlZmVyZW5jZXMgaW4gSlMgd3JhcHBlcnMgcmVsYXRlZCBjb2RlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNiYzIxNTBkMWMwNTQ2ODYzZmYwY2Q5ZDQ1ODhl
MjJjYmVhZTgzZDcuLjQ3NjlkMjgyZDdjYmQ1ZWYxN2U4YzNmZWE4ZmExNWVhNzAyZGUyOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTgyLDYgKzExODIsOCBAQAogCQk1Mzkx
N0U3QjFCNzkwNkZBMDAwRUJEMzMgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVG
dW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUzOTE3RTdBMUI3OTA2RTQwMDBFQkQzMyAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
dHlwZUZ1bmN0aW9ucy5oICovOyB9OwogCQk1MzlGQjhCQTFDOTlEQTdDMDA5NDBGQTEgLyogSlNB
cnJheUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUzOUZCOEI5MUM5OURBN0MwMDk0MEZBMSAvKiBKU0FycmF5SW5saW5lcy5oICovOyB9Owog
CQk1M0Y2QkY2RDFDM0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Q
cm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
M0Y2QkY2QzFDM0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9m
aWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NTNGQTJBRTExQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3Ry
dWN0dXJlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTNGQTJBRTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFk
YXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oICovOyB9OworCQk1M0ZBMkFFMzFDRjM4MDM5MDAy
MjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRkEyQUUy
MUNGMzgwMzkwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnQuY3BwICovOyB9OwogCQk1RDVEOEFEMTBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRp
dC5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVENUQ4QUQwMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliICovOyB9OwogCQk1REJC
MTUxQjEzMUQwQjMxMDA1NkFEMzYgLyogdGVzdGFwaS5qcyBpbiBDb3B5IFN1cHBvcnQgU2NyaXB0
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0RDg1Nzc0MEE0Njk2QzgwMDMy
MTQ2QyAvKiB0ZXN0YXBpLmpzICovOyB9OwogCQk1REJCMTUyNTEzMUQwQkQ3MDA1NkFEMzYgLyog
bWluaWRvbS5qcyBpbiBDb3B5IFN1cHBvcnQgU2NyaXB0ICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDE0MTIxMTBEMEE0ODc4ODcwMDQ4MDI1NSAvKiBtaW5pZG9tLmpzICovOyB9
OwpAQCAtMzMzMCw2ICszMzMyLDggQEAKIAkJNTM5RkI4QjkxQzk5REE3QzAwOTQwRkExIC8qIEpT
QXJyYXlJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXJyYXlJ
bmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzRjI1NkUxMUI4N0UyODAw
MEI0Qjc2OCAvKiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0Y2QkY2QzFDM0YwNjBBMDBGNDFFNUQgLyogSW50
ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1M0ZBMkFFMDFDRjM3RjNGMDAyMjcxMUQgLyogTExJbnRQcm90
b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1M0ZBMkFFMjFDRjM4MDM5MDAy
MjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU5M0Q0M0NDQTBCQkUwNkQ4OUM1OTcwNyAvKiBNYXBEYXRhSW5saW5lcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXBEYXRhSW5saW5lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1RDVEOEFEMDBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRpdC5k
eWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9ICJj
b21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGliZWRpdC5keWxpYjsgcGF0aCA9IC91c3Iv
bGliL2xpYmVkaXQuZHlsaWI7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCTVEQUZE
NkNCMTQ2QjY4NjMwMEZCRUZCNCAvKiBKU0MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gSlNDLnhj
Y29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjU5OSw2ICs2NjAzLDggQEAK
IAkJCQkwRkI1NDY3ODE0RjVDNDY4MDAyQzI5ODkgLyogTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUu
Y3BwICovLAogCQkJCTBGQjU0Njc2MTRGNTlBRDEwMDJDMjk4OSAvKiBMYXp5T3BlcmFuZFZhbHVl
UHJvZmlsZS5oICovLAogCQkJCTBGMEZDNDU4MTRCRDE1RjEwMEI4MTE1NCAvKiBMTEludENhbGxM
aW5rSW5mby5oICovLAorCQkJCTUzRkEyQUUyMUNGMzgwMzkwMDIyNzExRCAvKiBMTEludFByb3Rv
dHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwICovLAorCQkJCTUzRkEyQUUw
MUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnQuaCAqLywKIAkJCQkwRkI1NDY3QzE0RjVDRkQzMDAyQzI5ODkgLyogTWV0aG9kT2ZH
ZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAgKi8sCiAJCQkJMEZCNTQ2N0ExNEY1QzdENDAwMkMyOTg5
IC8qIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaCAqLywKIAkJCQkxNENBOTU4QzE2QUI1
MEZBMDA5MzhBMDYgLyogT2JqZWN0QWxsb2NhdGlvblByb2ZpbGUuaCAqLywKQEAgLTc5MzgsNiAr
Nzk0NCw3IEBACiAJCQkJMEZGNzE2OEMxNUEzQjIzNTAwOEY1REFBIC8qIFByb3BlcnR5T2Zmc2V0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1NTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVy
dHlTbG90LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI3RjM5QzE1RUQ4RTQ2MDBGMTY3QjIgLyog
UHJvcGVydHlTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1M0ZBMkFFMTFDRjM3RjNGMDAy
MjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1NjBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvdGVjdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3NEMzM0IxNkFBMkQ5NTAwNjJGMDFEIC8qIFByb3RvdHlw
ZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1NzgwQTIxOEZFMUU5ODAwMUU3MkQ5IC8qIFB1
cmVOYU4uaCBpbiBIZWFkZXJzICovLApAQCAtODY2Miw2ICs4NjY5LDcgQEAKIAkJCQk2NUMwMjg1
MDE3MTc5NUUyMDAzNTFFMzUgLyogQVJNdjdEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNjVDMDI4NUMxNzE3OTY2ODAwMzUxRTM1IC8qIEFSTXY3RE9wY29kZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjgzMzVCNzE2MzlDMUU2MDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0aW9u
UHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1M0ZBMkFFMzFDRjM4MDM5MDAyMjcxMUQg
LyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3QThBRjM0MTdBREI1RjMwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZDOTlENDE4NEVFMzE4MDA5QzEwQUIgLyogQXJyYXlC
dWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QThBRjM2
MTdBREI1RjMwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpz
b24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KaW5k
ZXggYmExOGE3ZTkzYWU0MDIyYTkxYTkzNTFiZjNlMDg0ZjA4NmM1Mjg5OC4uNmJmODc1MGIxOGI1
ZjJlYmJhNTZlZjYzZWExZjYzMmNjMDVjYzM2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpAQCAtNTgsMTEgKzU4LDEyIEBACiAgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF9pc19vYmplY3Rfb3JfbnVsbCIsICJsZW5ndGgiIDogMyB9
LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaXNfZnVuY3Rpb24iLCAibGVuZ3RoIiA6IDMg
fSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2luIiwgImxlbmd0aCIgOiA0IH0sCi0gICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF90cnlfZ2V0X2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCisg
ICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRfYXJyYXlfbGVuZ3RoIiwgImxlbmd0aCIgOiA5
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRfYnlfaWQiLCAibGVuZ3RoIiA6IDkg
IH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZCIsICJs
ZW5ndGgiIDogOSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZ2V0X2J5X2lkX3dpdGhf
dGhpcyIsICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZ2V0X2J5
X3ZhbF93aXRoX3RoaXMiLCAibGVuZ3RoIiA6IDUgfSwKLSAgICAgICAgICAgIHsgIm5hbWUiIDog
Im9wX2dldF9hcnJheV9sZW5ndGgiLCAibGVuZ3RoIiA6IDkgfSwKKyAgICAgICAgICAgIHsgIm5h
bWUiIDogIm9wX3RyeV9nZXRfYnlfaWQiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsg
Im5hbWUiIDogIm9wX3B1dF9ieV9pZCIsICJsZW5ndGgiIDogOSB9LAogICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3BfcHV0X2J5X2lkX3dpdGhfdGhpcyIsICJsZW5ndGgiIDogNSB9LAogICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3BfZGVsX2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IDE0ZTI2
YjgyNzEzZjlkYWI5MGVmMDZlYWJiMjJjODE4YWI3MDBlYTIuLjdiZjA4ODVlYWEzZjE3MmI0NDJl
ODlmMzU5OTBiZDQyZWIxMWYzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZVVzZURlZi5oCkBAIC0xNjAsNiArMTYwLDcgQEAgdm9pZCBjb21wdXRlVXNl
c0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3BfdG9fcHJpbWl0aXZlOgogICAgIGNhc2Ug
b3BfdHJ5X2dldF9ieV9pZDoKICAgICBjYXNlIG9wX2dldF9ieV9pZDoKKyAgICBjYXNlIG9wX2dl
dF9ieV9pZF9wcm90b19sb2FkOgogICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICBj
YXNlIG9wX3R5cGVvZjoKICAgICBjYXNlIG9wX2lzX2VtcHR5OgpAQCAtMzk2LDYgKzM5Nyw3IEBA
IHZvaWQgY29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldChDb2RlQmxvY2sqIGNvZGVCbG9jaywg
Qnl0ZWNvZGVCYXNpY0Jsb2NrKiBibG9jCiAgICAgY2FzZSBvcF9jb25zdHJ1Y3Q6CiAgICAgY2Fz
ZSBvcF90cnlfZ2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAgIGNhc2Ugb3Bf
Z2V0X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWRfd2l0aF90aGlzOgog
ICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlf
bGVuZ3RoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApp
bmRleCA0NTk2NzE1YWM3YjA0MmI4YWM4ZTc4M2ExNTJlMmNkYmFhY2RjMjYzLi5mM2Q3YmU3MzNm
MzQ4Yjk2NTc3NDQ2NTQzM2Y1YjMyYzAyMGQzMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkpT
TGV4aWNhbEVudmlyb25tZW50LmgiCiAjaW5jbHVkZSAiSlNNb2R1bGVFbnZpcm9ubWVudC5oIgog
I2luY2x1ZGUgIkxMSW50RW50cnlwb2ludC5oIgorI2luY2x1ZGUgIkxMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJw
cmV0ZXIuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiUENUb0NvZGVPcmln
aW5NYXAuaCIKQEAgLTM0NSw2ICszNDYsOSBAQCB2b2lkIENvZGVCbG9jazo6cHJpbnRHZXRCeUlk
T3AoUHJpbnRTdHJlYW0mIG91dCwgRXhlY1N0YXRlKiBleGVjLCBpbnQgbG9jYXRpb24sCiAgICAg
Y2FzZSBvcF9nZXRfYnlfaWQ6CiAgICAgICAgIG9wID0gImdldF9ieV9pZCI7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQ6CisgICAgICAgIG9wID0gImdl
dF9ieV9pZF9wcm90b19sb2FkIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBvcF9nZXRfYXJy
YXlfbGVuZ3RoOgogICAgICAgICBvcCA9ICJhcnJheV9sZW5ndGgiOwogICAgICAgICBicmVhazsK
QEAgLTQwNSw2ICs0MDksOCBAQCB2b2lkIENvZGVCbG9jazo6cHJpbnRHZXRCeUlkQ2FjaGVTdGF0
dXMoUHJpbnRTdHJlYW0mIG91dCwgRXhlY1N0YXRlKiBleGVjLCBpbnQgbAogICAgICAgICBvdXQu
cHJpbnRmKCIgbGxpbnQoIik7CiAgICAgICAgIGR1bXBTdHJ1Y3R1cmUob3V0LCAic3RydWN0Iiwg
c3RydWN0dXJlLCBpZGVudCk7CiAgICAgICAgIG91dC5wcmludGYoIikiKTsKKyAgICAgICAgaWYg
KGV4ZWMtPmludGVycHJldGVyKCktPmdldE9wY29kZUlEKGluc3RydWN0aW9uWzBdLnUub3Bjb2Rl
KSA9PSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZCkKKyAgICAgICAgICAgIG91dC5wcmludGYoIiBw
cm90byglcCkiLCBpbnN0cnVjdGlvbls2XS51LnBvaW50ZXIpOwogICAgIH0KIAogI2lmIEVOQUJM
RShKSVQpCkBAIC0xMTEyLDYgKzExMTgsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2Rl
KAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRfYnlf
aWQ6CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAgICAgIGNhc2Ug
b3BfZ2V0X2FycmF5X2xlbmd0aDogewogICAgICAgICAgICAgcHJpbnRHZXRCeUlkT3Aob3V0LCBl
eGVjLCBsb2NhdGlvbiwgaXQpOwogICAgICAgICAgICAgcHJpbnRHZXRCeUlkQ2FjaGVTdGF0dXMo
b3V0LCBleGVjLCBsb2NhdGlvbiwgc3R1YkluZm9zKTsKQEAgLTI3NjQsMTQgKzI3NzEsMTQgQEAg
dm9pZCBDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMoKQogICAgIGZvciAoc2l6
ZV90IHNpemUgPSBwcm9wZXJ0eUFjY2Vzc0luc3RydWN0aW9ucy5zaXplKCksIGkgPSAwOyBpIDwg
c2l6ZTsgKytpKSB7CiAgICAgICAgIEluc3RydWN0aW9uKiBjdXJJbnN0cnVjdGlvbiA9ICZpbnN0
cnVjdGlvbnMoKVtwcm9wZXJ0eUFjY2Vzc0luc3RydWN0aW9uc1tpXV07CiAgICAgICAgIHN3aXRj
aCAoaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKGN1ckluc3RydWN0aW9uWzBdLnUub3Bjb2RlKSkg
ewotICAgICAgICBjYXNlIG9wX2dldF9ieV9pZDogeworICAgICAgICBjYXNlIG9wX2dldF9ieV9p
ZDoKKyAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDogewogICAgICAgICAgICAg
U3RydWN0dXJlSUQgb2xkU3RydWN0dXJlSUQgPSBjdXJJbnN0cnVjdGlvbls0XS51LnN0cnVjdHVy
ZUlEOwogICAgICAgICAgICAgaWYgKCFvbGRTdHJ1Y3R1cmVJRCB8fCBIZWFwOjppc01hcmtlZCht
X3ZtLT5oZWFwLnN0cnVjdHVyZUlEVGFibGUoKS5nZXQob2xkU3RydWN0dXJlSUQpKSkKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkp
CiAgICAgICAgICAgICAgICAgZGF0YUxvZ0YoIkNsZWFyaW5nIExMSW50IHByb3BlcnR5IGFjY2Vz
cy5cbiIpOwotICAgICAgICAgICAgY3VySW5zdHJ1Y3Rpb25bNF0udS5zdHJ1Y3R1cmVJRCA9IDA7
Ci0gICAgICAgICAgICBjdXJJbnN0cnVjdGlvbls1XS51Lm9wZXJhbmQgPSAwOworICAgICAgICAg
ICAgY2xlYXJMTEludEdldEJ5SWRDYWNoZShjdXJJbnN0cnVjdGlvbik7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1dF9ieV9pZDogewpAQCAtMjg0NSw2
ICsyODUyLDEyIEBAIHZvaWQgQ29kZUJsb2NrOjpmaW5hbGl6ZUxMSW50SW5saW5lQ2FjaGVzKCkK
ICAgICAgICAgfQogICAgIH0KIAorICAgIC8vIFdlIGNhbid0IGp1c3QgcmVtb3ZlIGFsbCB0aGUg
c2V0cyB3aGVuIHdlIGNsZWFyIHRoZSBjYWNoZXMgc2luY2Ugd2UgbWlnaHQgaGF2ZSBjcmVhdGVk
IGEgd2F0Y2hwb2ludCBzZXQKKyAgICAvLyB0aGVuIGNsZWFyZWQgdGhlIGNhY2hlIHdpdGhvdXQg
R0NpbmcgaW4gYmV0d2Vlbi4KKyAgICBtX2xsaW50R2V0QnlJZFdhdGNocG9pbnRNYXAucmVtb3Zl
SWYoW10oY29uc3QgU3RydWN0dXJlV2F0Y2hwb2ludE1hcDo6S2V5VmFsdWVQYWlyVHlwZSYgcGFp
cikgLT4gYm9vbCB7CisgICAgICAgIHJldHVybiAhSGVhcDo6aXNNYXJrZWQocGFpci5rZXkpOwor
ICAgIH0pOworCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbGxpbnRDYWxsTGlua0lu
Zm9zLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmIChtX2xsaW50Q2FsbExpbmtJbmZvc1tpXS5p
c0xpbmtlZCgpICYmICFIZWFwOjppc01hcmtlZChtX2xsaW50Q2FsbExpbmtJbmZvc1tpXS5jYWxs
ZWUuZ2V0KCkpKSB7CiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4IGIxNTk3ODkzM2Y1
MTBlOWI3OGY1OWFmZTczZmQ2Nzk1NzAwY2U2YTIuLjgxMDU0OGJlNWY1MTViZTE2NDM2MDFjMzYz
YWNjNGU3Y2FiZjIxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmgKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIkp1bXBUYWJsZS5oIgogI2luY2x1ZGUgIkxMSW50Q2FsbExpbmtJbmZvLmgiCisjaW5j
bHVkZSAiTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgiCiAj
aW5jbHVkZSAiTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuaCIKICNpbmNsdWRlICJPYmplY3RBbGxv
Y2F0aW9uUHJvZmlsZS5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKQEAgLTY3OSw2ICs2ODAsOSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2xsaW50RXhlY3V0ZUNvdW50ZXI7CiAgICAgfQog
CisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cnVjdHVyZSosIEJhZzxMTEludFByb3RvdHlwZUxvYWRB
ZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQ+PiBTdHJ1Y3R1cmVXYXRjaHBvaW50TWFwOworICAg
IFN0cnVjdHVyZVdhdGNocG9pbnRNYXAmIGxsaW50R2V0QnlJZFdhdGNocG9pbnRNYXAoKSB7IHJl
dHVybiBtX2xsaW50R2V0QnlJZFdhdGNocG9pbnRNYXA7IH0KKwogICAgIC8vIEZ1bmN0aW9ucyBm
b3IgY29udHJvbGxpbmcgd2hlbiB0aWVyZWQgY29tcGlsYXRpb24ga2lja3MgaW4uIFRoaXMKICAg
ICAvLyBjb250cm9scyBib3RoIHdoZW4gdGhlIG9wdGltaXppbmcgY29tcGlsZXIgaXMgaW52b2tl
ZCBhbmQgd2hlbiBPU1IKICAgICAvLyBlbnRyeSBoYXBwZW5zLiBUd28gdHJpZ2dlcnMgZXhpc3Q6
IHRoZSBsb29wIHRyaWdnZXIgYW5kIHRoZSByZXR1cm4KQEAgLTEwMjAsNiArMTAyNCw3IEBAIHBy
aXZhdGU6CiAKICAgICBSZWZDb3VudGVkQXJyYXk8TExJbnRDYWxsTGlua0luZm8+IG1fbGxpbnRD
YWxsTGlua0luZm9zOwogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxMTEludENhbGxMaW5rSW5mbywg
QmFzaWNSYXdTZW50aW5lbE5vZGU8TExJbnRDYWxsTGlua0luZm8+PiBtX2luY29taW5nTExJbnRD
YWxsczsKKyAgICBTdHJ1Y3R1cmVXYXRjaHBvaW50TWFwIG1fbGxpbnRHZXRCeUlkV2F0Y2hwb2lu
dE1hcDsKICAgICBSZWZQdHI8SklUQ29kZT4gbV9qaXRDb2RlOwogI2lmIEVOQUJMRShKSVQpCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFJlZ2lzdGVyQXRPZmZzZXRMaXN0PiBtX2NhbGxlZVNhdmVSZWdp
c3RlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJ
ZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1
cy5jcHAKaW5kZXggYzY5NTE0YzU3ZTg5MDNjMDI1YjI1N2ZjMDEzYmUxNzMyYzk0NWMwYi4uMWM3
ZTNmZmUzZGRkMDk4OGNkZjQ0Yjc2ZmJiZjc4MDIxNDFlOGFkNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcApAQCAtNzUsOCArNzUsMTAg
QEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KENvZGVCbG9j
ayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQKICAgICBWTSYgdm0gPSAqcHJvZmlsZWRCbG9jay0+
dm0oKTsKICAgICAKICAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSBwcm9maWxlZEJsb2Nr
LT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnl0ZWNvZGVJbmRleDsKLSAgICAKLSAgICBpZiAo
aW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUgPT0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlf
bGVuZ3RoKSB8fCBpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9w
X3RyeV9nZXRfYnlfaWQpKQorCisgICAgT3Bjb2RlIG9wY29kZSA9IGluc3RydWN0aW9uWzBdLnUu
b3Bjb2RlOworCisgICAgaWYgKG9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9hcnJh
eV9sZW5ndGgpIHx8IG9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX3RyeV9nZXRfYnlfaWQp
IHx8IG9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9wcm90b19sb2FkKSkK
ICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgZmFsc2UpOwogCiAg
ICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBpbnN0cnVjdGlvbls0XS51LnN0cnVjdHVyZUlE
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50UHJvdG90
eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBv
aW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hYmE0MWU1ZDdlYmEzODU2YjRjNDFjYzMxYmE2N2ViMzc2N2I2
ZDFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xM
SW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAKQEAgLTAsMCAr
MSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0
cnVjdHVyZVdhdGNocG9pbnQuaCIKKworI2luY2x1ZGUgIkluc3RydWN0aW9uLmgiCisKK25hbWVz
cGFjZSBKU0MgeworCitMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9p
bnQ6OkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludChjb25zdCBP
YmplY3RQcm9wZXJ0eUNvbmRpdGlvbiYga2V5LCBJbnN0cnVjdGlvbiogZ2V0QnlJZEluc3RydWN0
aW9uKQorICAgIDogbV9rZXkoa2V5KQorICAgICwgbV9nZXRCeUlkSW5zdHJ1Y3Rpb24oZ2V0QnlJ
ZEluc3RydWN0aW9uKQoreworICAgIFJFTEVBU0VfQVNTRVJUKGtleS53YXRjaGluZ1JlcXVpcmVz
U3RydWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoIWtl
eS53YXRjaGluZ1JlcXVpcmVzUmVwbGFjZW1lbnRXYXRjaHBvaW50KCkpOworfQorCit2b2lkIExM
SW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6aW5zdGFsbCgpCit7
CisgICAgUkVMRUFTRV9BU1NFUlQobV9rZXkuaXNXYXRjaGFibGUoKSk7CisKKyAgICBtX2tleS5v
YmplY3QoKS0+c3RydWN0dXJlKCktPmFkZFRyYW5zaXRpb25XYXRjaHBvaW50KHRoaXMpOworfQor
Cit2b2lkIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6Zmly
ZUludGVybmFsKGNvbnN0IEZpcmVEZXRhaWwmIGRldGFpbCkKK3sKKyAgICBpZiAobV9rZXkuaXNX
YXRjaGFibGUoUHJvcGVydHlDb25kaXRpb246OkVuc3VyZVdhdGNoYWJpbGl0eSkpIHsKKyAgICAg
ICAgaW5zdGFsbCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nUHJpbnRT
dHJlYW0gb3V0OworICAgIG91dC5wcmludCgiT2JqZWN0VG9TdHJpbmdWYWx1ZSBBZGFwdGF0aW9u
IG9mICIsIG1fa2V5LCAiIGZhaWxlZDogIiwgZGV0YWlsKTsKKworICAgIFN0cmluZ0ZpcmVEZXRh
aWwgc3RyaW5nRGV0YWlsKG91dC50b0NTdHJpbmcoKS5kYXRhKCkpOworICAgIAorICAgIGNsZWFy
TExJbnRHZXRCeUlkQ2FjaGUobV9nZXRCeUlkSW5zdHJ1Y3Rpb24pOworfQorCit9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTElu
dFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Y2FlNDM2NDNkOTAwYzE5YzFhMWZjNDEzODA4MGQwMjI3
YTNiZmE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0xMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oCkBAIC0wLDAg
KzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludF9oCisj
ZGVmaW5lIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludF9oCisK
KyNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIk9iamVjdFByb3BlcnR5Q29uZGl0
aW9uLmgiCisjaW5jbHVkZSAiV2F0Y2hwb2ludC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xh
c3MgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50IDogcHVibGlj
IFdhdGNocG9pbnQgeworcHVibGljOgorICAgIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3Ry
dWN0dXJlV2F0Y2hwb2ludChjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiYsIEluc3RydWN0
aW9uKik7CisKKyAgICB2b2lkIGluc3RhbGwoKTsKKworcHJvdGVjdGVkOgorICAgIHZvaWQgZmly
ZUludGVybmFsKGNvbnN0IEZpcmVEZXRhaWwmKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBP
YmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBtX2tleTsKKyAgICBJbnN0cnVjdGlvbiogbV9nZXRCeUlk
SW5zdHJ1Y3Rpb247Cit9OworCitpbmxpbmUgdm9pZCBjbGVhckxMSW50R2V0QnlJZENhY2hlKElu
c3RydWN0aW9uKiBpbnN0cnVjdGlvbikKK3sKKyAgICBpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9
IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2J5X2lkKTsKKyAgICBpbnN0cnVjdGlvbls0XS51LnBv
aW50ZXIgPSBudWxscHRyOworICAgIGluc3RydWN0aW9uWzVdLnUucG9pbnRlciA9IG51bGxwdHI7
Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLyogTExJbnRQcm90b3R5cGVMb2Fk
QWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3Bw
CmluZGV4IGQ1NzAwNDAwZjhiMjYzZTVmZjc3NWVmZWY4OGJhNWNiMDlkYjQyMGIuLjRiZDEyMjlh
ZTc3ZGNmNTEyMGZiYzdhYzI0NjE2Nzc5OGJmODEwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0
LmNwcApAQCAtMjU0LDkgKzI1NCwxMSBAQCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBnZW5l
cmF0ZUNvbmRpdGlvbnMoCiAgICAgICAgIC8vIFNpbmNlIHdlJ3JlIGFjY2Vzc2luZyBhIHByb3Rv
dHlwZSByZXBlYXRlZGx5LCBpdCdzIGEgZ29vZCBiZXQgdGhhdCBpdCBzaG91bGQgbm90IGJlCiAg
ICAgICAgIC8vIHRyZWF0ZWQgYXMgYSBkaWN0aW9uYXJ5LgogICAgICAgICBpZiAoc3RydWN0dXJl
LT5pc0RpY3Rpb25hcnkoKSkgewotICAgICAgICAgICAgaWYgKGNvbmN1cnJlbmN5ID09IE1haW5U
aHJlYWQpCisgICAgICAgICAgICBpZiAoY29uY3VycmVuY3kgPT0gTWFpblRocmVhZCkgeworICAg
ICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJG
bGF0dGVuaW5nICIsIHBvaW50ZXJEdW1wKHN0cnVjdHVyZSkpOwogICAgICAgICAgICAgICAgIHN0
cnVjdHVyZS0+ZmxhdHRlbkRpY3Rpb25hcnlTdHJ1Y3R1cmUodm0sIG9iamVjdCk7Ci0gICAgICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCiAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkNhbm5vdCBmbGF0dGVuIGRpY3Rp
b25hcnkgd2hlbiBub3Qgb24gbWFpbiB0aHJlYWQsIHNvIGludmFsaWQuXG4iKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQ6OmludmFsaWQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNv
bmRpdGlvblNldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3Bl
cnR5Q29uZGl0aW9uU2V0LmgKaW5kZXggNzZlOGE5Y2RhODAwNmE5YWFmNTFhNmY4NzI3MDA2MmM3
YTlkOTEzMi4uN2MxNWU4ZTMyOTAwNDY1N2FhMWMyNDc3NzAzMzAxZWQ5MDdmNWJjYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0
aW9uU2V0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3Bl
cnR5Q29uZGl0aW9uU2V0LmgKQEAgLTY3LDYgKzY3LDE4IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIHJldHVybiAhbV9kYXRhIHx8ICFtX2RhdGEtPnZlY3Rvci5pc0VtcHR5KCk7CiAgICAgfQor
CisgICAgYm9vbCBpc1ZhbGlkQW5kV2F0Y2hhYmxlKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlm
ICghaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGZvciAo
T2JqZWN0UHJvcGVydHlDb25kaXRpb24gY29uZGl0aW9uIDogbV9kYXRhLT52ZWN0b3IpIHsKKyAg
ICAgICAgICAgIGlmICghY29uZGl0aW9uLmlzV2F0Y2hhYmxlKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KICAg
ICAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXgg
ZGNlYjgyYTQyMzA4MDhmN2U1MGFlOTFkMWJhOTlkZmQ3NTY0M2NmZS4uYTIzOTAyZjZmMzlhMWYx
MjY3NmNmODllNTAzZjY2M2ZlYzE4YzViYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTI0MTYsNyAr
MjQxNiw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0QnlJZChSZWdp
c3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIGNvCiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKDApOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsKICAgICBpbnN0cnVjdGlvbnMo
KS5hcHBlbmQoMCk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKDApOworICAgIGluc3RydWN0
aW9ucygpLmFwcGVuZChPcHRpb25zOjpwcm90b3R5cGVIaXRDb3VudEZvckxMSW50Q2FjaGluZygp
KTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQocHJvZmlsZSk7CiAgICAgcmV0dXJuIGRzdDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAK
aW5kZXggZDY5MTNjMWE1YWE2Y2UwMmE1MmE1MDE0OGU3NWYzMTcyNDIxNzQ4Yi4uMmMxMjQyYjc1
NzQ5MzQ3OGNlYTc1OTdmNTBkZTA4YjM4MjY5Y2FmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTQxMjksNiArNDEyOSw3IEBAIGJv
b2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgIH0K
IAogICAgICAgICBjYXNlIG9wX2dldF9ieV9pZDoKKyAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWRf
cHJvdG9fbG9hZDoKICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOiB7CiAgICAgICAg
ICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwogICAgICAg
ICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxp
dGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAK
aW5kZXggY2MyZDQ3NDgyNDk3YTJkMzM3MTdmNWI0YzM5MjIxMjhlYTIyNTQxYi4uODM4NGQzNmMx
YWYwZmEzNDY1Y2UxYTI5YTUzN2UyNTkzYmE0MmZlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTU2LDYgKzE1Niw3IEBAIENhcGFiaWxp
dHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29k
ZUJsb2NrLCBJbnN0cnVjCiAgICAgY2FzZSBvcF9wdXRfYnlfdmFsX2RpcmVjdDoKICAgICBjYXNl
IG9wX3RyeV9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgY2FzZSBvcF9n
ZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICBjYXNlIG9wX2dldF9ieV9pZF93aXRoX3RoaXM6CiAg
ICAgY2FzZSBvcF9nZXRfYnlfdmFsX3dpdGhfdGhpczoKICAgICBjYXNlIG9wX2dldF9hcnJheV9s
ZW5ndGg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggMWQ1MGFiYWVlZTg5OWRkNTg4
NzFjNmI3ODFjZjk2N2NjMGJiMjcxYi4uYTQ2MWJhMjRiNjViMTY2ZWQ4NTIyMTc5ZDEyN2Q1MTc5
MjQ2ZWU1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMjQwLDYgKzI0MCw3IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgREVGSU5FX09QKG9w
X2VxX251bGwpCiAgICAgICAgIERFRklORV9PUChvcF90cnlfZ2V0X2J5X2lkKQogICAgICAgICBj
YXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Byb3Rv
X2xvYWQ6CiAgICAgICAgIERFRklORV9PUChvcF9nZXRfYnlfaWQpCiAgICAgICAgIERFRklORV9P
UChvcF9nZXRfYnlfaWRfd2l0aF90aGlzKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X3Zh
bCkKQEAgLTQyNCw2ICs0MjUsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMo
KQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfZXEpCiAgICAgICAgIERFRklORV9TTE9X
Q0FTRV9PUChvcF90cnlfZ2V0X2J5X2lkKQogICAgICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5n
dGg6CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAgICAgIERFRklO
RV9TTE9XQ0FTRV9PUChvcF9nZXRfYnlfaWQpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChv
cF9nZXRfYnlfdmFsKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfaW5zdGFuY2VvZikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4
IDM3NTkxMTM4NjQ4OGM5MzcwYmM5MDlkODcxNmZkYjMyMzE1ZDg2ZTAuLmRlNzMzYjI2NjMxYWI2
YTJmNWY4NTE5OTM3YzQzNjQwOTMyN2UwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtNTAsOSArNTAsMTEgQEAKICNpbmNsdWRlICJK
U1dpdGhTY29wZS5oIgogI2luY2x1ZGUgIkxMSW50Q29tbW9uLmgiCiAjaW5jbHVkZSAiTExJbnRF
eGNlcHRpb25zLmgiCisjaW5jbHVkZSAiTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1
cmVXYXRjaHBvaW50LmgiCiAjaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKICNpbmNsdWRlICJM
b3dMZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKKyNp
bmNsdWRlICJPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oIgogI2luY2x1ZGUgIlByb3RvQ2Fs
bEZyYW1lLmgiCiAjaW5jbHVkZSAiU2hhZG93Q2hpY2tlbi5oIgogI2luY2x1ZGUgIlN0cnVjdHVy
ZVJhcmVEYXRhSW5saW5lcy5oIgpAQCAtNTgxLDYgKzU4Myw0MyBAQCBMTElOVF9TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfdHJ5X2dldF9ieV9pZCkKICAgICBMTElOVF9SRVRVUk4oc2xvdC5nZXRQ
dXJlUmVzdWx0KCkpOwogfQogCitzdGF0aWMgdm9pZCBzZXR1cEdldEJ5SWRQcm90b3R5cGVDYWNo
ZShFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgSW5zdHJ1Y3Rpb24qIHBjLCBKU0NlbGwqIGJhc2VD
ZWxsLCBQcm9wZXJ0eVNsb3QmIHNsb3QsIGNvbnN0IElkZW50aWZpZXImIGlkZW50KQoreworICAg
IENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJsb2NrKCk7CisgICAgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0dXJlKCk7CisKKyAgICBpZiAoc3RydWN0dXJl
LT50eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygpIHx8IHN0cnVjdHVyZS0+aXNE
aWN0aW9uYXJ5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIE9iamVjdFByb3BlcnR5Q29uZGl0
aW9uU2V0IGNvbmRpdGlvbnMgPSBnZW5lcmF0ZUNvbmRpdGlvbnNGb3JQcm90b3R5cGVQcm9wZXJ0
eUhpdCh2bSwgY29kZUJsb2NrLCBleGVjLCBzdHJ1Y3R1cmUsIHNsb3Quc2xvdEJhc2UoKSwgaWRl
bnQuaW1wbCgpKTsKKworICAgIGlmICghY29uZGl0aW9ucy5pc1ZhbGlkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IGludmFsaWRPZmZzZXQ7CisgICAg
Q29kZUJsb2NrOjpTdHJ1Y3R1cmVXYXRjaHBvaW50TWFwJiB3YXRjaHBvaW50TWFwID0gY29kZUJs
b2NrLT5sbGludEdldEJ5SWRXYXRjaHBvaW50TWFwKCk7CisgICAgYXV0byByZXN1bHQgPSB3YXRj
aHBvaW50TWFwLmFkZChzdHJ1Y3R1cmUsIEJhZzxMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0
cnVjdHVyZVdhdGNocG9pbnQ+KCkpOworICAgIGZvciAoT2JqZWN0UHJvcGVydHlDb25kaXRpb24g
Y29uZGl0aW9uIDogY29uZGl0aW9ucykgeworICAgICAgICBpZiAoIWNvbmRpdGlvbi5pc1dhdGNo
YWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoY29uZGl0aW9uLmNvbmRp
dGlvbigpLmtpbmQoKSA9PSBQcm9wZXJ0eUNvbmRpdGlvbjo6UHJlc2VuY2UpCisgICAgICAgICAg
ICBvZmZzZXQgPSBjb25kaXRpb24uY29uZGl0aW9uKCkub2Zmc2V0KCk7CisgICAgICAgIHJlc3Vs
dC5pdGVyYXRvci0+dmFsdWUuYWRkKGNvbmRpdGlvbiwgcGMpLT5pbnN0YWxsKCk7CisgICAgfQor
ICAgIEFTU0VSVChvZmZzZXQgIT0gaW52YWxpZE9mZnNldCk7CisKKyAgICBDb25jdXJyZW50SklU
TG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7CisKKyAgICBwY1swXS51Lm9wY29kZSA9
IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQpOworICAgIHBjWzRdLnUu
c3RydWN0dXJlSUQgPSBzdHJ1Y3R1cmUtPmlkKCk7CisgICAgcGNbNV0udS5vcGVyYW5kID0gb2Zm
c2V0OworICAgIC8vIFdlIGtub3cgdGhhdCB0aGlzIHBvaW50ZXIgd2lsbCByZW1haW4gdmFsaWQg
YmVjYXVzZSBpdCBpcyB0aGUgcHJvdG90eXBlIG9mIHNvbWUgc3RydWN0dXJlLCBzLAorICAgIC8v
IHdhdGNocG9pbnRlZCBhYm92ZS4gSWYgYW55IG9iamVjdCB3aXRoIHN0cnVjdHVyZSBzIHdlcmUg
dG8gY2hhbmdlIHByb3RvdHlwZXMgdGhlbiB0aGUgY29uZGl0aW9ucworICAgIC8vIGZvciB0aGlz
IGNhY2hlIHdvdWxkIGZhaWwgYW5kIHRoaXMgdmFsdWUgd2lsbCBuZXZlciBiZSB1c2VkIGFnYWlu
LgorICAgIHBjWzZdLnUucG9pbnRlciA9IHNsb3Quc2xvdEJhc2UoKTsKK30KKworCiBMTElOVF9T
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKQogewogICAgIExMSU5UX0JFR0lOKCk7
CkBAIC01OTUsMzcgKzYzNCw0MyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0
X2J5X2lkKQogICAgIAogICAgIGlmICghTExJTlRfQUxXQVlTX0FDQ0VTU19TTE9XCiAgICAgICAg
ICYmIGJhc2VWYWx1ZS5pc0NlbGwoKQotICAgICAgICAmJiBzbG90LmlzQ2FjaGVhYmxlKCkKLSAg
ICAgICAgJiYgc2xvdC5zbG90QmFzZSgpID09IGJhc2VWYWx1ZQogICAgICAgICAmJiBzbG90Lmlz
Q2FjaGVhYmxlVmFsdWUoKSkgewotICAgICAgICAKKwogICAgICAgICBKU0NlbGwqIGJhc2VDZWxs
ID0gYmFzZVZhbHVlLmFzQ2VsbCgpOwogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGJh
c2VDZWxsLT5zdHJ1Y3R1cmUoKTsKKyAgICAgICAgaWYgKHNsb3Quc2xvdEJhc2UoKSA9PSBiYXNl
VmFsdWUpIHsKKyAgICAgICAgICAgIC8vIFN0YXJ0IG91dCBieSBjbGVhcmluZyBvdXQgdGhlIG9s
ZCBjYWNoZS4KKyAgICAgICAgICAgIHBjWzBdLnUub3Bjb2RlID0gTExJbnQ6OmdldE9wY29kZShv
cF9nZXRfYnlfaWQpOworICAgICAgICAgICAgcGNbNF0udS5wb2ludGVyID0gbnVsbHB0cjsgLy8g
b2xkIHN0cnVjdHVyZQorICAgICAgICAgICAgcGNbNV0udS5wb2ludGVyID0gbnVsbHB0cjsgLy8g
b2Zmc2V0CisKKyAgICAgICAgICAgIC8vIFByZXZlbnQgdGhlIHByb3RvdHlwZSBjYWNoZSBmcm9t
IGV2ZXIgaGFwcGVuaW5nLgorICAgICAgICAgICAgcGNbN10udS5vcGVyYW5kID0gMDsKICAgICAg
ICAgCi0gICAgICAgIC8vIFN0YXJ0IG91dCBieSBjbGVhcmluZyBvdXQgdGhlIG9sZCBjYWNoZS4K
LSAgICAgICAgcGNbMF0udS5vcGNvZGUgPSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZCk7
Ci0gICAgICAgIHBjWzRdLnUucG9pbnRlciA9IG51bGxwdHI7IC8vIG9sZCBzdHJ1Y3R1cmUKLSAg
ICAgICAgcGNbNV0udS5wb2ludGVyID0gbnVsbHB0cjsgLy8gb2Zmc2V0Ci0gICAgICAgIAotICAg
ICAgICBpZiAoIXN0cnVjdHVyZS0+aXNVbmNhY2hlYWJsZURpY3Rpb25hcnkoKQotICAgICAgICAg
ICAgJiYgIXN0cnVjdHVyZS0+dHlwZUluZm8oKS5wcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKQot
ICAgICAgICAgICAgJiYgIXN0cnVjdHVyZS0+dHlwZUluZm8oKS5uZXdJbXB1cmVQcm9wZXJ0eUZp
cmVzV2F0Y2hwb2ludHMoKSkgewotICAgICAgICAgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIoY29k
ZUJsb2NrKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBs
b2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgaWYgKHN0cnVjdHVyZS0+cHJv
cGVydHlBY2Nlc3Nlc0FyZUNhY2hlYWJsZSgpKSB7CisgICAgICAgICAgICAgICAgdm0uaGVhcC53
cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7CiAKLSAgICAg
ICAgICAgIHBjWzRdLnUuc3RydWN0dXJlSUQgPSBzdHJ1Y3R1cmUtPmlkKCk7Ci0gICAgICAgICAg
ICBwY1s1XS51Lm9wZXJhbmQgPSBzbG90LmNhY2hlZE9mZnNldCgpOwotICAgICAgICB9Ci0gICAg
fQorICAgICAgICAgICAgICAgIHBjWzRdLnUuc3RydWN0dXJlSUQgPSBzdHJ1Y3R1cmUtPmlkKCk7
CisgICAgICAgICAgICAgICAgcGNbNV0udS5vcGVyYW5kID0gc2xvdC5jYWNoZWRPZmZzZXQoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChVTkxJS0VMWShwY1s3XS51Lm9wZXJh
bmQpKSB7CisgICAgICAgICAgICBBU1NFUlQoc2xvdC5zbG90QmFzZSgpICE9IGJhc2VWYWx1ZSk7
CiAKLSAgICBpZiAoIUxMSU5UX0FMV0FZU19BQ0NFU1NfU0xPVworICAgICAgICAgICAgaWYgKCEo
LS1wY1s3XS51Lm9wZXJhbmQpKQorICAgICAgICAgICAgICAgIHNldHVwR2V0QnlJZFByb3RvdHlw
ZUNhY2hlKGV4ZWMsIHZtLCBwYywgYmFzZUNlbGwsIHNsb3QsIGlkZW50KTsKKyAgICAgICAgfQor
ICAgIH0gZWxzZSBpZiAoIUxMSU5UX0FMV0FZU19BQ0NFU1NfU0xPVwogICAgICAgICAmJiBpc0pT
QXJyYXkoYmFzZVZhbHVlKQogICAgICAgICAmJiBpZGVudCA9PSBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkubGVuZ3RoKSB7CiAgICAgICAgIHBjWzBdLnUub3Bjb2RlID0gTExJbnQ6OmdldE9wY29kZShv
cF9nZXRfYXJyYXlfbGVuZ3RoKTsKICAgICAgICAgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUg
PSBjb2RlQmxvY2stPmdldE9yQWRkQXJyYXlQcm9maWxlKHBjIC0gY29kZUJsb2NrLT5pbnN0cnVj
dGlvbnMoKS5iZWdpbigpKTsKICAgICAgICAgYXJyYXlQcm9maWxlLT5vYnNlcnZlU3RydWN0dXJl
KGJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJlKCkpOwogICAgICAgICBwY1s0XS51LmFycmF5
UHJvZmlsZSA9IGFycmF5UHJvZmlsZTsKKworICAgICAgICAvLyBQcmV2ZW50IHRoZSBwcm90b3R5
cGUgY2FjaGUgZnJvbSBldmVyIGhhcHBlbmluZy4KKyAgICAgICAgcGNbN10udS5vcGVyYW5kID0g
MDsKICAgICB9CiAKICAgICBwY1tPUENPREVfTEVOR1RIKG9wX2dldF9ieV9pZCkgLSAxXS51LnBy
b2ZpbGUtPm1fYnVja2V0c1swXSA9IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAppbmRleCBlM2Q0MWU0NTgyN2Zi
MGRjNWJmZDUxNWU2MzA3YzIxMTAzYTAzZjM2Li5jYjk2NzM2NjUxMjIxODViZjlkZWVlODE5NTk2
NDZjMjk5NTY1MjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaApAQCAtNzEsNiArNzEsNyBAQCBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xv
d19wYXRoX2luc3RhbmNlb2YpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9pbnN0YW5jZW9mX2N1c3RvbSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19w
YXRoX3RyeV9nZXRfYnlfaWQpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9nZXRfYnlfaWQpOworTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRf
YnlfaWRfcHJvdG9fbG9hZCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRo
X2dldF9hcmd1bWVudHNfbGVuZ3RoKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfcHV0X2J5X2lkKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
ZGVsX2J5X2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggNTJlMGI0NTFiYzgxMzIyMDQ0ODNkZWQ3
NTQxNzkxZDE5MWM2NzMzNC4uOThlZWE0ZmNmZWFlMGZhOGY5ZTI4ODQ5ZTRlY2ExOTY1ZGQ4Zjlj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTEzMzQsMTAgKzEzMzQsMTEgQEAgZW5kCiAKIAogIyBX
ZSBvbmx5IGRvIG1vbm9tb3JwaGljIGdldF9ieV9pZCBjYWNoaW5nIGZvciBub3csIGFuZCB3ZSBk
byBub3QgbW9kaWZ5IHRoZQotIyBvcGNvZGUuIFdlIGRvLCBob3dldmVyLCBhbGxvdyBmb3IgdGhl
IGNhY2hlIHRvIGNoYW5nZSBhbnl0aW1lIGlmIGZhaWxzLCBzaW5jZQotIyBwaW5nLXBvbmdpbmcg
aXMgZnJlZS4gQXQgYmVzdCB3ZSBnZXQgbHVja3kgYW5kIHRoZSBnZXRfYnlfaWQgd2lsbCBjb250
aW51ZQorIyBvcGNvZGUgZm9yIG93biBwcm9wZXJ0aWVzLiBXZSBhbHNvIGFsbG93IGZvciB0aGUg
Y2FjaGUgdG8gY2hhbmdlIGFueXRpbWUgaXQgZmFpbHMsCisjIHNpbmNlIHBpbmctcG9uZ2luZyBp
cyBmcmVlLiBBdCBiZXN0IHdlIGdldCBsdWNreSBhbmQgdGhlIGdldF9ieV9pZCB3aWxsIGNvbnRp
bnVlCiAjIHRvIHRha2UgZmFzdCBwYXRoIG9uIHRoZSBuZXcgY2FjaGUuIEF0IHdvcnN0IHdlIHRh
a2Ugc2xvdyBwYXRoLCB3aGljaCBpcyB3aGF0Ci0jIHdlIHdvdWxkIGhhdmUgYmVlbiBkb2luZyBh
bnl3YXkuCisjIHdlIHdvdWxkIGhhdmUgYmVlbiBkb2luZyBhbnl3YXkuIEZvciBwcm90b3R5cGUg
cHJvcGVydGllcywgd2Ugd2lsbCBhdHRlbXB0IHRvCisjIGNvbnZlcnQgb3Bjb2RlIGludG8gYSBn
ZXRfYnlfaWRfcHJvdG9fbG9hZCBhZnRlciBhIGV4ZWN1dGlvbiBjb3VudGVyIGhpdHMgemVyby4K
IAogX2xsaW50X29wX2dldF9ieV9pZDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCkBAIC0xMzU4LDYg
KzEzNTksMjcgQEAgX2xsaW50X29wX2dldF9ieV9pZDoKICAgICBkaXNwYXRjaCg5KQogCiAKKwor
X2xsaW50X29wX2dldF9ieV9pZF9wcm90b19sb2FkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBsb2FkaSA4W1BDXSwgdDAKKyAgICBsb2FkaSAxNltQQ10sIHQxCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZVBheWxvYWQodDAsIENlbGxUYWcsIHQzLCAub3BHZXRCeUlkUHJvdG9TbG93KQor
ICAgIGxvYWRpIDIwW1BDXSwgdDIKKyAgICBiaW5lcSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNd
LCB0MSwgLm9wR2V0QnlJZFByb3RvU2xvdworICAgIGxvYWRwRnJvbUluc3RydWN0aW9uKDYsIHQz
KQorICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCisgICAg
bG9hZGkgNFtQQ10sIHQyCisgICAgc3RvcmVpIHQwLCBUYWdPZmZzZXRbY2ZyLCB0MiwgOF0KKyAg
ICBzdG9yZWkgdDEsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MiwgOF0KKyAgICB2YWx1ZVByb2ZpbGUo
dDAsIHQxLCAzMiwgdDIpCisgICAgZGlzcGF0Y2goOSkKKworLm9wR2V0QnlJZFByb3RvU2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfaWQpCisgICAgZGlzcGF0
Y2goOSkKKworCiBfbGxpbnRfb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICB0cmFjZUV4ZWN1dGlv
bigpCiAgICAgbG9hZGkgOFtQQ10sIHQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IGVhNWUyOGI5MDYwMzg4NDQ2
MTAxYWUzZjFkODg1ZTA1NDEyYTAwOTYuLmJlN2RiOWI0MWNjODBiMTAzNThkNDRkMDFhODgwODlm
MDZiNGEwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xMjMyLDYgKzEyMzIsMjYgQEAgX2xsaW50X29wX2dl
dF9ieV9pZDoKICAgICBkaXNwYXRjaCg5KQogCiAKK19sbGludF9vcF9nZXRfYnlfaWRfcHJvdG9f
bG9hZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDIs
IHQwKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQwLCB0MywgLm9wR2V0QnlJZFBy
b3RvU2xvdykKKyAgICBsb2FkaSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNdLCB0MQorICAgIGxv
YWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MikKKyAgICBiaW5lcSB0MiwgdDEsIC5vcEdldEJ5SWRQ
cm90b1Nsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNSwgdDEpCisgICAgbG9hZHBGcm9t
SW5zdHJ1Y3Rpb24oNiwgdDMpCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQyKQorICAg
IGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDEsIHQzLCB0MCkKKyAgICBzdG9yZXEgdDAs
IFtjZnIsIHQyLCA4XQorICAgIHZhbHVlUHJvZmlsZSh0MCwgOCwgdDEpCisgICAgZGlzcGF0Y2go
OSkKKworLm9wR2V0QnlJZFByb3RvU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9nZXRfYnlfaWQpCisgICAgZGlzcGF0Y2goOSkKKworCiBfbGxpbnRfb3BfZ2V0X2FycmF5
X2xlbmd0aDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9u
KDIsIHQwKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IGM3NTRl
ODE4MjA3ZDc2YzIxOTE5ZTAyZWE4M2I1ZDI4ZDY3ZmFkNDIuLjhiMzk5ODk0M2I1MzA0ZWIyMjM2
YzFjYmQ2YWZiYmYzMzY3ZTQ2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmgKQEAgLTM2Miw2ICszNjIsOCBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0cmlu
ZzsKICAgICBcCiAgICAgdihib29sLCB1c2VJQ1N0YXRzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRy
KSBcCiAgICAgXAorICAgIHYodW5zaWduZWQsIHByb3RvdHlwZUhpdENvdW50Rm9yTExJbnRDYWNo
aW5nLCAyLCBOb3JtYWwsICJOdW1iZXIgb2YgcHJvdG90eXBlIHByb3BlcnR5IGhpdHMgYmVmb3Jl
IGNhY2hpbmcgYSBwcm90b3R5cGUgaW4gdGhlIExMSW50LiBBIGNvdW50IG9mIDAgbWVhbnMgbmV2
ZXIgY2FjaGUuIikgXAorICAgIFwKICAgICB2KGJvb2wsIGR1bXBNb2R1bGVSZWNvcmQsIGZhbHNl
LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIGR1bXBNb2R1bGVMb2FkaW5nU3RhdGUs
IGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIGV4cG9zZUludGVybmFsTW9k
dWxlTG9hZGVyLCBmYWxzZSwgTm9ybWFsLCAiZXhwb3NlIHRoZSBpbnRlcm5hbCBtb2R1bGUgbG9h
ZGVyIG9iamVjdCB0byB0aGUgZ2xvYmFsIHNwYWNlIGZvciBkZWJ1Z2dpbmciKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2xsaW50LWdldC1ieS1pZC1j
YWNoZS1wcm90b3R5cGUtbG9hZC1mcm9tLWRpY3Rpb25hcnkuanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2xsaW50LWdldC1ieS1pZC1jYWNoZS1wcm90b3R5cGUtbG9hZC1m
cm9tLWRpY3Rpb25hcnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRhMjdlMWEyMzExMjgyODgxYjQyNWIyYTI3
ODc1Y2RjMjNhZTA0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvbGxpbnQtZ2V0LWJ5LWlkLWNhY2hlLXByb3RvdHlwZS1sb2FkLWZyb20tZGlj
dGlvbmFyeS5qcwpAQCAtMCwwICsxLDE5IEBACisKK2V4cGVjdGVkID0gT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZzsKK2ZvbyA9IHtmb286IDEsIGJhcjogMjB9OworZGVsZXRlIGZvby5iYXI7CisK
KworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQgdG9TdHJpbmcgPSBmb28udG9TdHJpbmc7Cisg
ICAgaWYgKHRvU3RyaW5nICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7
Cit9CisKK2ZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKQorICAgIHRlc3QoKTsKKworZm9vLnRvU3Ry
aW5nID0gMTAwOworZXhwZWN0ZWQgPSAxMDA7CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0JhZy5oIGIvU291cmNlL1dURi93dGYvQmFnLmgKaW5kZXggZGI1MTEzMjZiMjYw
NTk3MjE0MTcxYzUzOWMxOTZiYjE2NDU4ZjEzMy4uNzZhOWYxNzAwNzVkNTUyMGNlODM4NTMzM2Qw
MjFlZjVhZDZmMWNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQmFnLmgKKysrIGIvU291
cmNlL1dURi93dGYvQmFnLmgKQEAgLTQ4LDkgKzQ4LDIwIEBAIHByaXZhdGU6CiAgICAgCiBwdWJs
aWM6CiAgICAgQmFnKCkKLSAgICAgICAgOiBtX2hlYWQobnVsbHB0cikKICAgICB7CiAgICAgfQor
CisgICAgQmFnKEJhZzxUPiYmIG90aGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX2hlYWQp
OworICAgICAgICBzdGQ6OnN3YXAobV9oZWFkLCBvdGhlci5tX2hlYWQpOworICAgIH0KKworICAg
IEJhZyYgb3BlcmF0b3I9KEJhZzxUPiYmIG90aGVyKQorICAgIHsKKyAgICAgICAgc3RkOjpzd2Fw
KG1faGVhZCwgb3RoZXIubV9oZWFkKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KICAg
ICAKICAgICB+QmFnKCkKICAgICB7CkBAIC0xMjEsNyArMTMyLDcgQEAgcHVibGljOgogICAgIGJv
b2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2hlYWQ7IH0KICAgICAKIHByaXZhdGU6Ci0g
ICAgTm9kZSogbV9oZWFkOworICAgIE5vZGUqIG1faGVhZCB7IG51bGxwdHIgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279696</attachid>
            <date>2016-05-24 13:15:47 -0700</date>
            <delta_ts>2016-05-24 14:13:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158032-20160524131657.patch</filename>
            <type>text/plain</type>
            <size>39036</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MTFlOWQ0YjZjOTBjYTAxMDdiMmYzN2U2MDRmYjM4OWY2Y2ViYTFjLi42ODhmMTcxM2JjYTg4Yzlk
ODRmNGZhZGQzODI3ODNjNDc4OTNiOTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NSBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0byBjYWNoZSBwcm90b3R5cGUg
bG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgcHJvdG90eXBlIHZhbHVlIGNhY2hp
bmcgdG8gdGhlIExMSW50IGZvciBvcF9nZXRfYnlfaWQuCisgICAgICAgIFR3byBwcmV2aW91c2x5
IHVudXNlZCB3b3JkcyBpbiB0aGUgb3BfZ2V0X2J5X2lkIGJ5dGVjb2RlIGhhdmUgYmVlbgorICAg
ICAgICByZXB1cnBvc2VkIHRvIGhvbGQgZXh0cmEgaW5mb3JtYXRpb24gZm9yIHRoZSBjYWNoZS4g
VGhlIGZpcnN0IGlzIGEKKyAgICAgICAgY291bnRlciB0aGF0IHJlY29yZHMgdGhlIG51bWJlciBv
ZiBnZXRfYnlfaWRzIHRoYXQgaGl0IGEgY2FjaGVhYmxlIHZhbHVlCisgICAgICAgIG9uIGEgcHJv
dG90eXBlLiBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVkIGZyb20gb25lIHRvIHplcm8g
d2UKKyAgICAgICAgYXR0ZW1wdCB0byBjYWNoZSB0aGUgcHJvdG90eXBlIGxvYWQsIHdoaWNoIHdp
bGwgYmUgZGlzY3Vzc2VkIGZ1cnRoZXIKKyAgICAgICAgYmVsb3cuIFRoZSBzZWNvbmQgd29yZCBp
cyB1c2VkIHRvIGhvbGQgdGhlIHByb3RvdHlwZSBvYmplY3Qgd2hlbiB3ZSBoYXZlCisgICAgICAg
IHN0YXJ0ZWQgY2FjaGluZy4KKworICAgICAgICBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVu
dGVkIHRvIHplcm8gd2UgZmlyc3QgYXR0ZW1wdCB0byBnZW5lcmF0ZSBhbmQKKyAgICAgICAgd2F0
Y2ggdGhlIHByb3BlcnR5IGNvbmRpdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgdmFsaWRpdHkg
b2YgcHJvdG90eXBlCisgICAgICAgIGxvYWQuIElmIHRoZSB3YXRjaHBvaW50cyBhcmUgc3VjY2Vz
c2Z1bGx5IGNyZWF0ZWQgYW5kIGluc3RhbGxlZCB3ZQorICAgICAgICByZXBsYWNlIHRoZSBvcF9n
ZXRfYnlfaWQgb3Bjb2RlIHdpdGggdGhlIG5ldyBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZAorICAg
ICAgICBvcGNvZGUsIHdoaWNoIHRlbGxzIHRoZSBMTEludCB0byB1c2UgdGhlIGNhY2hlIHByb3Rv
dHlwZSBvYmplY3QgZm9yIHRoZQorICAgICAgICBsb2FkIHJhdGhlciB0aGFuIHRoZSBiYXNlIHZh
bHVlLgorCisgICAgICAgIFByaW9yIHRvIHRoaXMgcGF0Y2ggdGhlcmUgd2FzIG5vdCBMTEludCBz
cGVjaWZpYyBkYXRhIG9uQ29kZUJsb2Nrcy4KKyAgICAgICAgU2luY2UgdGhlIENvZGVCbG9jayBu
ZWVkcyB0byBvd24gdGhlIFdhdGNocG9pbnRzIGZvciB0aGUgY2FjaGUsIGEgd2VhaworICAgICAg
ICBtYXAgZnJvbSBlYWNoIGJhc2Ugc3RydWN0dXJlIHRvIGEgYmFnIG9mIFdhdGNocG9pbnRzIGNy
ZWF0ZWQgZm9yIHRoYXQKKyAgICAgICAgc3RydWN0dXJlIGJ5IHNvbWUgb3BfZ2V0X2J5X2lkIGhh
cyBiZWVuIGFkZGVkIHRvIHRoZSBDb2RlQmxvY2suIER1cmluZworICAgICAgICBHQywgaWYgd2Ug
ZmluZCB0aGF0IHRoZSBhIHN0cnVjdHVyZSBpbiB0aGUgbWFwIGhhcyBub3QgYmVlbiBtYXJrZWQg
d2UKKyAgICAgICAgZnJlZSB0aGUgYXNzb2NpYXRlZCBiYWcgb24gdGhlIENvZGVCbG9jay4KKwor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246CisgICAgICAgICogYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNl
dCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJp
bnRHZXRCeUlkT3ApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnByaW50R2V0QnlJZENhY2hl
U3RhdHVzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMpOgorICAgICAgICAq
IGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmxsaW50R2V0
QnlJZFdhdGNocG9pbnRNYXApOgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3Bw
OgorICAgICAgICAoSlNDOjpHZXRCeUlkU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KToKKyAgICAg
ICAgKiBieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9p
bnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVT
dHJ1Y3R1cmVXYXRjaHBvaW50OjpMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnQpOgorICAgICAgICAoSlNDOjpMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnQ6Omluc3RhbGwpOgorICAgICAgICAoSlNDOjpMTEludFByb3RvdHlwZUxv
YWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQ6OmZpcmVJbnRlcm5hbCk6CisgICAgICAgICog
Ynl0ZWNvZGUvTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50Lmg6
IEFkZGVkLgorICAgICAgICAoSlNDOjpjbGVhckxMSW50R2V0QnlJZENhY2hlKToKKyAgICAgICAg
KiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHA6CisgICAgICAgICogYnl0
ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuaDoKKyAgICAgICAgKEpTQzo6T2JqZWN0
UHJvcGVydHlDb25kaXRpb25TZXQ6OmlzVmFsaWRBbmRXYXRjaGFibGUpOgorICAgICAgICAqIGJ5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0R2V0QnlJZCk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6Cisg
ICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2Fw
YWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklU
Ojpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29t
cGlsZVNsb3dDYXNlcyk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAg
ICAgICAoSlNDOjpMTEludDo6c2V0dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUpOgorICAgICAgICAo
SlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIGxsaW50L0xMSW50
U2xvd1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAq
IHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9sbGludC1nZXQtYnkt
aWQtY2FjaGUtcHJvdG90eXBlLWxvYWQtZnJvbS1kaWN0aW9uYXJ5LmpzOiBBZGRlZC4KKyAgICAg
ICAgKHRlc3QpOgorCiAyMDE2LTA1LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpd2VkLCBhZGQgYSBjb21tZW50IHRvIGRlc2NyaWJlIHRoZSB0ZXN0
J3MgZmFpbHVyZSBtb2RlLiBTdWdnZXN0ZWQgYnkgbWxhbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2Y4NDI4MjA1ZjhiNzA3
NGJiYjg0YWM2ODdiOTJlZGYyNDQ5MDk2Ny4uNzY2OWNlZGEzOGU3ZTg3MDE5YjhkMWU2NmI2NTA2
M2U3NmJjOTU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVy
ICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJs
ZSB0byBjYWNoZSBwcm90b3R5cGUgbG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbW92ZSBjb25zdHJ1
Y3RvcnMvaW5pdGlhbGl6ZXJzIHRvIEJhZ3MuCisKKyAgICAgICAgKiB3dGYvQmFnLmg6CisgICAg
ICAgIChXVEY6OkJhZzo6QmFnKToKKyAgICAgICAgKFdURjo6QmFnOjpvcGVyYXRvcj0pOgorCiAy
MDE2LTA1LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNl
IGF1dG8gZm9yIHNvbWUgb2Ygb3VyIGxhbWJkYSBmdW5jdGlvbiBwYXJhbWV0ZXJzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhjODkyNWM2ZDNhNWY4MzhkY2M2MDRjYzE1MjEzMDVl
ZDE0MjEwYWUuLjNlMjc3YTljMTFjOTU0YjgwYzdmYmY2YjRmZjJiYzVmYTY2Mjk1ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTgxLDYgKzExODEsOCBAQAogCQk1MzcwQjRG
NjFCRjI2MjA1MDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBv
aW50QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTM3MEI0RjQxQkYyNUVBMjAwNUM0MEZDIC8qIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVl
V2F0Y2hwb2ludEJhc2UuaCAqLzsgfTsKIAkJNTM5MTdFN0IxQjc5MDZGQTAwMEVCRDMzIC8qIEpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzkxN0U3QTFCNzkwNkU0MDAwRUJEMzMg
LyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCAqLzsgfTsKIAkJ
NTNGNkJGNkQxQzNGMDYwQTAwRjQxRTVEIC8qIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJv
ZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNG
NkJGNkMxQzNGMDYwQTAwRjQxRTVEIC8qIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmls
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUz
RkEyQUUxMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzRkEyQUUwMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFw
dGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCAqLzsgfTsKKwkJNTNGQTJBRTMxQ0YzODAzOTAwMjI3
MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0ZBMkFFMjFD
RjM4MDM5MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRj
aHBvaW50LmNwcCAqLzsgfTsKIAkJNUQ1RDhBRDEwRTBEMEVCRTAwRjlDNjkyIC8qIGxpYmVkaXQu
ZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
RDVEOEFEMDBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRpdC5keWxpYiAqLzsgfTsKIAkJNURCQjE1
MUIxMzFEMEIzMTAwNTZBRDM2IC8qIHRlc3RhcGkuanMgaW4gQ29weSBTdXBwb3J0IFNjcmlwdCAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEQ4NTc3NDBBNDY5NkM4MDAzMjE0
NkMgLyogdGVzdGFwaS5qcyAqLzsgfTsKIAkJNURCQjE1MjUxMzFEMEJENzAwNTZBRDM2IC8qIG1p
bmlkb20uanMgaW4gQ29weSBTdXBwb3J0IFNjcmlwdCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDEyMTEwRDBBNDg3ODg3MDA0ODAyNTUgLyogbWluaWRvbS5qcyAqLzsgfTsK
QEAgLTMzMjEsNiArMzMyMyw4IEBACiAJCTUzOTE3RTgzMUI3OTFDQjgwMDBFQkQzMyAvKiBUeXBl
ZEFycmF5UHJvdG90eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gVHlwZWRBcnJheVByb3RvdHlwZS5qczsgcGF0aCA9IGJ1aWx0aW5zL1R5cGVkQXJyYXlQcm90
b3R5cGUuanM7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNTNGMjU2RTExQjg3RTI4
MDAwQjRCNzY4IC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzRjZCRjZDMUMzRjA2MEEwMEY0MUU1RCAvKiBJ
bnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzRkEyQUUwMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFBy
b3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRj
aHBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzRkEyQUUyMUNGMzgwMzkw
MDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTExJbnRQcm90b3R5cGVM
b2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTkzRDQzQ0NBMEJCRTA2RDg5QzU5NzA3IC8qIE1hcERhdGFJbmxpbmVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcERhdGFJbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENUQ4QUQwMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0
LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
ImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJlZGl0LmR5bGliOyBwYXRoID0gL3Vz
ci9saWIvbGliZWRpdC5keWxpYjsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJNURB
RkQ2Q0IxNDZCNjg2MzAwRkJFRkI0IC8qIEpTQy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBKU0Mu
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTc1LDYgKzY1NzksOCBA
QAogCQkJCTBGQjU0Njc4MTRGNUM0NjgwMDJDMjk4OSAvKiBMYXp5T3BlcmFuZFZhbHVlUHJvZmls
ZS5jcHAgKi8sCiAJCQkJMEZCNTQ2NzYxNEY1OUFEMTAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmggKi8sCiAJCQkJMEYwRkM0NTgxNEJEMTVGMTAwQjgxMTU0IC8qIExMSW50Q2Fs
bExpbmtJbmZvLmggKi8sCisJCQkJNTNGQTJBRTIxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50UHJv
dG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgKi8sCisJCQkJNTNGQTJB
RTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJl
V2F0Y2hwb2ludC5oICovLAogCQkJCTBGQjU0NjdDMTRGNUNGRDMwMDJDMjk4OSAvKiBNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlLmNwcCAqLywKIAkJCQkwRkI1NDY3QTE0RjVDN0Q0MDAyQzI5
ODkgLyogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oICovLAogCQkJCTE0Q0E5NThDMTZB
QjUwRkEwMDkzOEEwNiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oICovLApAQCAtNzkxMCw2
ICs3OTE2LDcgQEAKIAkJCQkwRkY3MTY4QzE1QTNCMjM1MDA4RjVEQUEgLyogUHJvcGVydHlPZmZz
ZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDU1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9w
ZXJ0eVNsb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzlDMTVFRDhFNDYwMEYxNjdCMiAv
KiBQcm9wZXJ0eVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTUzRkEyQUUxMUNGMzdGM0Yw
MDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDU2MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm90ZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDc0QzMzQjE2QUEyRDk1MDA2MkYwMUQgLyogUHJvdG90
eXBlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU3ODBBMjE4RkUxRTk4MDAxRTcyRDkgLyog
UHVyZU5hTi5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjM1LDYgKzg2NDIsNyBAQAogCQkJCTY1QzAy
ODUwMTcxNzk1RTIwMDM1MUUzNSAvKiBBUk12N0Rpc2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk2NUMwMjg1QzE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdET3Bjb2RlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGODMzNUI3MTYzOUMxRTYwMDE0NDNCNSAvKiBBcnJheUFsbG9jYXRp
b25Qcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUzRkEyQUUzMUNGMzgwMzkwMDIyNzEx
RCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTdBOEFGMzQxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRkM5OUQ0MTg0RUUzMTgwMDlDMTBBQiAvKiBBcnJh
eUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdBOEFG
MzYxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3Qu
anNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpp
bmRleCBhODA2NTZlMjU1ZDI1MmEzODBmODg1YTlmYmFhYTUwMDM4NDc1MGIyLi4yMWZmYjM4YjI0
NzQ2ZWU0ODRjOGYzNTU2NzUxYTU3OTNmYWFjMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC01OCwxMSArNTgsMTIgQEAKICAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2lzX29iamVjdF9vcl9udWxsIiwgImxlbmd0aCIgOiAz
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9pc19mdW5jdGlvbiIsICJsZW5ndGgiIDog
MyB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaW4iLCAibGVuZ3RoIiA6IDQgfSwKLSAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3RyeV9nZXRfYnlfaWQiLCAibGVuZ3RoIiA6IDQgfSwK
KyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9hcnJheV9sZW5ndGgiLCAibGVuZ3RoIiA6
IDkgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9ieV9pZCIsICJsZW5ndGgiIDog
OSAgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9ieV9pZF9wcm90b19sb2FkIiwg
Imxlbmd0aCIgOiA5IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRfYnlfaWRfd2l0
aF90aGlzIiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRf
YnlfdmFsX3dpdGhfdGhpcyIsICJsZW5ndGgiIDogNSB9LAotICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfZ2V0X2FycmF5X2xlbmd0aCIsICJsZW5ndGgiIDogOSB9LAorICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3BfdHJ5X2dldF9ieV9pZCIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAg
eyAibmFtZSIgOiAib3BfcHV0X2J5X2lkIiwgImxlbmd0aCIgOiA5IH0sCiAgICAgICAgICAgICB7
ICJuYW1lIiA6ICJvcF9wdXRfYnlfaWRfd2l0aF90aGlzIiwgImxlbmd0aCIgOiA1IH0sCiAgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF9kZWxfYnlfaWQiLCAibGVuZ3RoIiA6IDQgfSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKaW5kZXggZmQx
ZjQ0ZTRiYjA5NDJiMzEzY2IwNzgzOTIwMjVhNzlhNDE5OTJlYS4uNmE3Zjc1ZTI5MjFjYWY5Yjk0
ZjljNjNkYThjZTlkM2Q2MjQxOGRjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKQEAgLTE1OCw2ICsxNTgsNyBAQCB2b2lkIGNvbXB1dGVV
c2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAgY2FzZSBvcF90b19wcmltaXRpdmU6CiAgICAgY2Fz
ZSBvcF90cnlfZ2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAgIGNhc2Ugb3Bf
Z2V0X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAg
IGNhc2Ugb3BfdHlwZW9mOgogICAgIGNhc2Ugb3BfaXNfZW1wdHk6CkBAIC0zOTIsNiArMzkzLDcg
QEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2Nr
LCBCeXRlY29kZUJhc2ljQmxvY2sqIGJsb2MKICAgICBjYXNlIG9wX2NvbnN0cnVjdDoKICAgICBj
YXNlIG9wX3RyeV9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgY2FzZSBv
cF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICBjYXNlIG9wX2dldF9ieV9pZF93aXRoX3RoaXM6
CiAgICAgY2FzZSBvcF9nZXRfYnlfdmFsX3dpdGhfdGhpczoKICAgICBjYXNlIG9wX2dldF9hcnJh
eV9sZW5ndGg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
CmluZGV4IDU0MWY0NTI3YWQ2OTkxMmQ1YzkzYmY2ZTY4MWZlN2YwNDI4MGY5OTAuLjBjNjUzM2M0
NTU5YWE2MDMzMDg5NzdjNzQwMDcxNmRlZWI5NDlhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAi
SlNMZXhpY2FsRW52aXJvbm1lbnQuaCIKICNpbmNsdWRlICJKU01vZHVsZUVudmlyb25tZW50Lmgi
CiAjaW5jbHVkZSAiTExJbnRFbnRyeXBvaW50LmgiCisjaW5jbHVkZSAiTExJbnRQcm90b3R5cGVM
b2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRl
cnByZXRlci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJQQ1RvQ29kZU9y
aWdpbk1hcC5oIgpAQCAtMzQ1LDYgKzM0Niw5IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludEdldEJ5
SWRPcChQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsb2NhdGlvbiwKICAg
ICBjYXNlIG9wX2dldF9ieV9pZDoKICAgICAgICAgb3AgPSAiZ2V0X2J5X2lkIjsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKKyAgICAgICAgb3AgPSAi
Z2V0X2J5X2lkX3Byb3RvX2xvYWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIG9wX2dldF9h
cnJheV9sZW5ndGg6CiAgICAgICAgIG9wID0gImFycmF5X2xlbmd0aCI7CiAgICAgICAgIGJyZWFr
OwpAQCAtNDA1LDYgKzQwOSw4IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludEdldEJ5SWRDYWNoZVN0
YXR1cyhQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsCiAgICAgICAgIG91
dC5wcmludGYoIiBsbGludCgiKTsKICAgICAgICAgZHVtcFN0cnVjdHVyZShvdXQsICJzdHJ1Y3Qi
LCBzdHJ1Y3R1cmUsIGlkZW50KTsKICAgICAgICAgb3V0LnByaW50ZigiKSIpOworICAgICAgICBp
ZiAoZXhlYy0+aW50ZXJwcmV0ZXIoKS0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25bMF0udS5vcGNv
ZGUpID09IG9wX2dldF9ieV9pZF9wcm90b19sb2FkKQorICAgICAgICAgICAgb3V0LnByaW50Zigi
IHByb3RvKCVwKSIsIGluc3RydWN0aW9uWzZdLnUucG9pbnRlcik7CiAgICAgfQogCiAjaWYgRU5B
QkxFKEpJVCkKQEAgLTExMTIsNiArMTExOCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNv
ZGUoCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9i
eV9pZDoKKyAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICAgICAgY2Fz
ZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOiB7CiAgICAgICAgICAgICBwcmludEdldEJ5SWRPcChvdXQs
IGV4ZWMsIGxvY2F0aW9uLCBpdCk7CiAgICAgICAgICAgICBwcmludEdldEJ5SWRDYWNoZVN0YXR1
cyhvdXQsIGV4ZWMsIGxvY2F0aW9uLCBzdHViSW5mb3MpOwpAQCAtMjc1NCwxNCArMjc2MSwxNCBA
QCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVMTEludElubGluZUNhY2hlcygpCiAgICAgZm9yIChz
aXplX3Qgc2l6ZSA9IHByb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25zLnNpemUoKSwgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIGN1ckluc3RydWN0aW9uID0gJmlu
c3RydWN0aW9ucygpW3Byb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25zW2ldXTsKICAgICAgICAgc3dp
dGNoIChpbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoY3VySW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUp
KSB7Ci0gICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOiB7CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5
X2lkOgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOiB7CiAgICAgICAgICAg
ICBTdHJ1Y3R1cmVJRCBvbGRTdHJ1Y3R1cmVJRCA9IGN1ckluc3RydWN0aW9uWzRdLnUuc3RydWN0
dXJlSUQ7CiAgICAgICAgICAgICBpZiAoIW9sZFN0cnVjdHVyZUlEIHx8IEhlYXA6OmlzTWFya2Vk
KG1fdm0tPmhlYXAuc3RydWN0dXJlSURUYWJsZSgpLmdldChvbGRTdHJ1Y3R1cmVJRCkpKQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1Io
KSkKICAgICAgICAgICAgICAgICBkYXRhTG9nRigiQ2xlYXJpbmcgTExJbnQgcHJvcGVydHkgYWNj
ZXNzLlxuIik7Ci0gICAgICAgICAgICBjdXJJbnN0cnVjdGlvbls0XS51LnN0cnVjdHVyZUlEID0g
MDsKLSAgICAgICAgICAgIGN1ckluc3RydWN0aW9uWzVdLnUub3BlcmFuZCA9IDA7CisgICAgICAg
ICAgICBjbGVhckxMSW50R2V0QnlJZENhY2hlKGN1ckluc3RydWN0aW9uKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkOiB7CkBAIC0yODM1
LDYgKzI4NDIsMTIgQEAgdm9pZCBDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMo
KQogICAgICAgICB9CiAgICAgfQogCisgICAgLy8gV2UgY2FuJ3QganVzdCByZW1vdmUgYWxsIHRo
ZSBzZXRzIHdoZW4gd2UgY2xlYXIgdGhlIGNhY2hlcyBzaW5jZSB3ZSBtaWdodCBoYXZlIGNyZWF0
ZWQgYSB3YXRjaHBvaW50IHNldAorICAgIC8vIHRoZW4gY2xlYXJlZCB0aGUgY2FjaGUgd2l0aG91
dCBHQ2luZyBpbiBiZXR3ZWVuLgorICAgIG1fbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcC5yZW1v
dmVJZihbXShjb25zdCBTdHJ1Y3R1cmVXYXRjaHBvaW50TWFwOjpLZXlWYWx1ZVBhaXJUeXBlJiBw
YWlyKSAtPiBib29sIHsKKyAgICAgICAgcmV0dXJuICFIZWFwOjppc01hcmtlZChwYWlyLmtleSk7
CisgICAgfSk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9sbGludENhbGxMaW5r
SW5mb3Muc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fbGxpbnRDYWxsTGlua0luZm9zW2ld
LmlzTGlua2VkKCkgJiYgIUhlYXA6OmlzTWFya2VkKG1fbGxpbnRDYWxsTGlua0luZm9zW2ldLmNh
bGxlZS5nZXQoKSkpIHsKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggY2JiOGNmNTcw
MWNjZTc5NWE2MjUyZjRhN2U3YTA0YTU3NDFiMGIyZi4uNTY2OWJjZDY4M2IyMjRjYjU3ZWYzZmQ0
OGIzMjlmNWI4NGM2NjMxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAj
aW5jbHVkZSAiSnVtcFRhYmxlLmgiCiAjaW5jbHVkZSAiTExJbnRDYWxsTGlua0luZm8uaCIKKyNp
bmNsdWRlICJMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCIK
ICNpbmNsdWRlICJMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5oIgogI2luY2x1ZGUgIk9iamVjdEFs
bG9jYXRpb25Qcm9maWxlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgpAQCAtNjc4LDYgKzY3OSw5
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fbGxpbnRFeGVjdXRlQ291bnRlcjsKICAgICB9
CiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3RydWN0dXJlKiwgQmFnPExMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludD4+IFN0cnVjdHVyZVdhdGNocG9pbnRNYXA7Cisg
ICAgU3RydWN0dXJlV2F0Y2hwb2ludE1hcCYgbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcCgpIHsg
cmV0dXJuIG1fbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcDsgfQorCiAgICAgLy8gRnVuY3Rpb25z
IGZvciBjb250cm9sbGluZyB3aGVuIHRpZXJlZCBjb21waWxhdGlvbiBraWNrcyBpbi4gVGhpcwog
ICAgIC8vIGNvbnRyb2xzIGJvdGggd2hlbiB0aGUgb3B0aW1pemluZyBjb21waWxlciBpcyBpbnZv
a2VkIGFuZCB3aGVuIE9TUgogICAgIC8vIGVudHJ5IGhhcHBlbnMuIFR3byB0cmlnZ2VycyBleGlz
dDogdGhlIGxvb3AgdHJpZ2dlciBhbmQgdGhlIHJldHVybgpAQCAtMTAxOSw2ICsxMDIzLDcgQEAg
cHJpdmF0ZToKIAogICAgIFJlZkNvdW50ZWRBcnJheTxMTEludENhbGxMaW5rSW5mbz4gbV9sbGlu
dENhbGxMaW5rSW5mb3M7CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PExMSW50Q2FsbExpbmtJbmZv
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxMTEludENhbGxMaW5rSW5mbz4+IG1faW5jb21pbmdMTElu
dENhbGxzOworICAgIFN0cnVjdHVyZVdhdGNocG9pbnRNYXAgbV9sbGludEdldEJ5SWRXYXRjaHBv
aW50TWFwOwogICAgIFJlZlB0cjxKSVRDb2RlPiBtX2ppdENvZGU7CiAjaWYgRU5BQkxFKEpJVCkK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0ZXJBdE9mZnNldExpc3Q+IG1fY2FsbGVlU2F2ZVJl
Z2lzdGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRC
eUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3Rh
dHVzLmNwcAppbmRleCBjNjk1MTRjNTdlODkwM2MwMjViMjU3ZmMwMTNiZTE3MzJjOTQ1YzBiLi4x
YzdlM2ZmZTNkZGQwOTg4Y2RmNDRiNzZmYmJmNzgwMjE0MWU4YWQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCkBAIC03NSw4ICs3NSwx
MCBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJs
b2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZAogICAgIFZNJiB2bSA9ICpwcm9maWxlZEJsb2Nr
LT52bSgpOwogICAgIAogICAgIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiA9IHByb2ZpbGVkQmxv
Y2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBieXRlY29kZUluZGV4OwotICAgIAotICAgIGlm
IChpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9hcnJh
eV9sZW5ndGgpIHx8IGluc3RydWN0aW9uWzBdLnUub3Bjb2RlID09IExMSW50OjpnZXRPcGNvZGUo
b3BfdHJ5X2dldF9ieV9pZCkpCisKKyAgICBPcGNvZGUgb3Bjb2RlID0gaW5zdHJ1Y3Rpb25bMF0u
dS5vcGNvZGU7CisKKyAgICBpZiAob3Bjb2RlID09IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2Fy
cmF5X2xlbmd0aCkgfHwgb3Bjb2RlID09IExMSW50OjpnZXRPcGNvZGUob3BfdHJ5X2dldF9ieV9p
ZCkgfHwgb3Bjb2RlID09IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQp
KQogICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCBmYWxzZSk7CiAK
ICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IGluc3RydWN0aW9uWzRdLnUuc3RydWN0dXJl
SUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRQcm90
b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNo
cG9pbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiYTQxZTVkN2ViYTM4NTZiNGM0MWNjMzFiYTY3ZWIzNzY3
YjZkMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcApAQCAtMCww
ICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZl
U3RydWN0dXJlV2F0Y2hwb2ludC5oIgorCisjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK0xMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludDo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50KGNvbnN0
IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJiBrZXksIEluc3RydWN0aW9uKiBnZXRCeUlkSW5zdHJ1
Y3Rpb24pCisgICAgOiBtX2tleShrZXkpCisgICAgLCBtX2dldEJ5SWRJbnN0cnVjdGlvbihnZXRC
eUlkSW5zdHJ1Y3Rpb24pCit7CisgICAgUkVMRUFTRV9BU1NFUlQoa2V5LndhdGNoaW5nUmVxdWly
ZXNTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludCgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVCgh
a2V5LndhdGNoaW5nUmVxdWlyZXNSZXBsYWNlbWVudFdhdGNocG9pbnQoKSk7Cit9CisKK3ZvaWQg
TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50OjppbnN0YWxsKCkK
K3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2tleS5pc1dhdGNoYWJsZSgpKTsKKworICAgIG1fa2V5
Lm9iamVjdCgpLT5zdHJ1Y3R1cmUoKS0+YWRkVHJhbnNpdGlvbldhdGNocG9pbnQodGhpcyk7Cit9
CisKK3ZvaWQgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50Ojpm
aXJlSW50ZXJuYWwoY29uc3QgRmlyZURldGFpbCYgZGV0YWlsKQoreworICAgIGlmIChtX2tleS5p
c1dhdGNoYWJsZShQcm9wZXJ0eUNvbmRpdGlvbjo6RW5zdXJlV2F0Y2hhYmlsaXR5KSkgeworICAg
ICAgICBpbnN0YWxsKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmdQcmlu
dFN0cmVhbSBvdXQ7CisgICAgb3V0LnByaW50KCJPYmplY3RUb1N0cmluZ1ZhbHVlIEFkYXB0YXRp
b24gb2YgIiwgbV9rZXksICIgZmFpbGVkOiAiLCBkZXRhaWwpOworCisgICAgU3RyaW5nRmlyZURl
dGFpbCBzdHJpbmdEZXRhaWwob3V0LnRvQ1N0cmluZygpLmRhdGEoKSk7CisgICAgCisgICAgY2xl
YXJMTEludEdldEJ5SWRDYWNoZShtX2dldEJ5SWRJbnN0cnVjdGlvbik7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xM
SW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJl
V2F0Y2hwb2ludC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjYWU0MzY0M2Q5MDBjMTljMWExZmM0MTM4MDgwZDAy
MjdhM2JmYTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgKQEAgLTAs
MCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50X2gK
KyNkZWZpbmUgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50X2gK
KworI2luY2x1ZGUgIkluc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiT2JqZWN0UHJvcGVydHlDb25k
aXRpb24uaCIKKyNpbmNsdWRlICJXYXRjaHBvaW50LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitj
bGFzcyBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQgOiBwdWJs
aWMgV2F0Y2hwb2ludCB7CitwdWJsaWM6CisgICAgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVT
dHJ1Y3R1cmVXYXRjaHBvaW50KGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJiwgSW5zdHJ1
Y3Rpb24qKTsKKworICAgIHZvaWQgaW5zdGFsbCgpOworCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBm
aXJlSW50ZXJuYWwoY29uc3QgRmlyZURldGFpbCYpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAg
IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uIG1fa2V5OworICAgIEluc3RydWN0aW9uKiBtX2dldEJ5
SWRJbnN0cnVjdGlvbjsKK307CisKK2lubGluZSB2b2lkIGNsZWFyTExJbnRHZXRCeUlkQ2FjaGUo
SW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQoreworICAgIGluc3RydWN0aW9uWzBdLnUub3Bjb2Rl
ID0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYnlfaWQpOworICAgIGluc3RydWN0aW9uWzRdLnUu
cG9pbnRlciA9IG51bGxwdHI7CisgICAgaW5zdHJ1Y3Rpb25bNV0udS5wb2ludGVyID0gbnVsbHB0
cjsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvKiBMTEludFByb3RvdHlwZUxv
YWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnRfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5j
cHAKaW5kZXggZDU3MDA0MDBmOGIyNjNlNWZmNzc1ZWZlZjg4YmE1Y2IwOWRiNDIwYi4uNGJkMTIy
OWFlNzdkY2Y1MTIwZmJjN2FjMjQ2MTY3Nzk4YmY4MTBkNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25T
ZXQuY3BwCkBAIC0yNTQsOSArMjU0LDExIEBAIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0IGdl
bmVyYXRlQ29uZGl0aW9ucygKICAgICAgICAgLy8gU2luY2Ugd2UncmUgYWNjZXNzaW5nIGEgcHJv
dG90eXBlIHJlcGVhdGVkbHksIGl0J3MgYSBnb29kIGJldCB0aGF0IGl0IHNob3VsZCBub3QgYmUK
ICAgICAgICAgLy8gdHJlYXRlZCBhcyBhIGRpY3Rpb25hcnkuCiAgICAgICAgIGlmIChzdHJ1Y3R1
cmUtPmlzRGljdGlvbmFyeSgpKSB7Ci0gICAgICAgICAgICBpZiAoY29uY3VycmVuY3kgPT0gTWFp
blRocmVhZCkKKyAgICAgICAgICAgIGlmIChjb25jdXJyZW5jeSA9PSBNYWluVGhyZWFkKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2co
IkZsYXR0ZW5pbmcgIiwgcG9pbnRlckR1bXAoc3RydWN0dXJlKSk7CiAgICAgICAgICAgICAgICAg
c3RydWN0dXJlLT5mbGF0dGVuRGljdGlvbmFyeVN0cnVjdHVyZSh2bSwgb2JqZWN0KTsKLSAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2Fubm90IGZsYXR0ZW4gZGlj
dGlvbmFyeSB3aGVuIG5vdCBvbiBtYWluIHRocmVhZCwgc28gaW52YWxpZC5cbiIpOwogICAgICAg
ICAgICAgICAgIHJldHVybiBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldDo6aW52YWxpZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5
Q29uZGl0aW9uU2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJv
cGVydHlDb25kaXRpb25TZXQuaAppbmRleCA3NmU4YTljZGE4MDA2YTlhYWY1MWE2Zjg3MjcwMDYy
YzdhOWQ5MTMyLi43YzE1ZThlMzI5MDA0NjU3YWExYzI0Nzc3MDMzMDFlZDkwN2Y1YmNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25k
aXRpb25TZXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJv
cGVydHlDb25kaXRpb25TZXQuaApAQCAtNjcsNiArNjcsMTggQEAgcHVibGljOgogICAgIHsKICAg
ICAgICAgcmV0dXJuICFtX2RhdGEgfHwgIW1fZGF0YS0+dmVjdG9yLmlzRW1wdHkoKTsKICAgICB9
CisKKyAgICBib29sIGlzVmFsaWRBbmRXYXRjaGFibGUoKSBjb25zdAorICAgIHsKKyAgICAgICAg
aWYgKCFpc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgZm9y
IChPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24gOiBtX2RhdGEtPnZlY3Rvcikgewor
ICAgICAgICAgICAgaWYgKCFjb25kaXRpb24uaXNXYXRjaGFibGUoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQog
ICAgIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRl
eCBiNTAxNTFkMWRkMDViMzM5NGRjZWNmZmIzMmViNGJlNTBmZTBlZWRlLi41ODAzNjYxMzY1Mzg2
MTc5NDI3MGIzNGY5NzEyMjlkNzA0YTgzY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMjQzMSw3
ICsyNDMxLDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRCeUlkKFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgY28KICAgICBpbnN0cnVjdGlvbnMoKS5h
cHBlbmQoMCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKDApOwogICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZCgwKTsKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoMCk7CisgICAgaW5zdHJ1
Y3Rpb25zKCkuYXBwZW5kKE9wdGlvbnM6OnByb3RvdHlwZUhpdENvdW50Rm9yTExJbnRDYWNoaW5n
KCkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChwcm9maWxlKTsKICAgICByZXR1cm4gZHN0
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cAppbmRleCBhYTgzMWMzNTNmYmIwNWQxMmFjMGU5MmQxZmMxYjY2ZTNhNTE4YTM2Li4zYzI4MTIy
Yzg0MmI1Yzg5MjM4MTRmYzgwODg4NzRlNWY0MTQwNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtNDA4MSw2ICs0MDgxLDcgQEAg
Ym9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAg
fQogCiAgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAgICAgICBjYXNlIG9wX2dldF9ieV9p
ZF9wcm90b19sb2FkOgogICAgICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6IHsKICAgICAg
ICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uKCk7CiAgICAg
ICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJp
bGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNw
cAppbmRleCAwNjY2OWQ0MDY4ZmU4MzRiODRiY2FlYjk4YmJjNjBkYTdjN2VlMjRjLi4wNjI0Mjdj
YjkzMTI3ZjkxMTA1ZTM3NjkwZGE2YjVjMjY3ZTNlYjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBAIC0xNTQsNiArMTU0LDcgQEAgQ2FwYWJp
bGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIEluc3RydWMKICAgICBjYXNlIG9wX3B1dF9ieV92YWxfZGlyZWN0OgogICAgIGNh
c2Ugb3BfdHJ5X2dldF9ieV9pZDoKICAgICBjYXNlIG9wX2dldF9ieV9pZDoKKyAgICBjYXNlIG9w
X2dldF9ieV9pZF9wcm90b19sb2FkOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3dpdGhfdGhpczoK
ICAgICBjYXNlIG9wX2dldF9ieV92YWxfd2l0aF90aGlzOgogICAgIGNhc2Ugb3BfZ2V0X2FycmF5
X2xlbmd0aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCBhZGFhODYwN2Y2YzQ0YWMw
NDMyNTllYzQ3ZTUwN2NlMGZjOTMwNjg2Li45MmFhYzk5NDhiNWUxZDFhNGQxNjM0ODQ5NmFiNzZk
ODI2YmE4YjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0yNDAsNiArMjQwLDcg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Ao
b3BfZXFfbnVsbCkKICAgICAgICAgREVGSU5FX09QKG9wX3RyeV9nZXRfYnlfaWQpCiAgICAgICAg
IGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKKyAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJv
dG9fbG9hZDoKICAgICAgICAgREVGSU5FX09QKG9wX2dldF9ieV9pZCkKICAgICAgICAgREVGSU5F
X09QKG9wX2dldF9ieV9pZF93aXRoX3RoaXMpCiAgICAgICAgIERFRklORV9PUChvcF9nZXRfYnlf
dmFsKQpAQCAtNDIyLDYgKzQyMyw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNl
cygpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9lcSkKICAgICAgICAgREVGSU5FX1NM
T1dDQVNFX09QKG9wX3RyeV9nZXRfYnlfaWQpCiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xl
bmd0aDoKKyAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICAgICAgREVG
SU5FX1NMT1dDQVNFX09QKG9wX2dldF9ieV9pZCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09Q
KG9wX2dldF9ieV92YWwpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9pbnN0YW5jZW9m
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5k
ZXggZmE4ODM3NGNlNjE1ZWMxYWEwOWZlN2EzMjA3MWEyMWI5MjEyOTAwNy4uYTEwMzU4ODNkMTRi
YjVmMjA1M2E0NDZkZmE2NGVmNTI4MzBjYzlhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAi
TExJbnRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgogI2lu
Y2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiT2JqZWN0UHJvcGVydHlDb25k
aXRpb25TZXQuaCIKICNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlNoYWRv
d0NoaWNrZW4uaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKQEAgLTU4
MCw2ICs1ODEsNDMgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3RyeV9nZXRfYnlf
aWQpCiAgICAgTExJTlRfUkVUVVJOKHNsb3QuZ2V0UHVyZVJlc3VsdCgpKTsKIH0KIAorc3RhdGlj
IHZvaWQgc2V0dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0s
IEluc3RydWN0aW9uKiBwYywgSlNDZWxsKiBiYXNlQ2VsbCwgUHJvcGVydHlTbG90JiBzbG90LCBj
b25zdCBJZGVudGlmaWVyJiBpZGVudCkKK3sKKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4
ZWMtPmNvZGVCbG9jaygpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gYmFzZUNlbGwtPnN0
cnVjdHVyZSgpOworCisgICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS5wcm9oaWJpdHNQcm9w
ZXJ0eUNhY2hpbmcoKSB8fCBzdHJ1Y3R1cmUtPmlzRGljdGlvbmFyeSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjb25kaXRpb25zID0gZ2VuZXJh
dGVDb25kaXRpb25zRm9yUHJvdG90eXBlUHJvcGVydHlIaXQodm0sIGNvZGVCbG9jaywgZXhlYywg
c3RydWN0dXJlLCBzbG90LnNsb3RCYXNlKCksIGlkZW50LmltcGwoKSk7CisKKyAgICBpZiAoIWNv
bmRpdGlvbnMuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQgPSBpbnZhbGlkT2Zmc2V0OworICAgIENvZGVCbG9jazo6U3RydWN0dXJlV2F0Y2hw
b2ludE1hcCYgd2F0Y2hwb2ludE1hcCA9IGNvZGVCbG9jay0+bGxpbnRHZXRCeUlkV2F0Y2hwb2lu
dE1hcCgpOworICAgIGF1dG8gcmVzdWx0ID0gd2F0Y2hwb2ludE1hcC5hZGQoc3RydWN0dXJlLCBC
YWc8TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50PigpKTsKKyAg
ICBmb3IgKE9iamVjdFByb3BlcnR5Q29uZGl0aW9uIGNvbmRpdGlvbiA6IGNvbmRpdGlvbnMpIHsK
KyAgICAgICAgaWYgKCFjb25kaXRpb24uaXNXYXRjaGFibGUoKSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgaWYgKGNvbmRpdGlvbi5jb25kaXRpb24oKS5raW5kKCkgPT0gUHJvcGVydHlD
b25kaXRpb246OlByZXNlbmNlKQorICAgICAgICAgICAgb2Zmc2V0ID0gY29uZGl0aW9uLmNvbmRp
dGlvbigpLm9mZnNldCgpOworICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFkZChjb25k
aXRpb24sIHBjKS0+aW5zdGFsbCgpOworICAgIH0KKyAgICBBU1NFUlQob2Zmc2V0ICE9IGludmFs
aWRPZmZzZXQpOworCisgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5t
X2xvY2spOworCisgICAgcGNbMF0udS5vcGNvZGUgPSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9i
eV9pZF9wcm90b19sb2FkKTsKKyAgICBwY1s0XS51LnN0cnVjdHVyZUlEID0gc3RydWN0dXJlLT5p
ZCgpOworICAgIHBjWzVdLnUub3BlcmFuZCA9IG9mZnNldDsKKyAgICAvLyBXZSBrbm93IHRoYXQg
dGhpcyBwb2ludGVyIHdpbGwgcmVtYWluIHZhbGlkIGJlY2F1c2UgaXQgaXMgdGhlIHByb3RvdHlw
ZSBvZiBzb21lIHN0cnVjdHVyZSwgcywKKyAgICAvLyB3YXRjaHBvaW50ZWQgYWJvdmUuIElmIGFu
eSBvYmplY3Qgd2l0aCBzdHJ1Y3R1cmUgcyB3ZXJlIHRvIGNoYW5nZSBwcm90b3R5cGVzIHRoZW4g
dGhlIGNvbmRpdGlvbnMKKyAgICAvLyBmb3IgdGhpcyBjYWNoZSB3b3VsZCBmYWlsIGFuZCB0aGlz
IHZhbHVlIHdpbGwgbmV2ZXIgYmUgdXNlZCBhZ2Fpbi4KKyAgICBwY1s2XS51LnBvaW50ZXIgPSBz
bG90LnNsb3RCYXNlKCk7Cit9CisKKwogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2dl
dF9ieV9pZCkKIHsKICAgICBMTElOVF9CRUdJTigpOwpAQCAtNTk0LDM3ICs2MzIsNDMgQEAgTExJ
TlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2dldF9ieV9pZCkKICAgICAKICAgICBpZiAoIUxM
SU5UX0FMV0FZU19BQ0NFU1NfU0xPVwogICAgICAgICAmJiBiYXNlVmFsdWUuaXNDZWxsKCkKLSAg
ICAgICAgJiYgc2xvdC5pc0NhY2hlYWJsZSgpCi0gICAgICAgICYmIHNsb3Quc2xvdEJhc2UoKSA9
PSBiYXNlVmFsdWUKICAgICAgICAgJiYgc2xvdC5pc0NhY2hlYWJsZVZhbHVlKCkpIHsKLSAgICAg
ICAgCisKICAgICAgICAgSlNDZWxsKiBiYXNlQ2VsbCA9IGJhc2VWYWx1ZS5hc0NlbGwoKTsKICAg
ICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0dXJlKCk7CisgICAg
ICAgIGlmIChzbG90LnNsb3RCYXNlKCkgPT0gYmFzZVZhbHVlKSB7CisgICAgICAgICAgICAvLyBT
dGFydCBvdXQgYnkgY2xlYXJpbmcgb3V0IHRoZSBvbGQgY2FjaGUuCisgICAgICAgICAgICBwY1sw
XS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2J5X2lkKTsKKyAgICAgICAgICAg
IHBjWzRdLnUucG9pbnRlciA9IG51bGxwdHI7IC8vIG9sZCBzdHJ1Y3R1cmUKKyAgICAgICAgICAg
IHBjWzVdLnUucG9pbnRlciA9IG51bGxwdHI7IC8vIG9mZnNldAorCisgICAgICAgICAgICAvLyBQ
cmV2ZW50IHRoZSBwcm90b3R5cGUgY2FjaGUgZnJvbSBldmVyIGhhcHBlbmluZy4KKyAgICAgICAg
ICAgIHBjWzddLnUub3BlcmFuZCA9IDA7CiAgICAgICAgIAotICAgICAgICAvLyBTdGFydCBvdXQg
YnkgY2xlYXJpbmcgb3V0IHRoZSBvbGQgY2FjaGUuCi0gICAgICAgIHBjWzBdLnUub3Bjb2RlID0g
TExJbnQ6OmdldE9wY29kZShvcF9nZXRfYnlfaWQpOwotICAgICAgICBwY1s0XS51LnBvaW50ZXIg
PSBudWxscHRyOyAvLyBvbGQgc3RydWN0dXJlCi0gICAgICAgIHBjWzVdLnUucG9pbnRlciA9IG51
bGxwdHI7IC8vIG9mZnNldAotICAgICAgICAKLSAgICAgICAgaWYgKCFzdHJ1Y3R1cmUtPmlzVW5j
YWNoZWFibGVEaWN0aW9uYXJ5KCkKLSAgICAgICAgICAgICYmICFzdHJ1Y3R1cmUtPnR5cGVJbmZv
KCkucHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkKLSAgICAgICAgICAgICYmICFzdHJ1Y3R1cmUt
PnR5cGVJbmZvKCkubmV3SW1wdXJlUHJvcGVydHlGaXJlc1dhdGNocG9pbnRzKCkpIHsKLSAgICAg
ICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKGNvZGVCbG9jayk7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsK
KyAgICAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnByb3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGUo
KSkgeworICAgICAgICAgICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKGNvZGVCbG9jayk7Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2Nr
ZXIoY29kZUJsb2NrLT5tX2xvY2spOwogCi0gICAgICAgICAgICBwY1s0XS51LnN0cnVjdHVyZUlE
ID0gc3RydWN0dXJlLT5pZCgpOwotICAgICAgICAgICAgcGNbNV0udS5vcGVyYW5kID0gc2xvdC5j
YWNoZWRPZmZzZXQoKTsKLSAgICAgICAgfQotICAgIH0KKyAgICAgICAgICAgICAgICBwY1s0XS51
LnN0cnVjdHVyZUlEID0gc3RydWN0dXJlLT5pZCgpOworICAgICAgICAgICAgICAgIHBjWzVdLnUu
b3BlcmFuZCA9IHNsb3QuY2FjaGVkT2Zmc2V0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0g
ZWxzZSBpZiAoVU5MSUtFTFkocGNbN10udS5vcGVyYW5kKSkgeworICAgICAgICAgICAgQVNTRVJU
KHNsb3Quc2xvdEJhc2UoKSAhPSBiYXNlVmFsdWUpOwogCi0gICAgaWYgKCFMTElOVF9BTFdBWVNf
QUNDRVNTX1NMT1cKKyAgICAgICAgICAgIGlmICghKC0tcGNbN10udS5vcGVyYW5kKSkKKyAgICAg
ICAgICAgICAgICBzZXR1cEdldEJ5SWRQcm90b3R5cGVDYWNoZShleGVjLCB2bSwgcGMsIGJhc2VD
ZWxsLCBzbG90LCBpZGVudCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKCFMTElOVF9BTFdB
WVNfQUNDRVNTX1NMT1cKICAgICAgICAgJiYgaXNKU0FycmF5KGJhc2VWYWx1ZSkKICAgICAgICAg
JiYgaWRlbnQgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkgewogICAgICAgICBwY1sw
XS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2FycmF5X2xlbmd0aCk7CiAgICAg
ICAgIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlID0gY29kZUJsb2NrLT5nZXRPckFkZEFycmF5
UHJvZmlsZShwYyAtIGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSk7CiAgICAgICAg
IGFycmF5UHJvZmlsZS0+b2JzZXJ2ZVN0cnVjdHVyZShiYXNlVmFsdWUuYXNDZWxsKCktPnN0cnVj
dHVyZSgpKTsKICAgICAgICAgcGNbNF0udS5hcnJheVByb2ZpbGUgPSBhcnJheVByb2ZpbGU7CisK
KyAgICAgICAgLy8gUHJldmVudCB0aGUgcHJvdG90eXBlIGNhY2hlIGZyb20gZXZlciBoYXBwZW5p
bmcuCisgICAgICAgIHBjWzddLnUub3BlcmFuZCA9IDA7CiAgICAgfQogCiAgICAgcGNbT1BDT0RF
X0xFTkdUSChvcF9nZXRfYnlfaWQpIC0gMV0udS5wcm9maWxlLT5tX2J1Y2tldHNbMF0gPSBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmgKaW5kZXggMjQ5OTU0MjhiNTRjY2NlNTQ4NTg5MGE5NjA3ZGM1Zjg0NDFjZTQw
Ny4uZGEzNjMwNWJlNWM1ZGJiMTE3YWZmYmU0MjY4OTBjNDgyYjA1NmQ5NSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKQEAgLTcxLDYgKzcxLDcgQEAg
TExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mKTsKIExMSU5U
X1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZl9jdXN0b20pOwogTExJ
TlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90cnlfZ2V0X2J5X2lkKTsKIExMSU5U
X1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKTsKK0xMSU5UX1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkX3Byb3RvX2xvYWQpOwogTExJTlRf
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYXJndW1lbnRzX2xlbmd0aCk7CiBM
TElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF9ieV9pZCk7CiBMTElOVF9T
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2RlbF9ieV9pZCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
CmluZGV4IDUyZTBiNDUxYmM4MTMyMjA0NDgzZGVkNzU0MTc5MWQxOTFjNjczMzQuLjk4ZWVhNGZj
ZmVhZTBmYThmOWUyODg0OWU0ZWNhMTk2NWRkOGY5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0x
MzM0LDEwICsxMzM0LDExIEBAIGVuZAogCiAKICMgV2Ugb25seSBkbyBtb25vbW9ycGhpYyBnZXRf
YnlfaWQgY2FjaGluZyBmb3Igbm93LCBhbmQgd2UgZG8gbm90IG1vZGlmeSB0aGUKLSMgb3Bjb2Rl
LiBXZSBkbywgaG93ZXZlciwgYWxsb3cgZm9yIHRoZSBjYWNoZSB0byBjaGFuZ2UgYW55dGltZSBp
ZiBmYWlscywgc2luY2UKLSMgcGluZy1wb25naW5nIGlzIGZyZWUuIEF0IGJlc3Qgd2UgZ2V0IGx1
Y2t5IGFuZCB0aGUgZ2V0X2J5X2lkIHdpbGwgY29udGludWUKKyMgb3Bjb2RlIGZvciBvd24gcHJv
cGVydGllcy4gV2UgYWxzbyBhbGxvdyBmb3IgdGhlIGNhY2hlIHRvIGNoYW5nZSBhbnl0aW1lIGl0
IGZhaWxzLAorIyBzaW5jZSBwaW5nLXBvbmdpbmcgaXMgZnJlZS4gQXQgYmVzdCB3ZSBnZXQgbHVj
a3kgYW5kIHRoZSBnZXRfYnlfaWQgd2lsbCBjb250aW51ZQogIyB0byB0YWtlIGZhc3QgcGF0aCBv
biB0aGUgbmV3IGNhY2hlLiBBdCB3b3JzdCB3ZSB0YWtlIHNsb3cgcGF0aCwgd2hpY2ggaXMgd2hh
dAotIyB3ZSB3b3VsZCBoYXZlIGJlZW4gZG9pbmcgYW55d2F5LgorIyB3ZSB3b3VsZCBoYXZlIGJl
ZW4gZG9pbmcgYW55d2F5LiBGb3IgcHJvdG90eXBlIHByb3BlcnRpZXMsIHdlIHdpbGwgYXR0ZW1w
dCB0bworIyBjb252ZXJ0IG9wY29kZSBpbnRvIGEgZ2V0X2J5X2lkX3Byb3RvX2xvYWQgYWZ0ZXIg
YSBleGVjdXRpb24gY291bnRlciBoaXRzIHplcm8uCiAKIF9sbGludF9vcF9nZXRfYnlfaWQ6CiAg
ICAgdHJhY2VFeGVjdXRpb24oKQpAQCAtMTM1OCw2ICsxMzU5LDI3IEBAIF9sbGludF9vcF9nZXRf
YnlfaWQ6CiAgICAgZGlzcGF0Y2goOSkKIAogCisKK19sbGludF9vcF9nZXRfYnlfaWRfcHJvdG9f
bG9hZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQ10sIHQwCisgICAgbG9h
ZGkgMTZbUENdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHQwLCBDZWxs
VGFnLCB0MywgLm9wR2V0QnlJZFByb3RvU2xvdykKKyAgICBsb2FkaSAyMFtQQ10sIHQyCisgICAg
YmluZXEgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QzXSwgdDEsIC5vcEdldEJ5SWRQcm90b1Nsb3cK
KyAgICBsb2FkcEZyb21JbnN0cnVjdGlvbig2LCB0MykKKyAgICBsb2FkUHJvcGVydHlBdFZhcmlh
YmxlT2Zmc2V0KHQyLCB0MywgdDAsIHQxKQorICAgIGxvYWRpIDRbUENdLCB0MgorICAgIHN0b3Jl
aSB0MCwgVGFnT2Zmc2V0W2NmciwgdDIsIDhdCisgICAgc3RvcmVpIHQxLCBQYXlsb2FkT2Zmc2V0
W2NmciwgdDIsIDhdCisgICAgdmFsdWVQcm9maWxlKHQwLCB0MSwgMzIsIHQyKQorICAgIGRpc3Bh
dGNoKDkpCisKKy5vcEdldEJ5SWRQcm90b1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfZ2V0X2J5X2lkKQorICAgIGRpc3BhdGNoKDkpCisKKwogX2xsaW50X29wX2dldF9h
cnJheV9sZW5ndGg6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpIDhbUENdLCB0MApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjY0LmFzbQppbmRleCA0NmU1NjE2YmY0MzVlMjM2MTE2NGQ0NDkzZGMxMjU2YzM4YzM0YzIyLi41
MTFiYTc0Njc2MzNkYjg3YjI3ODJjOTlmODMxN2RlM2ViMTJjNmZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAt
MTIzMiw2ICsxMjMyLDI2IEBAIF9sbGludF9vcF9nZXRfYnlfaWQ6CiAgICAgZGlzcGF0Y2goOSkK
IAogCitfbGxpbnRfb3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQ6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MCkKKyAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlQ2VsbCh0MCwgdDMsIC5vcEdldEJ5SWRQcm90b1Nsb3cpCisgICAgbG9hZGkgSlNDZWxs
OjptX3N0cnVjdHVyZUlEW3QzXSwgdDEKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDIp
CisgICAgYmluZXEgdDIsIHQxLCAub3BHZXRCeUlkUHJvdG9TbG93CisgICAgbG9hZGlzRnJvbUlu
c3RydWN0aW9uKDUsIHQxKQorICAgIGxvYWRwRnJvbUluc3RydWN0aW9uKDYsIHQzKQorICAgIGxv
YWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKKyAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zm
c2V0KHQxLCB0MywgdDApCisgICAgc3RvcmVxIHQwLCBbY2ZyLCB0MiwgOF0KKyAgICB2YWx1ZVBy
b2ZpbGUodDAsIDgsIHQxKQorICAgIGRpc3BhdGNoKDkpCisKKy5vcEdldEJ5SWRQcm90b1Nsb3c6
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2J5X2lkKQorICAgIGRpc3Bh
dGNoKDkpCisKKwogX2xsaW50X29wX2dldF9hcnJheV9sZW5ndGg6CiAgICAgdHJhY2VFeGVjdXRp
b24oKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCBkYWIzNWQwNzllYjQ3MTYyNDA4ZGE3ZTVmN2M5NTZi
ZDk4NmZlMGU2Li43N2MxNmIzZGVlODY1ZDcwZjllYjBhZTE5ZTNmNzZlNGI3ZTQxY2U5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCkBAIC0zNjEsNiArMzYxLDggQEAg
dHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAgICAgXAogICAgIHYoYm9vbCwgdXNl
SUNTdGF0cywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIFwKKyAgICB2KHVuc2lnbmVk
LCBwcm90b3R5cGVIaXRDb3VudEZvckxMSW50Q2FjaGluZywgMiwgTm9ybWFsLCAiTnVtYmVyIG9m
IHByb3RvdHlwZSBwcm9wZXJ0eSBoaXRzIGJlZm9yZSBjYWNoaW5nIGEgcHJvdG90eXBlIGluIHRo
ZSBMTEludC4gQSBjb3VudCBvZiAwIG1lYW5zIG5ldmVyIGNhY2hlLiIpIFwKKyAgICBcCiAgICAg
dihib29sLCBkdW1wTW9kdWxlUmVjb3JkLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAg
dihib29sLCBkdW1wTW9kdWxlTG9hZGluZ1N0YXRlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBc
CiAgICAgdihib29sLCBleHBvc2VJbnRlcm5hbE1vZHVsZUxvYWRlciwgZmFsc2UsIE5vcm1hbCwg
ImV4cG9zZSB0aGUgaW50ZXJuYWwgbW9kdWxlIGxvYWRlciBvYmplY3QgdG8gdGhlIGdsb2JhbCBz
cGFjZSBmb3IgZGVidWdnaW5nIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9sbGludC1nZXQtYnktaWQtY2FjaGUtcHJvdG90eXBlLWxvYWQtZnJvbS1k
aWN0aW9uYXJ5LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9sbGludC1n
ZXQtYnktaWQtY2FjaGUtcHJvdG90eXBlLWxvYWQtZnJvbS1kaWN0aW9uYXJ5LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ0YTI3ZTFhMjMxMTI4Mjg4MWI0MjViMmEyNzg3NWNkYzIzYWUwNGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2xsaW50LWdldC1ieS1p
ZC1jYWNoZS1wcm90b3R5cGUtbG9hZC1mcm9tLWRpY3Rpb25hcnkuanMKQEAgLTAsMCArMSwxOSBA
QAorCitleHBlY3RlZCA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7Citmb28gPSB7Zm9vOiAx
LCBiYXI6IDIwfTsKK2RlbGV0ZSBmb28uYmFyOworCisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAg
bGV0IHRvU3RyaW5nID0gZm9vLnRvU3RyaW5nOworICAgIGlmICh0b1N0cmluZyAhPT0gZXhwZWN0
ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigpOworfQorCitmb3IgKGkgPSAwOyBpIDwgMTA7
IGkrKykKKyAgICB0ZXN0KCk7CisKK2Zvby50b1N0cmluZyA9IDEwMDsKK2V4cGVjdGVkID0gMTAw
OworCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9CYWcuaCBiL1NvdXJjZS9X
VEYvd3RmL0JhZy5oCmluZGV4IGRiNTExMzI2YjI2MDU5NzIxNDE3MWM1MzljMTk2YmIxNjQ1OGYx
MzMuLjc2YTlmMTcwMDc1ZDU1MjBjZTgzODUzMzNkMDIxZWY1YWQ2ZjFjYjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0JhZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0JhZy5oCkBAIC00OCw5
ICs0OCwyMCBAQCBwcml2YXRlOgogICAgIAogcHVibGljOgogICAgIEJhZygpCi0gICAgICAgIDog
bV9oZWFkKG51bGxwdHIpCiAgICAgewogICAgIH0KKworICAgIEJhZyhCYWc8VD4mJiBvdGhlcikK
KyAgICB7CisgICAgICAgIEFTU0VSVCghbV9oZWFkKTsKKyAgICAgICAgc3RkOjpzd2FwKG1faGVh
ZCwgb3RoZXIubV9oZWFkKTsKKyAgICB9CisKKyAgICBCYWcmIG9wZXJhdG9yPShCYWc8VD4mJiBv
dGhlcikKKyAgICB7CisgICAgICAgIHN0ZDo6c3dhcChtX2hlYWQsIG90aGVyLm1faGVhZCk7Cisg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CiAgICAgCiAgICAgfkJhZygpCiAgICAgewpAQCAt
MTIxLDcgKzEzMiw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVy
biAhbV9oZWFkOyB9CiAgICAgCiBwcml2YXRlOgotICAgIE5vZGUqIG1faGVhZDsKKyAgICBOb2Rl
KiBtX2hlYWQgeyBudWxscHRyIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279703</attachid>
            <date>2016-05-24 14:13:55 -0700</date>
            <delta_ts>2016-05-24 14:14:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158032-20160524141506.patch</filename>
            <type>text/plain</type>
            <size>39648</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MTFlOWQ0YjZjOTBjYTAxMDdiMmYzN2U2MDRmYjM4OWY2Y2ViYTFjLi44M2IyOGYyOWFhZTliNDZl
MzJmMGU3NDMzZmM5MzIxZTczZGU5MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NSBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0byBjYWNoZSBwcm90b3R5cGUg
bG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgcHJvdG90eXBlIHZhbHVlIGNhY2hp
bmcgdG8gdGhlIExMSW50IGZvciBvcF9nZXRfYnlfaWQuCisgICAgICAgIFR3byBwcmV2aW91c2x5
IHVudXNlZCB3b3JkcyBpbiB0aGUgb3BfZ2V0X2J5X2lkIGJ5dGVjb2RlIGhhdmUgYmVlbgorICAg
ICAgICByZXB1cnBvc2VkIHRvIGhvbGQgZXh0cmEgaW5mb3JtYXRpb24gZm9yIHRoZSBjYWNoZS4g
VGhlIGZpcnN0IGlzIGEKKyAgICAgICAgY291bnRlciB0aGF0IHJlY29yZHMgdGhlIG51bWJlciBv
ZiBnZXRfYnlfaWRzIHRoYXQgaGl0IGEgY2FjaGVhYmxlIHZhbHVlCisgICAgICAgIG9uIGEgcHJv
dG90eXBlLiBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVkIGZyb20gb25lIHRvIHplcm8g
d2UKKyAgICAgICAgYXR0ZW1wdCB0byBjYWNoZSB0aGUgcHJvdG90eXBlIGxvYWQsIHdoaWNoIHdp
bGwgYmUgZGlzY3Vzc2VkIGZ1cnRoZXIKKyAgICAgICAgYmVsb3cuIFRoZSBzZWNvbmQgd29yZCBp
cyB1c2VkIHRvIGhvbGQgdGhlIHByb3RvdHlwZSBvYmplY3Qgd2hlbiB3ZSBoYXZlCisgICAgICAg
IHN0YXJ0ZWQgY2FjaGluZy4KKworICAgICAgICBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVu
dGVkIHRvIHplcm8gd2UgZmlyc3QgYXR0ZW1wdCB0byBnZW5lcmF0ZSBhbmQKKyAgICAgICAgd2F0
Y2ggdGhlIHByb3BlcnR5IGNvbmRpdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgdmFsaWRpdHkg
b2YgcHJvdG90eXBlCisgICAgICAgIGxvYWQuIElmIHRoZSB3YXRjaHBvaW50cyBhcmUgc3VjY2Vz
c2Z1bGx5IGNyZWF0ZWQgYW5kIGluc3RhbGxlZCB3ZQorICAgICAgICByZXBsYWNlIHRoZSBvcF9n
ZXRfYnlfaWQgb3Bjb2RlIHdpdGggdGhlIG5ldyBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZAorICAg
ICAgICBvcGNvZGUsIHdoaWNoIHRlbGxzIHRoZSBMTEludCB0byB1c2UgdGhlIGNhY2hlIHByb3Rv
dHlwZSBvYmplY3QgZm9yIHRoZQorICAgICAgICBsb2FkIHJhdGhlciB0aGFuIHRoZSBiYXNlIHZh
bHVlLgorCisgICAgICAgIFByaW9yIHRvIHRoaXMgcGF0Y2ggdGhlcmUgd2FzIG5vdCBMTEludCBz
cGVjaWZpYyBkYXRhIG9uQ29kZUJsb2Nrcy4KKyAgICAgICAgU2luY2UgdGhlIENvZGVCbG9jayBu
ZWVkcyB0byBvd24gdGhlIFdhdGNocG9pbnRzIGZvciB0aGUgY2FjaGUsIGEgd2VhaworICAgICAg
ICBtYXAgZnJvbSBlYWNoIGJhc2Ugc3RydWN0dXJlIHRvIGEgYmFnIG9mIFdhdGNocG9pbnRzIGNy
ZWF0ZWQgZm9yIHRoYXQKKyAgICAgICAgc3RydWN0dXJlIGJ5IHNvbWUgb3BfZ2V0X2J5X2lkIGhh
cyBiZWVuIGFkZGVkIHRvIHRoZSBDb2RlQmxvY2suIER1cmluZworICAgICAgICBHQywgaWYgd2Ug
ZmluZCB0aGF0IHRoZSBhIHN0cnVjdHVyZSBpbiB0aGUgbWFwIGhhcyBub3QgYmVlbiBtYXJrZWQg
d2UKKyAgICAgICAgZnJlZSB0aGUgYXNzb2NpYXRlZCBiYWcgb24gdGhlIENvZGVCbG9jay4KKwor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246CisgICAgICAgICogYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNl
dCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJp
bnRHZXRCeUlkT3ApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnByaW50R2V0QnlJZENhY2hl
U3RhdHVzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMpOgorICAgICAgICAq
IGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmxsaW50R2V0
QnlJZFdhdGNocG9pbnRNYXApOgorICAgICAgICAoSlNDOjpjbGVhckxMSW50R2V0QnlJZENhY2hl
KToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6
R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludCk6CisgICAgICAgICogYnl0ZWNvZGUvTExJ
bnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0M6OkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2lu
dDo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50KToKKyAgICAg
ICAgKEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50Ojpp
bnN0YWxsKToKKyAgICAgICAgKEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1
cmVXYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL0xMSW50UHJv
dG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oOiBBZGRlZC4KKyAgICAgICAg
KiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHA6CisgICAgICAgIChKU0M6
Ok9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Ojppc1ZhbGlkQW5kV2F0Y2hhYmxlKToKKyAgICAg
ICAgKiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oOgorICAgICAgICAqIGJ5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0R2V0QnlJZCk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6Cisg
ICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2Fw
YWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklU
Ojpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29t
cGlsZVNsb3dDYXNlcyk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAg
ICAgICAoSlNDOjpMTEludDo6c2V0dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUpOgorICAgICAgICAo
SlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIGxsaW50L0xMSW50
U2xvd1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAq
IHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9sbGludC1nZXQtYnkt
aWQtY2FjaGUtcHJvdG90eXBlLWxvYWQtZnJvbS1kaWN0aW9uYXJ5LmpzOiBBZGRlZC4KKyAgICAg
ICAgKHRlc3QpOgorCiAyMDE2LTA1LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpd2VkLCBhZGQgYSBjb21tZW50IHRvIGRlc2NyaWJlIHRoZSB0ZXN0
J3MgZmFpbHVyZSBtb2RlLiBTdWdnZXN0ZWQgYnkgbWxhbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2Y4NDI4MjA1ZjhiNzA3
NGJiYjg0YWM2ODdiOTJlZGYyNDQ5MDk2Ny4uNzY2OWNlZGEzOGU3ZTg3MDE5YjhkMWU2NmI2NTA2
M2U3NmJjOTU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVy
ICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJs
ZSB0byBjYWNoZSBwcm90b3R5cGUgbG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbW92ZSBjb25zdHJ1
Y3RvcnMvaW5pdGlhbGl6ZXJzIHRvIEJhZ3MuCisKKyAgICAgICAgKiB3dGYvQmFnLmg6CisgICAg
ICAgIChXVEY6OkJhZzo6QmFnKToKKyAgICAgICAgKFdURjo6QmFnOjpvcGVyYXRvcj0pOgorCiAy
MDE2LTA1LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNl
IGF1dG8gZm9yIHNvbWUgb2Ygb3VyIGxhbWJkYSBmdW5jdGlvbiBwYXJhbWV0ZXJzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhjODkyNWM2ZDNhNWY4MzhkY2M2MDRjYzE1MjEzMDVl
ZDE0MjEwYWUuLjNlMjc3YTljMTFjOTU0YjgwYzdmYmY2YjRmZjJiYzVmYTY2Mjk1ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTgxLDYgKzExODEsOCBAQAogCQk1MzcwQjRG
NjFCRjI2MjA1MDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBv
aW50QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTM3MEI0RjQxQkYyNUVBMjAwNUM0MEZDIC8qIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVl
V2F0Y2hwb2ludEJhc2UuaCAqLzsgfTsKIAkJNTM5MTdFN0IxQjc5MDZGQTAwMEVCRDMzIC8qIEpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzkxN0U3QTFCNzkwNkU0MDAwRUJEMzMg
LyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCAqLzsgfTsKIAkJ
NTNGNkJGNkQxQzNGMDYwQTAwRjQxRTVEIC8qIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJv
ZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNG
NkJGNkMxQzNGMDYwQTAwRjQxRTVEIC8qIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmls
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUz
RkEyQUUxMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzRkEyQUUwMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFw
dGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCAqLzsgfTsKKwkJNTNGQTJBRTMxQ0YzODAzOTAwMjI3
MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0ZBMkFFMjFD
RjM4MDM5MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRj
aHBvaW50LmNwcCAqLzsgfTsKIAkJNUQ1RDhBRDEwRTBEMEVCRTAwRjlDNjkyIC8qIGxpYmVkaXQu
ZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
RDVEOEFEMDBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRpdC5keWxpYiAqLzsgfTsKIAkJNURCQjE1
MUIxMzFEMEIzMTAwNTZBRDM2IC8qIHRlc3RhcGkuanMgaW4gQ29weSBTdXBwb3J0IFNjcmlwdCAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEQ4NTc3NDBBNDY5NkM4MDAzMjE0
NkMgLyogdGVzdGFwaS5qcyAqLzsgfTsKIAkJNURCQjE1MjUxMzFEMEJENzAwNTZBRDM2IC8qIG1p
bmlkb20uanMgaW4gQ29weSBTdXBwb3J0IFNjcmlwdCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDEyMTEwRDBBNDg3ODg3MDA0ODAyNTUgLyogbWluaWRvbS5qcyAqLzsgfTsK
QEAgLTMzMjEsNiArMzMyMyw4IEBACiAJCTUzOTE3RTgzMUI3OTFDQjgwMDBFQkQzMyAvKiBUeXBl
ZEFycmF5UHJvdG90eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gVHlwZWRBcnJheVByb3RvdHlwZS5qczsgcGF0aCA9IGJ1aWx0aW5zL1R5cGVkQXJyYXlQcm90
b3R5cGUuanM7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNTNGMjU2RTExQjg3RTI4
MDAwQjRCNzY4IC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzRjZCRjZDMUMzRjA2MEEwMEY0MUU1RCAvKiBJ
bnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzRkEyQUUwMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFBy
b3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRj
aHBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzRkEyQUUyMUNGMzgwMzkw
MDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTExJbnRQcm90b3R5cGVM
b2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTkzRDQzQ0NBMEJCRTA2RDg5QzU5NzA3IC8qIE1hcERhdGFJbmxpbmVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcERhdGFJbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENUQ4QUQwMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0
LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
ImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJlZGl0LmR5bGliOyBwYXRoID0gL3Vz
ci9saWIvbGliZWRpdC5keWxpYjsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJNURB
RkQ2Q0IxNDZCNjg2MzAwRkJFRkI0IC8qIEpTQy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBKU0Mu
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTc1LDYgKzY1NzksOCBA
QAogCQkJCTBGQjU0Njc4MTRGNUM0NjgwMDJDMjk4OSAvKiBMYXp5T3BlcmFuZFZhbHVlUHJvZmls
ZS5jcHAgKi8sCiAJCQkJMEZCNTQ2NzYxNEY1OUFEMTAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmggKi8sCiAJCQkJMEYwRkM0NTgxNEJEMTVGMTAwQjgxMTU0IC8qIExMSW50Q2Fs
bExpbmtJbmZvLmggKi8sCisJCQkJNTNGQTJBRTIxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50UHJv
dG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgKi8sCisJCQkJNTNGQTJB
RTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJl
V2F0Y2hwb2ludC5oICovLAogCQkJCTBGQjU0NjdDMTRGNUNGRDMwMDJDMjk4OSAvKiBNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlLmNwcCAqLywKIAkJCQkwRkI1NDY3QTE0RjVDN0Q0MDAyQzI5
ODkgLyogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oICovLAogCQkJCTE0Q0E5NThDMTZB
QjUwRkEwMDkzOEEwNiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oICovLApAQCAtNzkxMCw2
ICs3OTE2LDcgQEAKIAkJCQkwRkY3MTY4QzE1QTNCMjM1MDA4RjVEQUEgLyogUHJvcGVydHlPZmZz
ZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDU1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9w
ZXJ0eVNsb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzlDMTVFRDhFNDYwMEYxNjdCMiAv
KiBQcm9wZXJ0eVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTUzRkEyQUUxMUNGMzdGM0Yw
MDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDU2MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm90ZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDc0QzMzQjE2QUEyRDk1MDA2MkYwMUQgLyogUHJvdG90
eXBlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU3ODBBMjE4RkUxRTk4MDAxRTcyRDkgLyog
UHVyZU5hTi5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjM1LDYgKzg2NDIsNyBAQAogCQkJCTY1QzAy
ODUwMTcxNzk1RTIwMDM1MUUzNSAvKiBBUk12N0Rpc2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk2NUMwMjg1QzE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdET3Bjb2RlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGODMzNUI3MTYzOUMxRTYwMDE0NDNCNSAvKiBBcnJheUFsbG9jYXRp
b25Qcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUzRkEyQUUzMUNGMzgwMzkwMDIyNzEx
RCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTdBOEFGMzQxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRkM5OUQ0MTg0RUUzMTgwMDlDMTBBQiAvKiBBcnJh
eUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdBOEFG
MzYxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3Qu
anNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpp
bmRleCBhODA2NTZlMjU1ZDI1MmEzODBmODg1YTlmYmFhYTUwMDM4NDc1MGIyLi4yMWZmYjM4YjI0
NzQ2ZWU0ODRjOGYzNTU2NzUxYTU3OTNmYWFjMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC01OCwxMSArNTgsMTIgQEAKICAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2lzX29iamVjdF9vcl9udWxsIiwgImxlbmd0aCIgOiAz
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9pc19mdW5jdGlvbiIsICJsZW5ndGgiIDog
MyB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaW4iLCAibGVuZ3RoIiA6IDQgfSwKLSAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3RyeV9nZXRfYnlfaWQiLCAibGVuZ3RoIiA6IDQgfSwK
KyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9hcnJheV9sZW5ndGgiLCAibGVuZ3RoIiA6
IDkgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9ieV9pZCIsICJsZW5ndGgiIDog
OSAgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9ieV9pZF9wcm90b19sb2FkIiwg
Imxlbmd0aCIgOiA5IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRfYnlfaWRfd2l0
aF90aGlzIiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRf
YnlfdmFsX3dpdGhfdGhpcyIsICJsZW5ndGgiIDogNSB9LAotICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfZ2V0X2FycmF5X2xlbmd0aCIsICJsZW5ndGgiIDogOSB9LAorICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3BfdHJ5X2dldF9ieV9pZCIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAg
eyAibmFtZSIgOiAib3BfcHV0X2J5X2lkIiwgImxlbmd0aCIgOiA5IH0sCiAgICAgICAgICAgICB7
ICJuYW1lIiA6ICJvcF9wdXRfYnlfaWRfd2l0aF90aGlzIiwgImxlbmd0aCIgOiA1IH0sCiAgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF9kZWxfYnlfaWQiLCAibGVuZ3RoIiA6IDQgfSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKaW5kZXggZmQx
ZjQ0ZTRiYjA5NDJiMzEzY2IwNzgzOTIwMjVhNzlhNDE5OTJlYS4uNmE3Zjc1ZTI5MjFjYWY5Yjk0
ZjljNjNkYThjZTlkM2Q2MjQxOGRjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKQEAgLTE1OCw2ICsxNTgsNyBAQCB2b2lkIGNvbXB1dGVV
c2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAgY2FzZSBvcF90b19wcmltaXRpdmU6CiAgICAgY2Fz
ZSBvcF90cnlfZ2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAgIGNhc2Ugb3Bf
Z2V0X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAg
IGNhc2Ugb3BfdHlwZW9mOgogICAgIGNhc2Ugb3BfaXNfZW1wdHk6CkBAIC0zOTIsNiArMzkzLDcg
QEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2Nr
LCBCeXRlY29kZUJhc2ljQmxvY2sqIGJsb2MKICAgICBjYXNlIG9wX2NvbnN0cnVjdDoKICAgICBj
YXNlIG9wX3RyeV9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgY2FzZSBv
cF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICBjYXNlIG9wX2dldF9ieV9pZF93aXRoX3RoaXM6
CiAgICAgY2FzZSBvcF9nZXRfYnlfdmFsX3dpdGhfdGhpczoKICAgICBjYXNlIG9wX2dldF9hcnJh
eV9sZW5ndGg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
CmluZGV4IDU0MWY0NTI3YWQ2OTkxMmQ1YzkzYmY2ZTY4MWZlN2YwNDI4MGY5OTAuLjBjNjUzM2M0
NTU5YWE2MDMzMDg5NzdjNzQwMDcxNmRlZWI5NDlhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAi
SlNMZXhpY2FsRW52aXJvbm1lbnQuaCIKICNpbmNsdWRlICJKU01vZHVsZUVudmlyb25tZW50Lmgi
CiAjaW5jbHVkZSAiTExJbnRFbnRyeXBvaW50LmgiCisjaW5jbHVkZSAiTExJbnRQcm90b3R5cGVM
b2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRl
cnByZXRlci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJQQ1RvQ29kZU9y
aWdpbk1hcC5oIgpAQCAtMzQ1LDYgKzM0Niw5IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludEdldEJ5
SWRPcChQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsb2NhdGlvbiwKICAg
ICBjYXNlIG9wX2dldF9ieV9pZDoKICAgICAgICAgb3AgPSAiZ2V0X2J5X2lkIjsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKKyAgICAgICAgb3AgPSAi
Z2V0X2J5X2lkX3Byb3RvX2xvYWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIG9wX2dldF9h
cnJheV9sZW5ndGg6CiAgICAgICAgIG9wID0gImFycmF5X2xlbmd0aCI7CiAgICAgICAgIGJyZWFr
OwpAQCAtNDA1LDYgKzQwOSw4IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludEdldEJ5SWRDYWNoZVN0
YXR1cyhQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsCiAgICAgICAgIG91
dC5wcmludGYoIiBsbGludCgiKTsKICAgICAgICAgZHVtcFN0cnVjdHVyZShvdXQsICJzdHJ1Y3Qi
LCBzdHJ1Y3R1cmUsIGlkZW50KTsKICAgICAgICAgb3V0LnByaW50ZigiKSIpOworICAgICAgICBp
ZiAoZXhlYy0+aW50ZXJwcmV0ZXIoKS0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25bMF0udS5vcGNv
ZGUpID09IG9wX2dldF9ieV9pZF9wcm90b19sb2FkKQorICAgICAgICAgICAgb3V0LnByaW50Zigi
IHByb3RvKCVwKSIsIGluc3RydWN0aW9uWzZdLnUucG9pbnRlcik7CiAgICAgfQogCiAjaWYgRU5B
QkxFKEpJVCkKQEAgLTExMTIsNiArMTExOCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNv
ZGUoCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9i
eV9pZDoKKyAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICAgICAgY2Fz
ZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOiB7CiAgICAgICAgICAgICBwcmludEdldEJ5SWRPcChvdXQs
IGV4ZWMsIGxvY2F0aW9uLCBpdCk7CiAgICAgICAgICAgICBwcmludEdldEJ5SWRDYWNoZVN0YXR1
cyhvdXQsIGV4ZWMsIGxvY2F0aW9uLCBzdHViSW5mb3MpOwpAQCAtMjc1NCwxNCArMjc2MSwxNCBA
QCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVMTEludElubGluZUNhY2hlcygpCiAgICAgZm9yIChz
aXplX3Qgc2l6ZSA9IHByb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25zLnNpemUoKSwgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIGN1ckluc3RydWN0aW9uID0gJmlu
c3RydWN0aW9ucygpW3Byb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25zW2ldXTsKICAgICAgICAgc3dp
dGNoIChpbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoY3VySW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUp
KSB7Ci0gICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOiB7CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5
X2lkOgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOiB7CiAgICAgICAgICAg
ICBTdHJ1Y3R1cmVJRCBvbGRTdHJ1Y3R1cmVJRCA9IGN1ckluc3RydWN0aW9uWzRdLnUuc3RydWN0
dXJlSUQ7CiAgICAgICAgICAgICBpZiAoIW9sZFN0cnVjdHVyZUlEIHx8IEhlYXA6OmlzTWFya2Vk
KG1fdm0tPmhlYXAuc3RydWN0dXJlSURUYWJsZSgpLmdldChvbGRTdHJ1Y3R1cmVJRCkpKQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1Io
KSkKICAgICAgICAgICAgICAgICBkYXRhTG9nRigiQ2xlYXJpbmcgTExJbnQgcHJvcGVydHkgYWNj
ZXNzLlxuIik7Ci0gICAgICAgICAgICBjdXJJbnN0cnVjdGlvbls0XS51LnN0cnVjdHVyZUlEID0g
MDsKLSAgICAgICAgICAgIGN1ckluc3RydWN0aW9uWzVdLnUub3BlcmFuZCA9IDA7CisgICAgICAg
ICAgICBjbGVhckxMSW50R2V0QnlJZENhY2hlKGN1ckluc3RydWN0aW9uKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkOiB7CkBAIC0yODM1
LDYgKzI4NDIsMTIgQEAgdm9pZCBDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMo
KQogICAgICAgICB9CiAgICAgfQogCisgICAgLy8gV2UgY2FuJ3QganVzdCByZW1vdmUgYWxsIHRo
ZSBzZXRzIHdoZW4gd2UgY2xlYXIgdGhlIGNhY2hlcyBzaW5jZSB3ZSBtaWdodCBoYXZlIGNyZWF0
ZWQgYSB3YXRjaHBvaW50IHNldAorICAgIC8vIHRoZW4gY2xlYXJlZCB0aGUgY2FjaGUgd2l0aG91
dCBHQ2luZyBpbiBiZXR3ZWVuLgorICAgIG1fbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcC5yZW1v
dmVJZihbXShjb25zdCBTdHJ1Y3R1cmVXYXRjaHBvaW50TWFwOjpLZXlWYWx1ZVBhaXJUeXBlJiBw
YWlyKSAtPiBib29sIHsKKyAgICAgICAgcmV0dXJuICFIZWFwOjppc01hcmtlZChwYWlyLmtleSk7
CisgICAgfSk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9sbGludENhbGxMaW5r
SW5mb3Muc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fbGxpbnRDYWxsTGlua0luZm9zW2ld
LmlzTGlua2VkKCkgJiYgIUhlYXA6OmlzTWFya2VkKG1fbGxpbnRDYWxsTGlua0luZm9zW2ldLmNh
bGxlZS5nZXQoKSkpIHsKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggY2JiOGNmNTcw
MWNjZTc5NWE2MjUyZjRhN2U3YTA0YTU3NDFiMGIyZi4uNjY0ZWNmZWIwMTdiY2NhNzZmYTUwMThi
ZDQ0MjBhYzZiMjNiM2ZhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAj
aW5jbHVkZSAiSnVtcFRhYmxlLmgiCiAjaW5jbHVkZSAiTExJbnRDYWxsTGlua0luZm8uaCIKKyNp
bmNsdWRlICJMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCIK
ICNpbmNsdWRlICJMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5oIgogI2luY2x1ZGUgIk9iamVjdEFs
bG9jYXRpb25Qcm9maWxlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgpAQCAtNjc4LDYgKzY3OSw5
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fbGxpbnRFeGVjdXRlQ291bnRlcjsKICAgICB9
CiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3RydWN0dXJlKiwgQmFnPExMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludD4+IFN0cnVjdHVyZVdhdGNocG9pbnRNYXA7Cisg
ICAgU3RydWN0dXJlV2F0Y2hwb2ludE1hcCYgbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcCgpIHsg
cmV0dXJuIG1fbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcDsgfQorCiAgICAgLy8gRnVuY3Rpb25z
IGZvciBjb250cm9sbGluZyB3aGVuIHRpZXJlZCBjb21waWxhdGlvbiBraWNrcyBpbi4gVGhpcwog
ICAgIC8vIGNvbnRyb2xzIGJvdGggd2hlbiB0aGUgb3B0aW1pemluZyBjb21waWxlciBpcyBpbnZv
a2VkIGFuZCB3aGVuIE9TUgogICAgIC8vIGVudHJ5IGhhcHBlbnMuIFR3byB0cmlnZ2VycyBleGlz
dDogdGhlIGxvb3AgdHJpZ2dlciBhbmQgdGhlIHJldHVybgpAQCAtMTAxOSw2ICsxMDIzLDcgQEAg
cHJpdmF0ZToKIAogICAgIFJlZkNvdW50ZWRBcnJheTxMTEludENhbGxMaW5rSW5mbz4gbV9sbGlu
dENhbGxMaW5rSW5mb3M7CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PExMSW50Q2FsbExpbmtJbmZv
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxMTEludENhbGxMaW5rSW5mbz4+IG1faW5jb21pbmdMTElu
dENhbGxzOworICAgIFN0cnVjdHVyZVdhdGNocG9pbnRNYXAgbV9sbGludEdldEJ5SWRXYXRjaHBv
aW50TWFwOwogICAgIFJlZlB0cjxKSVRDb2RlPiBtX2ppdENvZGU7CiAjaWYgRU5BQkxFKEpJVCkK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0ZXJBdE9mZnNldExpc3Q+IG1fY2FsbGVlU2F2ZVJl
Z2lzdGVyczsKQEAgLTEzMDksNiArMTMxNCwxNCBAQCBwcml2YXRlOgogfTsKICNlbmRpZgogCitp
bmxpbmUgdm9pZCBjbGVhckxMSW50R2V0QnlJZENhY2hlKEluc3RydWN0aW9uKiBpbnN0cnVjdGlv
bikKK3sKKyAgICBpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUob3Bf
Z2V0X2J5X2lkKTsKKyAgICBpbnN0cnVjdGlvbls0XS51LnBvaW50ZXIgPSBudWxscHRyOworICAg
IGluc3RydWN0aW9uWzVdLnUucG9pbnRlciA9IG51bGxwdHI7CisgICAgaW5zdHJ1Y3Rpb25bNl0u
dS5wb2ludGVyID0gbnVsbHB0cjsKK30KKwogaW5saW5lIFJlZ2lzdGVyJiBFeGVjU3RhdGU6OnIo
aW50IGluZGV4KQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+Y29kZUJsb2Nr
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0
YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAKaW5kZXggYzY5NTE0YzU3ZTg5MDNjMDI1YjI1N2ZjMDEzYmUxNzMyYzk0NWMwYi4uNTllODFj
NzUxYWZhMDdhNGFkZjU0ZTFkNmI0MmYyYTc0ZDVlYTczOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcApAQCAtNzUsOCArNzUsMTIgQEAg
R2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KENvZGVCbG9jayog
cHJvZmlsZWRCbG9jaywgdW5zaWduZWQKICAgICBWTSYgdm0gPSAqcHJvZmlsZWRCbG9jay0+dm0o
KTsKICAgICAKICAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSBwcm9maWxlZEJsb2NrLT5p
bnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnl0ZWNvZGVJbmRleDsKLSAgICAKLSAgICBpZiAoaW5z
dHJ1Y3Rpb25bMF0udS5vcGNvZGUgPT0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlfbGVu
Z3RoKSB8fCBpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX3Ry
eV9nZXRfYnlfaWQpKQorCisgICAgT3Bjb2RlIG9wY29kZSA9IGluc3RydWN0aW9uWzBdLnUub3Bj
b2RlOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3QganVzdCBiYWlsIGlmIHdlIHNlZSBh
IHRyeV9nZXRfYnlfaWQgb3IgYSBnZXRfYnlfaWRfcHJvdG9fbG9hZC4OCisgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODAzOQorICAgIGlmIChvcGNvZGUg
PT0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlfbGVuZ3RoKSB8fCBvcGNvZGUgPT0gTExJ
bnQ6OmdldE9wY29kZShvcF90cnlfZ2V0X2J5X2lkKSB8fCBvcGNvZGUgPT0gTExJbnQ6OmdldE9w
Y29kZShvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZCkpCiAgICAgICAgIHJldHVybiBHZXRCeUlkU3Rh
dHVzKE5vSW5mb3JtYXRpb24sIGZhbHNlKTsKIAogICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlE
ID0gaW5zdHJ1Y3Rpb25bNF0udS5zdHJ1Y3R1cmVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50UHJvdG90
eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FlMmMw
ZGM2M2E4MWVlYjk4NjZmY2Q1NjMwMGZlYTI2MGM1NDAyYQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0
cnVjdHVyZVdhdGNocG9pbnQuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgiCisKKyNp
bmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUg
IlN0cnVjdHVyZUlubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK0xMSW50UHJvdG90eXBl
TG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRp
dmVTdHJ1Y3R1cmVXYXRjaHBvaW50KGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJiBrZXks
IEluc3RydWN0aW9uKiBnZXRCeUlkSW5zdHJ1Y3Rpb24pCisgICAgOiBtX2tleShrZXkpCisgICAg
LCBtX2dldEJ5SWRJbnN0cnVjdGlvbihnZXRCeUlkSW5zdHJ1Y3Rpb24pCit7CisgICAgUkVMRUFT
RV9BU1NFUlQoa2V5LndhdGNoaW5nUmVxdWlyZXNTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2lu
dCgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVCgha2V5LndhdGNoaW5nUmVxdWlyZXNSZXBsYWNlbWVu
dFdhdGNocG9pbnQoKSk7Cit9CisKK3ZvaWQgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1
Y3R1cmVXYXRjaHBvaW50OjppbnN0YWxsKCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2tleS5p
c1dhdGNoYWJsZSgpKTsKKworICAgIG1fa2V5Lm9iamVjdCgpLT5zdHJ1Y3R1cmUoKS0+YWRkVHJh
bnNpdGlvbldhdGNocG9pbnQodGhpcyk7Cit9CisKK3ZvaWQgTExJbnRQcm90b3R5cGVMb2FkQWRh
cHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwoY29uc3QgRmlyZURldGFpbCYg
ZGV0YWlsKQoreworICAgIGlmIChtX2tleS5pc1dhdGNoYWJsZShQcm9wZXJ0eUNvbmRpdGlvbjo6
RW5zdXJlV2F0Y2hhYmlsaXR5KSkgeworICAgICAgICBpbnN0YWxsKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBTdHJpbmdQcmludFN0cmVhbSBvdXQ7CisgICAgb3V0LnByaW50KCJP
YmplY3RUb1N0cmluZ1ZhbHVlIEFkYXB0YXRpb24gb2YgIiwgbV9rZXksICIgZmFpbGVkOiAiLCBk
ZXRhaWwpOworCisgICAgU3RyaW5nRmlyZURldGFpbCBzdHJpbmdEZXRhaWwob3V0LnRvQ1N0cmlu
ZygpLmRhdGEoKSk7CisKKyAgICBjbGVhckxMSW50R2V0QnlJZENhY2hlKG1fZ2V0QnlJZEluc3Ry
dWN0aW9uKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVX
YXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRQcm90b3R5
cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYxNWUxMDYw
MmZiMjkzNzNjYmUxMWFmZWU2ZmIwZjJjYWNlOWY4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2
ZVN0cnVjdHVyZVdhdGNocG9pbnRfaAorI2RlZmluZSBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2
ZVN0cnVjdHVyZVdhdGNocG9pbnRfaAorCisjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKKyNpbmNs
dWRlICJPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5oIgorI2luY2x1ZGUgIldhdGNocG9pbnQuaCIK
KworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3Ry
dWN0dXJlV2F0Y2hwb2ludCA6IHB1YmxpYyBXYXRjaHBvaW50IHsKK3B1YmxpYzoKKyAgICBMTElu
dFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQoY29uc3QgT2JqZWN0UHJv
cGVydHlDb25kaXRpb24mLCBJbnN0cnVjdGlvbiopOworCisgICAgdm9pZCBpbnN0YWxsKCk7CisK
K3Byb3RlY3RlZDoKKyAgICB2b2lkIGZpcmVJbnRlcm5hbChjb25zdCBGaXJlRGV0YWlsJikgb3Zl
cnJpZGU7CisKK3ByaXZhdGU6CisgICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb24gbV9rZXk7Cisg
ICAgSW5zdHJ1Y3Rpb24qIG1fZ2V0QnlJZEluc3RydWN0aW9uOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCisKKyNlbmRpZiAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnRfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKaW5kZXggZDU3MDA0MDBmOGIy
NjNlNWZmNzc1ZWZlZjg4YmE1Y2IwOWRiNDIwYi4uMDU3MjNhZDgyMmZmOTFmNWIxMjQ2YzRmN2I0
NDFmMjFkNWQyOWNhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwCkBAIC0xNjcsNiArMTY3
LDE4IEBAIHZvaWQgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQ6OmR1bXAoUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QKICAgICBkdW1wSW5Db250ZXh0KG91dCwgbnVsbHB0cik7CiB9CiAKK2Jvb2wg
T2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQ6OmlzVmFsaWRBbmRXYXRjaGFibGUoKSBjb25zdAor
eworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3Ig
KE9iamVjdFByb3BlcnR5Q29uZGl0aW9uIGNvbmRpdGlvbiA6IG1fZGF0YS0+dmVjdG9yKSB7Cisg
ICAgICAgIGlmICghY29uZGl0aW9uLmlzV2F0Y2hhYmxlKCkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCiBuYW1lc3BhY2UgewogCiBib29s
IHZlcmJvc2UgPSBmYWxzZTsKQEAgLTI1NCw5ICsyNjYsMTEgQEAgT2JqZWN0UHJvcGVydHlDb25k
aXRpb25TZXQgZ2VuZXJhdGVDb25kaXRpb25zKAogICAgICAgICAvLyBTaW5jZSB3ZSdyZSBhY2Nl
c3NpbmcgYSBwcm90b3R5cGUgcmVwZWF0ZWRseSwgaXQncyBhIGdvb2QgYmV0IHRoYXQgaXQgc2hv
dWxkIG5vdCBiZQogICAgICAgICAvLyB0cmVhdGVkIGFzIGEgZGljdGlvbmFyeS4KICAgICAgICAg
aWYgKHN0cnVjdHVyZS0+aXNEaWN0aW9uYXJ5KCkpIHsKLSAgICAgICAgICAgIGlmIChjb25jdXJy
ZW5jeSA9PSBNYWluVGhyZWFkKQorICAgICAgICAgICAgaWYgKGNvbmN1cnJlbmN5ID09IE1haW5U
aHJlYWQpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAg
ICAgZGF0YUxvZygiRmxhdHRlbmluZyAiLCBwb2ludGVyRHVtcChzdHJ1Y3R1cmUpKTsKICAgICAg
ICAgICAgICAgICBzdHJ1Y3R1cmUtPmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKHZtLCBvYmpl
Y3QpOwotICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJDYW5ub3Qg
ZmxhdHRlbiBkaWN0aW9uYXJ5IHdoZW4gbm90IG9uIG1haW4gdGhyZWFkLCBzbyBpbnZhbGlkLlxu
Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Ojpp
bnZhbGlkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb25TZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oCmluZGV4IDc2ZThhOWNkYTgwMDZhOWFhZjUx
YTZmODcyNzAwNjJjN2E5ZDkxMzIuLjAxY2UxYTg0MWMzMzBmMmNiZTRiZjI3YjkyZjE0YWRlYTJh
YzkwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQ
cm9wZXJ0eUNvbmRpdGlvblNldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oCkBAIC02Nyw2ICs2Nyw4IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIHJldHVybiAhbV9kYXRhIHx8ICFtX2RhdGEtPnZlY3Rvci5pc0VtcHR5
KCk7CiAgICAgfQorCisgICAgYm9vbCBpc1ZhbGlkQW5kV2F0Y2hhYmxlKCkgY29uc3Q7CiAgICAg
CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IGI1
MDE1MWQxZGQwNWIzMzk0ZGNlY2ZmYjMyZWI0YmU1MGZlMGVlZGUuLjU4MDM2NjEzNjUzODYxNzk0
MjcwYjM0Zjk3MTIyOWQ3MDRhODNjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0yNDMxLDcgKzI0
MzEsNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldEJ5SWQoUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBjbwogICAgIGluc3RydWN0aW9ucygpLmFwcGVu
ZCgwKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoMCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCku
YXBwZW5kKDApOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsKKyAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoT3B0aW9uczo6cHJvdG90eXBlSGl0Q291bnRGb3JMTEludENhY2hpbmcoKSk7
CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb2ZpbGUpOwogICAgIHJldHVybiBkc3Q7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmlu
ZGV4IGFhODMxYzM1M2ZiYjA1ZDEyYWMwZTkyZDFmYzFiNjZlM2E1MThhMzYuLjNjMjgxMjJjODQy
YjVjODkyMzgxNGZjODA4ODg3NGU1ZjQxNDA1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC00MDgxLDYgKzQwODEsNyBAQCBib29s
IEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICB9CiAK
ICAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3By
b3RvX2xvYWQ6CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDogewogICAgICAgICAg
ICAgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb24oKTsKICAgICAgICAg
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRp
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmlu
ZGV4IDA2NjY5ZDQwNjhmZTgzNGI4NGJjYWViOThiYmM2MGRhN2M3ZWUyNGMuLjA2MjQyN2NiOTMx
MjdmOTExMDVlMzc2OTBkYTZiNWMyNjdlM2ViM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTE1NCw2ICsxNTQsNyBAQCBDYXBhYmlsaXR5
TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3BfcHV0X2J5X3ZhbF9kaXJlY3Q6CiAgICAgY2FzZSBv
cF90cnlfZ2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAgIGNhc2Ugb3BfZ2V0
X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWRfd2l0aF90aGlzOgogICAg
IGNhc2Ugb3BfZ2V0X2J5X3ZhbF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVu
Z3RoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGFkYWE4NjA3ZjZjNDRhYzA0MzI1
OWVjNDdlNTA3Y2UwZmM5MzA2ODYuLjkyYWFjOTk0OGI1ZTFkMWE0ZDE2MzQ4NDk2YWI3NmQ4MjZi
YThiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTI0MCw2ICsyNDAsNyBAQCB2
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIERFRklORV9PUChvcF9l
cV9udWxsKQogICAgICAgICBERUZJTkVfT1Aob3BfdHJ5X2dldF9ieV9pZCkKICAgICAgICAgY2Fz
ZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19s
b2FkOgogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJTkVfT1Ao
b3BfZ2V0X2J5X2lkX3dpdGhfdGhpcykKICAgICAgICAgREVGSU5FX09QKG9wX2dldF9ieV92YWwp
CkBAIC00MjIsNiArNDIzLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkK
ICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2VxKQogICAgICAgICBERUZJTkVfU0xPV0NB
U0VfT1Aob3BfdHJ5X2dldF9ieV9pZCkKICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3Ro
OgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOgogICAgICAgICBERUZJTkVf
U0xPV0NBU0VfT1Aob3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3Bf
Z2V0X2J5X3ZhbCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2luc3RhbmNlb2YpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCBm
YTg4Mzc0Y2U2MTVlYzFhYTA5ZmU3YTMyMDcxYTIxYjkyMTI5MDA3Li5hMTAzNTg4M2QxNGJiNWYy
MDUzYTQ0NmRmYTY0ZWY1MjgzMGNjOWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJMTElu
dEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVk
ZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJPYmplY3RQcm9wZXJ0eUNvbmRpdGlv
blNldC5oIgogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU2hhZG93Q2hp
Y2tlbi5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgpAQCAtNTgwLDYg
KzU4MSw0MyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfdHJ5X2dldF9ieV9pZCkK
ICAgICBMTElOVF9SRVRVUk4oc2xvdC5nZXRQdXJlUmVzdWx0KCkpOwogfQogCitzdGF0aWMgdm9p
ZCBzZXR1cEdldEJ5SWRQcm90b3R5cGVDYWNoZShFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgSW5z
dHJ1Y3Rpb24qIHBjLCBKU0NlbGwqIGJhc2VDZWxsLCBQcm9wZXJ0eVNsb3QmIHNsb3QsIGNvbnN0
IElkZW50aWZpZXImIGlkZW50KQoreworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+
Y29kZUJsb2NrKCk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0
dXJlKCk7CisKKyAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5
Q2FjaGluZygpIHx8IHN0cnVjdHVyZS0+aXNEaWN0aW9uYXJ5KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0IGNvbmRpdGlvbnMgPSBnZW5lcmF0ZUNv
bmRpdGlvbnNGb3JQcm90b3R5cGVQcm9wZXJ0eUhpdCh2bSwgY29kZUJsb2NrLCBleGVjLCBzdHJ1
Y3R1cmUsIHNsb3Quc2xvdEJhc2UoKSwgaWRlbnQuaW1wbCgpKTsKKworICAgIGlmICghY29uZGl0
aW9ucy5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFByb3BlcnR5T2Zmc2V0IG9m
ZnNldCA9IGludmFsaWRPZmZzZXQ7CisgICAgQ29kZUJsb2NrOjpTdHJ1Y3R1cmVXYXRjaHBvaW50
TWFwJiB3YXRjaHBvaW50TWFwID0gY29kZUJsb2NrLT5sbGludEdldEJ5SWRXYXRjaHBvaW50TWFw
KCk7CisgICAgYXV0byByZXN1bHQgPSB3YXRjaHBvaW50TWFwLmFkZChzdHJ1Y3R1cmUsIEJhZzxM
TEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQ+KCkpOworICAgIGZv
ciAoT2JqZWN0UHJvcGVydHlDb25kaXRpb24gY29uZGl0aW9uIDogY29uZGl0aW9ucykgeworICAg
ICAgICBpZiAoIWNvbmRpdGlvbi5pc1dhdGNoYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBpZiAoY29uZGl0aW9uLmNvbmRpdGlvbigpLmtpbmQoKSA9PSBQcm9wZXJ0eUNvbmRp
dGlvbjo6UHJlc2VuY2UpCisgICAgICAgICAgICBvZmZzZXQgPSBjb25kaXRpb24uY29uZGl0aW9u
KCkub2Zmc2V0KCk7CisgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYWRkKGNvbmRpdGlv
biwgcGMpLT5pbnN0YWxsKCk7CisgICAgfQorICAgIEFTU0VSVChvZmZzZXQgIT0gaW52YWxpZE9m
ZnNldCk7CisKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9j
ayk7CisKKyAgICBwY1swXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2J5X2lk
X3Byb3RvX2xvYWQpOworICAgIHBjWzRdLnUuc3RydWN0dXJlSUQgPSBzdHJ1Y3R1cmUtPmlkKCk7
CisgICAgcGNbNV0udS5vcGVyYW5kID0gb2Zmc2V0OworICAgIC8vIFdlIGtub3cgdGhhdCB0aGlz
IHBvaW50ZXIgd2lsbCByZW1haW4gdmFsaWQgYmVjYXVzZSBpdCBpcyB0aGUgcHJvdG90eXBlIG9m
IHNvbWUgc3RydWN0dXJlLCBzLAorICAgIC8vIHdhdGNocG9pbnRlZCBhYm92ZS4gSWYgYW55IG9i
amVjdCB3aXRoIHN0cnVjdHVyZSBzIHdlcmUgdG8gY2hhbmdlIHByb3RvdHlwZXMgdGhlbiB0aGUg
Y29uZGl0aW9ucworICAgIC8vIGZvciB0aGlzIGNhY2hlIHdvdWxkIGZhaWwgYW5kIHRoaXMgdmFs
dWUgd2lsbCBuZXZlciBiZSB1c2VkIGFnYWluLgorICAgIHBjWzZdLnUucG9pbnRlciA9IHNsb3Qu
c2xvdEJhc2UoKTsKK30KKworCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X2J5
X2lkKQogewogICAgIExMSU5UX0JFR0lOKCk7CkBAIC01OTQsMzcgKzYzMiw0MyBAQCBMTElOVF9T
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKQogICAgIAogICAgIGlmICghTExJTlRf
QUxXQVlTX0FDQ0VTU19TTE9XCiAgICAgICAgICYmIGJhc2VWYWx1ZS5pc0NlbGwoKQotICAgICAg
ICAmJiBzbG90LmlzQ2FjaGVhYmxlKCkKLSAgICAgICAgJiYgc2xvdC5zbG90QmFzZSgpID09IGJh
c2VWYWx1ZQogICAgICAgICAmJiBzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKSkgewotICAgICAgICAK
KwogICAgICAgICBKU0NlbGwqIGJhc2VDZWxsID0gYmFzZVZhbHVlLmFzQ2VsbCgpOwogICAgICAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGJhc2VDZWxsLT5zdHJ1Y3R1cmUoKTsKKyAgICAgICAg
aWYgKHNsb3Quc2xvdEJhc2UoKSA9PSBiYXNlVmFsdWUpIHsKKyAgICAgICAgICAgIC8vIFN0YXJ0
IG91dCBieSBjbGVhcmluZyBvdXQgdGhlIG9sZCBjYWNoZS4KKyAgICAgICAgICAgIHBjWzBdLnUu
b3Bjb2RlID0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYnlfaWQpOworICAgICAgICAgICAgcGNb
NF0udS5wb2ludGVyID0gbnVsbHB0cjsgLy8gb2xkIHN0cnVjdHVyZQorICAgICAgICAgICAgcGNb
NV0udS5wb2ludGVyID0gbnVsbHB0cjsgLy8gb2Zmc2V0CisKKyAgICAgICAgICAgIC8vIFByZXZl
bnQgdGhlIHByb3RvdHlwZSBjYWNoZSBmcm9tIGV2ZXIgaGFwcGVuaW5nLgorICAgICAgICAgICAg
cGNbN10udS5vcGVyYW5kID0gMDsKICAgICAgICAgCi0gICAgICAgIC8vIFN0YXJ0IG91dCBieSBj
bGVhcmluZyBvdXQgdGhlIG9sZCBjYWNoZS4KLSAgICAgICAgcGNbMF0udS5vcGNvZGUgPSBMTElu
dDo6Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZCk7Ci0gICAgICAgIHBjWzRdLnUucG9pbnRlciA9IG51
bGxwdHI7IC8vIG9sZCBzdHJ1Y3R1cmUKLSAgICAgICAgcGNbNV0udS5wb2ludGVyID0gbnVsbHB0
cjsgLy8gb2Zmc2V0Ci0gICAgICAgIAotICAgICAgICBpZiAoIXN0cnVjdHVyZS0+aXNVbmNhY2hl
YWJsZURpY3Rpb25hcnkoKQotICAgICAgICAgICAgJiYgIXN0cnVjdHVyZS0+dHlwZUluZm8oKS5w
cm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKQotICAgICAgICAgICAgJiYgIXN0cnVjdHVyZS0+dHlw
ZUluZm8oKS5uZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKSkgewotICAgICAgICAg
ICAgdm0uaGVhcC53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOworICAg
ICAgICAgICAgaWYgKHN0cnVjdHVyZS0+cHJvcGVydHlBY2Nlc3Nlc0FyZUNhY2hlYWJsZSgpKSB7
CisgICAgICAgICAgICAgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihj
b2RlQmxvY2stPm1fbG9jayk7CiAKLSAgICAgICAgICAgIHBjWzRdLnUuc3RydWN0dXJlSUQgPSBz
dHJ1Y3R1cmUtPmlkKCk7Ci0gICAgICAgICAgICBwY1s1XS51Lm9wZXJhbmQgPSBzbG90LmNhY2hl
ZE9mZnNldCgpOwotICAgICAgICB9Ci0gICAgfQorICAgICAgICAgICAgICAgIHBjWzRdLnUuc3Ry
dWN0dXJlSUQgPSBzdHJ1Y3R1cmUtPmlkKCk7CisgICAgICAgICAgICAgICAgcGNbNV0udS5vcGVy
YW5kID0gc2xvdC5jYWNoZWRPZmZzZXQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IGlmIChVTkxJS0VMWShwY1s3XS51Lm9wZXJhbmQpKSB7CisgICAgICAgICAgICBBU1NFUlQoc2xv
dC5zbG90QmFzZSgpICE9IGJhc2VWYWx1ZSk7CiAKLSAgICBpZiAoIUxMSU5UX0FMV0FZU19BQ0NF
U1NfU0xPVworICAgICAgICAgICAgaWYgKCEoLS1wY1s3XS51Lm9wZXJhbmQpKQorICAgICAgICAg
ICAgICAgIHNldHVwR2V0QnlJZFByb3RvdHlwZUNhY2hlKGV4ZWMsIHZtLCBwYywgYmFzZUNlbGws
IHNsb3QsIGlkZW50KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoIUxMSU5UX0FMV0FZU19B
Q0NFU1NfU0xPVwogICAgICAgICAmJiBpc0pTQXJyYXkoYmFzZVZhbHVlKQogICAgICAgICAmJiBp
ZGVudCA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7CiAgICAgICAgIHBjWzBdLnUu
b3Bjb2RlID0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlfbGVuZ3RoKTsKICAgICAgICAg
QXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUgPSBjb2RlQmxvY2stPmdldE9yQWRkQXJyYXlQcm9m
aWxlKHBjIC0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKTsKICAgICAgICAgYXJy
YXlQcm9maWxlLT5vYnNlcnZlU3RydWN0dXJlKGJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJl
KCkpOwogICAgICAgICBwY1s0XS51LmFycmF5UHJvZmlsZSA9IGFycmF5UHJvZmlsZTsKKworICAg
ICAgICAvLyBQcmV2ZW50IHRoZSBwcm90b3R5cGUgY2FjaGUgZnJvbSBldmVyIGhhcHBlbmluZy4K
KyAgICAgICAgcGNbN10udS5vcGVyYW5kID0gMDsKICAgICB9CiAKICAgICBwY1tPUENPREVfTEVO
R1RIKG9wX2dldF9ieV9pZCkgLSAxXS51LnByb2ZpbGUtPm1fYnVja2V0c1swXSA9IEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaAppbmRleCAyNDk5NTQyOGI1NGNjY2U1NDg1ODkwYTk2MDdkYzVmODQ0MWNlNDA3Li5k
YTM2MzA1YmU1YzVkYmIxMTdhZmZiZTQyNjg5MGM0ODJiMDU2ZDk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaApAQCAtNzEsNiArNzEsNyBAQCBMTElO
VF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2YpOwogTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mX2N1c3RvbSk7CiBMTElOVF9T
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3RyeV9nZXRfYnlfaWQpOwogTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpOworTExJTlRfU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWRfcHJvdG9fbG9hZCk7CiBMTElOVF9TTE9X
X1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9hcmd1bWVudHNfbGVuZ3RoKTsKIExMSU5U
X1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X2J5X2lkKTsKIExMSU5UX1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZGVsX2J5X2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5k
ZXggNTJlMGI0NTFiYzgxMzIyMDQ0ODNkZWQ3NTQxNzkxZDE5MWM2NzMzNC4uOThlZWE0ZmNmZWFl
MGZhOGY5ZTI4ODQ5ZTRlY2ExOTY1ZGQ4ZjljZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTEzMzQs
MTAgKzEzMzQsMTEgQEAgZW5kCiAKIAogIyBXZSBvbmx5IGRvIG1vbm9tb3JwaGljIGdldF9ieV9p
ZCBjYWNoaW5nIGZvciBub3csIGFuZCB3ZSBkbyBub3QgbW9kaWZ5IHRoZQotIyBvcGNvZGUuIFdl
IGRvLCBob3dldmVyLCBhbGxvdyBmb3IgdGhlIGNhY2hlIHRvIGNoYW5nZSBhbnl0aW1lIGlmIGZh
aWxzLCBzaW5jZQotIyBwaW5nLXBvbmdpbmcgaXMgZnJlZS4gQXQgYmVzdCB3ZSBnZXQgbHVja3kg
YW5kIHRoZSBnZXRfYnlfaWQgd2lsbCBjb250aW51ZQorIyBvcGNvZGUgZm9yIG93biBwcm9wZXJ0
aWVzLiBXZSBhbHNvIGFsbG93IGZvciB0aGUgY2FjaGUgdG8gY2hhbmdlIGFueXRpbWUgaXQgZmFp
bHMsCisjIHNpbmNlIHBpbmctcG9uZ2luZyBpcyBmcmVlLiBBdCBiZXN0IHdlIGdldCBsdWNreSBh
bmQgdGhlIGdldF9ieV9pZCB3aWxsIGNvbnRpbnVlCiAjIHRvIHRha2UgZmFzdCBwYXRoIG9uIHRo
ZSBuZXcgY2FjaGUuIEF0IHdvcnN0IHdlIHRha2Ugc2xvdyBwYXRoLCB3aGljaCBpcyB3aGF0Ci0j
IHdlIHdvdWxkIGhhdmUgYmVlbiBkb2luZyBhbnl3YXkuCisjIHdlIHdvdWxkIGhhdmUgYmVlbiBk
b2luZyBhbnl3YXkuIEZvciBwcm90b3R5cGUgcHJvcGVydGllcywgd2Ugd2lsbCBhdHRlbXB0IHRv
CisjIGNvbnZlcnQgb3Bjb2RlIGludG8gYSBnZXRfYnlfaWRfcHJvdG9fbG9hZCBhZnRlciBhIGV4
ZWN1dGlvbiBjb3VudGVyIGhpdHMgemVyby4KIAogX2xsaW50X29wX2dldF9ieV9pZDoKICAgICB0
cmFjZUV4ZWN1dGlvbigpCkBAIC0xMzU4LDYgKzEzNTksMjcgQEAgX2xsaW50X29wX2dldF9ieV9p
ZDoKICAgICBkaXNwYXRjaCg5KQogCiAKKworX2xsaW50X29wX2dldF9ieV9pZF9wcm90b19sb2Fk
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BDXSwgdDAKKyAgICBsb2FkaSAx
NltQQ10sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQodDAsIENlbGxUYWcs
IHQzLCAub3BHZXRCeUlkUHJvdG9TbG93KQorICAgIGxvYWRpIDIwW1BDXSwgdDIKKyAgICBiaW5l
cSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNdLCB0MSwgLm9wR2V0QnlJZFByb3RvU2xvdworICAg
IGxvYWRwRnJvbUluc3RydWN0aW9uKDYsIHQzKQorICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVP
ZmZzZXQodDIsIHQzLCB0MCwgdDEpCisgICAgbG9hZGkgNFtQQ10sIHQyCisgICAgc3RvcmVpIHQw
LCBUYWdPZmZzZXRbY2ZyLCB0MiwgOF0KKyAgICBzdG9yZWkgdDEsIFBheWxvYWRPZmZzZXRbY2Zy
LCB0MiwgOF0KKyAgICB2YWx1ZVByb2ZpbGUodDAsIHQxLCAzMiwgdDIpCisgICAgZGlzcGF0Y2go
OSkKKworLm9wR2V0QnlJZFByb3RvU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9nZXRfYnlfaWQpCisgICAgZGlzcGF0Y2goOSkKKworCiBfbGxpbnRfb3BfZ2V0X2FycmF5
X2xlbmd0aDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgOFtQQ10sIHQwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtCmluZGV4IDQ2ZTU2MTZiZjQzNWUyMzYxMTY0ZDQ0OTNkYzEyNTZjMzhjMzRjMjIuLjUxMWJh
NzQ2NzYzM2RiODdiMjc4MmM5OWY4MzE3ZGUzZWIxMmM2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xMjMy
LDYgKzEyMzIsMjYgQEAgX2xsaW50X29wX2dldF9ieV9pZDoKICAgICBkaXNwYXRjaCg5KQogCiAK
K19sbGludF9vcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDIsIHQwKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGVDZWxsKHQwLCB0MywgLm9wR2V0QnlJZFByb3RvU2xvdykKKyAgICBsb2FkaSBKU0NlbGw6Om1f
c3RydWN0dXJlSURbdDNdLCB0MQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MikKKyAg
ICBiaW5lcSB0MiwgdDEsIC5vcEdldEJ5SWRQcm90b1Nsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1
Y3Rpb24oNSwgdDEpCisgICAgbG9hZHBGcm9tSW5zdHJ1Y3Rpb24oNiwgdDMpCisgICAgbG9hZGlz
RnJvbUluc3RydWN0aW9uKDEsIHQyKQorICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQo
dDEsIHQzLCB0MCkKKyAgICBzdG9yZXEgdDAsIFtjZnIsIHQyLCA4XQorICAgIHZhbHVlUHJvZmls
ZSh0MCwgOCwgdDEpCisgICAgZGlzcGF0Y2goOSkKKworLm9wR2V0QnlJZFByb3RvU2xvdzoKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfaWQpCisgICAgZGlzcGF0Y2go
OSkKKworCiBfbGxpbnRfb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICB0cmFjZUV4ZWN1dGlvbigp
CiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDIsIHQwKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCmluZGV4IGRhYjM1ZDA3OWViNDcxNjI0MDhkYTdlNWY3Yzk1NmJkOTg2
ZmUwZTYuLjc3YzE2YjNkZWU4NjVkNzBmOWViMGFlMTllM2Y3NmU0YjdlNDFjZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTM2MSw2ICszNjEsOCBAQCB0eXBl
ZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICBcCiAgICAgdihib29sLCB1c2VJQ1N0
YXRzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAorICAgIHYodW5zaWduZWQsIHBy
b3RvdHlwZUhpdENvdW50Rm9yTExJbnRDYWNoaW5nLCAyLCBOb3JtYWwsICJOdW1iZXIgb2YgcHJv
dG90eXBlIHByb3BlcnR5IGhpdHMgYmVmb3JlIGNhY2hpbmcgYSBwcm90b3R5cGUgaW4gdGhlIExM
SW50LiBBIGNvdW50IG9mIDAgbWVhbnMgbmV2ZXIgY2FjaGUuIikgXAorICAgIFwKICAgICB2KGJv
b2wsIGR1bXBNb2R1bGVSZWNvcmQsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJv
b2wsIGR1bXBNb2R1bGVMb2FkaW5nU3RhdGUsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAg
ICB2KGJvb2wsIGV4cG9zZUludGVybmFsTW9kdWxlTG9hZGVyLCBmYWxzZSwgTm9ybWFsLCAiZXhw
b3NlIHRoZSBpbnRlcm5hbCBtb2R1bGUgbG9hZGVyIG9iamVjdCB0byB0aGUgZ2xvYmFsIHNwYWNl
IGZvciBkZWJ1Z2dpbmciKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2xsaW50LWdldC1ieS1pZC1jYWNoZS1wcm90b3R5cGUtbG9hZC1mcm9tLWRpY3Rp
b25hcnkuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2xsaW50LWdldC1i
eS1pZC1jYWNoZS1wcm90b3R5cGUtbG9hZC1mcm9tLWRpY3Rpb25hcnkuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDRhMjdlMWEyMzExMjgyODgxYjQyNWIyYTI3ODc1Y2RjMjNhZTA0YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbGxpbnQtZ2V0LWJ5LWlkLWNh
Y2hlLXByb3RvdHlwZS1sb2FkLWZyb20tZGljdGlvbmFyeS5qcwpAQCAtMCwwICsxLDE5IEBACisK
K2V4cGVjdGVkID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKK2ZvbyA9IHtmb286IDEsIGJh
cjogMjB9OworZGVsZXRlIGZvby5iYXI7CisKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQg
dG9TdHJpbmcgPSBmb28udG9TdHJpbmc7CisgICAgaWYgKHRvU3RyaW5nICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7Cit9CisKK2ZvciAoaSA9IDA7IGkgPCAxMDsgaSsr
KQorICAgIHRlc3QoKTsKKworZm9vLnRvU3RyaW5nID0gMTAwOworZXhwZWN0ZWQgPSAxMDA7CisK
K3Rlc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0JhZy5oIGIvU291cmNlL1dURi93
dGYvQmFnLmgKaW5kZXggZGI1MTEzMjZiMjYwNTk3MjE0MTcxYzUzOWMxOTZiYjE2NDU4ZjEzMy4u
NTIwNDBjNTAzMzU1NDUyNzAxMmFkYTViMDQ1OGIxZTgyNzc2ZGE4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvQmFnLmgKKysrIGIvU291cmNlL1dURi93dGYvQmFnLmgKQEAgLTQ4LDkgKzQ4
LDIyIEBAIHByaXZhdGU6CiAgICAgCiBwdWJsaWM6CiAgICAgQmFnKCkKLSAgICAgICAgOiBtX2hl
YWQobnVsbHB0cikKICAgICB7CiAgICAgfQorCisgICAgQmFnKEJhZzxUPiYmIG90aGVyKQorICAg
IHsKKyAgICAgICAgQVNTRVJUKCFtX2hlYWQpOworICAgICAgICBtX2hlYWQgPSBvdGhlci5tX2hl
YWQ7CisgICAgICAgIG90aGVyLm1faGVhZCA9IG51bGxwdHI7CisgICAgfQorCisgICAgQmFnJiBv
cGVyYXRvcj0oQmFnPFQ+JiYgb3RoZXIpCisgICAgeworICAgICAgICBtX2hlYWQgPSBvdGhlci5t
X2hlYWQ7CisgICAgICAgIG90aGVyLm1faGVhZCA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICB9CiAgICAgCiAgICAgfkJhZygpCiAgICAgewpAQCAtMTIxLDcgKzEzNCw3IEBA
IHB1YmxpYzoKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9oZWFkOyB9CiAg
ICAgCiBwcml2YXRlOgotICAgIE5vZGUqIG1faGVhZDsKKyAgICBOb2RlKiBtX2hlYWQgeyBudWxs
cHRyIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279704</attachid>
            <date>2016-05-24 14:14:19 -0700</date>
            <delta_ts>2016-05-24 14:15:39 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-158032-20160524141529.patch</filename>
            <type>text/plain</type>
            <size>39648</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MTFlOWQ0YjZjOTBjYTAxMDdiMmYzN2U2MDRmYjM4OWY2Y2ViYTFjLi44M2IyOGYyOWFhZTliNDZl
MzJmMGU3NDMzZmM5MzIxZTczZGU5MWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NSBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0byBjYWNoZSBwcm90b3R5cGUg
bG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgcHJvdG90eXBlIHZhbHVlIGNhY2hp
bmcgdG8gdGhlIExMSW50IGZvciBvcF9nZXRfYnlfaWQuCisgICAgICAgIFR3byBwcmV2aW91c2x5
IHVudXNlZCB3b3JkcyBpbiB0aGUgb3BfZ2V0X2J5X2lkIGJ5dGVjb2RlIGhhdmUgYmVlbgorICAg
ICAgICByZXB1cnBvc2VkIHRvIGhvbGQgZXh0cmEgaW5mb3JtYXRpb24gZm9yIHRoZSBjYWNoZS4g
VGhlIGZpcnN0IGlzIGEKKyAgICAgICAgY291bnRlciB0aGF0IHJlY29yZHMgdGhlIG51bWJlciBv
ZiBnZXRfYnlfaWRzIHRoYXQgaGl0IGEgY2FjaGVhYmxlIHZhbHVlCisgICAgICAgIG9uIGEgcHJv
dG90eXBlLiBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVkIGZyb20gb25lIHRvIHplcm8g
d2UKKyAgICAgICAgYXR0ZW1wdCB0byBjYWNoZSB0aGUgcHJvdG90eXBlIGxvYWQsIHdoaWNoIHdp
bGwgYmUgZGlzY3Vzc2VkIGZ1cnRoZXIKKyAgICAgICAgYmVsb3cuIFRoZSBzZWNvbmQgd29yZCBp
cyB1c2VkIHRvIGhvbGQgdGhlIHByb3RvdHlwZSBvYmplY3Qgd2hlbiB3ZSBoYXZlCisgICAgICAg
IHN0YXJ0ZWQgY2FjaGluZy4KKworICAgICAgICBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVu
dGVkIHRvIHplcm8gd2UgZmlyc3QgYXR0ZW1wdCB0byBnZW5lcmF0ZSBhbmQKKyAgICAgICAgd2F0
Y2ggdGhlIHByb3BlcnR5IGNvbmRpdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgdmFsaWRpdHkg
b2YgcHJvdG90eXBlCisgICAgICAgIGxvYWQuIElmIHRoZSB3YXRjaHBvaW50cyBhcmUgc3VjY2Vz
c2Z1bGx5IGNyZWF0ZWQgYW5kIGluc3RhbGxlZCB3ZQorICAgICAgICByZXBsYWNlIHRoZSBvcF9n
ZXRfYnlfaWQgb3Bjb2RlIHdpdGggdGhlIG5ldyBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZAorICAg
ICAgICBvcGNvZGUsIHdoaWNoIHRlbGxzIHRoZSBMTEludCB0byB1c2UgdGhlIGNhY2hlIHByb3Rv
dHlwZSBvYmplY3QgZm9yIHRoZQorICAgICAgICBsb2FkIHJhdGhlciB0aGFuIHRoZSBiYXNlIHZh
bHVlLgorCisgICAgICAgIFByaW9yIHRvIHRoaXMgcGF0Y2ggdGhlcmUgd2FzIG5vdCBMTEludCBz
cGVjaWZpYyBkYXRhIG9uQ29kZUJsb2Nrcy4KKyAgICAgICAgU2luY2UgdGhlIENvZGVCbG9jayBu
ZWVkcyB0byBvd24gdGhlIFdhdGNocG9pbnRzIGZvciB0aGUgY2FjaGUsIGEgd2VhaworICAgICAg
ICBtYXAgZnJvbSBlYWNoIGJhc2Ugc3RydWN0dXJlIHRvIGEgYmFnIG9mIFdhdGNocG9pbnRzIGNy
ZWF0ZWQgZm9yIHRoYXQKKyAgICAgICAgc3RydWN0dXJlIGJ5IHNvbWUgb3BfZ2V0X2J5X2lkIGhh
cyBiZWVuIGFkZGVkIHRvIHRoZSBDb2RlQmxvY2suIER1cmluZworICAgICAgICBHQywgaWYgd2Ug
ZmluZCB0aGF0IHRoZSBhIHN0cnVjdHVyZSBpbiB0aGUgbWFwIGhhcyBub3QgYmVlbiBtYXJrZWQg
d2UKKyAgICAgICAgZnJlZSB0aGUgYXNzb2NpYXRlZCBiYWcgb24gdGhlIENvZGVCbG9jay4KKwor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246CisgICAgICAgICogYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNl
dCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJp
bnRHZXRCeUlkT3ApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnByaW50R2V0QnlJZENhY2hl
U3RhdHVzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAg
ICAoSlNDOjpDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMpOgorICAgICAgICAq
IGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmxsaW50R2V0
QnlJZFdhdGNocG9pbnRNYXApOgorICAgICAgICAoSlNDOjpjbGVhckxMSW50R2V0QnlJZENhY2hl
KToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6
R2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludCk6CisgICAgICAgICogYnl0ZWNvZGUvTExJ
bnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0M6OkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2lu
dDo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50KToKKyAgICAg
ICAgKEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50Ojpp
bnN0YWxsKToKKyAgICAgICAgKEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1
cmVXYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL0xMSW50UHJv
dG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oOiBBZGRlZC4KKyAgICAgICAg
KiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHA6CisgICAgICAgIChKU0M6
Ok9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Ojppc1ZhbGlkQW5kV2F0Y2hhYmxlKToKKyAgICAg
ICAgKiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oOgorICAgICAgICAqIGJ5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0R2V0QnlJZCk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6Cisg
ICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2Fw
YWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklU
Ojpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29t
cGlsZVNsb3dDYXNlcyk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAg
ICAgICAoSlNDOjpMTEludDo6c2V0dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUpOgorICAgICAgICAo
SlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIGxsaW50L0xMSW50
U2xvd1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAq
IHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9sbGludC1nZXQtYnkt
aWQtY2FjaGUtcHJvdG90eXBlLWxvYWQtZnJvbS1kaWN0aW9uYXJ5LmpzOiBBZGRlZC4KKyAgICAg
ICAgKHRlc3QpOgorCiAyMDE2LTA1LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpd2VkLCBhZGQgYSBjb21tZW50IHRvIGRlc2NyaWJlIHRoZSB0ZXN0
J3MgZmFpbHVyZSBtb2RlLiBTdWdnZXN0ZWQgYnkgbWxhbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2Y4NDI4MjA1ZjhiNzA3
NGJiYjg0YWM2ODdiOTJlZGYyNDQ5MDk2Ny4uNzY2OWNlZGEzOGU3ZTg3MDE5YjhkMWU2NmI2NTA2
M2U3NmJjOTU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVy
ICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJs
ZSB0byBjYWNoZSBwcm90b3R5cGUgbG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbW92ZSBjb25zdHJ1
Y3RvcnMvaW5pdGlhbGl6ZXJzIHRvIEJhZ3MuCisKKyAgICAgICAgKiB3dGYvQmFnLmg6CisgICAg
ICAgIChXVEY6OkJhZzo6QmFnKToKKyAgICAgICAgKFdURjo6QmFnOjpvcGVyYXRvcj0pOgorCiAy
MDE2LTA1LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNl
IGF1dG8gZm9yIHNvbWUgb2Ygb3VyIGxhbWJkYSBmdW5jdGlvbiBwYXJhbWV0ZXJzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhjODkyNWM2ZDNhNWY4MzhkY2M2MDRjYzE1MjEzMDVl
ZDE0MjEwYWUuLjNlMjc3YTljMTFjOTU0YjgwYzdmYmY2YjRmZjJiYzVmYTY2Mjk1ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTgxLDYgKzExODEsOCBAQAogCQk1MzcwQjRG
NjFCRjI2MjA1MDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBv
aW50QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTM3MEI0RjQxQkYyNUVBMjAwNUM0MEZDIC8qIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVl
V2F0Y2hwb2ludEJhc2UuaCAqLzsgfTsKIAkJNTM5MTdFN0IxQjc5MDZGQTAwMEVCRDMzIC8qIEpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzkxN0U3QTFCNzkwNkU0MDAwRUJEMzMg
LyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCAqLzsgfTsKIAkJ
NTNGNkJGNkQxQzNGMDYwQTAwRjQxRTVEIC8qIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJv
ZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNG
NkJGNkMxQzNGMDYwQTAwRjQxRTVEIC8qIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmls
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUz
RkEyQUUxMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzRkEyQUUwMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFw
dGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCAqLzsgfTsKKwkJNTNGQTJBRTMxQ0YzODAzOTAwMjI3
MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0ZBMkFFMjFD
RjM4MDM5MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRj
aHBvaW50LmNwcCAqLzsgfTsKIAkJNUQ1RDhBRDEwRTBEMEVCRTAwRjlDNjkyIC8qIGxpYmVkaXQu
ZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
RDVEOEFEMDBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRpdC5keWxpYiAqLzsgfTsKIAkJNURCQjE1
MUIxMzFEMEIzMTAwNTZBRDM2IC8qIHRlc3RhcGkuanMgaW4gQ29weSBTdXBwb3J0IFNjcmlwdCAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEQ4NTc3NDBBNDY5NkM4MDAzMjE0
NkMgLyogdGVzdGFwaS5qcyAqLzsgfTsKIAkJNURCQjE1MjUxMzFEMEJENzAwNTZBRDM2IC8qIG1p
bmlkb20uanMgaW4gQ29weSBTdXBwb3J0IFNjcmlwdCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDEyMTEwRDBBNDg3ODg3MDA0ODAyNTUgLyogbWluaWRvbS5qcyAqLzsgfTsK
QEAgLTMzMjEsNiArMzMyMyw4IEBACiAJCTUzOTE3RTgzMUI3OTFDQjgwMDBFQkQzMyAvKiBUeXBl
ZEFycmF5UHJvdG90eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gVHlwZWRBcnJheVByb3RvdHlwZS5qczsgcGF0aCA9IGJ1aWx0aW5zL1R5cGVkQXJyYXlQcm90
b3R5cGUuanM7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNTNGMjU2RTExQjg3RTI4
MDAwQjRCNzY4IC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzRjZCRjZDMUMzRjA2MEEwMEY0MUU1RCAvKiBJ
bnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzRkEyQUUwMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFBy
b3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRj
aHBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzRkEyQUUyMUNGMzgwMzkw
MDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTExJbnRQcm90b3R5cGVM
b2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTkzRDQzQ0NBMEJCRTA2RDg5QzU5NzA3IC8qIE1hcERhdGFJbmxpbmVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcERhdGFJbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENUQ4QUQwMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0
LmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
ImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJlZGl0LmR5bGliOyBwYXRoID0gL3Vz
ci9saWIvbGliZWRpdC5keWxpYjsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJNURB
RkQ2Q0IxNDZCNjg2MzAwRkJFRkI0IC8qIEpTQy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBKU0Mu
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTc1LDYgKzY1NzksOCBA
QAogCQkJCTBGQjU0Njc4MTRGNUM0NjgwMDJDMjk4OSAvKiBMYXp5T3BlcmFuZFZhbHVlUHJvZmls
ZS5jcHAgKi8sCiAJCQkJMEZCNTQ2NzYxNEY1OUFEMTAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmggKi8sCiAJCQkJMEYwRkM0NTgxNEJEMTVGMTAwQjgxMTU0IC8qIExMSW50Q2Fs
bExpbmtJbmZvLmggKi8sCisJCQkJNTNGQTJBRTIxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50UHJv
dG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgKi8sCisJCQkJNTNGQTJB
RTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJl
V2F0Y2hwb2ludC5oICovLAogCQkJCTBGQjU0NjdDMTRGNUNGRDMwMDJDMjk4OSAvKiBNZXRob2RP
ZkdldHRpbmdBVmFsdWVQcm9maWxlLmNwcCAqLywKIAkJCQkwRkI1NDY3QTE0RjVDN0Q0MDAyQzI5
ODkgLyogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oICovLAogCQkJCTE0Q0E5NThDMTZB
QjUwRkEwMDkzOEEwNiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oICovLApAQCAtNzkxMCw2
ICs3OTE2LDcgQEAKIAkJCQkwRkY3MTY4QzE1QTNCMjM1MDA4RjVEQUEgLyogUHJvcGVydHlPZmZz
ZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDU1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9w
ZXJ0eVNsb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzlDMTVFRDhFNDYwMEYxNjdCMiAv
KiBQcm9wZXJ0eVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTUzRkEyQUUxMUNGMzdGM0Yw
MDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDU2MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm90ZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDc0QzMzQjE2QUEyRDk1MDA2MkYwMUQgLyogUHJvdG90
eXBlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU3ODBBMjE4RkUxRTk4MDAxRTcyRDkgLyog
UHVyZU5hTi5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjM1LDYgKzg2NDIsNyBAQAogCQkJCTY1QzAy
ODUwMTcxNzk1RTIwMDM1MUUzNSAvKiBBUk12N0Rpc2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk2NUMwMjg1QzE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdET3Bjb2RlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGODMzNUI3MTYzOUMxRTYwMDE0NDNCNSAvKiBBcnJheUFsbG9jYXRp
b25Qcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUzRkEyQUUzMUNGMzgwMzkwMDIyNzEx
RCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTdBOEFGMzQxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRkM5OUQ0MTg0RUUzMTgwMDlDMTBBQiAvKiBBcnJh
eUJ1ZmZlck5ldXRlcmluZ1dhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdBOEFG
MzYxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3Qu
anNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpp
bmRleCBhODA2NTZlMjU1ZDI1MmEzODBmODg1YTlmYmFhYTUwMDM4NDc1MGIyLi4yMWZmYjM4YjI0
NzQ2ZWU0ODRjOGYzNTU2NzUxYTU3OTNmYWFjMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC01OCwxMSArNTgsMTIgQEAKICAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2lzX29iamVjdF9vcl9udWxsIiwgImxlbmd0aCIgOiAz
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9pc19mdW5jdGlvbiIsICJsZW5ndGgiIDog
MyB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaW4iLCAibGVuZ3RoIiA6IDQgfSwKLSAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3RyeV9nZXRfYnlfaWQiLCAibGVuZ3RoIiA6IDQgfSwK
KyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9hcnJheV9sZW5ndGgiLCAibGVuZ3RoIiA6
IDkgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9ieV9pZCIsICJsZW5ndGgiIDog
OSAgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9ieV9pZF9wcm90b19sb2FkIiwg
Imxlbmd0aCIgOiA5IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRfYnlfaWRfd2l0
aF90aGlzIiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRf
YnlfdmFsX3dpdGhfdGhpcyIsICJsZW5ndGgiIDogNSB9LAotICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfZ2V0X2FycmF5X2xlbmd0aCIsICJsZW5ndGgiIDogOSB9LAorICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3BfdHJ5X2dldF9ieV9pZCIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAg
eyAibmFtZSIgOiAib3BfcHV0X2J5X2lkIiwgImxlbmd0aCIgOiA5IH0sCiAgICAgICAgICAgICB7
ICJuYW1lIiA6ICJvcF9wdXRfYnlfaWRfd2l0aF90aGlzIiwgImxlbmd0aCIgOiA1IH0sCiAgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF9kZWxfYnlfaWQiLCAibGVuZ3RoIiA6IDQgfSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKaW5kZXggZmQx
ZjQ0ZTRiYjA5NDJiMzEzY2IwNzgzOTIwMjVhNzlhNDE5OTJlYS4uNmE3Zjc1ZTI5MjFjYWY5Yjk0
ZjljNjNkYThjZTlkM2Q2MjQxOGRjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKQEAgLTE1OCw2ICsxNTgsNyBAQCB2b2lkIGNvbXB1dGVV
c2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAgY2FzZSBvcF90b19wcmltaXRpdmU6CiAgICAgY2Fz
ZSBvcF90cnlfZ2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAgIGNhc2Ugb3Bf
Z2V0X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAg
IGNhc2Ugb3BfdHlwZW9mOgogICAgIGNhc2Ugb3BfaXNfZW1wdHk6CkBAIC0zOTIsNiArMzkzLDcg
QEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2Nr
LCBCeXRlY29kZUJhc2ljQmxvY2sqIGJsb2MKICAgICBjYXNlIG9wX2NvbnN0cnVjdDoKICAgICBj
YXNlIG9wX3RyeV9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgY2FzZSBv
cF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICBjYXNlIG9wX2dldF9ieV9pZF93aXRoX3RoaXM6
CiAgICAgY2FzZSBvcF9nZXRfYnlfdmFsX3dpdGhfdGhpczoKICAgICBjYXNlIG9wX2dldF9hcnJh
eV9sZW5ndGg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
CmluZGV4IDU0MWY0NTI3YWQ2OTkxMmQ1YzkzYmY2ZTY4MWZlN2YwNDI4MGY5OTAuLjBjNjUzM2M0
NTU5YWE2MDMzMDg5NzdjNzQwMDcxNmRlZWI5NDlhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAi
SlNMZXhpY2FsRW52aXJvbm1lbnQuaCIKICNpbmNsdWRlICJKU01vZHVsZUVudmlyb25tZW50Lmgi
CiAjaW5jbHVkZSAiTExJbnRFbnRyeXBvaW50LmgiCisjaW5jbHVkZSAiTExJbnRQcm90b3R5cGVM
b2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRl
cnByZXRlci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJQQ1RvQ29kZU9y
aWdpbk1hcC5oIgpAQCAtMzQ1LDYgKzM0Niw5IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludEdldEJ5
SWRPcChQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsb2NhdGlvbiwKICAg
ICBjYXNlIG9wX2dldF9ieV9pZDoKICAgICAgICAgb3AgPSAiZ2V0X2J5X2lkIjsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKKyAgICAgICAgb3AgPSAi
Z2V0X2J5X2lkX3Byb3RvX2xvYWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIG9wX2dldF9h
cnJheV9sZW5ndGg6CiAgICAgICAgIG9wID0gImFycmF5X2xlbmd0aCI7CiAgICAgICAgIGJyZWFr
OwpAQCAtNDA1LDYgKzQwOSw4IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludEdldEJ5SWRDYWNoZVN0
YXR1cyhQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsCiAgICAgICAgIG91
dC5wcmludGYoIiBsbGludCgiKTsKICAgICAgICAgZHVtcFN0cnVjdHVyZShvdXQsICJzdHJ1Y3Qi
LCBzdHJ1Y3R1cmUsIGlkZW50KTsKICAgICAgICAgb3V0LnByaW50ZigiKSIpOworICAgICAgICBp
ZiAoZXhlYy0+aW50ZXJwcmV0ZXIoKS0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25bMF0udS5vcGNv
ZGUpID09IG9wX2dldF9ieV9pZF9wcm90b19sb2FkKQorICAgICAgICAgICAgb3V0LnByaW50Zigi
IHByb3RvKCVwKSIsIGluc3RydWN0aW9uWzZdLnUucG9pbnRlcik7CiAgICAgfQogCiAjaWYgRU5B
QkxFKEpJVCkKQEAgLTExMTIsNiArMTExOCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNv
ZGUoCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9i
eV9pZDoKKyAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICAgICAgY2Fz
ZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOiB7CiAgICAgICAgICAgICBwcmludEdldEJ5SWRPcChvdXQs
IGV4ZWMsIGxvY2F0aW9uLCBpdCk7CiAgICAgICAgICAgICBwcmludEdldEJ5SWRDYWNoZVN0YXR1
cyhvdXQsIGV4ZWMsIGxvY2F0aW9uLCBzdHViSW5mb3MpOwpAQCAtMjc1NCwxNCArMjc2MSwxNCBA
QCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVMTEludElubGluZUNhY2hlcygpCiAgICAgZm9yIChz
aXplX3Qgc2l6ZSA9IHByb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25zLnNpemUoKSwgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIGN1ckluc3RydWN0aW9uID0gJmlu
c3RydWN0aW9ucygpW3Byb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25zW2ldXTsKICAgICAgICAgc3dp
dGNoIChpbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoY3VySW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUp
KSB7Ci0gICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOiB7CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5
X2lkOgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOiB7CiAgICAgICAgICAg
ICBTdHJ1Y3R1cmVJRCBvbGRTdHJ1Y3R1cmVJRCA9IGN1ckluc3RydWN0aW9uWzRdLnUuc3RydWN0
dXJlSUQ7CiAgICAgICAgICAgICBpZiAoIW9sZFN0cnVjdHVyZUlEIHx8IEhlYXA6OmlzTWFya2Vk
KG1fdm0tPmhlYXAuc3RydWN0dXJlSURUYWJsZSgpLmdldChvbGRTdHJ1Y3R1cmVJRCkpKQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1Io
KSkKICAgICAgICAgICAgICAgICBkYXRhTG9nRigiQ2xlYXJpbmcgTExJbnQgcHJvcGVydHkgYWNj
ZXNzLlxuIik7Ci0gICAgICAgICAgICBjdXJJbnN0cnVjdGlvbls0XS51LnN0cnVjdHVyZUlEID0g
MDsKLSAgICAgICAgICAgIGN1ckluc3RydWN0aW9uWzVdLnUub3BlcmFuZCA9IDA7CisgICAgICAg
ICAgICBjbGVhckxMSW50R2V0QnlJZENhY2hlKGN1ckluc3RydWN0aW9uKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkOiB7CkBAIC0yODM1
LDYgKzI4NDIsMTIgQEAgdm9pZCBDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMo
KQogICAgICAgICB9CiAgICAgfQogCisgICAgLy8gV2UgY2FuJ3QganVzdCByZW1vdmUgYWxsIHRo
ZSBzZXRzIHdoZW4gd2UgY2xlYXIgdGhlIGNhY2hlcyBzaW5jZSB3ZSBtaWdodCBoYXZlIGNyZWF0
ZWQgYSB3YXRjaHBvaW50IHNldAorICAgIC8vIHRoZW4gY2xlYXJlZCB0aGUgY2FjaGUgd2l0aG91
dCBHQ2luZyBpbiBiZXR3ZWVuLgorICAgIG1fbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcC5yZW1v
dmVJZihbXShjb25zdCBTdHJ1Y3R1cmVXYXRjaHBvaW50TWFwOjpLZXlWYWx1ZVBhaXJUeXBlJiBw
YWlyKSAtPiBib29sIHsKKyAgICAgICAgcmV0dXJuICFIZWFwOjppc01hcmtlZChwYWlyLmtleSk7
CisgICAgfSk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9sbGludENhbGxMaW5r
SW5mb3Muc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fbGxpbnRDYWxsTGlua0luZm9zW2ld
LmlzTGlua2VkKCkgJiYgIUhlYXA6OmlzTWFya2VkKG1fbGxpbnRDYWxsTGlua0luZm9zW2ldLmNh
bGxlZS5nZXQoKSkpIHsKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggY2JiOGNmNTcw
MWNjZTc5NWE2MjUyZjRhN2U3YTA0YTU3NDFiMGIyZi4uNjY0ZWNmZWIwMTdiY2NhNzZmYTUwMThi
ZDQ0MjBhYzZiMjNiM2ZhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAj
aW5jbHVkZSAiSnVtcFRhYmxlLmgiCiAjaW5jbHVkZSAiTExJbnRDYWxsTGlua0luZm8uaCIKKyNp
bmNsdWRlICJMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCIK
ICNpbmNsdWRlICJMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5oIgogI2luY2x1ZGUgIk9iamVjdEFs
bG9jYXRpb25Qcm9maWxlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgpAQCAtNjc4LDYgKzY3OSw5
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fbGxpbnRFeGVjdXRlQ291bnRlcjsKICAgICB9
CiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3RydWN0dXJlKiwgQmFnPExMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludD4+IFN0cnVjdHVyZVdhdGNocG9pbnRNYXA7Cisg
ICAgU3RydWN0dXJlV2F0Y2hwb2ludE1hcCYgbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcCgpIHsg
cmV0dXJuIG1fbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcDsgfQorCiAgICAgLy8gRnVuY3Rpb25z
IGZvciBjb250cm9sbGluZyB3aGVuIHRpZXJlZCBjb21waWxhdGlvbiBraWNrcyBpbi4gVGhpcwog
ICAgIC8vIGNvbnRyb2xzIGJvdGggd2hlbiB0aGUgb3B0aW1pemluZyBjb21waWxlciBpcyBpbnZv
a2VkIGFuZCB3aGVuIE9TUgogICAgIC8vIGVudHJ5IGhhcHBlbnMuIFR3byB0cmlnZ2VycyBleGlz
dDogdGhlIGxvb3AgdHJpZ2dlciBhbmQgdGhlIHJldHVybgpAQCAtMTAxOSw2ICsxMDIzLDcgQEAg
cHJpdmF0ZToKIAogICAgIFJlZkNvdW50ZWRBcnJheTxMTEludENhbGxMaW5rSW5mbz4gbV9sbGlu
dENhbGxMaW5rSW5mb3M7CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PExMSW50Q2FsbExpbmtJbmZv
LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxMTEludENhbGxMaW5rSW5mbz4+IG1faW5jb21pbmdMTElu
dENhbGxzOworICAgIFN0cnVjdHVyZVdhdGNocG9pbnRNYXAgbV9sbGludEdldEJ5SWRXYXRjaHBv
aW50TWFwOwogICAgIFJlZlB0cjxKSVRDb2RlPiBtX2ppdENvZGU7CiAjaWYgRU5BQkxFKEpJVCkK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0ZXJBdE9mZnNldExpc3Q+IG1fY2FsbGVlU2F2ZVJl
Z2lzdGVyczsKQEAgLTEzMDksNiArMTMxNCwxNCBAQCBwcml2YXRlOgogfTsKICNlbmRpZgogCitp
bmxpbmUgdm9pZCBjbGVhckxMSW50R2V0QnlJZENhY2hlKEluc3RydWN0aW9uKiBpbnN0cnVjdGlv
bikKK3sKKyAgICBpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUob3Bf
Z2V0X2J5X2lkKTsKKyAgICBpbnN0cnVjdGlvbls0XS51LnBvaW50ZXIgPSBudWxscHRyOworICAg
IGluc3RydWN0aW9uWzVdLnUucG9pbnRlciA9IG51bGxwdHI7CisgICAgaW5zdHJ1Y3Rpb25bNl0u
dS5wb2ludGVyID0gbnVsbHB0cjsKK30KKwogaW5saW5lIFJlZ2lzdGVyJiBFeGVjU3RhdGU6OnIo
aW50IGluZGV4KQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+Y29kZUJsb2Nr
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0
YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAKaW5kZXggYzY5NTE0YzU3ZTg5MDNjMDI1YjI1N2ZjMDEzYmUxNzMyYzk0NWMwYi4uNTllODFj
NzUxYWZhMDdhNGFkZjU0ZTFkNmI0MmYyYTc0ZDVlYTczOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcApAQCAtNzUsOCArNzUsMTIgQEAg
R2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KENvZGVCbG9jayog
cHJvZmlsZWRCbG9jaywgdW5zaWduZWQKICAgICBWTSYgdm0gPSAqcHJvZmlsZWRCbG9jay0+dm0o
KTsKICAgICAKICAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSBwcm9maWxlZEJsb2NrLT5p
bnN0cnVjdGlvbnMoKS5iZWdpbigpICsgYnl0ZWNvZGVJbmRleDsKLSAgICAKLSAgICBpZiAoaW5z
dHJ1Y3Rpb25bMF0udS5vcGNvZGUgPT0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlfbGVu
Z3RoKSB8fCBpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX3Ry
eV9nZXRfYnlfaWQpKQorCisgICAgT3Bjb2RlIG9wY29kZSA9IGluc3RydWN0aW9uWzBdLnUub3Bj
b2RlOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3QganVzdCBiYWlsIGlmIHdlIHNlZSBh
IHRyeV9nZXRfYnlfaWQgb3IgYSBnZXRfYnlfaWRfcHJvdG9fbG9hZC4OCisgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODAzOQorICAgIGlmIChvcGNvZGUg
PT0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlfbGVuZ3RoKSB8fCBvcGNvZGUgPT0gTExJ
bnQ6OmdldE9wY29kZShvcF90cnlfZ2V0X2J5X2lkKSB8fCBvcGNvZGUgPT0gTExJbnQ6OmdldE9w
Y29kZShvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZCkpCiAgICAgICAgIHJldHVybiBHZXRCeUlkU3Rh
dHVzKE5vSW5mb3JtYXRpb24sIGZhbHNlKTsKIAogICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlE
ID0gaW5zdHJ1Y3Rpb25bNF0udS5zdHJ1Y3R1cmVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50UHJvdG90
eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FlMmMw
ZGM2M2E4MWVlYjk4NjZmY2Q1NjMwMGZlYTI2MGM1NDAyYQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0
cnVjdHVyZVdhdGNocG9pbnQuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgiCisKKyNp
bmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUg
IlN0cnVjdHVyZUlubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK0xMSW50UHJvdG90eXBl
TG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRp
dmVTdHJ1Y3R1cmVXYXRjaHBvaW50KGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJiBrZXks
IEluc3RydWN0aW9uKiBnZXRCeUlkSW5zdHJ1Y3Rpb24pCisgICAgOiBtX2tleShrZXkpCisgICAg
LCBtX2dldEJ5SWRJbnN0cnVjdGlvbihnZXRCeUlkSW5zdHJ1Y3Rpb24pCit7CisgICAgUkVMRUFT
RV9BU1NFUlQoa2V5LndhdGNoaW5nUmVxdWlyZXNTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2lu
dCgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVCgha2V5LndhdGNoaW5nUmVxdWlyZXNSZXBsYWNlbWVu
dFdhdGNocG9pbnQoKSk7Cit9CisKK3ZvaWQgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1
Y3R1cmVXYXRjaHBvaW50OjppbnN0YWxsKCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2tleS5p
c1dhdGNoYWJsZSgpKTsKKworICAgIG1fa2V5Lm9iamVjdCgpLT5zdHJ1Y3R1cmUoKS0+YWRkVHJh
bnNpdGlvbldhdGNocG9pbnQodGhpcyk7Cit9CisKK3ZvaWQgTExJbnRQcm90b3R5cGVMb2FkQWRh
cHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwoY29uc3QgRmlyZURldGFpbCYg
ZGV0YWlsKQoreworICAgIGlmIChtX2tleS5pc1dhdGNoYWJsZShQcm9wZXJ0eUNvbmRpdGlvbjo6
RW5zdXJlV2F0Y2hhYmlsaXR5KSkgeworICAgICAgICBpbnN0YWxsKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBTdHJpbmdQcmludFN0cmVhbSBvdXQ7CisgICAgb3V0LnByaW50KCJP
YmplY3RUb1N0cmluZ1ZhbHVlIEFkYXB0YXRpb24gb2YgIiwgbV9rZXksICIgZmFpbGVkOiAiLCBk
ZXRhaWwpOworCisgICAgU3RyaW5nRmlyZURldGFpbCBzdHJpbmdEZXRhaWwob3V0LnRvQ1N0cmlu
ZygpLmRhdGEoKSk7CisKKyAgICBjbGVhckxMSW50R2V0QnlJZENhY2hlKG1fZ2V0QnlJZEluc3Ry
dWN0aW9uKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVX
YXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRQcm90b3R5
cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYxNWUxMDYw
MmZiMjkzNzNjYmUxMWFmZWU2ZmIwZjJjYWNlOWY4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2
ZVN0cnVjdHVyZVdhdGNocG9pbnRfaAorI2RlZmluZSBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2
ZVN0cnVjdHVyZVdhdGNocG9pbnRfaAorCisjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKKyNpbmNs
dWRlICJPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5oIgorI2luY2x1ZGUgIldhdGNocG9pbnQuaCIK
KworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3Ry
dWN0dXJlV2F0Y2hwb2ludCA6IHB1YmxpYyBXYXRjaHBvaW50IHsKK3B1YmxpYzoKKyAgICBMTElu
dFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQoY29uc3QgT2JqZWN0UHJv
cGVydHlDb25kaXRpb24mLCBJbnN0cnVjdGlvbiopOworCisgICAgdm9pZCBpbnN0YWxsKCk7CisK
K3Byb3RlY3RlZDoKKyAgICB2b2lkIGZpcmVJbnRlcm5hbChjb25zdCBGaXJlRGV0YWlsJikgb3Zl
cnJpZGU7CisKK3ByaXZhdGU6CisgICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb24gbV9rZXk7Cisg
ICAgSW5zdHJ1Y3Rpb24qIG1fZ2V0QnlJZEluc3RydWN0aW9uOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCisKKyNlbmRpZiAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnRfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKaW5kZXggZDU3MDA0MDBmOGIy
NjNlNWZmNzc1ZWZlZjg4YmE1Y2IwOWRiNDIwYi4uMDU3MjNhZDgyMmZmOTFmNWIxMjQ2YzRmN2I0
NDFmMjFkNWQyOWNhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwCkBAIC0xNjcsNiArMTY3
LDE4IEBAIHZvaWQgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQ6OmR1bXAoUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QKICAgICBkdW1wSW5Db250ZXh0KG91dCwgbnVsbHB0cik7CiB9CiAKK2Jvb2wg
T2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQ6OmlzVmFsaWRBbmRXYXRjaGFibGUoKSBjb25zdAor
eworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3Ig
KE9iamVjdFByb3BlcnR5Q29uZGl0aW9uIGNvbmRpdGlvbiA6IG1fZGF0YS0+dmVjdG9yKSB7Cisg
ICAgICAgIGlmICghY29uZGl0aW9uLmlzV2F0Y2hhYmxlKCkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCiBuYW1lc3BhY2UgewogCiBib29s
IHZlcmJvc2UgPSBmYWxzZTsKQEAgLTI1NCw5ICsyNjYsMTEgQEAgT2JqZWN0UHJvcGVydHlDb25k
aXRpb25TZXQgZ2VuZXJhdGVDb25kaXRpb25zKAogICAgICAgICAvLyBTaW5jZSB3ZSdyZSBhY2Nl
c3NpbmcgYSBwcm90b3R5cGUgcmVwZWF0ZWRseSwgaXQncyBhIGdvb2QgYmV0IHRoYXQgaXQgc2hv
dWxkIG5vdCBiZQogICAgICAgICAvLyB0cmVhdGVkIGFzIGEgZGljdGlvbmFyeS4KICAgICAgICAg
aWYgKHN0cnVjdHVyZS0+aXNEaWN0aW9uYXJ5KCkpIHsKLSAgICAgICAgICAgIGlmIChjb25jdXJy
ZW5jeSA9PSBNYWluVGhyZWFkKQorICAgICAgICAgICAgaWYgKGNvbmN1cnJlbmN5ID09IE1haW5U
aHJlYWQpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAg
ICAgZGF0YUxvZygiRmxhdHRlbmluZyAiLCBwb2ludGVyRHVtcChzdHJ1Y3R1cmUpKTsKICAgICAg
ICAgICAgICAgICBzdHJ1Y3R1cmUtPmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKHZtLCBvYmpl
Y3QpOwotICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJDYW5ub3Qg
ZmxhdHRlbiBkaWN0aW9uYXJ5IHdoZW4gbm90IG9uIG1haW4gdGhyZWFkLCBzbyBpbnZhbGlkLlxu
Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Ojpp
bnZhbGlkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb25TZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oCmluZGV4IDc2ZThhOWNkYTgwMDZhOWFhZjUx
YTZmODcyNzAwNjJjN2E5ZDkxMzIuLjAxY2UxYTg0MWMzMzBmMmNiZTRiZjI3YjkyZjE0YWRlYTJh
YzkwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQ
cm9wZXJ0eUNvbmRpdGlvblNldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oCkBAIC02Nyw2ICs2Nyw4IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIHJldHVybiAhbV9kYXRhIHx8ICFtX2RhdGEtPnZlY3Rvci5pc0VtcHR5
KCk7CiAgICAgfQorCisgICAgYm9vbCBpc1ZhbGlkQW5kV2F0Y2hhYmxlKCkgY29uc3Q7CiAgICAg
CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IGI1
MDE1MWQxZGQwNWIzMzk0ZGNlY2ZmYjMyZWI0YmU1MGZlMGVlZGUuLjU4MDM2NjEzNjUzODYxNzk0
MjcwYjM0Zjk3MTIyOWQ3MDRhODNjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0yNDMxLDcgKzI0
MzEsNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldEJ5SWQoUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBjbwogICAgIGluc3RydWN0aW9ucygpLmFwcGVu
ZCgwKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoMCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCku
YXBwZW5kKDApOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsKKyAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoT3B0aW9uczo6cHJvdG90eXBlSGl0Q291bnRGb3JMTEludENhY2hpbmcoKSk7
CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb2ZpbGUpOwogICAgIHJldHVybiBkc3Q7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmlu
ZGV4IGFhODMxYzM1M2ZiYjA1ZDEyYWMwZTkyZDFmYzFiNjZlM2E1MThhMzYuLjNjMjgxMjJjODQy
YjVjODkyMzgxNGZjODA4ODg3NGU1ZjQxNDA1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC00MDgxLDYgKzQwODEsNyBAQCBib29s
IEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICB9CiAK
ICAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3By
b3RvX2xvYWQ6CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDogewogICAgICAgICAg
ICAgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb24oKTsKICAgICAgICAg
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRp
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmlu
ZGV4IDA2NjY5ZDQwNjhmZTgzNGI4NGJjYWViOThiYmM2MGRhN2M3ZWUyNGMuLjA2MjQyN2NiOTMx
MjdmOTExMDVlMzc2OTBkYTZiNWMyNjdlM2ViM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTE1NCw2ICsxNTQsNyBAQCBDYXBhYmlsaXR5
TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3BfcHV0X2J5X3ZhbF9kaXJlY3Q6CiAgICAgY2FzZSBv
cF90cnlfZ2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAgIGNhc2Ugb3BfZ2V0
X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWRfd2l0aF90aGlzOgogICAg
IGNhc2Ugb3BfZ2V0X2J5X3ZhbF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVu
Z3RoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGFkYWE4NjA3ZjZjNDRhYzA0MzI1
OWVjNDdlNTA3Y2UwZmM5MzA2ODYuLjkyYWFjOTk0OGI1ZTFkMWE0ZDE2MzQ4NDk2YWI3NmQ4MjZi
YThiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTI0MCw2ICsyNDAsNyBAQCB2
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIERFRklORV9PUChvcF9l
cV9udWxsKQogICAgICAgICBERUZJTkVfT1Aob3BfdHJ5X2dldF9ieV9pZCkKICAgICAgICAgY2Fz
ZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19s
b2FkOgogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJTkVfT1Ao
b3BfZ2V0X2J5X2lkX3dpdGhfdGhpcykKICAgICAgICAgREVGSU5FX09QKG9wX2dldF9ieV92YWwp
CkBAIC00MjIsNiArNDIzLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkK
ICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2VxKQogICAgICAgICBERUZJTkVfU0xPV0NB
U0VfT1Aob3BfdHJ5X2dldF9ieV9pZCkKICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3Ro
OgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOgogICAgICAgICBERUZJTkVf
U0xPV0NBU0VfT1Aob3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3Bf
Z2V0X2J5X3ZhbCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2luc3RhbmNlb2YpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCBm
YTg4Mzc0Y2U2MTVlYzFhYTA5ZmU3YTMyMDcxYTIxYjkyMTI5MDA3Li5hMTAzNTg4M2QxNGJiNWYy
MDUzYTQ0NmRmYTY0ZWY1MjgzMGNjOWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJMTElu
dEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVk
ZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJPYmplY3RQcm9wZXJ0eUNvbmRpdGlv
blNldC5oIgogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU2hhZG93Q2hp
Y2tlbi5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgpAQCAtNTgwLDYg
KzU4MSw0MyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfdHJ5X2dldF9ieV9pZCkK
ICAgICBMTElOVF9SRVRVUk4oc2xvdC5nZXRQdXJlUmVzdWx0KCkpOwogfQogCitzdGF0aWMgdm9p
ZCBzZXR1cEdldEJ5SWRQcm90b3R5cGVDYWNoZShFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgSW5z
dHJ1Y3Rpb24qIHBjLCBKU0NlbGwqIGJhc2VDZWxsLCBQcm9wZXJ0eVNsb3QmIHNsb3QsIGNvbnN0
IElkZW50aWZpZXImIGlkZW50KQoreworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+
Y29kZUJsb2NrKCk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0
dXJlKCk7CisKKyAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5
Q2FjaGluZygpIHx8IHN0cnVjdHVyZS0+aXNEaWN0aW9uYXJ5KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0IGNvbmRpdGlvbnMgPSBnZW5lcmF0ZUNv
bmRpdGlvbnNGb3JQcm90b3R5cGVQcm9wZXJ0eUhpdCh2bSwgY29kZUJsb2NrLCBleGVjLCBzdHJ1
Y3R1cmUsIHNsb3Quc2xvdEJhc2UoKSwgaWRlbnQuaW1wbCgpKTsKKworICAgIGlmICghY29uZGl0
aW9ucy5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFByb3BlcnR5T2Zmc2V0IG9m
ZnNldCA9IGludmFsaWRPZmZzZXQ7CisgICAgQ29kZUJsb2NrOjpTdHJ1Y3R1cmVXYXRjaHBvaW50
TWFwJiB3YXRjaHBvaW50TWFwID0gY29kZUJsb2NrLT5sbGludEdldEJ5SWRXYXRjaHBvaW50TWFw
KCk7CisgICAgYXV0byByZXN1bHQgPSB3YXRjaHBvaW50TWFwLmFkZChzdHJ1Y3R1cmUsIEJhZzxM
TEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQ+KCkpOworICAgIGZv
ciAoT2JqZWN0UHJvcGVydHlDb25kaXRpb24gY29uZGl0aW9uIDogY29uZGl0aW9ucykgeworICAg
ICAgICBpZiAoIWNvbmRpdGlvbi5pc1dhdGNoYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBpZiAoY29uZGl0aW9uLmNvbmRpdGlvbigpLmtpbmQoKSA9PSBQcm9wZXJ0eUNvbmRp
dGlvbjo6UHJlc2VuY2UpCisgICAgICAgICAgICBvZmZzZXQgPSBjb25kaXRpb24uY29uZGl0aW9u
KCkub2Zmc2V0KCk7CisgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYWRkKGNvbmRpdGlv
biwgcGMpLT5pbnN0YWxsKCk7CisgICAgfQorICAgIEFTU0VSVChvZmZzZXQgIT0gaW52YWxpZE9m
ZnNldCk7CisKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9j
ayk7CisKKyAgICBwY1swXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2J5X2lk
X3Byb3RvX2xvYWQpOworICAgIHBjWzRdLnUuc3RydWN0dXJlSUQgPSBzdHJ1Y3R1cmUtPmlkKCk7
CisgICAgcGNbNV0udS5vcGVyYW5kID0gb2Zmc2V0OworICAgIC8vIFdlIGtub3cgdGhhdCB0aGlz
IHBvaW50ZXIgd2lsbCByZW1haW4gdmFsaWQgYmVjYXVzZSBpdCBpcyB0aGUgcHJvdG90eXBlIG9m
IHNvbWUgc3RydWN0dXJlLCBzLAorICAgIC8vIHdhdGNocG9pbnRlZCBhYm92ZS4gSWYgYW55IG9i
amVjdCB3aXRoIHN0cnVjdHVyZSBzIHdlcmUgdG8gY2hhbmdlIHByb3RvdHlwZXMgdGhlbiB0aGUg
Y29uZGl0aW9ucworICAgIC8vIGZvciB0aGlzIGNhY2hlIHdvdWxkIGZhaWwgYW5kIHRoaXMgdmFs
dWUgd2lsbCBuZXZlciBiZSB1c2VkIGFnYWluLgorICAgIHBjWzZdLnUucG9pbnRlciA9IHNsb3Qu
c2xvdEJhc2UoKTsKK30KKworCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X2J5
X2lkKQogewogICAgIExMSU5UX0JFR0lOKCk7CkBAIC01OTQsMzcgKzYzMiw0MyBAQCBMTElOVF9T
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKQogICAgIAogICAgIGlmICghTExJTlRf
QUxXQVlTX0FDQ0VTU19TTE9XCiAgICAgICAgICYmIGJhc2VWYWx1ZS5pc0NlbGwoKQotICAgICAg
ICAmJiBzbG90LmlzQ2FjaGVhYmxlKCkKLSAgICAgICAgJiYgc2xvdC5zbG90QmFzZSgpID09IGJh
c2VWYWx1ZQogICAgICAgICAmJiBzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKSkgewotICAgICAgICAK
KwogICAgICAgICBKU0NlbGwqIGJhc2VDZWxsID0gYmFzZVZhbHVlLmFzQ2VsbCgpOwogICAgICAg
ICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGJhc2VDZWxsLT5zdHJ1Y3R1cmUoKTsKKyAgICAgICAg
aWYgKHNsb3Quc2xvdEJhc2UoKSA9PSBiYXNlVmFsdWUpIHsKKyAgICAgICAgICAgIC8vIFN0YXJ0
IG91dCBieSBjbGVhcmluZyBvdXQgdGhlIG9sZCBjYWNoZS4KKyAgICAgICAgICAgIHBjWzBdLnUu
b3Bjb2RlID0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYnlfaWQpOworICAgICAgICAgICAgcGNb
NF0udS5wb2ludGVyID0gbnVsbHB0cjsgLy8gb2xkIHN0cnVjdHVyZQorICAgICAgICAgICAgcGNb
NV0udS5wb2ludGVyID0gbnVsbHB0cjsgLy8gb2Zmc2V0CisKKyAgICAgICAgICAgIC8vIFByZXZl
bnQgdGhlIHByb3RvdHlwZSBjYWNoZSBmcm9tIGV2ZXIgaGFwcGVuaW5nLgorICAgICAgICAgICAg
cGNbN10udS5vcGVyYW5kID0gMDsKICAgICAgICAgCi0gICAgICAgIC8vIFN0YXJ0IG91dCBieSBj
bGVhcmluZyBvdXQgdGhlIG9sZCBjYWNoZS4KLSAgICAgICAgcGNbMF0udS5vcGNvZGUgPSBMTElu
dDo6Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZCk7Ci0gICAgICAgIHBjWzRdLnUucG9pbnRlciA9IG51
bGxwdHI7IC8vIG9sZCBzdHJ1Y3R1cmUKLSAgICAgICAgcGNbNV0udS5wb2ludGVyID0gbnVsbHB0
cjsgLy8gb2Zmc2V0Ci0gICAgICAgIAotICAgICAgICBpZiAoIXN0cnVjdHVyZS0+aXNVbmNhY2hl
YWJsZURpY3Rpb25hcnkoKQotICAgICAgICAgICAgJiYgIXN0cnVjdHVyZS0+dHlwZUluZm8oKS5w
cm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKQotICAgICAgICAgICAgJiYgIXN0cnVjdHVyZS0+dHlw
ZUluZm8oKS5uZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKSkgewotICAgICAgICAg
ICAgdm0uaGVhcC53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOworICAg
ICAgICAgICAgaWYgKHN0cnVjdHVyZS0+cHJvcGVydHlBY2Nlc3Nlc0FyZUNhY2hlYWJsZSgpKSB7
CisgICAgICAgICAgICAgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihj
b2RlQmxvY2stPm1fbG9jayk7CiAKLSAgICAgICAgICAgIHBjWzRdLnUuc3RydWN0dXJlSUQgPSBz
dHJ1Y3R1cmUtPmlkKCk7Ci0gICAgICAgICAgICBwY1s1XS51Lm9wZXJhbmQgPSBzbG90LmNhY2hl
ZE9mZnNldCgpOwotICAgICAgICB9Ci0gICAgfQorICAgICAgICAgICAgICAgIHBjWzRdLnUuc3Ry
dWN0dXJlSUQgPSBzdHJ1Y3R1cmUtPmlkKCk7CisgICAgICAgICAgICAgICAgcGNbNV0udS5vcGVy
YW5kID0gc2xvdC5jYWNoZWRPZmZzZXQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IGlmIChVTkxJS0VMWShwY1s3XS51Lm9wZXJhbmQpKSB7CisgICAgICAgICAgICBBU1NFUlQoc2xv
dC5zbG90QmFzZSgpICE9IGJhc2VWYWx1ZSk7CiAKLSAgICBpZiAoIUxMSU5UX0FMV0FZU19BQ0NF
U1NfU0xPVworICAgICAgICAgICAgaWYgKCEoLS1wY1s3XS51Lm9wZXJhbmQpKQorICAgICAgICAg
ICAgICAgIHNldHVwR2V0QnlJZFByb3RvdHlwZUNhY2hlKGV4ZWMsIHZtLCBwYywgYmFzZUNlbGws
IHNsb3QsIGlkZW50KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoIUxMSU5UX0FMV0FZU19B
Q0NFU1NfU0xPVwogICAgICAgICAmJiBpc0pTQXJyYXkoYmFzZVZhbHVlKQogICAgICAgICAmJiBp
ZGVudCA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7CiAgICAgICAgIHBjWzBdLnUu
b3Bjb2RlID0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlfbGVuZ3RoKTsKICAgICAgICAg
QXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUgPSBjb2RlQmxvY2stPmdldE9yQWRkQXJyYXlQcm9m
aWxlKHBjIC0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKTsKICAgICAgICAgYXJy
YXlQcm9maWxlLT5vYnNlcnZlU3RydWN0dXJlKGJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJl
KCkpOwogICAgICAgICBwY1s0XS51LmFycmF5UHJvZmlsZSA9IGFycmF5UHJvZmlsZTsKKworICAg
ICAgICAvLyBQcmV2ZW50IHRoZSBwcm90b3R5cGUgY2FjaGUgZnJvbSBldmVyIGhhcHBlbmluZy4K
KyAgICAgICAgcGNbN10udS5vcGVyYW5kID0gMDsKICAgICB9CiAKICAgICBwY1tPUENPREVfTEVO
R1RIKG9wX2dldF9ieV9pZCkgLSAxXS51LnByb2ZpbGUtPm1fYnVja2V0c1swXSA9IEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaAppbmRleCAyNDk5NTQyOGI1NGNjY2U1NDg1ODkwYTk2MDdkYzVmODQ0MWNlNDA3Li5k
YTM2MzA1YmU1YzVkYmIxMTdhZmZiZTQyNjg5MGM0ODJiMDU2ZDk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaApAQCAtNzEsNiArNzEsNyBAQCBMTElO
VF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2YpOwogTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mX2N1c3RvbSk7CiBMTElOVF9T
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3RyeV9nZXRfYnlfaWQpOwogTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpOworTExJTlRfU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWRfcHJvdG9fbG9hZCk7CiBMTElOVF9TTE9X
X1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9hcmd1bWVudHNfbGVuZ3RoKTsKIExMSU5U
X1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X2J5X2lkKTsKIExMSU5UX1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZGVsX2J5X2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5k
ZXggNTJlMGI0NTFiYzgxMzIyMDQ0ODNkZWQ3NTQxNzkxZDE5MWM2NzMzNC4uOThlZWE0ZmNmZWFl
MGZhOGY5ZTI4ODQ5ZTRlY2ExOTY1ZGQ4ZjljZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTEzMzQs
MTAgKzEzMzQsMTEgQEAgZW5kCiAKIAogIyBXZSBvbmx5IGRvIG1vbm9tb3JwaGljIGdldF9ieV9p
ZCBjYWNoaW5nIGZvciBub3csIGFuZCB3ZSBkbyBub3QgbW9kaWZ5IHRoZQotIyBvcGNvZGUuIFdl
IGRvLCBob3dldmVyLCBhbGxvdyBmb3IgdGhlIGNhY2hlIHRvIGNoYW5nZSBhbnl0aW1lIGlmIGZh
aWxzLCBzaW5jZQotIyBwaW5nLXBvbmdpbmcgaXMgZnJlZS4gQXQgYmVzdCB3ZSBnZXQgbHVja3kg
YW5kIHRoZSBnZXRfYnlfaWQgd2lsbCBjb250aW51ZQorIyBvcGNvZGUgZm9yIG93biBwcm9wZXJ0
aWVzLiBXZSBhbHNvIGFsbG93IGZvciB0aGUgY2FjaGUgdG8gY2hhbmdlIGFueXRpbWUgaXQgZmFp
bHMsCisjIHNpbmNlIHBpbmctcG9uZ2luZyBpcyBmcmVlLiBBdCBiZXN0IHdlIGdldCBsdWNreSBh
bmQgdGhlIGdldF9ieV9pZCB3aWxsIGNvbnRpbnVlCiAjIHRvIHRha2UgZmFzdCBwYXRoIG9uIHRo
ZSBuZXcgY2FjaGUuIEF0IHdvcnN0IHdlIHRha2Ugc2xvdyBwYXRoLCB3aGljaCBpcyB3aGF0Ci0j
IHdlIHdvdWxkIGhhdmUgYmVlbiBkb2luZyBhbnl3YXkuCisjIHdlIHdvdWxkIGhhdmUgYmVlbiBk
b2luZyBhbnl3YXkuIEZvciBwcm90b3R5cGUgcHJvcGVydGllcywgd2Ugd2lsbCBhdHRlbXB0IHRv
CisjIGNvbnZlcnQgb3Bjb2RlIGludG8gYSBnZXRfYnlfaWRfcHJvdG9fbG9hZCBhZnRlciBhIGV4
ZWN1dGlvbiBjb3VudGVyIGhpdHMgemVyby4KIAogX2xsaW50X29wX2dldF9ieV9pZDoKICAgICB0
cmFjZUV4ZWN1dGlvbigpCkBAIC0xMzU4LDYgKzEzNTksMjcgQEAgX2xsaW50X29wX2dldF9ieV9p
ZDoKICAgICBkaXNwYXRjaCg5KQogCiAKKworX2xsaW50X29wX2dldF9ieV9pZF9wcm90b19sb2Fk
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BDXSwgdDAKKyAgICBsb2FkaSAx
NltQQ10sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQodDAsIENlbGxUYWcs
IHQzLCAub3BHZXRCeUlkUHJvdG9TbG93KQorICAgIGxvYWRpIDIwW1BDXSwgdDIKKyAgICBiaW5l
cSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNdLCB0MSwgLm9wR2V0QnlJZFByb3RvU2xvdworICAg
IGxvYWRwRnJvbUluc3RydWN0aW9uKDYsIHQzKQorICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVP
ZmZzZXQodDIsIHQzLCB0MCwgdDEpCisgICAgbG9hZGkgNFtQQ10sIHQyCisgICAgc3RvcmVpIHQw
LCBUYWdPZmZzZXRbY2ZyLCB0MiwgOF0KKyAgICBzdG9yZWkgdDEsIFBheWxvYWRPZmZzZXRbY2Zy
LCB0MiwgOF0KKyAgICB2YWx1ZVByb2ZpbGUodDAsIHQxLCAzMiwgdDIpCisgICAgZGlzcGF0Y2go
OSkKKworLm9wR2V0QnlJZFByb3RvU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9nZXRfYnlfaWQpCisgICAgZGlzcGF0Y2goOSkKKworCiBfbGxpbnRfb3BfZ2V0X2FycmF5
X2xlbmd0aDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgOFtQQ10sIHQwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtCmluZGV4IDQ2ZTU2MTZiZjQzNWUyMzYxMTY0ZDQ0OTNkYzEyNTZjMzhjMzRjMjIuLjUxMWJh
NzQ2NzYzM2RiODdiMjc4MmM5OWY4MzE3ZGUzZWIxMmM2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xMjMy
LDYgKzEyMzIsMjYgQEAgX2xsaW50X29wX2dldF9ieV9pZDoKICAgICBkaXNwYXRjaCg5KQogCiAK
K19sbGludF9vcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDIsIHQwKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGVDZWxsKHQwLCB0MywgLm9wR2V0QnlJZFByb3RvU2xvdykKKyAgICBsb2FkaSBKU0NlbGw6Om1f
c3RydWN0dXJlSURbdDNdLCB0MQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MikKKyAg
ICBiaW5lcSB0MiwgdDEsIC5vcEdldEJ5SWRQcm90b1Nsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1
Y3Rpb24oNSwgdDEpCisgICAgbG9hZHBGcm9tSW5zdHJ1Y3Rpb24oNiwgdDMpCisgICAgbG9hZGlz
RnJvbUluc3RydWN0aW9uKDEsIHQyKQorICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQo
dDEsIHQzLCB0MCkKKyAgICBzdG9yZXEgdDAsIFtjZnIsIHQyLCA4XQorICAgIHZhbHVlUHJvZmls
ZSh0MCwgOCwgdDEpCisgICAgZGlzcGF0Y2goOSkKKworLm9wR2V0QnlJZFByb3RvU2xvdzoKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfaWQpCisgICAgZGlzcGF0Y2go
OSkKKworCiBfbGxpbnRfb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICB0cmFjZUV4ZWN1dGlvbigp
CiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDIsIHQwKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCmluZGV4IGRhYjM1ZDA3OWViNDcxNjI0MDhkYTdlNWY3Yzk1NmJkOTg2
ZmUwZTYuLjc3YzE2YjNkZWU4NjVkNzBmOWViMGFlMTllM2Y3NmU0YjdlNDFjZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTM2MSw2ICszNjEsOCBAQCB0eXBl
ZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICBcCiAgICAgdihib29sLCB1c2VJQ1N0
YXRzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAorICAgIHYodW5zaWduZWQsIHBy
b3RvdHlwZUhpdENvdW50Rm9yTExJbnRDYWNoaW5nLCAyLCBOb3JtYWwsICJOdW1iZXIgb2YgcHJv
dG90eXBlIHByb3BlcnR5IGhpdHMgYmVmb3JlIGNhY2hpbmcgYSBwcm90b3R5cGUgaW4gdGhlIExM
SW50LiBBIGNvdW50IG9mIDAgbWVhbnMgbmV2ZXIgY2FjaGUuIikgXAorICAgIFwKICAgICB2KGJv
b2wsIGR1bXBNb2R1bGVSZWNvcmQsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJv
b2wsIGR1bXBNb2R1bGVMb2FkaW5nU3RhdGUsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAg
ICB2KGJvb2wsIGV4cG9zZUludGVybmFsTW9kdWxlTG9hZGVyLCBmYWxzZSwgTm9ybWFsLCAiZXhw
b3NlIHRoZSBpbnRlcm5hbCBtb2R1bGUgbG9hZGVyIG9iamVjdCB0byB0aGUgZ2xvYmFsIHNwYWNl
IGZvciBkZWJ1Z2dpbmciKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL2xsaW50LWdldC1ieS1pZC1jYWNoZS1wcm90b3R5cGUtbG9hZC1mcm9tLWRpY3Rp
b25hcnkuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2xsaW50LWdldC1i
eS1pZC1jYWNoZS1wcm90b3R5cGUtbG9hZC1mcm9tLWRpY3Rpb25hcnkuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDRhMjdlMWEyMzExMjgyODgxYjQyNWIyYTI3ODc1Y2RjMjNhZTA0YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbGxpbnQtZ2V0LWJ5LWlkLWNh
Y2hlLXByb3RvdHlwZS1sb2FkLWZyb20tZGljdGlvbmFyeS5qcwpAQCAtMCwwICsxLDE5IEBACisK
K2V4cGVjdGVkID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKK2ZvbyA9IHtmb286IDEsIGJh
cjogMjB9OworZGVsZXRlIGZvby5iYXI7CisKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQg
dG9TdHJpbmcgPSBmb28udG9TdHJpbmc7CisgICAgaWYgKHRvU3RyaW5nICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7Cit9CisKK2ZvciAoaSA9IDA7IGkgPCAxMDsgaSsr
KQorICAgIHRlc3QoKTsKKworZm9vLnRvU3RyaW5nID0gMTAwOworZXhwZWN0ZWQgPSAxMDA7CisK
K3Rlc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0JhZy5oIGIvU291cmNlL1dURi93
dGYvQmFnLmgKaW5kZXggZGI1MTEzMjZiMjYwNTk3MjE0MTcxYzUzOWMxOTZiYjE2NDU4ZjEzMy4u
NTIwNDBjNTAzMzU1NDUyNzAxMmFkYTViMDQ1OGIxZTgyNzc2ZGE4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvQmFnLmgKKysrIGIvU291cmNlL1dURi93dGYvQmFnLmgKQEAgLTQ4LDkgKzQ4
LDIyIEBAIHByaXZhdGU6CiAgICAgCiBwdWJsaWM6CiAgICAgQmFnKCkKLSAgICAgICAgOiBtX2hl
YWQobnVsbHB0cikKICAgICB7CiAgICAgfQorCisgICAgQmFnKEJhZzxUPiYmIG90aGVyKQorICAg
IHsKKyAgICAgICAgQVNTRVJUKCFtX2hlYWQpOworICAgICAgICBtX2hlYWQgPSBvdGhlci5tX2hl
YWQ7CisgICAgICAgIG90aGVyLm1faGVhZCA9IG51bGxwdHI7CisgICAgfQorCisgICAgQmFnJiBv
cGVyYXRvcj0oQmFnPFQ+JiYgb3RoZXIpCisgICAgeworICAgICAgICBtX2hlYWQgPSBvdGhlci5t
X2hlYWQ7CisgICAgICAgIG90aGVyLm1faGVhZCA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICB9CiAgICAgCiAgICAgfkJhZygpCiAgICAgewpAQCAtMTIxLDcgKzEzNCw3IEBA
IHB1YmxpYzoKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9oZWFkOyB9CiAg
ICAgCiBwcml2YXRlOgotICAgIE5vZGUqIG1faGVhZDsKKyAgICBOb2RlKiBtX2hlYWQgeyBudWxs
cHRyIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279706</attachid>
            <date>2016-05-24 14:15:44 -0700</date>
            <delta_ts>2016-05-24 14:46:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-158032-20160524141654.patch</filename>
            <type>text/plain</type>
            <size>39642</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MTFlOWQ0YjZjOTBjYTAxMDdiMmYzN2U2MDRmYjM4OWY2Y2ViYTFjLi42OGUwYjgxMjllZjRjMmIx
NWM1NzFiODIwNDQyZTMzNTk2NTdiZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NSBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0byBjYWNoZSBwcm90b3R5cGUg
bG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQ
aXpsby4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgcHJvdG90eXBlIHZhbHVlIGNhY2hpbmcg
dG8gdGhlIExMSW50IGZvciBvcF9nZXRfYnlfaWQuCisgICAgICAgIFR3byBwcmV2aW91c2x5IHVu
dXNlZCB3b3JkcyBpbiB0aGUgb3BfZ2V0X2J5X2lkIGJ5dGVjb2RlIGhhdmUgYmVlbgorICAgICAg
ICByZXB1cnBvc2VkIHRvIGhvbGQgZXh0cmEgaW5mb3JtYXRpb24gZm9yIHRoZSBjYWNoZS4gVGhl
IGZpcnN0IGlzIGEKKyAgICAgICAgY291bnRlciB0aGF0IHJlY29yZHMgdGhlIG51bWJlciBvZiBn
ZXRfYnlfaWRzIHRoYXQgaGl0IGEgY2FjaGVhYmxlIHZhbHVlCisgICAgICAgIG9uIGEgcHJvdG90
eXBlLiBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVkIGZyb20gb25lIHRvIHplcm8gd2UK
KyAgICAgICAgYXR0ZW1wdCB0byBjYWNoZSB0aGUgcHJvdG90eXBlIGxvYWQsIHdoaWNoIHdpbGwg
YmUgZGlzY3Vzc2VkIGZ1cnRoZXIKKyAgICAgICAgYmVsb3cuIFRoZSBzZWNvbmQgd29yZCBpcyB1
c2VkIHRvIGhvbGQgdGhlIHByb3RvdHlwZSBvYmplY3Qgd2hlbiB3ZSBoYXZlCisgICAgICAgIHN0
YXJ0ZWQgY2FjaGluZy4KKworICAgICAgICBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVk
IHRvIHplcm8gd2UgZmlyc3QgYXR0ZW1wdCB0byBnZW5lcmF0ZSBhbmQKKyAgICAgICAgd2F0Y2gg
dGhlIHByb3BlcnR5IGNvbmRpdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgdmFsaWRpdHkgb2Yg
cHJvdG90eXBlCisgICAgICAgIGxvYWQuIElmIHRoZSB3YXRjaHBvaW50cyBhcmUgc3VjY2Vzc2Z1
bGx5IGNyZWF0ZWQgYW5kIGluc3RhbGxlZCB3ZQorICAgICAgICByZXBsYWNlIHRoZSBvcF9nZXRf
YnlfaWQgb3Bjb2RlIHdpdGggdGhlIG5ldyBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZAorICAgICAg
ICBvcGNvZGUsIHdoaWNoIHRlbGxzIHRoZSBMTEludCB0byB1c2UgdGhlIGNhY2hlIHByb3RvdHlw
ZSBvYmplY3QgZm9yIHRoZQorICAgICAgICBsb2FkIHJhdGhlciB0aGFuIHRoZSBiYXNlIHZhbHVl
LgorCisgICAgICAgIFByaW9yIHRvIHRoaXMgcGF0Y2ggdGhlcmUgd2FzIG5vdCBMTEludCBzcGVj
aWZpYyBkYXRhIG9uQ29kZUJsb2Nrcy4KKyAgICAgICAgU2luY2UgdGhlIENvZGVCbG9jayBuZWVk
cyB0byBvd24gdGhlIFdhdGNocG9pbnRzIGZvciB0aGUgY2FjaGUsIGEgd2VhaworICAgICAgICBt
YXAgZnJvbSBlYWNoIGJhc2Ugc3RydWN0dXJlIHRvIGEgYmFnIG9mIFdhdGNocG9pbnRzIGNyZWF0
ZWQgZm9yIHRoYXQKKyAgICAgICAgc3RydWN0dXJlIGJ5IHNvbWUgb3BfZ2V0X2J5X2lkIGhhcyBi
ZWVuIGFkZGVkIHRvIHRoZSBDb2RlQmxvY2suIER1cmluZworICAgICAgICBHQywgaWYgd2UgZmlu
ZCB0aGF0IHRoZSBhIHN0cnVjdHVyZSBpbiB0aGUgbWFwIGhhcyBub3QgYmVlbiBtYXJrZWQgd2UK
KyAgICAgICAgZnJlZSB0aGUgYXNzb2NpYXRlZCBiYWcgb24gdGhlIENvZGVCbG9jay4KKworICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6
CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAq
IGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJpbnRH
ZXRCeUlkT3ApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnByaW50R2V0QnlJZENhY2hlU3Rh
dHVzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMpOgorICAgICAgICAqIGJ5
dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmxsaW50R2V0QnlJ
ZFdhdGNocG9pbnRNYXApOgorICAgICAgICAoSlNDOjpjbGVhckxMSW50R2V0QnlJZENhY2hlKToK
KyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0
QnlJZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludCk6CisgICAgICAgICogYnl0ZWNvZGUvTExJbnRQ
cm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6
TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50KToKKyAgICAgICAg
KEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50OjppbnN0
YWxsKToKKyAgICAgICAgKEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVX
YXRjaHBvaW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL0xMSW50UHJvdG90
eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
eXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHA6CisgICAgICAgIChKU0M6Ok9i
amVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Ojppc1ZhbGlkQW5kV2F0Y2hhYmxlKToKKyAgICAgICAg
KiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oOgorICAgICAgICAqIGJ5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0R2V0QnlJZCk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAg
ICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJp
bGl0eUxldmVsKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpw
cml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGls
ZVNsb3dDYXNlcyk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAg
ICAoSlNDOjpMTEludDo6c2V0dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUpOgorICAgICAgICAoSlND
OjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xv
d1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToK
KyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1
bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9sbGludC1nZXQtYnktaWQt
Y2FjaGUtcHJvdG90eXBlLWxvYWQtZnJvbS1kaWN0aW9uYXJ5LmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorCiAyMDE2LTA1LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpd2VkLCBhZGQgYSBjb21tZW50IHRvIGRlc2NyaWJlIHRoZSB0ZXN0J3Mg
ZmFpbHVyZSBtb2RlLiBTdWdnZXN0ZWQgYnkgbWxhbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2Y4NDI4MjA1ZjhiNzA3NGJi
Yjg0YWM2ODdiOTJlZGYyNDQ5MDk2Ny4uYWM5Y2YyMTg4OWYwOTI1MTlmNTA4MDU2NjkxZTAzZDNh
YWE4OTA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8
a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0
byBjYWNoZSBwcm90b3R5cGUgbG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBS
ZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAgICBBZGQgbW92ZSBjb25zdHJ1Y3RvcnMv
aW5pdGlhbGl6ZXJzIHRvIEJhZ3MuCisKKyAgICAgICAgKiB3dGYvQmFnLmg6CisgICAgICAgIChX
VEY6OkJhZzo6QmFnKToKKyAgICAgICAgKFdURjo6QmFnOjpvcGVyYXRvcj0pOgorCiAyMDE2LTA1
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGF1dG8g
Zm9yIHNvbWUgb2Ygb3VyIGxhbWJkYSBmdW5jdGlvbiBwYXJhbWV0ZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDhjODkyNWM2ZDNhNWY4MzhkY2M2MDRjYzE1MjEzMDVlZDE0MjEw
YWUuLjNlMjc3YTljMTFjOTU0YjgwYzdmYmY2YjRmZjJiYzVmYTY2Mjk1ODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTgxLDYgKzExODEsOCBAQAogCQk1MzcwQjRGNjFCRjI2
MjA1MDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFz
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM3MEI0
RjQxQkYyNUVBMjAwNUM0MEZDIC8qIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hw
b2ludEJhc2UuaCAqLzsgfTsKIAkJNTM5MTdFN0IxQjc5MDZGQTAwMEVCRDMzIC8qIEpTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzkxN0U3QTFCNzkwNkU0MDAwRUJEMzMgLyogSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCAqLzsgfTsKIAkJNTNGNkJG
NkQxQzNGMDYwQTAwRjQxRTVEIC8qIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGNkJGNkMx
QzNGMDYwQTAwRjQxRTVEIC8qIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUzRkEyQUUx
MUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUzRkEyQUUwMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0
cnVjdHVyZVdhdGNocG9pbnQuaCAqLzsgfTsKKwkJNTNGQTJBRTMxQ0YzODAzOTAwMjI3MTFEIC8q
IExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0ZBMkFFMjFDRjM4MDM5
MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50
LmNwcCAqLzsgfTsKIAkJNUQ1RDhBRDEwRTBEMEVCRTAwRjlDNjkyIC8qIGxpYmVkaXQuZHlsaWIg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDVEOEFE
MDBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRpdC5keWxpYiAqLzsgfTsKIAkJNURCQjE1MUIxMzFE
MEIzMTAwNTZBRDM2IC8qIHRlc3RhcGkuanMgaW4gQ29weSBTdXBwb3J0IFNjcmlwdCAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEQ4NTc3NDBBNDY5NkM4MDAzMjE0NkMgLyog
dGVzdGFwaS5qcyAqLzsgfTsKIAkJNURCQjE1MjUxMzFEMEJENzAwNTZBRDM2IC8qIG1pbmlkb20u
anMgaW4gQ29weSBTdXBwb3J0IFNjcmlwdCAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxNDEyMTEwRDBBNDg3ODg3MDA0ODAyNTUgLyogbWluaWRvbS5qcyAqLzsgfTsKQEAgLTMz
MjEsNiArMzMyMyw4IEBACiAJCTUzOTE3RTgzMUI3OTFDQjgwMDBFQkQzMyAvKiBUeXBlZEFycmF5
UHJvdG90eXBlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVHlw
ZWRBcnJheVByb3RvdHlwZS5qczsgcGF0aCA9IGJ1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUu
anM7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNTNGMjU2RTExQjg3RTI4MDAwQjRC
NzY4IC8qIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzRjZCRjZDMUMzRjA2MEEwMEY0MUU1RCAvKiBJbnRlcm5h
bEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUzRkEyQUUwMUNGMzdGM0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlw
ZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzRkEyQUUyMUNGMzgwMzkwMDIyNzEx
RCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTExJbnRQcm90b3R5cGVMb2FkQWRh
cHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTkzRDQzQ0NBMEJCRTA2RDg5QzU5NzA3IC8qIE1hcERhdGFJbmxpbmVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcERhdGFJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVENUQ4QUQwMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGli
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBp
bGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJlZGl0LmR5bGliOyBwYXRoID0gL3Vzci9saWIv
bGliZWRpdC5keWxpYjsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJNURBRkQ2Q0Ix
NDZCNjg2MzAwRkJFRkI0IC8qIEpTQy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBKU0MueGNjb25m
aWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTc1LDYgKzY1NzksOCBAQAogCQkJ
CTBGQjU0Njc4MTRGNUM0NjgwMDJDMjk4OSAvKiBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5jcHAg
Ki8sCiAJCQkJMEZCNTQ2NzYxNEY1OUFEMTAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFsdWVQcm9m
aWxlLmggKi8sCiAJCQkJMEYwRkM0NTgxNEJEMTVGMTAwQjgxMTU0IC8qIExMSW50Q2FsbExpbmtJ
bmZvLmggKi8sCisJCQkJNTNGQTJBRTIxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBl
TG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgKi8sCisJCQkJNTNGQTJBRTAxQ0Yz
N0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludC5oICovLAogCQkJCTBGQjU0NjdDMTRGNUNGRDMwMDJDMjk4OSAvKiBNZXRob2RPZkdldHRp
bmdBVmFsdWVQcm9maWxlLmNwcCAqLywKIAkJCQkwRkI1NDY3QTE0RjVDN0Q0MDAyQzI5ODkgLyog
TWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oICovLAogCQkJCTE0Q0E5NThDMTZBQjUwRkEw
MDkzOEEwNiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oICovLApAQCAtNzkxMCw2ICs3OTE2
LDcgQEAKIAkJCQkwRkY3MTY4QzE1QTNCMjM1MDA4RjVEQUEgLyogUHJvcGVydHlPZmZzZXQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMThDNDU1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9wZXJ0eVNs
b3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzlDMTVFRDhFNDYwMEYxNjdCMiAvKiBQcm9w
ZXJ0eVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTUzRkEyQUUxMUNGMzdGM0YwMDIyNzEx
RCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMThDNDU2MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm90ZWN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNDc0QzMzQjE2QUEyRDk1MDA2MkYwMUQgLyogUHJvdG90eXBlTWFw
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU3ODBBMjE4RkUxRTk4MDAxRTcyRDkgLyogUHVyZU5h
Ti5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjM1LDYgKzg2NDIsNyBAQAogCQkJCTY1QzAyODUwMTcx
Nzk1RTIwMDM1MUUzNSAvKiBBUk12N0Rpc2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk2NUMwMjg1QzE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdET3Bjb2RlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGODMzNUI3MTYzOUMxRTYwMDE0NDNCNSAvKiBBcnJheUFsbG9jYXRpb25Qcm9m
aWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUzRkEyQUUzMUNGMzgwMzkwMDIyNzExRCAvKiBM
TEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTdBOEFGMzQxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGRkM5OUQ0MTg0RUUzMTgwMDlDMTBBQiAvKiBBcnJheUJ1ZmZl
ck5ldXRlcmluZ1dhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdBOEFGMzYxN0FE
QjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgppbmRleCBh
ODA2NTZlMjU1ZDI1MmEzODBmODg1YTlmYmFhYTUwMDM4NDc1MGIyLi4yMWZmYjM4YjI0NzQ2ZWU0
ODRjOGYzNTU2NzUxYTU3OTNmYWFjMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC01OCwxMSArNTgsMTIgQEAKICAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX2lzX29iamVjdF9vcl9udWxsIiwgImxlbmd0aCIgOiAzIH0sCiAg
ICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9pc19mdW5jdGlvbiIsICJsZW5ndGgiIDogMyB9LAog
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaW4iLCAibGVuZ3RoIiA6IDQgfSwKLSAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX3RyeV9nZXRfYnlfaWQiLCAibGVuZ3RoIiA6IDQgfSwKKyAgICAg
ICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9hcnJheV9sZW5ndGgiLCAibGVuZ3RoIiA6IDkgfSwK
ICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9ieV9pZCIsICJsZW5ndGgiIDogOSAgfSwK
KyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9ieV9pZF9wcm90b19sb2FkIiwgImxlbmd0
aCIgOiA5IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRfYnlfaWRfd2l0aF90aGlz
IiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRfYnlfdmFs
X3dpdGhfdGhpcyIsICJsZW5ndGgiIDogNSB9LAotICAgICAgICAgICAgeyAibmFtZSIgOiAib3Bf
Z2V0X2FycmF5X2xlbmd0aCIsICJsZW5ndGgiIDogOSB9LAorICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfdHJ5X2dldF9ieV9pZCIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFt
ZSIgOiAib3BfcHV0X2J5X2lkIiwgImxlbmd0aCIgOiA5IH0sCiAgICAgICAgICAgICB7ICJuYW1l
IiA6ICJvcF9wdXRfYnlfaWRfd2l0aF90aGlzIiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF9kZWxfYnlfaWQiLCAibGVuZ3RoIiA6IDQgfSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKaW5kZXggZmQxZjQ0ZTRi
YjA5NDJiMzEzY2IwNzgzOTIwMjVhNzlhNDE5OTJlYS4uNmE3Zjc1ZTI5MjFjYWY5Yjk0ZjljNjNk
YThjZTlkM2Q2MjQxOGRjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlVXNlRGVmLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlVXNlRGVmLmgKQEAgLTE1OCw2ICsxNTgsNyBAQCB2b2lkIGNvbXB1dGVVc2VzRm9y
Qnl0ZWNvZGVPZmZzZXQoCiAgICAgY2FzZSBvcF90b19wcmltaXRpdmU6CiAgICAgY2FzZSBvcF90
cnlfZ2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAgIGNhc2Ugb3BfZ2V0X2J5
X2lkX3Byb3RvX2xvYWQ6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgIGNhc2Ug
b3BfdHlwZW9mOgogICAgIGNhc2Ugb3BfaXNfZW1wdHk6CkBAIC0zOTIsNiArMzkzLDcgQEAgdm9p
ZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBCeXRl
Y29kZUJhc2ljQmxvY2sqIGJsb2MKICAgICBjYXNlIG9wX2NvbnN0cnVjdDoKICAgICBjYXNlIG9w
X3RyeV9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgY2FzZSBvcF9nZXRf
YnlfaWRfcHJvdG9fbG9hZDoKICAgICBjYXNlIG9wX2dldF9ieV9pZF93aXRoX3RoaXM6CiAgICAg
Y2FzZSBvcF9nZXRfYnlfdmFsX3dpdGhfdGhpczoKICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5n
dGg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4
IDU0MWY0NTI3YWQ2OTkxMmQ1YzkzYmY2ZTY4MWZlN2YwNDI4MGY5OTAuLjBjNjUzM2M0NTU5YWE2
MDMzMDg5NzdjNzQwMDcxNmRlZWI5NDlhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiSlNMZXhp
Y2FsRW52aXJvbm1lbnQuaCIKICNpbmNsdWRlICJKU01vZHVsZUVudmlyb25tZW50LmgiCiAjaW5j
bHVkZSAiTExJbnRFbnRyeXBvaW50LmgiCisjaW5jbHVkZSAiTExJbnRQcm90b3R5cGVMb2FkQWRh
cHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRl
ci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJQQ1RvQ29kZU9yaWdpbk1h
cC5oIgpAQCAtMzQ1LDYgKzM0Niw5IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludEdldEJ5SWRPcChQ
cmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsb2NhdGlvbiwKICAgICBjYXNl
IG9wX2dldF9ieV9pZDoKICAgICAgICAgb3AgPSAiZ2V0X2J5X2lkIjsKICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKKyAgICAgICAgb3AgPSAiZ2V0X2J5
X2lkX3Byb3RvX2xvYWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIG9wX2dldF9hcnJheV9s
ZW5ndGg6CiAgICAgICAgIG9wID0gImFycmF5X2xlbmd0aCI7CiAgICAgICAgIGJyZWFrOwpAQCAt
NDA1LDYgKzQwOSw4IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludEdldEJ5SWRDYWNoZVN0YXR1cyhQ
cmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsCiAgICAgICAgIG91dC5wcmlu
dGYoIiBsbGludCgiKTsKICAgICAgICAgZHVtcFN0cnVjdHVyZShvdXQsICJzdHJ1Y3QiLCBzdHJ1
Y3R1cmUsIGlkZW50KTsKICAgICAgICAgb3V0LnByaW50ZigiKSIpOworICAgICAgICBpZiAoZXhl
Yy0+aW50ZXJwcmV0ZXIoKS0+Z2V0T3Bjb2RlSUQoaW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUpID09
IG9wX2dldF9ieV9pZF9wcm90b19sb2FkKQorICAgICAgICAgICAgb3V0LnByaW50ZigiIHByb3Rv
KCVwKSIsIGluc3RydWN0aW9uWzZdLnUucG9pbnRlcik7CiAgICAgfQogCiAjaWYgRU5BQkxFKEpJ
VCkKQEAgLTExMTIsNiArMTExOCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9ieV9pZDoK
KyAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICAgICAgY2FzZSBvcF9n
ZXRfYXJyYXlfbGVuZ3RoOiB7CiAgICAgICAgICAgICBwcmludEdldEJ5SWRPcChvdXQsIGV4ZWMs
IGxvY2F0aW9uLCBpdCk7CiAgICAgICAgICAgICBwcmludEdldEJ5SWRDYWNoZVN0YXR1cyhvdXQs
IGV4ZWMsIGxvY2F0aW9uLCBzdHViSW5mb3MpOwpAQCAtMjc1NCwxNCArMjc2MSwxNCBAQCB2b2lk
IENvZGVCbG9jazo6ZmluYWxpemVMTEludElubGluZUNhY2hlcygpCiAgICAgZm9yIChzaXplX3Qg
c2l6ZSA9IHByb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25zLnNpemUoKSwgaSA9IDA7IGkgPCBzaXpl
OyArK2kpIHsKICAgICAgICAgSW5zdHJ1Y3Rpb24qIGN1ckluc3RydWN0aW9uID0gJmluc3RydWN0
aW9ucygpW3Byb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb25zW2ldXTsKICAgICAgICAgc3dpdGNoIChp
bnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQoY3VySW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGUpKSB7Ci0g
ICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOiB7CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgor
ICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOiB7CiAgICAgICAgICAgICBTdHJ1
Y3R1cmVJRCBvbGRTdHJ1Y3R1cmVJRCA9IGN1ckluc3RydWN0aW9uWzRdLnUuc3RydWN0dXJlSUQ7
CiAgICAgICAgICAgICBpZiAoIW9sZFN0cnVjdHVyZUlEIHx8IEhlYXA6OmlzTWFya2VkKG1fdm0t
PmhlYXAuc3RydWN0dXJlSURUYWJsZSgpLmdldChvbGRTdHJ1Y3R1cmVJRCkpKQogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAg
ICAgICAgICAgICAgICBkYXRhTG9nRigiQ2xlYXJpbmcgTExJbnQgcHJvcGVydHkgYWNjZXNzLlxu
Iik7Ci0gICAgICAgICAgICBjdXJJbnN0cnVjdGlvbls0XS51LnN0cnVjdHVyZUlEID0gMDsKLSAg
ICAgICAgICAgIGN1ckluc3RydWN0aW9uWzVdLnUub3BlcmFuZCA9IDA7CisgICAgICAgICAgICBj
bGVhckxMSW50R2V0QnlJZENhY2hlKGN1ckluc3RydWN0aW9uKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkOiB7CkBAIC0yODM1LDYgKzI4
NDIsMTIgQEAgdm9pZCBDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMoKQogICAg
ICAgICB9CiAgICAgfQogCisgICAgLy8gV2UgY2FuJ3QganVzdCByZW1vdmUgYWxsIHRoZSBzZXRz
IHdoZW4gd2UgY2xlYXIgdGhlIGNhY2hlcyBzaW5jZSB3ZSBtaWdodCBoYXZlIGNyZWF0ZWQgYSB3
YXRjaHBvaW50IHNldAorICAgIC8vIHRoZW4gY2xlYXJlZCB0aGUgY2FjaGUgd2l0aG91dCBHQ2lu
ZyBpbiBiZXR3ZWVuLgorICAgIG1fbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcC5yZW1vdmVJZihb
XShjb25zdCBTdHJ1Y3R1cmVXYXRjaHBvaW50TWFwOjpLZXlWYWx1ZVBhaXJUeXBlJiBwYWlyKSAt
PiBib29sIHsKKyAgICAgICAgcmV0dXJuICFIZWFwOjppc01hcmtlZChwYWlyLmtleSk7CisgICAg
fSk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9sbGludENhbGxMaW5rSW5mb3Mu
c2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fbGxpbnRDYWxsTGlua0luZm9zW2ldLmlzTGlu
a2VkKCkgJiYgIUhlYXA6OmlzTWFya2VkKG1fbGxpbnRDYWxsTGlua0luZm9zW2ldLmNhbGxlZS5n
ZXQoKSkpIHsKICAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggY2JiOGNmNTcwMWNjZTc5
NWE2MjUyZjRhN2U3YTA0YTU3NDFiMGIyZi4uNjY0ZWNmZWIwMTdiY2NhNzZmYTUwMThiZDQ0MjBh
YzZiMjNiM2ZhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
aApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiSnVtcFRhYmxlLmgiCiAjaW5jbHVkZSAiTExJbnRDYWxsTGlua0luZm8uaCIKKyNpbmNsdWRl
ICJMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCIKICNpbmNs
dWRlICJMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5oIgogI2luY2x1ZGUgIk9iamVjdEFsbG9jYXRp
b25Qcm9maWxlLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgpAQCAtNjc4LDYgKzY3OSw5IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIG1fbGxpbnRFeGVjdXRlQ291bnRlcjsKICAgICB9CiAKKyAg
ICB0eXBlZGVmIEhhc2hNYXA8U3RydWN0dXJlKiwgQmFnPExMSW50UHJvdG90eXBlTG9hZEFkYXB0
aXZlU3RydWN0dXJlV2F0Y2hwb2ludD4+IFN0cnVjdHVyZVdhdGNocG9pbnRNYXA7CisgICAgU3Ry
dWN0dXJlV2F0Y2hwb2ludE1hcCYgbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcCgpIHsgcmV0dXJu
IG1fbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcDsgfQorCiAgICAgLy8gRnVuY3Rpb25zIGZvciBj
b250cm9sbGluZyB3aGVuIHRpZXJlZCBjb21waWxhdGlvbiBraWNrcyBpbi4gVGhpcwogICAgIC8v
IGNvbnRyb2xzIGJvdGggd2hlbiB0aGUgb3B0aW1pemluZyBjb21waWxlciBpcyBpbnZva2VkIGFu
ZCB3aGVuIE9TUgogICAgIC8vIGVudHJ5IGhhcHBlbnMuIFR3byB0cmlnZ2VycyBleGlzdDogdGhl
IGxvb3AgdHJpZ2dlciBhbmQgdGhlIHJldHVybgpAQCAtMTAxOSw2ICsxMDIzLDcgQEAgcHJpdmF0
ZToKIAogICAgIFJlZkNvdW50ZWRBcnJheTxMTEludENhbGxMaW5rSW5mbz4gbV9sbGludENhbGxM
aW5rSW5mb3M7CiAgICAgU2VudGluZWxMaW5rZWRMaXN0PExMSW50Q2FsbExpbmtJbmZvLCBCYXNp
Y1Jhd1NlbnRpbmVsTm9kZTxMTEludENhbGxMaW5rSW5mbz4+IG1faW5jb21pbmdMTEludENhbGxz
OworICAgIFN0cnVjdHVyZVdhdGNocG9pbnRNYXAgbV9sbGludEdldEJ5SWRXYXRjaHBvaW50TWFw
OwogICAgIFJlZlB0cjxKSVRDb2RlPiBtX2ppdENvZGU7CiAjaWYgRU5BQkxFKEpJVCkKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8UmVnaXN0ZXJBdE9mZnNldExpc3Q+IG1fY2FsbGVlU2F2ZVJlZ2lzdGVy
czsKQEAgLTEzMDksNiArMTMxNCwxNCBAQCBwcml2YXRlOgogfTsKICNlbmRpZgogCitpbmxpbmUg
dm9pZCBjbGVhckxMSW50R2V0QnlJZENhY2hlKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKK3sK
KyAgICBpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2J5
X2lkKTsKKyAgICBpbnN0cnVjdGlvbls0XS51LnBvaW50ZXIgPSBudWxscHRyOworICAgIGluc3Ry
dWN0aW9uWzVdLnUucG9pbnRlciA9IG51bGxwdHI7CisgICAgaW5zdHJ1Y3Rpb25bNl0udS5wb2lu
dGVyID0gbnVsbHB0cjsKK30KKwogaW5saW5lIFJlZ2lzdGVyJiBFeGVjU3RhdGU6OnIoaW50IGlu
ZGV4KQogewogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+Y29kZUJsb2NrKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKaW5k
ZXggYzY5NTE0YzU3ZTg5MDNjMDI1YjI1N2ZjMDEzYmUxNzMyYzk0NWMwYi4uNTllODFjNzUxYWZh
MDdhNGFkZjU0ZTFkNmI0MmYyYTc0ZDVlYTczOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcApAQCAtNzUsOCArNzUsMTIgQEAgR2V0QnlJ
ZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRnJvbUxMSW50KENvZGVCbG9jayogcHJvZmls
ZWRCbG9jaywgdW5zaWduZWQKICAgICBWTSYgdm0gPSAqcHJvZmlsZWRCbG9jay0+dm0oKTsKICAg
ICAKICAgICBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24gPSBwcm9maWxlZEJsb2NrLT5pbnN0cnVj
dGlvbnMoKS5iZWdpbigpICsgYnl0ZWNvZGVJbmRleDsKLSAgICAKLSAgICBpZiAoaW5zdHJ1Y3Rp
b25bMF0udS5vcGNvZGUgPT0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlfbGVuZ3RoKSB8
fCBpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX3RyeV9nZXRf
YnlfaWQpKQorCisgICAgT3Bjb2RlIG9wY29kZSA9IGluc3RydWN0aW9uWzBdLnUub3Bjb2RlOwor
CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3QganVzdCBiYWlsIGlmIHdlIHNlZSBhIHRyeV9n
ZXRfYnlfaWQgb3IgYSBnZXRfYnlfaWRfcHJvdG9fbG9hZC4OCisgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODAzOQorICAgIGlmIChvcGNvZGUgPT0gTExJ
bnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlfbGVuZ3RoKSB8fCBvcGNvZGUgPT0gTExJbnQ6Omdl
dE9wY29kZShvcF90cnlfZ2V0X2J5X2lkKSB8fCBvcGNvZGUgPT0gTExJbnQ6OmdldE9wY29kZShv
cF9nZXRfYnlfaWRfcHJvdG9fbG9hZCkpCiAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKE5v
SW5mb3JtYXRpb24sIGZhbHNlKTsKIAogICAgIFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEID0gaW5z
dHJ1Y3Rpb25bNF0udS5zdHJ1Y3R1cmVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9p
bnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FlMmMwZGM2M2E4
MWVlYjk4NjZmY2Q1NjMwMGZlYTI2MGM1NDAyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVy
ZVdhdGNocG9pbnQuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTExJ
bnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgiCisKKyNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlN0cnVj
dHVyZUlubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK0xMSW50UHJvdG90eXBlTG9hZEFk
YXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1
Y3R1cmVXYXRjaHBvaW50KGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJiBrZXksIEluc3Ry
dWN0aW9uKiBnZXRCeUlkSW5zdHJ1Y3Rpb24pCisgICAgOiBtX2tleShrZXkpCisgICAgLCBtX2dl
dEJ5SWRJbnN0cnVjdGlvbihnZXRCeUlkSW5zdHJ1Y3Rpb24pCit7CisgICAgUkVMRUFTRV9BU1NF
UlQoa2V5LndhdGNoaW5nUmVxdWlyZXNTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludCgpKTsK
KyAgICBSRUxFQVNFX0FTU0VSVCgha2V5LndhdGNoaW5nUmVxdWlyZXNSZXBsYWNlbWVudFdhdGNo
cG9pbnQoKSk7Cit9CisKK3ZvaWQgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVX
YXRjaHBvaW50OjppbnN0YWxsKCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2tleS5pc1dhdGNo
YWJsZSgpKTsKKworICAgIG1fa2V5Lm9iamVjdCgpLT5zdHJ1Y3R1cmUoKS0+YWRkVHJhbnNpdGlv
bldhdGNocG9pbnQodGhpcyk7Cit9CisKK3ZvaWQgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVT
dHJ1Y3R1cmVXYXRjaHBvaW50OjpmaXJlSW50ZXJuYWwoY29uc3QgRmlyZURldGFpbCYgZGV0YWls
KQoreworICAgIGlmIChtX2tleS5pc1dhdGNoYWJsZShQcm9wZXJ0eUNvbmRpdGlvbjo6RW5zdXJl
V2F0Y2hhYmlsaXR5KSkgeworICAgICAgICBpbnN0YWxsKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBTdHJpbmdQcmludFN0cmVhbSBvdXQ7CisgICAgb3V0LnByaW50KCJPYmplY3RU
b1N0cmluZ1ZhbHVlIEFkYXB0YXRpb24gb2YgIiwgbV9rZXksICIgZmFpbGVkOiAiLCBkZXRhaWwp
OworCisgICAgU3RyaW5nRmlyZURldGFpbCBzdHJpbmdEZXRhaWwob3V0LnRvQ1N0cmluZygpLmRh
dGEoKSk7CisKKyAgICBjbGVhckxMSW50R2V0QnlJZENhY2hlKG1fZ2V0QnlJZEluc3RydWN0aW9u
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBv
aW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRQcm90b3R5cGVMb2Fk
QWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYxNWUxMDYwMmZiMjkz
NzNjYmUxMWFmZWU2ZmIwZjJjYWNlOWY4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnRfaAorI2RlZmluZSBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnRfaAorCisjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJP
YmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5oIgorI2luY2x1ZGUgIldhdGNocG9pbnQuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK2NsYXNzIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJl
V2F0Y2hwb2ludCA6IHB1YmxpYyBXYXRjaHBvaW50IHsKK3B1YmxpYzoKKyAgICBMTEludFByb3Rv
dHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQoY29uc3QgT2JqZWN0UHJvcGVydHlD
b25kaXRpb24mLCBJbnN0cnVjdGlvbiopOworCisgICAgdm9pZCBpbnN0YWxsKCk7CisKK3Byb3Rl
Y3RlZDoKKyAgICB2b2lkIGZpcmVJbnRlcm5hbChjb25zdCBGaXJlRGV0YWlsJikgb3ZlcnJpZGU7
CisKK3ByaXZhdGU6CisgICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb24gbV9rZXk7CisgICAgSW5z
dHJ1Y3Rpb24qIG1fZ2V0QnlJZEluc3RydWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlND
CisKKyNlbmRpZiAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9p
bnRfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVj
dFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKaW5kZXggZDU3MDA0MDBmOGIyNjNlNWZm
Nzc1ZWZlZjg4YmE1Y2IwOWRiNDIwYi4uMDU3MjNhZDgyMmZmOTFmNWIxMjQ2YzRmN2I0NDFmMjFk
NWQyOWNhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVj
dFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwCkBAIC0xNjcsNiArMTY3LDE4IEBA
IHZvaWQgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQ6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkg
Y29uc3QKICAgICBkdW1wSW5Db250ZXh0KG91dCwgbnVsbHB0cik7CiB9CiAKK2Jvb2wgT2JqZWN0
UHJvcGVydHlDb25kaXRpb25TZXQ6OmlzVmFsaWRBbmRXYXRjaGFibGUoKSBjb25zdAoreworICAg
IGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3IgKE9iamVj
dFByb3BlcnR5Q29uZGl0aW9uIGNvbmRpdGlvbiA6IG1fZGF0YS0+dmVjdG9yKSB7CisgICAgICAg
IGlmICghY29uZGl0aW9uLmlzV2F0Y2hhYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCiBuYW1lc3BhY2UgewogCiBib29sIHZlcmJv
c2UgPSBmYWxzZTsKQEAgLTI1NCw5ICsyNjYsMTEgQEAgT2JqZWN0UHJvcGVydHlDb25kaXRpb25T
ZXQgZ2VuZXJhdGVDb25kaXRpb25zKAogICAgICAgICAvLyBTaW5jZSB3ZSdyZSBhY2Nlc3Npbmcg
YSBwcm90b3R5cGUgcmVwZWF0ZWRseSwgaXQncyBhIGdvb2QgYmV0IHRoYXQgaXQgc2hvdWxkIG5v
dCBiZQogICAgICAgICAvLyB0cmVhdGVkIGFzIGEgZGljdGlvbmFyeS4KICAgICAgICAgaWYgKHN0
cnVjdHVyZS0+aXNEaWN0aW9uYXJ5KCkpIHsKLSAgICAgICAgICAgIGlmIChjb25jdXJyZW5jeSA9
PSBNYWluVGhyZWFkKQorICAgICAgICAgICAgaWYgKGNvbmN1cnJlbmN5ID09IE1haW5UaHJlYWQp
IHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgZGF0
YUxvZygiRmxhdHRlbmluZyAiLCBwb2ludGVyRHVtcChzdHJ1Y3R1cmUpKTsKICAgICAgICAgICAg
ICAgICBzdHJ1Y3R1cmUtPmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKHZtLCBvYmplY3QpOwot
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
IGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJDYW5ub3QgZmxhdHRl
biBkaWN0aW9uYXJ5IHdoZW4gbm90IG9uIG1haW4gdGhyZWFkLCBzbyBpbnZhbGlkLlxuIik7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0OjppbnZhbGlk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJv
cGVydHlDb25kaXRpb25TZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmpl
Y3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oCmluZGV4IDc2ZThhOWNkYTgwMDZhOWFhZjUxYTZmODcy
NzAwNjJjN2E5ZDkxMzIuLjAxY2UxYTg0MWMzMzBmMmNiZTRiZjI3YjkyZjE0YWRlYTJhYzkwZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0
eUNvbmRpdGlvblNldC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmpl
Y3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oCkBAIC02Nyw2ICs2Nyw4IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgICAgIHJldHVybiAhbV9kYXRhIHx8ICFtX2RhdGEtPnZlY3Rvci5pc0VtcHR5KCk7CiAg
ICAgfQorCisgICAgYm9vbCBpc1ZhbGlkQW5kV2F0Y2hhYmxlKCkgY29uc3Q7CiAgICAgCiAgICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IGI1MDE1MWQx
ZGQwNWIzMzk0ZGNlY2ZmYjMyZWI0YmU1MGZlMGVlZGUuLjU4MDM2NjEzNjUzODYxNzk0MjcwYjM0
Zjk3MTIyOWQ3MDRhODNjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0yNDMxLDcgKzI0MzEsNyBA
QCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldEJ5SWQoUmVnaXN0ZXJJRCog
ZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBjbwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsK
ICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoMCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KDApOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5h
cHBlbmQoT3B0aW9uczo6cHJvdG90eXBlSGl0Q291bnRGb3JMTEludENhY2hpbmcoKSk7CiAgICAg
aW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb2ZpbGUpOwogICAgIHJldHVybiBkc3Q7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGFh
ODMxYzM1M2ZiYjA1ZDEyYWMwZTkyZDFmYzFiNjZlM2E1MThhMzYuLjNjMjgxMjJjODQyYjVjODky
MzgxNGZjODA4ODg3NGU1ZjQxNDA1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC00MDgxLDYgKzQwODEsNyBAQCBib29sIEJ5dGVD
b2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICB9CiAKICAgICAg
ICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Byb3RvX2xv
YWQ6CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDogewogICAgICAgICAgICAgU3Bl
Y3VsYXRlZFR5cGUgcHJlZGljdGlvbiA9IGdldFByZWRpY3Rpb24oKTsKICAgICAgICAgICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDA2
NjY5ZDQwNjhmZTgzNGI4NGJjYWViOThiYmM2MGRhN2M3ZWUyNGMuLjA2MjQyN2NiOTMxMjdmOTEx
MDVlMzc2OTBkYTZiNWMyNjdlM2ViM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTE1NCw2ICsxNTQsNyBAQCBDYXBhYmlsaXR5TGV2ZWwg
Y2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
SW5zdHJ1YwogICAgIGNhc2Ugb3BfcHV0X2J5X3ZhbF9kaXJlY3Q6CiAgICAgY2FzZSBvcF90cnlf
Z2V0X2J5X2lkOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAgIGNhc2Ugb3BfZ2V0X2J5X2lk
X3Byb3RvX2xvYWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWRfd2l0aF90aGlzOgogICAgIGNhc2Ug
b3BfZ2V0X2J5X3ZhbF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGFkYWE4NjA3ZjZjNDRhYzA0MzI1OWVjNDdl
NTA3Y2UwZmM5MzA2ODYuLjkyYWFjOTk0OGI1ZTFkMWE0ZDE2MzQ4NDk2YWI3NmQ4MjZiYThiNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTI0MCw2ICsyNDAsNyBAQCB2b2lkIEpJ
VDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIERFRklORV9PUChvcF9lcV9udWxs
KQogICAgICAgICBERUZJTkVfT1Aob3BfdHJ5X2dldF9ieV9pZCkKICAgICAgICAgY2FzZSBvcF9n
ZXRfYXJyYXlfbGVuZ3RoOgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOgog
ICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0
X2J5X2lkX3dpdGhfdGhpcykKICAgICAgICAgREVGSU5FX09QKG9wX2dldF9ieV92YWwpCkBAIC00
MjIsNiArNDIzLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAg
ICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2VxKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Ao
b3BfdHJ5X2dldF9ieV9pZCkKICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgorICAg
ICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOgogICAgICAgICBERUZJTkVfU0xPV0NB
U0VfT1Aob3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfZ2V0X2J5
X3ZhbCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2luc3RhbmNlb2YpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCBmYTg4Mzc0
Y2U2MTVlYzFhYTA5ZmU3YTMyMDcxYTIxYjkyMTI5MDA3Li5hMTAzNTg4M2QxNGJiNWYyMDUzYTQ0
NmRmYTY0ZWY1MjgzMGNjOWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJMTEludEV4Y2Vw
dGlvbnMuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiT2Jq
ZWN0Q29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5o
IgogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU2hhZG93Q2hpY2tlbi5o
IgogI2luY2x1ZGUgIlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgpAQCAtNTgwLDYgKzU4MSw0
MyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfdHJ5X2dldF9ieV9pZCkKICAgICBM
TElOVF9SRVRVUk4oc2xvdC5nZXRQdXJlUmVzdWx0KCkpOwogfQogCitzdGF0aWMgdm9pZCBzZXR1
cEdldEJ5SWRQcm90b3R5cGVDYWNoZShFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgSW5zdHJ1Y3Rp
b24qIHBjLCBKU0NlbGwqIGJhc2VDZWxsLCBQcm9wZXJ0eVNsb3QmIHNsb3QsIGNvbnN0IElkZW50
aWZpZXImIGlkZW50KQoreworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZXhlYy0+Y29kZUJs
b2NrKCk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0dXJlKCk7
CisKKyAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5Q2FjaGlu
ZygpIHx8IHN0cnVjdHVyZS0+aXNEaWN0aW9uYXJ5KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0IGNvbmRpdGlvbnMgPSBnZW5lcmF0ZUNvbmRpdGlv
bnNGb3JQcm90b3R5cGVQcm9wZXJ0eUhpdCh2bSwgY29kZUJsb2NrLCBleGVjLCBzdHJ1Y3R1cmUs
IHNsb3Quc2xvdEJhc2UoKSwgaWRlbnQuaW1wbCgpKTsKKworICAgIGlmICghY29uZGl0aW9ucy5p
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9
IGludmFsaWRPZmZzZXQ7CisgICAgQ29kZUJsb2NrOjpTdHJ1Y3R1cmVXYXRjaHBvaW50TWFwJiB3
YXRjaHBvaW50TWFwID0gY29kZUJsb2NrLT5sbGludEdldEJ5SWRXYXRjaHBvaW50TWFwKCk7Cisg
ICAgYXV0byByZXN1bHQgPSB3YXRjaHBvaW50TWFwLmFkZChzdHJ1Y3R1cmUsIEJhZzxMTEludFBy
b3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQ+KCkpOworICAgIGZvciAoT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb24gY29uZGl0aW9uIDogY29uZGl0aW9ucykgeworICAgICAgICBp
ZiAoIWNvbmRpdGlvbi5pc1dhdGNoYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBpZiAoY29uZGl0aW9uLmNvbmRpdGlvbigpLmtpbmQoKSA9PSBQcm9wZXJ0eUNvbmRpdGlvbjo6
UHJlc2VuY2UpCisgICAgICAgICAgICBvZmZzZXQgPSBjb25kaXRpb24uY29uZGl0aW9uKCkub2Zm
c2V0KCk7CisgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYWRkKGNvbmRpdGlvbiwgcGMp
LT5pbnN0YWxsKCk7CisgICAgfQorICAgIEFTU0VSVChvZmZzZXQgIT0gaW52YWxpZE9mZnNldCk7
CisKKyAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7CisK
KyAgICBwY1swXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2J5X2lkX3Byb3Rv
X2xvYWQpOworICAgIHBjWzRdLnUuc3RydWN0dXJlSUQgPSBzdHJ1Y3R1cmUtPmlkKCk7CisgICAg
cGNbNV0udS5vcGVyYW5kID0gb2Zmc2V0OworICAgIC8vIFdlIGtub3cgdGhhdCB0aGlzIHBvaW50
ZXIgd2lsbCByZW1haW4gdmFsaWQgYmVjYXVzZSBpdCBpcyB0aGUgcHJvdG90eXBlIG9mIHNvbWUg
c3RydWN0dXJlLCBzLAorICAgIC8vIHdhdGNocG9pbnRlZCBhYm92ZS4gSWYgYW55IG9iamVjdCB3
aXRoIHN0cnVjdHVyZSBzIHdlcmUgdG8gY2hhbmdlIHByb3RvdHlwZXMgdGhlbiB0aGUgY29uZGl0
aW9ucworICAgIC8vIGZvciB0aGlzIGNhY2hlIHdvdWxkIGZhaWwgYW5kIHRoaXMgdmFsdWUgd2ls
bCBuZXZlciBiZSB1c2VkIGFnYWluLgorICAgIHBjWzZdLnUucG9pbnRlciA9IHNsb3Quc2xvdEJh
c2UoKTsKK30KKworCiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKQog
ewogICAgIExMSU5UX0JFR0lOKCk7CkBAIC01OTQsMzcgKzYzMiw0MyBAQCBMTElOVF9TTE9XX1BB
VEhfREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKQogICAgIAogICAgIGlmICghTExJTlRfQUxXQVlT
X0FDQ0VTU19TTE9XCiAgICAgICAgICYmIGJhc2VWYWx1ZS5pc0NlbGwoKQotICAgICAgICAmJiBz
bG90LmlzQ2FjaGVhYmxlKCkKLSAgICAgICAgJiYgc2xvdC5zbG90QmFzZSgpID09IGJhc2VWYWx1
ZQogICAgICAgICAmJiBzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKSkgewotICAgICAgICAKKwogICAg
ICAgICBKU0NlbGwqIGJhc2VDZWxsID0gYmFzZVZhbHVlLmFzQ2VsbCgpOwogICAgICAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IGJhc2VDZWxsLT5zdHJ1Y3R1cmUoKTsKKyAgICAgICAgaWYgKHNs
b3Quc2xvdEJhc2UoKSA9PSBiYXNlVmFsdWUpIHsKKyAgICAgICAgICAgIC8vIFN0YXJ0IG91dCBi
eSBjbGVhcmluZyBvdXQgdGhlIG9sZCBjYWNoZS4KKyAgICAgICAgICAgIHBjWzBdLnUub3Bjb2Rl
ID0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYnlfaWQpOworICAgICAgICAgICAgcGNbNF0udS5w
b2ludGVyID0gbnVsbHB0cjsgLy8gb2xkIHN0cnVjdHVyZQorICAgICAgICAgICAgcGNbNV0udS5w
b2ludGVyID0gbnVsbHB0cjsgLy8gb2Zmc2V0CisKKyAgICAgICAgICAgIC8vIFByZXZlbnQgdGhl
IHByb3RvdHlwZSBjYWNoZSBmcm9tIGV2ZXIgaGFwcGVuaW5nLgorICAgICAgICAgICAgcGNbN10u
dS5vcGVyYW5kID0gMDsKICAgICAgICAgCi0gICAgICAgIC8vIFN0YXJ0IG91dCBieSBjbGVhcmlu
ZyBvdXQgdGhlIG9sZCBjYWNoZS4KLSAgICAgICAgcGNbMF0udS5vcGNvZGUgPSBMTEludDo6Z2V0
T3Bjb2RlKG9wX2dldF9ieV9pZCk7Ci0gICAgICAgIHBjWzRdLnUucG9pbnRlciA9IG51bGxwdHI7
IC8vIG9sZCBzdHJ1Y3R1cmUKLSAgICAgICAgcGNbNV0udS5wb2ludGVyID0gbnVsbHB0cjsgLy8g
b2Zmc2V0Ci0gICAgICAgIAotICAgICAgICBpZiAoIXN0cnVjdHVyZS0+aXNVbmNhY2hlYWJsZURp
Y3Rpb25hcnkoKQotICAgICAgICAgICAgJiYgIXN0cnVjdHVyZS0+dHlwZUluZm8oKS5wcm9oaWJp
dHNQcm9wZXJ0eUNhY2hpbmcoKQotICAgICAgICAgICAgJiYgIXN0cnVjdHVyZS0+dHlwZUluZm8o
KS5uZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hwb2ludHMoKSkgewotICAgICAgICAgICAgdm0u
aGVhcC53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOworICAgICAgICAg
ICAgaWYgKHN0cnVjdHVyZS0+cHJvcGVydHlBY2Nlc3Nlc0FyZUNhY2hlYWJsZSgpKSB7CisgICAg
ICAgICAgICAgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxv
Y2stPm1fbG9jayk7CiAKLSAgICAgICAgICAgIHBjWzRdLnUuc3RydWN0dXJlSUQgPSBzdHJ1Y3R1
cmUtPmlkKCk7Ci0gICAgICAgICAgICBwY1s1XS51Lm9wZXJhbmQgPSBzbG90LmNhY2hlZE9mZnNl
dCgpOwotICAgICAgICB9Ci0gICAgfQorICAgICAgICAgICAgICAgIHBjWzRdLnUuc3RydWN0dXJl
SUQgPSBzdHJ1Y3R1cmUtPmlkKCk7CisgICAgICAgICAgICAgICAgcGNbNV0udS5vcGVyYW5kID0g
c2xvdC5jYWNoZWRPZmZzZXQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChV
TkxJS0VMWShwY1s3XS51Lm9wZXJhbmQpKSB7CisgICAgICAgICAgICBBU1NFUlQoc2xvdC5zbG90
QmFzZSgpICE9IGJhc2VWYWx1ZSk7CiAKLSAgICBpZiAoIUxMSU5UX0FMV0FZU19BQ0NFU1NfU0xP
VworICAgICAgICAgICAgaWYgKCEoLS1wY1s3XS51Lm9wZXJhbmQpKQorICAgICAgICAgICAgICAg
IHNldHVwR2V0QnlJZFByb3RvdHlwZUNhY2hlKGV4ZWMsIHZtLCBwYywgYmFzZUNlbGwsIHNsb3Qs
IGlkZW50KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoIUxMSU5UX0FMV0FZU19BQ0NFU1Nf
U0xPVwogICAgICAgICAmJiBpc0pTQXJyYXkoYmFzZVZhbHVlKQogICAgICAgICAmJiBpZGVudCA9
PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7CiAgICAgICAgIHBjWzBdLnUub3Bjb2Rl
ID0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYXJyYXlfbGVuZ3RoKTsKICAgICAgICAgQXJyYXlQ
cm9maWxlKiBhcnJheVByb2ZpbGUgPSBjb2RlQmxvY2stPmdldE9yQWRkQXJyYXlQcm9maWxlKHBj
IC0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKTsKICAgICAgICAgYXJyYXlQcm9m
aWxlLT5vYnNlcnZlU3RydWN0dXJlKGJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJlKCkpOwog
ICAgICAgICBwY1s0XS51LmFycmF5UHJvZmlsZSA9IGFycmF5UHJvZmlsZTsKKworICAgICAgICAv
LyBQcmV2ZW50IHRoZSBwcm90b3R5cGUgY2FjaGUgZnJvbSBldmVyIGhhcHBlbmluZy4KKyAgICAg
ICAgcGNbN10udS5vcGVyYW5kID0gMDsKICAgICB9CiAKICAgICBwY1tPUENPREVfTEVOR1RIKG9w
X2dldF9ieV9pZCkgLSAxXS51LnByb2ZpbGUtPm1fYnVja2V0c1swXSA9IEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMu
aAppbmRleCAyNDk5NTQyOGI1NGNjY2U1NDg1ODkwYTk2MDdkYzVmODQ0MWNlNDA3Li5kYTM2MzA1
YmU1YzVkYmIxMTdhZmZiZTQyNjg5MGM0ODJiMDU2ZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaApAQCAtNzEsNiArNzEsNyBAQCBMTElOVF9TTE9X
X1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2YpOwogTExJTlRfU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mX2N1c3RvbSk7CiBMTElOVF9TTE9XX1BB
VEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3RyeV9nZXRfYnlfaWQpOwogTExJTlRfU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpOworTExJTlRfU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWRfcHJvdG9fbG9hZCk7CiBMTElOVF9TTE9XX1BBVEhf
SElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9hcmd1bWVudHNfbGVuZ3RoKTsKIExMSU5UX1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X2J5X2lkKTsKIExMSU5UX1NMT1dfUEFUSF9I
SURERU5fREVDTChzbG93X3BhdGhfZGVsX2J5X2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggNTJl
MGI0NTFiYzgxMzIyMDQ0ODNkZWQ3NTQxNzkxZDE5MWM2NzMzNC4uOThlZWE0ZmNmZWFlMGZhOGY5
ZTI4ODQ5ZTRlY2ExOTY1ZGQ4ZjljZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTEzMzQsMTAgKzEz
MzQsMTEgQEAgZW5kCiAKIAogIyBXZSBvbmx5IGRvIG1vbm9tb3JwaGljIGdldF9ieV9pZCBjYWNo
aW5nIGZvciBub3csIGFuZCB3ZSBkbyBub3QgbW9kaWZ5IHRoZQotIyBvcGNvZGUuIFdlIGRvLCBo
b3dldmVyLCBhbGxvdyBmb3IgdGhlIGNhY2hlIHRvIGNoYW5nZSBhbnl0aW1lIGlmIGZhaWxzLCBz
aW5jZQotIyBwaW5nLXBvbmdpbmcgaXMgZnJlZS4gQXQgYmVzdCB3ZSBnZXQgbHVja3kgYW5kIHRo
ZSBnZXRfYnlfaWQgd2lsbCBjb250aW51ZQorIyBvcGNvZGUgZm9yIG93biBwcm9wZXJ0aWVzLiBX
ZSBhbHNvIGFsbG93IGZvciB0aGUgY2FjaGUgdG8gY2hhbmdlIGFueXRpbWUgaXQgZmFpbHMsCisj
IHNpbmNlIHBpbmctcG9uZ2luZyBpcyBmcmVlLiBBdCBiZXN0IHdlIGdldCBsdWNreSBhbmQgdGhl
IGdldF9ieV9pZCB3aWxsIGNvbnRpbnVlCiAjIHRvIHRha2UgZmFzdCBwYXRoIG9uIHRoZSBuZXcg
Y2FjaGUuIEF0IHdvcnN0IHdlIHRha2Ugc2xvdyBwYXRoLCB3aGljaCBpcyB3aGF0Ci0jIHdlIHdv
dWxkIGhhdmUgYmVlbiBkb2luZyBhbnl3YXkuCisjIHdlIHdvdWxkIGhhdmUgYmVlbiBkb2luZyBh
bnl3YXkuIEZvciBwcm90b3R5cGUgcHJvcGVydGllcywgd2Ugd2lsbCBhdHRlbXB0IHRvCisjIGNv
bnZlcnQgb3Bjb2RlIGludG8gYSBnZXRfYnlfaWRfcHJvdG9fbG9hZCBhZnRlciBhIGV4ZWN1dGlv
biBjb3VudGVyIGhpdHMgemVyby4KIAogX2xsaW50X29wX2dldF9ieV9pZDoKICAgICB0cmFjZUV4
ZWN1dGlvbigpCkBAIC0xMzU4LDYgKzEzNTksMjcgQEAgX2xsaW50X29wX2dldF9ieV9pZDoKICAg
ICBkaXNwYXRjaCg5KQogCiAKKworX2xsaW50X29wX2dldF9ieV9pZF9wcm90b19sb2FkOgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BDXSwgdDAKKyAgICBsb2FkaSAxNltQQ10s
IHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQodDAsIENlbGxUYWcsIHQzLCAu
b3BHZXRCeUlkUHJvdG9TbG93KQorICAgIGxvYWRpIDIwW1BDXSwgdDIKKyAgICBiaW5lcSBKU0Nl
bGw6Om1fc3RydWN0dXJlSURbdDNdLCB0MSwgLm9wR2V0QnlJZFByb3RvU2xvdworICAgIGxvYWRw
RnJvbUluc3RydWN0aW9uKDYsIHQzKQorICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQo
dDIsIHQzLCB0MCwgdDEpCisgICAgbG9hZGkgNFtQQ10sIHQyCisgICAgc3RvcmVpIHQwLCBUYWdP
ZmZzZXRbY2ZyLCB0MiwgOF0KKyAgICBzdG9yZWkgdDEsIFBheWxvYWRPZmZzZXRbY2ZyLCB0Miwg
OF0KKyAgICB2YWx1ZVByb2ZpbGUodDAsIHQxLCAzMiwgdDIpCisgICAgZGlzcGF0Y2goOSkKKwor
Lm9wR2V0QnlJZFByb3RvU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9n
ZXRfYnlfaWQpCisgICAgZGlzcGF0Y2goOSkKKworCiBfbGxpbnRfb3BfZ2V0X2FycmF5X2xlbmd0
aDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgOFtQQ10sIHQwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmlu
ZGV4IDQ2ZTU2MTZiZjQzNWUyMzYxMTY0ZDQ0OTNkYzEyNTZjMzhjMzRjMjIuLjUxMWJhNzQ2NzYz
M2RiODdiMjc4MmM5OWY4MzE3ZGUzZWIxMmM2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xMjMyLDYgKzEy
MzIsMjYgQEAgX2xsaW50X29wX2dldF9ieV9pZDoKICAgICBkaXNwYXRjaCg5KQogCiAKK19sbGlu
dF9vcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9h
ZGlzRnJvbUluc3RydWN0aW9uKDIsIHQwKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxs
KHQwLCB0MywgLm9wR2V0QnlJZFByb3RvU2xvdykKKyAgICBsb2FkaSBKU0NlbGw6Om1fc3RydWN0
dXJlSURbdDNdLCB0MQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig0LCB0MikKKyAgICBiaW5l
cSB0MiwgdDEsIC5vcEdldEJ5SWRQcm90b1Nsb3cKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24o
NSwgdDEpCisgICAgbG9hZHBGcm9tSW5zdHJ1Y3Rpb24oNiwgdDMpCisgICAgbG9hZGlzRnJvbUlu
c3RydWN0aW9uKDEsIHQyKQorICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDEsIHQz
LCB0MCkKKyAgICBzdG9yZXEgdDAsIFtjZnIsIHQyLCA4XQorICAgIHZhbHVlUHJvZmlsZSh0MCwg
OCwgdDEpCisgICAgZGlzcGF0Y2goOSkKKworLm9wR2V0QnlJZFByb3RvU2xvdzoKKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfaWQpCisgICAgZGlzcGF0Y2goOSkKKwor
CiBfbGxpbnRfb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAg
bG9hZGlzRnJvbUluc3RydWN0aW9uKDIsIHQwKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5oCmluZGV4IGRhYjM1ZDA3OWViNDcxNjI0MDhkYTdlNWY3Yzk1NmJkOTg2ZmUwZTYu
Ljc3YzE2YjNkZWU4NjVkNzBmOWViMGFlMTllM2Y3NmU0YjdlNDFjZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTM2MSw2ICszNjEsOCBAQCB0eXBlZGVmIGNv
bnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICBcCiAgICAgdihib29sLCB1c2VJQ1N0YXRzLCBm
YWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAorICAgIHYodW5zaWduZWQsIHByb3RvdHlw
ZUhpdENvdW50Rm9yTExJbnRDYWNoaW5nLCAyLCBOb3JtYWwsICJOdW1iZXIgb2YgcHJvdG90eXBl
IHByb3BlcnR5IGhpdHMgYmVmb3JlIGNhY2hpbmcgYSBwcm90b3R5cGUgaW4gdGhlIExMSW50LiBB
IGNvdW50IG9mIDAgbWVhbnMgbmV2ZXIgY2FjaGUuIikgXAorICAgIFwKICAgICB2KGJvb2wsIGR1
bXBNb2R1bGVSZWNvcmQsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIGR1
bXBNb2R1bGVMb2FkaW5nU3RhdGUsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJv
b2wsIGV4cG9zZUludGVybmFsTW9kdWxlTG9hZGVyLCBmYWxzZSwgTm9ybWFsLCAiZXhwb3NlIHRo
ZSBpbnRlcm5hbCBtb2R1bGUgbG9hZGVyIG9iamVjdCB0byB0aGUgZ2xvYmFsIHNwYWNlIGZvciBk
ZWJ1Z2dpbmciKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2xsaW50LWdldC1ieS1pZC1jYWNoZS1wcm90b3R5cGUtbG9hZC1mcm9tLWRpY3Rpb25hcnku
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2xsaW50LWdldC1ieS1pZC1j
YWNoZS1wcm90b3R5cGUtbG9hZC1mcm9tLWRpY3Rpb25hcnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRhMjdl
MWEyMzExMjgyODgxYjQyNWIyYTI3ODc1Y2RjMjNhZTA0YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbGxpbnQtZ2V0LWJ5LWlkLWNhY2hlLXBy
b3RvdHlwZS1sb2FkLWZyb20tZGljdGlvbmFyeS5qcwpAQCAtMCwwICsxLDE5IEBACisKK2V4cGVj
dGVkID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKK2ZvbyA9IHtmb286IDEsIGJhcjogMjB9
OworZGVsZXRlIGZvby5iYXI7CisKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBsZXQgdG9TdHJp
bmcgPSBmb28udG9TdHJpbmc7CisgICAgaWYgKHRvU3RyaW5nICE9PSBleHBlY3RlZCkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCk7Cit9CisKK2ZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKQorICAg
IHRlc3QoKTsKKworZm9vLnRvU3RyaW5nID0gMTAwOworZXhwZWN0ZWQgPSAxMDA7CisKK3Rlc3Qo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0JhZy5oIGIvU291cmNlL1dURi93dGYvQmFn
LmgKaW5kZXggZGI1MTEzMjZiMjYwNTk3MjE0MTcxYzUzOWMxOTZiYjE2NDU4ZjEzMy4uNTIwNDBj
NTAzMzU1NDUyNzAxMmFkYTViMDQ1OGIxZTgyNzc2ZGE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvQmFnLmgKKysrIGIvU291cmNlL1dURi93dGYvQmFnLmgKQEAgLTQ4LDkgKzQ4LDIyIEBA
IHByaXZhdGU6CiAgICAgCiBwdWJsaWM6CiAgICAgQmFnKCkKLSAgICAgICAgOiBtX2hlYWQobnVs
bHB0cikKICAgICB7CiAgICAgfQorCisgICAgQmFnKEJhZzxUPiYmIG90aGVyKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKCFtX2hlYWQpOworICAgICAgICBtX2hlYWQgPSBvdGhlci5tX2hlYWQ7Cisg
ICAgICAgIG90aGVyLm1faGVhZCA9IG51bGxwdHI7CisgICAgfQorCisgICAgQmFnJiBvcGVyYXRv
cj0oQmFnPFQ+JiYgb3RoZXIpCisgICAgeworICAgICAgICBtX2hlYWQgPSBvdGhlci5tX2hlYWQ7
CisgICAgICAgIG90aGVyLm1faGVhZCA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiAqdGhpczsK
KyAgICB9CiAgICAgCiAgICAgfkJhZygpCiAgICAgewpAQCAtMTIxLDcgKzEzNCw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9oZWFkOyB9CiAgICAgCiBw
cml2YXRlOgotICAgIE5vZGUqIG1faGVhZDsKKyAgICBOb2RlKiBtX2hlYWQgeyBudWxscHRyIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279708</attachid>
            <date>2016-05-24 14:46:51 -0700</date>
            <delta_ts>2016-05-24 14:48:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-158032-20160524144802.patch</filename>
            <type>text/plain</type>
            <size>40265</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MTFlOWQ0YjZjOTBjYTAxMDdiMmYzN2U2MDRmYjM4OWY2Y2ViYTFjLi42OGUwYjgxMjllZjRjMmIx
NWM1NzFiODIwNDQyZTMzNTk2NTdiZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NSBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0byBjYWNoZSBwcm90b3R5cGUg
bG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQ
aXpsby4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgcHJvdG90eXBlIHZhbHVlIGNhY2hpbmcg
dG8gdGhlIExMSW50IGZvciBvcF9nZXRfYnlfaWQuCisgICAgICAgIFR3byBwcmV2aW91c2x5IHVu
dXNlZCB3b3JkcyBpbiB0aGUgb3BfZ2V0X2J5X2lkIGJ5dGVjb2RlIGhhdmUgYmVlbgorICAgICAg
ICByZXB1cnBvc2VkIHRvIGhvbGQgZXh0cmEgaW5mb3JtYXRpb24gZm9yIHRoZSBjYWNoZS4gVGhl
IGZpcnN0IGlzIGEKKyAgICAgICAgY291bnRlciB0aGF0IHJlY29yZHMgdGhlIG51bWJlciBvZiBn
ZXRfYnlfaWRzIHRoYXQgaGl0IGEgY2FjaGVhYmxlIHZhbHVlCisgICAgICAgIG9uIGEgcHJvdG90
eXBlLiBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVkIGZyb20gb25lIHRvIHplcm8gd2UK
KyAgICAgICAgYXR0ZW1wdCB0byBjYWNoZSB0aGUgcHJvdG90eXBlIGxvYWQsIHdoaWNoIHdpbGwg
YmUgZGlzY3Vzc2VkIGZ1cnRoZXIKKyAgICAgICAgYmVsb3cuIFRoZSBzZWNvbmQgd29yZCBpcyB1
c2VkIHRvIGhvbGQgdGhlIHByb3RvdHlwZSBvYmplY3Qgd2hlbiB3ZSBoYXZlCisgICAgICAgIHN0
YXJ0ZWQgY2FjaGluZy4KKworICAgICAgICBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVk
IHRvIHplcm8gd2UgZmlyc3QgYXR0ZW1wdCB0byBnZW5lcmF0ZSBhbmQKKyAgICAgICAgd2F0Y2gg
dGhlIHByb3BlcnR5IGNvbmRpdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgdmFsaWRpdHkgb2Yg
cHJvdG90eXBlCisgICAgICAgIGxvYWQuIElmIHRoZSB3YXRjaHBvaW50cyBhcmUgc3VjY2Vzc2Z1
bGx5IGNyZWF0ZWQgYW5kIGluc3RhbGxlZCB3ZQorICAgICAgICByZXBsYWNlIHRoZSBvcF9nZXRf
YnlfaWQgb3Bjb2RlIHdpdGggdGhlIG5ldyBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZAorICAgICAg
ICBvcGNvZGUsIHdoaWNoIHRlbGxzIHRoZSBMTEludCB0byB1c2UgdGhlIGNhY2hlIHByb3RvdHlw
ZSBvYmplY3QgZm9yIHRoZQorICAgICAgICBsb2FkIHJhdGhlciB0aGFuIHRoZSBiYXNlIHZhbHVl
LgorCisgICAgICAgIFByaW9yIHRvIHRoaXMgcGF0Y2ggdGhlcmUgd2FzIG5vdCBMTEludCBzcGVj
aWZpYyBkYXRhIG9uQ29kZUJsb2Nrcy4KKyAgICAgICAgU2luY2UgdGhlIENvZGVCbG9jayBuZWVk
cyB0byBvd24gdGhlIFdhdGNocG9pbnRzIGZvciB0aGUgY2FjaGUsIGEgd2VhaworICAgICAgICBt
YXAgZnJvbSBlYWNoIGJhc2Ugc3RydWN0dXJlIHRvIGEgYmFnIG9mIFdhdGNocG9pbnRzIGNyZWF0
ZWQgZm9yIHRoYXQKKyAgICAgICAgc3RydWN0dXJlIGJ5IHNvbWUgb3BfZ2V0X2J5X2lkIGhhcyBi
ZWVuIGFkZGVkIHRvIHRoZSBDb2RlQmxvY2suIER1cmluZworICAgICAgICBHQywgaWYgd2UgZmlu
ZCB0aGF0IHRoZSBhIHN0cnVjdHVyZSBpbiB0aGUgbWFwIGhhcyBub3QgYmVlbiBtYXJrZWQgd2UK
KyAgICAgICAgZnJlZSB0aGUgYXNzb2NpYXRlZCBiYWcgb24gdGhlIENvZGVCbG9jay4KKworICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6
CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAq
IGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJpbnRH
ZXRCeUlkT3ApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnByaW50R2V0QnlJZENhY2hlU3Rh
dHVzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMpOgorICAgICAgICAqIGJ5
dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmxsaW50R2V0QnlJ
ZFdhdGNocG9pbnRNYXApOgorICAgICAgICAoSlNDOjpjbGVhckxMSW50R2V0QnlJZENhY2hlKToK
KyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0
QnlJZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludCk6CisgICAgICAgICogYnl0ZWNvZGUvTExJbnRQ
cm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6
TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50KToKKyAgICAgICAg
KEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50OjppbnN0
YWxsKToKKyAgICAgICAgKEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVX
YXRjaHBvaW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL0xMSW50UHJvdG90
eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
eXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHA6CisgICAgICAgIChKU0M6Ok9i
amVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Ojppc1ZhbGlkQW5kV2F0Y2hhYmxlKToKKyAgICAgICAg
KiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oOgorICAgICAgICAqIGJ5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0R2V0QnlJZCk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAg
ICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJp
bGl0eUxldmVsKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpw
cml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGls
ZVNsb3dDYXNlcyk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAg
ICAoSlNDOjpMTEludDo6c2V0dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUpOgorICAgICAgICAoSlND
OjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xv
d1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToK
KyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1
bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9sbGludC1nZXQtYnktaWQt
Y2FjaGUtcHJvdG90eXBlLWxvYWQtZnJvbS1kaWN0aW9uYXJ5LmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorCiAyMDE2LTA1LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpd2VkLCBhZGQgYSBjb21tZW50IHRvIGRlc2NyaWJlIHRoZSB0ZXN0J3Mg
ZmFpbHVyZSBtb2RlLiBTdWdnZXN0ZWQgYnkgbWxhbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2Y4NDI4MjA1ZjhiNzA3NGJi
Yjg0YWM2ODdiOTJlZGYyNDQ5MDk2Ny4uYWM5Y2YyMTg4OWYwOTI1MTlmNTA4MDU2NjkxZTAzZDNh
YWE4OTA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8
a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0
byBjYWNoZSBwcm90b3R5cGUgbG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBS
ZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAgICBBZGQgbW92ZSBjb25zdHJ1Y3RvcnMv
aW5pdGlhbGl6ZXJzIHRvIEJhZ3MuCisKKyAgICAgICAgKiB3dGYvQmFnLmg6CisgICAgICAgIChX
VEY6OkJhZzo6QmFnKToKKyAgICAgICAgKFdURjo6QmFnOjpvcGVyYXRvcj0pOgorCiAyMDE2LTA1
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGF1dG8g
Zm9yIHNvbWUgb2Ygb3VyIGxhbWJkYSBmdW5jdGlvbiBwYXJhbWV0ZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDI5YjJhMDE5MTNiNDFlYmQ1OWIyODU2MWI4MzhjOGYx
OWY1N2MzNy4uNTA5NGVhZGExOTI2YjE2YTY2ZDExNDI2NzY5NTE0YjFkZDM5ZDc3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjAzLDYgKzIwMyw3IEBAIHNldChKYXZh
U2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYnl0ZWNvZGUvSW5saW5lQ2FsbEZyYW1lU2V0LmNwcAog
ICAgIGJ5dGVjb2RlL0p1bXBUYWJsZS5jcHAKICAgICBieXRlY29kZS9MYXp5T3BlcmFuZFZhbHVl
UHJvZmlsZS5jcHAKKyAgICBieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnQuY3BwCiAgICAgYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJv
ZmlsZS5jcHAKICAgICBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5jcHAKICAgICBi
eXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggOGM4OTI1YzZkM2E1ZjgzOGRjYzYwNGNjMTUyMTMwNWVkMTQyMTBhZS4u
M2UyNzdhOWMxMWM5NTRiODBjN2ZiZjZiNGZmMmJjNWZhNjYyOTU4OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTExODEsNiArMTE4MSw4IEBACiAJCTUzNzBCNEY2MUJGMjYyMDUw
MDVDNDBGQyAvKiBBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRCYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzcwQjRGNDFC
RjI1RUEyMDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50
QmFzZS5oICovOyB9OwogCQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJEMzMgLyogSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOTE3RTdBMUI3OTA2RTQwMDBFQkQzMyAvKiBKU0dlbmVy
aWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oICovOyB9OwogCQk1M0Y2QkY2RDFD
M0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0Y2QkY2QzFDM0Yw
NjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTNGQTJBRTExQ0Yz
N0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNG
QTJBRTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0
dXJlV2F0Y2hwb2ludC5oICovOyB9OworCQk1M0ZBMkFFMzFDRjM4MDM5MDAyMjcxMUQgLyogTExJ
bnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRkEyQUUyMUNGMzgwMzkwMDIy
NzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3Bw
ICovOyB9OwogCQk1RDVEOEFEMTBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRpdC5keWxpYiBpbiBG
cmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVENUQ4QUQwMEUw
RDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliICovOyB9OwogCQk1REJCMTUxQjEzMUQwQjMx
MDA1NkFEMzYgLyogdGVzdGFwaS5qcyBpbiBDb3B5IFN1cHBvcnQgU2NyaXB0ICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0RDg1Nzc0MEE0Njk2QzgwMDMyMTQ2QyAvKiB0ZXN0
YXBpLmpzICovOyB9OwogCQk1REJCMTUyNTEzMUQwQkQ3MDA1NkFEMzYgLyogbWluaWRvbS5qcyBp
biBDb3B5IFN1cHBvcnQgU2NyaXB0ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE0MTIxMTBEMEE0ODc4ODcwMDQ4MDI1NSAvKiBtaW5pZG9tLmpzICovOyB9OwpAQCAtMzMyMSw2
ICszMzIzLDggQEAKIAkJNTM5MTdFODMxQjc5MUNCODAwMEVCRDMzIC8qIFR5cGVkQXJyYXlQcm90
b3R5cGUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBUeXBlZEFy
cmF5UHJvdG90eXBlLmpzOyBwYXRoID0gYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qczsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk1M0YyNTZFMTFCODdFMjgwMDBCNEI3Njgg
LyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTNGNkJGNkMxQzNGMDYwQTAwRjQxRTVEIC8qIEludGVybmFsRnVu
Y3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTNGQTJBRTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTNGQTJBRTIxQ0YzODAzOTAwMjI3MTFEIC8q
IExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2
ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
OTNENDNDQ0EwQkJFMDZEODlDNTk3MDcgLyogTWFwRGF0YUlubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWFwRGF0YUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUQ1RDhBRDAwRTBEMEVCRTAwRjlDNjkyIC8qIGxpYmVkaXQuZHlsaWIgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQu
bWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYmVkaXQuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJl
ZGl0LmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQk1REFGRDZDQjE0NkI2
ODYzMDBGQkVGQjQgLyogSlNDLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEpTQy54Y2NvbmZpZzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1NzUsNiArNjU3OSw4IEBACiAJCQkJMEZC
NTQ2NzgxNEY1QzQ2ODAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFsdWVQcm9maWxlLmNwcCAqLywK
IAkJCQkwRkI1NDY3NjE0RjU5QUQxMDAyQzI5ODkgLyogTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUu
aCAqLywKIAkJCQkwRjBGQzQ1ODE0QkQxNUYxMDBCODExNTQgLyogTExJbnRDYWxsTGlua0luZm8u
aCAqLywKKwkJCQk1M0ZBMkFFMjFDRjM4MDM5MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2Fk
QWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcCAqLywKKwkJCQk1M0ZBMkFFMDFDRjM3RjNG
MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50
LmggKi8sCiAJCQkJMEZCNTQ2N0MxNEY1Q0ZEMzAwMkMyOTg5IC8qIE1ldGhvZE9mR2V0dGluZ0FW
YWx1ZVByb2ZpbGUuY3BwICovLAogCQkJCTBGQjU0NjdBMTRGNUM3RDQwMDJDMjk4OSAvKiBNZXRo
b2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmggKi8sCiAJCQkJMTRDQTk1OEMxNkFCNTBGQTAwOTM4
QTA2IC8qIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlLmggKi8sCkBAIC03OTEwLDYgKzc5MTYsNyBA
QAogCQkJCTBGRjcxNjhDMTVBM0IyMzUwMDhGNURBQSAvKiBQcm9wZXJ0eU9mZnNldC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxOEM0NTUwRTE2RjVDRDAwQjM0NDYwIC8qIFByb3BlcnR5U2xvdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCN0YzOUMxNUVEOEU0NjAwRjE2N0IyIC8qIFByb3BlcnR5
U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTNGQTJBRTExQ0YzN0YzRjAwMjI3MTFEIC8q
IExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxOEM0NTYwRTE2RjVDRDAwQjM0NDYwIC8qIFByb3RlY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0NzRDMzNCMTZBQTJEOTUwMDYyRjAxRCAvKiBQcm90b3R5cGVNYXAuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNTc4MEEyMThGRTFFOTgwMDFFNzJEOSAvKiBQdXJlTmFOLmgg
aW4gSGVhZGVycyAqLywKQEAgLTg2MzUsNiArODY0Miw3IEBACiAJCQkJNjVDMDI4NTAxNzE3OTVF
MjAwMzUxRTM1IC8qIEFSTXY3RGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1
QzAyODVDMTcxNzk2NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY4MzM1QjcxNjM5QzFFNjAwMTQ0M0I1IC8qIEFycmF5QWxsb2NhdGlvblByb2ZpbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTNGQTJBRTMxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50
UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBN0E4QUYzNDE3QURCNUYzMDA1QUIxNzQgLyogQXJyYXlCdWZmZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZGQzk5RDQxODRFRTMxODAwOUMxMEFCIC8qIEFycmF5QnVmZmVyTmV1
dGVyaW5nV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0E4QUYzNjE3QURCNUYz
MDA1QUIxNzQgLyogQXJyYXlCdWZmZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCmluZGV4IGE4MDY1
NmUyNTVkMjUyYTM4MGY4ODVhOWZiYWFhNTAwMzg0NzUwYjIuLjIxZmZiMzhiMjQ3NDZlZTQ4NGM4
ZjM1NTY3NTFhNTc5M2ZhYWMwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KQEAgLTU4LDExICs1OCwxMiBAQAogICAgICAgICAgICAg
eyAibmFtZSIgOiAib3BfaXNfb2JqZWN0X29yX251bGwiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAg
ICAgICAgIHsgIm5hbWUiIDogIm9wX2lzX2Z1bmN0aW9uIiwgImxlbmd0aCIgOiAzIH0sCiAgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF9pbiIsICJsZW5ndGgiIDogNCB9LAotICAgICAgICAgICAg
eyAibmFtZSIgOiAib3BfdHJ5X2dldF9ieV9pZCIsICJsZW5ndGgiIDogNCB9LAorICAgICAgICAg
ICAgeyAibmFtZSIgOiAib3BfZ2V0X2FycmF5X2xlbmd0aCIsICJsZW5ndGgiIDogOSB9LAogICAg
ICAgICAgICAgeyAibmFtZSIgOiAib3BfZ2V0X2J5X2lkIiwgImxlbmd0aCIgOiA5ICB9LAorICAg
ICAgICAgICAgeyAibmFtZSIgOiAib3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQiLCAibGVuZ3RoIiA6
IDkgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9ieV9pZF93aXRoX3RoaXMiLCAi
bGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9ieV92YWxfd2l0
aF90aGlzIiwgImxlbmd0aCIgOiA1IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRf
YXJyYXlfbGVuZ3RoIiwgImxlbmd0aCIgOiA5IH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJv
cF90cnlfZ2V0X2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6
ICJvcF9wdXRfYnlfaWQiLCAibGVuZ3RoIiA6IDkgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDog
Im9wX3B1dF9ieV9pZF93aXRoX3RoaXMiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAgIHsg
Im5hbWUiIDogIm9wX2RlbF9ieV9pZCIsICJsZW5ndGgiIDogNCB9LApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCBmZDFmNDRlNGJiMDk0
MmIzMTNjYjA3ODM5MjAyNWE3OWE0MTk5MmVhLi42YTdmNzVlMjkyMWNhZjliOTRmOWM2M2RhOGNl
OWQzZDYyNDE4ZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuaApAQCAtMTU4LDYgKzE1OCw3IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRl
Y29kZU9mZnNldCgKICAgICBjYXNlIG9wX3RvX3ByaW1pdGl2ZToKICAgICBjYXNlIG9wX3RyeV9n
ZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgY2FzZSBvcF9nZXRfYnlfaWRf
cHJvdG9fbG9hZDoKICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CiAgICAgY2FzZSBvcF90
eXBlb2Y6CiAgICAgY2FzZSBvcF9pc19lbXB0eToKQEAgLTM5Miw2ICszOTMsNyBAQCB2b2lkIGNv
bXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjb2Rl
QmFzaWNCbG9jayogYmxvYwogICAgIGNhc2Ugb3BfY29uc3RydWN0OgogICAgIGNhc2Ugb3BfdHJ5
X2dldF9ieV9pZDoKICAgICBjYXNlIG9wX2dldF9ieV9pZDoKKyAgICBjYXNlIG9wX2dldF9ieV9p
ZF9wcm90b19sb2FkOgogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3dpdGhfdGhpczoKICAgICBjYXNl
IG9wX2dldF9ieV92YWxfd2l0aF90aGlzOgogICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggNTQx
ZjQ1MjdhZDY5OTEyZDVjOTNiZjZlNjgxZmU3ZjA0MjgwZjk5MC4uMGM2NTMzYzQ1NTlhYTYwMzMw
ODk3N2M3NDAwNzE2ZGVlYjk0OWE5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJKU0xleGljYWxF
bnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTTW9kdWxlRW52aXJvbm1lbnQuaCIKICNpbmNsdWRl
ICJMTEludEVudHJ5cG9pbnQuaCIKKyNpbmNsdWRlICJMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2
ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgi
CiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIlBDVG9Db2RlT3JpZ2luTWFwLmgi
CkBAIC0zNDUsNiArMzQ2LDkgQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50R2V0QnlJZE9wKFByaW50
U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywgaW50IGxvY2F0aW9uLAogICAgIGNhc2Ugb3Bf
Z2V0X2J5X2lkOgogICAgICAgICBvcCA9ICJnZXRfYnlfaWQiOwogICAgICAgICBicmVhazsKKyAg
ICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOgorICAgICAgICBvcCA9ICJnZXRfYnlfaWRf
cHJvdG9fbG9hZCI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0
aDoKICAgICAgICAgb3AgPSAiYXJyYXlfbGVuZ3RoIjsKICAgICAgICAgYnJlYWs7CkBAIC00MDUs
NiArNDA5LDggQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50R2V0QnlJZENhY2hlU3RhdHVzKFByaW50
U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywgaW50IGwKICAgICAgICAgb3V0LnByaW50Zigi
IGxsaW50KCIpOwogICAgICAgICBkdW1wU3RydWN0dXJlKG91dCwgInN0cnVjdCIsIHN0cnVjdHVy
ZSwgaWRlbnQpOwogICAgICAgICBvdXQucHJpbnRmKCIpIik7CisgICAgICAgIGlmIChleGVjLT5p
bnRlcnByZXRlcigpLT5nZXRPcGNvZGVJRChpbnN0cnVjdGlvblswXS51Lm9wY29kZSkgPT0gb3Bf
Z2V0X2J5X2lkX3Byb3RvX2xvYWQpCisgICAgICAgICAgICBvdXQucHJpbnRmKCIgcHJvdG8oJXAp
IiwgaW5zdHJ1Y3Rpb25bNl0udS5wb2ludGVyKTsKICAgICB9CiAKICNpZiBFTkFCTEUoSklUKQpA
QCAtMTExMiw2ICsxMTE4LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAg
ICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOgogICAgICAgICBjYXNlIG9wX2dldF9h
cnJheV9sZW5ndGg6IHsKICAgICAgICAgICAgIHByaW50R2V0QnlJZE9wKG91dCwgZXhlYywgbG9j
YXRpb24sIGl0KTsKICAgICAgICAgICAgIHByaW50R2V0QnlJZENhY2hlU3RhdHVzKG91dCwgZXhl
YywgbG9jYXRpb24sIHN0dWJJbmZvcyk7CkBAIC0yNzU0LDE0ICsyNzYxLDE0IEBAIHZvaWQgQ29k
ZUJsb2NrOjpmaW5hbGl6ZUxMSW50SW5saW5lQ2FjaGVzKCkKICAgICBmb3IgKHNpemVfdCBzaXpl
ID0gcHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlvbnMuc2l6ZSgpLCBpID0gMDsgaSA8IHNpemU7ICsr
aSkgewogICAgICAgICBJbnN0cnVjdGlvbiogY3VySW5zdHJ1Y3Rpb24gPSAmaW5zdHJ1Y3Rpb25z
KClbcHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlvbnNbaV1dOwogICAgICAgICBzd2l0Y2ggKGludGVy
cHJldGVyLT5nZXRPcGNvZGVJRChjdXJJbnN0cnVjdGlvblswXS51Lm9wY29kZSkpIHsKLSAgICAg
ICAgY2FzZSBvcF9nZXRfYnlfaWQ6IHsKKyAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAg
ICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQ6IHsKICAgICAgICAgICAgIFN0cnVjdHVy
ZUlEIG9sZFN0cnVjdHVyZUlEID0gY3VySW5zdHJ1Y3Rpb25bNF0udS5zdHJ1Y3R1cmVJRDsKICAg
ICAgICAgICAgIGlmICghb2xkU3RydWN0dXJlSUQgfHwgSGVhcDo6aXNNYXJrZWQobV92bS0+aGVh
cC5zdHJ1Y3R1cmVJRFRhYmxlKCkuZ2V0KG9sZFN0cnVjdHVyZUlEKSkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAg
ICAgICAgICAgIGRhdGFMb2dGKCJDbGVhcmluZyBMTEludCBwcm9wZXJ0eSBhY2Nlc3MuXG4iKTsK
LSAgICAgICAgICAgIGN1ckluc3RydWN0aW9uWzRdLnUuc3RydWN0dXJlSUQgPSAwOwotICAgICAg
ICAgICAgY3VySW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kID0gMDsKKyAgICAgICAgICAgIGNsZWFy
TExJbnRHZXRCeUlkQ2FjaGUoY3VySW5zdHJ1Y3Rpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXRfYnlfaWQ6IHsKQEAgLTI4MzUsNiArMjg0Miwx
MiBAQCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVMTEludElubGluZUNhY2hlcygpCiAgICAgICAg
IH0KICAgICB9CiAKKyAgICAvLyBXZSBjYW4ndCBqdXN0IHJlbW92ZSBhbGwgdGhlIHNldHMgd2hl
biB3ZSBjbGVhciB0aGUgY2FjaGVzIHNpbmNlIHdlIG1pZ2h0IGhhdmUgY3JlYXRlZCBhIHdhdGNo
cG9pbnQgc2V0CisgICAgLy8gdGhlbiBjbGVhcmVkIHRoZSBjYWNoZSB3aXRob3V0IEdDaW5nIGlu
IGJldHdlZW4uCisgICAgbV9sbGludEdldEJ5SWRXYXRjaHBvaW50TWFwLnJlbW92ZUlmKFtdKGNv
bnN0IFN0cnVjdHVyZVdhdGNocG9pbnRNYXA6OktleVZhbHVlUGFpclR5cGUmIHBhaXIpIC0+IGJv
b2wgeworICAgICAgICByZXR1cm4gIUhlYXA6OmlzTWFya2VkKHBhaXIua2V5KTsKKyAgICB9KTsK
KwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2xsaW50Q2FsbExpbmtJbmZvcy5zaXpl
KCk7ICsraSkgewogICAgICAgICBpZiAobV9sbGludENhbGxMaW5rSW5mb3NbaV0uaXNMaW5rZWQo
KSAmJiAhSGVhcDo6aXNNYXJrZWQobV9sbGludENhbGxMaW5rSW5mb3NbaV0uY2FsbGVlLmdldCgp
KSkgewogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCBjYmI4Y2Y1NzAxY2NlNzk1YTYy
NTJmNGE3ZTdhMDRhNTc0MWIwYjJmLi42NjRlY2ZlYjAxN2JjY2E3NmZhNTAxOGJkNDQyMGFjNmIy
M2IzZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBA
IC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJK
dW1wVGFibGUuaCIKICNpbmNsdWRlICJMTEludENhbGxMaW5rSW5mby5oIgorI2luY2x1ZGUgIkxM
SW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUg
IkxhenlPcGVyYW5kVmFsdWVQcm9maWxlLmgiCiAjaW5jbHVkZSAiT2JqZWN0QWxsb2NhdGlvblBy
b2ZpbGUuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCkBAIC02NzgsNiArNjc5LDkgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gbV9sbGludEV4ZWN1dGVDb3VudGVyOwogICAgIH0KIAorICAgIHR5
cGVkZWYgSGFzaE1hcDxTdHJ1Y3R1cmUqLCBCYWc8TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVT
dHJ1Y3R1cmVXYXRjaHBvaW50Pj4gU3RydWN0dXJlV2F0Y2hwb2ludE1hcDsKKyAgICBTdHJ1Y3R1
cmVXYXRjaHBvaW50TWFwJiBsbGludEdldEJ5SWRXYXRjaHBvaW50TWFwKCkgeyByZXR1cm4gbV9s
bGludEdldEJ5SWRXYXRjaHBvaW50TWFwOyB9CisKICAgICAvLyBGdW5jdGlvbnMgZm9yIGNvbnRy
b2xsaW5nIHdoZW4gdGllcmVkIGNvbXBpbGF0aW9uIGtpY2tzIGluLiBUaGlzCiAgICAgLy8gY29u
dHJvbHMgYm90aCB3aGVuIHRoZSBvcHRpbWl6aW5nIGNvbXBpbGVyIGlzIGludm9rZWQgYW5kIHdo
ZW4gT1NSCiAgICAgLy8gZW50cnkgaGFwcGVucy4gVHdvIHRyaWdnZXJzIGV4aXN0OiB0aGUgbG9v
cCB0cmlnZ2VyIGFuZCB0aGUgcmV0dXJuCkBAIC0xMDE5LDYgKzEwMjMsNyBAQCBwcml2YXRlOgog
CiAgICAgUmVmQ291bnRlZEFycmF5PExMSW50Q2FsbExpbmtJbmZvPiBtX2xsaW50Q2FsbExpbmtJ
bmZvczsKICAgICBTZW50aW5lbExpbmtlZExpc3Q8TExJbnRDYWxsTGlua0luZm8sIEJhc2ljUmF3
U2VudGluZWxOb2RlPExMSW50Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWluZ0xMSW50Q2FsbHM7Cisg
ICAgU3RydWN0dXJlV2F0Y2hwb2ludE1hcCBtX2xsaW50R2V0QnlJZFdhdGNocG9pbnRNYXA7CiAg
ICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29kZTsKICNpZiBFTkFCTEUoSklUKQogICAgIHN0ZDo6
dW5pcXVlX3B0cjxSZWdpc3RlckF0T2Zmc2V0TGlzdD4gbV9jYWxsZWVTYXZlUmVnaXN0ZXJzOwpA
QCAtMTMwOSw2ICsxMzE0LDE0IEBAIHByaXZhdGU6CiB9OwogI2VuZGlmCiAKK2lubGluZSB2b2lk
IGNsZWFyTExJbnRHZXRCeUlkQ2FjaGUoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uKQoreworICAg
IGluc3RydWN0aW9uWzBdLnUub3Bjb2RlID0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYnlfaWQp
OworICAgIGluc3RydWN0aW9uWzRdLnUucG9pbnRlciA9IG51bGxwdHI7CisgICAgaW5zdHJ1Y3Rp
b25bNV0udS5wb2ludGVyID0gbnVsbHB0cjsKKyAgICBpbnN0cnVjdGlvbls2XS51LnBvaW50ZXIg
PSBudWxscHRyOworfQorCiBpbmxpbmUgUmVnaXN0ZXImIEV4ZWNTdGF0ZTo6cihpbnQgaW5kZXgp
CiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSB0aGlzLT5jb2RlQmxvY2soKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAppbmRleCBj
Njk1MTRjNTdlODkwM2MwMjViMjU3ZmMwMTNiZTE3MzJjOTQ1YzBiLi41OWU4MWM3NTFhZmEwN2E0
YWRmNTRlMWQ2YjQyZjJhNzRkNWVhNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCkBAIC03NSw4ICs3NSwxMiBAQCBHZXRCeUlkU3Rh
dHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGcm9tTExJbnQoQ29kZUJsb2NrKiBwcm9maWxlZEJs
b2NrLCB1bnNpZ25lZAogICAgIFZNJiB2bSA9ICpwcm9maWxlZEJsb2NrLT52bSgpOwogICAgIAog
ICAgIEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiA9IHByb2ZpbGVkQmxvY2stPmluc3RydWN0aW9u
cygpLmJlZ2luKCkgKyBieXRlY29kZUluZGV4OwotICAgIAotICAgIGlmIChpbnN0cnVjdGlvblsw
XS51Lm9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9hcnJheV9sZW5ndGgpIHx8IGlu
c3RydWN0aW9uWzBdLnUub3Bjb2RlID09IExMSW50OjpnZXRPcGNvZGUob3BfdHJ5X2dldF9ieV9p
ZCkpCisKKyAgICBPcGNvZGUgb3Bjb2RlID0gaW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGU7CisKKyAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIG5vdCBqdXN0IGJhaWwgaWYgd2Ugc2VlIGEgdHJ5X2dldF9i
eV9pZCBvciBhIGdldF9ieV9pZF9wcm90b19sb2FkLg4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MDM5CisgICAgaWYgKG9wY29kZSA9PSBMTEludDo6
Z2V0T3Bjb2RlKG9wX2dldF9hcnJheV9sZW5ndGgpIHx8IG9wY29kZSA9PSBMTEludDo6Z2V0T3Bj
b2RlKG9wX3RyeV9nZXRfYnlfaWQpIHx8IG9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dl
dF9ieV9pZF9wcm90b19sb2FkKSkKICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoTm9JbmZv
cm1hdGlvbiwgZmFsc2UpOwogCiAgICAgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQgPSBpbnN0cnVj
dGlvbls0XS51LnN0cnVjdHVyZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0xMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRQcm90b3R5cGVMb2FkQWRh
cHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWUyYzBkYzYzYTgxZWVi
OTg2NmZjZDU2MzAwZmVhMjYwYzU0MDJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0
Y2hwb2ludC5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMTEludFBy
b3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCIKKworI2luY2x1ZGUgIkNv
ZGVCbG9jay5oIgorI2luY2x1ZGUgIkluc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiU3RydWN0dXJl
SW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworTExJbnRQcm90b3R5cGVMb2FkQWRhcHRp
dmVTdHJ1Y3R1cmVXYXRjaHBvaW50OjpMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVy
ZVdhdGNocG9pbnQoY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb24mIGtleSwgSW5zdHJ1Y3Rp
b24qIGdldEJ5SWRJbnN0cnVjdGlvbikKKyAgICA6IG1fa2V5KGtleSkKKyAgICAsIG1fZ2V0QnlJ
ZEluc3RydWN0aW9uKGdldEJ5SWRJbnN0cnVjdGlvbikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChr
ZXkud2F0Y2hpbmdSZXF1aXJlc1N0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50KCkpOworICAg
IFJFTEVBU0VfQVNTRVJUKCFrZXkud2F0Y2hpbmdSZXF1aXJlc1JlcGxhY2VtZW50V2F0Y2hwb2lu
dCgpKTsKK30KKwordm9pZCBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNo
cG9pbnQ6Omluc3RhbGwoKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fa2V5LmlzV2F0Y2hhYmxl
KCkpOworCisgICAgbV9rZXkub2JqZWN0KCktPnN0cnVjdHVyZSgpLT5hZGRUcmFuc2l0aW9uV2F0
Y2hwb2ludCh0aGlzKTsKK30KKwordm9pZCBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnQ6OmZpcmVJbnRlcm5hbChjb25zdCBGaXJlRGV0YWlsJiBkZXRhaWwpCit7
CisgICAgaWYgKG1fa2V5LmlzV2F0Y2hhYmxlKFByb3BlcnR5Q29uZGl0aW9uOjpFbnN1cmVXYXRj
aGFiaWxpdHkpKSB7CisgICAgICAgIGluc3RhbGwoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIFN0cmluZ1ByaW50U3RyZWFtIG91dDsKKyAgICBvdXQucHJpbnQoIk9iamVjdFRvU3Ry
aW5nVmFsdWUgQWRhcHRhdGlvbiBvZiAiLCBtX2tleSwgIiBmYWlsZWQ6ICIsIGRldGFpbCk7CisK
KyAgICBTdHJpbmdGaXJlRGV0YWlsIHN0cmluZ0RldGFpbChvdXQudG9DU3RyaW5nKCkuZGF0YSgp
KTsKKworICAgIGNsZWFyTExJbnRHZXRCeUlkQ2FjaGUobV9nZXRCeUlkSW5zdHJ1Y3Rpb24pOwor
fQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFw
dGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjE1ZTEwNjAyZmIyOTM3M2Ni
ZTExYWZlZTZmYjBmMmNhY2U5ZjhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0xMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJl
V2F0Y2hwb2ludF9oCisjZGVmaW5lIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJl
V2F0Y2hwb2ludF9oCisKKyNpbmNsdWRlICJJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIk9iamVj
dFByb3BlcnR5Q29uZGl0aW9uLmgiCisjaW5jbHVkZSAiV2F0Y2hwb2ludC5oIgorCituYW1lc3Bh
Y2UgSlNDIHsKKworY2xhc3MgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRj
aHBvaW50IDogcHVibGljIFdhdGNocG9pbnQgeworcHVibGljOgorICAgIExMSW50UHJvdG90eXBl
TG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludChjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRp
dGlvbiYsIEluc3RydWN0aW9uKik7CisKKyAgICB2b2lkIGluc3RhbGwoKTsKKworcHJvdGVjdGVk
OgorICAgIHZvaWQgZmlyZUludGVybmFsKGNvbnN0IEZpcmVEZXRhaWwmKSBvdmVycmlkZTsKKwor
cHJpdmF0ZToKKyAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBtX2tleTsKKyAgICBJbnN0cnVj
dGlvbiogbV9nZXRCeUlkSW5zdHJ1Y3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKwor
I2VuZGlmIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludF9o
ICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJv
cGVydHlDb25kaXRpb25TZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09i
amVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcAppbmRleCBkNTcwMDQwMGY4YjI2M2U1ZmY3NzVl
ZmVmODhiYTVjYjA5ZGI0MjBiLi4wNTcyM2FkODIyZmY5MWY1YjEyNDZjNGY3YjQ0MWYyMWQ1ZDI5
Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJv
cGVydHlDb25kaXRpb25TZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKQEAgLTE2Nyw2ICsxNjcsMTggQEAgdm9p
ZCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25z
dAogICAgIGR1bXBJbkNvbnRleHQob3V0LCBudWxscHRyKTsKIH0KIAorYm9vbCBPYmplY3RQcm9w
ZXJ0eUNvbmRpdGlvblNldDo6aXNWYWxpZEFuZFdhdGNoYWJsZSgpIGNvbnN0Cit7CisgICAgaWYg
KCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZvciAoT2JqZWN0UHJv
cGVydHlDb25kaXRpb24gY29uZGl0aW9uIDogbV9kYXRhLT52ZWN0b3IpIHsKKyAgICAgICAgaWYg
KCFjb25kaXRpb24uaXNXYXRjaGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKIG5hbWVzcGFjZSB7CiAKIGJvb2wgdmVyYm9zZSA9
IGZhbHNlOwpAQCAtMjU0LDkgKzI2NiwxMSBAQCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBn
ZW5lcmF0ZUNvbmRpdGlvbnMoCiAgICAgICAgIC8vIFNpbmNlIHdlJ3JlIGFjY2Vzc2luZyBhIHBy
b3RvdHlwZSByZXBlYXRlZGx5LCBpdCdzIGEgZ29vZCBiZXQgdGhhdCBpdCBzaG91bGQgbm90IGJl
CiAgICAgICAgIC8vIHRyZWF0ZWQgYXMgYSBkaWN0aW9uYXJ5LgogICAgICAgICBpZiAoc3RydWN0
dXJlLT5pc0RpY3Rpb25hcnkoKSkgewotICAgICAgICAgICAgaWYgKGNvbmN1cnJlbmN5ID09IE1h
aW5UaHJlYWQpCisgICAgICAgICAgICBpZiAoY29uY3VycmVuY3kgPT0gTWFpblRocmVhZCkgewor
ICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICBkYXRhTG9n
KCJGbGF0dGVuaW5nICIsIHBvaW50ZXJEdW1wKHN0cnVjdHVyZSkpOwogICAgICAgICAgICAgICAg
IHN0cnVjdHVyZS0+ZmxhdHRlbkRpY3Rpb25hcnlTdHJ1Y3R1cmUodm0sIG9iamVjdCk7Ci0gICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYg
KHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkNhbm5vdCBmbGF0dGVuIGRp
Y3Rpb25hcnkgd2hlbiBub3Qgb24gbWFpbiB0aHJlYWQsIHNvIGludmFsaWQuXG4iKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQ6OmludmFsaWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0
eUNvbmRpdGlvblNldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFBy
b3BlcnR5Q29uZGl0aW9uU2V0LmgKaW5kZXggNzZlOGE5Y2RhODAwNmE5YWFmNTFhNmY4NzI3MDA2
MmM3YTlkOTEzMi4uMDFjZTFhODQxYzMzMGYyY2JlNGJmMjdiOTJmMTRhZGVhMmFjOTBkYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29u
ZGl0aW9uU2V0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFBy
b3BlcnR5Q29uZGl0aW9uU2V0LmgKQEAgLTY3LDYgKzY3LDggQEAgcHVibGljOgogICAgIHsKICAg
ICAgICAgcmV0dXJuICFtX2RhdGEgfHwgIW1fZGF0YS0+dmVjdG9yLmlzRW1wdHkoKTsKICAgICB9
CisKKyAgICBib29sIGlzVmFsaWRBbmRXYXRjaGFibGUoKSBjb25zdDsKICAgICAKICAgICBib29s
IGlzRW1wdHkoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggYjUwMTUxZDFkZDA1
YjMzOTRkY2VjZmZiMzJlYjRiZTUwZmUwZWVkZS4uNTgwMzY2MTM2NTM4NjE3OTQyNzBiMzRmOTcx
MjI5ZDcwNGE4M2NkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTI0MzEsNyArMjQzMSw3IEBAIFJl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0QnlJZChSZWdpc3RlcklEKiBkc3Qs
IFJlZ2lzdGVySUQqIGJhc2UsIGNvCiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKDApOwogICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoMCk7
Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKDApOworICAgIGluc3RydWN0aW9ucygpLmFwcGVu
ZChPcHRpb25zOjpwcm90b3R5cGVIaXRDb3VudEZvckxMSW50Q2FjaGluZygpKTsKICAgICBpbnN0
cnVjdGlvbnMoKS5hcHBlbmQocHJvZmlsZSk7CiAgICAgcmV0dXJuIGRzdDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggYWE4MzFj
MzUzZmJiMDVkMTJhYzBlOTJkMWZjMWI2NmUzYTUxOGEzNi4uM2MyODEyMmM4NDJiNWM4OTIzODE0
ZmM4MDg4ODc0ZTVmNDE0MDU2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTQwODEsNiArNDA4MSw3IEBAIGJvb2wgQnl0ZUNvZGVQ
YXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgIH0KIAogICAgICAgICBj
YXNlIG9wX2dldF9ieV9pZDoKKyAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoK
ICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOiB7CiAgICAgICAgICAgICBTcGVjdWxh
dGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJlZGljdGlvbigpOwogICAgICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggMDY2Njlk
NDA2OGZlODM0Yjg0YmNhZWI5OGJiYzYwZGE3YzdlZTI0Yy4uMDYyNDI3Y2I5MzEyN2Y5MTEwNWUz
NzY5MGRhNmI1YzI2N2UzZWIzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2FwYWJpbGl0aWVzLmNwcApAQCAtMTU0LDYgKzE1NCw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBh
YmlsaXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0
cnVjCiAgICAgY2FzZSBvcF9wdXRfYnlfdmFsX2RpcmVjdDoKICAgICBjYXNlIG9wX3RyeV9nZXRf
YnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJv
dG9fbG9hZDoKICAgICBjYXNlIG9wX2dldF9ieV9pZF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9n
ZXRfYnlfdmFsX3dpdGhfdGhpczoKICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggYWRhYTg2MDdmNmM0NGFjMDQzMjU5ZWM0N2U1MDdj
ZTBmYzkzMDY4Ni4uOTJhYWM5OTQ4YjVlMWQxYTRkMTYzNDg0OTZhYjc2ZDgyNmJhOGI1NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMjQwLDYgKzI0MCw3IEBAIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgREVGSU5FX09QKG9wX2VxX251bGwpCiAg
ICAgICAgIERFRklORV9PUChvcF90cnlfZ2V0X2J5X2lkKQogICAgICAgICBjYXNlIG9wX2dldF9h
cnJheV9sZW5ndGg6CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAg
ICAgIERFRklORV9PUChvcF9nZXRfYnlfaWQpCiAgICAgICAgIERFRklORV9PUChvcF9nZXRfYnlf
aWRfd2l0aF90aGlzKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X3ZhbCkKQEAgLTQyMiw2
ICs0MjMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICBE
RUZJTkVfU0xPV0NBU0VfT1Aob3BfZXEpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF90
cnlfZ2V0X2J5X2lkKQogICAgICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CisgICAgICAg
IGNhc2Ugb3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9P
UChvcF9nZXRfYnlfaWQpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9nZXRfYnlfdmFs
KQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfaW5zdGFuY2VvZikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IGZhODgzNzRjZTYx
NWVjMWFhMDlmZTdhMzIwNzFhMjFiOTIxMjkwMDcuLmExMDM1ODgzZDE0YmI1ZjIwNTNhNDQ2ZGZh
NjRlZjUyODMwY2M5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkxMSW50RXhjZXB0aW9u
cy5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJPYmplY3RD
b25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIk9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmgiCiAj
aW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIKICNpbmNsdWRlICJTaGFkb3dDaGlja2VuLmgiCiAj
aW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJbmxpbmVzLmgiCkBAIC01ODAsNiArNTgxLDQzIEBA
IExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF90cnlfZ2V0X2J5X2lkKQogICAgIExMSU5U
X1JFVFVSTihzbG90LmdldFB1cmVSZXN1bHQoKSk7CiB9CiAKK3N0YXRpYyB2b2lkIHNldHVwR2V0
QnlJZFByb3RvdHlwZUNhY2hlKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZtLCBJbnN0cnVjdGlvbiog
cGMsIEpTQ2VsbCogYmFzZUNlbGwsIFByb3BlcnR5U2xvdCYgc2xvdCwgY29uc3QgSWRlbnRpZmll
ciYgaWRlbnQpCit7CisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2so
KTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGJhc2VDZWxsLT5zdHJ1Y3R1cmUoKTsKKwor
ICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkucHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkg
fHwgc3RydWN0dXJlLT5pc0RpY3Rpb25hcnkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb25TZXQgY29uZGl0aW9ucyA9IGdlbmVyYXRlQ29uZGl0aW9uc0Zv
clByb3RvdHlwZVByb3BlcnR5SGl0KHZtLCBjb2RlQmxvY2ssIGV4ZWMsIHN0cnVjdHVyZSwgc2xv
dC5zbG90QmFzZSgpLCBpZGVudC5pbXBsKCkpOworCisgICAgaWYgKCFjb25kaXRpb25zLmlzVmFs
aWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gaW52
YWxpZE9mZnNldDsKKyAgICBDb2RlQmxvY2s6OlN0cnVjdHVyZVdhdGNocG9pbnRNYXAmIHdhdGNo
cG9pbnRNYXAgPSBjb2RlQmxvY2stPmxsaW50R2V0QnlJZFdhdGNocG9pbnRNYXAoKTsKKyAgICBh
dXRvIHJlc3VsdCA9IHdhdGNocG9pbnRNYXAuYWRkKHN0cnVjdHVyZSwgQmFnPExMSW50UHJvdG90
eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludD4oKSk7CisgICAgZm9yIChPYmplY3RQ
cm9wZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24gOiBjb25kaXRpb25zKSB7CisgICAgICAgIGlmICgh
Y29uZGl0aW9uLmlzV2F0Y2hhYmxlKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlm
IChjb25kaXRpb24uY29uZGl0aW9uKCkua2luZCgpID09IFByb3BlcnR5Q29uZGl0aW9uOjpQcmVz
ZW5jZSkKKyAgICAgICAgICAgIG9mZnNldCA9IGNvbmRpdGlvbi5jb25kaXRpb24oKS5vZmZzZXQo
KTsKKyAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hZGQoY29uZGl0aW9uLCBwYyktPmlu
c3RhbGwoKTsKKyAgICB9CisgICAgQVNTRVJUKG9mZnNldCAhPSBpbnZhbGlkT2Zmc2V0KTsKKwor
ICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKKworICAg
IHBjWzBdLnUub3Bjb2RlID0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYnlfaWRfcHJvdG9fbG9h
ZCk7CisgICAgcGNbNF0udS5zdHJ1Y3R1cmVJRCA9IHN0cnVjdHVyZS0+aWQoKTsKKyAgICBwY1s1
XS51Lm9wZXJhbmQgPSBvZmZzZXQ7CisgICAgLy8gV2Uga25vdyB0aGF0IHRoaXMgcG9pbnRlciB3
aWxsIHJlbWFpbiB2YWxpZCBiZWNhdXNlIGl0IGlzIHRoZSBwcm90b3R5cGUgb2Ygc29tZSBzdHJ1
Y3R1cmUsIHMsCisgICAgLy8gd2F0Y2hwb2ludGVkIGFib3ZlLiBJZiBhbnkgb2JqZWN0IHdpdGgg
c3RydWN0dXJlIHMgd2VyZSB0byBjaGFuZ2UgcHJvdG90eXBlcyB0aGVuIHRoZSBjb25kaXRpb25z
CisgICAgLy8gZm9yIHRoaXMgY2FjaGUgd291bGQgZmFpbCBhbmQgdGhpcyB2YWx1ZSB3aWxsIG5l
dmVyIGJlIHVzZWQgYWdhaW4uCisgICAgcGNbNl0udS5wb2ludGVyID0gc2xvdC5zbG90QmFzZSgp
OworfQorCisKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpCiB7CiAg
ICAgTExJTlRfQkVHSU4oKTsKQEAgLTU5NCwzNyArNjMyLDQzIEBAIExMSU5UX1NMT1dfUEFUSF9E
RUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpCiAgICAgCiAgICAgaWYgKCFMTElOVF9BTFdBWVNfQUND
RVNTX1NMT1cKICAgICAgICAgJiYgYmFzZVZhbHVlLmlzQ2VsbCgpCi0gICAgICAgICYmIHNsb3Qu
aXNDYWNoZWFibGUoKQotICAgICAgICAmJiBzbG90LnNsb3RCYXNlKCkgPT0gYmFzZVZhbHVlCiAg
ICAgICAgICYmIHNsb3QuaXNDYWNoZWFibGVWYWx1ZSgpKSB7Ci0gICAgICAgIAorCiAgICAgICAg
IEpTQ2VsbCogYmFzZUNlbGwgPSBiYXNlVmFsdWUuYXNDZWxsKCk7CiAgICAgICAgIFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gYmFzZUNlbGwtPnN0cnVjdHVyZSgpOworICAgICAgICBpZiAoc2xvdC5z
bG90QmFzZSgpID09IGJhc2VWYWx1ZSkgeworICAgICAgICAgICAgLy8gU3RhcnQgb3V0IGJ5IGNs
ZWFyaW5nIG91dCB0aGUgb2xkIGNhY2hlLgorICAgICAgICAgICAgcGNbMF0udS5vcGNvZGUgPSBM
TEludDo6Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZCk7CisgICAgICAgICAgICBwY1s0XS51LnBvaW50
ZXIgPSBudWxscHRyOyAvLyBvbGQgc3RydWN0dXJlCisgICAgICAgICAgICBwY1s1XS51LnBvaW50
ZXIgPSBudWxscHRyOyAvLyBvZmZzZXQKKworICAgICAgICAgICAgLy8gUHJldmVudCB0aGUgcHJv
dG90eXBlIGNhY2hlIGZyb20gZXZlciBoYXBwZW5pbmcuCisgICAgICAgICAgICBwY1s3XS51Lm9w
ZXJhbmQgPSAwOwogICAgICAgICAKLSAgICAgICAgLy8gU3RhcnQgb3V0IGJ5IGNsZWFyaW5nIG91
dCB0aGUgb2xkIGNhY2hlLgotICAgICAgICBwY1swXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNv
ZGUob3BfZ2V0X2J5X2lkKTsKLSAgICAgICAgcGNbNF0udS5wb2ludGVyID0gbnVsbHB0cjsgLy8g
b2xkIHN0cnVjdHVyZQotICAgICAgICBwY1s1XS51LnBvaW50ZXIgPSBudWxscHRyOyAvLyBvZmZz
ZXQKLSAgICAgICAgCi0gICAgICAgIGlmICghc3RydWN0dXJlLT5pc1VuY2FjaGVhYmxlRGljdGlv
bmFyeSgpCi0gICAgICAgICAgICAmJiAhc3RydWN0dXJlLT50eXBlSW5mbygpLnByb2hpYml0c1By
b3BlcnR5Q2FjaGluZygpCi0gICAgICAgICAgICAmJiAhc3RydWN0dXJlLT50eXBlSW5mbygpLm5l
d0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cygpKSB7Ci0gICAgICAgICAgICB2bS5oZWFw
LndyaXRlQmFycmllcihjb2RlQmxvY2spOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBDb25j
dXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICBp
ZiAoc3RydWN0dXJlLT5wcm9wZXJ0eUFjY2Vzc2VzQXJlQ2FjaGVhYmxlKCkpIHsKKyAgICAgICAg
ICAgICAgICB2bS5oZWFwLndyaXRlQmFycmllcihjb2RlQmxvY2spOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+
bV9sb2NrKTsKIAotICAgICAgICAgICAgcGNbNF0udS5zdHJ1Y3R1cmVJRCA9IHN0cnVjdHVyZS0+
aWQoKTsKLSAgICAgICAgICAgIHBjWzVdLnUub3BlcmFuZCA9IHNsb3QuY2FjaGVkT2Zmc2V0KCk7
Ci0gICAgICAgIH0KLSAgICB9CisgICAgICAgICAgICAgICAgcGNbNF0udS5zdHJ1Y3R1cmVJRCA9
IHN0cnVjdHVyZS0+aWQoKTsKKyAgICAgICAgICAgICAgICBwY1s1XS51Lm9wZXJhbmQgPSBzbG90
LmNhY2hlZE9mZnNldCgpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKFVOTElL
RUxZKHBjWzddLnUub3BlcmFuZCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChzbG90LnNsb3RCYXNl
KCkgIT0gYmFzZVZhbHVlKTsKIAotICAgIGlmICghTExJTlRfQUxXQVlTX0FDQ0VTU19TTE9XCisg
ICAgICAgICAgICBpZiAoISgtLXBjWzddLnUub3BlcmFuZCkpCisgICAgICAgICAgICAgICAgc2V0
dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUoZXhlYywgdm0sIHBjLCBiYXNlQ2VsbCwgc2xvdCwgaWRl
bnQpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmICghTExJTlRfQUxXQVlTX0FDQ0VTU19TTE9X
CiAgICAgICAgICYmIGlzSlNBcnJheShiYXNlVmFsdWUpCiAgICAgICAgICYmIGlkZW50ID09IGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpIHsKICAgICAgICAgcGNbMF0udS5vcGNvZGUgPSBM
TEludDo6Z2V0T3Bjb2RlKG9wX2dldF9hcnJheV9sZW5ndGgpOwogICAgICAgICBBcnJheVByb2Zp
bGUqIGFycmF5UHJvZmlsZSA9IGNvZGVCbG9jay0+Z2V0T3JBZGRBcnJheVByb2ZpbGUocGMgLSBj
b2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkpOwogICAgICAgICBhcnJheVByb2ZpbGUt
Pm9ic2VydmVTdHJ1Y3R1cmUoYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKSk7CiAgICAg
ICAgIHBjWzRdLnUuYXJyYXlQcm9maWxlID0gYXJyYXlQcm9maWxlOworCisgICAgICAgIC8vIFBy
ZXZlbnQgdGhlIHByb3RvdHlwZSBjYWNoZSBmcm9tIGV2ZXIgaGFwcGVuaW5nLgorICAgICAgICBw
Y1s3XS51Lm9wZXJhbmQgPSAwOwogICAgIH0KIAogICAgIHBjW09QQ09ERV9MRU5HVEgob3BfZ2V0
X2J5X2lkKSAtIDFdLnUucHJvZmlsZS0+bV9idWNrZXRzWzBdID0gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCmlu
ZGV4IDI0OTk1NDI4YjU0Y2NjZTU0ODU4OTBhOTYwN2RjNWY4NDQxY2U0MDcuLmRhMzYzMDViZTVj
NWRiYjExN2FmZmJlNDI2ODkwYzQ4MmIwNTZkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5oCkBAIC03MSw2ICs3MSw3IEBAIExMSU5UX1NMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZik7CiBMTElOVF9TTE9XX1BBVEhfSElE
REVOX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2ZfY3VzdG9tKTsKIExMSU5UX1NMT1dfUEFUSF9I
SURERU5fREVDTChzbG93X3BhdGhfdHJ5X2dldF9ieV9pZCk7CiBMTElOVF9TTE9XX1BBVEhfSElE
REVOX0RFQ0woc2xvd19wYXRoX2dldF9ieV9pZCk7CitMTElOVF9TTE9XX1BBVEhfSElEREVOX0RF
Q0woc2xvd19wYXRoX2dldF9ieV9pZF9wcm90b19sb2FkKTsKIExMSU5UX1NMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfZ2V0X2FyZ3VtZW50c19sZW5ndGgpOwogTExJTlRfU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQpOwogTExJTlRfU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9kZWxfYnlfaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCA1MmUwYjQ1
MWJjODEzMjIwNDQ4M2RlZDc1NDE3OTFkMTkxYzY3MzM0Li45OGVlYTRmY2ZlYWUwZmE4ZjllMjg4
NDllNGVjYTE5NjVkZDhmOWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMTMzNCwxMCArMTMzNCwx
MSBAQCBlbmQKIAogCiAjIFdlIG9ubHkgZG8gbW9ub21vcnBoaWMgZ2V0X2J5X2lkIGNhY2hpbmcg
Zm9yIG5vdywgYW5kIHdlIGRvIG5vdCBtb2RpZnkgdGhlCi0jIG9wY29kZS4gV2UgZG8sIGhvd2V2
ZXIsIGFsbG93IGZvciB0aGUgY2FjaGUgdG8gY2hhbmdlIGFueXRpbWUgaWYgZmFpbHMsIHNpbmNl
Ci0jIHBpbmctcG9uZ2luZyBpcyBmcmVlLiBBdCBiZXN0IHdlIGdldCBsdWNreSBhbmQgdGhlIGdl
dF9ieV9pZCB3aWxsIGNvbnRpbnVlCisjIG9wY29kZSBmb3Igb3duIHByb3BlcnRpZXMuIFdlIGFs
c28gYWxsb3cgZm9yIHRoZSBjYWNoZSB0byBjaGFuZ2UgYW55dGltZSBpdCBmYWlscywKKyMgc2lu
Y2UgcGluZy1wb25naW5nIGlzIGZyZWUuIEF0IGJlc3Qgd2UgZ2V0IGx1Y2t5IGFuZCB0aGUgZ2V0
X2J5X2lkIHdpbGwgY29udGludWUKICMgdG8gdGFrZSBmYXN0IHBhdGggb24gdGhlIG5ldyBjYWNo
ZS4gQXQgd29yc3Qgd2UgdGFrZSBzbG93IHBhdGgsIHdoaWNoIGlzIHdoYXQKLSMgd2Ugd291bGQg
aGF2ZSBiZWVuIGRvaW5nIGFueXdheS4KKyMgd2Ugd291bGQgaGF2ZSBiZWVuIGRvaW5nIGFueXdh
eS4gRm9yIHByb3RvdHlwZSBwcm9wZXJ0aWVzLCB3ZSB3aWxsIGF0dGVtcHQgdG8KKyMgY29udmVy
dCBvcGNvZGUgaW50byBhIGdldF9ieV9pZF9wcm90b19sb2FkIGFmdGVyIGEgZXhlY3V0aW9uIGNv
dW50ZXIgaGl0cyB6ZXJvLgogCiBfbGxpbnRfb3BfZ2V0X2J5X2lkOgogICAgIHRyYWNlRXhlY3V0
aW9uKCkKQEAgLTEzNTgsNiArMTM1OSwyNyBAQCBfbGxpbnRfb3BfZ2V0X2J5X2lkOgogICAgIGRp
c3BhdGNoKDkpCiAKIAorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQ6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0MAorICAgIGxvYWRpIDE2W1BDXSwgdDEK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MCwgQ2VsbFRhZywgdDMsIC5vcEdl
dEJ5SWRQcm90b1Nsb3cpCisgICAgbG9hZGkgMjBbUENdLCB0MgorICAgIGJpbmVxIEpTQ2VsbDo6
bV9zdHJ1Y3R1cmVJRFt0M10sIHQxLCAub3BHZXRCeUlkUHJvdG9TbG93CisgICAgbG9hZHBGcm9t
SW5zdHJ1Y3Rpb24oNiwgdDMpCisgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0Miwg
dDMsIHQwLCB0MSkKKyAgICBsb2FkaSA0W1BDXSwgdDIKKyAgICBzdG9yZWkgdDAsIFRhZ09mZnNl
dFtjZnIsIHQyLCA4XQorICAgIHN0b3JlaSB0MSwgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XQor
ICAgIHZhbHVlUHJvZmlsZSh0MCwgdDEsIDMyLCB0MikKKyAgICBkaXNwYXRjaCg5KQorCisub3BH
ZXRCeUlkUHJvdG9TbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9i
eV9pZCkKKyAgICBkaXNwYXRjaCg5KQorCisKIF9sbGludF9vcF9nZXRfYXJyYXlfbGVuZ3RoOgog
ICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA4W1BDXSwgdDAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXgg
NDZlNTYxNmJmNDM1ZTIzNjExNjRkNDQ5M2RjMTI1NmMzOGMzNGMyMi4uNTExYmE3NDY3NjMzZGI4
N2IyNzgyYzk5ZjgzMTdkZTNlYjEyYzZmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTEyMzIsNiArMTIzMiwy
NiBAQCBfbGxpbnRfb3BfZ2V0X2J5X2lkOgogICAgIGRpc3BhdGNoKDkpCiAKIAorX2xsaW50X29w
X2dldF9ieV9pZF9wcm90b19sb2FkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXNG
cm9tSW5zdHJ1Y3Rpb24oMiwgdDApCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDAs
IHQzLCAub3BHZXRCeUlkUHJvdG9TbG93KQorICAgIGxvYWRpIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJ
RFt0M10sIHQxCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDQsIHQyKQorICAgIGJpbmVxIHQy
LCB0MSwgLm9wR2V0QnlJZFByb3RvU2xvdworICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig1LCB0
MSkKKyAgICBsb2FkcEZyb21JbnN0cnVjdGlvbig2LCB0MykKKyAgICBsb2FkaXNGcm9tSW5zdHJ1
Y3Rpb24oMSwgdDIpCisgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDMsIHQw
KQorICAgIHN0b3JlcSB0MCwgW2NmciwgdDIsIDhdCisgICAgdmFsdWVQcm9maWxlKHQwLCA4LCB0
MSkKKyAgICBkaXNwYXRjaCg5KQorCisub3BHZXRCeUlkUHJvdG9TbG93OgorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9pZCkKKyAgICBkaXNwYXRjaCg5KQorCisKIF9s
bGludF9vcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2Fk
aXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmgKaW5kZXggZGFiMzVkMDc5ZWI0NzE2MjQwOGRhN2U1ZjdjOTU2YmQ5ODZmZTBlNi4uNzdj
MTZiM2RlZTg2NWQ3MGY5ZWIwYWUxOWUzZjc2ZTRiN2U0MWNlOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMzYxLDYgKzM2MSw4IEBAIHR5cGVkZWYgY29uc3Qg
Y2hhciogb3B0aW9uU3RyaW5nOwogICAgIFwKICAgICB2KGJvb2wsIHVzZUlDU3RhdHMsIGZhbHNl
LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBcCisgICAgdih1bnNpZ25lZCwgcHJvdG90eXBlSGl0
Q291bnRGb3JMTEludENhY2hpbmcsIDIsIE5vcm1hbCwgIk51bWJlciBvZiBwcm90b3R5cGUgcHJv
cGVydHkgaGl0cyBiZWZvcmUgY2FjaGluZyBhIHByb3RvdHlwZSBpbiB0aGUgTExJbnQuIEEgY291
bnQgb2YgMCBtZWFucyBuZXZlciBjYWNoZS4iKSBcCisgICAgXAogICAgIHYoYm9vbCwgZHVtcE1v
ZHVsZVJlY29yZCwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgZHVtcE1v
ZHVsZUxvYWRpbmdTdGF0ZSwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwg
ZXhwb3NlSW50ZXJuYWxNb2R1bGVMb2FkZXIsIGZhbHNlLCBOb3JtYWwsICJleHBvc2UgdGhlIGlu
dGVybmFsIG1vZHVsZSBsb2FkZXIgb2JqZWN0IHRvIHRoZSBnbG9iYWwgc3BhY2UgZm9yIGRlYnVn
Z2luZyIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
bGxpbnQtZ2V0LWJ5LWlkLWNhY2hlLXByb3RvdHlwZS1sb2FkLWZyb20tZGljdGlvbmFyeS5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbGxpbnQtZ2V0LWJ5LWlkLWNhY2hl
LXByb3RvdHlwZS1sb2FkLWZyb20tZGljdGlvbmFyeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGEyN2UxYTIz
MTEyODI4ODFiNDI1YjJhMjc4NzVjZGMyM2FlMDRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9sbGludC1nZXQtYnktaWQtY2FjaGUtcHJvdG90
eXBlLWxvYWQtZnJvbS1kaWN0aW9uYXJ5LmpzCkBAIC0wLDAgKzEsMTkgQEAKKworZXhwZWN0ZWQg
PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOworZm9vID0ge2ZvbzogMSwgYmFyOiAyMH07Citk
ZWxldGUgZm9vLmJhcjsKKworCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGxldCB0b1N0cmluZyA9
IGZvby50b1N0cmluZzsKKyAgICBpZiAodG9TdHJpbmcgIT09IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoKTsKK30KKworZm9yIChpID0gMDsgaSA8IDEwOyBpKyspCisgICAgdGVz
dCgpOworCitmb28udG9TdHJpbmcgPSAxMDA7CitleHBlY3RlZCA9IDEwMDsKKwordGVzdCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQmFnLmggYi9Tb3VyY2UvV1RGL3d0Zi9CYWcuaApp
bmRleCBkYjUxMTMyNmIyNjA1OTcyMTQxNzFjNTM5YzE5NmJiMTY0NThmMTMzLi41MjA0MGM1MDMz
NTU0NTI3MDEyYWRhNWIwNDU4YjFlODI3NzZkYTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9CYWcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9CYWcuaApAQCAtNDgsOSArNDgsMjIgQEAgcHJp
dmF0ZToKICAgICAKIHB1YmxpYzoKICAgICBCYWcoKQotICAgICAgICA6IG1faGVhZChudWxscHRy
KQogICAgIHsKICAgICB9CisKKyAgICBCYWcoQmFnPFQ+JiYgb3RoZXIpCisgICAgeworICAgICAg
ICBBU1NFUlQoIW1faGVhZCk7CisgICAgICAgIG1faGVhZCA9IG90aGVyLm1faGVhZDsKKyAgICAg
ICAgb3RoZXIubV9oZWFkID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBCYWcmIG9wZXJhdG9yPShC
YWc8VD4mJiBvdGhlcikKKyAgICB7CisgICAgICAgIG1faGVhZCA9IG90aGVyLm1faGVhZDsKKyAg
ICAgICAgb3RoZXIubV9oZWFkID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAg
IH0KICAgICAKICAgICB+QmFnKCkKICAgICB7CkBAIC0xMjEsNyArMTM0LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2hlYWQ7IH0KICAgICAKIHByaXZh
dGU6Ci0gICAgTm9kZSogbV9oZWFkOworICAgIE5vZGUqIG1faGVhZCB7IG51bGxwdHIgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279709</attachid>
            <date>2016-05-24 14:48:45 -0700</date>
            <delta_ts>2016-05-24 15:32:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-158032-20160524144955.patch</filename>
            <type>text/plain</type>
            <size>40306</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MTFlOWQ0YjZjOTBjYTAxMDdiMmYzN2U2MDRmYjM4OWY2Y2ViYTFjLi42OGUwYjgxMjllZjRjMmIx
NWM1NzFiODIwNDQyZTMzNTk2NTdiZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NSBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0byBjYWNoZSBwcm90b3R5cGUg
bG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQ
aXpsby4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgcHJvdG90eXBlIHZhbHVlIGNhY2hpbmcg
dG8gdGhlIExMSW50IGZvciBvcF9nZXRfYnlfaWQuCisgICAgICAgIFR3byBwcmV2aW91c2x5IHVu
dXNlZCB3b3JkcyBpbiB0aGUgb3BfZ2V0X2J5X2lkIGJ5dGVjb2RlIGhhdmUgYmVlbgorICAgICAg
ICByZXB1cnBvc2VkIHRvIGhvbGQgZXh0cmEgaW5mb3JtYXRpb24gZm9yIHRoZSBjYWNoZS4gVGhl
IGZpcnN0IGlzIGEKKyAgICAgICAgY291bnRlciB0aGF0IHJlY29yZHMgdGhlIG51bWJlciBvZiBn
ZXRfYnlfaWRzIHRoYXQgaGl0IGEgY2FjaGVhYmxlIHZhbHVlCisgICAgICAgIG9uIGEgcHJvdG90
eXBlLiBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVkIGZyb20gb25lIHRvIHplcm8gd2UK
KyAgICAgICAgYXR0ZW1wdCB0byBjYWNoZSB0aGUgcHJvdG90eXBlIGxvYWQsIHdoaWNoIHdpbGwg
YmUgZGlzY3Vzc2VkIGZ1cnRoZXIKKyAgICAgICAgYmVsb3cuIFRoZSBzZWNvbmQgd29yZCBpcyB1
c2VkIHRvIGhvbGQgdGhlIHByb3RvdHlwZSBvYmplY3Qgd2hlbiB3ZSBoYXZlCisgICAgICAgIHN0
YXJ0ZWQgY2FjaGluZy4KKworICAgICAgICBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVk
IHRvIHplcm8gd2UgZmlyc3QgYXR0ZW1wdCB0byBnZW5lcmF0ZSBhbmQKKyAgICAgICAgd2F0Y2gg
dGhlIHByb3BlcnR5IGNvbmRpdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgdmFsaWRpdHkgb2Yg
cHJvdG90eXBlCisgICAgICAgIGxvYWQuIElmIHRoZSB3YXRjaHBvaW50cyBhcmUgc3VjY2Vzc2Z1
bGx5IGNyZWF0ZWQgYW5kIGluc3RhbGxlZCB3ZQorICAgICAgICByZXBsYWNlIHRoZSBvcF9nZXRf
YnlfaWQgb3Bjb2RlIHdpdGggdGhlIG5ldyBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZAorICAgICAg
ICBvcGNvZGUsIHdoaWNoIHRlbGxzIHRoZSBMTEludCB0byB1c2UgdGhlIGNhY2hlIHByb3RvdHlw
ZSBvYmplY3QgZm9yIHRoZQorICAgICAgICBsb2FkIHJhdGhlciB0aGFuIHRoZSBiYXNlIHZhbHVl
LgorCisgICAgICAgIFByaW9yIHRvIHRoaXMgcGF0Y2ggdGhlcmUgd2FzIG5vdCBMTEludCBzcGVj
aWZpYyBkYXRhIG9uQ29kZUJsb2Nrcy4KKyAgICAgICAgU2luY2UgdGhlIENvZGVCbG9jayBuZWVk
cyB0byBvd24gdGhlIFdhdGNocG9pbnRzIGZvciB0aGUgY2FjaGUsIGEgd2VhaworICAgICAgICBt
YXAgZnJvbSBlYWNoIGJhc2Ugc3RydWN0dXJlIHRvIGEgYmFnIG9mIFdhdGNocG9pbnRzIGNyZWF0
ZWQgZm9yIHRoYXQKKyAgICAgICAgc3RydWN0dXJlIGJ5IHNvbWUgb3BfZ2V0X2J5X2lkIGhhcyBi
ZWVuIGFkZGVkIHRvIHRoZSBDb2RlQmxvY2suIER1cmluZworICAgICAgICBHQywgaWYgd2UgZmlu
ZCB0aGF0IHRoZSBhIHN0cnVjdHVyZSBpbiB0aGUgbWFwIGhhcyBub3QgYmVlbiBtYXJrZWQgd2UK
KyAgICAgICAgZnJlZSB0aGUgYXNzb2NpYXRlZCBiYWcgb24gdGhlIENvZGVCbG9jay4KKworICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6
CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAq
IGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJpbnRH
ZXRCeUlkT3ApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnByaW50R2V0QnlJZENhY2hlU3Rh
dHVzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMpOgorICAgICAgICAqIGJ5
dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmxsaW50R2V0QnlJ
ZFdhdGNocG9pbnRNYXApOgorICAgICAgICAoSlNDOjpjbGVhckxMSW50R2V0QnlJZENhY2hlKToK
KyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0
QnlJZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludCk6CisgICAgICAgICogYnl0ZWNvZGUvTExJbnRQ
cm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6
TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50KToKKyAgICAgICAg
KEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50OjppbnN0
YWxsKToKKyAgICAgICAgKEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVX
YXRjaHBvaW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL0xMSW50UHJvdG90
eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
eXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHA6CisgICAgICAgIChKU0M6Ok9i
amVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Ojppc1ZhbGlkQW5kV2F0Y2hhYmxlKToKKyAgICAgICAg
KiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oOgorICAgICAgICAqIGJ5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0R2V0QnlJZCk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAg
ICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJp
bGl0eUxldmVsKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpw
cml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGls
ZVNsb3dDYXNlcyk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAg
ICAoSlNDOjpMTEludDo6c2V0dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUpOgorICAgICAgICAoSlND
OjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xv
d1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToK
KyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1
bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9sbGludC1nZXQtYnktaWQt
Y2FjaGUtcHJvdG90eXBlLWxvYWQtZnJvbS1kaWN0aW9uYXJ5LmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorCiAyMDE2LTA1LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpd2VkLCBhZGQgYSBjb21tZW50IHRvIGRlc2NyaWJlIHRoZSB0ZXN0J3Mg
ZmFpbHVyZSBtb2RlLiBTdWdnZXN0ZWQgYnkgbWxhbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2Y4NDI4MjA1ZjhiNzA3NGJi
Yjg0YWM2ODdiOTJlZGYyNDQ5MDk2Ny4uYWM5Y2YyMTg4OWYwOTI1MTlmNTA4MDU2NjkxZTAzZDNh
YWE4OTA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8
a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0
byBjYWNoZSBwcm90b3R5cGUgbG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBS
ZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAgICBBZGQgbW92ZSBjb25zdHJ1Y3RvcnMv
aW5pdGlhbGl6ZXJzIHRvIEJhZ3MuCisKKyAgICAgICAgKiB3dGYvQmFnLmg6CisgICAgICAgIChX
VEY6OkJhZzo6QmFnKToKKyAgICAgICAgKFdURjo6QmFnOjpvcGVyYXRvcj0pOgorCiAyMDE2LTA1
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGF1dG8g
Zm9yIHNvbWUgb2Ygb3VyIGxhbWJkYSBmdW5jdGlvbiBwYXJhbWV0ZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDI5YjJhMDE5MTNiNDFlYmQ1OWIyODU2MWI4MzhjOGYx
OWY1N2MzNy4uNTA5NGVhZGExOTI2YjE2YTY2ZDExNDI2NzY5NTE0YjFkZDM5ZDc3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjAzLDYgKzIwMyw3IEBAIHNldChKYXZh
U2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYnl0ZWNvZGUvSW5saW5lQ2FsbEZyYW1lU2V0LmNwcAog
ICAgIGJ5dGVjb2RlL0p1bXBUYWJsZS5jcHAKICAgICBieXRlY29kZS9MYXp5T3BlcmFuZFZhbHVl
UHJvZmlsZS5jcHAKKyAgICBieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVj
dHVyZVdhdGNocG9pbnQuY3BwCiAgICAgYnl0ZWNvZGUvTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJv
ZmlsZS5jcHAKICAgICBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5jcHAKICAgICBi
eXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggOGM4OTI1YzZkM2E1ZjgzOGRjYzYwNGNjMTUyMTMwNWVkMTQyMTBhZS4u
M2FhOGE3MmU3ZTY1OTljZmNkMDc5MzViNDQyMzYwOThjZmVlYzIwNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTExODEsNiArMTE4MSw4IEBACiAJCTUzNzBCNEY2MUJGMjYyMDUw
MDVDNDBGQyAvKiBBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRCYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzcwQjRGNDFC
RjI1RUEyMDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50
QmFzZS5oICovOyB9OwogCQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJEMzMgLyogSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOTE3RTdBMUI3OTA2RTQwMDBFQkQzMyAvKiBKU0dlbmVy
aWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oICovOyB9OwogCQk1M0Y2QkY2RDFD
M0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0Y2QkY2QzFDM0Yw
NjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTNGQTJBRTExQ0Yz
N0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNG
QTJBRTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0
dXJlV2F0Y2hwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTUzRkEyQUUzMUNGMzgwMzkwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRB
ZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGQTJBRTIxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50UHJv
dG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgKi87IH07CiAJCTVENUQ4
QUQxMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ1RDhBRDAwRTBEMEVCRTAwRjlDNjkyIC8q
IGxpYmVkaXQuZHlsaWIgKi87IH07CiAJCTVEQkIxNTFCMTMxRDBCMzEwMDU2QUQzNiAvKiB0ZXN0
YXBpLmpzIGluIENvcHkgU3VwcG9ydCBTY3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTREODU3NzQwQTQ2OTZDODAwMzIxNDZDIC8qIHRlc3RhcGkuanMgKi87IH07CiAJ
CTVEQkIxNTI1MTMxRDBCRDcwMDU2QUQzNiAvKiBtaW5pZG9tLmpzIGluIENvcHkgU3VwcG9ydCBT
Y3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxMjExMEQwQTQ4Nzg4
NzAwNDgwMjU1IC8qIG1pbmlkb20uanMgKi87IH07CkBAIC0zMzIxLDYgKzMzMjMsOCBAQAogCQk1
MzkxN0U4MzFCNzkxQ0I4MDAwRUJEMzMgLyogVHlwZWRBcnJheVByb3RvdHlwZS5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFR5cGVkQXJyYXlQcm90b3R5cGUuanM7
IHBhdGggPSBidWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBlLmpzOyBzb3VyY2VUcmVlID0gU09V
UkNFX1JPT1Q7IH07CiAJCTUzRjI1NkUxMUI4N0UyODAwMEI0Qjc2OCAvKiBKU1R5cGVkQXJyYXlW
aWV3UHJvdG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
VHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1M0Y2QkY2QzFDM0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Q
cm9maWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludGVybmFsRnVuY3Rp
b25BbGxvY2F0aW9uUHJvZmlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1M0ZB
MkFFMDFDRjM3RjNGMDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1
cmVXYXRjaHBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExMSW50UHJv
dG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1M0ZBMkFFMjFDRjM4MDM5MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVM
b2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5M0Q0M0NDQTBCQkUwNkQ4
OUM1OTcwNyAvKiBNYXBEYXRhSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNYXBEYXRhSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDVE
OEFEMDBFMEQwRUJFMDBGOUM2OTIgLyogbGliZWRpdC5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBu
YW1lID0gbGliZWRpdC5keWxpYjsgcGF0aCA9IC91c3IvbGliL2xpYmVkaXQuZHlsaWI7IHNvdXJj
ZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCTVEQUZENkNCMTQ2QjY4NjMwMEZCRUZCNCAvKiBK
U0MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gSlNDLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNjU3NSw2ICs2NTc5LDggQEAKIAkJCQkwRkI1NDY3ODE0RjVDNDY4MDAy
QzI5ODkgLyogTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwICovLAogCQkJCTBGQjU0Njc2MTRG
NTlBRDEwMDJDMjk4OSAvKiBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5oICovLAogCQkJCTBGMEZD
NDU4MTRCRDE1RjEwMEI4MTE1NCAvKiBMTEludENhbGxMaW5rSW5mby5oICovLAorCQkJCTUzRkEy
QUUyMUNGMzgwMzkwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVy
ZVdhdGNocG9pbnQuY3BwICovLAorCQkJCTUzRkEyQUUwMUNGMzdGM0YwMDIyNzExRCAvKiBMTElu
dFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCAqLywKIAkJCQkwRkI1
NDY3QzE0RjVDRkQzMDAyQzI5ODkgLyogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5jcHAg
Ki8sCiAJCQkJMEZCNTQ2N0ExNEY1QzdENDAwMkMyOTg5IC8qIE1ldGhvZE9mR2V0dGluZ0FWYWx1
ZVByb2ZpbGUuaCAqLywKIAkJCQkxNENBOTU4QzE2QUI1MEZBMDA5MzhBMDYgLyogT2JqZWN0QWxs
b2NhdGlvblByb2ZpbGUuaCAqLywKQEAgLTc5MTAsNiArNzkxNiw3IEBACiAJCQkJMEZGNzE2OEMx
NUEzQjIzNTAwOEY1REFBIC8qIFByb3BlcnR5T2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzQ1NTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVydHlTbG90LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkI3RjM5QzE1RUQ4RTQ2MDBGMTY3QjIgLyogUHJvcGVydHlTdG9yYWdlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1M0ZBMkFFMTFDRjM3RjNGMDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVM
b2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4
QzQ1NjBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvdGVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3
NEMzM0IxNkFBMkQ5NTAwNjJGMDFEIC8qIFByb3RvdHlwZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY1NzgwQTIxOEZFMUU5ODAwMUU3MkQ5IC8qIFB1cmVOYU4uaCBpbiBIZWFkZXJzICovLApA
QCAtODYzNSw2ICs4NjQyLDcgQEAKIAkJCQk2NUMwMjg1MDE3MTc5NUUyMDAzNTFFMzUgLyogQVJN
djdEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVDMDI4NUMxNzE3OTY2ODAw
MzUxRTM1IC8qIEFSTXY3RE9wY29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjgzMzVCNzE2
MzlDMUU2MDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk1M0ZBMkFFMzFDRjM4MDM5MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRh
cHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QThBRjM0
MTdBREI1RjMwMDVBQjE3NCAvKiBBcnJheUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkZDOTlENDE4NEVFMzE4MDA5QzEwQUIgLyogQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QThBRjM2MTdBREI1RjMwMDVBQjE3NCAvKiBBcnJh
eUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KaW5kZXggYTgwNjU2ZTI1NWQyNTJhMzgwZjg4
NWE5ZmJhYWE1MDAzODQ3NTBiMi4uMjFmZmIzOGIyNDc0NmVlNDg0YzhmMzU1Njc1MWE1NzkzZmFh
YzA0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
TGlzdC5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxp
c3QuanNvbgpAQCAtNTgsMTEgKzU4LDEyIEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9p
c19vYmplY3Rfb3JfbnVsbCIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfaXNfZnVuY3Rpb24iLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAgICAgIHsgIm5hbWUi
IDogIm9wX2luIiwgImxlbmd0aCIgOiA0IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF90
cnlfZ2V0X2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJv
cF9nZXRfYXJyYXlfbGVuZ3RoIiwgImxlbmd0aCIgOiA5IH0sCiAgICAgICAgICAgICB7ICJuYW1l
IiA6ICJvcF9nZXRfYnlfaWQiLCAibGVuZ3RoIiA6IDkgIH0sCisgICAgICAgICAgICB7ICJuYW1l
IiA6ICJvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZCIsICJsZW5ndGgiIDogOSB9LAogICAgICAgICAg
ICAgeyAibmFtZSIgOiAib3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyIsICJsZW5ndGgiIDogNSB9LAog
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZ2V0X2J5X3ZhbF93aXRoX3RoaXMiLCAibGVuZ3Ro
IiA6IDUgfSwKLSAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9hcnJheV9sZW5ndGgiLCAi
bGVuZ3RoIiA6IDkgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3RyeV9nZXRfYnlfaWQi
LCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3B1dF9ieV9pZCIs
ICJsZW5ndGgiIDogOSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHV0X2J5X2lkX3dp
dGhfdGhpcyIsICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZGVs
X2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IGZkMWY0NGU0YmIwOTQyYjMxM2NiMDc4MzkyMDI1
YTc5YTQxOTkyZWEuLjZhN2Y3NWUyOTIxY2FmOWI5NGY5YzYzZGE4Y2U5ZDNkNjI0MThkY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBA
IC0xNTgsNiArMTU4LDcgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAg
IGNhc2Ugb3BfdG9fcHJpbWl0aXZlOgogICAgIGNhc2Ugb3BfdHJ5X2dldF9ieV9pZDoKICAgICBj
YXNlIG9wX2dldF9ieV9pZDoKKyAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOgogICAg
IGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICBjYXNlIG9wX3R5cGVvZjoKICAgICBjYXNl
IG9wX2lzX2VtcHR5OgpAQCAtMzkyLDYgKzM5Myw3IEBAIHZvaWQgY29tcHV0ZURlZnNGb3JCeXRl
Y29kZU9mZnNldChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnl0ZWNvZGVCYXNpY0Jsb2NrKiBibG9j
CiAgICAgY2FzZSBvcF9jb25zdHJ1Y3Q6CiAgICAgY2FzZSBvcF90cnlfZ2V0X2J5X2lkOgogICAg
IGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQ6CiAg
ICAgY2FzZSBvcF9nZXRfYnlfaWRfd2l0aF90aGlzOgogICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbF93
aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCA1NDFmNDUyN2FkNjk5MTJkNWM5
M2JmNmU2ODFmZTdmMDQyODBmOTkwLi4wYzY1MzNjNDU1OWFhNjAzMzA4OTc3Yzc0MDA3MTZkZWVi
OTQ5YTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNw
cApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkpTTGV4aWNhbEVudmlyb25tZW50LmgiCiAj
aW5jbHVkZSAiSlNNb2R1bGVFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkxMSW50RW50cnlwb2lu
dC5oIgorI2luY2x1ZGUgIkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludC5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiUENUb0NvZGVPcmlnaW5NYXAuaCIKQEAgLTM0NSw2ICszNDYs
OSBAQCB2b2lkIENvZGVCbG9jazo6cHJpbnRHZXRCeUlkT3AoUHJpbnRTdHJlYW0mIG91dCwgRXhl
Y1N0YXRlKiBleGVjLCBpbnQgbG9jYXRpb24sCiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CiAgICAg
ICAgIG9wID0gImdldF9ieV9pZCI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ugb3BfZ2V0X2J5
X2lkX3Byb3RvX2xvYWQ6CisgICAgICAgIG9wID0gImdldF9ieV9pZF9wcm90b19sb2FkIjsKKyAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgICAgICBvcCA9
ICJhcnJheV9sZW5ndGgiOwogICAgICAgICBicmVhazsKQEAgLTQwNSw2ICs0MDksOCBAQCB2b2lk
IENvZGVCbG9jazo6cHJpbnRHZXRCeUlkQ2FjaGVTdGF0dXMoUHJpbnRTdHJlYW0mIG91dCwgRXhl
Y1N0YXRlKiBleGVjLCBpbnQgbAogICAgICAgICBvdXQucHJpbnRmKCIgbGxpbnQoIik7CiAgICAg
ICAgIGR1bXBTdHJ1Y3R1cmUob3V0LCAic3RydWN0Iiwgc3RydWN0dXJlLCBpZGVudCk7CiAgICAg
ICAgIG91dC5wcmludGYoIikiKTsKKyAgICAgICAgaWYgKGV4ZWMtPmludGVycHJldGVyKCktPmdl
dE9wY29kZUlEKGluc3RydWN0aW9uWzBdLnUub3Bjb2RlKSA9PSBvcF9nZXRfYnlfaWRfcHJvdG9f
bG9hZCkKKyAgICAgICAgICAgIG91dC5wcmludGYoIiBwcm90byglcCkiLCBpbnN0cnVjdGlvbls2
XS51LnBvaW50ZXIpOwogICAgIH0KIAogI2lmIEVOQUJMRShKSVQpCkBAIC0xMTEyLDYgKzExMTgs
NyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgICAgIGNhc2Ugb3BfZ2V0
X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDogewog
ICAgICAgICAgICAgcHJpbnRHZXRCeUlkT3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQpOwogICAg
ICAgICAgICAgcHJpbnRHZXRCeUlkQ2FjaGVTdGF0dXMob3V0LCBleGVjLCBsb2NhdGlvbiwgc3R1
YkluZm9zKTsKQEAgLTI3NTQsMTQgKzI3NjEsMTQgQEAgdm9pZCBDb2RlQmxvY2s6OmZpbmFsaXpl
TExJbnRJbmxpbmVDYWNoZXMoKQogICAgIGZvciAoc2l6ZV90IHNpemUgPSBwcm9wZXJ0eUFjY2Vz
c0luc3RydWN0aW9ucy5zaXplKCksIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgIElu
c3RydWN0aW9uKiBjdXJJbnN0cnVjdGlvbiA9ICZpbnN0cnVjdGlvbnMoKVtwcm9wZXJ0eUFjY2Vz
c0luc3RydWN0aW9uc1tpXV07CiAgICAgICAgIHN3aXRjaCAoaW50ZXJwcmV0ZXItPmdldE9wY29k
ZUlEKGN1ckluc3RydWN0aW9uWzBdLnUub3Bjb2RlKSkgewotICAgICAgICBjYXNlIG9wX2dldF9i
eV9pZDogeworICAgICAgICBjYXNlIG9wX2dldF9ieV9pZDoKKyAgICAgICAgY2FzZSBvcF9nZXRf
YnlfaWRfcHJvdG9fbG9hZDogewogICAgICAgICAgICAgU3RydWN0dXJlSUQgb2xkU3RydWN0dXJl
SUQgPSBjdXJJbnN0cnVjdGlvbls0XS51LnN0cnVjdHVyZUlEOwogICAgICAgICAgICAgaWYgKCFv
bGRTdHJ1Y3R1cmVJRCB8fCBIZWFwOjppc01hcmtlZChtX3ZtLT5oZWFwLnN0cnVjdHVyZUlEVGFi
bGUoKS5nZXQob2xkU3RydWN0dXJlSUQpKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgICAgICAgICAgZGF0YUxv
Z0YoIkNsZWFyaW5nIExMSW50IHByb3BlcnR5IGFjY2Vzcy5cbiIpOwotICAgICAgICAgICAgY3Vy
SW5zdHJ1Y3Rpb25bNF0udS5zdHJ1Y3R1cmVJRCA9IDA7Ci0gICAgICAgICAgICBjdXJJbnN0cnVj
dGlvbls1XS51Lm9wZXJhbmQgPSAwOworICAgICAgICAgICAgY2xlYXJMTEludEdldEJ5SWRDYWNo
ZShjdXJJbnN0cnVjdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIG9wX3B1dF9ieV9pZDogewpAQCAtMjgzNSw2ICsyODQyLDEyIEBAIHZvaWQgQ29kZUJs
b2NrOjpmaW5hbGl6ZUxMSW50SW5saW5lQ2FjaGVzKCkKICAgICAgICAgfQogICAgIH0KIAorICAg
IC8vIFdlIGNhbid0IGp1c3QgcmVtb3ZlIGFsbCB0aGUgc2V0cyB3aGVuIHdlIGNsZWFyIHRoZSBj
YWNoZXMgc2luY2Ugd2UgbWlnaHQgaGF2ZSBjcmVhdGVkIGEgd2F0Y2hwb2ludCBzZXQKKyAgICAv
LyB0aGVuIGNsZWFyZWQgdGhlIGNhY2hlIHdpdGhvdXQgR0NpbmcgaW4gYmV0d2Vlbi4KKyAgICBt
X2xsaW50R2V0QnlJZFdhdGNocG9pbnRNYXAucmVtb3ZlSWYoW10oY29uc3QgU3RydWN0dXJlV2F0
Y2hwb2ludE1hcDo6S2V5VmFsdWVQYWlyVHlwZSYgcGFpcikgLT4gYm9vbCB7CisgICAgICAgIHJl
dHVybiAhSGVhcDo6aXNNYXJrZWQocGFpci5rZXkpOworICAgIH0pOworCiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG1fbGxpbnRDYWxsTGlua0luZm9zLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgIGlmIChtX2xsaW50Q2FsbExpbmtJbmZvc1tpXS5pc0xpbmtlZCgpICYmICFIZWFwOjppc01h
cmtlZChtX2xsaW50Q2FsbExpbmtJbmZvc1tpXS5jYWxsZWUuZ2V0KCkpKSB7CiAgICAgICAgICAg
ICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCmluZGV4IGNiYjhjZjU3MDFjY2U3OTVhNjI1MmY0YTdlN2EwNGE1NzQx
YjBiMmYuLjY2NGVjZmViMDE3YmNjYTc2ZmE1MDE4YmQ0NDIwYWM2YjIzYjNmYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTU2LDYgKzU2LDcgQEAK
ICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkp1bXBUYWJsZS5oIgogI2lu
Y2x1ZGUgIkxMSW50Q2FsbExpbmtJbmZvLmgiCisjaW5jbHVkZSAiTExJbnRQcm90b3R5cGVMb2Fk
QWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgiCiAjaW5jbHVkZSAiTGF6eU9wZXJhbmRWYWx1
ZVByb2ZpbGUuaCIKICNpbmNsdWRlICJPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oIgogI2luY2x1
ZGUgIk9wdGlvbnMuaCIKQEAgLTY3OCw2ICs2NzksOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBtX2xsaW50RXhlY3V0ZUNvdW50ZXI7CiAgICAgfQogCisgICAgdHlwZWRlZiBIYXNoTWFwPFN0
cnVjdHVyZSosIEJhZzxMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9p
bnQ+PiBTdHJ1Y3R1cmVXYXRjaHBvaW50TWFwOworICAgIFN0cnVjdHVyZVdhdGNocG9pbnRNYXAm
IGxsaW50R2V0QnlJZFdhdGNocG9pbnRNYXAoKSB7IHJldHVybiBtX2xsaW50R2V0QnlJZFdhdGNo
cG9pbnRNYXA7IH0KKwogICAgIC8vIEZ1bmN0aW9ucyBmb3IgY29udHJvbGxpbmcgd2hlbiB0aWVy
ZWQgY29tcGlsYXRpb24ga2lja3MgaW4uIFRoaXMKICAgICAvLyBjb250cm9scyBib3RoIHdoZW4g
dGhlIG9wdGltaXppbmcgY29tcGlsZXIgaXMgaW52b2tlZCBhbmQgd2hlbiBPU1IKICAgICAvLyBl
bnRyeSBoYXBwZW5zLiBUd28gdHJpZ2dlcnMgZXhpc3Q6IHRoZSBsb29wIHRyaWdnZXIgYW5kIHRo
ZSByZXR1cm4KQEAgLTEwMTksNiArMTAyMyw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZDb3VudGVk
QXJyYXk8TExJbnRDYWxsTGlua0luZm8+IG1fbGxpbnRDYWxsTGlua0luZm9zOwogICAgIFNlbnRp
bmVsTGlua2VkTGlzdDxMTEludENhbGxMaW5rSW5mbywgQmFzaWNSYXdTZW50aW5lbE5vZGU8TExJ
bnRDYWxsTGlua0luZm8+PiBtX2luY29taW5nTExJbnRDYWxsczsKKyAgICBTdHJ1Y3R1cmVXYXRj
aHBvaW50TWFwIG1fbGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcDsKICAgICBSZWZQdHI8SklUQ29k
ZT4gbV9qaXRDb2RlOwogI2lmIEVOQUJMRShKSVQpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlZ2lz
dGVyQXRPZmZzZXRMaXN0PiBtX2NhbGxlZVNhdmVSZWdpc3RlcnM7CkBAIC0xMzA5LDYgKzEzMTQs
MTQgQEAgcHJpdmF0ZToKIH07CiAjZW5kaWYKIAoraW5saW5lIHZvaWQgY2xlYXJMTEludEdldEJ5
SWRDYWNoZShJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCit7CisgICAgaW5zdHJ1Y3Rpb25bMF0u
dS5vcGNvZGUgPSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZCk7CisgICAgaW5zdHJ1Y3Rp
b25bNF0udS5wb2ludGVyID0gbnVsbHB0cjsKKyAgICBpbnN0cnVjdGlvbls1XS51LnBvaW50ZXIg
PSBudWxscHRyOworICAgIGluc3RydWN0aW9uWzZdLnUucG9pbnRlciA9IG51bGxwdHI7Cit9CisK
IGlubGluZSBSZWdpc3RlciYgRXhlY1N0YXRlOjpyKGludCBpbmRleCkKIHsKICAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jayA9IHRoaXMtPmNvZGVCbG9jaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCmluZGV4IGM2OTUxNGM1N2U4OTAzYzAy
NWIyNTdmYzAxM2JlMTczMmM5NDVjMGIuLjU5ZTgxYzc1MWFmYTA3YTRhZGY1NGUxZDZiNDJmMmE3
NGQ1ZWE3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRC
eUlkU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJ
ZFN0YXR1cy5jcHAKQEAgLTc1LDggKzc1LDEyIEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1
czo6Y29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkCiAg
ICAgVk0mIHZtID0gKnByb2ZpbGVkQmxvY2stPnZtKCk7CiAgICAgCiAgICAgSW5zdHJ1Y3Rpb24q
IGluc3RydWN0aW9uID0gcHJvZmlsZWRCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGJ5
dGVjb2RlSW5kZXg7Ci0gICAgCi0gICAgaWYgKGluc3RydWN0aW9uWzBdLnUub3Bjb2RlID09IExM
SW50OjpnZXRPcGNvZGUob3BfZ2V0X2FycmF5X2xlbmd0aCkgfHwgaW5zdHJ1Y3Rpb25bMF0udS5v
cGNvZGUgPT0gTExJbnQ6OmdldE9wY29kZShvcF90cnlfZ2V0X2J5X2lkKSkKKworICAgIE9wY29k
ZSBvcGNvZGUgPSBpbnN0cnVjdGlvblswXS51Lm9wY29kZTsKKworICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgbm90IGp1c3QgYmFpbCBpZiB3ZSBzZWUgYSB0cnlfZ2V0X2J5X2lkIG9yIGEgZ2V0X2J5
X2lkX3Byb3RvX2xvYWQuDgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTgwMzkKKyAgICBpZiAob3Bjb2RlID09IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0
X2FycmF5X2xlbmd0aCkgfHwgb3Bjb2RlID09IExMSW50OjpnZXRPcGNvZGUob3BfdHJ5X2dldF9i
eV9pZCkgfHwgb3Bjb2RlID09IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2J5X2lkX3Byb3RvX2xv
YWQpKQogICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhOb0luZm9ybWF0aW9uLCBmYWxzZSk7
CiAKICAgICBTdHJ1Y3R1cmVJRCBzdHJ1Y3R1cmVJRCA9IGluc3RydWN0aW9uWzRdLnUuc3RydWN0
dXJlSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTExJbnRQ
cm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhZTJjMGRjNjNhODFlZWI5ODY2ZmNkNTYzMDBmZWEy
NjBjNTQwMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcApAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxMSW50UHJvdG90eXBlTG9hZEFkYXB0
aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIgorCisjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisjaW5j
bHVkZSAiSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVJbmxpbmVzLmgiCisKK25h
bWVzcGFjZSBKU0MgeworCitMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNo
cG9pbnQ6OkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludChjb25z
dCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiYga2V5LCBJbnN0cnVjdGlvbiogZ2V0QnlJZEluc3Ry
dWN0aW9uKQorICAgIDogbV9rZXkoa2V5KQorICAgICwgbV9nZXRCeUlkSW5zdHJ1Y3Rpb24oZ2V0
QnlJZEluc3RydWN0aW9uKQoreworICAgIFJFTEVBU0VfQVNTRVJUKGtleS53YXRjaGluZ1JlcXVp
cmVzU3RydWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQo
IWtleS53YXRjaGluZ1JlcXVpcmVzUmVwbGFjZW1lbnRXYXRjaHBvaW50KCkpOworfQorCit2b2lk
IExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6aW5zdGFsbCgp
Cit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9rZXkuaXNXYXRjaGFibGUoKSk7CisKKyAgICBtX2tl
eS5vYmplY3QoKS0+c3RydWN0dXJlKCktPmFkZFRyYW5zaXRpb25XYXRjaHBvaW50KHRoaXMpOwor
fQorCit2b2lkIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6
ZmlyZUludGVybmFsKGNvbnN0IEZpcmVEZXRhaWwmIGRldGFpbCkKK3sKKyAgICBpZiAobV9rZXku
aXNXYXRjaGFibGUoUHJvcGVydHlDb25kaXRpb246OkVuc3VyZVdhdGNoYWJpbGl0eSkpIHsKKyAg
ICAgICAgaW5zdGFsbCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nUHJp
bnRTdHJlYW0gb3V0OworICAgIG91dC5wcmludCgiT2JqZWN0VG9TdHJpbmdWYWx1ZSBBZGFwdGF0
aW9uIG9mICIsIG1fa2V5LCAiIGZhaWxlZDogIiwgZGV0YWlsKTsKKworICAgIFN0cmluZ0ZpcmVE
ZXRhaWwgc3RyaW5nRGV0YWlsKG91dC50b0NTdHJpbmcoKS5kYXRhKCkpOworCisgICAgY2xlYXJM
TEludEdldEJ5SWRDYWNoZShtX2dldEJ5SWRJbnN0cnVjdGlvbik7Cit9CisKK30gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50
UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0
Y2hwb2ludC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2MTVlMTA2MDJmYjI5MzczY2JlMTFhZmVlNmZiMGYyY2Fj
ZTlmOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmgKQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50X2gKKyNk
ZWZpbmUgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50X2gKKwor
I2luY2x1ZGUgIkluc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiT2JqZWN0UHJvcGVydHlDb25kaXRp
b24uaCIKKyNpbmNsdWRlICJXYXRjaHBvaW50LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFz
cyBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQgOiBwdWJsaWMg
V2F0Y2hwb2ludCB7CitwdWJsaWM6CisgICAgTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1
Y3R1cmVXYXRjaHBvaW50KGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uJiwgSW5zdHJ1Y3Rp
b24qKTsKKworICAgIHZvaWQgaW5zdGFsbCgpOworCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBmaXJl
SW50ZXJuYWwoY29uc3QgRmlyZURldGFpbCYpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIE9i
amVjdFByb3BlcnR5Q29uZGl0aW9uIG1fa2V5OworICAgIEluc3RydWN0aW9uKiBtX2dldEJ5SWRJ
bnN0cnVjdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLyogTExJbnRQ
cm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50X2ggKi8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNl
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25k
aXRpb25TZXQuY3BwCmluZGV4IGQ1NzAwNDAwZjhiMjYzZTVmZjc3NWVmZWY4OGJhNWNiMDlkYjQy
MGIuLjA1NzIzYWQ4MjJmZjkxZjViMTI0NmM0ZjdiNDQxZjIxZDVkMjljYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNl
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5
Q29uZGl0aW9uU2V0LmNwcApAQCAtMTY3LDYgKzE2NywxOCBAQCB2b2lkIE9iamVjdFByb3BlcnR5
Q29uZGl0aW9uU2V0OjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgZHVtcEluQ29u
dGV4dChvdXQsIG51bGxwdHIpOwogfQogCitib29sIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0
Ojppc1ZhbGlkQW5kV2F0Y2hhYmxlKCkgY29uc3QKK3sKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yIChPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBj
b25kaXRpb24gOiBtX2RhdGEtPnZlY3RvcikgeworICAgICAgICBpZiAoIWNvbmRpdGlvbi5pc1dh
dGNoYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogbmFtZXNwYWNlIHsKIAogYm9vbCB2ZXJib3NlID0gZmFsc2U7CkBAIC0yNTQs
OSArMjY2LDExIEBAIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0IGdlbmVyYXRlQ29uZGl0aW9u
cygKICAgICAgICAgLy8gU2luY2Ugd2UncmUgYWNjZXNzaW5nIGEgcHJvdG90eXBlIHJlcGVhdGVk
bHksIGl0J3MgYSBnb29kIGJldCB0aGF0IGl0IHNob3VsZCBub3QgYmUKICAgICAgICAgLy8gdHJl
YXRlZCBhcyBhIGRpY3Rpb25hcnkuCiAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPmlzRGljdGlvbmFy
eSgpKSB7Ci0gICAgICAgICAgICBpZiAoY29uY3VycmVuY3kgPT0gTWFpblRocmVhZCkKKyAgICAg
ICAgICAgIGlmIChjb25jdXJyZW5jeSA9PSBNYWluVGhyZWFkKSB7CisgICAgICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkZsYXR0ZW5pbmcgIiwg
cG9pbnRlckR1bXAoc3RydWN0dXJlKSk7CiAgICAgICAgICAgICAgICAgc3RydWN0dXJlLT5mbGF0
dGVuRGljdGlvbmFyeVN0cnVjdHVyZSh2bSwgb2JqZWN0KTsKLSAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAg
ICAgICAgICAgICAgICAgZGF0YUxvZygiQ2Fubm90IGZsYXR0ZW4gZGljdGlvbmFyeSB3aGVuIG5v
dCBvbiBtYWluIHRocmVhZCwgc28gaW52YWxpZC5cbiIpOwogICAgICAgICAgICAgICAgIHJldHVy
biBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldDo6aW52YWxpZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25T
ZXQuaAppbmRleCA3NmU4YTljZGE4MDA2YTlhYWY1MWE2Zjg3MjcwMDYyYzdhOWQ5MTMyLi4wMWNl
MWE4NDFjMzMwZjJjYmU0YmYyN2I5MmYxNGFkZWEyYWM5MGRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25T
ZXQuaApAQCAtNjcsNiArNjcsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gIW1f
ZGF0YSB8fCAhbV9kYXRhLT52ZWN0b3IuaXNFbXB0eSgpOwogICAgIH0KKworICAgIGJvb2wgaXNW
YWxpZEFuZFdhdGNoYWJsZSgpIGNvbnN0OwogICAgIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCBiNTAxNTFkMWRkMDViMzM5NGRjZWNmZmIzMmVi
NGJlNTBmZTBlZWRlLi41ODAzNjYxMzY1Mzg2MTc5NDI3MGIzNGY5NzEyMjlkNzA0YTgzY2Q2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmNwcApAQCAtMjQzMSw3ICsyNDMxLDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRHZXRCeUlkKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFz
ZSwgY28KICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoMCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCku
YXBwZW5kKDApOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsKLSAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoMCk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKE9wdGlvbnM6OnByb3Rv
dHlwZUhpdENvdW50Rm9yTExJbnRDYWNoaW5nKCkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVu
ZChwcm9maWxlKTsKICAgICByZXR1cm4gZHN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCBhYTgzMWMzNTNmYmIwNWQxMmFjMGU5
MmQxZmMxYjY2ZTNhNTE4YTM2Li4zYzI4MTIyYzg0MmI1Yzg5MjM4MTRmYzgwODg4NzRlNWY0MTQw
NTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcApAQCAtNDA4MSw2ICs0MDgxLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9j
ayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgfQogCiAgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lk
OgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOgogICAgICAgICBjYXNlIG9w
X2dldF9hcnJheV9sZW5ndGg6IHsKICAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rp
b24gPSBnZXRQcmVkaWN0aW9uKCk7CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCAwNjY2OWQ0MDY4ZmU4MzRiODRiY2Fl
Yjk4YmJjNjBkYTdjN2VlMjRjLi4wNjI0MjdjYjkzMTI3ZjkxMTA1ZTM3NjkwZGE2YjVjMjY3ZTNl
YjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGll
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3Bw
CkBAIC0xNTQsNiArMTU0LDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNv
ZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEluc3RydWMKICAgICBjYXNlIG9w
X3B1dF9ieV92YWxfZGlyZWN0OgogICAgIGNhc2Ugb3BfdHJ5X2dldF9ieV9pZDoKICAgICBjYXNl
IG9wX2dldF9ieV9pZDoKKyAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOgogICAgIGNh
c2Ugb3BfZ2V0X2J5X2lkX3dpdGhfdGhpczoKICAgICBjYXNlIG9wX2dldF9ieV92YWxfd2l0aF90
aGlzOgogICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmNwcAppbmRleCBhZGFhODYwN2Y2YzQ0YWMwNDMyNTllYzQ3ZTUwN2NlMGZjOTMwNjg2Li45MmFh
Yzk5NDhiNWUxZDFhNGQxNjM0ODQ5NmFiNzZkODI2YmE4YjU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCkBAIC0yNDAsNiArMjQwLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFp
blBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfZXFfbnVsbCkKICAgICAgICAgREVGSU5FX09Q
KG9wX3RyeV9nZXRfYnlfaWQpCiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKKyAg
ICAgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICAgICAgREVGSU5FX09QKG9w
X2dldF9ieV9pZCkKICAgICAgICAgREVGSU5FX09QKG9wX2dldF9ieV9pZF93aXRoX3RoaXMpCiAg
ICAgICAgIERFRklORV9PUChvcF9nZXRfYnlfdmFsKQpAQCAtNDIyLDYgKzQyMyw3IEBAIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9P
UChvcF9lcSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX3RyeV9nZXRfYnlfaWQpCiAg
ICAgICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKKyAgICAgICAgY2FzZSBvcF9nZXRfYnlf
aWRfcHJvdG9fbG9hZDoKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2dldF9ieV9pZCkK
ICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2dldF9ieV92YWwpCiAgICAgICAgIERFRklO
RV9TTE9XQ0FTRV9PUChvcF9pbnN0YW5jZW9mKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggZmE4ODM3NGNlNjE1ZWMxYWEwOWZlN2EzMjA3
MWEyMWI5MjEyOTAwNy4uYTEwMzU4ODNkMTRiYjVmMjA1M2E0NDZkZmE2NGVmNTI4MzBjYzlhZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBA
IC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiTExJbnRFeGNlcHRpb25zLmgiCiAjaW5jbHVkZSAi
TG93TGV2ZWxJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCisj
aW5jbHVkZSAiT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuaCIKICNpbmNsdWRlICJQcm90b0Nh
bGxGcmFtZS5oIgogI2luY2x1ZGUgIlNoYWRvd0NoaWNrZW4uaCIKICNpbmNsdWRlICJTdHJ1Y3R1
cmVSYXJlRGF0YUlubGluZXMuaCIKQEAgLTU4MCw2ICs1ODEsNDMgQEAgTExJTlRfU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX3RyeV9nZXRfYnlfaWQpCiAgICAgTExJTlRfUkVUVVJOKHNsb3QuZ2V0
UHVyZVJlc3VsdCgpKTsKIH0KIAorc3RhdGljIHZvaWQgc2V0dXBHZXRCeUlkUHJvdG90eXBlQ2Fj
aGUoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIEluc3RydWN0aW9uKiBwYywgSlNDZWxsKiBiYXNl
Q2VsbCwgUHJvcGVydHlTbG90JiBzbG90LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCkKK3sKKyAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOworICAgIFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gYmFzZUNlbGwtPnN0cnVjdHVyZSgpOworCisgICAgaWYgKHN0cnVjdHVy
ZS0+dHlwZUluZm8oKS5wcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKSB8fCBzdHJ1Y3R1cmUtPmlz
RGljdGlvbmFyeSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBPYmplY3RQcm9wZXJ0eUNvbmRp
dGlvblNldCBjb25kaXRpb25zID0gZ2VuZXJhdGVDb25kaXRpb25zRm9yUHJvdG90eXBlUHJvcGVy
dHlIaXQodm0sIGNvZGVCbG9jaywgZXhlYywgc3RydWN0dXJlLCBzbG90LnNsb3RCYXNlKCksIGlk
ZW50LmltcGwoKSk7CisKKyAgICBpZiAoIWNvbmRpdGlvbnMuaXNWYWxpZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBpbnZhbGlkT2Zmc2V0OworICAg
IENvZGVCbG9jazo6U3RydWN0dXJlV2F0Y2hwb2ludE1hcCYgd2F0Y2hwb2ludE1hcCA9IGNvZGVC
bG9jay0+bGxpbnRHZXRCeUlkV2F0Y2hwb2ludE1hcCgpOworICAgIGF1dG8gcmVzdWx0ID0gd2F0
Y2hwb2ludE1hcC5hZGQoc3RydWN0dXJlLCBCYWc8TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVT
dHJ1Y3R1cmVXYXRjaHBvaW50PigpKTsKKyAgICBmb3IgKE9iamVjdFByb3BlcnR5Q29uZGl0aW9u
IGNvbmRpdGlvbiA6IGNvbmRpdGlvbnMpIHsKKyAgICAgICAgaWYgKCFjb25kaXRpb24uaXNXYXRj
aGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGNvbmRpdGlvbi5jb25k
aXRpb24oKS5raW5kKCkgPT0gUHJvcGVydHlDb25kaXRpb246OlByZXNlbmNlKQorICAgICAgICAg
ICAgb2Zmc2V0ID0gY29uZGl0aW9uLmNvbmRpdGlvbigpLm9mZnNldCgpOworICAgICAgICByZXN1
bHQuaXRlcmF0b3ItPnZhbHVlLmFkZChjb25kaXRpb24sIHBjKS0+aW5zdGFsbCgpOworICAgIH0K
KyAgICBBU1NFUlQob2Zmc2V0ICE9IGludmFsaWRPZmZzZXQpOworCisgICAgQ29uY3VycmVudEpJ
VExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOworCisgICAgcGNbMF0udS5vcGNvZGUg
PSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9wcm90b19sb2FkKTsKKyAgICBwY1s0XS51
LnN0cnVjdHVyZUlEID0gc3RydWN0dXJlLT5pZCgpOworICAgIHBjWzVdLnUub3BlcmFuZCA9IG9m
ZnNldDsKKyAgICAvLyBXZSBrbm93IHRoYXQgdGhpcyBwb2ludGVyIHdpbGwgcmVtYWluIHZhbGlk
IGJlY2F1c2UgaXQgaXMgdGhlIHByb3RvdHlwZSBvZiBzb21lIHN0cnVjdHVyZSwgcywKKyAgICAv
LyB3YXRjaHBvaW50ZWQgYWJvdmUuIElmIGFueSBvYmplY3Qgd2l0aCBzdHJ1Y3R1cmUgcyB3ZXJl
IHRvIGNoYW5nZSBwcm90b3R5cGVzIHRoZW4gdGhlIGNvbmRpdGlvbnMKKyAgICAvLyBmb3IgdGhp
cyBjYWNoZSB3b3VsZCBmYWlsIGFuZCB0aGlzIHZhbHVlIHdpbGwgbmV2ZXIgYmUgdXNlZCBhZ2Fp
bi4KKyAgICBwY1s2XS51LnBvaW50ZXIgPSBzbG90LnNsb3RCYXNlKCk7Cit9CisKKwogTExJTlRf
U0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2dldF9ieV9pZCkKIHsKICAgICBMTElOVF9CRUdJTigp
OwpAQCAtNTk0LDM3ICs2MzIsNDMgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2dl
dF9ieV9pZCkKICAgICAKICAgICBpZiAoIUxMSU5UX0FMV0FZU19BQ0NFU1NfU0xPVwogICAgICAg
ICAmJiBiYXNlVmFsdWUuaXNDZWxsKCkKLSAgICAgICAgJiYgc2xvdC5pc0NhY2hlYWJsZSgpCi0g
ICAgICAgICYmIHNsb3Quc2xvdEJhc2UoKSA9PSBiYXNlVmFsdWUKICAgICAgICAgJiYgc2xvdC5p
c0NhY2hlYWJsZVZhbHVlKCkpIHsKLSAgICAgICAgCisKICAgICAgICAgSlNDZWxsKiBiYXNlQ2Vs
bCA9IGJhc2VWYWx1ZS5hc0NlbGwoKTsKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBi
YXNlQ2VsbC0+c3RydWN0dXJlKCk7CisgICAgICAgIGlmIChzbG90LnNsb3RCYXNlKCkgPT0gYmFz
ZVZhbHVlKSB7CisgICAgICAgICAgICAvLyBTdGFydCBvdXQgYnkgY2xlYXJpbmcgb3V0IHRoZSBv
bGQgY2FjaGUuCisgICAgICAgICAgICBwY1swXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUo
b3BfZ2V0X2J5X2lkKTsKKyAgICAgICAgICAgIHBjWzRdLnUucG9pbnRlciA9IG51bGxwdHI7IC8v
IG9sZCBzdHJ1Y3R1cmUKKyAgICAgICAgICAgIHBjWzVdLnUucG9pbnRlciA9IG51bGxwdHI7IC8v
IG9mZnNldAorCisgICAgICAgICAgICAvLyBQcmV2ZW50IHRoZSBwcm90b3R5cGUgY2FjaGUgZnJv
bSBldmVyIGhhcHBlbmluZy4KKyAgICAgICAgICAgIHBjWzddLnUub3BlcmFuZCA9IDA7CiAgICAg
ICAgIAotICAgICAgICAvLyBTdGFydCBvdXQgYnkgY2xlYXJpbmcgb3V0IHRoZSBvbGQgY2FjaGUu
Ci0gICAgICAgIHBjWzBdLnUub3Bjb2RlID0gTExJbnQ6OmdldE9wY29kZShvcF9nZXRfYnlfaWQp
OwotICAgICAgICBwY1s0XS51LnBvaW50ZXIgPSBudWxscHRyOyAvLyBvbGQgc3RydWN0dXJlCi0g
ICAgICAgIHBjWzVdLnUucG9pbnRlciA9IG51bGxwdHI7IC8vIG9mZnNldAotICAgICAgICAKLSAg
ICAgICAgaWYgKCFzdHJ1Y3R1cmUtPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkKLSAgICAgICAg
ICAgICYmICFzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkucHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkK
LSAgICAgICAgICAgICYmICFzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkubmV3SW1wdXJlUHJvcGVydHlG
aXJlc1dhdGNocG9pbnRzKCkpIHsKLSAgICAgICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKGNv
ZGVCbG9jayk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgIGlmIChzdHJ1Y3R1cmUtPnBy
b3BlcnR5QWNjZXNzZXNBcmVDYWNoZWFibGUoKSkgeworICAgICAgICAgICAgICAgIHZtLmhlYXAu
d3JpdGVCYXJyaWVyKGNvZGVCbG9jayk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOwogCi0gICAg
ICAgICAgICBwY1s0XS51LnN0cnVjdHVyZUlEID0gc3RydWN0dXJlLT5pZCgpOwotICAgICAgICAg
ICAgcGNbNV0udS5vcGVyYW5kID0gc2xvdC5jYWNoZWRPZmZzZXQoKTsKLSAgICAgICAgfQotICAg
IH0KKyAgICAgICAgICAgICAgICBwY1s0XS51LnN0cnVjdHVyZUlEID0gc3RydWN0dXJlLT5pZCgp
OworICAgICAgICAgICAgICAgIHBjWzVdLnUub3BlcmFuZCA9IHNsb3QuY2FjaGVkT2Zmc2V0KCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoVU5MSUtFTFkocGNbN10udS5vcGVy
YW5kKSkgeworICAgICAgICAgICAgQVNTRVJUKHNsb3Quc2xvdEJhc2UoKSAhPSBiYXNlVmFsdWUp
OwogCi0gICAgaWYgKCFMTElOVF9BTFdBWVNfQUNDRVNTX1NMT1cKKyAgICAgICAgICAgIGlmICgh
KC0tcGNbN10udS5vcGVyYW5kKSkKKyAgICAgICAgICAgICAgICBzZXR1cEdldEJ5SWRQcm90b3R5
cGVDYWNoZShleGVjLCB2bSwgcGMsIGJhc2VDZWxsLCBzbG90LCBpZGVudCk7CisgICAgICAgIH0K
KyAgICB9IGVsc2UgaWYgKCFMTElOVF9BTFdBWVNfQUNDRVNTX1NMT1cKICAgICAgICAgJiYgaXNK
U0FycmF5KGJhc2VWYWx1ZSkKICAgICAgICAgJiYgaWRlbnQgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLmxlbmd0aCkgewogICAgICAgICBwY1swXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUo
b3BfZ2V0X2FycmF5X2xlbmd0aCk7CiAgICAgICAgIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxl
ID0gY29kZUJsb2NrLT5nZXRPckFkZEFycmF5UHJvZmlsZShwYyAtIGNvZGVCbG9jay0+aW5zdHJ1
Y3Rpb25zKCkuYmVnaW4oKSk7CiAgICAgICAgIGFycmF5UHJvZmlsZS0+b2JzZXJ2ZVN0cnVjdHVy
ZShiYXNlVmFsdWUuYXNDZWxsKCktPnN0cnVjdHVyZSgpKTsKICAgICAgICAgcGNbNF0udS5hcnJh
eVByb2ZpbGUgPSBhcnJheVByb2ZpbGU7CisKKyAgICAgICAgLy8gUHJldmVudCB0aGUgcHJvdG90
eXBlIGNhY2hlIGZyb20gZXZlciBoYXBwZW5pbmcuCisgICAgICAgIHBjWzddLnUub3BlcmFuZCA9
IDA7CiAgICAgfQogCiAgICAgcGNbT1BDT0RFX0xFTkdUSChvcF9nZXRfYnlfaWQpIC0gMV0udS5w
cm9maWxlLT5tX2J1Y2tldHNbMF0gPSBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKaW5kZXggMjQ5OTU0MjhiNTRj
Y2NlNTQ4NTg5MGE5NjA3ZGM1Zjg0NDFjZTQwNy4uZGEzNjMwNWJlNWM1ZGJiMTE3YWZmYmU0MjY4
OTBjNDgyYjA1NmQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xv
d1BhdGhzLmgKQEAgLTcxLDYgKzcxLDcgQEAgTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF9pbnN0YW5jZW9mKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfaW5zdGFuY2VvZl9jdXN0b20pOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3df
cGF0aF90cnlfZ2V0X2J5X2lkKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfZ2V0X2J5X2lkKTsKK0xMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0
X2J5X2lkX3Byb3RvX2xvYWQpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9nZXRfYXJndW1lbnRzX2xlbmd0aCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xv
d19wYXRoX3B1dF9ieV9pZCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRo
X2RlbF9ieV9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4IDUyZTBiNDUxYmM4MTMyMjA0NDgzZGVk
NzU0MTc5MWQxOTFjNjczMzQuLjk4ZWVhNGZjZmVhZTBmYThmOWUyODg0OWU0ZWNhMTk2NWRkOGY5
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0xMzM0LDEwICsxMzM0LDExIEBAIGVuZAogCiAKICMg
V2Ugb25seSBkbyBtb25vbW9ycGhpYyBnZXRfYnlfaWQgY2FjaGluZyBmb3Igbm93LCBhbmQgd2Ug
ZG8gbm90IG1vZGlmeSB0aGUKLSMgb3Bjb2RlLiBXZSBkbywgaG93ZXZlciwgYWxsb3cgZm9yIHRo
ZSBjYWNoZSB0byBjaGFuZ2UgYW55dGltZSBpZiBmYWlscywgc2luY2UKLSMgcGluZy1wb25naW5n
IGlzIGZyZWUuIEF0IGJlc3Qgd2UgZ2V0IGx1Y2t5IGFuZCB0aGUgZ2V0X2J5X2lkIHdpbGwgY29u
dGludWUKKyMgb3Bjb2RlIGZvciBvd24gcHJvcGVydGllcy4gV2UgYWxzbyBhbGxvdyBmb3IgdGhl
IGNhY2hlIHRvIGNoYW5nZSBhbnl0aW1lIGl0IGZhaWxzLAorIyBzaW5jZSBwaW5nLXBvbmdpbmcg
aXMgZnJlZS4gQXQgYmVzdCB3ZSBnZXQgbHVja3kgYW5kIHRoZSBnZXRfYnlfaWQgd2lsbCBjb250
aW51ZQogIyB0byB0YWtlIGZhc3QgcGF0aCBvbiB0aGUgbmV3IGNhY2hlLiBBdCB3b3JzdCB3ZSB0
YWtlIHNsb3cgcGF0aCwgd2hpY2ggaXMgd2hhdAotIyB3ZSB3b3VsZCBoYXZlIGJlZW4gZG9pbmcg
YW55d2F5LgorIyB3ZSB3b3VsZCBoYXZlIGJlZW4gZG9pbmcgYW55d2F5LiBGb3IgcHJvdG90eXBl
IHByb3BlcnRpZXMsIHdlIHdpbGwgYXR0ZW1wdCB0bworIyBjb252ZXJ0IG9wY29kZSBpbnRvIGEg
Z2V0X2J5X2lkX3Byb3RvX2xvYWQgYWZ0ZXIgYSBleGVjdXRpb24gY291bnRlciBoaXRzIHplcm8u
CiAKIF9sbGludF9vcF9nZXRfYnlfaWQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQpAQCAtMTM1OCw2
ICsxMzU5LDI3IEBAIF9sbGludF9vcF9nZXRfYnlfaWQ6CiAgICAgZGlzcGF0Y2goOSkKIAogCisK
K19sbGludF9vcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgbG9hZGkgOFtQQ10sIHQwCisgICAgbG9hZGkgMTZbUENdLCB0MQorICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGVQYXlsb2FkKHQwLCBDZWxsVGFnLCB0MywgLm9wR2V0QnlJZFByb3RvU2xvdykK
KyAgICBsb2FkaSAyMFtQQ10sIHQyCisgICAgYmluZXEgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3Qz
XSwgdDEsIC5vcEdldEJ5SWRQcm90b1Nsb3cKKyAgICBsb2FkcEZyb21JbnN0cnVjdGlvbig2LCB0
MykKKyAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQyLCB0MywgdDAsIHQxKQorICAg
IGxvYWRpIDRbUENdLCB0MgorICAgIHN0b3JlaSB0MCwgVGFnT2Zmc2V0W2NmciwgdDIsIDhdCisg
ICAgc3RvcmVpIHQxLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDIsIDhdCisgICAgdmFsdWVQcm9maWxl
KHQwLCB0MSwgMzIsIHQyKQorICAgIGRpc3BhdGNoKDkpCisKKy5vcEdldEJ5SWRQcm90b1Nsb3c6
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2J5X2lkKQorICAgIGRpc3Bh
dGNoKDkpCisKKwogX2xsaW50X29wX2dldF9hcnJheV9sZW5ndGg6CiAgICAgdHJhY2VFeGVjdXRp
b24oKQogICAgIGxvYWRpIDhbUENdLCB0MApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCA0NmU1NjE2YmY0MzVlMjM2
MTE2NGQ0NDkzZGMxMjU2YzM4YzM0YzIyLi41MTFiYTc0Njc2MzNkYjg3YjI3ODJjOTlmODMxN2Rl
M2ViMTJjNmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMTIzMiw2ICsxMjMyLDI2IEBAIF9sbGludF9vcF9n
ZXRfYnlfaWQ6CiAgICAgZGlzcGF0Y2goOSkKIAogCitfbGxpbnRfb3BfZ2V0X2J5X2lkX3Byb3Rv
X2xvYWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigy
LCB0MCkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MCwgdDMsIC5vcEdldEJ5SWRQ
cm90b1Nsb3cpCisgICAgbG9hZGkgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QzXSwgdDEKKyAgICBs
b2FkaXNGcm9tSW5zdHJ1Y3Rpb24oNCwgdDIpCisgICAgYmluZXEgdDIsIHQxLCAub3BHZXRCeUlk
UHJvdG9TbG93CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDUsIHQxKQorICAgIGxvYWRwRnJv
bUluc3RydWN0aW9uKDYsIHQzKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKKyAg
ICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MywgdDApCisgICAgc3RvcmVxIHQw
LCBbY2ZyLCB0MiwgOF0KKyAgICB2YWx1ZVByb2ZpbGUodDAsIDgsIHQxKQorICAgIGRpc3BhdGNo
KDkpCisKKy5vcEdldEJ5SWRQcm90b1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfZ2V0X2J5X2lkKQorICAgIGRpc3BhdGNoKDkpCisKKwogX2xsaW50X29wX2dldF9hcnJh
eV9sZW5ndGg6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlv
bigyLCB0MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCBkYWIz
NWQwNzllYjQ3MTYyNDA4ZGE3ZTVmN2M5NTZiZDk4NmZlMGU2Li43N2MxNmIzZGVlODY1ZDcwZjll
YjBhZTE5ZTNmNzZlNGI3ZTQxY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5oCkBAIC0zNjEsNiArMzYxLDggQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJp
bmc7CiAgICAgXAogICAgIHYoYm9vbCwgdXNlSUNTdGF0cywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0
cikgXAogICAgIFwKKyAgICB2KHVuc2lnbmVkLCBwcm90b3R5cGVIaXRDb3VudEZvckxMSW50Q2Fj
aGluZywgMiwgTm9ybWFsLCAiTnVtYmVyIG9mIHByb3RvdHlwZSBwcm9wZXJ0eSBoaXRzIGJlZm9y
ZSBjYWNoaW5nIGEgcHJvdG90eXBlIGluIHRoZSBMTEludC4gQSBjb3VudCBvZiAwIG1lYW5zIG5l
dmVyIGNhY2hlLiIpIFwKKyAgICBcCiAgICAgdihib29sLCBkdW1wTW9kdWxlUmVjb3JkLCBmYWxz
ZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCBkdW1wTW9kdWxlTG9hZGluZ1N0YXRl
LCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCBleHBvc2VJbnRlcm5hbE1v
ZHVsZUxvYWRlciwgZmFsc2UsIE5vcm1hbCwgImV4cG9zZSB0aGUgaW50ZXJuYWwgbW9kdWxlIGxv
YWRlciBvYmplY3QgdG8gdGhlIGdsb2JhbCBzcGFjZSBmb3IgZGVidWdnaW5nIikgXApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9sbGludC1nZXQtYnktaWQt
Y2FjaGUtcHJvdG90eXBlLWxvYWQtZnJvbS1kaWN0aW9uYXJ5LmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9sbGludC1nZXQtYnktaWQtY2FjaGUtcHJvdG90eXBlLWxvYWQt
ZnJvbS1kaWN0aW9uYXJ5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YTI3ZTFhMjMxMTI4Mjg4MWI0MjViMmEy
Nzg3NWNkYzIzYWUwNGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL2xsaW50LWdldC1ieS1pZC1jYWNoZS1wcm90b3R5cGUtbG9hZC1mcm9tLWRp
Y3Rpb25hcnkuanMKQEAgLTAsMCArMSwxOSBAQAorCitleHBlY3RlZCA9IE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmc7Citmb28gPSB7Zm9vOiAxLCBiYXI6IDIwfTsKK2RlbGV0ZSBmb28uYmFyOwor
CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgbGV0IHRvU3RyaW5nID0gZm9vLnRvU3RyaW5nOwor
ICAgIGlmICh0b1N0cmluZyAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigp
OworfQorCitmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKykKKyAgICB0ZXN0KCk7CisKK2Zvby50b1N0
cmluZyA9IDEwMDsKK2V4cGVjdGVkID0gMTAwOworCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9CYWcuaCBiL1NvdXJjZS9XVEYvd3RmL0JhZy5oCmluZGV4IGRiNTExMzI2YjI2
MDU5NzIxNDE3MWM1MzljMTk2YmIxNjQ1OGYxMzMuLjUyMDQwYzUwMzM1NTQ1MjcwMTJhZGE1YjA0
NThiMWU4Mjc3NmRhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0JhZy5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0JhZy5oCkBAIC00OCw5ICs0OCwyMiBAQCBwcml2YXRlOgogICAgIAogcHVi
bGljOgogICAgIEJhZygpCi0gICAgICAgIDogbV9oZWFkKG51bGxwdHIpCiAgICAgewogICAgIH0K
KworICAgIEJhZyhCYWc8VD4mJiBvdGhlcikKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9oZWFk
KTsKKyAgICAgICAgbV9oZWFkID0gb3RoZXIubV9oZWFkOworICAgICAgICBvdGhlci5tX2hlYWQg
PSBudWxscHRyOworICAgIH0KKworICAgIEJhZyYgb3BlcmF0b3I9KEJhZzxUPiYmIG90aGVyKQor
ICAgIHsKKyAgICAgICAgbV9oZWFkID0gb3RoZXIubV9oZWFkOworICAgICAgICBvdGhlci5tX2hl
YWQgPSBudWxscHRyOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQogICAgIAogICAgIH5C
YWcoKQogICAgIHsKQEAgLTEyMSw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gIW1faGVhZDsgfQogICAgIAogcHJpdmF0ZToKLSAgICBOb2RlKiBt
X2hlYWQ7CisgICAgTm9kZSogbV9oZWFkIHsgbnVsbHB0ciB9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279712</attachid>
            <date>2016-05-24 15:32:38 -0700</date>
            <delta_ts>2016-05-24 16:48:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-158032-20160524153348.patch</filename>
            <type>text/plain</type>
            <size>40295</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MTFlOWQ0YjZjOTBjYTAxMDdiMmYzN2U2MDRmYjM4OWY2Y2ViYTFjLi42OGUwYjgxMjllZjRjMmIx
NWM1NzFiODIwNDQyZTMzNTk2NTdiZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NSBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0byBjYWNoZSBwcm90b3R5cGUg
bG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQ
aXpsby4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgcHJvdG90eXBlIHZhbHVlIGNhY2hpbmcg
dG8gdGhlIExMSW50IGZvciBvcF9nZXRfYnlfaWQuCisgICAgICAgIFR3byBwcmV2aW91c2x5IHVu
dXNlZCB3b3JkcyBpbiB0aGUgb3BfZ2V0X2J5X2lkIGJ5dGVjb2RlIGhhdmUgYmVlbgorICAgICAg
ICByZXB1cnBvc2VkIHRvIGhvbGQgZXh0cmEgaW5mb3JtYXRpb24gZm9yIHRoZSBjYWNoZS4gVGhl
IGZpcnN0IGlzIGEKKyAgICAgICAgY291bnRlciB0aGF0IHJlY29yZHMgdGhlIG51bWJlciBvZiBn
ZXRfYnlfaWRzIHRoYXQgaGl0IGEgY2FjaGVhYmxlIHZhbHVlCisgICAgICAgIG9uIGEgcHJvdG90
eXBlLiBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVkIGZyb20gb25lIHRvIHplcm8gd2UK
KyAgICAgICAgYXR0ZW1wdCB0byBjYWNoZSB0aGUgcHJvdG90eXBlIGxvYWQsIHdoaWNoIHdpbGwg
YmUgZGlzY3Vzc2VkIGZ1cnRoZXIKKyAgICAgICAgYmVsb3cuIFRoZSBzZWNvbmQgd29yZCBpcyB1
c2VkIHRvIGhvbGQgdGhlIHByb3RvdHlwZSBvYmplY3Qgd2hlbiB3ZSBoYXZlCisgICAgICAgIHN0
YXJ0ZWQgY2FjaGluZy4KKworICAgICAgICBXaGVuIHRoZSBjb3VudGVyIGlzIGRlY3JlbWVudGVk
IHRvIHplcm8gd2UgZmlyc3QgYXR0ZW1wdCB0byBnZW5lcmF0ZSBhbmQKKyAgICAgICAgd2F0Y2gg
dGhlIHByb3BlcnR5IGNvbmRpdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgdmFsaWRpdHkgb2Yg
cHJvdG90eXBlCisgICAgICAgIGxvYWQuIElmIHRoZSB3YXRjaHBvaW50cyBhcmUgc3VjY2Vzc2Z1
bGx5IGNyZWF0ZWQgYW5kIGluc3RhbGxlZCB3ZQorICAgICAgICByZXBsYWNlIHRoZSBvcF9nZXRf
YnlfaWQgb3Bjb2RlIHdpdGggdGhlIG5ldyBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZAorICAgICAg
ICBvcGNvZGUsIHdoaWNoIHRlbGxzIHRoZSBMTEludCB0byB1c2UgdGhlIGNhY2hlIHByb3RvdHlw
ZSBvYmplY3QgZm9yIHRoZQorICAgICAgICBsb2FkIHJhdGhlciB0aGFuIHRoZSBiYXNlIHZhbHVl
LgorCisgICAgICAgIFByaW9yIHRvIHRoaXMgcGF0Y2ggdGhlcmUgd2FzIG5vdCBMTEludCBzcGVj
aWZpYyBkYXRhIG9uQ29kZUJsb2Nrcy4KKyAgICAgICAgU2luY2UgdGhlIENvZGVCbG9jayBuZWVk
cyB0byBvd24gdGhlIFdhdGNocG9pbnRzIGZvciB0aGUgY2FjaGUsIGEgd2VhaworICAgICAgICBt
YXAgZnJvbSBlYWNoIGJhc2Ugc3RydWN0dXJlIHRvIGEgYmFnIG9mIFdhdGNocG9pbnRzIGNyZWF0
ZWQgZm9yIHRoYXQKKyAgICAgICAgc3RydWN0dXJlIGJ5IHNvbWUgb3BfZ2V0X2J5X2lkIGhhcyBi
ZWVuIGFkZGVkIHRvIHRoZSBDb2RlQmxvY2suIER1cmluZworICAgICAgICBHQywgaWYgd2UgZmlu
ZCB0aGF0IHRoZSBhIHN0cnVjdHVyZSBpbiB0aGUgbWFwIGhhcyBub3QgYmVlbiBtYXJrZWQgd2UK
KyAgICAgICAgZnJlZSB0aGUgYXNzb2NpYXRlZCBiYWcgb24gdGhlIENvZGVCbG9jay4KKworICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6
CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAq
IGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJpbnRH
ZXRCeUlkT3ApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnByaW50R2V0QnlJZENhY2hlU3Rh
dHVzKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMpOgorICAgICAgICAqIGJ5
dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmxsaW50R2V0QnlJ
ZFdhdGNocG9pbnRNYXApOgorICAgICAgICAoSlNDOjpjbGVhckxMSW50R2V0QnlJZENhY2hlKToK
KyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0
QnlJZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludCk6CisgICAgICAgICogYnl0ZWNvZGUvTExJbnRQ
cm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6
TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50KToKKyAgICAgICAg
KEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50OjppbnN0
YWxsKToKKyAgICAgICAgKEpTQzo6TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVX
YXRjaHBvaW50OjpmaXJlSW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL0xMSW50UHJvdG90
eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
eXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5jcHA6CisgICAgICAgIChKU0M6Ok9i
amVjdFByb3BlcnR5Q29uZGl0aW9uU2V0Ojppc1ZhbGlkQW5kV2F0Y2hhYmxlKToKKyAgICAgICAg
KiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oOgorICAgICAgICAqIGJ5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0R2V0QnlJZCk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAg
ICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJp
bGl0eUxldmVsKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpw
cml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGls
ZVNsb3dDYXNlcyk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAg
ICAoSlNDOjpMTEludDo6c2V0dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUpOgorICAgICAgICAoSlND
OjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xv
d1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToK
KyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1
bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9sbGludC1nZXQtYnktaWQt
Y2FjaGUtcHJvdG90eXBlLWxvYWQtZnJvbS1kaWN0aW9uYXJ5LmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorCiAyMDE2LTA1LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpd2VkLCBhZGQgYSBjb21tZW50IHRvIGRlc2NyaWJlIHRoZSB0ZXN0J3Mg
ZmFpbHVyZSBtb2RlLiBTdWdnZXN0ZWQgYnkgbWxhbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2Y4NDI4MjA1ZjhiNzA3NGJi
Yjg0YWM2ODdiOTJlZGYyNDQ5MDk2Ny4uYWM5Y2YyMTg4OWYwOTI1MTlmNTA4MDU2NjkxZTAzZDNh
YWE4OTA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNi0wNS0yNCAgS2VpdGggTWlsbGVyICA8
a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBMTEludCBzaG91bGQgYmUgYWJsZSB0
byBjYWNoZSBwcm90b3R5cGUgbG9hZHMgZm9yIHZhbHVlcyBpbiBHZXRCeUlkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTgwMzIKKworICAgICAgICBS
ZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAgICBBZGQgbW92ZSBjb25zdHJ1Y3RvcnMv
aW5pdGlhbGl6ZXJzIHRvIEJhZ3MuCisKKyAgICAgICAgKiB3dGYvQmFnLmg6CisgICAgICAgIChX
VEY6OkJhZzo6QmFnKToKKyAgICAgICAgKFdURjo6QmFnOjpvcGVyYXRvcj0pOgorCiAyMDE2LTA1
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGF1dG8g
Zm9yIHNvbWUgb2Ygb3VyIGxhbWJkYSBmdW5jdGlvbiBwYXJhbWV0ZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDI5YjJhMDE5MTNiNDFlYmQ1OWIyODU2MWI4MzhjOGYx
OWY1N2MzNy4uMTMxMDhkY2QwYzUzOThiOTIzZGY0YzRiZWIxOGM1YzdkOWNlODgwOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjAyLDYgKzIwMiw3IEBAIHNldChKYXZh
U2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYnl0ZWNvZGUvSW5saW5lQ2FsbEZyYW1lLmNwcAogICAg
IGJ5dGVjb2RlL0lubGluZUNhbGxGcmFtZVNldC5jcHAKICAgICBieXRlY29kZS9KdW1wVGFibGUu
Y3BwCisgICAgYnl0ZWNvZGUvTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRj
aHBvaW50LmNwcAogICAgIGJ5dGVjb2RlL0xhenlPcGVyYW5kVmFsdWVQcm9maWxlLmNwcAogICAg
IGJ5dGVjb2RlL01ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwCiAgICAgYnl0ZWNvZGUv
T2JqZWN0UHJvcGVydHlDb25kaXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDhjODkyNWM2ZDNhNWY4MzhkY2M2MDRjYzE1MjEzMDVlZDE0MjEwYWUuLjNhYThhNzJlN2U2
NTk5Y2ZjZDA3OTM1YjQ0MjM2MDk4Y2ZlZWMyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMTgxLDYgKzExODEsOCBAQAogCQk1MzcwQjRGNjFCRjI2MjA1MDA1QzQwRkMgLyog
QWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM3MEI0RjQxQkYyNUVBMjAwNUM0
MEZDIC8qIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludEJhc2UuaCAqLzsg
fTsKIAkJNTM5MTdFN0IxQjc5MDZGQTAwMEVCRDMzIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MzkxN0U3QTFCNzkwNkU0MDAwRUJEMzMgLyogSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCAqLzsgfTsKIAkJNTNGNkJGNkQxQzNGMDYwQTAwRjQx
RTVEIC8qIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGNkJGNkMxQzNGMDYwQTAwRjQxRTVE
IC8qIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUzRkEyQUUxMUNGMzdGM0YwMDIyNzEx
RCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRkEyQUUwMUNGMzdG
M0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9p
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1
M0ZBMkFFMzFDRjM4MDM5MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1
Y3R1cmVXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUzRkEyQUUyMUNGMzgwMzkwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRB
ZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwICovOyB9OwogCQk1RDVEOEFEMTBFMEQwRUJF
MDBGOUM2OTIgLyogbGliZWRpdC5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVENUQ4QUQwMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5
bGliICovOyB9OwogCQk1REJCMTUxQjEzMUQwQjMxMDA1NkFEMzYgLyogdGVzdGFwaS5qcyBpbiBD
b3B5IFN1cHBvcnQgU2NyaXB0ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
RDg1Nzc0MEE0Njk2QzgwMDMyMTQ2QyAvKiB0ZXN0YXBpLmpzICovOyB9OwogCQk1REJCMTUyNTEz
MUQwQkQ3MDA1NkFEMzYgLyogbWluaWRvbS5qcyBpbiBDb3B5IFN1cHBvcnQgU2NyaXB0ICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MTIxMTBEMEE0ODc4ODcwMDQ4MDI1NSAv
KiBtaW5pZG9tLmpzICovOyB9OwpAQCAtMzMyMSw2ICszMzIzLDggQEAKIAkJNTM5MTdFODMxQjc5
MUNCODAwMEVCRDMzIC8qIFR5cGVkQXJyYXlQcm90b3R5cGUuanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBUeXBlZEFycmF5UHJvdG90eXBlLmpzOyBwYXRoID0gYnVp
bHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qczsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9
OwogCQk1M0YyNTZFMTFCODdFMjgwMDBCNEI3NjggLyogSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlw
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1R5cGVkQXJyYXlW
aWV3UHJvdG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNGNkJGNkMx
QzNGMDYwQTAwRjQxRTVEIC8qIEludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlv
blByb2ZpbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTNGQTJBRTAxQ0YzN0Yz
RjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2lu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMTEludFByb3RvdHlwZUxvYWRB
ZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTNGQTJBRTIxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZl
U3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTNENDNDQ0EwQkJFMDZEODlDNTk3MDcgLyog
TWFwRGF0YUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFwRGF0
YUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ1RDhBRDAwRTBEMEVC
RTAwRjlDNjkyIC8qIGxpYmVkaXQuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYmVk
aXQuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJlZGl0LmR5bGliOyBzb3VyY2VUcmVlID0gIjxh
YnNvbHV0ZT4iOyB9OwogCQk1REFGRDZDQjE0NkI2ODYzMDBGQkVGQjQgLyogSlNDLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54
Y2NvbmZpZzsgcGF0aCA9IEpTQy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTY1NzUsNiArNjU3OSw4IEBACiAJCQkJMEZCNTQ2NzgxNEY1QzQ2ODAwMkMyOTg5IC8qIExh
enlPcGVyYW5kVmFsdWVQcm9maWxlLmNwcCAqLywKIAkJCQkwRkI1NDY3NjE0RjU5QUQxMDAyQzI5
ODkgLyogTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuaCAqLywKIAkJCQkwRjBGQzQ1ODE0QkQxNUYx
MDBCODExNTQgLyogTExJbnRDYWxsTGlua0luZm8uaCAqLywKKwkJCQk1M0ZBMkFFMjFDRjM4MDM5
MDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50
LmNwcCAqLywKKwkJCQk1M0ZBMkFFMDFDRjM3RjNGMDAyMjcxMUQgLyogTExJbnRQcm90b3R5cGVM
b2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmggKi8sCiAJCQkJMEZCNTQ2N0MxNEY1Q0ZE
MzAwMkMyOTg5IC8qIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwICovLAogCQkJCTBG
QjU0NjdBMTRGNUM3RDQwMDJDMjk4OSAvKiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmgg
Ki8sCiAJCQkJMTRDQTk1OEMxNkFCNTBGQTAwOTM4QTA2IC8qIE9iamVjdEFsbG9jYXRpb25Qcm9m
aWxlLmggKi8sCkBAIC03OTEwLDYgKzc5MTYsNyBAQAogCQkJCTBGRjcxNjhDMTVBM0IyMzUwMDhG
NURBQSAvKiBQcm9wZXJ0eU9mZnNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NTUwRTE2
RjVDRDAwQjM0NDYwIC8qIFByb3BlcnR5U2xvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCN0Yz
OUMxNUVEOEU0NjAwRjE2N0IyIC8qIFByb3BlcnR5U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTNGQTJBRTExQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZl
U3RydWN0dXJlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NTYwRTE2RjVD
RDAwQjM0NDYwIC8qIFByb3RlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0NzRDMzNCMTZBQTJE
OTUwMDYyRjAxRCAvKiBQcm90b3R5cGVNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTc4MEEy
MThGRTFFOTgwMDFFNzJEOSAvKiBQdXJlTmFOLmggaW4gSGVhZGVycyAqLywKQEAgLTg2MzUsNiAr
ODY0Miw3IEBACiAJCQkJNjVDMDI4NTAxNzE3OTVFMjAwMzUxRTM1IC8qIEFSTXY3RGlzYXNzZW1i
bGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1QzAyODVDMTcxNzk2NjgwMDM1MUUzNSAvKiBB
Uk12N0RPcGNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4MzM1QjcxNjM5QzFFNjAwMTQ0
M0I1IC8qIEFycmF5QWxsb2NhdGlvblByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTNG
QTJBRTMxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0
dXJlV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0E4QUYzNDE3QURCNUYzMDA1
QUIxNzQgLyogQXJyYXlCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGQzk5RDQxODRF
RTMxODAwOUMxMEFCIC8qIEFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hwb2ludC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBN0E4QUYzNjE3QURCNUYzMDA1QUIxNzQgLyogQXJyYXlCdWZmZXJWaWV3
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5qc29uCmluZGV4IGE4MDY1NmUyNTVkMjUyYTM4MGY4ODVhOWZiYWFhNTAw
Mzg0NzUwYjIuLjIxZmZiMzhiMjQ3NDZlZTQ4NGM4ZjM1NTY3NTFhNTc5M2ZhYWMwNDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KQEAg
LTU4LDExICs1OCwxMiBAQAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaXNfb2JqZWN0X29y
X251bGwiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2lzX2Z1
bmN0aW9uIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9pbiIs
ICJsZW5ndGgiIDogNCB9LAotICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfdHJ5X2dldF9ieV9p
ZCIsICJsZW5ndGgiIDogNCB9LAorICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZ2V0X2FycmF5
X2xlbmd0aCIsICJsZW5ndGgiIDogOSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZ2V0
X2J5X2lkIiwgImxlbmd0aCIgOiA5ICB9LAorICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZ2V0
X2J5X2lkX3Byb3RvX2xvYWQiLCAibGVuZ3RoIiA6IDkgfSwKICAgICAgICAgICAgIHsgIm5hbWUi
IDogIm9wX2dldF9ieV9pZF93aXRoX3RoaXMiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAg
IHsgIm5hbWUiIDogIm9wX2dldF9ieV92YWxfd2l0aF90aGlzIiwgImxlbmd0aCIgOiA1IH0sCi0g
ICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9nZXRfYXJyYXlfbGVuZ3RoIiwgImxlbmd0aCIgOiA5
IH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF90cnlfZ2V0X2J5X2lkIiwgImxlbmd0aCIg
OiA0IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXRfYnlfaWQiLCAibGVuZ3RoIiA6
IDkgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3B1dF9ieV9pZF93aXRoX3RoaXMiLCAi
bGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2RlbF9ieV9pZCIsICJs
ZW5ndGgiIDogNCB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuaAppbmRleCBmZDFmNDRlNGJiMDk0MmIzMTNjYjA3ODM5MjAyNWE3OWE0MTk5MmVh
Li42YTdmNzVlMjkyMWNhZjliOTRmOWM2M2RhOGNlOWQzZDYyNDE4ZGNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaApAQCAtMTU4LDYgKzE1
OCw3IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCgKICAgICBjYXNlIG9wX3Rv
X3ByaW1pdGl2ZToKICAgICBjYXNlIG9wX3RyeV9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRf
YnlfaWQ6CisgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICBjYXNlIG9wX2dl
dF9hcnJheV9sZW5ndGg6CiAgICAgY2FzZSBvcF90eXBlb2Y6CiAgICAgY2FzZSBvcF9pc19lbXB0
eToKQEAgLTM5Miw2ICszOTMsNyBAQCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQo
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjb2RlQmFzaWNCbG9jayogYmxvYwogICAgIGNhc2Ug
b3BfY29uc3RydWN0OgogICAgIGNhc2Ugb3BfdHJ5X2dldF9ieV9pZDoKICAgICBjYXNlIG9wX2dl
dF9ieV9pZDoKKyAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19sb2FkOgogICAgIGNhc2Ugb3Bf
Z2V0X2J5X2lkX3dpdGhfdGhpczoKICAgICBjYXNlIG9wX2dldF9ieV92YWxfd2l0aF90aGlzOgog
ICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggNTQxZjQ1MjdhZDY5OTEyZDVjOTNiZjZlNjgxZmU3
ZjA0MjgwZjk5MC4uMGM2NTMzYzQ1NTlhYTYwMzMwODk3N2M3NDAwNzE2ZGVlYjk0OWE5NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTUwLDYg
KzUwLDcgQEAKICNpbmNsdWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpT
TW9kdWxlRW52aXJvbm1lbnQuaCIKICNpbmNsdWRlICJMTEludEVudHJ5cG9pbnQuaCIKKyNpbmNs
dWRlICJMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCIKICNp
bmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgog
I2luY2x1ZGUgIlBDVG9Db2RlT3JpZ2luTWFwLmgiCkBAIC0zNDUsNiArMzQ2LDkgQEAgdm9pZCBD
b2RlQmxvY2s6OnByaW50R2V0QnlJZE9wKFByaW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhl
YywgaW50IGxvY2F0aW9uLAogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgogICAgICAgICBvcCA9ICJn
ZXRfYnlfaWQiOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90b19s
b2FkOgorICAgICAgICBvcCA9ICJnZXRfYnlfaWRfcHJvdG9fbG9hZCI7CisgICAgICAgIGJyZWFr
OwogICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICAgICAgb3AgPSAiYXJyYXlfbGVu
Z3RoIjsKICAgICAgICAgYnJlYWs7CkBAIC00MDUsNiArNDA5LDggQEAgdm9pZCBDb2RlQmxvY2s6
OnByaW50R2V0QnlJZENhY2hlU3RhdHVzKFByaW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhl
YywgaW50IGwKICAgICAgICAgb3V0LnByaW50ZigiIGxsaW50KCIpOwogICAgICAgICBkdW1wU3Ry
dWN0dXJlKG91dCwgInN0cnVjdCIsIHN0cnVjdHVyZSwgaWRlbnQpOwogICAgICAgICBvdXQucHJp
bnRmKCIpIik7CisgICAgICAgIGlmIChleGVjLT5pbnRlcnByZXRlcigpLT5nZXRPcGNvZGVJRChp
bnN0cnVjdGlvblswXS51Lm9wY29kZSkgPT0gb3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQpCisgICAg
ICAgICAgICBvdXQucHJpbnRmKCIgcHJvdG8oJXApIiwgaW5zdHJ1Y3Rpb25bNl0udS5wb2ludGVy
KTsKICAgICB9CiAKICNpZiBFTkFCTEUoSklUKQpAQCAtMTExMiw2ICsxMTE4LDcgQEAgdm9pZCBD
b2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgorICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF9wcm90
b19sb2FkOgogICAgICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6IHsKICAgICAgICAgICAg
IHByaW50R2V0QnlJZE9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0KTsKICAgICAgICAgICAgIHBy
aW50R2V0QnlJZENhY2hlU3RhdHVzKG91dCwgZXhlYywgbG9jYXRpb24sIHN0dWJJbmZvcyk7CkBA
IC0yNzU0LDE0ICsyNzYxLDE0IEBAIHZvaWQgQ29kZUJsb2NrOjpmaW5hbGl6ZUxMSW50SW5saW5l
Q2FjaGVzKCkKICAgICBmb3IgKHNpemVfdCBzaXplID0gcHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlv
bnMuc2l6ZSgpLCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBJbnN0cnVjdGlvbiog
Y3VySW5zdHJ1Y3Rpb24gPSAmaW5zdHJ1Y3Rpb25zKClbcHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlv
bnNbaV1dOwogICAgICAgICBzd2l0Y2ggKGludGVycHJldGVyLT5nZXRPcGNvZGVJRChjdXJJbnN0
cnVjdGlvblswXS51Lm9wY29kZSkpIHsKLSAgICAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6IHsKKyAg
ICAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Byb3Rv
X2xvYWQ6IHsKICAgICAgICAgICAgIFN0cnVjdHVyZUlEIG9sZFN0cnVjdHVyZUlEID0gY3VySW5z
dHJ1Y3Rpb25bNF0udS5zdHJ1Y3R1cmVJRDsKICAgICAgICAgICAgIGlmICghb2xkU3RydWN0dXJl
SUQgfHwgSGVhcDo6aXNNYXJrZWQobV92bS0+aGVhcC5zdHJ1Y3R1cmVJRFRhYmxlKCkuZ2V0KG9s
ZFN0cnVjdHVyZUlEKSkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBpZiAo
T3B0aW9uczo6dmVyYm9zZU9TUigpKQogICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJDbGVhcmlu
ZyBMTEludCBwcm9wZXJ0eSBhY2Nlc3MuXG4iKTsKLSAgICAgICAgICAgIGN1ckluc3RydWN0aW9u
WzRdLnUuc3RydWN0dXJlSUQgPSAwOwotICAgICAgICAgICAgY3VySW5zdHJ1Y3Rpb25bNV0udS5v
cGVyYW5kID0gMDsKKyAgICAgICAgICAgIGNsZWFyTExJbnRHZXRCeUlkQ2FjaGUoY3VySW5zdHJ1
Y3Rpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9w
dXRfYnlfaWQ6IHsKQEAgLTI4MzUsNiArMjg0MiwxMiBAQCB2b2lkIENvZGVCbG9jazo6ZmluYWxp
emVMTEludElubGluZUNhY2hlcygpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBXZSBjYW4n
dCBqdXN0IHJlbW92ZSBhbGwgdGhlIHNldHMgd2hlbiB3ZSBjbGVhciB0aGUgY2FjaGVzIHNpbmNl
IHdlIG1pZ2h0IGhhdmUgY3JlYXRlZCBhIHdhdGNocG9pbnQgc2V0CisgICAgLy8gdGhlbiBjbGVh
cmVkIHRoZSBjYWNoZSB3aXRob3V0IEdDaW5nIGluIGJldHdlZW4uCisgICAgbV9sbGludEdldEJ5
SWRXYXRjaHBvaW50TWFwLnJlbW92ZUlmKFtdKGNvbnN0IFN0cnVjdHVyZVdhdGNocG9pbnRNYXA6
OktleVZhbHVlUGFpclR5cGUmIHBhaXIpIC0+IGJvb2wgeworICAgICAgICByZXR1cm4gIUhlYXA6
OmlzTWFya2VkKHBhaXIua2V5KTsKKyAgICB9KTsKKwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX2xsaW50Q2FsbExpbmtJbmZvcy5zaXplKCk7ICsraSkgewogICAgICAgICBpZiAobV9s
bGludENhbGxMaW5rSW5mb3NbaV0uaXNMaW5rZWQoKSAmJiAhSGVhcDo6aXNNYXJrZWQobV9sbGlu
dENhbGxMaW5rSW5mb3NbaV0uY2FsbGVlLmdldCgpKSkgewogICAgICAgICAgICAgaWYgKE9wdGlv
bnM6OnZlcmJvc2VPU1IoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suaAppbmRleCBjYmI4Y2Y1NzAxY2NlNzk1YTYyNTJmNGE3ZTdhMDRhNTc0MWIwYjJmLi42NjRl
Y2ZlYjAxN2JjY2E3NmZhNTAxOGJkNDQyMGFjNmIyM2IzZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAi
SlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKdW1wVGFibGUuaCIKICNpbmNsdWRlICJMTElu
dENhbGxMaW5rSW5mby5oIgorI2luY2x1ZGUgIkxMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3Ry
dWN0dXJlV2F0Y2hwb2ludC5oIgogI2luY2x1ZGUgIkxhenlPcGVyYW5kVmFsdWVQcm9maWxlLmgi
CiAjaW5jbHVkZSAiT2JqZWN0QWxsb2NhdGlvblByb2ZpbGUuaCIKICNpbmNsdWRlICJPcHRpb25z
LmgiCkBAIC02NzgsNiArNjc5LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9sbGludEV4
ZWN1dGVDb3VudGVyOwogICAgIH0KIAorICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJ1Y3R1cmUqLCBC
YWc8TExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50Pj4gU3RydWN0
dXJlV2F0Y2hwb2ludE1hcDsKKyAgICBTdHJ1Y3R1cmVXYXRjaHBvaW50TWFwJiBsbGludEdldEJ5
SWRXYXRjaHBvaW50TWFwKCkgeyByZXR1cm4gbV9sbGludEdldEJ5SWRXYXRjaHBvaW50TWFwOyB9
CisKICAgICAvLyBGdW5jdGlvbnMgZm9yIGNvbnRyb2xsaW5nIHdoZW4gdGllcmVkIGNvbXBpbGF0
aW9uIGtpY2tzIGluLiBUaGlzCiAgICAgLy8gY29udHJvbHMgYm90aCB3aGVuIHRoZSBvcHRpbWl6
aW5nIGNvbXBpbGVyIGlzIGludm9rZWQgYW5kIHdoZW4gT1NSCiAgICAgLy8gZW50cnkgaGFwcGVu
cy4gVHdvIHRyaWdnZXJzIGV4aXN0OiB0aGUgbG9vcCB0cmlnZ2VyIGFuZCB0aGUgcmV0dXJuCkBA
IC0xMDE5LDYgKzEwMjMsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmQ291bnRlZEFycmF5PExMSW50
Q2FsbExpbmtJbmZvPiBtX2xsaW50Q2FsbExpbmtJbmZvczsKICAgICBTZW50aW5lbExpbmtlZExp
c3Q8TExJbnRDYWxsTGlua0luZm8sIEJhc2ljUmF3U2VudGluZWxOb2RlPExMSW50Q2FsbExpbmtJ
bmZvPj4gbV9pbmNvbWluZ0xMSW50Q2FsbHM7CisgICAgU3RydWN0dXJlV2F0Y2hwb2ludE1hcCBt
X2xsaW50R2V0QnlJZFdhdGNocG9pbnRNYXA7CiAgICAgUmVmUHRyPEpJVENvZGU+IG1faml0Q29k
ZTsKICNpZiBFTkFCTEUoSklUKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWdpc3RlckF0T2Zmc2V0
TGlzdD4gbV9jYWxsZWVTYXZlUmVnaXN0ZXJzOwpAQCAtMTMwOSw2ICsxMzE0LDE0IEBAIHByaXZh
dGU6CiB9OwogI2VuZGlmCiAKK2lubGluZSB2b2lkIGNsZWFyTExJbnRHZXRCeUlkQ2FjaGUoSW5z
dHJ1Y3Rpb24qIGluc3RydWN0aW9uKQoreworICAgIGluc3RydWN0aW9uWzBdLnUub3Bjb2RlID0g
TExJbnQ6OmdldE9wY29kZShvcF9nZXRfYnlfaWQpOworICAgIGluc3RydWN0aW9uWzRdLnUucG9p
bnRlciA9IG51bGxwdHI7CisgICAgaW5zdHJ1Y3Rpb25bNV0udS5wb2ludGVyID0gbnVsbHB0cjsK
KyAgICBpbnN0cnVjdGlvbls2XS51LnBvaW50ZXIgPSBudWxscHRyOworfQorCiBpbmxpbmUgUmVn
aXN0ZXImIEV4ZWNTdGF0ZTo6cihpbnQgaW5kZXgpCiB7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxv
Y2sgPSB0aGlzLT5jb2RlQmxvY2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9HZXRCeUlkU3RhdHVzLmNwcAppbmRleCBjNjk1MTRjNTdlODkwM2MwMjViMjU3ZmMwMTNi
ZTE3MzJjOTQ1YzBiLi41OWU4MWM3NTFhZmEwN2E0YWRmNTRlMWQ2YjQyZjJhNzRkNWVhNzM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3Bw
CkBAIC03NSw4ICs3NSwxMiBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVG
cm9tTExJbnQoQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZAogICAgIFZNJiB2bSA9
ICpwcm9maWxlZEJsb2NrLT52bSgpOwogICAgIAogICAgIEluc3RydWN0aW9uKiBpbnN0cnVjdGlv
biA9IHByb2ZpbGVkQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkgKyBieXRlY29kZUluZGV4
OwotICAgIAotICAgIGlmIChpbnN0cnVjdGlvblswXS51Lm9wY29kZSA9PSBMTEludDo6Z2V0T3Bj
b2RlKG9wX2dldF9hcnJheV9sZW5ndGgpIHx8IGluc3RydWN0aW9uWzBdLnUub3Bjb2RlID09IExM
SW50OjpnZXRPcGNvZGUob3BfdHJ5X2dldF9ieV9pZCkpCisKKyAgICBPcGNvZGUgb3Bjb2RlID0g
aW5zdHJ1Y3Rpb25bMF0udS5vcGNvZGU7CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG5vdCBq
dXN0IGJhaWwgaWYgd2Ugc2VlIGEgdHJ5X2dldF9ieV9pZCBvciBhIGdldF9ieV9pZF9wcm90b19s
b2FkLg4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4
MDM5CisgICAgaWYgKG9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9hcnJheV9sZW5n
dGgpIHx8IG9wY29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX3RyeV9nZXRfYnlfaWQpIHx8IG9w
Y29kZSA9PSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9wcm90b19sb2FkKSkKICAgICAg
ICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoTm9JbmZvcm1hdGlvbiwgZmFsc2UpOwogCiAgICAgU3Ry
dWN0dXJlSUQgc3RydWN0dXJlSUQgPSBpbnN0cnVjdGlvbls0XS51LnN0cnVjdHVyZUlEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43YWUyYzBkYzYzYTgxZWViOTg2NmZjZDU2MzAwZmVhMjYwYzU0MDJhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50UHJv
dG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAKQEAgLTAsMCArMSw2NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVy
ZVdhdGNocG9pbnQuaCIKKworI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkluc3Ry
dWN0aW9uLmgiCisjaW5jbHVkZSAiU3RydWN0dXJlSW5saW5lcy5oIgorCituYW1lc3BhY2UgSlND
IHsKKworTExJbnRQcm90b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50OjpMTElu
dFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQoY29uc3QgT2JqZWN0UHJv
cGVydHlDb25kaXRpb24mIGtleSwgSW5zdHJ1Y3Rpb24qIGdldEJ5SWRJbnN0cnVjdGlvbikKKyAg
ICA6IG1fa2V5KGtleSkKKyAgICAsIG1fZ2V0QnlJZEluc3RydWN0aW9uKGdldEJ5SWRJbnN0cnVj
dGlvbikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChrZXkud2F0Y2hpbmdSZXF1aXJlc1N0cnVjdHVy
ZVRyYW5zaXRpb25XYXRjaHBvaW50KCkpOworICAgIFJFTEVBU0VfQVNTRVJUKCFrZXkud2F0Y2hp
bmdSZXF1aXJlc1JlcGxhY2VtZW50V2F0Y2hwb2ludCgpKTsKK30KKwordm9pZCBMTEludFByb3Rv
dHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQ6Omluc3RhbGwoKQoreworICAgIFJF
TEVBU0VfQVNTRVJUKG1fa2V5LmlzV2F0Y2hhYmxlKCkpOworCisgICAgbV9rZXkub2JqZWN0KCkt
PnN0cnVjdHVyZSgpLT5hZGRUcmFuc2l0aW9uV2F0Y2hwb2ludCh0aGlzKTsKK30KKwordm9pZCBM
TEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQ6OmZpcmVJbnRlcm5h
bChjb25zdCBGaXJlRGV0YWlsJiBkZXRhaWwpCit7CisgICAgaWYgKG1fa2V5LmlzV2F0Y2hhYmxl
KFByb3BlcnR5Q29uZGl0aW9uOjpFbnN1cmVXYXRjaGFiaWxpdHkpKSB7CisgICAgICAgIGluc3Rh
bGwoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFN0cmluZ1ByaW50U3RyZWFtIG91
dDsKKyAgICBvdXQucHJpbnQoIk9iamVjdFRvU3RyaW5nVmFsdWUgQWRhcHRhdGlvbiBvZiAiLCBt
X2tleSwgIiBmYWlsZWQ6ICIsIGRldGFpbCk7CisKKyAgICBTdHJpbmdGaXJlRGV0YWlsIHN0cmlu
Z0RldGFpbChvdXQudG9DU3RyaW5nKCkuZGF0YSgpKTsKKworICAgIGNsZWFyTExJbnRHZXRCeUlk
Q2FjaGUobV9nZXRCeUlkSW5zdHJ1Y3Rpb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MTEludFByb3RvdHlwZUxv
YWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9MTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yNjE1ZTEwNjAyZmIyOTM3M2NiZTExYWZlZTZmYjBmMmNhY2U5ZjhjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50UHJvdG90
eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIExMSW50
UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludF9oCisjZGVmaW5lIExMSW50
UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludF9oCisKKyNpbmNsdWRlICJJ
bnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIk9iamVjdFByb3BlcnR5Q29uZGl0aW9uLmgiCisjaW5j
bHVkZSAiV2F0Y2hwb2ludC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgTExJbnRQcm90
b3R5cGVMb2FkQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50IDogcHVibGljIFdhdGNocG9pbnQg
eworcHVibGljOgorICAgIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludChjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiYsIEluc3RydWN0aW9uKik7CisKKyAg
ICB2b2lkIGluc3RhbGwoKTsKKworcHJvdGVjdGVkOgorICAgIHZvaWQgZmlyZUludGVybmFsKGNv
bnN0IEZpcmVEZXRhaWwmKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBPYmplY3RQcm9wZXJ0
eUNvbmRpdGlvbiBtX2tleTsKKyAgICBJbnN0cnVjdGlvbiogbV9nZXRCeUlkSW5zdHJ1Y3Rpb247
Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8qIExMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNw
cAppbmRleCBkNTcwMDQwMGY4YjI2M2U1ZmY3NzVlZmVmODhiYTVjYjA5ZGI0MjBiLi4wNTcyM2Fk
ODIyZmY5MWY1YjEyNDZjNGY3YjQ0MWYyMWQ1ZDI5Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNl
dC5jcHAKQEAgLTE2Nyw2ICsxNjcsMTggQEAgdm9pZCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNl
dDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIGR1bXBJbkNvbnRleHQob3V0LCBu
dWxscHRyKTsKIH0KIAorYm9vbCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldDo6aXNWYWxpZEFu
ZFdhdGNoYWJsZSgpIGNvbnN0Cit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGZvciAoT2JqZWN0UHJvcGVydHlDb25kaXRpb24gY29uZGl0aW9uIDog
bV9kYXRhLT52ZWN0b3IpIHsKKyAgICAgICAgaWYgKCFjb25kaXRpb24uaXNXYXRjaGFibGUoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisK
IG5hbWVzcGFjZSB7CiAKIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwpAQCAtMjU0LDkgKzI2NiwxMSBA
QCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBnZW5lcmF0ZUNvbmRpdGlvbnMoCiAgICAgICAg
IC8vIFNpbmNlIHdlJ3JlIGFjY2Vzc2luZyBhIHByb3RvdHlwZSByZXBlYXRlZGx5LCBpdCdzIGEg
Z29vZCBiZXQgdGhhdCBpdCBzaG91bGQgbm90IGJlCiAgICAgICAgIC8vIHRyZWF0ZWQgYXMgYSBk
aWN0aW9uYXJ5LgogICAgICAgICBpZiAoc3RydWN0dXJlLT5pc0RpY3Rpb25hcnkoKSkgewotICAg
ICAgICAgICAgaWYgKGNvbmN1cnJlbmN5ID09IE1haW5UaHJlYWQpCisgICAgICAgICAgICBpZiAo
Y29uY3VycmVuY3kgPT0gTWFpblRocmVhZCkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3Nl
KQorICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJGbGF0dGVuaW5nICIsIHBvaW50ZXJEdW1w
KHN0cnVjdHVyZSkpOwogICAgICAgICAgICAgICAgIHN0cnVjdHVyZS0+ZmxhdHRlbkRpY3Rpb25h
cnlTdHJ1Y3R1cmUodm0sIG9iamVjdCk7Ci0gICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAg
ICAgIGRhdGFMb2coIkNhbm5vdCBmbGF0dGVuIGRpY3Rpb25hcnkgd2hlbiBub3Qgb24gbWFpbiB0
aHJlYWQsIHNvIGludmFsaWQuXG4iKTsKICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0UHJv
cGVydHlDb25kaXRpb25TZXQ6OmludmFsaWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmgKaW5kZXgg
NzZlOGE5Y2RhODAwNmE5YWFmNTFhNmY4NzI3MDA2MmM3YTlkOTEzMi4uMDFjZTFhODQxYzMzMGYy
Y2JlNGJmMjdiOTJmMTRhZGVhMmFjOTBkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmgKQEAgLTY3
LDYgKzY3LDggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuICFtX2RhdGEgfHwgIW1f
ZGF0YS0+dmVjdG9yLmlzRW1wdHkoKTsKICAgICB9CisKKyAgICBib29sIGlzVmFsaWRBbmRXYXRj
aGFibGUoKSBjb25zdDsKICAgICAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdAogICAgIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAKaW5kZXggYjUwMTUxZDFkZDA1YjMzOTRkY2VjZmZiMzJlYjRiZTUwZmUwZWVk
ZS4uNTgwMzY2MTM2NTM4NjE3OTQyNzBiMzRmOTcxMjI5ZDcwNGE4M2NkNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5jcHAKQEAgLTI0MzEsNyArMjQzMSw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0R2V0QnlJZChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIGNvCiAgICAg
aW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKDApOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCgwKTsK
ICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoMCk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KDApOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChPcHRpb25zOjpwcm90b3R5cGVIaXRDb3Vu
dEZvckxMSW50Q2FjaGluZygpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQocHJvZmlsZSk7
CiAgICAgcmV0dXJuIGRzdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKaW5kZXggYWE4MzFjMzUzZmJiMDVkMTJhYzBlOTJkMWZjMWI2NmUz
YTUxOGEzNi4uM2MyODEyMmM4NDJiNWM4OTIzODE0ZmM4MDg4ODc0ZTVmNDE0MDU2MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTQw
ODEsNiArNDA4MSw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQg
bGltaXQpCiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIG9wX2dldF9ieV9pZDoKKyAgICAgICAg
Y2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlf
bGVuZ3RoOiB7CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uID0gZ2V0UHJl
ZGljdGlvbigpOwogICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5jcHAKaW5kZXggMDY2NjlkNDA2OGZlODM0Yjg0YmNhZWI5OGJiYzYwZGE3
YzdlZTI0Yy4uMDYyNDI3Y2I5MzEyN2Y5MTEwNWUzNzY5MGRhNmI1YzI2N2UzZWIzZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTU0LDYg
KzE1NCw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2Rl
SUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0cnVjCiAgICAgY2FzZSBvcF9wdXRfYnlfdmFs
X2RpcmVjdDoKICAgICBjYXNlIG9wX3RyeV9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYnlf
aWQ6CisgICAgY2FzZSBvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZDoKICAgICBjYXNlIG9wX2dldF9i
eV9pZF93aXRoX3RoaXM6CiAgICAgY2FzZSBvcF9nZXRfYnlfdmFsX3dpdGhfdGhpczoKICAgICBj
YXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXgg
YWRhYTg2MDdmNmM0NGFjMDQzMjU5ZWM0N2U1MDdjZTBmYzkzMDY4Ni4uOTJhYWM5OTQ4YjVlMWQx
YTRkMTYzNDg0OTZhYjc2ZDgyNmJhOGI1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApA
QCAtMjQwLDYgKzI0MCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAg
ICAgICAgREVGSU5FX09QKG9wX2VxX251bGwpCiAgICAgICAgIERFRklORV9PUChvcF90cnlfZ2V0
X2J5X2lkKQogICAgICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CisgICAgICAgIGNhc2Ug
b3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQ6CiAgICAgICAgIERFRklORV9PUChvcF9nZXRfYnlfaWQp
CiAgICAgICAgIERFRklORV9PUChvcF9nZXRfYnlfaWRfd2l0aF90aGlzKQogICAgICAgICBERUZJ
TkVfT1Aob3BfZ2V0X2J5X3ZhbCkKQEAgLTQyMiw2ICs0MjMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfZXEpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF90cnlfZ2V0X2J5X2lkKQogICAgICAgICBjYXNl
IG9wX2dldF9hcnJheV9sZW5ndGg6CisgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Byb3RvX2xv
YWQ6CiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9nZXRfYnlfaWQpCiAgICAgICAgIERF
RklORV9TTE9XQ0FTRV9PUChvcF9nZXRfYnlfdmFsKQogICAgICAgICBERUZJTkVfU0xPV0NBU0Vf
T1Aob3BfaW5zdGFuY2VvZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRT
bG93UGF0aHMuY3BwCmluZGV4IGZhODgzNzRjZTYxNWVjMWFhMDlmZTdhMzIwNzFhMjFiOTIxMjkw
MDcuLmExMDM1ODgzZDE0YmI1ZjIwNTNhNDQ2ZGZhNjRlZjUyODMwY2M5YWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtNTIsNiArNTIs
NyBAQAogI2luY2x1ZGUgIkxMSW50RXhjZXB0aW9ucy5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50
ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIk9i
amVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmgiCiAjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIK
ICNpbmNsdWRlICJTaGFkb3dDaGlja2VuLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlUmFyZURhdGFJ
bmxpbmVzLmgiCkBAIC01ODAsNiArNTgxLDQzIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF90cnlfZ2V0X2J5X2lkKQogICAgIExMSU5UX1JFVFVSTihzbG90LmdldFB1cmVSZXN1bHQo
KSk7CiB9CiAKK3N0YXRpYyB2b2lkIHNldHVwR2V0QnlJZFByb3RvdHlwZUNhY2hlKEV4ZWNTdGF0
ZSogZXhlYywgVk0mIHZtLCBJbnN0cnVjdGlvbiogcGMsIEpTQ2VsbCogYmFzZUNlbGwsIFByb3Bl
cnR5U2xvdCYgc2xvdCwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCit7CisgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSA9IGJhc2VDZWxsLT5zdHJ1Y3R1cmUoKTsKKworICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZv
KCkucHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkgfHwgc3RydWN0dXJlLT5pc0RpY3Rpb25hcnko
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQgY29u
ZGl0aW9ucyA9IGdlbmVyYXRlQ29uZGl0aW9uc0ZvclByb3RvdHlwZVByb3BlcnR5SGl0KHZtLCBj
b2RlQmxvY2ssIGV4ZWMsIHN0cnVjdHVyZSwgc2xvdC5zbG90QmFzZSgpLCBpZGVudC5pbXBsKCkp
OworCisgICAgaWYgKCFjb25kaXRpb25zLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gaW52YWxpZE9mZnNldDsKKyAgICBDb2RlQmxvY2s6
OlN0cnVjdHVyZVdhdGNocG9pbnRNYXAmIHdhdGNocG9pbnRNYXAgPSBjb2RlQmxvY2stPmxsaW50
R2V0QnlJZFdhdGNocG9pbnRNYXAoKTsKKyAgICBhdXRvIHJlc3VsdCA9IHdhdGNocG9pbnRNYXAu
YWRkKHN0cnVjdHVyZSwgQmFnPExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0
Y2hwb2ludD4oKSk7CisgICAgZm9yIChPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBjb25kaXRpb24g
OiBjb25kaXRpb25zKSB7CisgICAgICAgIGlmICghY29uZGl0aW9uLmlzV2F0Y2hhYmxlKCkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChjb25kaXRpb24uY29uZGl0aW9uKCkua2lu
ZCgpID09IFByb3BlcnR5Q29uZGl0aW9uOjpQcmVzZW5jZSkKKyAgICAgICAgICAgIG9mZnNldCA9
IGNvbmRpdGlvbi5jb25kaXRpb24oKS5vZmZzZXQoKTsKKyAgICAgICAgcmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZS5hZGQoY29uZGl0aW9uLCBwYyktPmluc3RhbGwoKTsKKyAgICB9CisgICAgQVNTRVJU
KG9mZnNldCAhPSBpbnZhbGlkT2Zmc2V0KTsKKworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9j
a2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKKworICAgIHBjWzBdLnUub3Bjb2RlID0gTExJbnQ6Omdl
dE9wY29kZShvcF9nZXRfYnlfaWRfcHJvdG9fbG9hZCk7CisgICAgcGNbNF0udS5zdHJ1Y3R1cmVJ
RCA9IHN0cnVjdHVyZS0+aWQoKTsKKyAgICBwY1s1XS51Lm9wZXJhbmQgPSBvZmZzZXQ7CisgICAg
Ly8gV2Uga25vdyB0aGF0IHRoaXMgcG9pbnRlciB3aWxsIHJlbWFpbiB2YWxpZCBiZWNhdXNlIGl0
IGlzIHRoZSBwcm90b3R5cGUgb2Ygc29tZSBzdHJ1Y3R1cmUsIHMsCisgICAgLy8gd2F0Y2hwb2lu
dGVkIGFib3ZlLiBJZiBhbnkgb2JqZWN0IHdpdGggc3RydWN0dXJlIHMgd2VyZSB0byBjaGFuZ2Ug
cHJvdG90eXBlcyB0aGVuIHRoZSBjb25kaXRpb25zCisgICAgLy8gZm9yIHRoaXMgY2FjaGUgd291
bGQgZmFpbCBhbmQgdGhpcyB2YWx1ZSB3aWxsIG5ldmVyIGJlIHVzZWQgYWdhaW4uCisgICAgcGNb
Nl0udS5wb2ludGVyID0gc2xvdC5zbG90QmFzZSgpOworfQorCisKIExMSU5UX1NMT1dfUEFUSF9E
RUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKQEAgLTU5NCwz
NyArNjMyLDQzIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpCiAg
ICAgCiAgICAgaWYgKCFMTElOVF9BTFdBWVNfQUNDRVNTX1NMT1cKICAgICAgICAgJiYgYmFzZVZh
bHVlLmlzQ2VsbCgpCi0gICAgICAgICYmIHNsb3QuaXNDYWNoZWFibGUoKQotICAgICAgICAmJiBz
bG90LnNsb3RCYXNlKCkgPT0gYmFzZVZhbHVlCiAgICAgICAgICYmIHNsb3QuaXNDYWNoZWFibGVW
YWx1ZSgpKSB7Ci0gICAgICAgIAorCiAgICAgICAgIEpTQ2VsbCogYmFzZUNlbGwgPSBiYXNlVmFs
dWUuYXNDZWxsKCk7CiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gYmFzZUNlbGwtPnN0
cnVjdHVyZSgpOworICAgICAgICBpZiAoc2xvdC5zbG90QmFzZSgpID09IGJhc2VWYWx1ZSkgewor
ICAgICAgICAgICAgLy8gU3RhcnQgb3V0IGJ5IGNsZWFyaW5nIG91dCB0aGUgb2xkIGNhY2hlLgor
ICAgICAgICAgICAgcGNbMF0udS5vcGNvZGUgPSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9ieV9p
ZCk7CisgICAgICAgICAgICBwY1s0XS51LnBvaW50ZXIgPSBudWxscHRyOyAvLyBvbGQgc3RydWN0
dXJlCisgICAgICAgICAgICBwY1s1XS51LnBvaW50ZXIgPSBudWxscHRyOyAvLyBvZmZzZXQKKwor
ICAgICAgICAgICAgLy8gUHJldmVudCB0aGUgcHJvdG90eXBlIGNhY2hlIGZyb20gZXZlciBoYXBw
ZW5pbmcuCisgICAgICAgICAgICBwY1s3XS51Lm9wZXJhbmQgPSAwOwogICAgICAgICAKLSAgICAg
ICAgLy8gU3RhcnQgb3V0IGJ5IGNsZWFyaW5nIG91dCB0aGUgb2xkIGNhY2hlLgotICAgICAgICBw
Y1swXS51Lm9wY29kZSA9IExMSW50OjpnZXRPcGNvZGUob3BfZ2V0X2J5X2lkKTsKLSAgICAgICAg
cGNbNF0udS5wb2ludGVyID0gbnVsbHB0cjsgLy8gb2xkIHN0cnVjdHVyZQotICAgICAgICBwY1s1
XS51LnBvaW50ZXIgPSBudWxscHRyOyAvLyBvZmZzZXQKLSAgICAgICAgCi0gICAgICAgIGlmICgh
c3RydWN0dXJlLT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgpCi0gICAgICAgICAgICAmJiAhc3Ry
dWN0dXJlLT50eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygpCi0gICAgICAgICAg
ICAmJiAhc3RydWN0dXJlLT50eXBlSW5mbygpLm5ld0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBv
aW50cygpKSB7Ci0gICAgICAgICAgICB2bS5oZWFwLndyaXRlQmFycmllcihjb2RlQmxvY2spOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2Rl
QmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICBpZiAoc3RydWN0dXJlLT5wcm9wZXJ0eUFjY2Vz
c2VzQXJlQ2FjaGVhYmxlKCkpIHsKKyAgICAgICAgICAgICAgICB2bS5oZWFwLndyaXRlQmFycmll
cihjb2RlQmxvY2spOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIENvbmN1cnJl
bnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKIAotICAgICAgICAgICAgcGNb
NF0udS5zdHJ1Y3R1cmVJRCA9IHN0cnVjdHVyZS0+aWQoKTsKLSAgICAgICAgICAgIHBjWzVdLnUu
b3BlcmFuZCA9IHNsb3QuY2FjaGVkT2Zmc2V0KCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgICAg
ICAgICAgICAgcGNbNF0udS5zdHJ1Y3R1cmVJRCA9IHN0cnVjdHVyZS0+aWQoKTsKKyAgICAgICAg
ICAgICAgICBwY1s1XS51Lm9wZXJhbmQgPSBzbG90LmNhY2hlZE9mZnNldCgpOworICAgICAgICAg
ICAgfQorICAgICAgICB9IGVsc2UgaWYgKFVOTElLRUxZKHBjWzddLnUub3BlcmFuZCkpIHsKKyAg
ICAgICAgICAgIEFTU0VSVChzbG90LnNsb3RCYXNlKCkgIT0gYmFzZVZhbHVlKTsKIAotICAgIGlm
ICghTExJTlRfQUxXQVlTX0FDQ0VTU19TTE9XCisgICAgICAgICAgICBpZiAoISgtLXBjWzddLnUu
b3BlcmFuZCkpCisgICAgICAgICAgICAgICAgc2V0dXBHZXRCeUlkUHJvdG90eXBlQ2FjaGUoZXhl
Yywgdm0sIHBjLCBiYXNlQ2VsbCwgc2xvdCwgaWRlbnQpOworICAgICAgICB9CisgICAgfSBlbHNl
IGlmICghTExJTlRfQUxXQVlTX0FDQ0VTU19TTE9XCiAgICAgICAgICYmIGlzSlNBcnJheShiYXNl
VmFsdWUpCiAgICAgICAgICYmIGlkZW50ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgp
IHsKICAgICAgICAgcGNbMF0udS5vcGNvZGUgPSBMTEludDo6Z2V0T3Bjb2RlKG9wX2dldF9hcnJh
eV9sZW5ndGgpOwogICAgICAgICBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSA9IGNvZGVCbG9j
ay0+Z2V0T3JBZGRBcnJheVByb2ZpbGUocGMgLSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJl
Z2luKCkpOwogICAgICAgICBhcnJheVByb2ZpbGUtPm9ic2VydmVTdHJ1Y3R1cmUoYmFzZVZhbHVl
LmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKSk7CiAgICAgICAgIHBjWzRdLnUuYXJyYXlQcm9maWxlID0g
YXJyYXlQcm9maWxlOworCisgICAgICAgIC8vIFByZXZlbnQgdGhlIHByb3RvdHlwZSBjYWNoZSBm
cm9tIGV2ZXIgaGFwcGVuaW5nLgorICAgICAgICBwY1s3XS51Lm9wZXJhbmQgPSAwOwogICAgIH0K
IAogICAgIHBjW09QQ09ERV9MRU5HVEgob3BfZ2V0X2J5X2lkKSAtIDFdLnUucHJvZmlsZS0+bV9i
dWNrZXRzWzBdID0gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCmluZGV4IDI0OTk1NDI4YjU0Y2NjZTU0ODU4OTBh
OTYwN2RjNWY4NDQxY2U0MDcuLmRhMzYzMDViZTVjNWRiYjExN2FmZmJlNDI2ODkwYzQ4MmIwNTZk
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRo
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCkBA
IC03MSw2ICs3MSw3IEBAIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaW5z
dGFuY2VvZik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2luc3RhbmNl
b2ZfY3VzdG9tKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdHJ5X2dl
dF9ieV9pZCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9ieV9p
ZCk7CitMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9ieV9pZF9wcm90
b19sb2FkKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2FyZ3Vt
ZW50c19sZW5ndGgpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wdXRf
YnlfaWQpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9kZWxfYnlfaWQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjMyXzY0LmFzbQppbmRleCA1MmUwYjQ1MWJjODEzMjIwNDQ4M2RlZDc1NDE3OTFkMTkx
YzY3MzM0Li45OGVlYTRmY2ZlYWUwZmE4ZjllMjg4NDllNGVjYTE5NjVkZDhmOWNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbQpAQCAtMTMzNCwxMCArMTMzNCwxMSBAQCBlbmQKIAogCiAjIFdlIG9ubHkgZG8g
bW9ub21vcnBoaWMgZ2V0X2J5X2lkIGNhY2hpbmcgZm9yIG5vdywgYW5kIHdlIGRvIG5vdCBtb2Rp
ZnkgdGhlCi0jIG9wY29kZS4gV2UgZG8sIGhvd2V2ZXIsIGFsbG93IGZvciB0aGUgY2FjaGUgdG8g
Y2hhbmdlIGFueXRpbWUgaWYgZmFpbHMsIHNpbmNlCi0jIHBpbmctcG9uZ2luZyBpcyBmcmVlLiBB
dCBiZXN0IHdlIGdldCBsdWNreSBhbmQgdGhlIGdldF9ieV9pZCB3aWxsIGNvbnRpbnVlCisjIG9w
Y29kZSBmb3Igb3duIHByb3BlcnRpZXMuIFdlIGFsc28gYWxsb3cgZm9yIHRoZSBjYWNoZSB0byBj
aGFuZ2UgYW55dGltZSBpdCBmYWlscywKKyMgc2luY2UgcGluZy1wb25naW5nIGlzIGZyZWUuIEF0
IGJlc3Qgd2UgZ2V0IGx1Y2t5IGFuZCB0aGUgZ2V0X2J5X2lkIHdpbGwgY29udGludWUKICMgdG8g
dGFrZSBmYXN0IHBhdGggb24gdGhlIG5ldyBjYWNoZS4gQXQgd29yc3Qgd2UgdGFrZSBzbG93IHBh
dGgsIHdoaWNoIGlzIHdoYXQKLSMgd2Ugd291bGQgaGF2ZSBiZWVuIGRvaW5nIGFueXdheS4KKyMg
d2Ugd291bGQgaGF2ZSBiZWVuIGRvaW5nIGFueXdheS4gRm9yIHByb3RvdHlwZSBwcm9wZXJ0aWVz
LCB3ZSB3aWxsIGF0dGVtcHQgdG8KKyMgY29udmVydCBvcGNvZGUgaW50byBhIGdldF9ieV9pZF9w
cm90b19sb2FkIGFmdGVyIGEgZXhlY3V0aW9uIGNvdW50ZXIgaGl0cyB6ZXJvLgogCiBfbGxpbnRf
b3BfZ2V0X2J5X2lkOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKQEAgLTEzNTgsNiArMTM1OSwyNyBA
QCBfbGxpbnRfb3BfZ2V0X2J5X2lkOgogICAgIGRpc3BhdGNoKDkpCiAKIAorCitfbGxpbnRfb3Bf
Z2V0X2J5X2lkX3Byb3RvX2xvYWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhb
UENdLCB0MAorICAgIGxvYWRpIDE2W1BDXSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
UGF5bG9hZCh0MCwgQ2VsbFRhZywgdDMsIC5vcEdldEJ5SWRQcm90b1Nsb3cpCisgICAgbG9hZGkg
MjBbUENdLCB0MgorICAgIGJpbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxLCAub3BH
ZXRCeUlkUHJvdG9TbG93CisgICAgbG9hZHBGcm9tSW5zdHJ1Y3Rpb24oNiwgdDMpCisgICAgbG9h
ZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MiwgdDMsIHQwLCB0MSkKKyAgICBsb2FkaSA0W1BD
XSwgdDIKKyAgICBzdG9yZWkgdDAsIFRhZ09mZnNldFtjZnIsIHQyLCA4XQorICAgIHN0b3JlaSB0
MSwgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XQorICAgIHZhbHVlUHJvZmlsZSh0MCwgdDEsIDMy
LCB0MikKKyAgICBkaXNwYXRjaCg5KQorCisub3BHZXRCeUlkUHJvdG9TbG93OgorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9pZCkKKyAgICBkaXNwYXRjaCg5KQorCisK
IF9sbGludF9vcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBs
b2FkaSA4W1BDXSwgdDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggNDZlNTYxNmJmNDM1ZTIzNjExNjRkNDQ5M2Rj
MTI1NmMzOGMzNGMyMi4uNTExYmE3NDY3NjMzZGI4N2IyNzgyYzk5ZjgzMTdkZTNlYjEyYzZmZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXI2NC5hc20KQEAgLTEyMzIsNiArMTIzMiwyNiBAQCBfbGxpbnRfb3BfZ2V0X2J5X2lkOgog
ICAgIGRpc3BhdGNoKDkpCiAKIAorX2xsaW50X29wX2dldF9ieV9pZF9wcm90b19sb2FkOgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDApCisgICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDAsIHQzLCAub3BHZXRCeUlkUHJvdG9TbG93KQor
ICAgIGxvYWRpIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxCisgICAgbG9hZGlzRnJvbUlu
c3RydWN0aW9uKDQsIHQyKQorICAgIGJpbmVxIHQyLCB0MSwgLm9wR2V0QnlJZFByb3RvU2xvdwor
ICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbig1LCB0MSkKKyAgICBsb2FkcEZyb21JbnN0cnVjdGlv
big2LCB0MykKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCisgICAgbG9hZFByb3Bl
cnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDMsIHQwKQorICAgIHN0b3JlcSB0MCwgW2NmciwgdDIs
IDhdCisgICAgdmFsdWVQcm9maWxlKHQwLCA4LCB0MSkKKyAgICBkaXNwYXRjaCg5KQorCisub3BH
ZXRCeUlkUHJvdG9TbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9i
eV9pZCkKKyAgICBkaXNwYXRjaCg5KQorCisKIF9sbGludF9vcF9nZXRfYXJyYXlfbGVuZ3RoOgog
ICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDApCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggZGFiMzVkMDc5ZWI0NzE2
MjQwOGRhN2U1ZjdjOTU2YmQ5ODZmZTBlNi4uNzdjMTZiM2RlZTg2NWQ3MGY5ZWIwYWUxOWUzZjc2
ZTRiN2U0MWNlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAt
MzYxLDYgKzM2MSw4IEBAIHR5cGVkZWYgY29uc3QgY2hhciogb3B0aW9uU3RyaW5nOwogICAgIFwK
ICAgICB2KGJvb2wsIHVzZUlDU3RhdHMsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBc
CisgICAgdih1bnNpZ25lZCwgcHJvdG90eXBlSGl0Q291bnRGb3JMTEludENhY2hpbmcsIDIsIE5v
cm1hbCwgIk51bWJlciBvZiBwcm90b3R5cGUgcHJvcGVydHkgaGl0cyBiZWZvcmUgY2FjaGluZyBh
IHByb3RvdHlwZSBpbiB0aGUgTExJbnQuIEEgY291bnQgb2YgMCBtZWFucyBuZXZlciBjYWNoZS4i
KSBcCisgICAgXAogICAgIHYoYm9vbCwgZHVtcE1vZHVsZVJlY29yZCwgZmFsc2UsIE5vcm1hbCwg
bnVsbHB0cikgXAogICAgIHYoYm9vbCwgZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSwgZmFsc2UsIE5v
cm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgZXhwb3NlSW50ZXJuYWxNb2R1bGVMb2FkZXIs
IGZhbHNlLCBOb3JtYWwsICJleHBvc2UgdGhlIGludGVybmFsIG1vZHVsZSBsb2FkZXIgb2JqZWN0
IHRvIHRoZSBnbG9iYWwgc3BhY2UgZm9yIGRlYnVnZ2luZyIpIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbGxpbnQtZ2V0LWJ5LWlkLWNhY2hlLXByb3Rv
dHlwZS1sb2FkLWZyb20tZGljdGlvbmFyeS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvbGxpbnQtZ2V0LWJ5LWlkLWNhY2hlLXByb3RvdHlwZS1sb2FkLWZyb20tZGljdGlv
bmFyeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NGEyN2UxYTIzMTEyODI4ODFiNDI1YjJhMjc4NzVjZGMyM2Fl
MDRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9sbGludC1nZXQtYnktaWQtY2FjaGUtcHJvdG90eXBlLWxvYWQtZnJvbS1kaWN0aW9uYXJ5Lmpz
CkBAIC0wLDAgKzEsMTkgQEAKKworZXhwZWN0ZWQgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5n
OworZm9vID0ge2ZvbzogMSwgYmFyOiAyMH07CitkZWxldGUgZm9vLmJhcjsKKworCitmdW5jdGlv
biB0ZXN0KCkgeworICAgIGxldCB0b1N0cmluZyA9IGZvby50b1N0cmluZzsKKyAgICBpZiAodG9T
dHJpbmcgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTsKK30KKworZm9y
IChpID0gMDsgaSA8IDEwOyBpKyspCisgICAgdGVzdCgpOworCitmb28udG9TdHJpbmcgPSAxMDA7
CitleHBlY3RlZCA9IDEwMDsKKwordGVzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
QmFnLmggYi9Tb3VyY2UvV1RGL3d0Zi9CYWcuaAppbmRleCBkYjUxMTMyNmIyNjA1OTcyMTQxNzFj
NTM5YzE5NmJiMTY0NThmMTMzLi41MjA0MGM1MDMzNTU0NTI3MDEyYWRhNWIwNDU4YjFlODI3NzZk
YTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CYWcuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9CYWcuaApAQCAtNDgsOSArNDgsMjIgQEAgcHJpdmF0ZToKICAgICAKIHB1YmxpYzoKICAgICBC
YWcoKQotICAgICAgICA6IG1faGVhZChudWxscHRyKQogICAgIHsKICAgICB9CisKKyAgICBCYWco
QmFnPFQ+JiYgb3RoZXIpCisgICAgeworICAgICAgICBBU1NFUlQoIW1faGVhZCk7CisgICAgICAg
IG1faGVhZCA9IG90aGVyLm1faGVhZDsKKyAgICAgICAgb3RoZXIubV9oZWFkID0gbnVsbHB0cjsK
KyAgICB9CisKKyAgICBCYWcmIG9wZXJhdG9yPShCYWc8VD4mJiBvdGhlcikKKyAgICB7CisgICAg
ICAgIG1faGVhZCA9IG90aGVyLm1faGVhZDsKKyAgICAgICAgb3RoZXIubV9oZWFkID0gbnVsbHB0
cjsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KICAgICAKICAgICB+QmFnKCkKICAgICB7
CkBAIC0xMjEsNyArMTM0LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsg
cmV0dXJuICFtX2hlYWQ7IH0KICAgICAKIHByaXZhdGU6Ci0gICAgTm9kZSogbV9oZWFkOworICAg
IE5vZGUqIG1faGVhZCB7IG51bGxwdHIgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>