<?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>162326</bug_id>
          
          <creation_ts>2016-09-20 16:52:15 -0700</creation_ts>
          <short_desc>PlatformEvent::m_modifiers should be an OptionSet</short_desc>
          <delta_ts>2017-04-25 16:37:55 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>koivisto</cc>
    
    <cc>manian</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1231908</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-20 16:52:15 -0700</bug_when>
    <thetext>PlatformEvent::m_modifiers should be an OptionSet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231909</commentid>
    <comment_count>1</comment_count>
      <attachid>289410</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-20 16:54:18 -0700</bug_when>
    <thetext>Created attachment 289410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232582</commentid>
    <comment_count>2</comment_count>
      <attachid>289590</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-22 13:27:11 -0700</bug_when>
    <thetext>Created attachment 289590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232594</commentid>
    <comment_count>3</comment_count>
      <attachid>289593</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-22 14:01:12 -0700</bug_when>
    <thetext>Created attachment 289593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232614</commentid>
    <comment_count>4</comment_count>
      <attachid>289593</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-09-22 14:22:28 -0700</bug_when>
    <thetext>Comment on attachment 289593
Patch

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

&gt; Source/WTF/wtf/OptionSet.h:116
&gt; +    constexpr friend bool operator!=(OptionSet lhs, OptionSet rhs)
&gt; +    {
&gt; +        return lhs.m_storage != rhs.m_storage;
&gt; +    }
&gt; +

Although the implementation of this function is trivial, I suggest that we add a test for it to file Tools/TestWebKitAPI/Tests/WTF/OptionSet.cpp.

&gt; Source/WTF/wtf/OptionSet.h:128
&gt; +    constexpr friend OptionSet operator-(OptionSet lhs, OptionSet rhs)
&gt; +    {
&gt; +        return OptionSet::fromRaw(lhs.m_storage &amp; ~rhs.m_storage);
&gt; +    }
&gt; +

Ditto.

&gt; Source/WebCore/page/EventHandler.cpp:2974
&gt; +    ASSERT(!(accessKeyModifiers().contains(PlatformEvent::Modifier::ShiftKey)));

The inner parentheses are not needed. I suggest that we remove them.

&gt; Source/WebKit2/Shared/WebEventConversion.cpp:316
&gt; +            m_modifiers |= PlatformEvent::Modifier::ShiftKey;

Can we remove PlatformEvent::?

&gt; Source/WebKit2/Shared/WebEventConversion.cpp:318
&gt; +            m_modifiers |= PlatformEvent::Modifier::CtrlKey;

Ditto.

&gt; Source/WebKit2/Shared/WebEventConversion.cpp:320
&gt; +            m_modifiers |= PlatformEvent::Modifier::AltKey;

Ditto.

&gt; Source/WebKit2/Shared/WebEventConversion.cpp:322
&gt; +            m_modifiers |= PlatformEvent::Modifier::MetaKey;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234011</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-27 12:10:56 -0700</bug_when>
    <thetext>Committed r206450: &lt;http://trac.webkit.org/changeset/206450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299650</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-04-21 09:45:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/31759503&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301317</commentid>
    <comment_count>7</comment_count>
      <attachid>289593</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-25 16:37:55 -0700</bug_when>
    <thetext>Comment on attachment 289593
Patch

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

&gt; Source/WebKit2/Shared/WebEventConversion.cpp:-117
&gt; -        m_modifierFlags = 0;
&gt; -        if (webEvent.shiftKey())
&gt; -            m_modifierFlags |= WebEvent::ShiftKey;
&gt; -        if (webEvent.controlKey())
&gt; -            m_modifierFlags |= WebEvent::ControlKey;
&gt; -        if (webEvent.altKey())
&gt; -            m_modifierFlags |= WebEvent::AltKey;
&gt; -        if (webEvent.metaKey())
&gt; -            m_modifierFlags |= WebEvent::MetaKey;

Removing this with no replacement was a regression fixed in https://bugs.webkit.org/show_bug.cgi?id=171297</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289410</attachid>
            <date>2016-09-20 16:54:18 -0700</date>
            <delta_ts>2016-09-22 13:27:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162326-20160920165131.patch</filename>
            <type>text/plain</type>
            <size>19554</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZjNTI4ZGUzYTdhOTUzNDY4ZGE3NjI0
N2ExNDRlOTNiOWZjOGZiYmYuLmU2YmI1YTQ0NWY0NDlkMmEzYmYyMjA4MjM1NWRiZDYwOTMwNzUz
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDktMjAgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBQbGF0Zm9ybUV2ZW50OjptX21vZGlmaWVycyBz
aG91bGQgYmUgYW4gT3B0aW9uU2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjIzMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHd0Zi9PcHRpb25TZXQuaDoKKyAgICAgICAgKFdURjo6T3B0aW9uU2V0
OjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdURjo6T3B0aW9uU2V0OjpvcGVyYXRvci0pOgorCiAy
MDE2LTA5LTIwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTWFr
ZSBNYXJrZWRCbG9jayBzdGF0ZSB0cmFja2luZyBzdXBwb3J0IG92ZXJsYXBwZWQgYWxsb2NhdGlv
biBhbmQgbWFya2luZyBzdGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJlMTg2YjQyNDczM2NkMzFiNzMzNzg0
ZTlkMWVjMjQ3N2E0OWZkMDIuLjUzMzkzYmIwNjBmODFlYzQ5OGEzM2ZiZDk2MmEyMGU4NTNjZTkx
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNCBAQAogMjAxNi0wOS0yMCAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAgICAgIFBsYXRmb3JtRXZlbnQ6Om1fbW9k
aWZpZXJzIHNob3VsZCBiZSBhbiBPcHRpb25TZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjMyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVBY2Nlc3NLZXkpOgorICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmg6CisgICAgICAgICogcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjphY2Nlc3NLZXlNb2RpZmllcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtRXZlbnQ6OnNoaWZ0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OmN0
cmxLZXkpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6YWx0S2V5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Om1ldGFLZXkpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1FdmVudDo6bW9kaWZpZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZl
bnQ6OlBsYXRmb3JtRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9y
bUtleWJvYXJkRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1vZGlmaWVyc0ZvckV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OnR5cGVGb3JFdmVudCk6CisgICAgICAgICogcmVwbGF5L1NlcmlhbGl6YXRp
b25NZXRob2RzLmNwcDoKKyAgICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1LZXli
b2FyZEV2ZW50Pjo6ZW5jb2RlVmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ+OjpkZWNvZGVWYWx1ZSk6CisgICAgICAgICogcmVwbGF5L1dl
YklucHV0cy5qc29uOgorCisyMDE2LTA5LTIwICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CisKICAgICAgICAgUmVtb3ZlICJpbi1zdG9yZSIgZnJvbSAiLWFwcGxlLXBheS1i
dXR0b24tdHlwZSIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MjMyMQogICAgICAgICByZGFyOi8vcHJvYmxlbS8yODM5NDU4MQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDA3MjEzMjZhYTc1ZjZmM2MwZjhhZDAwNTU5ZTJmZjNhZTBhYTNmZmEuLmI5YjNlOWNiMzJhMTFj
Y2ZjODYxNDcwMTdmN2JhZTkzYTAyODk1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOCBAQAog
MjAxNi0wOS0yMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCisgICAg
ICAgIFBsYXRmb3JtRXZlbnQ6Om1fbW9kaWZpZXJzIHNob3VsZCBiZSBhbiBPcHRpb25TZXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjMyNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dl
YkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0Zm9ybU1v
dXNlRXZlbnQ6OldlYktpdDJQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJLaXQyUGxhdGZvcm1XaGVlbEV2ZW50OjpXZWJLaXQyUGxhdGZvcm1XaGVlbEV2ZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViS2l0MlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6V2ViS2l0MlBsYXRm
b3JtS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0Zm9ybUdlc3R1
cmVFdmVudDo6V2ViS2l0MlBsYXRmb3JtR2VzdHVyZUV2ZW50KToKKworMjAxNi0wOS0yMCAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCiAgICAgICAgIENhbid0IHByZXNl
bnQgYSBwYXltZW50IHNoZWV0IGlmIGEgc2hlZXQgaXMgYWxyZWFkeSBhY3RpdmUgaW4gYW5vdGhl
ciB3aW5kb3cKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MjMxNAogICAgICAgICByZGFyOi8vcHJvYmxlbS8yNzY0MzUxMQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvT3B0aW9uU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25TZXQuaAppbmRl
eCBkOWIxMTQ3OGE5ZmYxNGJmMmZlODgwNzZjNWQ1OTg0ZTIzN2ZkMzgxLi4xYmFhODVlNjFiMTIx
Y2Q2NDI4MzQ5ZWUwMWI1OTZkNWRkZGUyNzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9P
cHRpb25TZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25TZXQuaApAQCAtMTA5LDYgKzEw
OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3N0b3JhZ2UgJiBvcHRpb25TZXQubV9z
dG9yYWdlOwogICAgIH0KIAorICAgIGNvbnN0ZXhwciBmcmllbmQgYm9vbCBvcGVyYXRvciE9KE9w
dGlvblNldCBsaHMsIE9wdGlvblNldCByaHMpCisgICAgeworICAgICAgICByZXR1cm4gbGhzLm1f
c3RvcmFnZSAhPSByaHMubV9zdG9yYWdlOworICAgIH0KKwogICAgIGZyaWVuZCBPcHRpb25TZXQm
IG9wZXJhdG9yfD0oT3B0aW9uU2V0JiBsaHMsIE9wdGlvblNldCByaHMpCiAgICAgewogICAgICAg
ICBsaHMubV9zdG9yYWdlIHw9IHJocy5tX3N0b3JhZ2U7CkBAIC0xMTYsNiArMTIxLDExIEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGxoczsKICAgICB9CiAKKyAgICBjb25zdGV4cHIgZnJpZW5k
IE9wdGlvblNldCBvcGVyYXRvci0oT3B0aW9uU2V0IGxocywgT3B0aW9uU2V0IHJocykKKyAgICB7
CisgICAgICAgIHJldHVybiBPcHRpb25TZXQ6OmZyb21SYXcobGhzLm1fc3RvcmFnZSAmIH5yaHMu
bV9zdG9yYWdlKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgZW51bSBJbml0aWFsaXphdGlvblRh
ZyB7IEZyb21SYXdWYWx1ZSB9OwogICAgIGNvbnN0ZXhwciBPcHRpb25TZXQoVCB0LCBJbml0aWFs
aXphdGlvblRhZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0OWFjNjUw
MGVhYmI4MzU2NzFlMzI5MmUxMmIxMDhiNGE2NmJiM2M2Li45YzFlYTI1NWRjYmYxYTUyOWVkNDBk
NDA3ZjA1Mzk2MTIwZWNkOGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC0yOTcxLDggKzI5NzEsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlQWNjZXNzS2V5KGNv
bnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiAgICAgLy8gSUUgbWF0Y2hlcyBsb3dl
ciBhbmQgdXBwZXIgY2FzZSBhY2Nlc3Mga2V5cyByZWdhcmRsZXNzIG9mIFNoaWZ0IGtleSBzdGF0
ZSAtIGJ1dCBpZiBib3RoIHVwcGVyIGFuZAogICAgIC8vIGxvd2VyIGNhc2UgdmFyaWFudHMgYXJl
IHByZXNlbnQgaW4gYSBkb2N1bWVudCwgdGhlIGNvcnJlY3QgZWxlbWVudCBpcyBtYXRjaGVkIGJh
c2VkIG9uIFNoaWZ0IGtleSBzdGF0ZS4KICAgICAvLyBGaXJlZm94IG9ubHkgbWF0Y2hlcyBhbiBh
Y2Nlc3Mga2V5IGlmIFNoaWZ0IGlzIG5vdCBwcmVzc2VkLCBhbmQgZG9lcyB0aGF0IGNhc2UtaW5z
ZW5zaXRpdmVseS4KLSAgICBBU1NFUlQoIShhY2Nlc3NLZXlNb2RpZmllcnMoKSAmIFBsYXRmb3Jt
RXZlbnQ6OlNoaWZ0S2V5KSk7Ci0gICAgaWYgKChldmVudC5tb2RpZmllcnMoKSAmIH5QbGF0Zm9y
bUV2ZW50OjpTaGlmdEtleSkgIT0gYWNjZXNzS2V5TW9kaWZpZXJzKCkpCisgICAgQVNTRVJUKCEo
YWNjZXNzS2V5TW9kaWZpZXJzKCkuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OlNo
aWZ0S2V5KSkpOworICAgIGlmICgoZXZlbnQubW9kaWZpZXJzKCkgLSBQbGF0Zm9ybUV2ZW50OjpN
b2RpZmllcjo6U2hpZnRLZXkpICE9IGFjY2Vzc0tleU1vZGlmaWVycygpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgRWxlbWVudCogZWxlbWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+Z2V0
RWxlbWVudEJ5QWNjZXNzS2V5KGV2ZW50LnVubW9kaWZpZWRUZXh0KCkpOwogICAgIGlmICghZWxl
bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDUyYWE1NDQzOTI0YzA2NWU0
MGYxODcyZGZiZDAyODkzZmJjNDFlOWQuLmRjNGNiNzZkMzI3NDFiOWUyZTBmM2U1NjU0YTA0Yjc0
NTYwODFiNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjQ0LDcgKzI0NCw3
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25R
dWlya3MoKSBjb25zdDsKIAotICAgIHN0YXRpYyB1bnNpZ25lZCBhY2Nlc3NLZXlNb2RpZmllcnMo
KTsKKyAgICBzdGF0aWMgT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBhY2Nlc3NL
ZXlNb2RpZmllcnMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZUFjY2Vzc0tleShj
b25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGtl
eUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIHZvaWQgZGVmYXVsdEtl
eWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCBjODI2ZGE0ZDY5YWI5NGQxMDU0MWRlNTM5OTI5
NmQ1MTFhMmYxNGNlLi5iMjIwY2M1M2Y1YmI2MjU3NzY0NTVhNTIwMmNiMDA1YjNjZTVmMGRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC03ODMsMTUg
Kzc4MywxNSBAQCBib29sIEV2ZW50SGFuZGxlcjo6bmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1
YXRpb25RdWlya3MoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdW5zaWduZWQgRXZl
bnRIYW5kbGVyOjphY2Nlc3NLZXlNb2RpZmllcnMoKQorT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6
Ok1vZGlmaWVyPiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygpCiB7CiAgICAgLy8g
Q29udHJvbCtPcHRpb24ga2V5IGNvbWJpbmF0aW9ucyBhcmUgdXN1YWxseSB1bnVzZWQgb24gTWFj
IE9TIFgsIGJ1dCBub3Qgd2hlbiBWb2ljZU92ZXIgaXMgZW5hYmxlZC4KICAgICAvLyBTbywgd2Ug
dXNlIENvbnRyb2wgaW4gdGhpcyBjYXNlLCBldmVuIHRob3VnaCBpdCBjb25mbGljdHMgd2l0aCBF
bWFjcy1zdHlsZSBrZXkgYmluZGluZ3MuCiAgICAgLy8gU2VlIDxodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDc+IGZvciBtb3JlIGRldGFpbC4KICAgICBpZiAoQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKSkK
LSAgICAgICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OkN0cmxLZXk7CisgICAgICAgIHJldHVybiBQ
bGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3RybEtleTsKIAotICAgIHJldHVybiBQbGF0Zm9ybUV2
ZW50OjpDdHJsS2V5IHwgUGxhdGZvcm1FdmVudDo6QWx0S2V5OworICAgIHJldHVybiB7IFBsYXRm
b3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJsS2V5LCBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0
S2V5IH07CiB9CiAKIHN0YXRpYyBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWFGb3JCb3go
UmVuZGVyQm94JiBib3gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKaW5k
ZXggZGJkMGI3MDBjOWQ3YTVkZTEwZDNlMmRmYWQ0OTkzYTkxZDRjYmMzNi4uY2E1NGI3ZWZkZWMw
MzM2OWJlMzE3NGM3NzdlMWMzZmFjOTU2ZTMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtRXZlbnQuaApAQCAtMjMsOCArMjMsOSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgUGxhdGZvcm1FdmVudF9oCi0jZGVmaW5lIFBsYXRm
b3JtRXZlbnRfaAorI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjgsNyArNjksNyBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICB9OwogCi0gICAgZW51bSBNb2RpZmllcnMgOiB1aW50OF90IHsKKyAgICBlbnVtIGNsYXNz
IE1vZGlmaWVyIHsKICAgICAgICAgQWx0S2V5ICAgICAgPSAxIDw8IDAsCiAgICAgICAgIEN0cmxL
ZXkgICAgID0gMSA8PCAxLAogICAgICAgICBNZXRhS2V5ICAgICA9IDEgPDwgMiwKQEAgLTc3LDMx
ICs3OCwyOSBAQCBwdWJsaWM6CiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxUeXBlPihtX3R5cGUpOyB9CiAKLSAgICBib29sIHNoaWZ0S2V5KCkgY29uc3QgeyBy
ZXR1cm4gbV9tb2RpZmllcnMgJiBTaGlmdEtleTsgfQotICAgIGJvb2wgY3RybEtleSgpIGNvbnN0
IHsgcmV0dXJuIG1fbW9kaWZpZXJzICYgQ3RybEtleTsgfQotICAgIGJvb2wgYWx0S2V5KCkgY29u
c3QgeyByZXR1cm4gbV9tb2RpZmllcnMgJiBBbHRLZXk7IH0KLSAgICBib29sIG1ldGFLZXkoKSBj
b25zdCB7IHJldHVybiBtX21vZGlmaWVycyAmIE1ldGFLZXk7IH0KKyAgICBib29sIHNoaWZ0S2V5
KCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9kaWZpZXI6OlNoaWZ0S2V5
KTsgfQorICAgIGJvb2wgY3RybEtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kaWZpZXJzLmNvbnRh
aW5zKE1vZGlmaWVyOjpDdHJsS2V5KTsgfQorICAgIGJvb2wgYWx0S2V5KCkgY29uc3QgeyByZXR1
cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9kaWZpZXI6OkFsdEtleSk7IH0KKyAgICBib29sIG1l
dGFLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVycy5jb250YWlucyhNb2RpZmllcjo6TWV0
YUtleSk7IH0KIAotICAgIHVuc2lnbmVkIG1vZGlmaWVycygpIGNvbnN0IHsgcmV0dXJuIG1fbW9k
aWZpZXJzOyB9CisgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMoKSBjb25zdCB7IHJl
dHVybiBtX21vZGlmaWVyczsgfQogCiAgICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0
dXJuIG1fdGltZXN0YW1wOyB9CiAKIHByb3RlY3RlZDoKICAgICBQbGF0Zm9ybUV2ZW50KCkKICAg
ICAgICAgOiBtX3R5cGUoTm9UeXBlKQotICAgICAgICAsIG1fbW9kaWZpZXJzKDApCiAgICAgICAg
ICwgbV90aW1lc3RhbXAoMCkKICAgICB7CiAgICAgfQogCiAgICAgZXhwbGljaXQgUGxhdGZvcm1F
dmVudChUeXBlIHR5cGUpCiAgICAgICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgICwgbV9tb2Rp
ZmllcnMoMCkKICAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKLSAgICBQ
bGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBt
b2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAg
ICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVz
dGFtcCkKQEAgLTExMCwxNyArMTA5LDE2IEBAIHByb3RlY3RlZDoKIAogICAgIFBsYXRmb3JtRXZl
bnQoVHlwZSB0eXBlLCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBi
b29sIG1ldGFLZXksIGRvdWJsZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCi0g
ICAgICAgICwgbV9tb2RpZmllcnMoMCkKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXAp
CiAgICAgewogICAgICAgICBpZiAoc2hpZnRLZXkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8
PSBTaGlmdEtleTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpTaGlmdEtl
eTsKICAgICAgICAgaWYgKGN0cmxLZXkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBDdHJs
S2V5OworICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OkN0cmxLZXk7CiAgICAg
ICAgIGlmIChhbHRLZXkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBBbHRLZXk7CisgICAg
ICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6QWx0S2V5OwogICAgICAgICBpZiAobWV0
YUtleSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1ldGFLZXk7CisgICAgICAgICAgICBt
X21vZGlmaWVycyB8PSBNb2RpZmllcjo6TWV0YUtleTsKICAgICB9CiAKICAgICAvLyBFeHBsaWNp
dCBwcm90ZWN0ZWQgZGVzdHJ1Y3RvciBzbyB0aGF0IHBlb3BsZSBkb24ndCBhY2NpZGVudGFsbHkK
QEAgLTEzMCwxMCArMTI4LDggQEAgcHJvdGVjdGVkOgogICAgIH0KIAogICAgIHVuc2lnbmVkIG1f
dHlwZTsKLSAgICB1bnNpZ25lZCBtX21vZGlmaWVyczsKKyAgICBPcHRpb25TZXQ8TW9kaWZpZXI+
IG1fbW9kaWZpZXJzOwogICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFBsYXRmb3JtRXZlbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAppbmRleCA1Nzg1MjY2MDAzMzRh
Nzk0NzEzYTZiZmEwYzM1ODkyMTY4YmNiMDk2Li5lMWYwOGRjODkzOWUwMWNiMmRhNTJjOWUzOWY1
MDNlOTFmODJmZGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaApAQCAtMjQsOCArMjQsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAot
I2lmbmRlZiBQbGF0Zm9ybUtleWJvYXJkRXZlbnRfaAotI2RlZmluZSBQbGF0Zm9ybUtleWJvYXJk
RXZlbnRfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJLZXlwcmVzc0NvbW1hbmQuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCkBAIC03Myw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZp
ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlz
QXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1v
ZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRU
ZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNv
ZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0
b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlm
aWVyPiBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCiAgICAgICAgICAgICA6IFBsYXRmb3Jt
RXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgICAgICAgICAsIG1fdGV4dCh0
ZXh0KQogICAgICAgICAgICAgLCBtX3VubW9kaWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpAQCAt
MTkyLDUgKzE5MSwzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB9OwogICAgIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gUGxhdGZvcm1LZXlib2FyZEV2ZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5tbQppbmRleCBhNzQ3NDczY2QxNTA3MjVjM2JiMjNkMjJkNjVkY2I3MTZlZDM4YzYyLi5j
MzIwMzgyMjEwNzQxOWM5ZDZjNWZjNGMzNjQzYjM2OWUyZjFmNGUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCkBA
IC00MjYsMjEgKzQyNiwyMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNLZXlVcEV2ZW50KE5TRXZl
bnQgKmV2ZW50KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGlubGluZSBQbGF0Zm9y
bUV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCitzdGF0
aWMgaW5saW5lIE9wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzRm9y
RXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAog
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCi0gICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVy
RmxhZ3NdICYgTlNTaGlmdEtleU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2
ZW50OjpTaGlmdEtleTsKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNDb250cm9s
S2V5TWFzaykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6OkN0cmxLZXk7Ci0g
ICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKLSAgICAg
ICAgbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6OkFsdEtleTsKLSAgICBpZiAoW2V2ZW50IG1v
ZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzaykKLSAgICAgICAgbW9kaWZpZXJzIHw9IFBs
YXRmb3JtRXZlbnQ6Ok1ldGFLZXk7CisgICAgT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlm
aWVyPiBtb2RpZmllcnM7CisgICAgaWYgKGV2ZW50Lm1vZGlmaWVyRmxhZ3MgJiBOU1NoaWZ0S2V5
TWFzaykKKyAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpTaGlm
dEtleTsKKyAgICBpZiAoZXZlbnQubW9kaWZpZXJGbGFncyAmIE5TQ29udHJvbEtleU1hc2spCisg
ICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3RybEtleTsKKyAg
ICBpZiAoZXZlbnQubW9kaWZpZXJGbGFncyAmIE5TQWx0ZXJuYXRlS2V5TWFzaykKKyAgICAgICAg
bW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXk7CisgICAgaWYgKGV2
ZW50Lm1vZGlmaWVyRmxhZ3MgJiBOU0NvbW1hbmRLZXlNYXNrKQorICAgICAgICBtb2RpZmllcnMg
fD0gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXk7CiAjcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcG9wCi0gICAgcmV0dXJuIChQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcnMpbW9kaWZpZXJz
OworICAgIHJldHVybiBtb2RpZmllcnM7CiB9CiAKIHN0YXRpYyBpbnQgdHlwZUZvckV2ZW50KE5T
RXZlbnQgKmV2ZW50KQpAQCAtNDUxLDcgKzQ1MSw3IEBAIHN0YXRpYyBpbnQgdHlwZUZvckV2ZW50
KE5TRXZlbnQgKmV2ZW50KQogICAgIGlmIChtb3VzZUJ1dHRvbkZvckV2ZW50KGV2ZW50KSA9PSBS
aWdodEJ1dHRvbikKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oTlNNZW51VHlwZUNv
bnRleHRNZW51KTsKIAotICAgIGlmIChtb3VzZUJ1dHRvbkZvckV2ZW50KGV2ZW50KSA9PSBMZWZ0
QnV0dG9uICYmIChtb2RpZmllcnNGb3JFdmVudChldmVudCkgJiBQbGF0Zm9ybUV2ZW50OjpDdHJs
S2V5KSkKKyAgICBpZiAobW91c2VCdXR0b25Gb3JFdmVudChldmVudCkgPT0gTGVmdEJ1dHRvbiAm
JiBtb2RpZmllcnNGb3JFdmVudChldmVudCkuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZp
ZXI6OkN0cmxLZXkpKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihOU01lbnVUeXBl
Q29udGV4dE1lbnUpOwogCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oTlNNZW51VHlwZU5v
bmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRo
b2RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAK
aW5kZXggNDg2MDViMjYxM2FlZTA4NmMxYjA4MzlhNzMwYTBjYWQzOTUwYzI3ZC4uYTYyZjc4ZGQ2
MDE0YmRiNjZkN2JjZmM0YTc1NzMwNWQzZDlmYjAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwCkBAIC0yNTMsNyArMjUzLDcgQEAgRW5jb2Rl
ZFZhbHVlIEVuY29kaW5nVHJhaXRzPFBsYXRmb3JtS2V5Ym9hcmRFdmVudD46OmVuY29kZVZhbHVl
KGNvbnN0IFBsYXRmb3JtS2UKIAogICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1
ZSwgZG91YmxlLCB0aW1lc3RhbXAsIGlucHV0LnRpbWVzdGFtcCgpKTsKICAgICBFTkNPREVfVFlQ
RV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFBsYXRmb3JtRXZlbnQ6OlR5cGUsIHR5cGUsIGlucHV0
LnR5cGUoKSk7Ci0gICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBQbGF0Zm9y
bUV2ZW50OjpNb2RpZmllcnMsIG1vZGlmaWVycywgc3RhdGljX2Nhc3Q8UGxhdGZvcm1FdmVudDo6
TW9kaWZpZXJzPihpbnB1dC5tb2RpZmllcnMoKSkpOworICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZ
KGVuY29kZWRWYWx1ZSwgUGxhdGZvcm1FdmVudDo6TW9kaWZpZXIsIG1vZGlmaWVycywgaW5wdXQu
bW9kaWZpZXJzKCkpOwogICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgU3Ry
aW5nLCB0ZXh0LCBpbnB1dC50ZXh0KCkpOwogICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29k
ZWRWYWx1ZSwgU3RyaW5nLCB1bm1vZGlmaWVkVGV4dCwgaW5wdXQudW5tb2RpZmllZFRleHQoKSk7
CiAgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIGtleUlkZW50
aWZpZXIsIGlucHV0LmtleUlkZW50aWZpZXIoKSk7CkBAIC0yNzQsNyArMjc0LDcgQEAgYm9vbCBF
bmNvZGluZ1RyYWl0czxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+OjpkZWNvZGVWYWx1ZShFbmNvZGVk
VmFsdWUmIGVuY29kZWRWYWwKIHsKICAgICBERUNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFs
dWUsIGRvdWJsZSwgdGltZXN0YW1wKTsKICAgICBERUNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVk
VmFsdWUsIFBsYXRmb3JtRXZlbnQ6OlR5cGUsIHR5cGUpOwotICAgIERFQ09ERV9UWVBFX1dJVEhf
S0VZKGVuY29kZWRWYWx1ZSwgUGxhdGZvcm1FdmVudDo6TW9kaWZpZXJzLCBtb2RpZmllcnMpOwor
ICAgIERFQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgUGxhdGZvcm1FdmVudDo6TW9k
aWZpZXIsIG1vZGlmaWVycyk7CiAgICAgREVDT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVl
LCBTdHJpbmcsIHRleHQpOwogICAgIERFQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwg
U3RyaW5nLCB1bm1vZGlmaWVkVGV4dCk7CiAgICAgREVDT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2Rl
ZFZhbHVlLCBTdHJpbmcsIGtleUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVwbGF5L1dlYklucHV0cy5qc29uIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1dlYklucHV0
cy5qc29uCmluZGV4IDdkOWI1NDQ5NWM3OGM3ODI3OWQ3Mzc2NzkxN2U3ZDk3ZDc3NjBmOWMuLmI3
ZTViY2Q4MzBlMDkxYWNjMmE2YzEwMDc2MmE2Y2NhNjY3YmUwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvV2ViSW5wdXRzLmpzb24KQEAgLTEzLDkgKzEzLDkgQEAKICAgICAgICAgICAgICAgICAiaGVh
ZGVyIjogInJlcGxheS9NZW1vaXplZERPTVJlc3VsdC5oIgogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJNb2RpZmllcnMiLCAibW9kZSI6ICJT
Q0FMQVIiLCAic3RvcmFnZSI6ICJ1aW50OF90IiwKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJN
b2RpZmllciIsICJtb2RlIjogIlNDQUxBUiIsCiAgICAgICAgICAgICAgICAgImVuY2xvc2luZ19j
bGFzcyI6ICJQbGF0Zm9ybUV2ZW50IiwKLSAgICAgICAgICAgICAgICAiZmxhZ3MiOiBbIkVOVU0i
XSwKKyAgICAgICAgICAgICAgICAiZmxhZ3MiOiBbIk9QVElPTl9TRVQiXSwKICAgICAgICAgICAg
ICAgICAidmFsdWVzIjogWyJBbHRLZXkiLCAiQ3RybEtleSIsICJNZXRhS2V5IiwgIlNoaWZ0S2V5
Il0sCiAgICAgICAgICAgICAgICAgImhlYWRlciI6ICJwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50Lmgi
CiAgICAgICAgICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2
ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJz
aW9uLmNwcAppbmRleCAyYTA4NzAwZDJlMDI1NTQxMjJlZDJmY2YxNDIxNzFkOWQwNGUxM2EzLi45
OWFjYzAzNjlmNDBkZmFmYWM2MzU5OWIxNWQ3NzlhMTk2NTQ0MDc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcApAQCAtNjgsMTUgKzY4LDE0IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAKLSAg
ICAgICAgbV9tb2RpZmllcnMgPSAwOwogICAgICAgICBpZiAod2ViRXZlbnQuc2hpZnRLZXkoKSkK
LSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IFNoaWZ0S2V5OworICAgICAgICAgICAgbV9tb2Rp
ZmllcnMgfD0gTW9kaWZpZXI6OlNoaWZ0S2V5OwogICAgICAgICBpZiAod2ViRXZlbnQuY29udHJv
bEtleSgpKQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gQ3RybEtleTsKKyAgICAgICAgICAg
IG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpDdHJsS2V5OwogICAgICAgICBpZiAod2ViRXZlbnQu
YWx0S2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBBbHRLZXk7CisgICAgICAgICAg
ICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6QWx0S2V5OwogICAgICAgICBpZiAod2ViRXZlbnQu
bWV0YUtleSgpKQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gTWV0YUtleTsKKyAgICAgICAg
ICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpNZXRhS2V5OwogCiAgICAgICAgIG1fdGltZXN0
YW1wID0gd2ViRXZlbnQudGltZXN0YW1wKCk7CiAKQEAgLTEwNSwxNiArMTA0LDYgQEAgcHVibGlj
OgogICAgICAgICBtX2V2ZW50TnVtYmVyID0gd2ViRXZlbnQuZXZlbnROdW1iZXIoKTsKICAgICAg
ICAgbV9tZW51VHlwZUZvckV2ZW50ID0gd2ViRXZlbnQubWVudVR5cGVGb3JFdmVudCgpOwogI2Vu
ZGlmCi0KLSAgICAgICAgbV9tb2RpZmllckZsYWdzID0gMDsKLSAgICAgICAgaWYgKHdlYkV2ZW50
LnNoaWZ0S2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVyRmxhZ3MgfD0gV2ViRXZlbnQ6OlNo
aWZ0S2V5OwotICAgICAgICBpZiAod2ViRXZlbnQuY29udHJvbEtleSgpKQotICAgICAgICAgICAg
bV9tb2RpZmllckZsYWdzIHw9IFdlYkV2ZW50OjpDb250cm9sS2V5OwotICAgICAgICBpZiAod2Vi
RXZlbnQuYWx0S2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVyRmxhZ3MgfD0gV2ViRXZlbnQ6
OkFsdEtleTsKLSAgICAgICAgaWYgKHdlYkV2ZW50Lm1ldGFLZXkoKSkKLSAgICAgICAgICAgIG1f
bW9kaWZpZXJGbGFncyB8PSBXZWJFdmVudDo6TWV0YUtleTsKICAgICB9CiB9OwogCkBAIC0xMzAs
MTUgKzExOSwxNCBAQCBwdWJsaWM6CiAgICAgICAgIC8vIFBsYXRmb3JtRXZlbnQKICAgICAgICAg
bV90eXBlID0gUGxhdGZvcm1FdmVudDo6V2hlZWw7CiAKLSAgICAgICAgbV9tb2RpZmllcnMgPSAw
OwogICAgICAgICBpZiAod2ViRXZlbnQuc2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZp
ZXJzIHw9IFNoaWZ0S2V5OworICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OlNo
aWZ0S2V5OwogICAgICAgICBpZiAod2ViRXZlbnQuY29udHJvbEtleSgpKQotICAgICAgICAgICAg
bV9tb2RpZmllcnMgfD0gQ3RybEtleTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlm
aWVyOjpDdHJsS2V5OwogICAgICAgICBpZiAod2ViRXZlbnQuYWx0S2V5KCkpCi0gICAgICAgICAg
ICBtX21vZGlmaWVycyB8PSBBbHRLZXk7CisgICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNb2Rp
Zmllcjo6QWx0S2V5OwogICAgICAgICBpZiAod2ViRXZlbnQubWV0YUtleSgpKQotICAgICAgICAg
ICAgbV9tb2RpZmllcnMgfD0gTWV0YUtleTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1v
ZGlmaWVyOjpNZXRhS2V5OwogCiAgICAgICAgIG1fdGltZXN0YW1wID0gd2ViRXZlbnQudGltZXN0
YW1wKCk7CiAKQEAgLTE4OSwxNSArMTc3LDE0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9tb2RpZmllcnMgPSAwOwog
ICAgICAgICBpZiAod2ViRXZlbnQuc2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJz
IHw9IFNoaWZ0S2V5OworICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OlNoaWZ0
S2V5OwogICAgICAgICBpZiAod2ViRXZlbnQuY29udHJvbEtleSgpKQotICAgICAgICAgICAgbV9t
b2RpZmllcnMgfD0gQ3RybEtleTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVy
OjpDdHJsS2V5OwogICAgICAgICBpZiAod2ViRXZlbnQuYWx0S2V5KCkpCi0gICAgICAgICAgICBt
X21vZGlmaWVycyB8PSBBbHRLZXk7CisgICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmll
cjo6QWx0S2V5OwogICAgICAgICBpZiAod2ViRXZlbnQubWV0YUtleSgpKQotICAgICAgICAgICAg
bV9tb2RpZmllcnMgfD0gTWV0YUtleTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlm
aWVyOjpNZXRhS2V5OwogCiAgICAgICAgIG1fdGltZXN0YW1wID0gd2ViRXZlbnQudGltZXN0YW1w
KCk7CiAKQEAgLTM4MywxNSArMzcwLDE0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9tb2RpZmllcnMgPSAwOwogICAg
ICAgICBpZiAod2ViRXZlbnQuc2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9
IFNoaWZ0S2V5OworICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OlNoaWZ0S2V5
OwogICAgICAgICBpZiAod2ViRXZlbnQuY29udHJvbEtleSgpKQotICAgICAgICAgICAgbV9tb2Rp
ZmllcnMgfD0gQ3RybEtleTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpD
dHJsS2V5OwogICAgICAgICBpZiAod2ViRXZlbnQuYWx0S2V5KCkpCi0gICAgICAgICAgICBtX21v
ZGlmaWVycyB8PSBBbHRLZXk7CisgICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6
QWx0S2V5OwogICAgICAgICBpZiAod2ViRXZlbnQubWV0YUtleSgpKQotICAgICAgICAgICAgbV9t
b2RpZmllcnMgfD0gTWV0YUtleTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVy
OjpNZXRhS2V5OwogCiAgICAgICAgIG1fdGltZXN0YW1wID0gd2ViRXZlbnQudGltZXN0YW1wKCk7
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289590</attachid>
            <date>2016-09-22 13:27:11 -0700</date>
            <delta_ts>2016-09-22 14:01:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162326-20160922132421.patch</filename>
            <type>text/plain</type>
            <size>28642</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmMzY0MjZlNGY4MmUwYzY1ZjFiNDk1
MWNjMWQ0OWU4YjViZDI3ODkuLjBmYmM3Y2QwOWJhM2JkYjZmMjJjZGMyZmQyYzRjNzI0MjU1YmUx
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDktMjAgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBQbGF0Zm9ybUV2ZW50OjptX21vZGlmaWVycyBz
aG91bGQgYmUgYW4gT3B0aW9uU2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjIzMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHd0Zi9PcHRpb25TZXQuaDoKKyAgICAgICAgKFdURjo6T3B0aW9uU2V0
OjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdURjo6T3B0aW9uU2V0OjpvcGVyYXRvci0pOgorCiAy
MDE2LTA5LTIxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAg
IFJvbGxpbmcgb3V0IHIyMDYyNDQsIGFzIGl0IGNhdXNlZCBmbGFreSBjcmFzaGVzIG9uIHRlc3Rz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDRhM2RhNDdiYjIzZGE3OWNkY2JhMTQ2NjUwYzEwZTZlZmY5YjZlOTEu
LjNiZTA0ZjU1MjEzMmExODI5NmMwZmRiYzE0M2ViNzcyYWNjZWU4OWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAxNi0wOS0yMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgorCisgICAgICAgIFBsYXRmb3JtRXZlbnQ6Om1fbW9kaWZpZXJzIHNob3VsZCBiZSBh
biBPcHRpb25TZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MjMyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVBY2Nlc3NLZXkpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6Cisg
ICAgICAgICogcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjphY2Nlc3NLZXlNb2RpZmllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL1Bs
YXRmb3JtRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OnNoaWZ0S2V5
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OmN0cmxLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6YWx0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtRXZlbnQ6Om1ldGFLZXkpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6bW9k
aWZpZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OlBsYXRmb3JtRXZlbnQp
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6Om1vZGlmaWVyc0ZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnR5cGVG
b3JFdmVudCk6CisgICAgICAgICogcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcDoKKyAg
ICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1LZXlib2FyZEV2ZW50Pjo6ZW5jb2Rl
VmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxQbGF0Zm9ybUtleWJvYXJkRXZl
bnQ+OjpkZWNvZGVWYWx1ZSk6CisgICAgICAgICogcmVwbGF5L1dlYklucHV0cy5qc29uOgorCiAy
MDE2LTA5LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IHNlcmlhbGl6YXRpb24gb2YgSFRNTCB2b2lkIGVsZW1lbnRzIHdoZW4gdGhleSBoYXZlIGNoaWxk
cmVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNDZiYTY1NGJkNDFjNDcyNzljYzQ5NTY2N2E0MjMzMWZkYjVhMTIz
NC4uNTNjOGY5M2FkNjYwODk1ZWE4NDgxMDZkMWZjZDE5NzA4YzNmODdlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDE2LTA5LTIwICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGxhdGZvcm1FdmVudDo6bV9tb2RpZmllcnMgc2hvdWxkIGJl
IGFuIE9wdGlvblNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYyMzI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViS2l0MlBsYXRmb3JtTW91c2VFdmVudDo6V2ViS2l0MlBsYXRmb3JtTW91c2VFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0Zm9ybVdoZWVsRXZlbnQ6OldlYktpdDJQbGF0Zm9y
bVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXQyUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpXZWJLaXQyUGxhdGZvcm1LZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
S2l0MlBsYXRmb3JtR2VzdHVyZUV2ZW50OjpXZWJLaXQyUGxhdGZvcm1HZXN0dXJlRXZlbnQpOgor
CiAyMDE2LTA5LTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBdXRvbWF0aWMgVGV4dCBSZXBsYWNlbWVudCBUZXN0aW5nIGluIFdlYktpdDIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL09wdGlvblNldC5oIGIvU291cmNlL1dURi93dGYvT3B0aW9u
U2V0LmgKaW5kZXggZDliMTE0NzhhOWZmMTRiZjJmZTg4MDc2YzVkNTk4NGUyMzdmZDM4MS4uNTEz
NmY4N2RjMzg1MDRlMDg4NjQxZWNkYzZjMGUwZDlhZDA2MmE5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvT3B0aW9uU2V0LmgKKysrIGIvU291cmNlL1dURi93dGYvT3B0aW9uU2V0LmgKQEAg
LTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIH07CiAgICAgdXNpbmcgaXRlcmF0b3IgPSBJdGVy
YXRvcjxTdG9yYWdlVHlwZT47CiAKLSAgICBzdGF0aWMgT3B0aW9uU2V0IGZyb21SYXcoU3RvcmFn
ZVR5cGUgc3RvcmFnZVR5cGUpCisgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRpb25TZXQgZnJvbVJh
dyhTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSkKICAgICB7CiAgICAgICAgIHJldHVybiBPcHRpb25T
ZXQoc3RhdGljX2Nhc3Q8VD4oc3RvcmFnZVR5cGUpLCBGcm9tUmF3VmFsdWUpOwogICAgIH0KQEAg
LTEwOSw2ICsxMDksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9zdG9yYWdlICYgb3B0
aW9uU2V0Lm1fc3RvcmFnZTsKICAgICB9CiAKKyAgICBjb25zdGV4cHIgZnJpZW5kIGJvb2wgb3Bl
cmF0b3IhPShPcHRpb25TZXQgbGhzLCBPcHRpb25TZXQgcmhzKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGxocy5tX3N0b3JhZ2UgIT0gcmhzLm1fc3RvcmFnZTsKKyAgICB9CisKICAgICBmcmllbmQg
T3B0aW9uU2V0JiBvcGVyYXRvcnw9KE9wdGlvblNldCYgbGhzLCBPcHRpb25TZXQgcmhzKQogICAg
IHsKICAgICAgICAgbGhzLm1fc3RvcmFnZSB8PSByaHMubV9zdG9yYWdlOwpAQCAtMTE2LDYgKzEy
MSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBsaHM7CiAgICAgfQogCisgICAgY29uc3Rl
eHByIGZyaWVuZCBPcHRpb25TZXQgb3BlcmF0b3ItKE9wdGlvblNldCBsaHMsIE9wdGlvblNldCBy
aHMpCisgICAgeworICAgICAgICByZXR1cm4gT3B0aW9uU2V0Ojpmcm9tUmF3KGxocy5tX3N0b3Jh
Z2UgJiB+cmhzLm1fc3RvcmFnZSk7CisgICAgfQorCiBwcml2YXRlOgogICAgIGVudW0gSW5pdGlh
bGl6YXRpb25UYWcgeyBGcm9tUmF3VmFsdWUgfTsKICAgICBjb25zdGV4cHIgT3B0aW9uU2V0KFQg
dCwgSW5pdGlhbGl6YXRpb25UYWcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5k
ZXggNDlhYzY1MDBlYWJiODM1NjcxZTMyOTJlMTJiMTA4YjRhNjZiYjNjNi4uOWMxZWEyNTVkY2Jm
MWE1MjllZDQwZDQwN2YwNTM5NjEyMGVjZDhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtMjk3MSw4ICsyOTcxLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUFj
Y2Vzc0tleShjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIC8vIElFIG1h
dGNoZXMgbG93ZXIgYW5kIHVwcGVyIGNhc2UgYWNjZXNzIGtleXMgcmVnYXJkbGVzcyBvZiBTaGlm
dCBrZXkgc3RhdGUgLSBidXQgaWYgYm90aCB1cHBlciBhbmQKICAgICAvLyBsb3dlciBjYXNlIHZh
cmlhbnRzIGFyZSBwcmVzZW50IGluIGEgZG9jdW1lbnQsIHRoZSBjb3JyZWN0IGVsZW1lbnQgaXMg
bWF0Y2hlZCBiYXNlZCBvbiBTaGlmdCBrZXkgc3RhdGUuCiAgICAgLy8gRmlyZWZveCBvbmx5IG1h
dGNoZXMgYW4gYWNjZXNzIGtleSBpZiBTaGlmdCBpcyBub3QgcHJlc3NlZCwgYW5kIGRvZXMgdGhh
dCBjYXNlLWluc2Vuc2l0aXZlbHkuCi0gICAgQVNTRVJUKCEoYWNjZXNzS2V5TW9kaWZpZXJzKCkg
JiBQbGF0Zm9ybUV2ZW50OjpTaGlmdEtleSkpOwotICAgIGlmICgoZXZlbnQubW9kaWZpZXJzKCkg
JiB+UGxhdGZvcm1FdmVudDo6U2hpZnRLZXkpICE9IGFjY2Vzc0tleU1vZGlmaWVycygpKQorICAg
IEFTU0VSVCghKGFjY2Vzc0tleU1vZGlmaWVycygpLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1v
ZGlmaWVyOjpTaGlmdEtleSkpKTsKKyAgICBpZiAoKGV2ZW50Lm1vZGlmaWVycygpIC0gUGxhdGZv
cm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KSAhPSBhY2Nlc3NLZXlNb2RpZmllcnMoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmdldEVsZW1lbnRCeUFjY2Vzc0tleShldmVudC51bm1vZGlmaWVkVGV4dCgpKTsKICAg
ICBpZiAoIWVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCA1MmFhNTQ0
MzkyNGMwNjVlNDBmMTg3MmRmYmQwMjg5M2ZiYzQxZTlkLi5kYzRjYjc2ZDMyNzQxYjllMmUwZjNl
NTY1NGEwNGI3NDU2MDgxYjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTI0
NCw3ICsyNDQsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIG5lZWRzS2V5Ym9hcmRFdmVudERpc2Ft
YmlndWF0aW9uUXVpcmtzKCkgY29uc3Q7CiAKLSAgICBzdGF0aWMgdW5zaWduZWQgYWNjZXNzS2V5
TW9kaWZpZXJzKCk7CisgICAgc3RhdGljIE9wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmll
cj4gYWNjZXNzS2V5TW9kaWZpZXJzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVB
Y2Nlc3NLZXkoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBrZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKTsKICAgICB2b2lk
IGRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAppbmRleCA2YjdjNmQ5YjQxOGNkOTNh
M2E0ZDY2Y2EwNGIyZTJhMDU4NTc2NTlhLi4yMTA2ZDFlMTlhNDg2YTM4NWZmZTg3ZjkwMGZhYWZl
OTA4YmNhYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRs
ZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5j
cHAKQEAgLTEyMCw4ICsxMjAsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUmVsZWFz
ZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJgogICAgIHJldHVy
biB0cnVlOwogfQogCi11bnNpZ25lZCBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygp
CitPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IEV2ZW50SGFuZGxlcjo6YWNjZXNz
S2V5TW9kaWZpZXJzKCkKIHsKLSAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6QWx0S2V5OworICAg
IHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0S2V5OwogfQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKaW5kZXggMGIwN2JkMGExNDE5OWJm
NzAzMTUwODRhMzM3NTYzYjA3NGZhYWVkYy4uNDNmMDUzNzVlNWJkZTYxNGY5MDhhN2MxNTRkODJk
N2IwOGVjZTI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsu
Y3BwCkBAIC0xMjAsOSArMTIwLDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVh
c2VFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdW5zaWduZWQgRXZlbnRIYW5kbGVyOjphY2Nlc3NLZXlNb2RpZmllcnMo
KQorT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBFdmVudEhhbmRsZXI6OmFjY2Vz
c0tleU1vZGlmaWVycygpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OkFsdEtleTsKKyAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkFsdEtleTsKIH0KIAogLy8gR1RLKyBt
dXN0IHNjcm9sbCBob3Jpem9udGFsbHkgaWYgdGhlIG1vdXNlIHBvaW50ZXIgaXMgb24gdG9wIG9m
IHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9T
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCmluZGV4IGZm
NGYzNWZmMjcyYTJhYzZmNGZkOTRmYTgzMzg4ZWUwMGYxMmY1ODUuLjlmZWE3NWM2YjMzMTY4OTNj
NzRkZGViNzFmZmM2NjJmODUwMDY5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
aW9zL0V2ZW50SGFuZGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVu
dEhhbmRsZXJJT1MubW0KQEAgLTUzNywxNSArNTM3LDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpw
YXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXVuc2lnbmVkIEV2ZW50SGFuZGxlcjo6YWNjZXNz
S2V5TW9kaWZpZXJzKCkKK09wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gRXZlbnRI
YW5kbGVyOjphY2Nlc3NLZXlNb2RpZmllcnMoKQogewogICAgIC8vIENvbnRyb2wrT3B0aW9uIGtl
eSBjb21iaW5hdGlvbnMgYXJlIHVzdWFsbHkgdW51c2VkIG9uIE1hYyBPUyBYLCBidXQgbm90IHdo
ZW4gVm9pY2VPdmVyIGlzIGVuYWJsZWQuCiAgICAgLy8gU28sIHdlIHVzZSBDb250cm9sIGluIHRo
aXMgY2FzZSwgZXZlbiB0aG91Z2ggaXQgY29uZmxpY3RzIHdpdGggRW1hY3Mtc3R5bGUga2V5IGJp
bmRpbmdzLgogICAgIC8vIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMTA3PiBmb3IgbW9yZSBkZXRhaWwuCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OkN0cmxLZXk7CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2
ZW50OjpNb2RpZmllcjo6Q3RybEtleTsKIAotICAgIHJldHVybiBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQ6OkN0cmxLZXkgfCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OkFsdEtleTsKKyAgICByZXR1cm4g
eyBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3RybEtleSwgUGxhdGZvcm1FdmVudDo6TW9kaWZp
ZXI6OkFsdEtleSB9OwogfQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQgRXZlbnRIYW5kbGVyOjpjdXJy
ZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2
ZW50SGFuZGxlck1hYy5tbQppbmRleCBjODI2ZGE0ZDY5YWI5NGQxMDU0MWRlNTM5OTI5NmQ1MTFh
MmYxNGNlLi5iMjIwY2M1M2Y1YmI2MjU3NzY0NTVhNTIwMmNiMDA1YjNjZTVmMGRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC03ODMsMTUgKzc4Mywx
NSBAQCBib29sIEV2ZW50SGFuZGxlcjo6bmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25R
dWlya3MoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdW5zaWduZWQgRXZlbnRIYW5k
bGVyOjphY2Nlc3NLZXlNb2RpZmllcnMoKQorT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlm
aWVyPiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygpCiB7CiAgICAgLy8gQ29udHJv
bCtPcHRpb24ga2V5IGNvbWJpbmF0aW9ucyBhcmUgdXN1YWxseSB1bnVzZWQgb24gTWFjIE9TIFgs
IGJ1dCBub3Qgd2hlbiBWb2ljZU92ZXIgaXMgZW5hYmxlZC4KICAgICAvLyBTbywgd2UgdXNlIENv
bnRyb2wgaW4gdGhpcyBjYXNlLCBldmVuIHRob3VnaCBpdCBjb25mbGljdHMgd2l0aCBFbWFjcy1z
dHlsZSBrZXkgYmluZGluZ3MuCiAgICAgLy8gU2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjExMDc+IGZvciBtb3JlIGRldGFpbC4KICAgICBpZiAoQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKSkKLSAgICAg
ICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OkN0cmxLZXk7CisgICAgICAgIHJldHVybiBQbGF0Zm9y
bUV2ZW50OjpNb2RpZmllcjo6Q3RybEtleTsKIAotICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpD
dHJsS2V5IHwgUGxhdGZvcm1FdmVudDo6QWx0S2V5OworICAgIHJldHVybiB7IFBsYXRmb3JtRXZl
bnQ6Ok1vZGlmaWVyOjpDdHJsS2V5LCBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0S2V5IH07
CiB9CiAKIHN0YXRpYyBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWFGb3JCb3goUmVuZGVy
Qm94JiBib3gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRs
ZXJXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcApp
bmRleCAxMDZmMDc3ZmY1ZTFlOGRjNTY0YTcxOWRlNGU5YTFmNGQ4YzI3Yjg4Li42MTYwNzA5MGQy
NmM5OWMxYWUyNTNmNWE0ZWM1ZDY2ZDUxYzNkNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
d2luL0V2ZW50SGFuZGxlcldpbi5jcHAKQEAgLTExMiw5ICsxMTIsOSBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdp
dGhIaXRUZXN0UgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdW5zaWduZWQgRXZlbnRIYW5kbGVy
OjphY2Nlc3NLZXlNb2RpZmllcnMoKQorT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVy
PiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygpCiB7Ci0gICAgcmV0dXJuIFBsYXRm
b3JtRXZlbnQ6OkFsdEtleTsKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkFs
dEtleTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4
IGRiZDBiNzAwYzlkN2E1ZGUxMGQzZTJkZmFkNDk5M2E5MWQ0Y2JjMzYuLmNhNTRiN2VmZGVjMDMz
NjliZTMxNzRjNzc3ZTFjM2ZhYzk1NmUzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50LmgKQEAgLTIzLDggKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFBsYXRmb3JtRXZlbnRfaAotI2RlZmluZSBQbGF0Zm9y
bUV2ZW50X2gKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY4LDcgKzY5LDcgQEAgcHVibGljOgogI2VuZGlmCiAg
ICAgfTsKIAotICAgIGVudW0gTW9kaWZpZXJzIDogdWludDhfdCB7CisgICAgZW51bSBjbGFzcyBN
b2RpZmllciB7CiAgICAgICAgIEFsdEtleSAgICAgID0gMSA8PCAwLAogICAgICAgICBDdHJsS2V5
ICAgICA9IDEgPDwgMSwKICAgICAgICAgTWV0YUtleSAgICAgPSAxIDw8IDIsCkBAIC03NywzMSAr
NzgsMjkgQEAgcHVibGljOgogCiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8VHlwZT4obV90eXBlKTsgfQogCi0gICAgYm9vbCBzaGlmdEtleSgpIGNvbnN0IHsgcmV0
dXJuIG1fbW9kaWZpZXJzICYgU2hpZnRLZXk7IH0KLSAgICBib29sIGN0cmxLZXkoKSBjb25zdCB7
IHJldHVybiBtX21vZGlmaWVycyAmIEN0cmxLZXk7IH0KLSAgICBib29sIGFsdEtleSgpIGNvbnN0
IHsgcmV0dXJuIG1fbW9kaWZpZXJzICYgQWx0S2V5OyB9Ci0gICAgYm9vbCBtZXRhS2V5KCkgY29u
c3QgeyByZXR1cm4gbV9tb2RpZmllcnMgJiBNZXRhS2V5OyB9CisgICAgYm9vbCBzaGlmdEtleSgp
IGNvbnN0IHsgcmV0dXJuIG1fbW9kaWZpZXJzLmNvbnRhaW5zKE1vZGlmaWVyOjpTaGlmdEtleSk7
IH0KKyAgICBib29sIGN0cmxLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVycy5jb250YWlu
cyhNb2RpZmllcjo6Q3RybEtleSk7IH0KKyAgICBib29sIGFsdEtleSgpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kaWZpZXJzLmNvbnRhaW5zKE1vZGlmaWVyOjpBbHRLZXkpOyB9CisgICAgYm9vbCBtZXRh
S2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9kaWZpZXI6Ok1ldGFL
ZXkpOyB9CiAKLSAgICB1bnNpZ25lZCBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBtX21vZGlm
aWVyczsgfQorICAgIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzKCkgY29uc3QgeyByZXR1
cm4gbV9tb2RpZmllcnM7IH0KIAogICAgIGRvdWJsZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVy
biBtX3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCiAgICAg
ICAgIDogbV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX21vZGlmaWVycygwKQogICAgICAgICAs
IG1fdGltZXN0YW1wKDApCiAgICAgewogICAgIH0KIAogICAgIGV4cGxpY2l0IFBsYXRmb3JtRXZl
bnQoVHlwZSB0eXBlKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fbW9kaWZp
ZXJzKDApCiAgICAgICAgICwgbV90aW1lc3RhbXAoMCkKICAgICB7CiAgICAgfQogCi0gICAgUGxh
dGZvcm1FdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApCisgICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9wdGlvblNldDxNb2RpZmllcj4gbW9k
aWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAg
ICAsIG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3Rh
bXApCkBAIC0xMTAsMTcgKzEwOSwxNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBQbGF0Zm9ybUV2ZW50
KFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9v
bCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAg
ICAgICAsIG1fbW9kaWZpZXJzKDApCiAgICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQog
ICAgIHsKICAgICAgICAgaWYgKHNoaWZ0S2V5KQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0g
U2hpZnRLZXk7CisgICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6U2hpZnRLZXk7
CiAgICAgICAgIGlmIChjdHJsS2V5KQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gQ3RybEtl
eTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpDdHJsS2V5OwogICAgICAg
ICBpZiAoYWx0S2V5KQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gQWx0S2V5OworICAgICAg
ICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OkFsdEtleTsKICAgICAgICAgaWYgKG1ldGFL
ZXkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNZXRhS2V5OworICAgICAgICAgICAgbV9t
b2RpZmllcnMgfD0gTW9kaWZpZXI6Ok1ldGFLZXk7CiAgICAgfQogCiAgICAgLy8gRXhwbGljaXQg
cHJvdGVjdGVkIGRlc3RydWN0b3Igc28gdGhhdCBwZW9wbGUgZG9uJ3QgYWNjaWRlbnRhbGx5CkBA
IC0xMzAsMTAgKzEyOCw4IEBAIHByb3RlY3RlZDoKICAgICB9CiAKICAgICB1bnNpZ25lZCBtX3R5
cGU7Ci0gICAgdW5zaWduZWQgbV9tb2RpZmllcnM7CisgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBt
X21vZGlmaWVyczsKICAgICBkb3VibGUgbV90aW1lc3RhbXA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBQbGF0Zm9ybUV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKaW5kZXggNTc4NTI2NjAwMzM0YTc5
NDcxM2E2YmZhMGMzNTg5MjE2OGJjYjA5Ni4uZTFmMDhkYzg5MzllMDFjYjJkYTUyYzllMzlmNTAz
ZTkxZjgyZmRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgKQEAgLTI0LDggKzI0LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNp
Zm5kZWYgUGxhdGZvcm1LZXlib2FyZEV2ZW50X2gKLSNkZWZpbmUgUGxhdGZvcm1LZXlib2FyZEV2
ZW50X2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiS2V5cHJlc3NDb21tYW5kLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1FdmVudC5oIgpAQCAtNzMsNyArNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVk
VGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlD
b2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1
dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCisgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudChU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4
dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9S
ZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE9wdGlvblNldDxNb2RpZmll
cj4gbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQogICAgICAgICAgICAgOiBQbGF0Zm9ybUV2
ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICAgICAgICAgLCBtX3RleHQodGV4
dCkKICAgICAgICAgICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKQEAgLTE5
Miw1ICsxOTEsMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgfTsKICAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFBsYXRmb3JtS2V5Ym9hcmRFdmVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50
R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZl
bnRHdGsuY3BwCmluZGV4IGNmODllMDBmYTdhOTJlZDdlZjQ0OWQ1MDhmMWZmNDhkYjlmYWJkOTgu
LmZiNzQzOTZjNjBlMWRiMjVmOWI1MmQ5NTc2ZTAxODU5ZmUxZTM1MTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsu
Y3BwCkBAIC01NTUsMTggKzU1NSwxOCBAQCBzdGF0aWMgUGxhdGZvcm1FdmVudDo6VHlwZSBldmVu
dFR5cGVGb3JHZGtLZXlFdmVudChHZGtFdmVudEtleSogZXZlbnQpCiAgICAgcmV0dXJuIGV2ZW50
LT50eXBlID09IEdES19LRVlfUkVMRUFTRSA/IFBsYXRmb3JtRXZlbnQ6OktleVVwIDogUGxhdGZv
cm1FdmVudDo6S2V5RG93bjsKIH0KIAotc3RhdGljIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVycyBt
b2RpZmllcnNGb3JHZGtLZXlFdmVudChHZGtFdmVudEtleSogZXZlbnQpCitzdGF0aWMgT3B0aW9u
U2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnNGb3JHZGtLZXlFdmVudChHZGtF
dmVudEtleSogZXZlbnQpCiB7Ci0gICAgdW5zaWduZWQgaW50IG1vZGlmaWVycyA9IDA7CisgICAg
T3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnM7CiAgICAgaWYgKGV2
ZW50LT5zdGF0ZSAmIEdES19TSElGVF9NQVNLIHx8IGV2ZW50LT5rZXl2YWwgPT0gR0RLXzMyNzBf
QmFja1RhYikKLSAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6OlNoaWZ0S2V5Owor
ICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5Owog
ICAgIGlmIChldmVudC0+c3RhdGUgJiBHREtfQ09OVFJPTF9NQVNLKQotICAgICAgICBtb2RpZmll
cnMgfD0gUGxhdGZvcm1FdmVudDo6Q3RybEtleTsKKyAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRm
b3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJsS2V5OwogICAgIGlmIChldmVudC0+c3RhdGUgJiBHREtf
TU9EMV9NQVNLKQotICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6QWx0S2V5Owor
ICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkFsdEtleTsKICAg
ICBpZiAoZXZlbnQtPnN0YXRlICYgR0RLX01FVEFfTUFTSykKLSAgICAgICAgbW9kaWZpZXJzIHw9
IFBsYXRmb3JtRXZlbnQ6Ok1ldGFLZXk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFBsYXRmb3Jt
RXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKTsKKyAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRm
b3JtRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5OworICAgIHJldHVybiBtb2RpZmllcnM7CiB9CiAK
IC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIG90aGVyIHBsYXRmb3JtIGV2ZW50IGNvbnN0
cnVjdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
TW91c2VFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1N
b3VzZUV2ZW50R3RrLmNwcAppbmRleCA5ZDY2MTFhYjFjNTA1MjVlMDZhMDcwM2Y0ZWNmNTczNzZi
MjlkNTgyLi4yMDI1Mjg2MDY1M2VmOTEwNmQ3ZDBhMjVhMGQzNjJlMzA3ODYyZWE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3Rr
LmNwcApAQCAtNDIsMTUgKzQyLDE0IEBAIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3Vz
ZUV2ZW50KEdka0V2ZW50QnV0dG9uKiBldmVudCkKICAgICBtX3Bvc2l0aW9uID0gSW50UG9pbnQo
KGludClldmVudC0+eCwgKGludClldmVudC0+eSk7CiAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IElu
dFBvaW50KChpbnQpZXZlbnQtPnhfcm9vdCwgKGludClldmVudC0+eV9yb290KTsKIAotICAgIG1f
bW9kaWZpZXJzID0gMDsKICAgICBpZiAoZXZlbnQtPnN0YXRlICYgR0RLX1NISUZUX01BU0spCi0g
ICAgICAgIG1fbW9kaWZpZXJzIHw9IFNoaWZ0S2V5OworICAgICAgICBtX21vZGlmaWVycyB8PSBN
b2RpZmllcnM6OlNoaWZ0S2V5OwogICAgIGlmIChldmVudC0+c3RhdGUgJiBHREtfQ09OVFJPTF9N
QVNLKQotICAgICAgICBtX21vZGlmaWVycyB8PSBDdHJsS2V5OworICAgICAgICBtX21vZGlmaWVy
cyB8PSBNb2RpZmllcnM6OkN0cmxLZXk7CiAgICAgaWYgKGV2ZW50LT5zdGF0ZSAmIEdES19NT0Qx
X01BU0spCi0gICAgICAgIG1fbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICAgICAgbV9tb2RpZmll
cnMgfD0gTW9kaWZpZXJzOjpBbHRLZXk7CiAgICAgaWYgKGV2ZW50LT5zdGF0ZSAmIEdES19NRVRB
X01BU0spCi0gICAgICAgIG1fbW9kaWZpZXJzIHw9IE1ldGFLZXk7CisgICAgICAgIG1fbW9kaWZp
ZXJzIHw9IE1vZGlmaWVyczo6TWV0YUtleTsKIAogICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUpIHsK
ICAgICBjYXNlIEdES19CVVRUT05fUFJFU1M6CkBAIC04NywxNSArODYsMTQgQEAgUGxhdGZvcm1N
b3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRNb3Rpb24qIG1vdGlvbikKICAg
ICBtX3Bvc2l0aW9uID0gSW50UG9pbnQoKGludCltb3Rpb24tPngsIChpbnQpbW90aW9uLT55KTsK
ICAgICBtX2dsb2JhbFBvc2l0aW9uID0gSW50UG9pbnQoKGludCltb3Rpb24tPnhfcm9vdCwgKGlu
dCltb3Rpb24tPnlfcm9vdCk7CiAKLSAgICBtX21vZGlmaWVycyA9IDA7CiAgICAgaWYgKG1vdGlv
bi0+c3RhdGUgJiBHREtfU0hJRlRfTUFTSykKLSAgICAgICAgbV9tb2RpZmllcnMgfD0gU2hpZnRL
ZXk7CisgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyczo6U2hpZnRLZXk7CiAgICAgaWYg
KG1vdGlvbi0+c3RhdGUgJiBHREtfQ09OVFJPTF9NQVNLKQotICAgICAgICBtX21vZGlmaWVycyB8
PSBDdHJsS2V5OworICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcnM6OkN0cmxLZXk7CiAg
ICAgaWYgKG1vdGlvbi0+c3RhdGUgJiBHREtfTU9EMV9NQVNLKQotICAgICAgICBtX21vZGlmaWVy
cyB8PSBBbHRLZXk7CisgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyczo6QWx0S2V5Owog
ICAgIGlmIChtb3Rpb24tPnN0YXRlICYgR0RLX01FVEFfTUFTSykKLSAgICAgICAgbV9tb2RpZmll
cnMgfD0gTWV0YUtleTsKKyAgICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXJzOjpNZXRhS2V5
OwogCiAgICAgc3dpdGNoIChtb3Rpb24tPnR5cGUpIHsKICAgICBjYXNlIEdES19NT1RJT05fTk9U
SUZZOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZl
bnRGYWN0b3J5SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZl
bnRGYWN0b3J5SU9TLm1tCmluZGV4IGY5NTkwZjA3YjM2ZGJjYzJhMzU5ZDQ3OWQzYTcwMGQzY2Fm
MjZlNTEuLjllNTYwZmY3ZTVjYWQ4NTAyODhmZTllN2EyZGIyZTliODhkYzNmMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJ
T1MubW0KQEAgLTM1LDE4ICszNSwxOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyB1bnNpZ25lZCBtb2RpZmllcnNGb3JFdmVudChXZWJFdmVudCAqZXZlbnQpCitzdGF0aWMgT3B0
aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnNGb3JFdmVudChXZWJFdmVu
dCAqZXZlbnQpCiB7Ci0gICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAgICBPcHRpb25TZXQ8
UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyczsKIAogICAgIGlmIChldmVudC5tb2Rp
ZmllckZsYWdzICYgV2ViRXZlbnRGbGFnTWFza1NoaWZ0KQotICAgICAgICBtb2RpZmllcnMgfD0g
UGxhdGZvcm1FdmVudDo6U2hpZnRLZXk7CisgICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2
ZW50OjpNb2RpZmllcjo6U2hpZnRLZXk7CiAgICAgaWYgKGV2ZW50Lm1vZGlmaWVyRmxhZ3MgJiBX
ZWJFdmVudEZsYWdNYXNrQ29udHJvbCkKLSAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZl
bnQ6OkN0cmxLZXk7CisgICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmll
cjo6Q3RybEtleTsKICAgICBpZiAoZXZlbnQubW9kaWZpZXJGbGFncyAmIFdlYkV2ZW50RmxhZ01h
c2tBbHRlcm5hdGUpCi0gICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpBbHRLZXk7
CisgICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0S2V5Owog
ICAgIGlmIChldmVudC5tb2RpZmllckZsYWdzICYgV2ViRXZlbnRGbGFnTWFza0NvbW1hbmQpCi0g
ICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpNZXRhS2V5OworICAgICAgICBtb2Rp
ZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXk7CiAKICAgICByZXR1cm4g
bW9kaWZpZXJzOwogfQpAQCAtODIsNyArODIsNiBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1Nb3Vz
ZUV2ZW50QnVpbGRlcihXZWJFdmVudCAqZXZlbnQpCiAgICAgewogICAgICAgICBtX3R5cGUgPSBt
b3VzZUV2ZW50VHlwZShldmVudCk7Ci0gICAgICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICAgICAg
bV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOwogCiAgICAgICAgIG1fcG9zaXRpb24gPSBwb2lu
dEZvckV2ZW50KGV2ZW50KTsKQEAgLTEwNCw3ICsxMDMsNiBAQCBwdWJsaWM6CiAgICAgICAgIEFT
U0VSVChldmVudC50eXBlID09IFdlYkV2ZW50U2Nyb2xsV2hlZWwpOwogCiAgICAgICAgIG1fdHlw
ZSA9IFBsYXRmb3JtRXZlbnQ6OldoZWVsOwotICAgICAgICBtX21vZGlmaWVycyA9IDA7CiAgICAg
ICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKIAogICAgICAgICBtX3Bvc2l0aW9uID0g
cG9pbnRGb3JFdmVudChldmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggYTc0NzQ3M2NkMTUwNzI1YzNi
YjIzZDIyZDY1ZGNiNzE2ZWQzOGM2Mi4uYzMyMDM4MjIxMDc0MTljOWQ2YzVmYzRjMzY0M2IzNjll
MmYxZjRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNDI2LDIxICs0MjYsMjEgQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgUGxhdGZvcm1FdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVyc0ZvckV2
ZW50KE5TRXZlbnQgKmV2ZW50KQorc3RhdGljIGlubGluZSBPcHRpb25TZXQ8UGxhdGZvcm1FdmVu
dDo6TW9kaWZpZXI+IG1vZGlmaWVyc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7
Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TU2hpZnRLZXlNYXNrKQotICAgICAg
ICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6U2hpZnRLZXk7Ci0gICAgaWYgKFtldmVudCBt
b2RpZmllckZsYWdzXSAmIE5TQ29udHJvbEtleU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBQ
bGF0Zm9ybUV2ZW50OjpDdHJsS2V5OwotICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBO
U0FsdGVybmF0ZUtleU1hc2spCi0gICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpB
bHRLZXk7Ci0gICAgaWYgKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1hc2sp
Ci0gICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpNZXRhS2V5OworICAgIE9wdGlv
blNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzOworICAgIGlmIChldmVudC5t
b2RpZmllckZsYWdzICYgTlNTaGlmdEtleU1hc2spCisgICAgICAgIG1vZGlmaWVycyB8PSBQbGF0
Zm9ybUV2ZW50OjpNb2RpZmllcjo6U2hpZnRLZXk7CisgICAgaWYgKGV2ZW50Lm1vZGlmaWVyRmxh
Z3MgJiBOU0NvbnRyb2xLZXlNYXNrKQorICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVu
dDo6TW9kaWZpZXI6OkN0cmxLZXk7CisgICAgaWYgKGV2ZW50Lm1vZGlmaWVyRmxhZ3MgJiBOU0Fs
dGVybmF0ZUtleU1hc2spCisgICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpNb2Rp
Zmllcjo6QWx0S2V5OworICAgIGlmIChldmVudC5tb2RpZmllckZsYWdzICYgTlNDb21tYW5kS2V5
TWFzaykKKyAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpNZXRh
S2V5OwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgIHJldHVybiAoUGxhdGZvcm1F
dmVudDo6TW9kaWZpZXJzKW1vZGlmaWVyczsKKyAgICByZXR1cm4gbW9kaWZpZXJzOwogfQogCiBz
dGF0aWMgaW50IHR5cGVGb3JFdmVudChOU0V2ZW50ICpldmVudCkKQEAgLTQ1MSw3ICs0NTEsNyBA
QCBzdGF0aWMgaW50IHR5cGVGb3JFdmVudChOU0V2ZW50ICpldmVudCkKICAgICBpZiAobW91c2VC
dXR0b25Gb3JFdmVudChldmVudCkgPT0gUmlnaHRCdXR0b24pCiAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxpbnQ+KE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiAKLSAgICBpZiAobW91c2VCdXR0
b25Gb3JFdmVudChldmVudCkgPT0gTGVmdEJ1dHRvbiAmJiAobW9kaWZpZXJzRm9yRXZlbnQoZXZl
bnQpICYgUGxhdGZvcm1FdmVudDo6Q3RybEtleSkpCisgICAgaWYgKG1vdXNlQnV0dG9uRm9yRXZl
bnQoZXZlbnQpID09IExlZnRCdXR0b24gJiYgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLmNvbnRh
aW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJsS2V5KSkKICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGludD4oTlNNZW51VHlwZUNvbnRleHRNZW51KTsKIAogICAgIHJldHVybiBzdGF0
aWNfY2FzdDxpbnQ+KE5TTWVudVR5cGVOb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkv
U2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwCmluZGV4IDQ4NjA1YjI2MTNhZWUwODZjMWIwODM5YTcz
MGEwY2FkMzk1MGMyN2QuLmE2MmY3OGRkNjAxNGJkYjY2ZDdiY2ZjNGE3NTczMDVkM2Q5ZmIwMzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcApA
QCAtMjUzLDcgKzI1Myw3IEBAIEVuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQ+OjplbmNvZGVWYWx1ZShjb25zdCBQbGF0Zm9ybUtlCiAKICAgICBFTkNPREVf
VFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIGRvdWJsZSwgdGltZXN0YW1wLCBpbnB1dC50aW1l
c3RhbXAoKSk7CiAgICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBQbGF0Zm9y
bUV2ZW50OjpUeXBlLCB0eXBlLCBpbnB1dC50eXBlKCkpOwotICAgIEVOQ09ERV9UWVBFX1dJVEhf
S0VZKGVuY29kZWRWYWx1ZSwgUGxhdGZvcm1FdmVudDo6TW9kaWZpZXJzLCBtb2RpZmllcnMsIHN0
YXRpY19jYXN0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVycz4oaW5wdXQubW9kaWZpZXJzKCkpKTsK
KyAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFBsYXRmb3JtRXZlbnQ6Ok1v
ZGlmaWVyLCBtb2RpZmllcnMsIGlucHV0Lm1vZGlmaWVycygpKTsKICAgICBFTkNPREVfVFlQRV9X
SVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdGV4dCwgaW5wdXQudGV4dCgpKTsKICAgICBF
TkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdW5tb2RpZmllZFRleHQs
IGlucHV0LnVubW9kaWZpZWRUZXh0KCkpOwogICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29k
ZWRWYWx1ZSwgU3RyaW5nLCBrZXlJZGVudGlmaWVyLCBpbnB1dC5rZXlJZGVudGlmaWVyKCkpOwpA
QCAtMjc0LDcgKzI3NCw3IEBAIGJvb2wgRW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1LZXlib2FyZEV2
ZW50Pjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsCiB7CiAgICAgREVDT0RF
X1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBkb3VibGUsIHRpbWVzdGFtcCk7CiAgICAgREVD
T0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBQbGF0Zm9ybUV2ZW50OjpUeXBlLCB0eXBl
KTsKLSAgICBERUNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFBsYXRmb3JtRXZlbnQ6
Ok1vZGlmaWVycywgbW9kaWZpZXJzKTsKKyAgICBERUNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVk
VmFsdWUsIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyLCBtb2RpZmllcnMpOwogICAgIERFQ09ERV9U
WVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgU3RyaW5nLCB0ZXh0KTsKICAgICBERUNPREVfVFlQ
RV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdW5tb2RpZmllZFRleHQpOwogICAgIERF
Q09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgU3RyaW5nLCBrZXlJZGVudGlmaWVyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNvbiBiL1NvdXJj
ZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNvbgppbmRleCA3ZDliNTQ0OTVjNzhjNzgyNzlk
NzM3Njc5MTdlN2Q5N2Q3NzYwZjljLi5iN2U1YmNkODMwZTA5MWFjYzJhNmMxMDA3NjJhNmNjYTY2
N2JlMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24K
KysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1dlYklucHV0cy5qc29uCkBAIC0xMyw5ICsxMyw5
IEBACiAgICAgICAgICAgICAgICAgImhlYWRlciI6ICJyZXBsYXkvTWVtb2l6ZWRET01SZXN1bHQu
aCIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUi
OiAiTW9kaWZpZXJzIiwgIm1vZGUiOiAiU0NBTEFSIiwgInN0b3JhZ2UiOiAidWludDhfdCIsCisg
ICAgICAgICAgICAgICAgIm5hbWUiOiAiTW9kaWZpZXIiLCAibW9kZSI6ICJTQ0FMQVIiLAogICAg
ICAgICAgICAgICAgICJlbmNsb3NpbmdfY2xhc3MiOiAiUGxhdGZvcm1FdmVudCIsCi0gICAgICAg
ICAgICAgICAgImZsYWdzIjogWyJFTlVNIl0sCisgICAgICAgICAgICAgICAgImZsYWdzIjogWyJP
UFRJT05fU0VUIl0sCiAgICAgICAgICAgICAgICAgInZhbHVlcyI6IFsiQWx0S2V5IiwgIkN0cmxL
ZXkiLCAiTWV0YUtleSIsICJTaGlmdEtleSJdLAogICAgICAgICAgICAgICAgICJoZWFkZXIiOiAi
cGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIgogICAgICAgICAgICAgfSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggMmEwODcwMGQyZTAyNTU0MTIy
ZWQyZmNmMTQyMTcxZDlkMDRlMTNhMy4uNjg2NWRkOGY5OWIxMjY1YjI0ODk0YzQ1OTBhZDFhY2Q4
NzFiOWQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVy
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5j
cHAKQEAgLTY4LDE1ICs2OCwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICAgICAg
aWYgKHdlYkV2ZW50LnNoaWZ0S2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBTaGlm
dEtleTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpTaGlmdEtleTsKICAg
ICAgICAgaWYgKHdlYkV2ZW50LmNvbnRyb2xLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJz
IHw9IEN0cmxLZXk7CisgICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6Q3RybEtl
eTsKICAgICAgICAgaWYgKHdlYkV2ZW50LmFsdEtleSgpKQotICAgICAgICAgICAgbV9tb2RpZmll
cnMgfD0gQWx0S2V5OworICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OkFsdEtl
eTsKICAgICAgICAgaWYgKHdlYkV2ZW50Lm1ldGFLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZp
ZXJzIHw9IE1ldGFLZXk7CisgICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6TWV0
YUtleTsKIAogICAgICAgICBtX3RpbWVzdGFtcCA9IHdlYkV2ZW50LnRpbWVzdGFtcCgpOwogCkBA
IC0xMDUsMTYgKzEwNCw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9ldmVudE51bWJlciA9IHdlYkV2
ZW50LmV2ZW50TnVtYmVyKCk7CiAgICAgICAgIG1fbWVudVR5cGVGb3JFdmVudCA9IHdlYkV2ZW50
Lm1lbnVUeXBlRm9yRXZlbnQoKTsKICNlbmRpZgotCi0gICAgICAgIG1fbW9kaWZpZXJGbGFncyA9
IDA7Ci0gICAgICAgIGlmICh3ZWJFdmVudC5zaGlmdEtleSgpKQotICAgICAgICAgICAgbV9tb2Rp
ZmllckZsYWdzIHw9IFdlYkV2ZW50OjpTaGlmdEtleTsKLSAgICAgICAgaWYgKHdlYkV2ZW50LmNv
bnRyb2xLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJGbGFncyB8PSBXZWJFdmVudDo6Q29u
dHJvbEtleTsKLSAgICAgICAgaWYgKHdlYkV2ZW50LmFsdEtleSgpKQotICAgICAgICAgICAgbV9t
b2RpZmllckZsYWdzIHw9IFdlYkV2ZW50OjpBbHRLZXk7Ci0gICAgICAgIGlmICh3ZWJFdmVudC5t
ZXRhS2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVyRmxhZ3MgfD0gV2ViRXZlbnQ6Ok1ldGFL
ZXk7CiAgICAgfQogfTsKIApAQCAtMTMwLDE1ICsxMTksMTQgQEAgcHVibGljOgogICAgICAgICAv
LyBQbGF0Zm9ybUV2ZW50CiAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6OldoZWVsOwog
Ci0gICAgICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICAgICAgaWYgKHdlYkV2ZW50LnNoaWZ0S2V5
KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBTaGlmdEtleTsKKyAgICAgICAgICAgIG1f
bW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpTaGlmdEtleTsKICAgICAgICAgaWYgKHdlYkV2ZW50LmNv
bnRyb2xLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisgICAgICAg
ICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6Q3RybEtleTsKICAgICAgICAgaWYgKHdlYkV2
ZW50LmFsdEtleSgpKQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gQWx0S2V5OworICAgICAg
ICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OkFsdEtleTsKICAgICAgICAgaWYgKHdlYkV2
ZW50Lm1ldGFLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1ldGFLZXk7CisgICAg
ICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6TWV0YUtleTsKIAogICAgICAgICBtX3Rp
bWVzdGFtcCA9IHdlYkV2ZW50LnRpbWVzdGFtcCgpOwogCkBAIC0xODksMTUgKzE3NywxNCBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogCi0g
ICAgICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICAgICAgaWYgKHdlYkV2ZW50LnNoaWZ0S2V5KCkp
Ci0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBTaGlmdEtleTsKKyAgICAgICAgICAgIG1fbW9k
aWZpZXJzIHw9IE1vZGlmaWVyOjpTaGlmdEtleTsKICAgICAgICAgaWYgKHdlYkV2ZW50LmNvbnRy
b2xLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisgICAgICAgICAg
ICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6Q3RybEtleTsKICAgICAgICAgaWYgKHdlYkV2ZW50
LmFsdEtleSgpKQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gQWx0S2V5OworICAgICAgICAg
ICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OkFsdEtleTsKICAgICAgICAgaWYgKHdlYkV2ZW50
Lm1ldGFLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1ldGFLZXk7CisgICAgICAg
ICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6TWV0YUtleTsKIAogICAgICAgICBtX3RpbWVz
dGFtcCA9IHdlYkV2ZW50LnRpbWVzdGFtcCgpOwogCkBAIC0zMjUsMTUgKzMxMiwxNCBAQCBwdWJs
aWM6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogCi0gICAg
ICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICAgICAgaWYgKHdlYkV2ZW50LnNoaWZ0S2V5KCkpCi0g
ICAgICAgICAgICBtX21vZGlmaWVycyB8PSBTaGlmdEtleTsKKyAgICAgICAgICAgIG1fbW9kaWZp
ZXJzIHw9IFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleTsKICAgICAgICAgaWYgKHdl
YkV2ZW50LmNvbnRyb2xLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IEN0cmxLZXk7
CisgICAgICAgICAgICBtX21vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3Ry
bEtleTsKICAgICAgICAgaWYgKHdlYkV2ZW50LmFsdEtleSgpKQotICAgICAgICAgICAgbV9tb2Rp
ZmllcnMgfD0gQWx0S2V5OworICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVu
dDo6TW9kaWZpZXI6OkFsdEtleTsKICAgICAgICAgaWYgKHdlYkV2ZW50Lm1ldGFLZXkoKSkKLSAg
ICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1ldGFLZXk7CisgICAgICAgICAgICBtX21vZGlmaWVy
cyB8PSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6TWV0YUtleTsKIAogICAgICAgICBtX3RpbWVz
dGFtcCA9IHdlYkV2ZW50LnRpbWVzdGFtcCgpOwogCkBAIC0zODMsMTUgKzM2OSwxNCBAQCBwdWJs
aWM6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogCi0gICAg
ICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICAgICAgaWYgKHdlYkV2ZW50LnNoaWZ0S2V5KCkpCi0g
ICAgICAgICAgICBtX21vZGlmaWVycyB8PSBTaGlmdEtleTsKKyAgICAgICAgICAgIG1fbW9kaWZp
ZXJzIHw9IE1vZGlmaWVyOjpTaGlmdEtleTsKICAgICAgICAgaWYgKHdlYkV2ZW50LmNvbnRyb2xL
ZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisgICAgICAgICAgICBt
X21vZGlmaWVycyB8PSBNb2RpZmllcjo6Q3RybEtleTsKICAgICAgICAgaWYgKHdlYkV2ZW50LmFs
dEtleSgpKQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gQWx0S2V5OworICAgICAgICAgICAg
bV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OkFsdEtleTsKICAgICAgICAgaWYgKHdlYkV2ZW50Lm1l
dGFLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1ldGFLZXk7CisgICAgICAgICAg
ICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6TWV0YUtleTsKIAogICAgICAgICBtX3RpbWVzdGFt
cCA9IHdlYkV2ZW50LnRpbWVzdGFtcCgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289593</attachid>
            <date>2016-09-22 14:01:12 -0700</date>
            <delta_ts>2016-09-22 14:22:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162326-20160922135822.patch</filename>
            <type>text/plain</type>
            <size>28754</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmMzY0MjZlNGY4MmUwYzY1ZjFiNDk1
MWNjMWQ0OWU4YjViZDI3ODkuLjBmYmM3Y2QwOWJhM2JkYjZmMjJjZGMyZmQyYzRjNzI0MjU1YmUx
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDktMjAgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBQbGF0Zm9ybUV2ZW50OjptX21vZGlmaWVycyBz
aG91bGQgYmUgYW4gT3B0aW9uU2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjIzMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHd0Zi9PcHRpb25TZXQuaDoKKyAgICAgICAgKFdURjo6T3B0aW9uU2V0
OjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdURjo6T3B0aW9uU2V0OjpvcGVyYXRvci0pOgorCiAy
MDE2LTA5LTIxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAg
IFJvbGxpbmcgb3V0IHIyMDYyNDQsIGFzIGl0IGNhdXNlZCBmbGFreSBjcmFzaGVzIG9uIHRlc3Rz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDRhM2RhNDdiYjIzZGE3OWNkY2JhMTQ2NjUwYzEwZTZlZmY5YjZlOTEu
LjNiZTA0ZjU1MjEzMmExODI5NmMwZmRiYzE0M2ViNzcyYWNjZWU4OWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAxNi0wOS0yMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgorCisgICAgICAgIFBsYXRmb3JtRXZlbnQ6Om1fbW9kaWZpZXJzIHNob3VsZCBiZSBh
biBPcHRpb25TZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MjMyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVBY2Nlc3NLZXkpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6Cisg
ICAgICAgICogcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjphY2Nlc3NLZXlNb2RpZmllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL1Bs
YXRmb3JtRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OnNoaWZ0S2V5
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OmN0cmxLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6YWx0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtRXZlbnQ6Om1ldGFLZXkpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6bW9k
aWZpZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OlBsYXRmb3JtRXZlbnQp
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6Om1vZGlmaWVyc0ZvckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnR5cGVG
b3JFdmVudCk6CisgICAgICAgICogcmVwbGF5L1NlcmlhbGl6YXRpb25NZXRob2RzLmNwcDoKKyAg
ICAgICAgKEpTQzo6RW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1LZXlib2FyZEV2ZW50Pjo6ZW5jb2Rl
VmFsdWUpOgorICAgICAgICAoSlNDOjpFbmNvZGluZ1RyYWl0czxQbGF0Zm9ybUtleWJvYXJkRXZl
bnQ+OjpkZWNvZGVWYWx1ZSk6CisgICAgICAgICogcmVwbGF5L1dlYklucHV0cy5qc29uOgorCiAy
MDE2LTA5LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IHNlcmlhbGl6YXRpb24gb2YgSFRNTCB2b2lkIGVsZW1lbnRzIHdoZW4gdGhleSBoYXZlIGNoaWxk
cmVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNDZiYTY1NGJkNDFjNDcyNzljYzQ5NTY2N2E0MjMzMWZkYjVhMTIz
NC4uNTNjOGY5M2FkNjYwODk1ZWE4NDgxMDZkMWZjZDE5NzA4YzNmODdlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDE2LTA5LTIwICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CisKKyAgICAgICAgUGxhdGZvcm1FdmVudDo6bV9tb2RpZmllcnMgc2hvdWxkIGJl
IGFuIE9wdGlvblNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYyMzI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViS2l0MlBsYXRmb3JtTW91c2VFdmVudDo6V2ViS2l0MlBsYXRmb3JtTW91c2VFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0Zm9ybVdoZWVsRXZlbnQ6OldlYktpdDJQbGF0Zm9y
bVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXQyUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpXZWJLaXQyUGxhdGZvcm1LZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
S2l0MlBsYXRmb3JtR2VzdHVyZUV2ZW50OjpXZWJLaXQyUGxhdGZvcm1HZXN0dXJlRXZlbnQpOgor
CiAyMDE2LTA5LTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBdXRvbWF0aWMgVGV4dCBSZXBsYWNlbWVudCBUZXN0aW5nIGluIFdlYktpdDIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL09wdGlvblNldC5oIGIvU291cmNlL1dURi93dGYvT3B0aW9u
U2V0LmgKaW5kZXggZDliMTE0NzhhOWZmMTRiZjJmZTg4MDc2YzVkNTk4NGUyMzdmZDM4MS4uNTEz
NmY4N2RjMzg1MDRlMDg4NjQxZWNkYzZjMGUwZDlhZDA2MmE5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvT3B0aW9uU2V0LmgKKysrIGIvU291cmNlL1dURi93dGYvT3B0aW9uU2V0LmgKQEAg
LTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIH07CiAgICAgdXNpbmcgaXRlcmF0b3IgPSBJdGVy
YXRvcjxTdG9yYWdlVHlwZT47CiAKLSAgICBzdGF0aWMgT3B0aW9uU2V0IGZyb21SYXcoU3RvcmFn
ZVR5cGUgc3RvcmFnZVR5cGUpCisgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRpb25TZXQgZnJvbVJh
dyhTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSkKICAgICB7CiAgICAgICAgIHJldHVybiBPcHRpb25T
ZXQoc3RhdGljX2Nhc3Q8VD4oc3RvcmFnZVR5cGUpLCBGcm9tUmF3VmFsdWUpOwogICAgIH0KQEAg
LTEwOSw2ICsxMDksMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9zdG9yYWdlICYgb3B0
aW9uU2V0Lm1fc3RvcmFnZTsKICAgICB9CiAKKyAgICBjb25zdGV4cHIgZnJpZW5kIGJvb2wgb3Bl
cmF0b3IhPShPcHRpb25TZXQgbGhzLCBPcHRpb25TZXQgcmhzKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGxocy5tX3N0b3JhZ2UgIT0gcmhzLm1fc3RvcmFnZTsKKyAgICB9CisKICAgICBmcmllbmQg
T3B0aW9uU2V0JiBvcGVyYXRvcnw9KE9wdGlvblNldCYgbGhzLCBPcHRpb25TZXQgcmhzKQogICAg
IHsKICAgICAgICAgbGhzLm1fc3RvcmFnZSB8PSByaHMubV9zdG9yYWdlOwpAQCAtMTE2LDYgKzEy
MSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBsaHM7CiAgICAgfQogCisgICAgY29uc3Rl
eHByIGZyaWVuZCBPcHRpb25TZXQgb3BlcmF0b3ItKE9wdGlvblNldCBsaHMsIE9wdGlvblNldCBy
aHMpCisgICAgeworICAgICAgICByZXR1cm4gT3B0aW9uU2V0Ojpmcm9tUmF3KGxocy5tX3N0b3Jh
Z2UgJiB+cmhzLm1fc3RvcmFnZSk7CisgICAgfQorCiBwcml2YXRlOgogICAgIGVudW0gSW5pdGlh
bGl6YXRpb25UYWcgeyBGcm9tUmF3VmFsdWUgfTsKICAgICBjb25zdGV4cHIgT3B0aW9uU2V0KFQg
dCwgSW5pdGlhbGl6YXRpb25UYWcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5k
ZXggNDlhYzY1MDBlYWJiODM1NjcxZTMyOTJlMTJiMTA4YjRhNjZiYjNjNi4uOWMxZWEyNTVkY2Jm
MWE1MjllZDQwZDQwN2YwNTM5NjEyMGVjZDhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtMjk3MSw4ICsyOTcxLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUFj
Y2Vzc0tleShjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIC8vIElFIG1h
dGNoZXMgbG93ZXIgYW5kIHVwcGVyIGNhc2UgYWNjZXNzIGtleXMgcmVnYXJkbGVzcyBvZiBTaGlm
dCBrZXkgc3RhdGUgLSBidXQgaWYgYm90aCB1cHBlciBhbmQKICAgICAvLyBsb3dlciBjYXNlIHZh
cmlhbnRzIGFyZSBwcmVzZW50IGluIGEgZG9jdW1lbnQsIHRoZSBjb3JyZWN0IGVsZW1lbnQgaXMg
bWF0Y2hlZCBiYXNlZCBvbiBTaGlmdCBrZXkgc3RhdGUuCiAgICAgLy8gRmlyZWZveCBvbmx5IG1h
dGNoZXMgYW4gYWNjZXNzIGtleSBpZiBTaGlmdCBpcyBub3QgcHJlc3NlZCwgYW5kIGRvZXMgdGhh
dCBjYXNlLWluc2Vuc2l0aXZlbHkuCi0gICAgQVNTRVJUKCEoYWNjZXNzS2V5TW9kaWZpZXJzKCkg
JiBQbGF0Zm9ybUV2ZW50OjpTaGlmdEtleSkpOwotICAgIGlmICgoZXZlbnQubW9kaWZpZXJzKCkg
JiB+UGxhdGZvcm1FdmVudDo6U2hpZnRLZXkpICE9IGFjY2Vzc0tleU1vZGlmaWVycygpKQorICAg
IEFTU0VSVCghKGFjY2Vzc0tleU1vZGlmaWVycygpLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1v
ZGlmaWVyOjpTaGlmdEtleSkpKTsKKyAgICBpZiAoKGV2ZW50Lm1vZGlmaWVycygpIC0gUGxhdGZv
cm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KSAhPSBhY2Nlc3NLZXlNb2RpZmllcnMoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmdldEVsZW1lbnRCeUFjY2Vzc0tleShldmVudC51bm1vZGlmaWVkVGV4dCgpKTsKICAg
ICBpZiAoIWVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCA1MmFhNTQ0
MzkyNGMwNjVlNDBmMTg3MmRmYmQwMjg5M2ZiYzQxZTlkLi5kYzRjYjc2ZDMyNzQxYjllMmUwZjNl
NTY1NGEwNGI3NDU2MDgxYjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTI0
NCw3ICsyNDQsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIG5lZWRzS2V5Ym9hcmRFdmVudERpc2Ft
YmlndWF0aW9uUXVpcmtzKCkgY29uc3Q7CiAKLSAgICBzdGF0aWMgdW5zaWduZWQgYWNjZXNzS2V5
TW9kaWZpZXJzKCk7CisgICAgc3RhdGljIE9wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmll
cj4gYWNjZXNzS2V5TW9kaWZpZXJzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVB
Y2Nlc3NLZXkoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBrZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKTsKICAgICB2b2lk
IGRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAppbmRleCA2YjdjNmQ5YjQxOGNkOTNh
M2E0ZDY2Y2EwNGIyZTJhMDU4NTc2NTlhLi4yMTA2ZDFlMTlhNDg2YTM4NWZmZTg3ZjkwMGZhYWZl
OTA4YmNhYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRs
ZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5j
cHAKQEAgLTEyMCw4ICsxMjAsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUmVsZWFz
ZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJgogICAgIHJldHVy
biB0cnVlOwogfQogCi11bnNpZ25lZCBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygp
CitPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IEV2ZW50SGFuZGxlcjo6YWNjZXNz
S2V5TW9kaWZpZXJzKCkKIHsKLSAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6QWx0S2V5OworICAg
IHJldHVybiBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0S2V5OwogfQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKaW5kZXggMGIwN2JkMGExNDE5OWJm
NzAzMTUwODRhMzM3NTYzYjA3NGZhYWVkYy4uNDNmMDUzNzVlNWJkZTYxNGY5MDhhN2MxNTRkODJk
N2IwOGVjZTI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsu
Y3BwCkBAIC0xMjAsOSArMTIwLDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVh
c2VFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdW5zaWduZWQgRXZlbnRIYW5kbGVyOjphY2Nlc3NLZXlNb2RpZmllcnMo
KQorT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBFdmVudEhhbmRsZXI6OmFjY2Vz
c0tleU1vZGlmaWVycygpCiB7Ci0gICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OkFsdEtleTsKKyAg
ICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkFsdEtleTsKIH0KIAogLy8gR1RLKyBt
dXN0IHNjcm9sbCBob3Jpem9udGFsbHkgaWYgdGhlIG1vdXNlIHBvaW50ZXIgaXMgb24gdG9wIG9m
IHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9T
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCmluZGV4IGZm
NGYzNWZmMjcyYTJhYzZmNGZkOTRmYTgzMzg4ZWUwMGYxMmY1ODUuLjlmZWE3NWM2YjMzMTY4OTNj
NzRkZGViNzFmZmM2NjJmODUwMDY5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
aW9zL0V2ZW50SGFuZGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVu
dEhhbmRsZXJJT1MubW0KQEAgLTUzNywxNSArNTM3LDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpw
YXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXVuc2lnbmVkIEV2ZW50SGFuZGxlcjo6YWNjZXNz
S2V5TW9kaWZpZXJzKCkKK09wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gRXZlbnRI
YW5kbGVyOjphY2Nlc3NLZXlNb2RpZmllcnMoKQogewogICAgIC8vIENvbnRyb2wrT3B0aW9uIGtl
eSBjb21iaW5hdGlvbnMgYXJlIHVzdWFsbHkgdW51c2VkIG9uIE1hYyBPUyBYLCBidXQgbm90IHdo
ZW4gVm9pY2VPdmVyIGlzIGVuYWJsZWQuCiAgICAgLy8gU28sIHdlIHVzZSBDb250cm9sIGluIHRo
aXMgY2FzZSwgZXZlbiB0aG91Z2ggaXQgY29uZmxpY3RzIHdpdGggRW1hY3Mtc3R5bGUga2V5IGJp
bmRpbmdzLgogICAgIC8vIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMTA3PiBmb3IgbW9yZSBkZXRhaWwuCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vz
c2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OkN0cmxLZXk7CisgICAgICAgIHJldHVybiBQbGF0Zm9ybUV2
ZW50OjpNb2RpZmllcjo6Q3RybEtleTsKIAotICAgIHJldHVybiBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQ6OkN0cmxLZXkgfCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OkFsdEtleTsKKyAgICByZXR1cm4g
eyBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3RybEtleSwgUGxhdGZvcm1FdmVudDo6TW9kaWZp
ZXI6OkFsdEtleSB9OwogfQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQgRXZlbnRIYW5kbGVyOjpjdXJy
ZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2
ZW50SGFuZGxlck1hYy5tbQppbmRleCBjODI2ZGE0ZDY5YWI5NGQxMDU0MWRlNTM5OTI5NmQ1MTFh
MmYxNGNlLi5iMjIwY2M1M2Y1YmI2MjU3NzY0NTVhNTIwMmNiMDA1YjNjZTVmMGRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC03ODMsMTUgKzc4Mywx
NSBAQCBib29sIEV2ZW50SGFuZGxlcjo6bmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25R
dWlya3MoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdW5zaWduZWQgRXZlbnRIYW5k
bGVyOjphY2Nlc3NLZXlNb2RpZmllcnMoKQorT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlm
aWVyPiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygpCiB7CiAgICAgLy8gQ29udHJv
bCtPcHRpb24ga2V5IGNvbWJpbmF0aW9ucyBhcmUgdXN1YWxseSB1bnVzZWQgb24gTWFjIE9TIFgs
IGJ1dCBub3Qgd2hlbiBWb2ljZU92ZXIgaXMgZW5hYmxlZC4KICAgICAvLyBTbywgd2UgdXNlIENv
bnRyb2wgaW4gdGhpcyBjYXNlLCBldmVuIHRob3VnaCBpdCBjb25mbGljdHMgd2l0aCBFbWFjcy1z
dHlsZSBrZXkgYmluZGluZ3MuCiAgICAgLy8gU2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjExMDc+IGZvciBtb3JlIGRldGFpbC4KICAgICBpZiAoQVhPYmplY3RD
YWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKSkKLSAgICAg
ICAgcmV0dXJuIFBsYXRmb3JtRXZlbnQ6OkN0cmxLZXk7CisgICAgICAgIHJldHVybiBQbGF0Zm9y
bUV2ZW50OjpNb2RpZmllcjo6Q3RybEtleTsKIAotICAgIHJldHVybiBQbGF0Zm9ybUV2ZW50OjpD
dHJsS2V5IHwgUGxhdGZvcm1FdmVudDo6QWx0S2V5OworICAgIHJldHVybiB7IFBsYXRmb3JtRXZl
bnQ6Ok1vZGlmaWVyOjpDdHJsS2V5LCBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0S2V5IH07
CiB9CiAKIHN0YXRpYyBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWFGb3JCb3goUmVuZGVy
Qm94JiBib3gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRs
ZXJXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcApp
bmRleCAxMDZmMDc3ZmY1ZTFlOGRjNTY0YTcxOWRlNGU5YTFmNGQ4YzI3Yjg4Li42MTYwNzA5MGQy
NmM5OWMxYWUyNTNmNWE0ZWM1ZDY2ZDUxYzNkNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
d2luL0V2ZW50SGFuZGxlcldpbi5jcHAKQEAgLTExMiw5ICsxMTIsOSBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdp
dGhIaXRUZXN0UgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdW5zaWduZWQgRXZlbnRIYW5kbGVy
OjphY2Nlc3NLZXlNb2RpZmllcnMoKQorT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVy
PiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygpCiB7Ci0gICAgcmV0dXJuIFBsYXRm
b3JtRXZlbnQ6OkFsdEtleTsKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkFs
dEtleTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4
IGRiZDBiNzAwYzlkN2E1ZGUxMGQzZTJkZmFkNDk5M2E5MWQ0Y2JjMzYuLmNhNTRiN2VmZGVjMDMz
NjliZTMxNzRjNzc3ZTFjM2ZhYzk1NmUzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50LmgKQEAgLTIzLDggKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFBsYXRmb3JtRXZlbnRfaAotI2RlZmluZSBQbGF0Zm9y
bUV2ZW50X2gKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY4LDcgKzY5LDcgQEAgcHVibGljOgogI2VuZGlmCiAg
ICAgfTsKIAotICAgIGVudW0gTW9kaWZpZXJzIDogdWludDhfdCB7CisgICAgZW51bSBjbGFzcyBN
b2RpZmllciB7CiAgICAgICAgIEFsdEtleSAgICAgID0gMSA8PCAwLAogICAgICAgICBDdHJsS2V5
ICAgICA9IDEgPDwgMSwKICAgICAgICAgTWV0YUtleSAgICAgPSAxIDw8IDIsCkBAIC03NywzMSAr
NzgsMjkgQEAgcHVibGljOgogCiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8VHlwZT4obV90eXBlKTsgfQogCi0gICAgYm9vbCBzaGlmdEtleSgpIGNvbnN0IHsgcmV0
dXJuIG1fbW9kaWZpZXJzICYgU2hpZnRLZXk7IH0KLSAgICBib29sIGN0cmxLZXkoKSBjb25zdCB7
IHJldHVybiBtX21vZGlmaWVycyAmIEN0cmxLZXk7IH0KLSAgICBib29sIGFsdEtleSgpIGNvbnN0
IHsgcmV0dXJuIG1fbW9kaWZpZXJzICYgQWx0S2V5OyB9Ci0gICAgYm9vbCBtZXRhS2V5KCkgY29u
c3QgeyByZXR1cm4gbV9tb2RpZmllcnMgJiBNZXRhS2V5OyB9CisgICAgYm9vbCBzaGlmdEtleSgp
IGNvbnN0IHsgcmV0dXJuIG1fbW9kaWZpZXJzLmNvbnRhaW5zKE1vZGlmaWVyOjpTaGlmdEtleSk7
IH0KKyAgICBib29sIGN0cmxLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVycy5jb250YWlu
cyhNb2RpZmllcjo6Q3RybEtleSk7IH0KKyAgICBib29sIGFsdEtleSgpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kaWZpZXJzLmNvbnRhaW5zKE1vZGlmaWVyOjpBbHRLZXkpOyB9CisgICAgYm9vbCBtZXRh
S2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9kaWZpZXI6Ok1ldGFL
ZXkpOyB9CiAKLSAgICB1bnNpZ25lZCBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBtX21vZGlm
aWVyczsgfQorICAgIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzKCkgY29uc3QgeyByZXR1
cm4gbV9tb2RpZmllcnM7IH0KIAogICAgIGRvdWJsZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVy
biBtX3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCiAgICAg
ICAgIDogbV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX21vZGlmaWVycygwKQogICAgICAgICAs
IG1fdGltZXN0YW1wKDApCiAgICAgewogICAgIH0KIAogICAgIGV4cGxpY2l0IFBsYXRmb3JtRXZl
bnQoVHlwZSB0eXBlKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fbW9kaWZp
ZXJzKDApCiAgICAgICAgICwgbV90aW1lc3RhbXAoMCkKICAgICB7CiAgICAgfQogCi0gICAgUGxh
dGZvcm1FdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApCisgICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9wdGlvblNldDxNb2RpZmllcj4gbW9k
aWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAg
ICAsIG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3Rh
bXApCkBAIC0xMTAsMTcgKzEwOSwxNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBQbGF0Zm9ybUV2ZW50
KFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9v
bCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAg
ICAgICAsIG1fbW9kaWZpZXJzKDApCiAgICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQog
ICAgIHsKICAgICAgICAgaWYgKHNoaWZ0S2V5KQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0g
U2hpZnRLZXk7CisgICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6U2hpZnRLZXk7
CiAgICAgICAgIGlmIChjdHJsS2V5KQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gQ3RybEtl
eTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpDdHJsS2V5OwogICAgICAg
ICBpZiAoYWx0S2V5KQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gQWx0S2V5OworICAgICAg
ICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OkFsdEtleTsKICAgICAgICAgaWYgKG1ldGFL
ZXkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNZXRhS2V5OworICAgICAgICAgICAgbV9t
b2RpZmllcnMgfD0gTW9kaWZpZXI6Ok1ldGFLZXk7CiAgICAgfQogCiAgICAgLy8gRXhwbGljaXQg
cHJvdGVjdGVkIGRlc3RydWN0b3Igc28gdGhhdCBwZW9wbGUgZG9uJ3QgYWNjaWRlbnRhbGx5CkBA
IC0xMzAsMTAgKzEyOCw4IEBAIHByb3RlY3RlZDoKICAgICB9CiAKICAgICB1bnNpZ25lZCBtX3R5
cGU7Ci0gICAgdW5zaWduZWQgbV9tb2RpZmllcnM7CisgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBt
X21vZGlmaWVyczsKICAgICBkb3VibGUgbV90aW1lc3RhbXA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBQbGF0Zm9ybUV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKaW5kZXggNTc4NTI2NjAwMzM0YTc5
NDcxM2E2YmZhMGMzNTg5MjE2OGJjYjA5Ni4uZTFmMDhkYzg5MzllMDFjYjJkYTUyYzllMzlmNTAz
ZTkxZjgyZmRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgKQEAgLTI0LDggKzI0LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNp
Zm5kZWYgUGxhdGZvcm1LZXlib2FyZEV2ZW50X2gKLSNkZWZpbmUgUGxhdGZvcm1LZXlib2FyZEV2
ZW50X2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiS2V5cHJlc3NDb21tYW5kLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1FdmVudC5oIgpAQCAtNzMsNyArNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVk
VGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlD
b2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1
dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCisgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudChU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4
dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9S
ZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE9wdGlvblNldDxNb2RpZmll
cj4gbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQogICAgICAgICAgICAgOiBQbGF0Zm9ybUV2
ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICAgICAgICAgLCBtX3RleHQodGV4
dCkKICAgICAgICAgICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKQEAgLTE5
Miw1ICsxOTEsMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgfTsKICAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFBsYXRmb3JtS2V5Ym9hcmRFdmVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1LZXlib2FyZEV2ZW50
R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZl
bnRHdGsuY3BwCmluZGV4IGNmODllMDBmYTdhOTJlZDdlZjQ0OWQ1MDhmMWZmNDhkYjlmYWJkOTgu
LmZiNzQzOTZjNjBlMWRiMjVmOWI1MmQ5NTc2ZTAxODU5ZmUxZTM1MTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsu
Y3BwCkBAIC01NTUsMTggKzU1NSwxOCBAQCBzdGF0aWMgUGxhdGZvcm1FdmVudDo6VHlwZSBldmVu
dFR5cGVGb3JHZGtLZXlFdmVudChHZGtFdmVudEtleSogZXZlbnQpCiAgICAgcmV0dXJuIGV2ZW50
LT50eXBlID09IEdES19LRVlfUkVMRUFTRSA/IFBsYXRmb3JtRXZlbnQ6OktleVVwIDogUGxhdGZv
cm1FdmVudDo6S2V5RG93bjsKIH0KIAotc3RhdGljIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVycyBt
b2RpZmllcnNGb3JHZGtLZXlFdmVudChHZGtFdmVudEtleSogZXZlbnQpCitzdGF0aWMgT3B0aW9u
U2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnNGb3JHZGtLZXlFdmVudChHZGtF
dmVudEtleSogZXZlbnQpCiB7Ci0gICAgdW5zaWduZWQgaW50IG1vZGlmaWVycyA9IDA7CisgICAg
T3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnM7CiAgICAgaWYgKGV2
ZW50LT5zdGF0ZSAmIEdES19TSElGVF9NQVNLIHx8IGV2ZW50LT5rZXl2YWwgPT0gR0RLXzMyNzBf
QmFja1RhYikKLSAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6OlNoaWZ0S2V5Owor
ICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5Owog
ICAgIGlmIChldmVudC0+c3RhdGUgJiBHREtfQ09OVFJPTF9NQVNLKQotICAgICAgICBtb2RpZmll
cnMgfD0gUGxhdGZvcm1FdmVudDo6Q3RybEtleTsKKyAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRm
b3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJsS2V5OwogICAgIGlmIChldmVudC0+c3RhdGUgJiBHREtf
TU9EMV9NQVNLKQotICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6QWx0S2V5Owor
ICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkFsdEtleTsKICAg
ICBpZiAoZXZlbnQtPnN0YXRlICYgR0RLX01FVEFfTUFTSykKLSAgICAgICAgbW9kaWZpZXJzIHw9
IFBsYXRmb3JtRXZlbnQ6Ok1ldGFLZXk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFBsYXRmb3Jt
RXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKTsKKyAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRm
b3JtRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5OworICAgIHJldHVybiBtb2RpZmllcnM7CiB9CiAK
IC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIG90aGVyIHBsYXRmb3JtIGV2ZW50IGNvbnN0
cnVjdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
TW91c2VFdmVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1N
b3VzZUV2ZW50R3RrLmNwcAppbmRleCA5ZDY2MTFhYjFjNTA1MjVlMDZhMDcwM2Y0ZWNmNTczNzZi
MjlkNTgyLi5iZDAzZjkxNTg1NTBhYzgzNTVkY2YxYzk3YjBjYWEwNjg2YmI1OGJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3Rr
LmNwcApAQCAtNDIsMTUgKzQyLDE0IEBAIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3Vz
ZUV2ZW50KEdka0V2ZW50QnV0dG9uKiBldmVudCkKICAgICBtX3Bvc2l0aW9uID0gSW50UG9pbnQo
KGludClldmVudC0+eCwgKGludClldmVudC0+eSk7CiAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IElu
dFBvaW50KChpbnQpZXZlbnQtPnhfcm9vdCwgKGludClldmVudC0+eV9yb290KTsKIAotICAgIG1f
bW9kaWZpZXJzID0gMDsKICAgICBpZiAoZXZlbnQtPnN0YXRlICYgR0RLX1NISUZUX01BU0spCi0g
ICAgICAgIG1fbW9kaWZpZXJzIHw9IFNoaWZ0S2V5OworICAgICAgICBtX21vZGlmaWVycyB8PSBQ
bGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6U2hpZnRLZXk7CiAgICAgaWYgKGV2ZW50LT5zdGF0ZSAm
IEdES19DT05UUk9MX01BU0spCi0gICAgICAgIG1fbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisgICAg
ICAgIG1fbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJsS2V5OwogICAg
IGlmIChldmVudC0+c3RhdGUgJiBHREtfTU9EMV9NQVNLKQotICAgICAgICBtX21vZGlmaWVycyB8
PSBBbHRLZXk7CisgICAgICAgIG1fbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVy
OjpBbHRLZXk7CiAgICAgaWYgKGV2ZW50LT5zdGF0ZSAmIEdES19NRVRBX01BU0spCi0gICAgICAg
IG1fbW9kaWZpZXJzIHw9IE1ldGFLZXk7CisgICAgICAgIG1fbW9kaWZpZXJzIHw9IFBsYXRmb3Jt
RXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5OwogCiAgICAgc3dpdGNoIChldmVudC0+dHlwZSkgewog
ICAgIGNhc2UgR0RLX0JVVFRPTl9QUkVTUzoKQEAgLTg3LDE1ICs4NiwxNCBAQCBQbGF0Zm9ybU1v
dXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudE1vdGlvbiogbW90aW9uKQogICAg
IG1fcG9zaXRpb24gPSBJbnRQb2ludCgoaW50KW1vdGlvbi0+eCwgKGludCltb3Rpb24tPnkpOwog
ICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludCgoaW50KW1vdGlvbi0+eF9yb290LCAoaW50
KW1vdGlvbi0+eV9yb290KTsKIAotICAgIG1fbW9kaWZpZXJzID0gMDsKICAgICBpZiAobW90aW9u
LT5zdGF0ZSAmIEdES19TSElGVF9NQVNLKQotICAgICAgICBtX21vZGlmaWVycyB8PSBTaGlmdEtl
eTsKKyAgICAgICAgbV9tb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0
S2V5OwogICAgIGlmIChtb3Rpb24tPnN0YXRlICYgR0RLX0NPTlRST0xfTUFTSykKLSAgICAgICAg
bV9tb2RpZmllcnMgfD0gQ3RybEtleTsKKyAgICAgICAgbV9tb2RpZmllcnMgfD0gUGxhdGZvcm1F
dmVudDo6TW9kaWZpZXI6OkN0cmxLZXk7CiAgICAgaWYgKG1vdGlvbi0+c3RhdGUgJiBHREtfTU9E
MV9NQVNLKQotICAgICAgICBtX21vZGlmaWVycyB8PSBBbHRLZXk7CisgICAgICAgIG1fbW9kaWZp
ZXJzIHw9IFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXk7CiAgICAgaWYgKG1vdGlvbi0+
c3RhdGUgJiBHREtfTUVUQV9NQVNLKQotICAgICAgICBtX21vZGlmaWVycyB8PSBNZXRhS2V5Owor
ICAgICAgICBtX21vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6TWV0YUtleTsK
IAogICAgIHN3aXRjaCAobW90aW9uLT50eXBlKSB7CiAgICAgY2FzZSBHREtfTU9USU9OX05PVElG
WToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50
RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50
RmFjdG9yeUlPUy5tbQppbmRleCBmOTU5MGYwN2IzNmRiY2MyYTM1OWQ0NzlkM2E3MDBkM2NhZjI2
ZTUxLi45ZTU2MGZmN2U1Y2FkODUwMjg4ZmU5ZTdhMmRiMmU5Yjg4ZGMzZjM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9T
Lm1tCkBAIC0zNSwxOCArMzUsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMg
dW5zaWduZWQgbW9kaWZpZXJzRm9yRXZlbnQoV2ViRXZlbnQgKmV2ZW50KQorc3RhdGljIE9wdGlv
blNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzRm9yRXZlbnQoV2ViRXZlbnQg
KmV2ZW50KQogewotICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CisgICAgT3B0aW9uU2V0PFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnM7CiAKICAgICBpZiAoZXZlbnQubW9kaWZp
ZXJGbGFncyAmIFdlYkV2ZW50RmxhZ01hc2tTaGlmdCkKLSAgICAgICAgbW9kaWZpZXJzIHw9IFBs
YXRmb3JtRXZlbnQ6OlNoaWZ0S2V5OworICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVu
dDo6TW9kaWZpZXI6OlNoaWZ0S2V5OwogICAgIGlmIChldmVudC5tb2RpZmllckZsYWdzICYgV2Vi
RXZlbnRGbGFnTWFza0NvbnRyb2wpCi0gICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50
OjpDdHJsS2V5OworICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6
OkN0cmxLZXk7CiAgICAgaWYgKGV2ZW50Lm1vZGlmaWVyRmxhZ3MgJiBXZWJFdmVudEZsYWdNYXNr
QWx0ZXJuYXRlKQotICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6QWx0S2V5Owor
ICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkFsdEtleTsKICAg
ICBpZiAoZXZlbnQubW9kaWZpZXJGbGFncyAmIFdlYkV2ZW50RmxhZ01hc2tDb21tYW5kKQotICAg
ICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TWV0YUtleTsKKyAgICAgICAgbW9kaWZp
ZXJzIHw9IFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5OwogCiAgICAgcmV0dXJuIG1v
ZGlmaWVyczsKIH0KQEAgLTgyLDcgKzgyLDYgQEAgcHVibGljOgogICAgIFBsYXRmb3JtTW91c2VF
dmVudEJ1aWxkZXIoV2ViRXZlbnQgKmV2ZW50KQogICAgIHsKICAgICAgICAgbV90eXBlID0gbW91
c2VFdmVudFR5cGUoZXZlbnQpOwotICAgICAgICBtX21vZGlmaWVycyA9IDA7CiAgICAgICAgIG1f
dGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKIAogICAgICAgICBtX3Bvc2l0aW9uID0gcG9pbnRG
b3JFdmVudChldmVudCk7CkBAIC0xMDQsNyArMTAzLDYgQEAgcHVibGljOgogICAgICAgICBBU1NF
UlQoZXZlbnQudHlwZSA9PSBXZWJFdmVudFNjcm9sbFdoZWVsKTsKIAogICAgICAgICBtX3R5cGUg
PSBQbGF0Zm9ybUV2ZW50OjpXaGVlbDsKLSAgICAgICAgbV9tb2RpZmllcnMgPSAwOwogICAgICAg
ICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBv
aW50Rm9yRXZlbnQoZXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IGE3NDc0NzNjZDE1MDcyNWMzYmIy
M2QyMmQ2NWRjYjcxNmVkMzhjNjIuLmMzMjAzODIyMTA3NDE5YzlkNmM1ZmM0YzM2NDNiMzY5ZTJm
MWY0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTQyNiwyMSArNDI2LDIxIEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1zdGF0aWMgaW5saW5lIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVu
dChOU0V2ZW50ICpldmVudCkKK3N0YXRpYyBpbmxpbmUgT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6
Ok1vZGlmaWVyPiBtb2RpZmllcnNGb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOwot
ICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU1NoaWZ0S2V5TWFzaykKLSAgICAgICAg
bW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6OlNoaWZ0S2V5OwotICAgIGlmIChbZXZlbnQgbW9k
aWZpZXJGbGFnc10gJiBOU0NvbnRyb2xLZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gUGxh
dGZvcm1FdmVudDo6Q3RybEtleTsKLSAgICBpZiAoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNB
bHRlcm5hdGVLZXlNYXNrKQotICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6QWx0
S2V5OwotICAgIGlmIChbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrKQot
ICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TWV0YUtleTsKKyAgICBPcHRpb25T
ZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyczsKKyAgICBpZiAoZXZlbnQubW9k
aWZpZXJGbGFncyAmIE5TU2hpZnRLZXlNYXNrKQorICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZv
cm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5OworICAgIGlmIChldmVudC5tb2RpZmllckZsYWdz
ICYgTlNDb250cm9sS2V5TWFzaykKKyAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6
Ok1vZGlmaWVyOjpDdHJsS2V5OworICAgIGlmIChldmVudC5tb2RpZmllckZsYWdzICYgTlNBbHRl
cm5hdGVLZXlNYXNrKQorICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TW9kaWZp
ZXI6OkFsdEtleTsKKyAgICBpZiAoZXZlbnQubW9kaWZpZXJGbGFncyAmIE5TQ29tbWFuZEtleU1h
c2spCisgICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6TWV0YUtl
eTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICByZXR1cm4gKFBsYXRmb3JtRXZl
bnQ6Ok1vZGlmaWVycyltb2RpZmllcnM7CisgICAgcmV0dXJuIG1vZGlmaWVyczsKIH0KIAogc3Rh
dGljIGludCB0eXBlRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC00NTEsNyArNDUxLDcgQEAg
c3RhdGljIGludCB0eXBlRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgaWYgKG1vdXNlQnV0
dG9uRm9yRXZlbnQoZXZlbnQpID09IFJpZ2h0QnV0dG9uKQogICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50PihOU01lbnVUeXBlQ29udGV4dE1lbnUpOwogCi0gICAgaWYgKG1vdXNlQnV0dG9u
Rm9yRXZlbnQoZXZlbnQpID09IExlZnRCdXR0b24gJiYgKG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50
KSAmIFBsYXRmb3JtRXZlbnQ6OkN0cmxLZXkpKQorICAgIGlmIChtb3VzZUJ1dHRvbkZvckV2ZW50
KGV2ZW50KSA9PSBMZWZ0QnV0dG9uICYmIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KS5jb250YWlu
cyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3RybEtleSkpCiAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxpbnQ+KE5TTWVudVR5cGVDb250ZXh0TWVudSk7CiAKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50PihOU01lbnVUeXBlTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1Nl
cmlhbGl6YXRpb25NZXRob2RzLmNwcAppbmRleCA0ODYwNWIyNjEzYWVlMDg2YzFiMDgzOWE3MzBh
MGNhZDM5NTBjMjdkLi5hNjJmNzhkZDYwMTRiZGI2NmQ3YmNmYzRhNzU3MzA1ZDNkOWZiMDMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvU2VyaWFsaXphdGlvbk1ldGhvZHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZXJpYWxpemF0aW9uTWV0aG9kcy5jcHAKQEAg
LTI1Myw3ICsyNTMsNyBAQCBFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1LZXli
b2FyZEV2ZW50Pjo6ZW5jb2RlVmFsdWUoY29uc3QgUGxhdGZvcm1LZQogCiAgICAgRU5DT0RFX1RZ
UEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBkb3VibGUsIHRpbWVzdGFtcCwgaW5wdXQudGltZXN0
YW1wKCkpOwogICAgIEVOQ09ERV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgUGxhdGZvcm1F
dmVudDo6VHlwZSwgdHlwZSwgaW5wdXQudHlwZSgpKTsKLSAgICBFTkNPREVfVFlQRV9XSVRIX0tF
WShlbmNvZGVkVmFsdWUsIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVycywgbW9kaWZpZXJzLCBzdGF0
aWNfY2FzdDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcnM+KGlucHV0Lm1vZGlmaWVycygpKSk7Cisg
ICAgRU5DT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBQbGF0Zm9ybUV2ZW50OjpNb2Rp
ZmllciwgbW9kaWZpZXJzLCBpbnB1dC5tb2RpZmllcnMoKSk7CiAgICAgRU5DT0RFX1RZUEVfV0lU
SF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIHRleHQsIGlucHV0LnRleHQoKSk7CiAgICAgRU5D
T0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIHVubW9kaWZpZWRUZXh0LCBp
bnB1dC51bm1vZGlmaWVkVGV4dCgpKTsKICAgICBFTkNPREVfVFlQRV9XSVRIX0tFWShlbmNvZGVk
VmFsdWUsIFN0cmluZywga2V5SWRlbnRpZmllciwgaW5wdXQua2V5SWRlbnRpZmllcigpKTsKQEAg
LTI3NCw3ICsyNzQsNyBAQCBib29sIEVuY29kaW5nVHJhaXRzPFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dD46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbAogewogICAgIERFQ09ERV9U
WVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgZG91YmxlLCB0aW1lc3RhbXApOwogICAgIERFQ09E
RV9UWVBFX1dJVEhfS0VZKGVuY29kZWRWYWx1ZSwgUGxhdGZvcm1FdmVudDo6VHlwZSwgdHlwZSk7
Ci0gICAgREVDT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBQbGF0Zm9ybUV2ZW50OjpN
b2RpZmllcnMsIG1vZGlmaWVycyk7CisgICAgREVDT0RFX1RZUEVfV0lUSF9LRVkoZW5jb2RlZFZh
bHVlLCBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllciwgbW9kaWZpZXJzKTsKICAgICBERUNPREVfVFlQ
RV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywgdGV4dCk7CiAgICAgREVDT0RFX1RZUEVf
V0lUSF9LRVkoZW5jb2RlZFZhbHVlLCBTdHJpbmcsIHVubW9kaWZpZWRUZXh0KTsKICAgICBERUNP
REVfVFlQRV9XSVRIX0tFWShlbmNvZGVkVmFsdWUsIFN0cmluZywga2V5SWRlbnRpZmllcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24gYi9Tb3VyY2Uv
V2ViQ29yZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24KaW5kZXggN2Q5YjU0NDk1Yzc4Yzc4Mjc5ZDcz
NzY3OTE3ZTdkOTdkNzc2MGY5Yy4uYjdlNWJjZDgzMGUwOTFhY2MyYTZjMTAwNzYyYTZjY2E2Njdi
ZTA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1dlYklucHV0cy5qc29uCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9XZWJJbnB1dHMuanNvbgpAQCAtMTMsOSArMTMsOSBA
QAogICAgICAgICAgICAgICAgICJoZWFkZXIiOiAicmVwbGF5L01lbW9pemVkRE9NUmVzdWx0Lmgi
CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjog
Ik1vZGlmaWVycyIsICJtb2RlIjogIlNDQUxBUiIsICJzdG9yYWdlIjogInVpbnQ4X3QiLAorICAg
ICAgICAgICAgICAgICJuYW1lIjogIk1vZGlmaWVyIiwgIm1vZGUiOiAiU0NBTEFSIiwKICAgICAg
ICAgICAgICAgICAiZW5jbG9zaW5nX2NsYXNzIjogIlBsYXRmb3JtRXZlbnQiLAotICAgICAgICAg
ICAgICAgICJmbGFncyI6IFsiRU5VTSJdLAorICAgICAgICAgICAgICAgICJmbGFncyI6IFsiT1BU
SU9OX1NFVCJdLAogICAgICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIkFsdEtleSIsICJDdHJsS2V5
IiwgIk1ldGFLZXkiLCAiU2hpZnRLZXkiXSwKICAgICAgICAgICAgICAgICAiaGVhZGVyIjogInBs
YXRmb3JtL1BsYXRmb3JtRXZlbnQuaCIKICAgICAgICAgICAgIH0sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDJhMDg3MDBkMmUwMjU1NDEyMmVk
MmZjZjE0MjE3MWQ5ZDA0ZTEzYTMuLjY4NjVkZDhmOTliMTI2NWIyNDg5NGM0NTkwYWQxYWNkODcx
YjlkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3Bw
CkBAIC02OCwxNSArNjgsMTQgQEAgcHVibGljOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIH0KIAotICAgICAgICBtX21vZGlmaWVycyA9IDA7CiAgICAgICAgIGlm
ICh3ZWJFdmVudC5zaGlmdEtleSgpKQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gU2hpZnRL
ZXk7CisgICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6U2hpZnRLZXk7CiAgICAg
ICAgIGlmICh3ZWJFdmVudC5jb250cm9sS2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8
PSBDdHJsS2V5OworICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OkN0cmxLZXk7
CiAgICAgICAgIGlmICh3ZWJFdmVudC5hbHRLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJz
IHw9IEFsdEtleTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpBbHRLZXk7
CiAgICAgICAgIGlmICh3ZWJFdmVudC5tZXRhS2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVy
cyB8PSBNZXRhS2V5OworICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6Ok1ldGFL
ZXk7CiAKICAgICAgICAgbV90aW1lc3RhbXAgPSB3ZWJFdmVudC50aW1lc3RhbXAoKTsKIApAQCAt
MTA1LDE2ICsxMDQsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZXZlbnROdW1iZXIgPSB3ZWJFdmVu
dC5ldmVudE51bWJlcigpOwogICAgICAgICBtX21lbnVUeXBlRm9yRXZlbnQgPSB3ZWJFdmVudC5t
ZW51VHlwZUZvckV2ZW50KCk7CiAjZW5kaWYKLQotICAgICAgICBtX21vZGlmaWVyRmxhZ3MgPSAw
OwotICAgICAgICBpZiAod2ViRXZlbnQuc2hpZnRLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZp
ZXJGbGFncyB8PSBXZWJFdmVudDo6U2hpZnRLZXk7Ci0gICAgICAgIGlmICh3ZWJFdmVudC5jb250
cm9sS2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVyRmxhZ3MgfD0gV2ViRXZlbnQ6OkNvbnRy
b2xLZXk7Ci0gICAgICAgIGlmICh3ZWJFdmVudC5hbHRLZXkoKSkKLSAgICAgICAgICAgIG1fbW9k
aWZpZXJGbGFncyB8PSBXZWJFdmVudDo6QWx0S2V5OwotICAgICAgICBpZiAod2ViRXZlbnQubWV0
YUtleSgpKQotICAgICAgICAgICAgbV9tb2RpZmllckZsYWdzIHw9IFdlYkV2ZW50OjpNZXRhS2V5
OwogICAgIH0KIH07CiAKQEAgLTEzMCwxNSArMTE5LDE0IEBAIHB1YmxpYzoKICAgICAgICAgLy8g
UGxhdGZvcm1FdmVudAogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpXaGVlbDsKIAot
ICAgICAgICBtX21vZGlmaWVycyA9IDA7CiAgICAgICAgIGlmICh3ZWJFdmVudC5zaGlmdEtleSgp
KQotICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgICAgICAgICBtX21v
ZGlmaWVycyB8PSBNb2RpZmllcjo6U2hpZnRLZXk7CiAgICAgICAgIGlmICh3ZWJFdmVudC5jb250
cm9sS2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBDdHJsS2V5OworICAgICAgICAg
ICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OkN0cmxLZXk7CiAgICAgICAgIGlmICh3ZWJFdmVu
dC5hbHRLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICAgICAg
ICAgIG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpBbHRLZXk7CiAgICAgICAgIGlmICh3ZWJFdmVu
dC5tZXRhS2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNZXRhS2V5OworICAgICAg
ICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6Ok1ldGFLZXk7CiAKICAgICAgICAgbV90aW1l
c3RhbXAgPSB3ZWJFdmVudC50aW1lc3RhbXAoKTsKIApAQCAtMTg5LDE1ICsxNzcsMTQgQEAgcHVi
bGljOgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KIAotICAg
ICAgICBtX21vZGlmaWVycyA9IDA7CiAgICAgICAgIGlmICh3ZWJFdmVudC5zaGlmdEtleSgpKQot
ICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgICAgICAgICBtX21vZGlm
aWVycyB8PSBNb2RpZmllcjo6U2hpZnRLZXk7CiAgICAgICAgIGlmICh3ZWJFdmVudC5jb250cm9s
S2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBDdHJsS2V5OworICAgICAgICAgICAg
bV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6OkN0cmxLZXk7CiAgICAgICAgIGlmICh3ZWJFdmVudC5h
bHRLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICAgICAgICAg
IG1fbW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpBbHRLZXk7CiAgICAgICAgIGlmICh3ZWJFdmVudC5t
ZXRhS2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNZXRhS2V5OworICAgICAgICAg
ICAgbV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6Ok1ldGFLZXk7CiAKICAgICAgICAgbV90aW1lc3Rh
bXAgPSB3ZWJFdmVudC50aW1lc3RhbXAoKTsKIApAQCAtMzI1LDE1ICszMTIsMTQgQEAgcHVibGlj
OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KIAotICAgICAg
ICBtX21vZGlmaWVycyA9IDA7CiAgICAgICAgIGlmICh3ZWJFdmVudC5zaGlmdEtleSgpKQotICAg
ICAgICAgICAgbV9tb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgICAgICAgICBtX21vZGlmaWVy
cyB8PSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6U2hpZnRLZXk7CiAgICAgICAgIGlmICh3ZWJF
dmVudC5jb250cm9sS2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBDdHJsS2V5Owor
ICAgICAgICAgICAgbV9tb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkN0cmxL
ZXk7CiAgICAgICAgIGlmICh3ZWJFdmVudC5hbHRLZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZp
ZXJzIHw9IEFsdEtleTsKKyAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6
Ok1vZGlmaWVyOjpBbHRLZXk7CiAgICAgICAgIGlmICh3ZWJFdmVudC5tZXRhS2V5KCkpCi0gICAg
ICAgICAgICBtX21vZGlmaWVycyB8PSBNZXRhS2V5OworICAgICAgICAgICAgbV9tb2RpZmllcnMg
fD0gUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXk7CiAKICAgICAgICAgbV90aW1lc3Rh
bXAgPSB3ZWJFdmVudC50aW1lc3RhbXAoKTsKIApAQCAtMzgzLDE1ICszNjksMTQgQEAgcHVibGlj
OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KIAotICAgICAg
ICBtX21vZGlmaWVycyA9IDA7CiAgICAgICAgIGlmICh3ZWJFdmVudC5zaGlmdEtleSgpKQotICAg
ICAgICAgICAgbV9tb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgICAgICAgICBtX21vZGlmaWVy
cyB8PSBNb2RpZmllcjo6U2hpZnRLZXk7CiAgICAgICAgIGlmICh3ZWJFdmVudC5jb250cm9sS2V5
KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBDdHJsS2V5OworICAgICAgICAgICAgbV9t
b2RpZmllcnMgfD0gTW9kaWZpZXI6OkN0cmxLZXk7CiAgICAgICAgIGlmICh3ZWJFdmVudC5hbHRL
ZXkoKSkKLSAgICAgICAgICAgIG1fbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICAgICAgICAgIG1f
bW9kaWZpZXJzIHw9IE1vZGlmaWVyOjpBbHRLZXk7CiAgICAgICAgIGlmICh3ZWJFdmVudC5tZXRh
S2V5KCkpCi0gICAgICAgICAgICBtX21vZGlmaWVycyB8PSBNZXRhS2V5OworICAgICAgICAgICAg
bV9tb2RpZmllcnMgfD0gTW9kaWZpZXI6Ok1ldGFLZXk7CiAKICAgICAgICAgbV90aW1lc3RhbXAg
PSB3ZWJFdmVudC50aW1lc3RhbXAoKTsKIAo=
</data>
<flag name="review"
          id="312812"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>