<?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>188777</bug_id>
          
          <creation_ts>2018-08-20 21:45:20 -0700</creation_ts>
          <short_desc>Replace booleans for modifier keys in UIEventWithKeyState with OptionSet&lt;Modifier&gt;</short_desc>
          <delta_ts>2019-02-06 09:18:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>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>
          
          <blocked>188720</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1451968</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-20 21:45:20 -0700</bug_when>
    <thetext>Replace booleans for control, alt, meta, etc... keys with OptionSet of modifiers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451969</commentid>
    <comment_count>1</comment_count>
      <attachid>347610</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-20 21:45:49 -0700</bug_when>
    <thetext>Created attachment 347610
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451972</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-20 21:57:48 -0700</bug_when>
    <thetext>Attachment 347610 did not pass style-queue:


ERROR: Source/WebCore/dom/MouseEvent.cpp:83:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseEvent.cpp:83:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/SimulatedClick.cpp:47:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:41:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:41:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:38:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:43:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 9 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452290</commentid>
    <comment_count>3</comment_count>
      <attachid>347694</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-21 14:23:26 -0700</bug_when>
    <thetext>Created attachment 347694
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452294</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-21 14:25:22 -0700</bug_when>
    <thetext>Attachment 347694 did not pass style-queue:


ERROR: Source/WebCore/dom/TouchEvent.cpp:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:41:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseEvent.cpp:83:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseEvent.cpp:83:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/SimulatedClick.cpp:47:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:38:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:43:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 8 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452296</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-21 14:28:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/43577361&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452345</commentid>
    <comment_count>6</comment_count>
      <attachid>347711</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-21 15:27:44 -0700</bug_when>
    <thetext>Created attachment 347711
WPE build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452348</commentid>
    <comment_count>7</comment_count>
      <attachid>347694</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-21 15:31:11 -0700</bug_when>
    <thetext>Comment on attachment 347694
Cleanup

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Replaced boolean arguments and instance variables for modififer keys (ctrl, alt, shift, and meta keys) in

modififer

&gt; Source/WebCore/platform/PlatformEvent.h:73
&gt; +    enum class Modifier : uint8_t {

I think this should be called Modifiers (or maybe ModifierKeys?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452362</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-21 15:49:25 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; Comment on attachment 347694 [details]
&gt; Cleanup
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=347694&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Replaced boolean arguments and instance variables for modififer keys (ctrl, alt, shift, and meta keys) in
&gt; 
&gt; modififer

Fixed.

&gt; &gt; Source/WebCore/platform/PlatformEvent.h:73
&gt; &gt; +    enum class Modifier : uint8_t {
&gt; 
&gt; I think this should be called Modifiers (or maybe ModifierKeys?)

I think we ordinarily use singular noun for enum class itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452378</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-21 16:16:03 -0700</bug_when>
    <thetext>Attachment 347711 did not pass style-queue:


ERROR: Source/WebCore/dom/TouchEvent.cpp:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:41:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseEvent.cpp:83:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseEvent.cpp:83:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/SimulatedClick.cpp:47:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:38:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:43:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 8 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452485</commentid>
    <comment_count>10</comment_count>
      <attachid>347751</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-21 19:06:50 -0700</bug_when>
    <thetext>Created attachment 347751
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452486</commentid>
    <comment_count>11</comment_count>
      <attachid>347751</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-21 19:07:02 -0700</bug_when>
    <thetext>Comment on attachment 347751
Patch for landing

Wait for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452487</commentid>
    <comment_count>12</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-21 19:08:55 -0700</bug_when>
    <thetext>Attachment 347751 did not pass style-queue:


ERROR: Source/WebCore/dom/TouchEvent.cpp:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:41:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseEvent.cpp:83:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseEvent.cpp:83:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/SimulatedClick.cpp:47:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:38:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/MouseRelatedEvent.cpp:43:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 8 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452522</commentid>
    <comment_count>13</comment_count>
      <attachid>347751</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-21 21:41:07 -0700</bug_when>
    <thetext>Comment on attachment 347751
Patch for landing

Clearing flags on attachment: 347751

Committed r235158: &lt;https://trac.webkit.org/changeset/235158&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452523</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-08-21 21:41:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503181</commentid>
    <comment_count>15</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:18:30 -0800</bug_when>
    <thetext>Mass move bugs into the DOM component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347610</attachid>
            <date>2018-08-20 21:45:49 -0700</date>
            <delta_ts>2018-08-21 14:23:24 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wip188777.patch</filename>
            <type>text/plain</type>
            <size>40453</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBjM2JhOGE3ZTVjOS4uZDljYmYzODIxZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTI5MCwxMiArMjkwLDEyIEBAIGJvb2wgRWxlbWVudDo6ZGlz
cGF0Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1FdmVudCwg
Y29uc3QKICAgICAgICAgLy8gU3BlY2lhbCBjYXNlOiBJZiBpdCdzIGEgZG91YmxlIGNsaWNrIGV2
ZW50LCB3ZSBhbHNvIHNlbmQgdGhlIGRibGNsaWNrIGV2ZW50LiBUaGlzIGlzIG5vdCBwYXJ0CiAg
ICAgICAgIC8vIG9mIHRoZSBET00gc3BlY3MsIGJ1dCBpcyB1c2VkIGZvciBjb21wYXRpYmlsaXR5
IHdpdGggdGhlIG9uZGJsY2xpY2s9IiIgYXR0cmlidXRlLiBUaGlzIGlzIHRyZWF0ZWQKICAgICAg
ICAgLy8gYXMgYSBzZXBhcmF0ZSBldmVudCBpbiBvdGhlciBET00tY29tcGxpYW50IGJyb3dzZXJz
IGxpa2UgRmlyZWZveCwgYW5kIHNvIHdlIGRvIHRoZSBzYW1lLgorICAgICAgICAvLyBGSVhNRTog
SXMgaXQgb2theSB0aGF0IG1vdXNlRXZlbnQgbWF5IGhhdmUgYmVlbiBtdXRhdGVkIGJ5IHNjcmlw
dHMgdmlhIGluaXRNb3VzZUV2ZW50IGluIGRpc3BhdGNoRXZlbnQgYWJvdmU/CiAgICAgICAgIFJl
ZjxNb3VzZUV2ZW50PiBkb3VibGVDbGlja0V2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5kYmxjbGlja0V2ZW50LAogICAgICAgICAgICAgbW91c2VFdmVudC0+YnViYmxlcygp
ID8gRXZlbnQ6OkNhbkJ1YmJsZTo6WWVzIDogRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIG1vdXNlRXZl
bnQtPmNhbmNlbGFibGUoKSA/IEV2ZW50OjpJc0NhbmNlbGFibGU6OlllcyA6IEV2ZW50OjpJc0Nh
bmNlbGFibGU6Ok5vLAogICAgICAgICAgICAgbW91c2VFdmVudC0+dmlldygpLCBtb3VzZUV2ZW50
LT5kZXRhaWwoKSwKICAgICAgICAgICAgIG1vdXNlRXZlbnQtPnNjcmVlblgoKSwgbW91c2VFdmVu
dC0+c2NyZWVuWSgpLCBtb3VzZUV2ZW50LT5jbGllbnRYKCksIG1vdXNlRXZlbnQtPmNsaWVudFko
KSwKLSAgICAgICAgICAgIG1vdXNlRXZlbnQtPmN0cmxLZXkoKSwgbW91c2VFdmVudC0+YWx0S2V5
KCksIG1vdXNlRXZlbnQtPnNoaWZ0S2V5KCksIG1vdXNlRXZlbnQtPm1ldGFLZXkoKSwKLSAgICAg
ICAgICAgIG1vdXNlRXZlbnQtPmJ1dHRvbigpLCBtb3VzZUV2ZW50LT5idXR0b25zKCksIG1vdXNl
RXZlbnQtPnN5bnRoZXRpY0NsaWNrVHlwZSgpLCByZWxhdGVkVGFyZ2V0KTsKKyAgICAgICAgICAg
IG1vdXNlRXZlbnQtPm1vZGlmaWVyS2V5cygpLCBtb3VzZUV2ZW50LT5idXR0b24oKSwgbW91c2VF
dmVudC0+YnV0dG9ucygpLCBtb3VzZUV2ZW50LT5zeW50aGV0aWNDbGlja1R5cGUoKSwgcmVsYXRl
ZFRhcmdldCk7CiAKICAgICAgICAgaWYgKG1vdXNlRXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCiAg
ICAgICAgICAgICBkb3VibGVDbGlja0V2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IGFkNGRjZTQ1NzZiLi4zYjVlOWM5ODQ5OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcApAQCAtOTUsOCArOTUsNyBAQCBpbmxp
bmUgS2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogaW5saW5lIEtl
eWJvYXJkRXZlbnQ6OktleWJvYXJkRXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBr
ZXksIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0
ZShldmVudFR5cGVGb3JLZXlib2FyZEV2ZW50VHlwZShrZXkudHlwZSgpKSwgQ2FuQnViYmxlOjpZ
ZXMsIElzQ2FuY2VsYWJsZTo6WWVzLAotICAgICAgICBrZXkudGltZXN0YW1wKCkuYXBwcm94aW1h
dGVNb25vdG9uaWNUaW1lKCksIHZpZXcuY29weVJlZigpLCAwLCBrZXkuY3RybEtleSgpLCBrZXku
YWx0S2V5KCksIGtleS5zaGlmdEtleSgpLCBrZXkubWV0YUtleSgpLAotICAgICAgICBmYWxzZSwg
a2V5Lm1vZGlmaWVycygpLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDYXBzTG9j
a0tleSkpCisgICAgICAgIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUo
KSwgdmlldy5jb3B5UmVmKCksIDAsIGtleS5tb2RpZmllcnMoKSkKICAgICAsIG1fdW5kZXJseWlu
Z1BsYXRmb3JtRXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtl
eSkpCiAjaWYgRU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCiAgICAgLCBtX2tleShrZXku
a2V5KCkpCkBAIC0xNjAsMTEgKzE1OSw4IEBAIHZvaWQgS2V5Ym9hcmRFdmVudDo6aW5pdEtleWJv
YXJkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwKIAogICAg
IG1fa2V5SWRlbnRpZmllciA9IGtleUlkZW50aWZpZXI7CiAgICAgbV9sb2NhdGlvbiA9IGxvY2F0
aW9uOwotICAgIG1fY3RybEtleSA9IGN0cmxLZXk7Ci0gICAgbV9zaGlmdEtleSA9IHNoaWZ0S2V5
OwotICAgIG1fYWx0S2V5ID0gYWx0S2V5OwotICAgIG1fbWV0YUtleSA9IG1ldGFLZXk7Ci0gICAg
bV9hbHRHcmFwaEtleSA9IGFsdEdyYXBoS2V5OworCisgICAgc2V0TW9kaWZpZXJLZXlzKGN0cmxL
ZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXksIGFsdEdyYXBoS2V5KTsKIAogICAgIG1fY2hh
ckNvZGUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgbV9pc0NvbXBvc2luZyA9IGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL01vdXNlRXZlbnQuY3BwCmluZGV4IGIyNjdkZTJiZDA4Li43Zjg0NzY0NDBmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtNTAsNDYgKzUwLDM3IEBAIFJlZjxNb3VzZUV2ZW50
PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0
cjxXaW5kb3dQCiAgICAgYXV0byBpc0NhbmNlbGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1l
cygpLm1vdXNlbW92ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZlID8gSXNDYW5jZWxhYmxl
OjpZZXMgOiBJc0NhbmNlbGFibGU6Ok5vOwogICAgIGF1dG8gY2FuQnViYmxlID0gIWlzTW91c2VF
bnRlck9yTGVhdmUgPyBDYW5CdWJibGU6OlllcyA6IENhbkJ1YmJsZTo6Tm87CiAKLSAgICByZXR1
cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgY2FuQnViYmxlLCBpc0NhbmNlbGFibGUs
IGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCBXVEZNb3ZlKHZp
ZXcpLAotICAgICAgICBkZXRhaWwsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5n
bG9iYWxQb3NpdGlvbigpLnkoKSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9u
KCkueSgpLAorICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJi
bGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNU
aW1lKCksIFdURk1vdmUodmlldyksIGRldGFpbCwKKyAgICAgICAgZXZlbnQuZ2xvYmFsUG9zaXRp
b24oKSwgZXZlbnQucG9zaXRpb24oKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQotICAgICAg
ICBldmVudC5tb3ZlbWVudERlbHRhKCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLAor
ICAgICAgICBldmVudC5tb3ZlbWVudERlbHRhKCksCisjZWxzZQorICAgICAgICB7IH0sCiAjZW5k
aWYKLSAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRL
ZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC5idXR0b24oKSwgZXZlbnQuYnV0dG9ucygpLAot
ICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3JjZSgpLCBldmVudC5zeW50aGV0aWNDbGlj
a1R5cGUoKSk7CisgICAgICAgIGV2ZW50Lm1vZGlmaWVycygpLCBldmVudC5idXR0b24oKSwgZXZl
bnQuYnV0dG9ucygpLCByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3JjZSgpLCBldmVudC5zeW50aGV0
aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFi
bGUgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIFJlZlB0cjxXaW5kb3dQcm94
eT4mJiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdl
WCwgaW50IHBhZ2VZLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgaW50IG1vdmVtZW50
WCwgaW50IG1vdmVtZW50WSwKLSNlbmRpZgotICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXks
IGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNp
Z25lZCBzaG9ydCBidXR0b25zLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCwgZG91YmxlIGZv
cmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIERhdGFUcmFuc2ZlciogZGF0
YVRyYW5zZmVyLCBib29sIGlzU2ltdWxhdGVkKQorUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6
OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIENhbkJ1YmJsZSBjYW5CdWJibGUsIElz
Q2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdp
bmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsCisgICAgY29uc3QgSW50UG9pbnQmIHNjcmVl
bkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sIGNvbnN0IEludFBvaW50
JiBtb3ZlbWVudERlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgdW5zaWduZWQg
c2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLAorICAgIEV2ZW50VGFyZ2V0KiBy
ZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNr
VHlwZSwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIsIElzU2ltdWxhdGVkIGlzU2ltdWxhdGVk
KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQodHlwZSwgY2FuQnViYmxl
LCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIFdURk1vdmUodmlldyksCi0gICAgICAgIGRldGFpbCwg
eyBzY3JlZW5YLCBzY3JlZW5ZIH0sIHsgcGFnZVgsIHBhZ2VZIH0sCi0jaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKLSAgICAgICAgeyBtb3ZlbWVudFgsIG1vdmVtZW50WSB9LAotI2VuZGlmCi0gICAg
ICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXksIGJ1dHRvbiwgYnV0dG9ucywg
cmVsYXRlZFRhcmdldCwgZm9yY2UsIHN5bnRoZXRpY0NsaWNrVHlwZSwgZGF0YVRyYW5zZmVyLCBp
c1NpbXVsYXRlZCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQodHlwZSwg
Y2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIFdURk1vdmUodmlldyksIGRldGFpbCwK
KyAgICAgICAgc2NyZWVuTG9jYXRpb24sIHdpbmRvd0xvY2F0aW9uLCBtb3ZlbWVudERlbHRhLCBt
b2RpZmllcnMsIGJ1dHRvbiwgYnV0dG9ucywgcmVsYXRlZFRhcmdldCwgZm9yY2UsIHN5bnRoZXRp
Y0NsaWNrVHlwZSwgZGF0YVRyYW5zZmVyLCBpc1NpbXVsYXRlZCkpOwogfQogCi1SZWY8TW91c2VF
dmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBD
YW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJsZSwgUmVmUHRyPFdpbmRv
d1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50
IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNo
aWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hv
cnQgYnV0dG9ucywgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tUeXBlLCBFdmVudFRhcmdl
dCogcmVsYXRlZFRhcmdldCkKK1JlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENhbkJ1YmJsZSBjYW5CdWJibGUsIElzQ2FuY2Vs
YWJsZSBjYW5jZWxhYmxlLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywgaW50IGRldGFpbCwK
KyAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwg
T3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5z
aWduZWQgc2hvcnQgYnV0dG9ucywKKyAgICB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5
cGUsIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQogewotICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURk1vdmUo
dmlldyksIGRldGFpbCwgeyBzY3JlZW5YLCBzY3JlZW5ZIH0sIHsgY2xpZW50WCwgY2xpZW50WSB9
LCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBidXR0b24sIGJ1dHRvbnMsIHN5
bnRoZXRpY0NsaWNrVHlwZSwgcmVsYXRlZFRhcmdldCkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURk1vdmUo
dmlldyksIGRldGFpbCwgeyBzY3JlZW5YLCBzY3JlZW5ZIH0sIHsgY2xpZW50WCwgY2xpZW50WSB9
LCBtb2RpZmllcnMsIGJ1dHRvbiwgYnV0dG9ucywgc3ludGhldGljQ2xpY2tUeXBlLCByZWxhdGVk
VGFyZ2V0KSk7CiB9CiAKIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoKSA9IGRlZmF1bHQ7CiAKLU1v
dXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENhbkJ1
YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRp
bWVzdGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsIGNvbnN0IElu
dFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAot
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVu
dERlbHRhLAotI2VuZGlmCi0gICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
c2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBz
aG9ydCBidXR0b25zLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1
bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5z
ZmVyLCBib29sIGlzU2ltdWxhdGVkKQotICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZlbnRUeXBl
LCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHRpbWVzdGFtcCwgV1RGTW92ZSh2aWV3KSwgZGV0YWls
LCBzY3JlZW5Mb2NhdGlvbiwgd2luZG93TG9jYXRpb24sCi0jaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKLSAgICAgICAgbW92ZW1lbnREZWx0YSwKLSNlbmRpZgotICAgICAgICBjdHJsS2V5LCBhbHRL
ZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBpc1NpbXVsYXRlZCkKK01vdXNlRXZlbnQ6Ok1vdXNlRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENhbkJ1YmJsZSBjYW5CdWJibGUsIElz
Q2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdp
bmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsCisgICAgY29uc3QgSW50UG9pbnQmIHNjcmVl
bkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sIGNvbnN0IEludFBvaW50
JiBtb3ZlbWVudERlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgdW5zaWduZWQg
c2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLAorICAgIEV2ZW50VGFyZ2V0KiBy
ZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNr
VHlwZSwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIsIElzU2ltdWxhdGVkIGlzU2ltdWxhdGVk
KQorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFi
bGUsIHRpbWVzdGFtcCwgV1RGTW92ZSh2aWV3KSwgZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgd2lu
ZG93TG9jYXRpb24sIG1vdmVtZW50RGVsdGEsIG1vZGlmaWVycywgaXNTaW11bGF0ZWQpCiAgICAg
LCBtX2J1dHRvbihidXR0b24gPT0gKHVuc2lnbmVkIHNob3J0KS0xID8gMCA6IGJ1dHRvbikKICAg
ICAsIG1fYnV0dG9ucyhidXR0b25zKQogICAgICwgbV9zeW50aGV0aWNDbGlja1R5cGUoYnV0dG9u
ID09ICh1bnNpZ25lZCBzaG9ydCktMSA/IDAgOiBzeW50aGV0aWNDbGlja1R5cGUpCkBAIC0xMDAs
MTIgKzkxLDkgQEAgTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgQ2FuQnViYmxlIGNhbkJ1YmJsZSwgSXNDYW4KIHsKIH0KIAotTW91c2VFdmVudDo6
TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgQ2FuQnViYmxlIGNhbkJ1
YmJsZSwgSXNDYW5jZWxhYmxlIGNhbmNlbGFibGUsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3
LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBv
aW50JiBjbGllbnRMb2NhdGlvbiwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlm
dEtleSwgYm9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0
IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQq
IHJlbGF0ZWRUYXJnZXQpCi0gICAgOiBNb3VzZVJlbGF0ZWRFdmVudChldmVudFR5cGUsIGNhbkJ1
YmJsZSwgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZTo6bm93KCksIFdURk1vdmUodmlldyksIGRl
dGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKLSNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQotICAg
ICAgICB7IH0sCi0jZW5kaWYKLSAgICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0
YUtleSwgZmFsc2UpCitNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJsZSwg
UmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsCisgICAgY29uc3QgSW50UG9p
bnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgY2xpZW50TG9jYXRpb24sIE9wdGlv
blNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVk
IHNob3J0IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRXZlbnRU
YXJnZXQqIHJlbGF0ZWRUYXJnZXQpCisgICAgOiBNb3VzZVJlbGF0ZWRFdmVudChldmVudFR5cGUs
IGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZTo6bm93KCksIFdURk1vdmUodmll
dyksIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwgeyB9LCBtb2RpZmllcnMsIElzU2ltdWxh
dGVkOjpObykKICAgICAsIG1fYnV0dG9uKGJ1dHRvbiA9PSAodW5zaWduZWQgc2hvcnQpLTEgPyAw
IDogYnV0dG9uKQogICAgICwgbV9idXR0b25zKGJ1dHRvbnMpCiAgICAgLCBtX3N5bnRoZXRpY0Ns
aWNrVHlwZShidXR0b24gPT0gKHVuc2lnbmVkIHNob3J0KS0xID8gMCA6IHN5bnRoZXRpY0NsaWNr
VHlwZSkKQEAgLTEyNyw3ICsxMTUsOCBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBNb3VzZUV2ZW50SW5pdCYgaW5pdAogCiBNb3Vz
ZUV2ZW50Ojp+TW91c2VFdmVudCgpID0gZGVmYXVsdDsKIAotdm9pZCBNb3VzZUV2ZW50Ojppbml0
TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQg
c2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJs
S2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1bnNpZ25lZCBz
aG9ydCBidXR0b24sIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQordm9pZCBNb3VzZUV2ZW50
Ojppbml0TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBpbnQgZGV0YWls
LAorICAgIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZ
LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXks
IHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpCiB7CiAg
ICAgaWYgKGlzQmVpbmdEaXNwYXRjaGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEzNSwxMCAr
MTI0LDcgQEAgdm9pZCBNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGMKICAgICBpbml0VUlFdmVudCh0eXBlLCBj
YW5CdWJibGUsIGNhbmNlbGFibGUsIFdURk1vdmUodmlldyksIGRldGFpbCk7CiAKICAgICBtX3Nj
cmVlbkxvY2F0aW9uID0gSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVuWSk7Ci0gICAgbV9jdHJsS2V5
ID0gY3RybEtleTsKLSAgICBtX2FsdEtleSA9IGFsdEtleTsKLSAgICBtX3NoaWZ0S2V5ID0gc2hp
ZnRLZXk7Ci0gICAgbV9tZXRhS2V5ID0gbWV0YUtleTsKKyAgICBzZXRNb2RpZmllcktleXMoY3Ry
bEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSk7CiAgICAgbV9idXR0b24gPSBidXR0b24g
PT0gKHVuc2lnbmVkIHNob3J0KS0xID8gMCA6IGJ1dHRvbjsKICAgICBtX3N5bnRoZXRpY0NsaWNr
VHlwZSA9IDA7CiAgICAgbV9idXR0b25Eb3duID0gYnV0dG9uICE9ICh1bnNpZ25lZCBzaG9ydCkt
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTW91c2VFdmVudC5oCmluZGV4IGIwM2FhYmJiZTZmLi4wMmQzNWM2NzMxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zNCwxOCArMzQsMTQgQEAgY2xhc3MgUGxhdGZv
cm1Nb3VzZUV2ZW50OwogCiBjbGFzcyBNb3VzZUV2ZW50IDogcHVibGljIE1vdXNlUmVsYXRlZEV2
ZW50IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIENhbkJ1YmJsZSwgSXNDYW5jZWxhYmxl
LCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwKLSAgICAgICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYm
LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBh
Z2VZLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAgIGludCBtb3ZlbWVudFgsIGlu
dCBtb3ZlbWVudFksCi0jZW5kaWYKLSAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2ln
bmVkIHNob3J0IGJ1dHRvbnMsCi0gICAgICAgIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0LCBk
b3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRGF0YVRyYW5z
ZmVyKiA9IG51bGxwdHIsIGJvb2wgaXNTaW11bGF0ZWQgPSBmYWxzZSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBDYW5CdWJibGUsIElzQ2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIFJl
ZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IGRldGFpbCwKKyAgICAgICAgY29uc3QgSW50UG9pbnQm
IHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sIGNvbnN0IElu
dFBvaW50JiBtb3ZlbWVudERlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+LCB1bnNpZ25lZCBzaG9y
dCBidXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsCisgICAgICAgIEV2ZW50VGFyZ2V0KiBy
ZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNr
VHlwZSwgRGF0YVRyYW5zZmVyKiA9IG51bGxwdHIsIElzU2ltdWxhdGVkID0gSXNTaW11bGF0ZWQ6
Ok5vKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8V2luZG93UHJveHk+JiYsIGNv
bnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGludCBkZXRhaWwsIE5vZGUqIHJlbGF0ZWRUYXJnZXQp
OwogCiAgICAgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIENhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlLCBSZWZQdHI8V2luZG93UHJveHk+
JiYsCi0gICAgICAgIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNs
aWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0
S2V5LCBib29sIG1ldGFLZXksCisgICAgICAgIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQg
c2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBPcHRpb25TZXQ8TW9kaWZpZXI+LAog
ICAgICAgICB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsIHVu
c2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJn
ZXQpOwogCiAgICAgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGVGb3JCaW5kaW5ncygpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTW91c2VFdmVudCk7IH0KQEAgLTgwLDE4ICs3NiwxMyBAQCBw
dWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7CiAKIHByb3RlY3RlZDoKLSAgICBN
b3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQ2FuQnViYmxlLCBJc0NhbmNlbGFi
bGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYsCi0gICAg
ICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50
UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAg
IGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLAotI2VuZGlmCi0gICAgICAgIGJvb2wgY3Ry
bEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWduZWQg
c2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLAotICAgICAgICBFdmVudFRhcmdl
dCogcmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWND
bGlja1R5cGUsIERhdGFUcmFuc2ZlciosIGJvb2wgaXNTaW11bGF0ZWQpOworICAgIE1vdXNlRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBDYW5CdWJibGUsIElzQ2FuY2VsYWJsZSwgTW9u
b3RvbmljVGltZSB0aW1lc3RhbXAsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IGRldGFpbCwK
KyAgICAgICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYg
d2luZG93TG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLCBPcHRpb25TZXQ8
TW9kaWZpZXI+LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMs
CisgICAgICAgIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2ln
bmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRGF0YVRyYW5zZmVyKiwgSXNTaW11bGF0ZWQp
OwogCiAgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIENhbkJ1YmJsZSwg
SXNDYW5jZWxhYmxlLCBSZWZQdHI8V2luZG93UHJveHk+JiYsCiAgICAgICAgIGludCBkZXRhaWws
IGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudExv
Y2F0aW9uLAotICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5
LCBib29sIG1ldGFLZXksCi0gICAgICAgIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQg
c2hvcnQgYnV0dG9ucywgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tUeXBlLCBFdmVudFRh
cmdldCogcmVsYXRlZFRhcmdldCk7CisgICAgICAgIE9wdGlvblNldDxNb2RpZmllcj4sIHVuc2ln
bmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywgdW5zaWduZWQgc2hvcnQg
c3ludGhldGljQ2xpY2tUeXBlLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCk7CiAKICAgICBN
b3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTW91c2VFdmVudEluaXQm
LCBJc1RydXN0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxh
dGVkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcApp
bmRleCBhMzIyN2E1NGJiNC4uMTc1MTlkMGNiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmNwcApAQCAtMzMsMjAgKzMzLDI0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0
IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9u
LAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCi0jZW5kaWYKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBi
b29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGJvb2wgaXNTaW11bGF0ZWQpCi0gICAgOiBVSUV2
ZW50V2l0aEtleVN0YXRlKGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3Rh
bXAsIFdURk1vdmUodmlldyksIGRldGFpbCwgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0
YUtleSwgZmFsc2UsIGZhbHNlKQorTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0Nh
bmNlbGFibGUgaXNDYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdp
bmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsCisgICAgY29uc3QgSW50UG9pbnQmIHNjcmVl
bkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sIGNvbnN0IEludFBvaW50
JiBtb3ZlbWVudERlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgSXNTaW11bGF0
ZWQgaXNTaW11bGF0ZWQpCisgICAgOiBVSUV2ZW50V2l0aEtleVN0YXRlKGV2ZW50VHlwZSwgY2Fu
QnViYmxlLCBpc0NhbmNlbGFibGUsIHRpbWVzdGFtcCwgV1RGTW92ZSh2aWV3KSwgZGV0YWlsLCBt
b2RpZmllcnMpCiAgICAgLCBtX3NjcmVlbkxvY2F0aW9uKHNjcmVlbkxvY2F0aW9uKQogI2lmIEVO
QUJMRShQT0lOVEVSX0xPQ0spCiAgICAgLCBtX21vdmVtZW50RGVsdGEobW92ZW1lbnREZWx0YSkK
ICNlbmRpZgotICAgICwgbV9pc1NpbXVsYXRlZChpc1NpbXVsYXRlZCkKKyAgICAsIG1faXNTaW11
bGF0ZWQoaXNTaW11bGF0ZWQgPT0gSXNTaW11bGF0ZWQ6OlllcykKK3sKKyNpZiAhRU5BQkxFKFBP
SU5URVJfTE9DSykKKyAgICBVTlVTRURfUEFSQU0obW92ZW1lbnREZWx0YSk7CisjZW5kaWYKKyAg
ICBpbml0KG1faXNTaW11bGF0ZWQsIHdpbmRvd0xvY2F0aW9uKTsKK30KKworTW91c2VSZWxhdGVk
RXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgSXNDYW5j
ZWxhYmxlIGlzQ2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIFJlZjxXaW5kb3dQ
cm94eT4mJiB2aWV3LCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsTG9jYXRpb24sIE9wdGlvblNldDxN
b2RpZmllcj4gbW9kaWZpZXJzKQorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgQ2FuQnVi
YmxlOjpZZXMsIGlzQ2FuY2VsYWJsZSwgdGltZXN0YW1wLCBXVEZNb3ZlKHZpZXcpLCAwLCBnbG9i
YWxMb2NhdGlvbiwgZ2xvYmFsTG9jYXRpb24gLyogQ29udmVydGVkIGluIGluaXQgKi8sIHsgfSwg
bW9kaWZpZXJzLCBJc1NpbXVsYXRlZDo6Tm8pCiB7Ci0gICAgaW5pdChpc1NpbXVsYXRlZCwgd2lu
ZG93TG9jYXRpb24pOwogfQogCiBNb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IE1vdXNlUmVsYXRlZEV2ZW50SW5p
dCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5oCmluZGV4IGQ4ZjFmY2RmM2UxLi4wYWIyMTQyNWI3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKQEAgLTM4LDYgKzM4LDggQEAgc3RydWN0IE1v
dXNlUmVsYXRlZEV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudE1vZGlmaWVySW5pdCB7CiAvLyBJbnRl
cm5hbCBvbmx5OiBIZWxwZXIgY2xhc3MgZm9yIHdoYXQncyBjb21tb24gYmV0d2VlbiBtb3VzZSBh
bmQgd2hlZWwgZXZlbnRzLgogY2xhc3MgTW91c2VSZWxhdGVkRXZlbnQgOiBwdWJsaWMgVUlFdmVu
dFdpdGhLZXlTdGF0ZSB7CiBwdWJsaWM6CisgICAgZW51bSBjbGFzcyBJc1NpbXVsYXRlZCA6IHVp
bnQ4X3QgeyBZZXMsIE5vIH07CisKICAgICAvLyBOb3RlIHRoYXQgdGhlc2UgdmFsdWVzIGFyZSBh
ZGp1c3RlZCB0byBjb3VudGVyIHRoZSBlZmZlY3RzIG9mIHpvb20sIHNvIHRoYXQgdmFsdWVzCiAg
ICAgLy8gZXhwb3NlZCB2aWEgRE9NIEFQSXMgYXJlIGludmFyaWFudCB1bmRlciB6b29taW5nLgog
ICAgIGludCBzY3JlZW5YKCkgY29uc3QgeyByZXR1cm4gbV9zY3JlZW5Mb2NhdGlvbi54KCk7IH0K
QEAgLTc0LDEyICs3Niw5IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1vdXNlUmVsYXRl
ZEV2ZW50KCkgPSBkZWZhdWx0OwotICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgQ2FuQnViYmxlLCBJc0NhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYsCi0gICAgICAgIGludCBkZXRhaWwsIGNvbnN0IElu
dFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAot
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVu
dERlbHRhLAotI2VuZGlmCi0gICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
c2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBpc1NpbXVsYXRlZCA9IGZhbHNlKTsKKyAgICBN
b3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIENhbkJ1YmJsZSwgSXND
YW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lLCBSZWZQdHI8V2luZG93UHJveHk+JiYsIGludCBkZXRh
aWwsCisgICAgICAgIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9p
bnQmIHdpbmRvd0xvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwgT3B0aW9u
U2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIElzU2ltdWxhdGVkID0gSXNTaW11bGF0ZWQ6Ok5vKTsK
KyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIElzQ2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSwgUmVmPFdpbmRvd1Byb3h5PiYmLCBjb25zdCBJbnRQb2ludCYg
Z2xvYmFsTG9jYXRpb24sIE9wdGlvblNldDxNb2RpZmllcj4pOwogICAgIE1vdXNlUmVsYXRlZEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgTW91c2VSZWxhdGVkRXZlbnRJbml0
JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CiAKICAgICB2b2lkIGluaXRDb29yZGluYXRl
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKaW5kZXggYTUyYzFhNzgzODYu
LmY1MDZmYWY4ZDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xp
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKQEAgLTQ0
LDIxICs0NCwxMiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91c2VFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZp
ZXcsIFJlZlB0cjxFdmVudD4mJiB1bmRlcmx5aW5nRXZlbnQsIEVsZW1lbnQmIHRhcmdldCwgU2lt
dWxhdGVkQ2xpY2tTb3VyY2Ugc291cmNlKQotICAgICAgICA6IE1vdXNlRXZlbnQoZXZlbnRUeXBl
LCBDYW5CdWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpZZXMsIHVuZGVybHlpbmdFdmVudCA/IHVu
ZGVybHlpbmdFdmVudC0+dGltZVN0YW1wKCkgOiBNb25vdG9uaWNUaW1lOjpub3coKSwgV1RGTW92
ZSh2aWV3KSwgMCwgeyB9LCB7IH0sCi0jaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAg
ICAgIHsgfSwKLSNlbmRpZgotICAgICAgICAgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IDAsIDAsIG51bGxwdHIsIDAsIDAsIG51bGxwdHIsIHRydWUpCisgICAgICAgIDogTW91c2VFdmVu
dChldmVudFR5cGUsIENhbkJ1YmJsZTo6WWVzLCBJc0NhbmNlbGFibGU6OlllcywgdW5kZXJseWlu
Z0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6IE1vbm90b25pY1RpbWU6Om5v
dygpLCBXVEZNb3ZlKHZpZXcpLCAvKiBkZXRhaWwgKi8gMCwKKyAgICAgICAgICAgIHsgfSwgeyB9
LCB7IH0sIG1vZGlmaWVyc0Zyb21VbmRlcmx5aW5nRXZlbnQodW5kZXJseWluZ0V2ZW50KSwgMCwg
MCwgbnVsbHB0ciwgMCwgMCwgbnVsbHB0ciwgSXNTaW11bGF0ZWQ6OlllcykKICAgICB7CiAgICAg
ICAgIGlmIChzb3VyY2UgPT0gU2ltdWxhdGVkQ2xpY2tTb3VyY2U6OkJpbmRpbmdzKQogICAgICAg
ICAgICAgc2V0VW50cnVzdGVkKCk7CiAKLSAgICAgICAgaWYgKFVJRXZlbnRXaXRoS2V5U3RhdGUq
IGtleVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUodW5kZXJseWluZ0V2ZW50Lmdl
dCgpKSkgewotICAgICAgICAgICAgbV9jdHJsS2V5ID0ga2V5U3RhdGVFdmVudC0+Y3RybEtleSgp
OwotICAgICAgICAgICAgbV9hbHRLZXkgPSBrZXlTdGF0ZUV2ZW50LT5hbHRLZXkoKTsKLSAgICAg
ICAgICAgIG1fc2hpZnRLZXkgPSBrZXlTdGF0ZUV2ZW50LT5zaGlmdEtleSgpOwotICAgICAgICAg
ICAgbV9tZXRhS2V5ID0ga2V5U3RhdGVFdmVudC0+bWV0YUtleSgpOwotICAgICAgICB9CiAgICAg
ICAgIHNldFVuZGVybHlpbmdFdmVudCh1bmRlcmx5aW5nRXZlbnQuZ2V0KCkpOwogCiAgICAgICAg
IGlmIChpczxNb3VzZUV2ZW50Pih0aGlzLT51bmRlcmx5aW5nRXZlbnQoKSkpIHsKQEAgLTc1LDYg
KzY2LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBzdGF0aWMgT3B0aW9u
U2V0PE1vZGlmaWVyPiBtb2RpZmllcnNGcm9tVW5kZXJseWluZ0V2ZW50KGNvbnN0IFJlZlB0cjxF
dmVudD4mIHVuZGVybHlpbmdFdmVudCkKKyAgICB7CisgICAgICAgIFVJRXZlbnRXaXRoS2V5U3Rh
dGUqIGtleVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRoS2V5U3RhdGUodW5kZXJseWluZ0V2ZW50
LmdldCgpKTsKKyAgICAgICAgaWYgKCFrZXlTdGF0ZUV2ZW50KQorICAgICAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICAgICAgcmV0dXJuIGtleVN0YXRlRXZlbnQtPm1vZGlmaWVyS2V5cygpOworICAg
IH0KIH07CiAKIHN0YXRpYyB2b2lkIHNpbXVsYXRlTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZWxlbWVudCwgRXZlbnQqIHVuZGVybHlpbmdFdmVudCwg
U2ltdWxhdGVkQ2xpY2tTb3VyY2Ugc291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1RvdWNoRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCmlu
ZGV4IDI5MmM4NDY2OGY2Li4wOWViNWY1Zjg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1RvdWNoRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNw
cApAQCAtMzcsMTMgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogVG91Y2hFdmVudDo6VG91
Y2hFdmVudCgpID0gZGVmYXVsdDsKIAogVG91Y2hFdmVudDo6VG91Y2hFdmVudChUb3VjaExpc3Qq
IHRvdWNoZXMsIFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcywgVG91Y2hMaXN0KiBjaGFuZ2VkVG91
Y2hlcywgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLAotICAgIFJlZlB0cjxXaW5kb3dQcm94eT4m
JiB2aWV3LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLCBi
b29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpCi0g
ICAgOiBNb3VzZVJlbGF0ZWRFdmVudCh0eXBlLCBDYW5CdWJibGU6OlllcywgSXNDYW5jZWxhYmxl
OjpZZXMsIE1vbm90b25pY1RpbWU6Om5vdygpLCBXVEZNb3ZlKHZpZXcpLCAwLCBJbnRQb2ludChz
Y3JlZW5YLCBzY3JlZW5ZKSwKLSAgICAgICAgSW50UG9pbnQocGFnZVgsIHBhZ2VZKSwKLSNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQotICAgICAgICBJbnRQb2ludCgwLCAwKSwKLSNlbmRpZgotICAg
ICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5KQorICAgIFJlZlB0cjxXaW5k
b3dQcm94eT4mJiB2aWV3LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50
IHBhZ2VZLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycykKKyAgICA6IE1vdXNlUmVsYXRl
ZEV2ZW50KHR5cGUsIENhbkJ1YmJsZTo6WWVzLCBJc0NhbmNlbGFibGU6OlllcywgTW9ub3Rvbmlj
VGltZTo6bm93KCksIFdURk1vdmUodmlldyksIDAsCisgICAgICAgIEludFBvaW50KHNjcmVlblgs
IHNjcmVlblkpLCBJbnRQb2ludChwYWdlWCwgcGFnZVkpLCBJbnRQb2ludCgwLCAwKSwgbW9kaWZp
ZXJzKQogICAgICwgbV90b3VjaGVzKHRvdWNoZXMpCiAgICAgLCBtX3RhcmdldFRvdWNoZXModGFy
Z2V0VG91Y2hlcykKICAgICAsIG1fY2hhbmdlZFRvdWNoZXMoY2hhbmdlZFRvdWNoZXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RvdWNoRXZlbnQuaAppbmRleCA4NWZhMTYxZjIxOS4uZDA1ODA3NjE5MzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RvdWNoRXZlbnQuaApAQCAtMzksMTUgKzM5LDExIEBAIGNsYXNzIFRvdWNoRXZlbnQgZmlu
YWwgOiBwdWJsaWMgTW91c2VSZWxhdGVkRXZlbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflRv
dWNoRXZlbnQoKTsKIAotICAgIHN0YXRpYyBSZWY8VG91Y2hFdmVudD4gY3JlYXRlKFRvdWNoTGlz
dCogdG91Y2hlcywgCi0gICAgICAgICAgICBUb3VjaExpc3QqIHRhcmdldFRvdWNoZXMsIFRvdWNo
TGlzdCogY2hhbmdlZFRvdWNoZXMsIAotICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywKLSAgICAgICAgICAgIGludCBzY3JlZW5Y
LCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCi0gICAgICAgICAgICBib29sIGN0
cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpCisgICAgc3Rh
dGljIFJlZjxUb3VjaEV2ZW50PiBjcmVhdGUoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3Qq
IHRhcmdldFRvdWNoZXMsIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsCisgICAgICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIE9wdGlvblNldDxNb2RpZmll
cj4gbW9kaWZpZXJzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVG91Y2hF
dmVudCh0b3VjaGVzLCB0YXJnZXRUb3VjaGVzLCBjaGFuZ2VkVG91Y2hlcywKLSAgICAgICAgICAg
ICAgICB0eXBlLCBXVEZNb3ZlKHZpZXcpLCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFnZVks
Ci0gICAgICAgICAgICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSkpOwor
ICAgICAgICAgICAgdHlwZSwgV1RGTW92ZSh2aWV3KSwgbW9kaWZpZXJzLCBzY3JlZW5YLCBzY3Jl
ZW5ZLCBwYWdlWCwgcGFnZVkpKTsKICAgICB9CiAgICAgc3RhdGljIFJlZjxUb3VjaEV2ZW50PiBj
cmVhdGVGb3JCaW5kaW5ncygpCiAgICAgewpAQCAtNjUsMTEgKzYxLDggQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUb3VjaEV2ZW50KHR5cGUsIGluaXRpYWxpemVyLCBp
c1RydXN0ZWQpKTsKICAgICB9CiAKLSAgICB2b2lkIGluaXRUb3VjaEV2ZW50KFRvdWNoTGlzdCog
dG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAotICAgICAgICAgICAgVG91Y2hMaXN0
KiBjaGFuZ2VkVG91Y2hlcywgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCAKLSAgICAgICAgICAg
IFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLAotICAgICAg
ICAgICAgaW50IGNsaWVudFgsIGludCBjbGllbnRZLAotICAgICAgICAgICAgYm9vbCBjdHJsS2V5
LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KTsKKyAgICB2b2lkIGlu
aXRUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVz
LCBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsCisg
ICAgICAgIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBp
bnQgY2xpZW50WCwgaW50IGNsaWVudFksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
c2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CiAKICAgICBUb3VjaExpc3QqIHRvdWNoZXMoKSBjb25z
dCB7IHJldHVybiBtX3RvdWNoZXMuZ2V0KCk7IH0KICAgICBUb3VjaExpc3QqIHRhcmdldFRvdWNo
ZXMoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldFRvdWNoZXMuZ2V0KCk7IH0KQEAgLTg1LDExICs3
OCw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBUb3VjaEV2ZW50KCk7Ci0gICAgVG91Y2hF
dmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcywKLSAgICAg
ICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwKLSAgICAgICAgICAgIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IHNjcmVlblgsIGludCBz
Y3JlZW5ZLCBpbnQgcGFnZVgsCi0gICAgICAgICAgICBpbnQgcGFnZVksCi0gICAgICAgICAgICBi
b29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpOwor
ICAgIFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdldFRvdWNo
ZXMsIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwK
KyAgICAgICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBpbnQg
c2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZKTsKICAgICBUb3VjaEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOwogCiAgICAg
UmVmUHRyPFRvdWNoTGlzdD4gbV90b3VjaGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0
aEtleVN0YXRlLmgKaW5kZXggMzY2ODM2NDY5OWIuLmQ5Y2E3NThmZDk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKQEAgLTI0LDYxICsyNCwxMDQgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiRXZlbnRNb2RpZmllckluaXQuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiVUlFdmVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFVJRXZlbnRXaXRoS2V5U3RhdGUgOiBwdWJsaWMgVUlFdmVudCB7CiBwdWJsaWM6
Ci0gICAgYm9vbCBjdHJsS2V5KCkgY29uc3QgeyByZXR1cm4gbV9jdHJsS2V5OyB9Ci0gICAgYm9v
bCBzaGlmdEtleSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hpZnRLZXk7IH0KLSAgICBib29sIGFsdEtl
eSgpIGNvbnN0IHsgcmV0dXJuIG1fYWx0S2V5OyB9Ci0gICAgYm9vbCBtZXRhS2V5KCkgY29uc3Qg
eyByZXR1cm4gbV9tZXRhS2V5OyB9Ci0gICAgYm9vbCBhbHRHcmFwaEtleSgpIGNvbnN0IHsgcmV0
dXJuIG1fYWx0R3JhcGhLZXk7IH0KLSAgICBib29sIGNhcHNMb2NrS2V5KCkgY29uc3QgeyByZXR1
cm4gbV9jYXBzTG9ja0tleTsgfQorICAgIHVzaW5nIE1vZGlmaWVyID0gUGxhdGZvcm1FdmVudDo6
TW9kaWZpZXI7CisKKyAgICBib29sIGN0cmxLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVy
cy5jb250YWlucyhNb2RpZmllcjo6Q3RybEtleSk7IH0KKyAgICBib29sIHNoaWZ0S2V5KCkgY29u
c3QgeyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9kaWZpZXI6OlNoaWZ0S2V5KTsgfQor
ICAgIGJvb2wgYWx0S2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9k
aWZpZXI6OkFsdEtleSk7IH0KKyAgICBib29sIG1ldGFLZXkoKSBjb25zdCB7IHJldHVybiBtX21v
ZGlmaWVycy5jb250YWlucyhNb2RpZmllcjo6TWV0YUtleSk7IH0KKyAgICBib29sIGFsdEdyYXBo
S2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9kaWZpZXI6OkFsdEdy
YXBoS2V5KTsgfQorICAgIGJvb2wgY2Fwc0xvY2tLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZGlm
aWVycy5jb250YWlucyhNb2RpZmllcjo6Q2Fwc0xvY2tLZXkpOyB9CisKKyAgICBPcHRpb25TZXQ8
TW9kaWZpZXI+IG1vZGlmaWVyS2V5cygpIHsgcmV0dXJuIG1fbW9kaWZpZXJzOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICBVSUV2ZW50V2l0aEtleVN0YXRlKCkgPSBkZWZhdWx0OwogCi0gICAgVUlFdmVu
dFdpdGhLZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIENhbkJ1YmJsZSBjYW5CdWJi
bGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywg
aW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5KQorICAgIFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJsZSwgUmVmUHRy
PFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsIE9wdGlvblNldDxNb2RpZmllcj4gbW9k
aWZpZXJzKQogICAgICAgICA6IFVJRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBX
VEZNb3ZlKHZpZXcpLCBkZXRhaWwpCi0gICAgICAgICwgbV9jdHJsS2V5KGN0cmxLZXkpCi0gICAg
ICAgICwgbV9hbHRLZXkoYWx0S2V5KQotICAgICAgICAsIG1fc2hpZnRLZXkoc2hpZnRLZXkpCi0g
ICAgICAgICwgbV9tZXRhS2V5KG1ldGFLZXkpCisgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZp
ZXJzKQogICAgIHsKICAgICB9CiAKLSAgICBVSUV2ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgQ2FuQnViYmxlIGNhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlIGNhbmNlbGFi
bGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywK
LSAgICAgICAgaW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlm
dEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQot
ICAgICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0
YW1wLCBXVEZNb3ZlKHZpZXcpLCBkZXRhaWwpCi0gICAgICAgICAgICAsIG1fY3RybEtleShjdHJs
S2V5KQotICAgICAgICAgICAgLCBtX2FsdEtleShhbHRLZXkpCi0gICAgICAgICAgICAsIG1fc2hp
ZnRLZXkoc2hpZnRLZXkpCi0gICAgICAgICAgICAsIG1fbWV0YUtleShtZXRhS2V5KQotICAgICAg
ICAgICAgLCBtX2FsdEdyYXBoS2V5KGFsdEdyYXBoS2V5KQotICAgICAgICAgICAgLCBtX2NhcHNM
b2NrS2V5KGNhcHNMb2NrS2V5KQorICAgIFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJs
ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBp
bnQgZGV0YWlsLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycykKKyAgICAgICAgOiBVSUV2
ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCBXVEZNb3ZlKHZpZXcp
LCBkZXRhaWwpCisgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgIHsKICAgICB9
CiAKICAgICBVSUV2ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29u
c3QgRXZlbnRNb2RpZmllckluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQog
ICAgICAgICA6IFVJRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKLSAgICAgICAg
LCBtX2N0cmxLZXkoaW5pdGlhbGl6ZXIuY3RybEtleSkKLSAgICAgICAgLCBtX2FsdEtleShpbml0
aWFsaXplci5hbHRLZXkpCi0gICAgICAgICwgbV9zaGlmdEtleShpbml0aWFsaXplci5zaGlmdEtl
eSkKLSAgICAgICAgLCBtX21ldGFLZXkoaW5pdGlhbGl6ZXIubWV0YUtleSkKLSAgICAgICAgLCBt
X2FsdEdyYXBoS2V5KGluaXRpYWxpemVyLm1vZGlmaWVyQWx0R3JhcGgpCi0gICAgICAgICwgbV9j
YXBzTG9ja0tleShpbml0aWFsaXplci5tb2RpZmllckNhcHNMb2NrKQorICAgICAgICAsIG1fbW9k
aWZpZXJzKG1vZGlmaWVyc0Zyb21Jbml0aWFsaXplcihpbml0aWFsaXplcikpCisgICAgeworICAg
IH0KKworICAgIHZvaWQgc2V0TW9kaWZpZXJLZXlzKGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXks
IGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBhbHRHcmFwaEtleSkKICAgICB7Cisg
ICAgICAgIE9wdGlvblNldDxNb2RpZmllcj4gcmVzdWx0OworICAgICAgICBpZiAoY3RybEtleSkK
KyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6Q3RybEtleTsKKyAgICAgICAgaWYgKGFs
dEtleSkKKyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6QWx0S2V5OworICAgICAgICBp
ZiAoc2hpZnRLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OlNoaWZ0S2V5Owor
ICAgICAgICBpZiAobWV0YUtleSkKKyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6TWV0
YUtleTsKKyAgICAgICAgaWYgKGFsdEdyYXBoS2V5KQorICAgICAgICAgICAgcmVzdWx0IHw9IE1v
ZGlmaWVyOjpBbHRHcmFwaEtleTsKKyAgICAgICAgLy8gIEZJWE1FOiBDaHJvbWUgb3IgRmlyZWZv
eCBkb24ndCBwcmVzZXJ2ZSB0aGlzIHN0YXRlLgorICAgICAgICBpZiAobV9tb2RpZmllcnMgJiBN
b2RpZmllcjo6Q2Fwc0xvY2tLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkNh
cHNMb2NrS2V5OworICAgICAgICBtX21vZGlmaWVycyA9IHJlc3VsdDsKICAgICB9CiAKLSAgICAv
LyBFeHBvc2UgdGhlc2Ugc28gaW5pdCBmdW5jdGlvbnMgY2FuIHNldCB0aGVtLgotICAgIGJvb2wg
bV9jdHJsS2V5IHsgZmFsc2UgfTsKLSAgICBib29sIG1fYWx0S2V5IHsgZmFsc2UgfTsKLSAgICBi
b29sIG1fc2hpZnRLZXkgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9tZXRhS2V5IHsgZmFsc2UgfTsK
LSAgICBib29sIG1fYWx0R3JhcGhLZXkgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9jYXBzTG9ja0tl
eSB7IGZhbHNlIH07CisgICAgdm9pZCBzZXRNb2RpZmllcktleXMoYm9vbCBjdHJsS2V5LCBib29s
IGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQorICAgIHsKKyAgICAgICAgT3B0
aW9uU2V0PE1vZGlmaWVyPiByZXN1bHQ7CisgICAgICAgIGlmIChjdHJsS2V5KQorICAgICAgICAg
ICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpDdHJsS2V5OworICAgICAgICBpZiAoYWx0S2V5KQorICAg
ICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpBbHRLZXk7CisgICAgICAgIGlmIChzaGlmdEtl
eSkKKyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6U2hpZnRLZXk7CisgICAgICAgIGlm
IChtZXRhS2V5KQorICAgICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpNZXRhS2V5OworICAg
ICAgICAvLyAgRklYTUU6IENocm9tZSBvciBGaXJlZm94IGRvbid0IHByZXNlcnZlIHRoZXNlIHN0
YXRlcy4KKyAgICAgICAgaWYgKG1fbW9kaWZpZXJzICYgTW9kaWZpZXI6OkFsdEdyYXBoS2V5KQor
ICAgICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpBbHRHcmFwaEtleTsKKyAgICAgICAgaWYg
KG1fbW9kaWZpZXJzICYgTW9kaWZpZXI6OkNhcHNMb2NrS2V5KQorICAgICAgICAgICAgcmVzdWx0
IHw9IE1vZGlmaWVyOjpDYXBzTG9ja0tleTsKKyAgICAgICAgbV9tb2RpZmllcnMgPSByZXN1bHQ7
CisgICAgfQorCitwcml2YXRlOgorICAgIE9wdGlvblNldDxNb2RpZmllcj4gbV9tb2RpZmllcnM7
CisKKyAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVyc0Zyb21Jbml0aWFsaXplcihjb25z
dCBFdmVudE1vZGlmaWVySW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgeworICAgICAgICBPcHRpb25T
ZXQ8TW9kaWZpZXI+IHJlc3VsdDsKKyAgICAgICAgaWYgKGluaXRpYWxpemVyLmN0cmxLZXkpCisg
ICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkN0cmxLZXk7CisgICAgICAgIGlmIChpbml0
aWFsaXplci5hbHRLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkFsdEtleTsK
KyAgICAgICAgaWYgKGluaXRpYWxpemVyLnNoaWZ0S2V5KQorICAgICAgICAgICAgcmVzdWx0IHw9
IE1vZGlmaWVyOjpTaGlmdEtleTsKKyAgICAgICAgaWYgKGluaXRpYWxpemVyLm1ldGFLZXkpCisg
ICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6Ok1ldGFLZXk7CisgICAgICAgIGlmIChpbml0
aWFsaXplci5tb2RpZmllckFsdEdyYXBoKQorICAgICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVy
OjpBbHRHcmFwaEtleTsKKyAgICAgICAgaWYgKGluaXRpYWxpemVyLm1vZGlmaWVyQ2Fwc0xvY2sp
CisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkNhcHNMb2NrS2V5OworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKIH07CiAKIFVJRXZlbnRXaXRoS2V5U3RhdGUqIGZp
bmRFdmVudFdpdGhLZXlTdGF0ZShFdmVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCmlu
ZGV4IDI3Njc3YTg3YTVlLi4wNzIyM2I5NTQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNw
cApAQCAtNDgsMTEgKzQ4LDggQEAgaW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwKIH0KIAogaW5saW5l
IFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwg
UmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcpCi0gICAgOiBNb3VzZUV2ZW50KGV2ZW50TmFtZXMo
KS53aGVlbEV2ZW50LCBDYW5CdWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpZZXMsIGV2ZW50LnRp
bWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCBXVEZNb3ZlKHZpZXcpLCAwLCBl
dmVudC5nbG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpCi0jaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKLSAgICAgICAgLCB7IH0KLSNlbmRpZgotICAgICAgICAsIGV2ZW50LmN0cmxLZXko
KSwgZXZlbnQuYWx0S2V5KCksIGV2ZW50LnNoaWZ0S2V5KCksIGV2ZW50Lm1ldGFLZXkoKSwgMCwg
MCwgbnVsbHB0ciwgMCwgMCwgbnVsbHB0ciwgZmFsc2UpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50
TmFtZXMoKS53aGVlbEV2ZW50LCBDYW5CdWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpZZXMsIGV2
ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCBXVEZNb3ZlKHZpZXcp
LCAwLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpICwgeyB9CisgICAg
ICAgICwgZXZlbnQubW9kaWZpZXJzKCksIDAsIDAsIG51bGxwdHIsIDAsIDAsIG51bGxwdHIsIElz
U2ltdWxhdGVkOjpObykKICAgICAsIG1fd2hlZWxEZWx0YShldmVudC53aGVlbFRpY2tzWCgpICog
VGlja011bHRpcGxpZXIsIGV2ZW50LndoZWVsVGlja3NZKCkgKiBUaWNrTXVsdGlwbGllcikKICAg
ICAsIG1fZGVsdGFYKC1ldmVudC5kZWx0YVgoKSkKICAgICAsIG1fZGVsdGFZKC1ldmVudC5kZWx0
YVkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwNjMxYTExYTY1MS4u
ZjA2ZGQzMzNmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIyMTMs
MTQgKzIyMTMsMTUgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50JiBkcmEKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgdmlldy0+ZGlzYWJsZUxheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlG
b3JJbnRlcmFjdGlvbigpOwotICAgIFJlZjxNb3VzZUV2ZW50PiBtZSA9IE1vdXNlRXZlbnQ6OmNy
ZWF0ZShldmVudFR5cGUsCi0gICAgICAgIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZlbnQ6Oklz
Q2FuY2VsYWJsZTo6WWVzLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1Rp
bWUoKSwgJm1fZnJhbWUud2luZG93UHJveHkoKSwKLSAgICAgICAgMCwgZXZlbnQuZ2xvYmFsUG9z
aXRpb24oKS54KCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigp
LngoKSwgZXZlbnQucG9zaXRpb24oKS55KCksCisgICAgLy8gRklYTUU6IFVzZSBNb3VzZUV2ZW50
OjpjcmVhdGUgd2hpY2ggdGFrZXMgUGxhdGZvcm1Nb3VzZUV2ZW50LgorICAgIFJlZjxNb3VzZUV2
ZW50PiBtZSA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIEV2ZW50OjpDYW5CdWJibGU6
OlllcywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKSwgJm1fZnJhbWUud2luZG93UHJveHkoKSwgMCwKKyAgICAgICAg
ZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKSwKICNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQotICAgICAgICBldmVudC5tb3ZlbWVudERlbHRhKCkueCgpLCBldmVudC5tb3Zl
bWVudERlbHRhKCkueSgpLAorICAgICAgICBldmVudC5tb3ZlbWVudERlbHRhKCksCisjZWxzZQor
ICAgICAgICB7IH0sCiAjZW5kaWYKLSAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRL
ZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLAotICAgICAgICAwLCAwLCBu
dWxscHRyLCBldmVudC5mb3JjZSgpLCBOb1RhcCwgJmRhdGFUcmFuc2Zlcik7CisgICAgICAgIGV2
ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxscHRyLCBldmVudC5mb3JjZSgpLCBOb1RhcCwgJmRh
dGFUcmFuc2Zlcik7CiAKICAgICBkcmFnVGFyZ2V0LmRpc3BhdGNoRXZlbnQobWUpOwogICAgIHJl
dHVybiBtZS0+ZGVmYXVsdFByZXZlbnRlZCgpOwpAQCAtNDIyNCw4ICs0MjI1LDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBl
dmVudCkKIAogICAgICAgICAgICAgUmVmPFRvdWNoRXZlbnQ+IHRvdWNoRXZlbnQgPQogICAgICAg
ICAgICAgICAgIFRvdWNoRXZlbnQ6OmNyZWF0ZShlZmZlY3RpdmVUb3VjaGVzLmdldCgpLCB0YXJn
ZXRUb3VjaGVzLmdldCgpLCBjaGFuZ2VkVG91Y2hlc1tzdGF0ZV0ubV90b3VjaGVzLmdldCgpLAot
ICAgICAgICAgICAgICAgICAgICBzdGF0ZU5hbWUsIGRvd25jYXN0PE5vZGU+KCp0YXJnZXQpLmRv
Y3VtZW50KCkud2luZG93UHJveHkoKSwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwg
ZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQu
bWV0YUtleSgpKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGVOYW1lLCBkb3duY2FzdDxOb2Rl
PigqdGFyZ2V0KS5kb2N1bWVudCgpLndpbmRvd1Byb3h5KCksIDAsIDAsIDAsIDAsIGV2ZW50Lm1v
ZGlmaWVycygpKTsKICAgICAgICAgICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudCh0b3VjaEV2ZW50
KTsKICAgICAgICAgICAgIHN3YWxsb3dlZEV2ZW50ID0gc3dhbGxvd2VkRXZlbnQgfHwgdG91Y2hF
dmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpIHx8IHRvdWNoRXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAppbmRleCA2
MzUzOTI1MjBkYi4uODE1YTNjOTNiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bUV2ZW50LmgKQEAgLTcwLDEyICs3MCwxNSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9OwogCi0g
ICAgZW51bSBjbGFzcyBNb2RpZmllciB7CisgICAgZW51bSBjbGFzcyBNb2RpZmllciA6IHVpbnQ4
X3QgewogICAgICAgICBBbHRLZXkgICAgICA9IDEgPDwgMCwKICAgICAgICAgQ3RybEtleSAgICAg
PSAxIDw8IDEsCiAgICAgICAgIE1ldGFLZXkgICAgID0gMSA8PCAyLAogICAgICAgICBTaGlmdEtl
eSAgICA9IDEgPDwgMywKICAgICAgICAgQ2Fwc0xvY2tLZXkgPSAxIDw8IDQsCisKKyAgICAgICAg
Ly8gTmV2ZXIgdXNlZCBpbiBuYXRpdmUgcGxhdGZvcm1zIGJ1dCBhZGRlZCBmb3IgaW5pdEV2ZW50
CisgICAgICAgIEFsdEdyYXBoS2V5ID0gMSA8PCA1LAogICAgIH07CiAKICAgICBUeXBlIHR5cGUo
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUeXBlPihtX3R5cGUpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCmlu
ZGV4IGUyYWI0MDVmNDBjLi4yZjE4Zjk1OTM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmgKQEAgLTUxLDcgKzUxLDgg
QEAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChOU0V2ZW50
ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGtleUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgY29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JF
X0VYUE9SVCBXYWxsVGltZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50ICopOwotICAg
IAorCitXRUJDT1JFX0VYUE9SVCBPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1v
ZGlmaWVyc0ZvckV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldFdoZWVs
RXZlbnREZWx0YXMoTlNFdmVudCAqLCBmbG9hdCYgZGVsdGFYLCBmbG9hdCYgZGVsdGFZLCBCT09M
JiBjb250aW51b3VzKTsKIFdFQkNPUkVfRVhQT1JUIFVJbnQ4IGtleUNoYXJGb3JFdmVudChOU0V2
ZW50ICopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggNzA4MWUxMjQ0MjcuLjU5ODU0NzdkOWUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0
b3J5TWFjLm1tCkBAIC02NjEsNyArNjYxLDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzS2V5VXBF
dmVudChOU0V2ZW50ICpldmVudCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnNGb3JFdmVudChO
U0V2ZW50ICpldmVudCkKK09wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZp
ZXJzRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgT3B0aW9uU2V0PFBsYXRmb3JtRXZl
bnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCAwZjM3OTYxOGYxZi4uZWZhNmFhNzVlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKQEAgLTQyOTUsNiArNDI5NSw5IEBAIFZlY3RvcjxTdHJpbmc+IEludGVybmFs
czo6YWNjZXNzS2V5TW9kaWZpZXJzKCkgY29uc3QKICAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50
OjpNb2RpZmllcjo6Q2Fwc0xvY2tLZXk6CiAgICAgICAgICAgICBhY2Nlc3NLZXlNb2RpZmllclN0
cmluZ3MuYXBwZW5kKCJjYXBzTG9ja0tleSJfcyk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0R3JhcGhLZXk6CisgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gQWx0R3JhcGggaXMgb25seSBmb3IgRE9NIEFQSS4K
KyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDE3YTAwNjQ5NzE3Li43NGJlOWMz
YjQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTEzMzYsMTIgKzEzMzYsOSBAQCB2b2lkIFdlYlBhZ2U6Om5hdmlnYXRlVG9QREZMaW5rV2l0
aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0cmluZyYgdXJsLCBJbnRQb2ludCBkbwogICAgICAgICBy
ZXR1cm47CiAKICAgICBjb25zdCBpbnQgc2luZ2xlQ2xpY2sgPSAxOworICAgIC8vIEZJWE1FOiBT
ZXQgbW9kaWZpZXIga2V5cy4KICAgICBSZWZQdHI8TW91c2VFdmVudD4gbW91c2VFdmVudCA9IE1v
dXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgRXZlbnQ6OkNhbkJ1YmJs
ZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsCi0gICAgICAgIE1vbm90b25pY1RpbWU6
Om5vdygpLCBudWxscHRyLCBzaW5nbGVDbGljaywgc2NyZWVuUG9pbnQueCgpLCBzY3JlZW5Qb2lu
dC55KCksIGRvY3VtZW50UG9pbnQueCgpLCBkb2N1bWVudFBvaW50LnkoKSwKLSNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQotICAgICAgICAwLCAwLAotI2VuZGlmCi0gICAgICAgIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCBudWxscHRyLCAwLCBXZWJDb3JlOjpOb1RhcCwgbnVsbHB0
cik7CisgICAgICAgIE1vbm90b25pY1RpbWU6Om5vdygpLCBudWxscHRyLCBzaW5nbGVDbGljaywg
c2NyZWVuUG9pbnQsIGRvY3VtZW50UG9pbnQsIHsgfSwgeyB9LCAwLCAwLCBudWxscHRyLCAwLCBX
ZWJDb3JlOjpOb1RhcCwgbnVsbHB0cik7CiAKICAgICBtYWluRnJhbWUtPmxvYWRlcigpLnVybFNl
bGVjdGVkKG1haW5GcmFtZURvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpLCBlbXB0eVN0cmluZygp
LCBtb3VzZUV2ZW50LmdldCgpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6
Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok1heWJlU2VuZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tCmluZGV4
IDYzMzJhODA3ZTQ4Li40YWRmMmY3MjhhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KQEAgLTQ3OSwxMSAr
NDc5LDggQEAgc3RhdGljIGNvbnN0IGZsb2F0IFBBR0VfSEVJR0hUX0lOU0VUID0gNC4wZiAqIDIu
MGY7CiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIENvbnN0cnVjdCBhbiBldmVudCB0byBzaW11
bGF0ZSBhIGNsaWNrLgotICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6WWVzLCBNb25vdG9uaWNUaW1lOjpub3coKSwgMCwgMSwgMCwgMCwgMCwg
MCwKLSNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQotICAgICAgICAwLCAwLAotI2VuZGlmCi0gICAg
ICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCBudWxscHRyLCAwLCAwLCBudWxs
cHRyLCB0cnVlKTsKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpZZXMsIEV2ZW50OjpJ
c0NhbmNlbGFibGU6OlllcywgTW9ub3RvbmljVGltZTo6bm93KCksIG51bGxwdHIsIDEsCisgICAg
ICAgIHsgfSwgeyB9LCB7IH0sIHsgfSwgMCwgMCwgbnVsbHB0ciwgMCwgMCwgbnVsbHB0ciwgTW91
c2VFdmVudDo6SXNTaW11bGF0ZWQ6Olllcyk7CiAKICAgICAvLyBDYWxsIHRvIHRoZSBmcmFtZSBs
b2FkZXIgYmVjYXVzZSB0aGlzIGlzIHdoZXJlIG91ciBzZWN1cml0eSBjaGVja3MgYXJlIG1hZGUu
CiAgICAgRnJhbWUqIGZyYW1lID0gY29yZShbX2RhdGFTb3VyY2Ugd2ViRnJhbWVdKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCBjZWI5Mzkw
YzZhZi4uMzgwMTA3MTlkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlBERlZpZXcubW0KQEAgLTEwMzAsMTUgKzEwMzAsOSBAQCBzdGF0aWMgQk9PTCBpc0ZyYW1l
SW5SYW5nZShXZWJGcmFtZSAqZnJhbWUsIERPTVJhbmdlICpyYW5nZSkKICAgICAgICAgYnJlYWs7
CiAgICAgfQogICAgIGlmIChidXR0b24gIT0gbm9CdXR0b24pIHsKLSAgICAgICAgZXZlbnQgPSBN
b3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIEV2ZW50OjpDYW5CdWJi
bGU6OlllcywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
MCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCi0jaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKLSAgICAgICAgICAgIDAsIDAsCi0jZW5kaWYKLSAgICAgICAgICAgIFtuc0V2ZW50IG1v
ZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2wsCi0gICAgICAgICAgICBb
bnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb24sCi0gICAg
ICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdTaGlm
dCwKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVy
RmxhZ0NvbW1hbmQsCi0gICAgICAgICAgICBidXR0b24sIFtOU0V2ZW50IHByZXNzZWRNb3VzZUJ1
dHRvbnNdLCBudWxscHRyLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIDAsIG51bGxwdHIsIHRydWUp
OworICAgICAgICAvLyBGSVhNRTogV2h5IGRvZXMgdGhpcyBub3QgdXNlIGNyZWF0ZVBsYXRmb3Jt
TW91c2VFdmVudC4KKyAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLmNsaWNrRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6WWVzLCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgW25zRXZlbnQgY2xpY2tDb3Vu
dF0sIHsgfSwgeyB9LCB7IH0sCisgICAgICAgICAgICBtb2RpZmllcnNGb3JFdmVudChuc0V2ZW50
KSwgYnV0dG9uLCBbTlNFdmVudCBwcmVzc2VkTW91c2VCdXR0b25zXSwgbnVsbHB0ciwgV2ViQ29y
ZTo6Rm9yY2VBdENsaWNrLCAwLCBudWxscHRyLCBNb3VzZUV2ZW50OjpJc1NpbXVsYXRlZDo6WWVz
KTsKICAgICB9CiAKICAgICAvLyBDYWxsIHRvIHRoZSBmcmFtZSBsb2FkZXIgYmVjYXVzZSB0aGlz
IGlzIHdoZXJlIG91ciBzZWN1cml0eSBjaGVja3MgYXJlIG1hZGUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347694</attachid>
            <date>2018-08-21 14:23:26 -0700</date>
            <delta_ts>2018-08-21 18:46:57 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-188777-20180821142325.patch</filename>
            <type>text/plain</type>
            <size>49051</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhjOGI2MGQ3MGI5NTg2
Nzc4NTI3YzUzYmZiODc3ZmRiYzBlMTRlNi4uYTFlNzUyOGY4MGU5MWQzZTgyZmJjZTRmNjU1NzZi
NjY1MjA0ZTg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE4LTA4LTIxICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlcGxhY2UgYm9vbGVhbnMg
Zm9yIG1vZGlmaWVyIGtleXMgaW4gVUlFdmVudFdpdGhLZXlTdGF0ZSB3aXRoIE9wdGlvblNldDxN
b2RpZmllcj4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4ODc3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlcGxhY2VkIGJvb2xlYW4gYXJndW1lbnRzIGFuZCBpbnN0YW5jZSB2YXJpYWJsZXMgZm9yIG1v
ZGlmaWZlciBrZXlzIChjdHJsLCBhbHQsIHNoaWZ0LCBhbmQgbWV0YSBrZXlzKSBpbgorICAgICAg
ICBVSUV2ZW50V2l0aEtleVN0YXRlIHdpdGggT3B0aW9uU2V0PE1vZGlmaWVyPiBhbmQgaXNTaW11
bGF0ZWQgYm9vbGVhbiBpbiBNb3VzZVJlbGF0ZWRFdmVudCB3aXRoIElzU2ltdWxhdGVkCisgICAg
ICAgIGVudW0gY2xhc3MuCisKKyAgICAgICAgQWxzbyBtYWRlIG1vdmVtZW50RGVsdGEgYWx3YXlz
IGNvbXBpbGVkIGluc3RlYWQgb2Ygb25seSB3aGVuIEVOQUJMRShQT0lOVEVSX0xPQ0spIHRvIHNp
bXBsaWZ5IHRoZSBjb2RlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSBzaG91
bGQgYmUgbm8gb2JzZXJ2YWJsZSBiZWhhdmlvcmFsIGNoYW5nZS4KKworICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3BhdGNoTW91c2VFdmVu
dCk6CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpLZXlib2Fy
ZEV2ZW50Ojppbml0S2V5Ym9hcmRFdmVudCk6IENhbGwgc2V0TW9kaWZpZXJLZXlzLgorICAgICAg
ICAqIGRvbS9Nb3VzZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmluaXRNb3VzZUV2ZW50KTogRGl0dG8uCisgICAgICAg
ICogZG9tL01vdXNlRXZlbnQuaDoKKyAgICAgICAgKiBkb20vTW91c2VSZWxhdGVkRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50
KTogQWRkZWQgYSBuZXcgdmFyaWFudCB3aGljaCB0YWtlcyB0aGUgbWluaW11bSBhcmd1bWVudHMK
KyAgICAgICAgZm9yIGdlc3R1cmUgJiB0b3VjaCBldmVudHMuIEluIHRob3NlIGV2ZW50cywgZGV0
YWlsIGlzIGFsd2F5cyBzZXQgdG8gMCwgbW92ZW1lbnREZWx0YSBpcyBhbHdheXMgc2V0IHRvIDAs
MCwKKyAgICAgICAgYW5kIHRoZXkgYXJlIG5ldmVyIHNpbXVsYXRlZC4KKyAgICAgICAgKiBkb20v
TW91c2VSZWxhdGVkRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50
OjpJc1NpbXVsYXRlZCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9TaW11bGF0ZWRDbGljay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW11bGF0ZWRNb3VzZUV2ZW50OjpTaW11bGF0ZWRNb3VzZUV2
ZW50KTogR2V0IE9wdGlvblNldDxNb2RpZmllcj4gb3V0IG9mIHRoZSB1bmRlcmx5aW5nIGV2ZW50
CisgICAgICAgIGluc3RlYWQgb2YgbWFudWFsbHkgc2V0dGluZyBlYWNoIGtleSBzdGF0ZS4gVGhp
cyBjb2RlIG5vdyBwcmVzZXJ2ZXMgdGhlIHN0YXRlIG9mIGNhcHMgbG9jayBhbmQgYWx0LWdyYXBo
CisgICAgICAgIGtleXMgYnV0IHRoaXMgaXMgbm90IG9ic2VydmFibGUgYmVjYXVzZSB3ZSBoYXZl
IHlldCB0byBpbXBsZW1lbnQgZ2V0TW9kaWZpZXJTdGF0ZSBvbiBNb3VzZUV2ZW50LgorICAgICAg
ICAoV2ViQ29yZTo6U2ltdWxhdGVkTW91c2VFdmVudDo6bW9kaWZpZXJzRnJvbVVuZGVybHlpbmdF
dmVudCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9Ub3VjaEV2ZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRvdWNoRXZlbnQ6OlRvdWNoRXZlbnQpOgorICAgICAgICAqIGRvbS9Ub3VjaEV2ZW50
Lmg6CisgICAgICAgICogZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlVJRXZlbnRXaXRoS2V5U3RhdGU6Ok1vZGlmaWVyKTogQWxpYXMgdG8gUGxhdGZvcm1FdmVu
dDo6TW9kaWZpZXIuCisgICAgICAgIChXZWJDb3JlOjpVSUV2ZW50V2l0aEtleVN0YXRlOjpjdHJs
S2V5IGNvbnN0KTogVXBkYXRlZCB0byB1c2UgbV9tb2RpZmllcnMuCisgICAgICAgIChXZWJDb3Jl
OjpVSUV2ZW50V2l0aEtleVN0YXRlOjpzaGlmdEtleSBjb25zdCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6VUlFdmVudFdpdGhLZXlTdGF0ZTo6YWx0S2V5IGNvbnN0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpVSUV2ZW50V2l0aEtleVN0YXRlOjptZXRhS2V5IGNvbnN0KTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpVSUV2ZW50V2l0aEtleVN0YXRlOjphbHRHcmFwaEtleSBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VUlFdmVudFdpdGhLZXlTdGF0ZTo6Y2Fwc0xv
Y2tLZXkgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlVJRXZlbnRXaXRoS2V5U3Rh
dGU6Om1vZGlmaWVyS2V5cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VUlFdmVudFdpdGhL
ZXlTdGF0ZTo6VUlFdmVudFdpdGhLZXlTdGF0ZSk6IE5vdyB0YWtlcyBPcHRpb25TZXQ8TW9kaWZp
ZXI+LgorICAgICAgICAoV2ViQ29yZTo6VUlFdmVudFdpdGhLZXlTdGF0ZTo6c2V0TW9kaWZpZXJL
ZXlzKTogQWRkZWQuIFVzZWQgYnkgaW5pdCpFdmVudCBmdW5jdGlvbnMgaW4gc3ViY2xhc3Nlcy4g
Tm90ZSB0aGF0CisgICAgICAgIHRoZXNlIGZ1bmN0aW9ucyBwcmVzZXZlIHRoZSBzdGF0ZXMgb2Yg
YWx0LWdyYXBoIGFuZCBjYXBzIGxvY2sga2V5cyB0byBtYXRjaCB0aGUgZXhpc3RpbmcgYmVoYXZp
b3JzIGluIHRoaXMKKyAgICAgICAgY2xlYW51cCBwYXRjaCBidXQgdGhleSBkb24ndCBtYXRjaCBi
ZWhhdmlvcnMgb2YgQ2hyb21lIG9yIEZpcmVmb3guCisgICAgICAgIChXZWJDb3JlOjpVSUV2ZW50
V2l0aEtleVN0YXRlOjptb2RpZmllcnNGcm9tSW5pdGlhbGl6ZXIpOiBBZGRlZC4KKyAgICAgICAg
KiBkb20vV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVl
bEV2ZW50KTogU2ltdWxhdGVkOjpObyBjb3JyZXNwb25kcyB0byB0aGUgbGFzdCBib29sZWFuIGJl
aW5nIGZhbHNlLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
bGF0Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpNb2RpZmll
cik6IEFkZGVkIEFsdEdyYXBoS2V5LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeU1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6bW9kaWZpZXJzRm9yRXZlbnQpOiBF
eHBvcnRlZCB0byBiZSB1c2VkIGluIFtXZWJQREZWaWV3IFBERlZpZXdXaWxsQ2xpY2tPbkxpbms6
d2l0aFVSTDpdLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1vZGlmaWVyc0ZvckV2ZW50KToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmFjY2Vz
c0tleU1vZGlmaWVycyBjb25zdCk6CisKIDIwMTgtMDgtMjAgIE1pY2hhZWwgQ2F0YW56YXJvICA8
bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDTWFrZV0gU3luYyB1bmlmaWVkIGJ1
aWxkIHdpdGggQ29jb2EgcG9ydHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTAwZjEyY2U2MDQ3MzFjMzllZmRmMjdj
OWQxNGEwNTFjZTg4YmU0Mi4uYjdlZTJlMTcyZjFkNjBjZWQ4YzFkODlkNjljYzc3YzQzN2FkYmM4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wOC0yMSAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIGJvb2xlYW5zIGZvciBtb2RpZmll
ciBrZXlzIGluIFVJRXZlbnRXaXRoS2V5U3RhdGUgd2l0aCBPcHRpb25TZXQ8TW9kaWZpZXI+Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg3NzcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0d28g
RklYTUVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGlj
ayk6CisKIDIwMTgtMDgtMjAgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtDTWFrZV0gU3luYyB1bmlmaWVkIGJ1aWxkIHdpdGggQ29jb2EgcG9y
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwppbmRleCAyZmU3ZmU5ZmJkZDBiZGEzZWI2ZTM5
NzFkMWMyNDM0MDY3MzZmZWY4Li40M2ZlZWNlNGU5ZWRlODVmMWNiZDZjZjQ5ZTNiZjMzNDgwNjRj
Y2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgt
MDgtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFj
ZSBib29sZWFucyBmb3IgbW9kaWZpZXIga2V5cyBpbiBVSUV2ZW50V2l0aEtleVN0YXRlIHdpdGgg
T3B0aW9uU2V0PE1vZGlmaWVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg4Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ3JlYXRlIE1vdXNlRXZlbnQ6OmNyZWF0ZSB3aXRoIElzU2ltdWxhdGVkIHNl
dCB0byBZZXM7IGNvcnJlc3BvZGluZyB0byB0aGUgbGFzdCBhcmd1bWVudAorICAgICAgICBiZWlu
ZyAidHJ1ZSIgYmVmb3JlIHRoZSBjb2RlIGNoYW5nZS4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
UERGVmlld1BsYWNlaG9sZGVyLm1tOgorICAgICAgICAoLVtXZWJQREZWaWV3UGxhY2Vob2xkZXIg
c2ltdWxhdGVDbGlja09uTGlua1RvVVJMOl0pOgorCiAyMDE4LTA4LTE2ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlcGxhY2UgY2FuQnViYmxlIGFuZCBjYW5j
ZWxhYmxlIGJvb2xlYW5zIGluIEV2ZW50IGJ5IGVudW0gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IDk4NTgxNjYxYmE0MDk5NDkzMmFhYjBkNzdiMGM0YTI3NGE5N2Y2Y2Qu
LmRhMjU0YjMyM2YxZGIyNTczYmIxZjI0Zjc3MDZiMDhiMzRkOGNmZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0wOC0yMSAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIGJvb2xlYW5zIGZvciBtb2Rp
ZmllciBrZXlzIGluIFVJRXZlbnRXaXRoS2V5U3RhdGUgd2l0aCBPcHRpb25TZXQ8TW9kaWZpZXI+
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg3NzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUg
TW91c2VFdmVudDo6Y3JlYXRlIHdpdGggSXNTaW11bGF0ZWQgc2V0IHRvIFllczsgY29ycmVzcG9k
aW5nIHRvIHRoZSBsYXN0IGFyZ3VtZW50CisgICAgICAgIGJlaW5nICJ0cnVlIiBiZWZvcmUgdGhl
IGNvZGUgY2hhbmdlLgorCisgICAgICAgIFVzZSBtb2RpZmllcnNGb3JFdmVudCB0byBjb252ZXJ0
IFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdIHRvIE9wdGlvblNldDxNb2RpZmllcj4uCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dlYlBERlZpZXcgUERGVmll
d1dpbGxDbGlja09uTGluazp3aXRoVVJMOl0pOgorCiAyMDE4LTA4LTE3ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIHNvbWUgcGx1bWJp
bmcgZm9yIHNhZmUgYnJvd3NpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBjM2JhOGE3ZTVj
OTliNmYxMjY3ODJjYjdjMjViNWY1N2ViY2VhZTllLi5kOWNiZjM4MjFmN2Y5YjdmNmQ2MzljZjhm
ZTUwYTAyNTZlODVkMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yOTAsMTIgKzI5MCwx
MiBAQCBib29sIEVsZW1lbnQ6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmIHBsYXRmb3JtRXZlbnQsIGNvbnN0CiAgICAgICAgIC8vIFNwZWNpYWwgY2FzZTogSWYg
aXQncyBhIGRvdWJsZSBjbGljayBldmVudCwgd2UgYWxzbyBzZW5kIHRoZSBkYmxjbGljayBldmVu
dC4gVGhpcyBpcyBub3QgcGFydAogICAgICAgICAvLyBvZiB0aGUgRE9NIHNwZWNzLCBidXQgaXMg
dXNlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbmRibGNsaWNrPSIiIGF0dHJpYnV0ZS4g
VGhpcyBpcyB0cmVhdGVkCiAgICAgICAgIC8vIGFzIGEgc2VwYXJhdGUgZXZlbnQgaW4gb3RoZXIg
RE9NLWNvbXBsaWFudCBicm93c2VycyBsaWtlIEZpcmVmb3gsIGFuZCBzbyB3ZSBkbyB0aGUgc2Ft
ZS4KKyAgICAgICAgLy8gRklYTUU6IElzIGl0IG9rYXkgdGhhdCBtb3VzZUV2ZW50IG1heSBoYXZl
IGJlZW4gbXV0YXRlZCBieSBzY3JpcHRzIHZpYSBpbml0TW91c2VFdmVudCBpbiBkaXNwYXRjaEV2
ZW50IGFib3ZlPwogICAgICAgICBSZWY8TW91c2VFdmVudD4gZG91YmxlQ2xpY2tFdmVudCA9IE1v
dXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGJsY2xpY2tFdmVudCwKICAgICAgICAgICAg
IG1vdXNlRXZlbnQtPmJ1YmJsZXMoKSA/IEV2ZW50OjpDYW5CdWJibGU6OlllcyA6IEV2ZW50OjpD
YW5CdWJibGU6Ok5vLCBtb3VzZUV2ZW50LT5jYW5jZWxhYmxlKCkgPyBFdmVudDo6SXNDYW5jZWxh
YmxlOjpZZXMgOiBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywKICAgICAgICAgICAgIG1vdXNlRXZl
bnQtPnZpZXcoKSwgbW91c2VFdmVudC0+ZGV0YWlsKCksCiAgICAgICAgICAgICBtb3VzZUV2ZW50
LT5zY3JlZW5YKCksIG1vdXNlRXZlbnQtPnNjcmVlblkoKSwgbW91c2VFdmVudC0+Y2xpZW50WCgp
LCBtb3VzZUV2ZW50LT5jbGllbnRZKCksCi0gICAgICAgICAgICBtb3VzZUV2ZW50LT5jdHJsS2V5
KCksIG1vdXNlRXZlbnQtPmFsdEtleSgpLCBtb3VzZUV2ZW50LT5zaGlmdEtleSgpLCBtb3VzZUV2
ZW50LT5tZXRhS2V5KCksCi0gICAgICAgICAgICBtb3VzZUV2ZW50LT5idXR0b24oKSwgbW91c2VF
dmVudC0+YnV0dG9ucygpLCBtb3VzZUV2ZW50LT5zeW50aGV0aWNDbGlja1R5cGUoKSwgcmVsYXRl
ZFRhcmdldCk7CisgICAgICAgICAgICBtb3VzZUV2ZW50LT5tb2RpZmllcktleXMoKSwgbW91c2VF
dmVudC0+YnV0dG9uKCksIG1vdXNlRXZlbnQtPmJ1dHRvbnMoKSwgbW91c2VFdmVudC0+c3ludGhl
dGljQ2xpY2tUeXBlKCksIHJlbGF0ZWRUYXJnZXQpOwogCiAgICAgICAgIGlmIChtb3VzZUV2ZW50
LT5kZWZhdWx0SGFuZGxlZCgpKQogICAgICAgICAgICAgZG91YmxlQ2xpY2tFdmVudC0+c2V0RGVm
YXVsdEhhbmRsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCBhZDRk
Y2U0NTc2YjQ4ZTMzNzVmNTVhNWEwZDAzNTdiODhkMjAyYTBjLi4zYjVlOWM5ODQ5OTg4YWQyNTMz
NjYxMWVhMzNlMmE4ZDRlN2UzNTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5
Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3Bw
CkBAIC05NSw4ICs5NSw3IEBAIGlubGluZSBLZXlib2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KCkg
PSBkZWZhdWx0OwogCiBpbmxpbmUgS2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudChjb25zdCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcpCiAg
ICAgOiBVSUV2ZW50V2l0aEtleVN0YXRlKGV2ZW50VHlwZUZvcktleWJvYXJkRXZlbnRUeXBlKGtl
eS50eXBlKCkpLCBDYW5CdWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpZZXMsCi0gICAgICAgIGtl
eS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldy5jb3B5UmVmKCks
IDAsIGtleS5jdHJsS2V5KCksIGtleS5hbHRLZXkoKSwga2V5LnNoaWZ0S2V5KCksIGtleS5tZXRh
S2V5KCksCi0gICAgICAgIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29udGFpbnMoUGxhdGZvcm1F
dmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKKyAgICAgICAga2V5LnRpbWVzdGFtcCgpLmFw
cHJveGltYXRlTW9ub3RvbmljVGltZSgpLCB2aWV3LmNvcHlSZWYoKSwgMCwga2V5Lm1vZGlmaWVy
cygpKQogICAgICwgbV91bmRlcmx5aW5nUGxhdGZvcm1FdmVudChzdGQ6Om1ha2VfdW5pcXVlPFBs
YXRmb3JtS2V5Ym9hcmRFdmVudD4oa2V5KSkKICNpZiBFTkFCTEUoS0VZQk9BUkRfS0VZX0FUVFJJ
QlVURSkKICAgICAsIG1fa2V5KGtleS5rZXkoKSkKQEAgLTE2MCwxMSArMTU5LDggQEAgdm9pZCBL
ZXlib2FyZEV2ZW50Ojppbml0S2V5Ym9hcmRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLAogCiAgICAgbV9rZXlJZGVudGlmaWVyID0ga2V5SWRlbnRpZmllcjsK
ICAgICBtX2xvY2F0aW9uID0gbG9jYXRpb247Ci0gICAgbV9jdHJsS2V5ID0gY3RybEtleTsKLSAg
ICBtX3NoaWZ0S2V5ID0gc2hpZnRLZXk7Ci0gICAgbV9hbHRLZXkgPSBhbHRLZXk7Ci0gICAgbV9t
ZXRhS2V5ID0gbWV0YUtleTsKLSAgICBtX2FsdEdyYXBoS2V5ID0gYWx0R3JhcGhLZXk7CisKKyAg
ICBzZXRNb2RpZmllcktleXMoY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSwgYWx0
R3JhcGhLZXkpOwogCiAgICAgbV9jaGFyQ29kZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2lzQ29t
cG9zaW5nID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKaW5kZXggYjI2N2RlMmJk
MDhmNmVkNjQxZmY2ZTNmYjE1OWViZmI4ZTdhOWMwZS4uN2Y4NDc2NDQwZjI2MTQyNWFlODRiNjg1
YWZhZjQzYWM5OWRhNzA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtNTAsNDYg
KzUwLDM3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxXaW5kb3dQCiAgICAgYXV0byBpc0NhbmNlbGFibGUg
PSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmICFpc01vdXNlRW50
ZXJPckxlYXZlID8gSXNDYW5jZWxhYmxlOjpZZXMgOiBJc0NhbmNlbGFibGU6Ok5vOwogICAgIGF1
dG8gY2FuQnViYmxlID0gIWlzTW91c2VFbnRlck9yTGVhdmUgPyBDYW5CdWJibGU6OlllcyA6IENh
bkJ1YmJsZTo6Tm87CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwg
Y2FuQnViYmxlLCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9u
b3RvbmljVGltZSgpLCBXVEZNb3ZlKHZpZXcpLAotICAgICAgICBkZXRhaWwsIGV2ZW50Lmdsb2Jh
bFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnkoKSwgZXZlbnQucG9zaXRp
b24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLAorICAgIHJldHVybiBNb3VzZUV2ZW50Ojpj
cmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1w
KCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIFdURk1vdmUodmlldyksIGRldGFpbCwKKyAg
ICAgICAgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKSwKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQotICAgICAgICBldmVudC5tb3ZlbWVudERlbHRhKCkueCgpLCBldmVu
dC5tb3ZlbWVudERlbHRhKCkueSgpLAorICAgICAgICBldmVudC5tb3ZlbWVudERlbHRhKCksCisj
ZWxzZQorICAgICAgICB7IH0sCiAjZW5kaWYKLSAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVu
dC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC5idXR0
b24oKSwgZXZlbnQuYnV0dG9ucygpLAotICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3Jj
ZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CisgICAgICAgIGV2ZW50Lm1vZGlmaWVy
cygpLCBldmVudC5idXR0b24oKSwgZXZlbnQuYnV0dG9ucygpLCByZWxhdGVkVGFyZ2V0LCBldmVu
dC5mb3JjZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2
ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBDYW5CdWJi
bGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAotI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCi0gICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKLSNlbmRpZgotICAgIGJv
b2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5z
aWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLCBFdmVudFRhcmdldCog
cmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlj
a1R5cGUsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyLCBib29sIGlzU2ltdWxhdGVkKQorUmVm
PE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IENhbkJ1YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsCisg
ICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93
TG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLCBPcHRpb25TZXQ8TW9kaWZp
ZXI+IG1vZGlmaWVycywgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0
b25zLAorICAgIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2ln
bmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIs
IElzU2ltdWxhdGVkIGlzU2ltdWxhdGVkKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1v
dXNlRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIFdURk1vdmUo
dmlldyksCi0gICAgICAgIGRldGFpbCwgeyBzY3JlZW5YLCBzY3JlZW5ZIH0sIHsgcGFnZVgsIHBh
Z2VZIH0sCi0jaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAgeyBtb3ZlbWVudFgsIG1v
dmVtZW50WSB9LAotI2VuZGlmCi0gICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1l
dGFLZXksIGJ1dHRvbiwgYnV0dG9ucywgcmVsYXRlZFRhcmdldCwgZm9yY2UsIHN5bnRoZXRpY0Ns
aWNrVHlwZSwgZGF0YVRyYW5zZmVyLCBpc1NpbXVsYXRlZCkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE1vdXNlRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAs
IFdURk1vdmUodmlldyksIGRldGFpbCwKKyAgICAgICAgc2NyZWVuTG9jYXRpb24sIHdpbmRvd0xv
Y2F0aW9uLCBtb3ZlbWVudERlbHRhLCBtb2RpZmllcnMsIGJ1dHRvbiwgYnV0dG9ucywgcmVsYXRl
ZFRhcmdldCwgZm9yY2UsIHN5bnRoZXRpY0NsaWNrVHlwZSwgZGF0YVRyYW5zZmVyLCBpc1NpbXVs
YXRlZCkpOwogfQogCi1SZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUg
Y2FuY2VsYWJsZSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxL
ZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNo
b3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywgdW5zaWduZWQgc2hvcnQgc3ludGhl
dGljQ2xpY2tUeXBlLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCkKK1JlZjxNb3VzZUV2ZW50
PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENhbkJ1
YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBSZWZQdHI8V2luZG93UHJv
eHk+JiYgdmlldywgaW50IGRldGFpbCwKKyAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGlu
dCBjbGllbnRYLCBpbnQgY2xpZW50WSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIHVu
c2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywKKyAgICB1bnNpZ25l
ZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJi
bGUsIGNhbmNlbGFibGUsIFdURk1vdmUodmlldyksIGRldGFpbCwgeyBzY3JlZW5YLCBzY3JlZW5Z
IH0sIHsgY2xpZW50WCwgY2xpZW50WSB9LCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRh
S2V5LCBidXR0b24sIGJ1dHRvbnMsIHN5bnRoZXRpY0NsaWNrVHlwZSwgcmVsYXRlZFRhcmdldCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJi
bGUsIGNhbmNlbGFibGUsIFdURk1vdmUodmlldyksIGRldGFpbCwgeyBzY3JlZW5YLCBzY3JlZW5Z
IH0sIHsgY2xpZW50WCwgY2xpZW50WSB9LCBtb2RpZmllcnMsIGJ1dHRvbiwgYnV0dG9ucywgc3lu
dGhldGljQ2xpY2tUeXBlLCByZWxhdGVkVGFyZ2V0KSk7CiB9CiAKIE1vdXNlRXZlbnQ6Ok1vdXNl
RXZlbnQoKSA9IGRlZmF1bHQ7CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIENhbkJ1YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5j
ZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZp
ZXcsIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50
UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAg
IGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLAotI2VuZGlmCi0gICAgICAgIGJvb2wgY3Ry
bEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWduZWQg
c2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLCBFdmVudFRhcmdldCogcmVsYXRl
ZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyLCBib29sIGlzU2ltdWxhdGVkKQotICAgIDogTW91
c2VSZWxhdGVkRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHRpbWVzdGFt
cCwgV1RGTW92ZSh2aWV3KSwgZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgd2luZG93TG9jYXRpb24s
Ci0jaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAgbW92ZW1lbnREZWx0YSwKLSNlbmRp
ZgotICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBpc1NpbXVsYXRl
ZCkKK01vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IENhbkJ1YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsCisg
ICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93
TG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLCBPcHRpb25TZXQ8TW9kaWZp
ZXI+IG1vZGlmaWVycywgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0
b25zLAorICAgIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2ln
bmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIs
IElzU2ltdWxhdGVkIGlzU2ltdWxhdGVkKQorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZlbnRU
eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHRpbWVzdGFtcCwgV1RGTW92ZSh2aWV3KSwgZGV0
YWlsLCBzY3JlZW5Mb2NhdGlvbiwgd2luZG93TG9jYXRpb24sIG1vdmVtZW50RGVsdGEsIG1vZGlm
aWVycywgaXNTaW11bGF0ZWQpCiAgICAgLCBtX2J1dHRvbihidXR0b24gPT0gKHVuc2lnbmVkIHNo
b3J0KS0xID8gMCA6IGJ1dHRvbikKICAgICAsIG1fYnV0dG9ucyhidXR0b25zKQogICAgICwgbV9z
eW50aGV0aWNDbGlja1R5cGUoYnV0dG9uID09ICh1bnNpZ25lZCBzaG9ydCktMSA/IDAgOiBzeW50
aGV0aWNDbGlja1R5cGUpCkBAIC0xMDAsMTIgKzkxLDkgQEAgTW91c2VFdmVudDo6TW91c2VFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgQ2FuQnViYmxlIGNhbkJ1YmJsZSwgSXND
YW4KIHsKIH0KIAotTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgQ2FuQnViYmxlIGNhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlIGNhbmNlbGFibGUsIFJl
ZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2Ny
ZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBjbGllbnRMb2NhdGlvbiwgYm9vbCBjdHJsS2V5
LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9y
dCBidXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRp
Y0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpCi0gICAgOiBNb3VzZVJlbGF0
ZWRFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZTo6
bm93KCksIFdURk1vdmUodmlldyksIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKLSNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQotICAgICAgICB7IH0sCi0jZW5kaWYKLSAgICAgICAgY3RybEtl
eSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSwgZmFsc2UpCitNb3VzZUV2ZW50OjpNb3VzZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJ
c0NhbmNlbGFibGUgY2FuY2VsYWJsZSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBk
ZXRhaWwsCisgICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2lu
dCYgY2xpZW50TG9jYXRpb24sIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCB1bnNpZ25l
ZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5
bnRoZXRpY0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpCisgICAgOiBNb3Vz
ZVJlbGF0ZWRFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgTW9ub3Rvbmlj
VGltZTo6bm93KCksIFdURk1vdmUodmlldyksIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwg
eyB9LCBtb2RpZmllcnMsIElzU2ltdWxhdGVkOjpObykKICAgICAsIG1fYnV0dG9uKGJ1dHRvbiA9
PSAodW5zaWduZWQgc2hvcnQpLTEgPyAwIDogYnV0dG9uKQogICAgICwgbV9idXR0b25zKGJ1dHRv
bnMpCiAgICAgLCBtX3N5bnRoZXRpY0NsaWNrVHlwZShidXR0b24gPT0gKHVuc2lnbmVkIHNob3J0
KS0xID8gMCA6IHN5bnRoZXRpY0NsaWNrVHlwZSkKQEAgLTEyNyw3ICsxMTUsOCBAQCBNb3VzZUV2
ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBNb3Vz
ZUV2ZW50SW5pdCYgaW5pdAogCiBNb3VzZUV2ZW50Ojp+TW91c2VFdmVudCgpID0gZGVmYXVsdDsK
IAotdm9pZCBNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJlZlB0cjxXaW5kb3dQcm94eT4m
JiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRY
LCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwg
Ym9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIEV2ZW50VGFyZ2V0KiByZWxhdGVk
VGFyZ2V0KQordm9pZCBNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJlZlB0cjxXaW5kb3dQ
cm94eT4mJiB2aWV3LCBpbnQgZGV0YWlsLAorICAgIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwg
aW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29s
IHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgRXZlbnRUYXJn
ZXQqIHJlbGF0ZWRUYXJnZXQpCiB7CiAgICAgaWYgKGlzQmVpbmdEaXNwYXRjaGVkKCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTEzNSwxMCArMTI0LDcgQEAgdm9pZCBNb3VzZUV2ZW50Ojppbml0TW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGMK
ICAgICBpbml0VUlFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURk1vdmUodmll
dyksIGRldGFpbCk7CiAKICAgICBtX3NjcmVlbkxvY2F0aW9uID0gSW50UG9pbnQoc2NyZWVuWCwg
c2NyZWVuWSk7Ci0gICAgbV9jdHJsS2V5ID0gY3RybEtleTsKLSAgICBtX2FsdEtleSA9IGFsdEtl
eTsKLSAgICBtX3NoaWZ0S2V5ID0gc2hpZnRLZXk7Ci0gICAgbV9tZXRhS2V5ID0gbWV0YUtleTsK
KyAgICBzZXRNb2RpZmllcktleXMoY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSk7
CiAgICAgbV9idXR0b24gPSBidXR0b24gPT0gKHVuc2lnbmVkIHNob3J0KS0xID8gMCA6IGJ1dHRv
bjsKICAgICBtX3N5bnRoZXRpY0NsaWNrVHlwZSA9IDA7CiAgICAgbV9idXR0b25Eb3duID0gYnV0
dG9uICE9ICh1bnNpZ25lZCBzaG9ydCktMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCmluZGV4IGIw
M2FhYmJiZTZmNTVmMGRiMzM3NzNiNGFmZTVjN2U5NWM3OGQ5MmQuLjAyZDM1YzY3MzE5ZjQyMTg1
YTliN2I3YmQ3NzQyYjYwOTZlNjdmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
b3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAtMzQs
MTggKzM0LDE0IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVu
dCA6IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBDYW5CdWJibGUsIElzQ2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsCi0gICAg
ICAgIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBz
Y3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKLSNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQot
ICAgICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAotI2VuZGlmCi0gICAgICAgIGJv
b2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5z
aWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLAotICAgICAgICBFdmVu
dFRhcmdldCogcmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50
aGV0aWNDbGlja1R5cGUsIERhdGFUcmFuc2ZlciogPSBudWxscHRyLCBib29sIGlzU2ltdWxhdGVk
ID0gZmFsc2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQ2FuQnViYmxlLCBJc0NhbmNlbGFibGUsIE1v
bm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYsIGludCBkZXRhaWws
CisgICAgICAgIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQm
IHdpbmRvd0xvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwgT3B0aW9uU2V0
PE1vZGlmaWVyPiwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25z
LAorICAgICAgICBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNp
Z25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIERhdGFUcmFuc2ZlciogPSBudWxscHRyLCBJ
c1NpbXVsYXRlZCA9IElzU2ltdWxhdGVkOjpObyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
UmVmUHRyPFdpbmRvd1Byb3h5PiYmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBpbnQgZGV0
YWlsLCBOb2RlKiByZWxhdGVkVGFyZ2V0KTsKIAogICAgIHN0YXRpYyBSZWY8TW91c2VFdmVudD4g
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBDYW5CdWJibGUsIElzQ2FuY2Vs
YWJsZSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLAotICAgICAgICBpbnQgZGV0YWlsLCBpbnQgc2Ny
ZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5
LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LAorICAgICAgICBpbnQg
ZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50
WSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwKICAgICAgICAgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1
bnNpZ25lZCBzaG9ydCBidXR0b25zLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KTsKIAogICAgIHN0YXRpYyBSZWY8TW91c2VFdmVu
dD4gY3JlYXRlRm9yQmluZGluZ3MoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQp
OyB9CkBAIC04MCwxOCArNzYsMTMgQEAgcHVibGljOgogICAgIGludCB3aGljaCgpIGNvbnN0IGZp
bmFsOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIENhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgUmVm
UHRyPFdpbmRvd1Byb3h5PiYmLAotICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYg
c2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKLSNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQotICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwK
LSNlbmRpZgotICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5
LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0
dG9ucywKLSAgICAgICAgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQsIGRvdWJsZSBmb3JjZSwg
dW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tUeXBlLCBEYXRhVHJhbnNmZXIqLCBib29sIGlz
U2ltdWxhdGVkKTsKKyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQ2Fu
QnViYmxlLCBJc0NhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2lu
ZG93UHJveHk+JiYsIGludCBkZXRhaWwsCisgICAgICAgIGNvbnN0IEludFBvaW50JiBzY3JlZW5M
b2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYg
bW92ZW1lbnREZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgdW5zaWduZWQgc2hvcnQgYnV0dG9u
LCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLAorICAgICAgICBFdmVudFRhcmdldCogcmVsYXRlZFRh
cmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIERh
dGFUcmFuc2ZlciosIElzU2ltdWxhdGVkKTsKIAogICAgIE1vdXNlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBDYW5CdWJibGUsIElzQ2FuY2VsYWJsZSwgUmVmUHRyPFdpbmRvd1Byb3h5
PiYmLAogICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24s
IGNvbnN0IEludFBvaW50JiBjbGllbnRMb2NhdGlvbiwKLSAgICAgICAgYm9vbCBjdHJsS2V5LCBi
b29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LAotICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5
bnRoZXRpY0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpOworICAgICAgICBP
cHRpb25TZXQ8TW9kaWZpZXI+LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0
IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQq
IHJlbGF0ZWRUYXJnZXQpOwogCiAgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGNvbnN0IE1vdXNlRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggYTMyMjdhNTRiYjQ1MmU4YzU5Yjk0ZjY5ZTYy
NjYyYTdmZTZkNzIyYS4uMTc1MTlkMGNiMTk1MmEzZjllN2ZjZjFhMGVlZmI1MjljM2I0OTk5MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMywyMCArMzMs
MjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Nb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VS
ZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENhbkJ1YmJsZSBjYW5C
dWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwg
UmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25z
dCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCi0jaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1l
bnREZWx0YSwKLSNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9v
bCBpc1NpbXVsYXRlZCkKLSAgICA6IFVJRXZlbnRXaXRoS2V5U3RhdGUoZXZlbnRUeXBlLCBjYW5C
dWJibGUsIGNhbmNlbGFibGUsIHRpbWVzdGFtcCwgV1RGTW92ZSh2aWV3KSwgZGV0YWlsLCBjdHJs
S2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBmYWxzZSwgZmFsc2UpCitNb3VzZVJlbGF0
ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IENhbkJ1YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBpc0NhbmNlbGFibGUsIE1vbm90b25p
Y1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywgaW50IGRldGFpbCwK
KyAgICBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5k
b3dMb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsIE9wdGlvblNldDxNb2Rp
Zmllcj4gbW9kaWZpZXJzLCBJc1NpbXVsYXRlZCBpc1NpbXVsYXRlZCkKKyAgICA6IFVJRXZlbnRX
aXRoS2V5U3RhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgdGltZXN0YW1w
LCBXVEZNb3ZlKHZpZXcpLCBkZXRhaWwsIG1vZGlmaWVycykKICAgICAsIG1fc2NyZWVuTG9jYXRp
b24oc2NyZWVuTG9jYXRpb24pCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAsIG1fbW92
ZW1lbnREZWx0YShtb3ZlbWVudERlbHRhKQogI2VuZGlmCi0gICAgLCBtX2lzU2ltdWxhdGVkKGlz
U2ltdWxhdGVkKQorICAgICwgbV9pc1NpbXVsYXRlZChpc1NpbXVsYXRlZCA9PSBJc1NpbXVsYXRl
ZDo6WWVzKQoreworI2lmICFFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIFVOVVNFRF9QQVJBTSht
b3ZlbWVudERlbHRhKTsKKyNlbmRpZgorICAgIGluaXQobV9pc1NpbXVsYXRlZCwgd2luZG93TG9j
YXRpb24pOworfQorCitNb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBJc0NhbmNlbGFibGUgaXNDYW5jZWxhYmxlLCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCwgUmVmPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNvbnN0IEludFBvaW50JiBn
bG9iYWxMb2NhdGlvbiwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMpCisgICAgOiBNb3Vz
ZVJlbGF0ZWRFdmVudCh0eXBlLCBDYW5CdWJibGU6OlllcywgaXNDYW5jZWxhYmxlLCB0aW1lc3Rh
bXAsIFdURk1vdmUodmlldyksIDAsIGdsb2JhbExvY2F0aW9uLCBnbG9iYWxMb2NhdGlvbiAvKiBD
b252ZXJ0ZWQgaW4gaW5pdCAqLywgeyB9LCBtb2RpZmllcnMsIElzU2ltdWxhdGVkOjpObykKIHsK
LSAgICBpbml0KGlzU2ltdWxhdGVkLCB3aW5kb3dMb2NhdGlvbik7CiB9CiAKIE1vdXNlUmVsYXRl
ZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
Y29uc3QgTW91c2VSZWxhdGVkRXZlbnRJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1
c3RlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKaW5kZXggZDhmMWZjZGYz
ZTExYjFlMzhlZWJlYWU3YzYwZjRmODVlODhhNDk2Ni4uMGFiMjE0MjViN2E2MmE0NjkwOTUxMTMx
YTkxYmMxYzJjZmEyODk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVs
YXRlZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgK
QEAgLTM4LDYgKzM4LDggQEAgc3RydWN0IE1vdXNlUmVsYXRlZEV2ZW50SW5pdCA6IHB1YmxpYyBF
dmVudE1vZGlmaWVySW5pdCB7CiAvLyBJbnRlcm5hbCBvbmx5OiBIZWxwZXIgY2xhc3MgZm9yIHdo
YXQncyBjb21tb24gYmV0d2VlbiBtb3VzZSBhbmQgd2hlZWwgZXZlbnRzLgogY2xhc3MgTW91c2VS
ZWxhdGVkRXZlbnQgOiBwdWJsaWMgVUlFdmVudFdpdGhLZXlTdGF0ZSB7CiBwdWJsaWM6CisgICAg
ZW51bSBjbGFzcyBJc1NpbXVsYXRlZCA6IHVpbnQ4X3QgeyBZZXMsIE5vIH07CisKICAgICAvLyBO
b3RlIHRoYXQgdGhlc2UgdmFsdWVzIGFyZSBhZGp1c3RlZCB0byBjb3VudGVyIHRoZSBlZmZlY3Rz
IG9mIHpvb20sIHNvIHRoYXQgdmFsdWVzCiAgICAgLy8gZXhwb3NlZCB2aWEgRE9NIEFQSXMgYXJl
IGludmFyaWFudCB1bmRlciB6b29taW5nLgogICAgIGludCBzY3JlZW5YKCkgY29uc3QgeyByZXR1
cm4gbV9zY3JlZW5Mb2NhdGlvbi54KCk7IH0KQEAgLTc0LDEyICs3Niw5IEBAIHB1YmxpYzoKIAog
cHJvdGVjdGVkOgogICAgIE1vdXNlUmVsYXRlZEV2ZW50KCkgPSBkZWZhdWx0OwotICAgIE1vdXNl
UmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQ2FuQnViYmxlLCBJc0NhbmNl
bGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYsCi0g
ICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3Qg
SW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAg
ICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLAotI2VuZGlmCi0gICAgICAgIGJvb2wg
Y3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBp
c1NpbXVsYXRlZCA9IGZhbHNlKTsKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIENhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lLCBSZWZQ
dHI8V2luZG93UHJveHk+JiYsIGludCBkZXRhaWwsCisgICAgICAgIGNvbnN0IEludFBvaW50JiBz
Y3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLCBjb25zdCBJbnRQ
b2ludCYgbW92ZW1lbnREZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIElzU2lt
dWxhdGVkID0gSXNTaW11bGF0ZWQ6Ok5vKTsKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIElzQ2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSwgUmVmPFdpbmRv
d1Byb3h5PiYmLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsTG9jYXRpb24sIE9wdGlvblNldDxNb2Rp
Zmllcj4pOwogICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Y29uc3QgTW91c2VSZWxhdGVkRXZlbnRJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7
CiAKICAgICB2b2lkIGluaXRDb29yZGluYXRlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRD
bGljay5jcHAKaW5kZXggYTUyYzFhNzgzODZjMmRmMjU3ZGFjZjI1OWEzNmVkYWRmNmJjZDc5MS4u
ZjUwNmZhZjhkMTZiYzc0NDBlYTc0MGQ1ZGY4NzU1MTg3YmIyNGQ2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2ltdWxhdGVkQ2xpY2suY3BwCkBAIC00NCwyMSArNDQsMTIgQEAgcHVibGljOgogCiBwcml2
YXRlOgogICAgIFNpbXVsYXRlZE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBSZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWlu
Z0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRlZENsaWNrU291cmNlIHNvdXJjZSkKLSAg
ICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJs
ZTo6WWVzLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQtPnRpbWVTdGFtcCgpIDog
TW9ub3RvbmljVGltZTo6bm93KCksIFdURk1vdmUodmlldyksIDAsIHsgfSwgeyB9LAotI2lmIEVO
QUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAgICAgICB7IH0sCi0jZW5kaWYKLSAgICAgICAgICAg
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCBudWxscHRyLCAwLCAwLCBudWxscHRy
LCB0cnVlKQorICAgICAgICA6IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCBDYW5CdWJibGU6Olllcywg
SXNDYW5jZWxhYmxlOjpZZXMsIHVuZGVybHlpbmdFdmVudCA/IHVuZGVybHlpbmdFdmVudC0+dGlt
ZVN0YW1wKCkgOiBNb25vdG9uaWNUaW1lOjpub3coKSwgV1RGTW92ZSh2aWV3KSwgLyogZGV0YWls
ICovIDAsCisgICAgICAgICAgICB7IH0sIHsgfSwgeyB9LCBtb2RpZmllcnNGcm9tVW5kZXJseWlu
Z0V2ZW50KHVuZGVybHlpbmdFdmVudCksIDAsIDAsIG51bGxwdHIsIDAsIDAsIG51bGxwdHIsIElz
U2ltdWxhdGVkOjpZZXMpCiAgICAgewogICAgICAgICBpZiAoc291cmNlID09IFNpbXVsYXRlZENs
aWNrU291cmNlOjpCaW5kaW5ncykKICAgICAgICAgICAgIHNldFVudHJ1c3RlZCgpOwogCi0gICAg
ICAgIGlmIChVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0
aEtleVN0YXRlKHVuZGVybHlpbmdFdmVudC5nZXQoKSkpIHsKLSAgICAgICAgICAgIG1fY3RybEtl
eSA9IGtleVN0YXRlRXZlbnQtPmN0cmxLZXkoKTsKLSAgICAgICAgICAgIG1fYWx0S2V5ID0ga2V5
U3RhdGVFdmVudC0+YWx0S2V5KCk7Ci0gICAgICAgICAgICBtX3NoaWZ0S2V5ID0ga2V5U3RhdGVF
dmVudC0+c2hpZnRLZXkoKTsKLSAgICAgICAgICAgIG1fbWV0YUtleSA9IGtleVN0YXRlRXZlbnQt
Pm1ldGFLZXkoKTsKLSAgICAgICAgfQogICAgICAgICBzZXRVbmRlcmx5aW5nRXZlbnQodW5kZXJs
eWluZ0V2ZW50LmdldCgpKTsKIAogICAgICAgICBpZiAoaXM8TW91c2VFdmVudD4odGhpcy0+dW5k
ZXJseWluZ0V2ZW50KCkpKSB7CkBAIC03NSw2ICs2NiwxMyBAQCBwcml2YXRlOgogICAgICAgICB9
CiAgICAgfQogCisgICAgc3RhdGljIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzRnJvbVVu
ZGVybHlpbmdFdmVudChjb25zdCBSZWZQdHI8RXZlbnQ+JiB1bmRlcmx5aW5nRXZlbnQpCisgICAg
eworICAgICAgICBVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50
V2l0aEtleVN0YXRlKHVuZGVybHlpbmdFdmVudC5nZXQoKSk7CisgICAgICAgIGlmICgha2V5U3Rh
dGVFdmVudCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBrZXlTdGF0
ZUV2ZW50LT5tb2RpZmllcktleXMoKTsKKyAgICB9CiB9OwogCiBzdGF0aWMgdm9pZCBzaW11bGF0
ZU1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGVsZW1l
bnQsIEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrU291cmNlIHNvdXJjZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRleCAyOTJjODQ2NjhmNmEzY2RhOGM0M2NhNTU5
MTgzMjNiYzk4OTBjOTE1Li44YTM0MzNkM2QzMDljMmQ1NGIwZDgzMzMzMTI1MjBjNGNjNTQyOTYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCkBAIC0zNywxMyArMzcsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KCkgPSBkZWZhdWx0OwogCiBUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRU
b3VjaGVzLCBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsCi0gICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJv
b2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KHR5cGUs
IENhbkJ1YmJsZTo6WWVzLCBJc0NhbmNlbGFibGU6OlllcywgTW9ub3RvbmljVGltZTo6bm93KCks
IFdURk1vdmUodmlldyksIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVlblkpLAotICAgICAgICBJ
bnRQb2ludChwYWdlWCwgcGFnZVkpLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAg
IEludFBvaW50KDAsIDApLAotI2VuZGlmCi0gICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRL
ZXksIG1ldGFLZXkpCisgICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNvbnN0IEludFBv
aW50JiBnbG9iYWxMb2NhdGlvbiwgT3B0aW9uU2V0PE1vZGlmaWVyPikKKyAgICA6IE1vdXNlUmVs
YXRlZEV2ZW50KHR5cGUsIElzQ2FuY2VsYWJsZTo6WWVzLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
V1RGTW92ZSh2aWV3KSwgZ2xvYmFsTG9jYXRpb24sIG1vZGlmaWVycykKICAgICAsIG1fdG91Y2hl
cyh0b3VjaGVzKQogICAgICwgbV90YXJnZXRUb3VjaGVzKHRhcmdldFRvdWNoZXMpCiAgICAgLCBt
X2NoYW5nZWRUb3VjaGVzKGNoYW5nZWRUb3VjaGVzKQpAQCAtNzQsMTAgKzY5LDcgQEAgdm9pZCBU
b3VjaEV2ZW50Ojppbml0VG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlzdCog
dGFyZ2V0VG91Y2hlcywKICAgICBtX3RhcmdldFRvdWNoZXMgPSB0YXJnZXRUb3VjaGVzOwogICAg
IG1fY2hhbmdlZFRvdWNoZXMgPSBjaGFuZ2VkVG91Y2hlczsKICAgICBtX3NjcmVlbkxvY2F0aW9u
ID0gSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVuWSk7Ci0gICAgbV9jdHJsS2V5ID0gY3RybEtleTsK
LSAgICBtX2FsdEtleSA9IGFsdEtleTsKLSAgICBtX3NoaWZ0S2V5ID0gc2hpZnRLZXk7Ci0gICAg
bV9tZXRhS2V5ID0gbWV0YUtleTsKKyAgICBzZXRNb2RpZmllcktleXMoY3RybEtleSwgYWx0S2V5
LCBzaGlmdEtleSwgbWV0YUtleSk7CiAgICAgaW5pdENvb3JkaW5hdGVzKEludFBvaW50KGNsaWVu
dFgsIGNsaWVudFkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNo
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmgKaW5kZXggODVmYTE2MWYy
MTk2ZDNmMmEwNWQ5YTMxYTExN2IwYTFhZjg2NmY5OS4uMTNkZTBjMjk4NjUxY2U0MTEwZTQ2YTc3
NWNkMzFjYWMzM2I4NGViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oCkBAIC0zOSwxNSArMzks
MTAgQEAgY2xhc3MgVG91Y2hFdmVudCBmaW5hbCA6IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+VG91Y2hFdmVudCgpOwogCi0gICAgc3RhdGljIFJlZjxU
b3VjaEV2ZW50PiBjcmVhdGUoVG91Y2hMaXN0KiB0b3VjaGVzLCAKLSAgICAgICAgICAgIFRvdWNo
TGlzdCogdGFyZ2V0VG91Y2hlcywgVG91Y2hMaXN0KiBjaGFuZ2VkVG91Y2hlcywgCi0gICAgICAg
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3
LAotICAgICAgICAgICAgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBw
YWdlWSwKLSAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRL
ZXksIGJvb2wgbWV0YUtleSkKKyAgICBzdGF0aWMgUmVmPFRvdWNoRXZlbnQ+IGNyZWF0ZShUb3Vj
aExpc3QqIHRvdWNoZXMsIFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcywgVG91Y2hMaXN0KiBjaGFu
Z2VkVG91Y2hlcywKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBSZWZQdHI8V2lu
ZG93UHJveHk+JiYgdmlldywgY29uc3QgSW50UG9pbnQmIGdsb2JhbExvY2F0aW9uLCBPcHRpb25T
ZXQ8TW9kaWZpZXI+IG1vZGlmaWVycykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFRvdWNoRXZlbnQodG91Y2hlcywgdGFyZ2V0VG91Y2hlcywgY2hhbmdlZFRvdWNoZXMsCi0g
ICAgICAgICAgICAgICAgdHlwZSwgV1RGTW92ZSh2aWV3KSwgc2NyZWVuWCwgc2NyZWVuWSwgcGFn
ZVgsIHBhZ2VZLAotICAgICAgICAgICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1l
dGFLZXkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVG91Y2hFdmVudCh0b3VjaGVz
LCB0YXJnZXRUb3VjaGVzLCBjaGFuZ2VkVG91Y2hlcywgdHlwZSwgV1RGTW92ZSh2aWV3KSwgZ2xv
YmFsTG9jYXRpb24sIG1vZGlmaWVycykpOwogICAgIH0KICAgICBzdGF0aWMgUmVmPFRvdWNoRXZl
bnQ+IGNyZWF0ZUZvckJpbmRpbmdzKCkKICAgICB7CkBAIC02NSwxMSArNjAsOCBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRvdWNoRXZlbnQodHlwZSwgaW5pdGlhbGl6
ZXIsIGlzVHJ1c3RlZCkpOwogICAgIH0KIAotICAgIHZvaWQgaW5pdFRvdWNoRXZlbnQoVG91Y2hM
aXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdldFRvdWNoZXMsCi0gICAgICAgICAgICBUb3Vj
aExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIAotICAgICAg
ICAgICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksCi0g
ICAgICAgICAgICBpbnQgY2xpZW50WCwgaW50IGNsaWVudFksCi0gICAgICAgICAgICBib29sIGN0
cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpOworICAgIHZv
aWQgaW5pdFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdldFRv
dWNoZXMsIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwKKyAgICAgICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVl
blksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KTsKIAogICAgIFRvdWNoTGlzdCogdG91Y2hlcygp
IGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hlcy5nZXQoKTsgfQogICAgIFRvdWNoTGlzdCogdGFyZ2V0
VG91Y2hlcygpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0VG91Y2hlcy5nZXQoKTsgfQpAQCAtODUs
MTEgKzc3LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFRvdWNoRXZlbnQoKTsKLSAgICBU
b3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAot
ICAgICAgICAgICAgVG91Y2hMaXN0KiBjaGFuZ2VkVG91Y2hlcywgY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLAotICAgICAgICAgICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLCBpbnQgc2NyZWVuWCwg
aW50IHNjcmVlblksIGludCBwYWdlWCwKLSAgICAgICAgICAgIGludCBwYWdlWSwKLSAgICAgICAg
ICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtl
eSk7CisgICAgVG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlzdCogdGFyZ2V0
VG91Y2hlcywgVG91Y2hMaXN0KiBjaGFuZ2VkVG91Y2hlcywgY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLAorICAgICAgICBSZWZQdHI8V2luZG93UHJveHk+JiYsIGNvbnN0IEludFBvaW50JiBnbG9i
YWxMb2NhdGlvbiwgT3B0aW9uU2V0PE1vZGlmaWVyPik7CiAgICAgVG91Y2hFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKIAogICAgIFJlZlB0cjxUb3Vj
aExpc3Q+IG1fdG91Y2hlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50
V2l0aEtleVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5o
CmluZGV4IDM2NjgzNjQ2OTliOTNhNTFjOGE5YjhlYTk2MTUyMTRkNzkzODdhMjcuLmQ5Y2E3NThm
ZDk4N2JkNTdhODc4NDQ5M2JkOTg5ZmFlZDA2NGVmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJ
RXZlbnRXaXRoS2V5U3RhdGUuaApAQCAtMjQsNjEgKzI0LDEwNCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJFdmVudE1vZGlmaWVySW5pdC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtRXZlbnQu
aCIKICNpbmNsdWRlICJVSUV2ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
VUlFdmVudFdpdGhLZXlTdGF0ZSA6IHB1YmxpYyBVSUV2ZW50IHsKIHB1YmxpYzoKLSAgICBib29s
IGN0cmxLZXkoKSBjb25zdCB7IHJldHVybiBtX2N0cmxLZXk7IH0KLSAgICBib29sIHNoaWZ0S2V5
KCkgY29uc3QgeyByZXR1cm4gbV9zaGlmdEtleTsgfQotICAgIGJvb2wgYWx0S2V5KCkgY29uc3Qg
eyByZXR1cm4gbV9hbHRLZXk7IH0KLSAgICBib29sIG1ldGFLZXkoKSBjb25zdCB7IHJldHVybiBt
X21ldGFLZXk7IH0KLSAgICBib29sIGFsdEdyYXBoS2V5KCkgY29uc3QgeyByZXR1cm4gbV9hbHRH
cmFwaEtleTsgfQotICAgIGJvb2wgY2Fwc0xvY2tLZXkoKSBjb25zdCB7IHJldHVybiBtX2NhcHNM
b2NrS2V5OyB9CisgICAgdXNpbmcgTW9kaWZpZXIgPSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjsK
KworICAgIGJvb2wgY3RybEtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kaWZpZXJzLmNvbnRhaW5z
KE1vZGlmaWVyOjpDdHJsS2V5KTsgfQorICAgIGJvb2wgc2hpZnRLZXkoKSBjb25zdCB7IHJldHVy
biBtX21vZGlmaWVycy5jb250YWlucyhNb2RpZmllcjo6U2hpZnRLZXkpOyB9CisgICAgYm9vbCBh
bHRLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVycy5jb250YWlucyhNb2RpZmllcjo6QWx0
S2V5KTsgfQorICAgIGJvb2wgbWV0YUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kaWZpZXJzLmNv
bnRhaW5zKE1vZGlmaWVyOjpNZXRhS2V5KTsgfQorICAgIGJvb2wgYWx0R3JhcGhLZXkoKSBjb25z
dCB7IHJldHVybiBtX21vZGlmaWVycy5jb250YWlucyhNb2RpZmllcjo6QWx0R3JhcGhLZXkpOyB9
CisgICAgYm9vbCBjYXBzTG9ja0tleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kaWZpZXJzLmNvbnRh
aW5zKE1vZGlmaWVyOjpDYXBzTG9ja0tleSk7IH0KKworICAgIE9wdGlvblNldDxNb2RpZmllcj4g
bW9kaWZpZXJLZXlzKCkgeyByZXR1cm4gbV9tb2RpZmllcnM7IH0KIAogcHJvdGVjdGVkOgogICAg
IFVJRXZlbnRXaXRoS2V5U3RhdGUoKSA9IGRlZmF1bHQ7CiAKLSAgICBVSUV2ZW50V2l0aEtleVN0
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQ2FuQnViYmxlIGNhbkJ1YmJsZSwgSXNDYW5j
ZWxhYmxlIGNhbmNlbGFibGUsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBpbnQgZGV0YWls
LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkp
CisgICAgVUlFdmVudFdpdGhLZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIENhbkJ1
YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBSZWZQdHI8V2luZG93UHJv
eHk+JiYgdmlldywgaW50IGRldGFpbCwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMpCiAg
ICAgICAgIDogVUlFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURk1vdmUodmll
dyksIGRldGFpbCkKLSAgICAgICAgLCBtX2N0cmxLZXkoY3RybEtleSkKLSAgICAgICAgLCBtX2Fs
dEtleShhbHRLZXkpCi0gICAgICAgICwgbV9zaGlmdEtleShzaGlmdEtleSkKLSAgICAgICAgLCBt
X21ldGFLZXkobWV0YUtleSkKKyAgICAgICAgLCBtX21vZGlmaWVycyhtb2RpZmllcnMpCiAgICAg
ewogICAgIH0KIAotICAgIFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJsZSwgTW9ub3Rv
bmljVGltZSB0aW1lc3RhbXAsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LAotICAgICAgICBp
bnQgZGV0YWlsLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29s
IG1ldGFLZXksIGJvb2wgYWx0R3JhcGhLZXksIGJvb2wgY2Fwc0xvY2tLZXkpCi0gICAgICAgICAg
ICA6IFVJRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIFdURk1v
dmUodmlldyksIGRldGFpbCkKLSAgICAgICAgICAgICwgbV9jdHJsS2V5KGN0cmxLZXkpCi0gICAg
ICAgICAgICAsIG1fYWx0S2V5KGFsdEtleSkKLSAgICAgICAgICAgICwgbV9zaGlmdEtleShzaGlm
dEtleSkKLSAgICAgICAgICAgICwgbV9tZXRhS2V5KG1ldGFLZXkpCi0gICAgICAgICAgICAsIG1f
YWx0R3JhcGhLZXkoYWx0R3JhcGhLZXkpCi0gICAgICAgICAgICAsIG1fY2Fwc0xvY2tLZXkoY2Fw
c0xvY2tLZXkpCisgICAgVUlFdmVudFdpdGhLZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIENhbkJ1YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9u
aWNUaW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWws
IE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzKQorICAgICAgICA6IFVJRXZlbnQodHlwZSwg
Y2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIFdURk1vdmUodmlldyksIGRldGFpbCkK
KyAgICAgICAgLCBtX21vZGlmaWVycyhtb2RpZmllcnMpCiAgICAgewogICAgIH0KIAogICAgIFVJ
RXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBFdmVudE1v
ZGlmaWVySW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCiAgICAgICAgIDog
VUlFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKQotICAgICAgICAsIG1fY3RybEtl
eShpbml0aWFsaXplci5jdHJsS2V5KQotICAgICAgICAsIG1fYWx0S2V5KGluaXRpYWxpemVyLmFs
dEtleSkKLSAgICAgICAgLCBtX3NoaWZ0S2V5KGluaXRpYWxpemVyLnNoaWZ0S2V5KQotICAgICAg
ICAsIG1fbWV0YUtleShpbml0aWFsaXplci5tZXRhS2V5KQotICAgICAgICAsIG1fYWx0R3JhcGhL
ZXkoaW5pdGlhbGl6ZXIubW9kaWZpZXJBbHRHcmFwaCkKLSAgICAgICAgLCBtX2NhcHNMb2NrS2V5
KGluaXRpYWxpemVyLm1vZGlmaWVyQ2Fwc0xvY2spCisgICAgICAgICwgbV9tb2RpZmllcnMobW9k
aWZpZXJzRnJvbUluaXRpYWxpemVyKGluaXRpYWxpemVyKSkKKyAgICB7CisgICAgfQorCisgICAg
dm9pZCBzZXRNb2RpZmllcktleXMoYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlm
dEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5KQogICAgIHsKKyAgICAgICAgT3B0
aW9uU2V0PE1vZGlmaWVyPiByZXN1bHQ7CisgICAgICAgIGlmIChjdHJsS2V5KQorICAgICAgICAg
ICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpDdHJsS2V5OworICAgICAgICBpZiAoYWx0S2V5KQorICAg
ICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpBbHRLZXk7CisgICAgICAgIGlmIChzaGlmdEtl
eSkKKyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6U2hpZnRLZXk7CisgICAgICAgIGlm
IChtZXRhS2V5KQorICAgICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpNZXRhS2V5OworICAg
ICAgICBpZiAoYWx0R3JhcGhLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkFs
dEdyYXBoS2V5OworICAgICAgICAvLyAgRklYTUU6IENocm9tZSBvciBGaXJlZm94IGRvbid0IHBy
ZXNlcnZlIHRoaXMgc3RhdGUuCisgICAgICAgIGlmIChtX21vZGlmaWVycyAmIE1vZGlmaWVyOjpD
YXBzTG9ja0tleSkKKyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6Q2Fwc0xvY2tLZXk7
CisgICAgICAgIG1fbW9kaWZpZXJzID0gcmVzdWx0OwogICAgIH0KIAotICAgIC8vIEV4cG9zZSB0
aGVzZSBzbyBpbml0IGZ1bmN0aW9ucyBjYW4gc2V0IHRoZW0uCi0gICAgYm9vbCBtX2N0cmxLZXkg
eyBmYWxzZSB9OwotICAgIGJvb2wgbV9hbHRLZXkgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9zaGlm
dEtleSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX21ldGFLZXkgeyBmYWxzZSB9OwotICAgIGJvb2wg
bV9hbHRHcmFwaEtleSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2NhcHNMb2NrS2V5IHsgZmFsc2Ug
fTsKKyAgICB2b2lkIHNldE1vZGlmaWVyS2V5cyhib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBi
b29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpCisgICAgeworICAgICAgICBPcHRpb25TZXQ8TW9k
aWZpZXI+IHJlc3VsdDsKKyAgICAgICAgaWYgKGN0cmxLZXkpCisgICAgICAgICAgICByZXN1bHQg
fD0gTW9kaWZpZXI6OkN0cmxLZXk7CisgICAgICAgIGlmIChhbHRLZXkpCisgICAgICAgICAgICBy
ZXN1bHQgfD0gTW9kaWZpZXI6OkFsdEtleTsKKyAgICAgICAgaWYgKHNoaWZ0S2V5KQorICAgICAg
ICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpTaGlmdEtleTsKKyAgICAgICAgaWYgKG1ldGFLZXkp
CisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6Ok1ldGFLZXk7CisgICAgICAgIC8vICBG
SVhNRTogQ2hyb21lIG9yIEZpcmVmb3ggZG9uJ3QgcHJlc2VydmUgdGhlc2Ugc3RhdGVzLgorICAg
ICAgICBpZiAobV9tb2RpZmllcnMgJiBNb2RpZmllcjo6QWx0R3JhcGhLZXkpCisgICAgICAgICAg
ICByZXN1bHQgfD0gTW9kaWZpZXI6OkFsdEdyYXBoS2V5OworICAgICAgICBpZiAobV9tb2RpZmll
cnMgJiBNb2RpZmllcjo6Q2Fwc0xvY2tLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZp
ZXI6OkNhcHNMb2NrS2V5OworICAgICAgICBtX21vZGlmaWVycyA9IHJlc3VsdDsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBtX21vZGlmaWVyczsKKworICAgIE9w
dGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzRnJvbUluaXRpYWxpemVyKGNvbnN0IEV2ZW50TW9k
aWZpZXJJbml0JiBpbml0aWFsaXplcikKKyAgICB7CisgICAgICAgIE9wdGlvblNldDxNb2RpZmll
cj4gcmVzdWx0OworICAgICAgICBpZiAoaW5pdGlhbGl6ZXIuY3RybEtleSkKKyAgICAgICAgICAg
IHJlc3VsdCB8PSBNb2RpZmllcjo6Q3RybEtleTsKKyAgICAgICAgaWYgKGluaXRpYWxpemVyLmFs
dEtleSkKKyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6QWx0S2V5OworICAgICAgICBp
ZiAoaW5pdGlhbGl6ZXIuc2hpZnRLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6
OlNoaWZ0S2V5OworICAgICAgICBpZiAoaW5pdGlhbGl6ZXIubWV0YUtleSkKKyAgICAgICAgICAg
IHJlc3VsdCB8PSBNb2RpZmllcjo6TWV0YUtleTsKKyAgICAgICAgaWYgKGluaXRpYWxpemVyLm1v
ZGlmaWVyQWx0R3JhcGgpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkFsdEdyYXBo
S2V5OworICAgICAgICBpZiAoaW5pdGlhbGl6ZXIubW9kaWZpZXJDYXBzTG9jaykKKyAgICAgICAg
ICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6Q2Fwc0xvY2tLZXk7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfQorICAgIAogfTsKIAogVUlFdmVudFdpdGhLZXlTdGF0ZSogZmluZEV2ZW50V2l0
aEtleVN0YXRlKEV2ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKaW5kZXggMjc2Nzdh
ODdhNWVmYmFlNjMzZmYxMDFmMTJjZGJjZDUwYjk0MDY2OC4uMDcyMjNiOTU0OTVmM2M5NGNkNzA0
OWRkNDZmYmE3OGNjZTFiNzQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVs
RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcApAQCAtNDgs
MTEgKzQ4LDggQEAgaW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwKIH0KIAogaW5saW5lIFdoZWVsRXZl
bnQ6OldoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgUmVmUHRyPFdp
bmRvd1Byb3h5PiYmIHZpZXcpCi0gICAgOiBNb3VzZUV2ZW50KGV2ZW50TmFtZXMoKS53aGVlbEV2
ZW50LCBDYW5CdWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpZZXMsIGV2ZW50LnRpbWVzdGFtcCgp
LmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCBXVEZNb3ZlKHZpZXcpLCAwLCBldmVudC5nbG9i
YWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpCi0jaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
LSAgICAgICAgLCB7IH0KLSNlbmRpZgotICAgICAgICAsIGV2ZW50LmN0cmxLZXkoKSwgZXZlbnQu
YWx0S2V5KCksIGV2ZW50LnNoaWZ0S2V5KCksIGV2ZW50Lm1ldGFLZXkoKSwgMCwgMCwgbnVsbHB0
ciwgMCwgMCwgbnVsbHB0ciwgZmFsc2UpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50TmFtZXMoKS53
aGVlbEV2ZW50LCBDYW5CdWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpZZXMsIGV2ZW50LnRpbWVz
dGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCBXVEZNb3ZlKHZpZXcpLCAwLCBldmVu
dC5nbG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpICwgeyB9CisgICAgICAgICwgZXZl
bnQubW9kaWZpZXJzKCksIDAsIDAsIG51bGxwdHIsIDAsIDAsIG51bGxwdHIsIElzU2ltdWxhdGVk
OjpObykKICAgICAsIG1fd2hlZWxEZWx0YShldmVudC53aGVlbFRpY2tzWCgpICogVGlja011bHRp
cGxpZXIsIGV2ZW50LndoZWVsVGlja3NZKCkgKiBUaWNrTXVsdGlwbGllcikKICAgICAsIG1fZGVs
dGFYKC1ldmVudC5kZWx0YVgoKSkKICAgICAsIG1fZGVsdGFZKC1ldmVudC5kZWx0YVkoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwNjMxYTExYTY1MTI3YTcwNjdmY2E5
YWE0ZWMyMmMwNDg1ODllNTU1Li5mZTY2ZWNiNzc3NzIyMTM4OTg5ZTMyM2I3NzE2NDI4NzEyNGYx
ZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yMjEzLDE0ICsyMjEz
LDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZHJhCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIHZpZXctPmRpc2FibGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJh
Y3Rpb24oKTsKLSAgICBSZWY8TW91c2VFdmVudD4gbWUgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZl
bnRUeXBlLAotICAgICAgICBFdmVudDo6Q2FuQnViYmxlOjpZZXMsIEV2ZW50OjpJc0NhbmNlbGFi
bGU6OlllcywgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksICZt
X2ZyYW1lLndpbmRvd1Byb3h5KCksCi0gICAgICAgIDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCku
eCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnkoKSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2
ZW50LnBvc2l0aW9uKCkueSgpLAorICAgIC8vIEZJWE1FOiBVc2UgTW91c2VFdmVudDo6Y3JlYXRl
IHdoaWNoIHRha2VzIFBsYXRmb3JtTW91c2VFdmVudC4KKyAgICBSZWY8TW91c2VFdmVudD4gbWUg
PSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBFdmVudDo6Q2FuQnViYmxlOjpZZXMsIEV2
ZW50OjpJc0NhbmNlbGFibGU6OlllcywgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25v
dG9uaWNUaW1lKCksICZtX2ZyYW1lLndpbmRvd1Byb3h5KCksIDAsCisgICAgICAgIGV2ZW50Lmds
b2JhbFBvc2l0aW9uKCksIGV2ZW50LnBvc2l0aW9uKCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKLSAgICAgICAgZXZlbnQubW92ZW1lbnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0
YSgpLnkoKSwKKyAgICAgICAgZXZlbnQubW92ZW1lbnREZWx0YSgpLAorI2Vsc2UKKyAgICAgICAg
eyB9LAogI2VuZGlmCi0gICAgICAgIGV2ZW50LmN0cmxLZXkoKSwgZXZlbnQuYWx0S2V5KCksIGV2
ZW50LnNoaWZ0S2V5KCksIGV2ZW50Lm1ldGFLZXkoKSwKLSAgICAgICAgMCwgMCwgbnVsbHB0ciwg
ZXZlbnQuZm9yY2UoKSwgTm9UYXAsICZkYXRhVHJhbnNmZXIpOworICAgICAgICBldmVudC5tb2Rp
ZmllcnMoKSwgMCwgMCwgbnVsbHB0ciwgZXZlbnQuZm9yY2UoKSwgTm9UYXAsICZkYXRhVHJhbnNm
ZXIpOwogCiAgICAgZHJhZ1RhcmdldC5kaXNwYXRjaEV2ZW50KG1lKTsKICAgICByZXR1cm4gbWUt
PmRlZmF1bHRQcmV2ZW50ZWQoKTsKQEAgLTQyMjIsMTAgKzQyMjMsOCBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50KQog
ICAgICAgICAgICAgUmVmUHRyPFRvdWNoTGlzdD4gdGFyZ2V0VG91Y2hlcyhpc1RvdWNoQ2FuY2Vs
RXZlbnQgPyBlbXB0eUxpc3QgOiB0b3VjaGVzQnlUYXJnZXQuZ2V0KHRhcmdldC5nZXQoKSkpOwog
ICAgICAgICAgICAgQVNTRVJUKHRhcmdldFRvdWNoZXMpOwogCi0gICAgICAgICAgICBSZWY8VG91
Y2hFdmVudD4gdG91Y2hFdmVudCA9Ci0gICAgICAgICAgICAgICAgVG91Y2hFdmVudDo6Y3JlYXRl
KGVmZmVjdGl2ZVRvdWNoZXMuZ2V0KCksIHRhcmdldFRvdWNoZXMuZ2V0KCksIGNoYW5nZWRUb3Vj
aGVzW3N0YXRlXS5tX3RvdWNoZXMuZ2V0KCksCi0gICAgICAgICAgICAgICAgICAgIHN0YXRlTmFt
ZSwgZG93bmNhc3Q8Tm9kZT4oKnRhcmdldCkuZG9jdW1lbnQoKS53aW5kb3dQcm94eSgpLAotICAg
ICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFsdEtl
eSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCkpOworICAgICAgICAgICAgUmVm
PFRvdWNoRXZlbnQ+IHRvdWNoRXZlbnQgPSBUb3VjaEV2ZW50OjpjcmVhdGUoZWZmZWN0aXZlVG91
Y2hlcy5nZXQoKSwgdGFyZ2V0VG91Y2hlcy5nZXQoKSwgY2hhbmdlZFRvdWNoZXNbc3RhdGVdLm1f
dG91Y2hlcy5nZXQoKSwKKyAgICAgICAgICAgICAgICBzdGF0ZU5hbWUsIGRvd25jYXN0PE5vZGU+
KCp0YXJnZXQpLmRvY3VtZW50KCkud2luZG93UHJveHkoKSwgeyB9LCBldmVudC5tb2RpZmllcnMo
KSk7CiAgICAgICAgICAgICB0YXJnZXQtPmRpc3BhdGNoRXZlbnQodG91Y2hFdmVudCk7CiAgICAg
ICAgICAgICBzd2FsbG93ZWRFdmVudCA9IHN3YWxsb3dlZEV2ZW50IHx8IHRvdWNoRXZlbnQtPmRl
ZmF1bHRQcmV2ZW50ZWQoKSB8fCB0b3VjaEV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKaW5kZXggNjM1MzkyNTIw
ZGJjMTRkYjExNDQ2N2I0YzUwZDE4YzYxYTc2MmI5OC4uODE1YTNjOTNiYWQwZjNhMWM2ZWVmMWQz
NTQ5ZDVjYjEyM2I4N2M5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQu
aApAQCAtNzAsMTIgKzcwLDE1IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH07CiAKLSAgICBlbnVt
IGNsYXNzIE1vZGlmaWVyIHsKKyAgICBlbnVtIGNsYXNzIE1vZGlmaWVyIDogdWludDhfdCB7CiAg
ICAgICAgIEFsdEtleSAgICAgID0gMSA8PCAwLAogICAgICAgICBDdHJsS2V5ICAgICA9IDEgPDwg
MSwKICAgICAgICAgTWV0YUtleSAgICAgPSAxIDw8IDIsCiAgICAgICAgIFNoaWZ0S2V5ICAgID0g
MSA8PCAzLAogICAgICAgICBDYXBzTG9ja0tleSA9IDEgPDwgNCwKKworICAgICAgICAvLyBOZXZl
ciB1c2VkIGluIG5hdGl2ZSBwbGF0Zm9ybXMgYnV0IGFkZGVkIGZvciBpbml0RXZlbnQKKyAgICAg
ICAgQWx0R3JhcGhLZXkgPSAxIDw8IDUsCiAgICAgfTsKIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFR5cGU+KG1fdHlwZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmgKaW5kZXggZTJh
YjQwNWY0MGMxNjU2MDBhYTA1MzUwMDJlMjc2NGEyNTI5NDA5YS4uMmYxOGY5NTkzOTI4ZmU5M2Zl
MDczNWMyNDVjYTY3ZWQ2ODg1OTk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmgKQEAgLTUxLDcgKzUxLDggQEAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChOU0V2ZW50ICopOwog
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIGtleUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgY29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9S
VCBXYWxsVGltZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50ICopOwotICAgIAorCitX
RUJDT1JFX0VYUE9SVCBPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVy
c0ZvckV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldFdoZWVsRXZlbnRE
ZWx0YXMoTlNFdmVudCAqLCBmbG9hdCYgZGVsdGFYLCBmbG9hdCYgZGVsdGFZLCBCT09MJiBjb250
aW51b3VzKTsKIFdFQkNPUkVfRVhQT1JUIFVJbnQ4IGtleUNoYXJGb3JFdmVudChOU0V2ZW50ICop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0KaW5kZXggNzA4MWUxMjQ0MjdlZTNkNmRlNDkxOTA3MzY2MDg3Mzg5Zjk5
NDgzOC4uNTk4NTQ3N2Q5ZTA1NDg4YTI5MDQwZTBjMjQzNTk0YTk0OTk3Yjk3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5tbQpAQCAtNjYxLDcgKzY2MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQo
TlNFdmVudCAqZXZlbnQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgaW5saW5lIE9w
dGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzRm9yRXZlbnQoTlNFdmVu
dCAqZXZlbnQpCitPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyc0Zv
ckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIE9wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpN
b2RpZmllcj4gbW9kaWZpZXJzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5k
ZXggMGYzNzk2MThmMWZjOTRiZjM4NWNmM2ZkODRkNWE5YmQ2MGFhMjg2Yy4uZWZhNmFhNzVlNjQz
MWIyMjhiYjVkN2M3NDU3ODkzZWE2ZTU2ZWY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcApAQCAtNDI5NSw2ICs0Mjk1LDkgQEAgVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjph
Y2Nlc3NLZXlNb2RpZmllcnMoKSBjb25zdAogICAgICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Ok1v
ZGlmaWVyOjpDYXBzTG9ja0tleToKICAgICAgICAgICAgIGFjY2Vzc0tleU1vZGlmaWVyU3RyaW5n
cy5hcHBlbmQoImNhcHNMb2NrS2V5Il9zKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRHcmFwaEtleToKKyAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBBbHRHcmFwaCBpcyBvbmx5IGZvciBET00gQVBJLgorICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTdhMDA2NDk3MTdiMTA1ZWQxNTQ0YmI3
ZmE0MzQ2MzE5OTcyZmE1Ny4uYzhkYzQ3NjA1ZTMyYmI0YjVkZGY0OWM1NzU1OGViNjUyNDU3OGQ4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTEzMzYsMTIgKzEzMzYsMTAgQEAgdm9pZCBXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhT
aW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgSW50UG9pbnQgZG8KICAgICAgICAgcmV0
dXJuOwogCiAgICAgY29uc3QgaW50IHNpbmdsZUNsaWNrID0gMTsKKyAgICAvLyBGSVhNRTogU2V0
IG1vZGlmaWVyIGtleXMuCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IHNldCBJ
c1NpbXVsYXRlZDo6WWVzLgogICAgIFJlZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50ID0gTW91
c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpZZXMsIEV2ZW50OjpJc0NhbmNlbGFibGU6OlllcywKLSAgICAgICAgTW9ub3RvbmljVGltZTo6
bm93KCksIG51bGxwdHIsIHNpbmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVlblBvaW50
LnkoKSwgZG9jdW1lbnRQb2ludC54KCksIGRvY3VtZW50UG9pbnQueSgpLAotI2lmIEVOQUJMRShQ
T0lOVEVSX0xPQ0spCi0gICAgICAgIDAsIDAsCi0jZW5kaWYKLSAgICAgICAgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIDAsIDAsIG51bGxwdHIsIDAsIFdlYkNvcmU6Ok5vVGFwLCBudWxscHRy
KTsKKyAgICAgICAgTW9ub3RvbmljVGltZTo6bm93KCksIG51bGxwdHIsIHNpbmdsZUNsaWNrLCBz
Y3JlZW5Qb2ludCwgZG9jdW1lbnRQb2ludCwgeyB9LCB7IH0sIDAsIDAsIG51bGxwdHIsIDAsIFdl
YkNvcmU6Ok5vVGFwLCBudWxscHRyKTsKIAogICAgIG1haW5GcmFtZS0+bG9hZGVyKCkudXJsU2Vs
ZWN0ZWQobWFpbkZyYW1lRG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybCksIGVtcHR5U3RyaW5nKCks
IG1vdXNlRXZlbnQuZ2V0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8sIFNob3VsZFNlbmRSZWZlcnJlcjo6TWF5YmVTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KaW5kZXgg
NjMzMmE4MDdlNDhmZTQ5ZjFiOGE5MTk1N2I2ZDQyYmFmYjFhODc0Yi4uNGFkZjJmNzI4YTVkODJm
ZmNiZWY2MDExMmE5MDE1NzE3ODY3ZjdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KQEAgLTQ3OSwxMSAr
NDc5LDggQEAgc3RhdGljIGNvbnN0IGZsb2F0IFBBR0VfSEVJR0hUX0lOU0VUID0gNC4wZiAqIDIu
MGY7CiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIENvbnN0cnVjdCBhbiBldmVudCB0byBzaW11
bGF0ZSBhIGNsaWNrLgotICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6WWVzLCBNb25vdG9uaWNUaW1lOjpub3coKSwgMCwgMSwgMCwgMCwgMCwg
MCwKLSNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQotICAgICAgICAwLCAwLAotI2VuZGlmCi0gICAg
ICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCBudWxscHRyLCAwLCAwLCBudWxs
cHRyLCB0cnVlKTsKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpZZXMsIEV2ZW50OjpJ
c0NhbmNlbGFibGU6OlllcywgTW9ub3RvbmljVGltZTo6bm93KCksIG51bGxwdHIsIDEsCisgICAg
ICAgIHsgfSwgeyB9LCB7IH0sIHsgfSwgMCwgMCwgbnVsbHB0ciwgMCwgMCwgbnVsbHB0ciwgTW91
c2VFdmVudDo6SXNTaW11bGF0ZWQ6Olllcyk7CiAKICAgICAvLyBDYWxsIHRvIHRoZSBmcmFtZSBs
b2FkZXIgYmVjYXVzZSB0aGlzIGlzIHdoZXJlIG91ciBzZWN1cml0eSBjaGVja3MgYXJlIG1hZGUu
CiAgICAgRnJhbWUqIGZyYW1lID0gY29yZShbX2RhdGFTb3VyY2Ugd2ViRnJhbWVdKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCBjZWI5Mzkw
YzZhZjAwZmQ4YzhjNjNjYjU0Y2M4ODA4YjEzOGQ0YTBkLi4zZTEyZGZiYTdkYTc0MWFlM2E4Mzdk
NGYwMmEzMGE0YWJhNzE5ZGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlBERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQREZWaWV3Lm1tCkBAIC0xMDMwLDE1ICsxMDMwLDkgQEAgc3RhdGljIEJPT0wgaXNGcmFt
ZUluUmFuZ2UoV2ViRnJhbWUgKmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7Ci0gICAgICAgIGV2ZW50ID0g
TW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCBFdmVudDo6Q2FuQnVi
YmxlOjpZZXMsIEV2ZW50OjpJc0NhbmNlbGFibGU6OlllcywgTW9ub3RvbmljVGltZTo6bm93KCks
IDAsIFtuc0V2ZW50IGNsaWNrQ291bnRdLCAwLCAwLCAwLCAwLAotI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCi0gICAgICAgICAgICAwLCAwLAotI2VuZGlmCi0gICAgICAgICAgICBbbnNFdmVudCBt
b2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sLAotICAgICAgICAgICAg
W25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uLAotICAg
ICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnU2hp
ZnQsCi0gICAgICAgICAgICBbbnNFdmVudCBtb2RpZmllckZsYWdzXSAmIE5TRXZlbnRNb2RpZmll
ckZsYWdDb21tYW5kLAotICAgICAgICAgICAgYnV0dG9uLCBbTlNFdmVudCBwcmVzc2VkTW91c2VC
dXR0b25zXSwgbnVsbHB0ciwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCAwLCBudWxscHRyLCB0cnVl
KTsKKyAgICAgICAgLy8gRklYTUU6IFVzZSBjcmVhdGVQbGF0Zm9ybU1vdXNlRXZlbnQgaW5zdGVh
ZC4KKyAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNr
RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzLCBN
b25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgW25zRXZlbnQgY2xpY2tDb3VudF0sIHsgfSwg
eyB9LCB7IH0sCisgICAgICAgICAgICBtb2RpZmllcnNGb3JFdmVudChuc0V2ZW50KSwgYnV0dG9u
LCBbTlNFdmVudCBwcmVzc2VkTW91c2VCdXR0b25zXSwgbnVsbHB0ciwgV2ViQ29yZTo6Rm9yY2VB
dENsaWNrLCAwLCBudWxscHRyLCBNb3VzZUV2ZW50OjpJc1NpbXVsYXRlZDo6WWVzKTsKICAgICB9
CiAKICAgICAvLyBDYWxsIHRvIHRoZSBmcmFtZSBsb2FkZXIgYmVjYXVzZSB0aGlzIGlzIHdoZXJl
IG91ciBzZWN1cml0eSBjaGVja3MgYXJlIG1hZGUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347711</attachid>
            <date>2018-08-21 15:27:44 -0700</date>
            <delta_ts>2018-08-21 19:06:48 -0700</delta_ts>
            <desc>WPE build fix</desc>
            <filename>bug-188777-20180821152743.patch</filename>
            <type>text/plain</type>
            <size>49061</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhjOGI2MGQ3MGI5NTg2
Nzc4NTI3YzUzYmZiODc3ZmRiYzBlMTRlNi4uYTFlNzUyOGY4MGU5MWQzZTgyZmJjZTRmNjU1NzZi
NjY1MjA0ZTg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE4LTA4LTIxICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlcGxhY2UgYm9vbGVhbnMg
Zm9yIG1vZGlmaWVyIGtleXMgaW4gVUlFdmVudFdpdGhLZXlTdGF0ZSB3aXRoIE9wdGlvblNldDxN
b2RpZmllcj4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4ODc3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlcGxhY2VkIGJvb2xlYW4gYXJndW1lbnRzIGFuZCBpbnN0YW5jZSB2YXJpYWJsZXMgZm9yIG1v
ZGlmaWZlciBrZXlzIChjdHJsLCBhbHQsIHNoaWZ0LCBhbmQgbWV0YSBrZXlzKSBpbgorICAgICAg
ICBVSUV2ZW50V2l0aEtleVN0YXRlIHdpdGggT3B0aW9uU2V0PE1vZGlmaWVyPiBhbmQgaXNTaW11
bGF0ZWQgYm9vbGVhbiBpbiBNb3VzZVJlbGF0ZWRFdmVudCB3aXRoIElzU2ltdWxhdGVkCisgICAg
ICAgIGVudW0gY2xhc3MuCisKKyAgICAgICAgQWxzbyBtYWRlIG1vdmVtZW50RGVsdGEgYWx3YXlz
IGNvbXBpbGVkIGluc3RlYWQgb2Ygb25seSB3aGVuIEVOQUJMRShQT0lOVEVSX0xPQ0spIHRvIHNp
bXBsaWZ5IHRoZSBjb2RlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSBzaG91
bGQgYmUgbm8gb2JzZXJ2YWJsZSBiZWhhdmlvcmFsIGNoYW5nZS4KKworICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3BhdGNoTW91c2VFdmVu
dCk6CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpLZXlib2Fy
ZEV2ZW50Ojppbml0S2V5Ym9hcmRFdmVudCk6IENhbGwgc2V0TW9kaWZpZXJLZXlzLgorICAgICAg
ICAqIGRvbS9Nb3VzZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmluaXRNb3VzZUV2ZW50KTogRGl0dG8uCisgICAgICAg
ICogZG9tL01vdXNlRXZlbnQuaDoKKyAgICAgICAgKiBkb20vTW91c2VSZWxhdGVkRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50
KTogQWRkZWQgYSBuZXcgdmFyaWFudCB3aGljaCB0YWtlcyB0aGUgbWluaW11bSBhcmd1bWVudHMK
KyAgICAgICAgZm9yIGdlc3R1cmUgJiB0b3VjaCBldmVudHMuIEluIHRob3NlIGV2ZW50cywgZGV0
YWlsIGlzIGFsd2F5cyBzZXQgdG8gMCwgbW92ZW1lbnREZWx0YSBpcyBhbHdheXMgc2V0IHRvIDAs
MCwKKyAgICAgICAgYW5kIHRoZXkgYXJlIG5ldmVyIHNpbXVsYXRlZC4KKyAgICAgICAgKiBkb20v
TW91c2VSZWxhdGVkRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50
OjpJc1NpbXVsYXRlZCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9TaW11bGF0ZWRDbGljay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaW11bGF0ZWRNb3VzZUV2ZW50OjpTaW11bGF0ZWRNb3VzZUV2
ZW50KTogR2V0IE9wdGlvblNldDxNb2RpZmllcj4gb3V0IG9mIHRoZSB1bmRlcmx5aW5nIGV2ZW50
CisgICAgICAgIGluc3RlYWQgb2YgbWFudWFsbHkgc2V0dGluZyBlYWNoIGtleSBzdGF0ZS4gVGhp
cyBjb2RlIG5vdyBwcmVzZXJ2ZXMgdGhlIHN0YXRlIG9mIGNhcHMgbG9jayBhbmQgYWx0LWdyYXBo
CisgICAgICAgIGtleXMgYnV0IHRoaXMgaXMgbm90IG9ic2VydmFibGUgYmVjYXVzZSB3ZSBoYXZl
IHlldCB0byBpbXBsZW1lbnQgZ2V0TW9kaWZpZXJTdGF0ZSBvbiBNb3VzZUV2ZW50LgorICAgICAg
ICAoV2ViQ29yZTo6U2ltdWxhdGVkTW91c2VFdmVudDo6bW9kaWZpZXJzRnJvbVVuZGVybHlpbmdF
dmVudCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9Ub3VjaEV2ZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRvdWNoRXZlbnQ6OlRvdWNoRXZlbnQpOgorICAgICAgICAqIGRvbS9Ub3VjaEV2ZW50
Lmg6CisgICAgICAgICogZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlVJRXZlbnRXaXRoS2V5U3RhdGU6Ok1vZGlmaWVyKTogQWxpYXMgdG8gUGxhdGZvcm1FdmVu
dDo6TW9kaWZpZXIuCisgICAgICAgIChXZWJDb3JlOjpVSUV2ZW50V2l0aEtleVN0YXRlOjpjdHJs
S2V5IGNvbnN0KTogVXBkYXRlZCB0byB1c2UgbV9tb2RpZmllcnMuCisgICAgICAgIChXZWJDb3Jl
OjpVSUV2ZW50V2l0aEtleVN0YXRlOjpzaGlmdEtleSBjb25zdCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6VUlFdmVudFdpdGhLZXlTdGF0ZTo6YWx0S2V5IGNvbnN0KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpVSUV2ZW50V2l0aEtleVN0YXRlOjptZXRhS2V5IGNvbnN0KTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpVSUV2ZW50V2l0aEtleVN0YXRlOjphbHRHcmFwaEtleSBjb25z
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VUlFdmVudFdpdGhLZXlTdGF0ZTo6Y2Fwc0xv
Y2tLZXkgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlVJRXZlbnRXaXRoS2V5U3Rh
dGU6Om1vZGlmaWVyS2V5cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VUlFdmVudFdpdGhL
ZXlTdGF0ZTo6VUlFdmVudFdpdGhLZXlTdGF0ZSk6IE5vdyB0YWtlcyBPcHRpb25TZXQ8TW9kaWZp
ZXI+LgorICAgICAgICAoV2ViQ29yZTo6VUlFdmVudFdpdGhLZXlTdGF0ZTo6c2V0TW9kaWZpZXJL
ZXlzKTogQWRkZWQuIFVzZWQgYnkgaW5pdCpFdmVudCBmdW5jdGlvbnMgaW4gc3ViY2xhc3Nlcy4g
Tm90ZSB0aGF0CisgICAgICAgIHRoZXNlIGZ1bmN0aW9ucyBwcmVzZXZlIHRoZSBzdGF0ZXMgb2Yg
YWx0LWdyYXBoIGFuZCBjYXBzIGxvY2sga2V5cyB0byBtYXRjaCB0aGUgZXhpc3RpbmcgYmVoYXZp
b3JzIGluIHRoaXMKKyAgICAgICAgY2xlYW51cCBwYXRjaCBidXQgdGhleSBkb24ndCBtYXRjaCBi
ZWhhdmlvcnMgb2YgQ2hyb21lIG9yIEZpcmVmb3guCisgICAgICAgIChXZWJDb3JlOjpVSUV2ZW50
V2l0aEtleVN0YXRlOjptb2RpZmllcnNGcm9tSW5pdGlhbGl6ZXIpOiBBZGRlZC4KKyAgICAgICAg
KiBkb20vV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVl
bEV2ZW50KTogU2ltdWxhdGVkOjpObyBjb3JyZXNwb25kcyB0byB0aGUgbGFzdCBib29sZWFuIGJl
aW5nIGZhbHNlLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
bGF0Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpNb2RpZmll
cik6IEFkZGVkIEFsdEdyYXBoS2V5LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeU1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6bW9kaWZpZXJzRm9yRXZlbnQpOiBF
eHBvcnRlZCB0byBiZSB1c2VkIGluIFtXZWJQREZWaWV3IFBERlZpZXdXaWxsQ2xpY2tPbkxpbms6
d2l0aFVSTDpdLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6Om1vZGlmaWVyc0ZvckV2ZW50KToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmFjY2Vz
c0tleU1vZGlmaWVycyBjb25zdCk6CisKIDIwMTgtMDgtMjAgIE1pY2hhZWwgQ2F0YW56YXJvICA8
bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDTWFrZV0gU3luYyB1bmlmaWVkIGJ1
aWxkIHdpdGggQ29jb2EgcG9ydHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTAwZjEyY2U2MDQ3MzFjMzllZmRmMjdj
OWQxNGEwNTFjZTg4YmU0Mi4uYjdlZTJlMTcyZjFkNjBjZWQ4YzFkODlkNjljYzc3YzQzN2FkYmM4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wOC0yMSAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIGJvb2xlYW5zIGZvciBtb2RpZmll
ciBrZXlzIGluIFVJRXZlbnRXaXRoS2V5U3RhdGUgd2l0aCBPcHRpb25TZXQ8TW9kaWZpZXI+Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg3NzcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0d28g
RklYTUVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGlj
ayk6CisKIDIwMTgtMDgtMjAgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtDTWFrZV0gU3luYyB1bmlmaWVkIGJ1aWxkIHdpdGggQ29jb2EgcG9y
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwppbmRleCAyZmU3ZmU5ZmJkZDBiZGEzZWI2ZTM5
NzFkMWMyNDM0MDY3MzZmZWY4Li40M2ZlZWNlNGU5ZWRlODVmMWNiZDZjZjQ5ZTNiZjMzNDgwNjRj
Y2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgt
MDgtMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFj
ZSBib29sZWFucyBmb3IgbW9kaWZpZXIga2V5cyBpbiBVSUV2ZW50V2l0aEtleVN0YXRlIHdpdGgg
T3B0aW9uU2V0PE1vZGlmaWVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg4Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ3JlYXRlIE1vdXNlRXZlbnQ6OmNyZWF0ZSB3aXRoIElzU2ltdWxhdGVkIHNl
dCB0byBZZXM7IGNvcnJlc3BvZGluZyB0byB0aGUgbGFzdCBhcmd1bWVudAorICAgICAgICBiZWlu
ZyAidHJ1ZSIgYmVmb3JlIHRoZSBjb2RlIGNoYW5nZS4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
UERGVmlld1BsYWNlaG9sZGVyLm1tOgorICAgICAgICAoLVtXZWJQREZWaWV3UGxhY2Vob2xkZXIg
c2ltdWxhdGVDbGlja09uTGlua1RvVVJMOl0pOgorCiAyMDE4LTA4LTE2ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlcGxhY2UgY2FuQnViYmxlIGFuZCBjYW5j
ZWxhYmxlIGJvb2xlYW5zIGluIEV2ZW50IGJ5IGVudW0gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IDk4NTgxNjYxYmE0MDk5NDkzMmFhYjBkNzdiMGM0YTI3NGE5N2Y2Y2Qu
LmRhMjU0YjMyM2YxZGIyNTczYmIxZjI0Zjc3MDZiMDhiMzRkOGNmZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0wOC0yMSAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIGJvb2xlYW5zIGZvciBtb2Rp
ZmllciBrZXlzIGluIFVJRXZlbnRXaXRoS2V5U3RhdGUgd2l0aCBPcHRpb25TZXQ8TW9kaWZpZXI+
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg3NzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUg
TW91c2VFdmVudDo6Y3JlYXRlIHdpdGggSXNTaW11bGF0ZWQgc2V0IHRvIFllczsgY29ycmVzcG9k
aW5nIHRvIHRoZSBsYXN0IGFyZ3VtZW50CisgICAgICAgIGJlaW5nICJ0cnVlIiBiZWZvcmUgdGhl
IGNvZGUgY2hhbmdlLgorCisgICAgICAgIFVzZSBtb2RpZmllcnNGb3JFdmVudCB0byBjb252ZXJ0
IFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdIHRvIE9wdGlvblNldDxNb2RpZmllcj4uCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dlYlBERlZpZXcgUERGVmll
d1dpbGxDbGlja09uTGluazp3aXRoVVJMOl0pOgorCiAyMDE4LTA4LTE3ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIHNvbWUgcGx1bWJp
bmcgZm9yIHNhZmUgYnJvd3NpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBjM2JhOGE3ZTVj
OTliNmYxMjY3ODJjYjdjMjViNWY1N2ViY2VhZTllLi5kOWNiZjM4MjFmN2Y5YjdmNmQ2MzljZjhm
ZTUwYTAyNTZlODVkMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yOTAsMTIgKzI5MCwx
MiBAQCBib29sIEVsZW1lbnQ6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmIHBsYXRmb3JtRXZlbnQsIGNvbnN0CiAgICAgICAgIC8vIFNwZWNpYWwgY2FzZTogSWYg
aXQncyBhIGRvdWJsZSBjbGljayBldmVudCwgd2UgYWxzbyBzZW5kIHRoZSBkYmxjbGljayBldmVu
dC4gVGhpcyBpcyBub3QgcGFydAogICAgICAgICAvLyBvZiB0aGUgRE9NIHNwZWNzLCBidXQgaXMg
dXNlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbmRibGNsaWNrPSIiIGF0dHJpYnV0ZS4g
VGhpcyBpcyB0cmVhdGVkCiAgICAgICAgIC8vIGFzIGEgc2VwYXJhdGUgZXZlbnQgaW4gb3RoZXIg
RE9NLWNvbXBsaWFudCBicm93c2VycyBsaWtlIEZpcmVmb3gsIGFuZCBzbyB3ZSBkbyB0aGUgc2Ft
ZS4KKyAgICAgICAgLy8gRklYTUU6IElzIGl0IG9rYXkgdGhhdCBtb3VzZUV2ZW50IG1heSBoYXZl
IGJlZW4gbXV0YXRlZCBieSBzY3JpcHRzIHZpYSBpbml0TW91c2VFdmVudCBpbiBkaXNwYXRjaEV2
ZW50IGFib3ZlPwogICAgICAgICBSZWY8TW91c2VFdmVudD4gZG91YmxlQ2xpY2tFdmVudCA9IE1v
dXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZGJsY2xpY2tFdmVudCwKICAgICAgICAgICAg
IG1vdXNlRXZlbnQtPmJ1YmJsZXMoKSA/IEV2ZW50OjpDYW5CdWJibGU6OlllcyA6IEV2ZW50OjpD
YW5CdWJibGU6Ok5vLCBtb3VzZUV2ZW50LT5jYW5jZWxhYmxlKCkgPyBFdmVudDo6SXNDYW5jZWxh
YmxlOjpZZXMgOiBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywKICAgICAgICAgICAgIG1vdXNlRXZl
bnQtPnZpZXcoKSwgbW91c2VFdmVudC0+ZGV0YWlsKCksCiAgICAgICAgICAgICBtb3VzZUV2ZW50
LT5zY3JlZW5YKCksIG1vdXNlRXZlbnQtPnNjcmVlblkoKSwgbW91c2VFdmVudC0+Y2xpZW50WCgp
LCBtb3VzZUV2ZW50LT5jbGllbnRZKCksCi0gICAgICAgICAgICBtb3VzZUV2ZW50LT5jdHJsS2V5
KCksIG1vdXNlRXZlbnQtPmFsdEtleSgpLCBtb3VzZUV2ZW50LT5zaGlmdEtleSgpLCBtb3VzZUV2
ZW50LT5tZXRhS2V5KCksCi0gICAgICAgICAgICBtb3VzZUV2ZW50LT5idXR0b24oKSwgbW91c2VF
dmVudC0+YnV0dG9ucygpLCBtb3VzZUV2ZW50LT5zeW50aGV0aWNDbGlja1R5cGUoKSwgcmVsYXRl
ZFRhcmdldCk7CisgICAgICAgICAgICBtb3VzZUV2ZW50LT5tb2RpZmllcktleXMoKSwgbW91c2VF
dmVudC0+YnV0dG9uKCksIG1vdXNlRXZlbnQtPmJ1dHRvbnMoKSwgbW91c2VFdmVudC0+c3ludGhl
dGljQ2xpY2tUeXBlKCksIHJlbGF0ZWRUYXJnZXQpOwogCiAgICAgICAgIGlmIChtb3VzZUV2ZW50
LT5kZWZhdWx0SGFuZGxlZCgpKQogICAgICAgICAgICAgZG91YmxlQ2xpY2tFdmVudC0+c2V0RGVm
YXVsdEhhbmRsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCBhZDRk
Y2U0NTc2YjQ4ZTMzNzVmNTVhNWEwZDAzNTdiODhkMjAyYTBjLi4zYjVlOWM5ODQ5OTg4YWQyNTMz
NjYxMWVhMzNlMmE4ZDRlN2UzNTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5
Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3Bw
CkBAIC05NSw4ICs5NSw3IEBAIGlubGluZSBLZXlib2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KCkg
PSBkZWZhdWx0OwogCiBpbmxpbmUgS2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudChjb25zdCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcpCiAg
ICAgOiBVSUV2ZW50V2l0aEtleVN0YXRlKGV2ZW50VHlwZUZvcktleWJvYXJkRXZlbnRUeXBlKGtl
eS50eXBlKCkpLCBDYW5CdWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpZZXMsCi0gICAgICAgIGtl
eS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldy5jb3B5UmVmKCks
IDAsIGtleS5jdHJsS2V5KCksIGtleS5hbHRLZXkoKSwga2V5LnNoaWZ0S2V5KCksIGtleS5tZXRh
S2V5KCksCi0gICAgICAgIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29udGFpbnMoUGxhdGZvcm1F
dmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKKyAgICAgICAga2V5LnRpbWVzdGFtcCgpLmFw
cHJveGltYXRlTW9ub3RvbmljVGltZSgpLCB2aWV3LmNvcHlSZWYoKSwgMCwga2V5Lm1vZGlmaWVy
cygpKQogICAgICwgbV91bmRlcmx5aW5nUGxhdGZvcm1FdmVudChzdGQ6Om1ha2VfdW5pcXVlPFBs
YXRmb3JtS2V5Ym9hcmRFdmVudD4oa2V5KSkKICNpZiBFTkFCTEUoS0VZQk9BUkRfS0VZX0FUVFJJ
QlVURSkKICAgICAsIG1fa2V5KGtleS5rZXkoKSkKQEAgLTE2MCwxMSArMTU5LDggQEAgdm9pZCBL
ZXlib2FyZEV2ZW50Ojppbml0S2V5Ym9hcmRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLAogCiAgICAgbV9rZXlJZGVudGlmaWVyID0ga2V5SWRlbnRpZmllcjsK
ICAgICBtX2xvY2F0aW9uID0gbG9jYXRpb247Ci0gICAgbV9jdHJsS2V5ID0gY3RybEtleTsKLSAg
ICBtX3NoaWZ0S2V5ID0gc2hpZnRLZXk7Ci0gICAgbV9hbHRLZXkgPSBhbHRLZXk7Ci0gICAgbV9t
ZXRhS2V5ID0gbWV0YUtleTsKLSAgICBtX2FsdEdyYXBoS2V5ID0gYWx0R3JhcGhLZXk7CisKKyAg
ICBzZXRNb2RpZmllcktleXMoY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSwgYWx0
R3JhcGhLZXkpOwogCiAgICAgbV9jaGFyQ29kZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2lzQ29t
cG9zaW5nID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKaW5kZXggYjI2N2RlMmJk
MDhmNmVkNjQxZmY2ZTNmYjE1OWViZmI4ZTdhOWMwZS4uN2Y4NDc2NDQwZjI2MTQyNWFlODRiNjg1
YWZhZjQzYWM5OWRhNzA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtNTAsNDYg
KzUwLDM3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxXaW5kb3dQCiAgICAgYXV0byBpc0NhbmNlbGFibGUg
PSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmICFpc01vdXNlRW50
ZXJPckxlYXZlID8gSXNDYW5jZWxhYmxlOjpZZXMgOiBJc0NhbmNlbGFibGU6Ok5vOwogICAgIGF1
dG8gY2FuQnViYmxlID0gIWlzTW91c2VFbnRlck9yTGVhdmUgPyBDYW5CdWJibGU6OlllcyA6IENh
bkJ1YmJsZTo6Tm87CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwg
Y2FuQnViYmxlLCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9u
b3RvbmljVGltZSgpLCBXVEZNb3ZlKHZpZXcpLAotICAgICAgICBkZXRhaWwsIGV2ZW50Lmdsb2Jh
bFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnkoKSwgZXZlbnQucG9zaXRp
b24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLAorICAgIHJldHVybiBNb3VzZUV2ZW50Ojpj
cmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1w
KCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIFdURk1vdmUodmlldyksIGRldGFpbCwKKyAg
ICAgICAgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKSwKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQotICAgICAgICBldmVudC5tb3ZlbWVudERlbHRhKCkueCgpLCBldmVu
dC5tb3ZlbWVudERlbHRhKCkueSgpLAorICAgICAgICBldmVudC5tb3ZlbWVudERlbHRhKCksCisj
ZWxzZQorICAgICAgICB7IH0sCiAjZW5kaWYKLSAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVu
dC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC5idXR0
b24oKSwgZXZlbnQuYnV0dG9ucygpLAotICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3Jj
ZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CisgICAgICAgIGV2ZW50Lm1vZGlmaWVy
cygpLCBldmVudC5idXR0b24oKSwgZXZlbnQuYnV0dG9ucygpLCByZWxhdGVkVGFyZ2V0LCBldmVu
dC5mb3JjZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2
ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBDYW5CdWJi
bGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAotI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCi0gICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKLSNlbmRpZgotICAgIGJv
b2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5z
aWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLCBFdmVudFRhcmdldCog
cmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlj
a1R5cGUsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyLCBib29sIGlzU2ltdWxhdGVkKQorUmVm
PE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IENhbkJ1YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsCisg
ICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93
TG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLCBPcHRpb25TZXQ8TW9kaWZp
ZXI+IG1vZGlmaWVycywgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0
b25zLAorICAgIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2ln
bmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIs
IElzU2ltdWxhdGVkIGlzU2ltdWxhdGVkKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1v
dXNlRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIFdURk1vdmUo
dmlldyksCi0gICAgICAgIGRldGFpbCwgeyBzY3JlZW5YLCBzY3JlZW5ZIH0sIHsgcGFnZVgsIHBh
Z2VZIH0sCi0jaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAgeyBtb3ZlbWVudFgsIG1v
dmVtZW50WSB9LAotI2VuZGlmCi0gICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1l
dGFLZXksIGJ1dHRvbiwgYnV0dG9ucywgcmVsYXRlZFRhcmdldCwgZm9yY2UsIHN5bnRoZXRpY0Ns
aWNrVHlwZSwgZGF0YVRyYW5zZmVyLCBpc1NpbXVsYXRlZCkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE1vdXNlRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAs
IFdURk1vdmUodmlldyksIGRldGFpbCwKKyAgICAgICAgc2NyZWVuTG9jYXRpb24sIHdpbmRvd0xv
Y2F0aW9uLCBtb3ZlbWVudERlbHRhLCBtb2RpZmllcnMsIGJ1dHRvbiwgYnV0dG9ucywgcmVsYXRl
ZFRhcmdldCwgZm9yY2UsIHN5bnRoZXRpY0NsaWNrVHlwZSwgZGF0YVRyYW5zZmVyLCBpc1NpbXVs
YXRlZCkpOwogfQogCi1SZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUg
Y2FuY2VsYWJsZSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxL
ZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNo
b3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywgdW5zaWduZWQgc2hvcnQgc3ludGhl
dGljQ2xpY2tUeXBlLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCkKK1JlZjxNb3VzZUV2ZW50
PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENhbkJ1
YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBSZWZQdHI8V2luZG93UHJv
eHk+JiYgdmlldywgaW50IGRldGFpbCwKKyAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGlu
dCBjbGllbnRYLCBpbnQgY2xpZW50WSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIHVu
c2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywKKyAgICB1bnNpZ25l
ZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJi
bGUsIGNhbmNlbGFibGUsIFdURk1vdmUodmlldyksIGRldGFpbCwgeyBzY3JlZW5YLCBzY3JlZW5Z
IH0sIHsgY2xpZW50WCwgY2xpZW50WSB9LCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRh
S2V5LCBidXR0b24sIGJ1dHRvbnMsIHN5bnRoZXRpY0NsaWNrVHlwZSwgcmVsYXRlZFRhcmdldCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJi
bGUsIGNhbmNlbGFibGUsIFdURk1vdmUodmlldyksIGRldGFpbCwgeyBzY3JlZW5YLCBzY3JlZW5Z
IH0sIHsgY2xpZW50WCwgY2xpZW50WSB9LCBtb2RpZmllcnMsIGJ1dHRvbiwgYnV0dG9ucywgc3lu
dGhldGljQ2xpY2tUeXBlLCByZWxhdGVkVGFyZ2V0KSk7CiB9CiAKIE1vdXNlRXZlbnQ6Ok1vdXNl
RXZlbnQoKSA9IGRlZmF1bHQ7CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIENhbkJ1YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5j
ZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZp
ZXcsIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50
UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAg
IGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLAotI2VuZGlmCi0gICAgICAgIGJvb2wgY3Ry
bEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWduZWQg
c2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLCBFdmVudFRhcmdldCogcmVsYXRl
ZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyLCBib29sIGlzU2ltdWxhdGVkKQotICAgIDogTW91
c2VSZWxhdGVkRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHRpbWVzdGFt
cCwgV1RGTW92ZSh2aWV3KSwgZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgd2luZG93TG9jYXRpb24s
Ci0jaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAgbW92ZW1lbnREZWx0YSwKLSNlbmRp
ZgotICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBpc1NpbXVsYXRl
ZCkKK01vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IENhbkJ1YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsCisg
ICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93
TG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLCBPcHRpb25TZXQ8TW9kaWZp
ZXI+IG1vZGlmaWVycywgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0
b25zLAorICAgIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2ln
bmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIs
IElzU2ltdWxhdGVkIGlzU2ltdWxhdGVkKQorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZlbnRU
eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHRpbWVzdGFtcCwgV1RGTW92ZSh2aWV3KSwgZGV0
YWlsLCBzY3JlZW5Mb2NhdGlvbiwgd2luZG93TG9jYXRpb24sIG1vdmVtZW50RGVsdGEsIG1vZGlm
aWVycywgaXNTaW11bGF0ZWQpCiAgICAgLCBtX2J1dHRvbihidXR0b24gPT0gKHVuc2lnbmVkIHNo
b3J0KS0xID8gMCA6IGJ1dHRvbikKICAgICAsIG1fYnV0dG9ucyhidXR0b25zKQogICAgICwgbV9z
eW50aGV0aWNDbGlja1R5cGUoYnV0dG9uID09ICh1bnNpZ25lZCBzaG9ydCktMSA/IDAgOiBzeW50
aGV0aWNDbGlja1R5cGUpCkBAIC0xMDAsMTIgKzkxLDkgQEAgTW91c2VFdmVudDo6TW91c2VFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgQ2FuQnViYmxlIGNhbkJ1YmJsZSwgSXND
YW4KIHsKIH0KIAotTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgQ2FuQnViYmxlIGNhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlIGNhbmNlbGFibGUsIFJl
ZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2Ny
ZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBjbGllbnRMb2NhdGlvbiwgYm9vbCBjdHJsS2V5
LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9y
dCBidXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRp
Y0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpCi0gICAgOiBNb3VzZVJlbGF0
ZWRFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZTo6
bm93KCksIFdURk1vdmUodmlldyksIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKLSNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQotICAgICAgICB7IH0sCi0jZW5kaWYKLSAgICAgICAgY3RybEtl
eSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSwgZmFsc2UpCitNb3VzZUV2ZW50OjpNb3VzZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJ
c0NhbmNlbGFibGUgY2FuY2VsYWJsZSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBk
ZXRhaWwsCisgICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2lu
dCYgY2xpZW50TG9jYXRpb24sIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCB1bnNpZ25l
ZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5
bnRoZXRpY0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpCisgICAgOiBNb3Vz
ZVJlbGF0ZWRFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgTW9ub3Rvbmlj
VGltZTo6bm93KCksIFdURk1vdmUodmlldyksIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwg
eyB9LCBtb2RpZmllcnMsIElzU2ltdWxhdGVkOjpObykKICAgICAsIG1fYnV0dG9uKGJ1dHRvbiA9
PSAodW5zaWduZWQgc2hvcnQpLTEgPyAwIDogYnV0dG9uKQogICAgICwgbV9idXR0b25zKGJ1dHRv
bnMpCiAgICAgLCBtX3N5bnRoZXRpY0NsaWNrVHlwZShidXR0b24gPT0gKHVuc2lnbmVkIHNob3J0
KS0xID8gMCA6IHN5bnRoZXRpY0NsaWNrVHlwZSkKQEAgLTEyNyw3ICsxMTUsOCBAQCBNb3VzZUV2
ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBNb3Vz
ZUV2ZW50SW5pdCYgaW5pdAogCiBNb3VzZUV2ZW50Ojp+TW91c2VFdmVudCgpID0gZGVmYXVsdDsK
IAotdm9pZCBNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJlZlB0cjxXaW5kb3dQcm94eT4m
JiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRY
LCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwg
Ym9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIEV2ZW50VGFyZ2V0KiByZWxhdGVk
VGFyZ2V0KQordm9pZCBNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJlZlB0cjxXaW5kb3dQ
cm94eT4mJiB2aWV3LCBpbnQgZGV0YWlsLAorICAgIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwg
aW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29s
IHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgRXZlbnRUYXJn
ZXQqIHJlbGF0ZWRUYXJnZXQpCiB7CiAgICAgaWYgKGlzQmVpbmdEaXNwYXRjaGVkKCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTEzNSwxMCArMTI0LDcgQEAgdm9pZCBNb3VzZUV2ZW50Ojppbml0TW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGMK
ICAgICBpbml0VUlFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURk1vdmUodmll
dyksIGRldGFpbCk7CiAKICAgICBtX3NjcmVlbkxvY2F0aW9uID0gSW50UG9pbnQoc2NyZWVuWCwg
c2NyZWVuWSk7Ci0gICAgbV9jdHJsS2V5ID0gY3RybEtleTsKLSAgICBtX2FsdEtleSA9IGFsdEtl
eTsKLSAgICBtX3NoaWZ0S2V5ID0gc2hpZnRLZXk7Ci0gICAgbV9tZXRhS2V5ID0gbWV0YUtleTsK
KyAgICBzZXRNb2RpZmllcktleXMoY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSk7
CiAgICAgbV9idXR0b24gPSBidXR0b24gPT0gKHVuc2lnbmVkIHNob3J0KS0xID8gMCA6IGJ1dHRv
bjsKICAgICBtX3N5bnRoZXRpY0NsaWNrVHlwZSA9IDA7CiAgICAgbV9idXR0b25Eb3duID0gYnV0
dG9uICE9ICh1bnNpZ25lZCBzaG9ydCktMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCmluZGV4IGIw
M2FhYmJiZTZmNTVmMGRiMzM3NzNiNGFmZTVjN2U5NWM3OGQ5MmQuLjAyZDM1YzY3MzE5ZjQyMTg1
YTliN2I3YmQ3NzQyYjYwOTZlNjdmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
b3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAtMzQs
MTggKzM0LDE0IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVu
dCA6IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBDYW5CdWJibGUsIElzQ2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsCi0gICAg
ICAgIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBz
Y3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKLSNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQot
ICAgICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAotI2VuZGlmCi0gICAgICAgIGJv
b2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5z
aWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLAotICAgICAgICBFdmVu
dFRhcmdldCogcmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50
aGV0aWNDbGlja1R5cGUsIERhdGFUcmFuc2ZlciogPSBudWxscHRyLCBib29sIGlzU2ltdWxhdGVk
ID0gZmFsc2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3Jl
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQ2FuQnViYmxlLCBJc0NhbmNlbGFibGUsIE1v
bm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYsIGludCBkZXRhaWws
CisgICAgICAgIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQm
IHdpbmRvd0xvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwgT3B0aW9uU2V0
PE1vZGlmaWVyPiwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25z
LAorICAgICAgICBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNp
Z25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIERhdGFUcmFuc2ZlciogPSBudWxscHRyLCBJ
c1NpbXVsYXRlZCA9IElzU2ltdWxhdGVkOjpObyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
UmVmUHRyPFdpbmRvd1Byb3h5PiYmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBpbnQgZGV0
YWlsLCBOb2RlKiByZWxhdGVkVGFyZ2V0KTsKIAogICAgIHN0YXRpYyBSZWY8TW91c2VFdmVudD4g
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBDYW5CdWJibGUsIElzQ2FuY2Vs
YWJsZSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLAotICAgICAgICBpbnQgZGV0YWlsLCBpbnQgc2Ny
ZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5
LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LAorICAgICAgICBpbnQg
ZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50
WSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwKICAgICAgICAgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1
bnNpZ25lZCBzaG9ydCBidXR0b25zLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KTsKIAogICAgIHN0YXRpYyBSZWY8TW91c2VFdmVu
dD4gY3JlYXRlRm9yQmluZGluZ3MoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQp
OyB9CkBAIC04MCwxOCArNzYsMTMgQEAgcHVibGljOgogICAgIGludCB3aGljaCgpIGNvbnN0IGZp
bmFsOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIENhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgUmVm
UHRyPFdpbmRvd1Byb3h5PiYmLAotICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYg
c2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKLSNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQotICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwK
LSNlbmRpZgotICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5
LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0
dG9ucywKLSAgICAgICAgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQsIGRvdWJsZSBmb3JjZSwg
dW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tUeXBlLCBEYXRhVHJhbnNmZXIqLCBib29sIGlz
U2ltdWxhdGVkKTsKKyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQ2Fu
QnViYmxlLCBJc0NhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2lu
ZG93UHJveHk+JiYsIGludCBkZXRhaWwsCisgICAgICAgIGNvbnN0IEludFBvaW50JiBzY3JlZW5M
b2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYg
bW92ZW1lbnREZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgdW5zaWduZWQgc2hvcnQgYnV0dG9u
LCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLAorICAgICAgICBFdmVudFRhcmdldCogcmVsYXRlZFRh
cmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIERh
dGFUcmFuc2ZlciosIElzU2ltdWxhdGVkKTsKIAogICAgIE1vdXNlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBDYW5CdWJibGUsIElzQ2FuY2VsYWJsZSwgUmVmUHRyPFdpbmRvd1Byb3h5
PiYmLAogICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24s
IGNvbnN0IEludFBvaW50JiBjbGllbnRMb2NhdGlvbiwKLSAgICAgICAgYm9vbCBjdHJsS2V5LCBi
b29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LAotICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5
bnRoZXRpY0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpOworICAgICAgICBP
cHRpb25TZXQ8TW9kaWZpZXI+LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0
IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQq
IHJlbGF0ZWRUYXJnZXQpOwogCiAgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGNvbnN0IE1vdXNlRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggYTMyMjdhNTRiYjQ1MmU4YzU5Yjk0ZjY5ZTYy
NjYyYTdmZTZkNzIyYS4uMTc1MTlkMGNiMTk1MmEzZjllN2ZjZjFhMGVlZmI1MjljM2I0OTk5MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMywyMCArMzMs
MjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Nb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VS
ZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENhbkJ1YmJsZSBjYW5C
dWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwg
UmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25z
dCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCi0jaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1l
bnREZWx0YSwKLSNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9v
bCBpc1NpbXVsYXRlZCkKLSAgICA6IFVJRXZlbnRXaXRoS2V5U3RhdGUoZXZlbnRUeXBlLCBjYW5C
dWJibGUsIGNhbmNlbGFibGUsIHRpbWVzdGFtcCwgV1RGTW92ZSh2aWV3KSwgZGV0YWlsLCBjdHJs
S2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBmYWxzZSwgZmFsc2UpCitNb3VzZVJlbGF0
ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IENhbkJ1YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBpc0NhbmNlbGFibGUsIE1vbm90b25p
Y1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywgaW50IGRldGFpbCwK
KyAgICBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5k
b3dMb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsIE9wdGlvblNldDxNb2Rp
Zmllcj4gbW9kaWZpZXJzLCBJc1NpbXVsYXRlZCBpc1NpbXVsYXRlZCkKKyAgICA6IFVJRXZlbnRX
aXRoS2V5U3RhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgdGltZXN0YW1w
LCBXVEZNb3ZlKHZpZXcpLCBkZXRhaWwsIG1vZGlmaWVycykKICAgICAsIG1fc2NyZWVuTG9jYXRp
b24oc2NyZWVuTG9jYXRpb24pCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAsIG1fbW92
ZW1lbnREZWx0YShtb3ZlbWVudERlbHRhKQogI2VuZGlmCi0gICAgLCBtX2lzU2ltdWxhdGVkKGlz
U2ltdWxhdGVkKQorICAgICwgbV9pc1NpbXVsYXRlZChpc1NpbXVsYXRlZCA9PSBJc1NpbXVsYXRl
ZDo6WWVzKQoreworI2lmICFFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIFVOVVNFRF9QQVJBTSht
b3ZlbWVudERlbHRhKTsKKyNlbmRpZgorICAgIGluaXQobV9pc1NpbXVsYXRlZCwgd2luZG93TG9j
YXRpb24pOworfQorCitNb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBJc0NhbmNlbGFibGUgaXNDYW5jZWxhYmxlLCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCwgUmVmPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNvbnN0IEludFBvaW50JiBn
bG9iYWxMb2NhdGlvbiwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMpCisgICAgOiBNb3Vz
ZVJlbGF0ZWRFdmVudCh0eXBlLCBDYW5CdWJibGU6OlllcywgaXNDYW5jZWxhYmxlLCB0aW1lc3Rh
bXAsIFdURk1vdmUodmlldyksIDAsIGdsb2JhbExvY2F0aW9uLCBnbG9iYWxMb2NhdGlvbiAvKiBD
b252ZXJ0ZWQgaW4gaW5pdCAqLywgeyB9LCBtb2RpZmllcnMsIElzU2ltdWxhdGVkOjpObykKIHsK
LSAgICBpbml0KGlzU2ltdWxhdGVkLCB3aW5kb3dMb2NhdGlvbik7CiB9CiAKIE1vdXNlUmVsYXRl
ZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
Y29uc3QgTW91c2VSZWxhdGVkRXZlbnRJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1
c3RlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKaW5kZXggZDhmMWZjZGYz
ZTExYjFlMzhlZWJlYWU3YzYwZjRmODVlODhhNDk2Ni4uMGFiMjE0MjViN2E2MmE0NjkwOTUxMTMx
YTkxYmMxYzJjZmEyODk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVs
YXRlZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgK
QEAgLTM4LDYgKzM4LDggQEAgc3RydWN0IE1vdXNlUmVsYXRlZEV2ZW50SW5pdCA6IHB1YmxpYyBF
dmVudE1vZGlmaWVySW5pdCB7CiAvLyBJbnRlcm5hbCBvbmx5OiBIZWxwZXIgY2xhc3MgZm9yIHdo
YXQncyBjb21tb24gYmV0d2VlbiBtb3VzZSBhbmQgd2hlZWwgZXZlbnRzLgogY2xhc3MgTW91c2VS
ZWxhdGVkRXZlbnQgOiBwdWJsaWMgVUlFdmVudFdpdGhLZXlTdGF0ZSB7CiBwdWJsaWM6CisgICAg
ZW51bSBjbGFzcyBJc1NpbXVsYXRlZCA6IHVpbnQ4X3QgeyBZZXMsIE5vIH07CisKICAgICAvLyBO
b3RlIHRoYXQgdGhlc2UgdmFsdWVzIGFyZSBhZGp1c3RlZCB0byBjb3VudGVyIHRoZSBlZmZlY3Rz
IG9mIHpvb20sIHNvIHRoYXQgdmFsdWVzCiAgICAgLy8gZXhwb3NlZCB2aWEgRE9NIEFQSXMgYXJl
IGludmFyaWFudCB1bmRlciB6b29taW5nLgogICAgIGludCBzY3JlZW5YKCkgY29uc3QgeyByZXR1
cm4gbV9zY3JlZW5Mb2NhdGlvbi54KCk7IH0KQEAgLTc0LDEyICs3Niw5IEBAIHB1YmxpYzoKIAog
cHJvdGVjdGVkOgogICAgIE1vdXNlUmVsYXRlZEV2ZW50KCkgPSBkZWZhdWx0OwotICAgIE1vdXNl
UmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQ2FuQnViYmxlLCBJc0NhbmNl
bGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYsCi0g
ICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3Qg
SW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAg
ICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLAotI2VuZGlmCi0gICAgICAgIGJvb2wg
Y3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBp
c1NpbXVsYXRlZCA9IGZhbHNlKTsKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIENhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lLCBSZWZQ
dHI8V2luZG93UHJveHk+JiYsIGludCBkZXRhaWwsCisgICAgICAgIGNvbnN0IEludFBvaW50JiBz
Y3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLCBjb25zdCBJbnRQ
b2ludCYgbW92ZW1lbnREZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIElzU2lt
dWxhdGVkID0gSXNTaW11bGF0ZWQ6Ok5vKTsKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIElzQ2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSwgUmVmPFdpbmRv
d1Byb3h5PiYmLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsTG9jYXRpb24sIE9wdGlvblNldDxNb2Rp
Zmllcj4pOwogICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Y29uc3QgTW91c2VSZWxhdGVkRXZlbnRJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7
CiAKICAgICB2b2lkIGluaXRDb29yZGluYXRlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRD
bGljay5jcHAKaW5kZXggYTUyYzFhNzgzODZjMmRmMjU3ZGFjZjI1OWEzNmVkYWRmNmJjZDc5MS4u
ZjUwNmZhZjhkMTZiYzc0NDBlYTc0MGQ1ZGY4NzU1MTg3YmIyNGQ2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2ltdWxhdGVkQ2xpY2suY3BwCkBAIC00NCwyMSArNDQsMTIgQEAgcHVibGljOgogCiBwcml2
YXRlOgogICAgIFNpbXVsYXRlZE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBSZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWlu
Z0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRlZENsaWNrU291cmNlIHNvdXJjZSkKLSAg
ICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJs
ZTo6WWVzLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQtPnRpbWVTdGFtcCgpIDog
TW9ub3RvbmljVGltZTo6bm93KCksIFdURk1vdmUodmlldyksIDAsIHsgfSwgeyB9LAotI2lmIEVO
QUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAgICAgICB7IH0sCi0jZW5kaWYKLSAgICAgICAgICAg
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCBudWxscHRyLCAwLCAwLCBudWxscHRy
LCB0cnVlKQorICAgICAgICA6IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCBDYW5CdWJibGU6Olllcywg
SXNDYW5jZWxhYmxlOjpZZXMsIHVuZGVybHlpbmdFdmVudCA/IHVuZGVybHlpbmdFdmVudC0+dGlt
ZVN0YW1wKCkgOiBNb25vdG9uaWNUaW1lOjpub3coKSwgV1RGTW92ZSh2aWV3KSwgLyogZGV0YWls
ICovIDAsCisgICAgICAgICAgICB7IH0sIHsgfSwgeyB9LCBtb2RpZmllcnNGcm9tVW5kZXJseWlu
Z0V2ZW50KHVuZGVybHlpbmdFdmVudCksIDAsIDAsIG51bGxwdHIsIDAsIDAsIG51bGxwdHIsIElz
U2ltdWxhdGVkOjpZZXMpCiAgICAgewogICAgICAgICBpZiAoc291cmNlID09IFNpbXVsYXRlZENs
aWNrU291cmNlOjpCaW5kaW5ncykKICAgICAgICAgICAgIHNldFVudHJ1c3RlZCgpOwogCi0gICAg
ICAgIGlmIChVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0
aEtleVN0YXRlKHVuZGVybHlpbmdFdmVudC5nZXQoKSkpIHsKLSAgICAgICAgICAgIG1fY3RybEtl
eSA9IGtleVN0YXRlRXZlbnQtPmN0cmxLZXkoKTsKLSAgICAgICAgICAgIG1fYWx0S2V5ID0ga2V5
U3RhdGVFdmVudC0+YWx0S2V5KCk7Ci0gICAgICAgICAgICBtX3NoaWZ0S2V5ID0ga2V5U3RhdGVF
dmVudC0+c2hpZnRLZXkoKTsKLSAgICAgICAgICAgIG1fbWV0YUtleSA9IGtleVN0YXRlRXZlbnQt
Pm1ldGFLZXkoKTsKLSAgICAgICAgfQogICAgICAgICBzZXRVbmRlcmx5aW5nRXZlbnQodW5kZXJs
eWluZ0V2ZW50LmdldCgpKTsKIAogICAgICAgICBpZiAoaXM8TW91c2VFdmVudD4odGhpcy0+dW5k
ZXJseWluZ0V2ZW50KCkpKSB7CkBAIC03NSw2ICs2NiwxMyBAQCBwcml2YXRlOgogICAgICAgICB9
CiAgICAgfQogCisgICAgc3RhdGljIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzRnJvbVVu
ZGVybHlpbmdFdmVudChjb25zdCBSZWZQdHI8RXZlbnQ+JiB1bmRlcmx5aW5nRXZlbnQpCisgICAg
eworICAgICAgICBVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50
V2l0aEtleVN0YXRlKHVuZGVybHlpbmdFdmVudC5nZXQoKSk7CisgICAgICAgIGlmICgha2V5U3Rh
dGVFdmVudCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBrZXlTdGF0
ZUV2ZW50LT5tb2RpZmllcktleXMoKTsKKyAgICB9CiB9OwogCiBzdGF0aWMgdm9pZCBzaW11bGF0
ZU1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGVsZW1l
bnQsIEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrU291cmNlIHNvdXJjZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRleCAyOTJjODQ2NjhmNmEzY2RhOGM0M2NhNTU5
MTgzMjNiYzk4OTBjOTE1Li41MzI2N2U0NDIxYWEzMTZmMjdjMmUzMWE1NWI0ZTM5MjBjOGVmZjg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCkBAIC0zNywxMyArMzcsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KCkgPSBkZWZhdWx0OwogCiBUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRU
b3VjaGVzLCBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsCi0gICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJv
b2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KHR5cGUs
IENhbkJ1YmJsZTo6WWVzLCBJc0NhbmNlbGFibGU6OlllcywgTW9ub3RvbmljVGltZTo6bm93KCks
IFdURk1vdmUodmlldyksIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVlblkpLAotICAgICAgICBJ
bnRQb2ludChwYWdlWCwgcGFnZVkpLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAg
IEludFBvaW50KDAsIDApLAotI2VuZGlmCi0gICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRL
ZXksIG1ldGFLZXkpCisgICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNvbnN0IEludFBv
aW50JiBnbG9iYWxMb2NhdGlvbiwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMpCisgICAg
OiBNb3VzZVJlbGF0ZWRFdmVudCh0eXBlLCBJc0NhbmNlbGFibGU6OlllcywgTW9ub3RvbmljVGlt
ZTo6bm93KCksIFdURk1vdmUodmlldyksIGdsb2JhbExvY2F0aW9uLCBtb2RpZmllcnMpCiAgICAg
LCBtX3RvdWNoZXModG91Y2hlcykKICAgICAsIG1fdGFyZ2V0VG91Y2hlcyh0YXJnZXRUb3VjaGVz
KQogICAgICwgbV9jaGFuZ2VkVG91Y2hlcyhjaGFuZ2VkVG91Y2hlcykKQEAgLTc0LDEwICs2OSw3
IEBAIHZvaWQgVG91Y2hFdmVudDo6aW5pdFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBU
b3VjaExpc3QqIHRhcmdldFRvdWNoZXMsCiAgICAgbV90YXJnZXRUb3VjaGVzID0gdGFyZ2V0VG91
Y2hlczsKICAgICBtX2NoYW5nZWRUb3VjaGVzID0gY2hhbmdlZFRvdWNoZXM7CiAgICAgbV9zY3Jl
ZW5Mb2NhdGlvbiA9IEludFBvaW50KHNjcmVlblgsIHNjcmVlblkpOwotICAgIG1fY3RybEtleSA9
IGN0cmxLZXk7Ci0gICAgbV9hbHRLZXkgPSBhbHRLZXk7Ci0gICAgbV9zaGlmdEtleSA9IHNoaWZ0
S2V5OwotICAgIG1fbWV0YUtleSA9IG1ldGFLZXk7CisgICAgc2V0TW9kaWZpZXJLZXlzKGN0cmxL
ZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXkpOwogICAgIGluaXRDb29yZGluYXRlcyhJbnRQ
b2ludChjbGllbnRYLCBjbGllbnRZKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ub3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oCmluZGV4
IDg1ZmExNjFmMjE5NmQzZjJhMDVkOWEzMWExMTdiMGExYWY4NjZmOTkuLjEzZGUwYzI5ODY1MWNl
NDExMGU0NmE3NzVjZDMxY2FjMzNiODRlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ub3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaApAQCAt
MzksMTUgKzM5LDEwIEBAIGNsYXNzIFRvdWNoRXZlbnQgZmluYWwgOiBwdWJsaWMgTW91c2VSZWxh
dGVkRXZlbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflRvdWNoRXZlbnQoKTsKIAotICAgIHN0
YXRpYyBSZWY8VG91Y2hFdmVudD4gY3JlYXRlKFRvdWNoTGlzdCogdG91Y2hlcywgCi0gICAgICAg
ICAgICBUb3VjaExpc3QqIHRhcmdldFRvdWNoZXMsIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMs
IAotICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBSZWZQdHI8V2luZG93UHJv
eHk+JiYgdmlldywKLSAgICAgICAgICAgIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBh
Z2VYLCBpbnQgcGFnZVksCi0gICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBi
b29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpCisgICAgc3RhdGljIFJlZjxUb3VjaEV2ZW50PiBj
cmVhdGUoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdldFRvdWNoZXMsIFRvdWNo
TGlzdCogY2hhbmdlZFRvdWNoZXMsCisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
UmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNvbnN0IEludFBvaW50JiBnbG9iYWxMb2NhdGlv
biwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBUb3VjaEV2ZW50KHRvdWNoZXMsIHRhcmdldFRvdWNoZXMsIGNoYW5nZWRU
b3VjaGVzLAotICAgICAgICAgICAgICAgIHR5cGUsIFdURk1vdmUodmlldyksIHNjcmVlblgsIHNj
cmVlblksIHBhZ2VYLCBwYWdlWSwKLSAgICAgICAgICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNo
aWZ0S2V5LCBtZXRhS2V5KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRvdWNoRXZl
bnQodG91Y2hlcywgdGFyZ2V0VG91Y2hlcywgY2hhbmdlZFRvdWNoZXMsIHR5cGUsIFdURk1vdmUo
dmlldyksIGdsb2JhbExvY2F0aW9uLCBtb2RpZmllcnMpKTsKICAgICB9CiAgICAgc3RhdGljIFJl
ZjxUb3VjaEV2ZW50PiBjcmVhdGVGb3JCaW5kaW5ncygpCiAgICAgewpAQCAtNjUsMTEgKzYwLDgg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUb3VjaEV2ZW50KHR5cGUs
IGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKICAgICB9CiAKLSAgICB2b2lkIGluaXRUb3VjaEV2
ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAotICAgICAg
ICAgICAgVG91Y2hMaXN0KiBjaGFuZ2VkVG91Y2hlcywgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCAKLSAgICAgICAgICAgIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IHNjcmVlblgsIGludCBz
Y3JlZW5ZLAotICAgICAgICAgICAgaW50IGNsaWVudFgsIGludCBjbGllbnRZLAotICAgICAgICAg
ICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5
KTsKKyAgICB2b2lkIGluaXRUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0
KiB0YXJnZXRUb3VjaGVzLCBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsCisgICAgICAgIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IHNjcmVlblgs
IGludCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNsaWVudFksIGJvb2wgY3RybEtleSwgYm9v
bCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CiAKICAgICBUb3VjaExpc3Qq
IHRvdWNoZXMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoZXMuZ2V0KCk7IH0KICAgICBUb3VjaExp
c3QqIHRhcmdldFRvdWNoZXMoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldFRvdWNoZXMuZ2V0KCk7
IH0KQEAgLTg1LDExICs3Nyw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBUb3VjaEV2ZW50
KCk7Ci0gICAgVG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlzdCogdGFyZ2V0
VG91Y2hlcywKLSAgICAgICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwKLSAgICAgICAgICAgIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50
IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsCi0gICAgICAgICAgICBpbnQgcGFnZVks
Ci0gICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBi
b29sIG1ldGFLZXkpOworICAgIFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExp
c3QqIHRhcmdldFRvdWNoZXMsIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwKKyAgICAgICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLCBjb25zdCBJbnRQ
b2ludCYgZ2xvYmFsTG9jYXRpb24sIE9wdGlvblNldDxNb2RpZmllcj4pOwogICAgIFRvdWNoRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CiAKICAgICBS
ZWZQdHI8VG91Y2hMaXN0PiBtX3RvdWNoZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRo
S2V5U3RhdGUuaAppbmRleCAzNjY4MzY0Njk5YjkzYTUxYzhhOWI4ZWE5NjE1MjE0ZDc5Mzg3YTI3
Li5kOWNhNzU4ZmQ5ODdiZDU3YTg3ODQ0OTNiZDk4OWZhZWQwNjRlZmEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKQEAgLTI0LDYxICsyNCwxMDQgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiRXZlbnRNb2RpZmllckluaXQuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiVUlFdmVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFVJRXZlbnRXaXRoS2V5U3RhdGUgOiBwdWJsaWMgVUlFdmVudCB7CiBwdWJsaWM6
Ci0gICAgYm9vbCBjdHJsS2V5KCkgY29uc3QgeyByZXR1cm4gbV9jdHJsS2V5OyB9Ci0gICAgYm9v
bCBzaGlmdEtleSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hpZnRLZXk7IH0KLSAgICBib29sIGFsdEtl
eSgpIGNvbnN0IHsgcmV0dXJuIG1fYWx0S2V5OyB9Ci0gICAgYm9vbCBtZXRhS2V5KCkgY29uc3Qg
eyByZXR1cm4gbV9tZXRhS2V5OyB9Ci0gICAgYm9vbCBhbHRHcmFwaEtleSgpIGNvbnN0IHsgcmV0
dXJuIG1fYWx0R3JhcGhLZXk7IH0KLSAgICBib29sIGNhcHNMb2NrS2V5KCkgY29uc3QgeyByZXR1
cm4gbV9jYXBzTG9ja0tleTsgfQorICAgIHVzaW5nIE1vZGlmaWVyID0gUGxhdGZvcm1FdmVudDo6
TW9kaWZpZXI7CisKKyAgICBib29sIGN0cmxLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVy
cy5jb250YWlucyhNb2RpZmllcjo6Q3RybEtleSk7IH0KKyAgICBib29sIHNoaWZ0S2V5KCkgY29u
c3QgeyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9kaWZpZXI6OlNoaWZ0S2V5KTsgfQor
ICAgIGJvb2wgYWx0S2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9k
aWZpZXI6OkFsdEtleSk7IH0KKyAgICBib29sIG1ldGFLZXkoKSBjb25zdCB7IHJldHVybiBtX21v
ZGlmaWVycy5jb250YWlucyhNb2RpZmllcjo6TWV0YUtleSk7IH0KKyAgICBib29sIGFsdEdyYXBo
S2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9kaWZpZXI6OkFsdEdy
YXBoS2V5KTsgfQorICAgIGJvb2wgY2Fwc0xvY2tLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZGlm
aWVycy5jb250YWlucyhNb2RpZmllcjo6Q2Fwc0xvY2tLZXkpOyB9CisKKyAgICBPcHRpb25TZXQ8
TW9kaWZpZXI+IG1vZGlmaWVyS2V5cygpIHsgcmV0dXJuIG1fbW9kaWZpZXJzOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICBVSUV2ZW50V2l0aEtleVN0YXRlKCkgPSBkZWZhdWx0OwogCi0gICAgVUlFdmVu
dFdpdGhLZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIENhbkJ1YmJsZSBjYW5CdWJi
bGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywg
aW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5KQorICAgIFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJsZSwgUmVmUHRy
PFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsIE9wdGlvblNldDxNb2RpZmllcj4gbW9k
aWZpZXJzKQogICAgICAgICA6IFVJRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBX
VEZNb3ZlKHZpZXcpLCBkZXRhaWwpCi0gICAgICAgICwgbV9jdHJsS2V5KGN0cmxLZXkpCi0gICAg
ICAgICwgbV9hbHRLZXkoYWx0S2V5KQotICAgICAgICAsIG1fc2hpZnRLZXkoc2hpZnRLZXkpCi0g
ICAgICAgICwgbV9tZXRhS2V5KG1ldGFLZXkpCisgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZp
ZXJzKQogICAgIHsKICAgICB9CiAKLSAgICBVSUV2ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgQ2FuQnViYmxlIGNhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlIGNhbmNlbGFi
bGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywK
LSAgICAgICAgaW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlm
dEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQot
ICAgICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0
YW1wLCBXVEZNb3ZlKHZpZXcpLCBkZXRhaWwpCi0gICAgICAgICAgICAsIG1fY3RybEtleShjdHJs
S2V5KQotICAgICAgICAgICAgLCBtX2FsdEtleShhbHRLZXkpCi0gICAgICAgICAgICAsIG1fc2hp
ZnRLZXkoc2hpZnRLZXkpCi0gICAgICAgICAgICAsIG1fbWV0YUtleShtZXRhS2V5KQotICAgICAg
ICAgICAgLCBtX2FsdEdyYXBoS2V5KGFsdEdyYXBoS2V5KQotICAgICAgICAgICAgLCBtX2NhcHNM
b2NrS2V5KGNhcHNMb2NrS2V5KQorICAgIFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJs
ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBp
bnQgZGV0YWlsLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycykKKyAgICAgICAgOiBVSUV2
ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCBXVEZNb3ZlKHZpZXcp
LCBkZXRhaWwpCisgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgIHsKICAgICB9
CiAKICAgICBVSUV2ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29u
c3QgRXZlbnRNb2RpZmllckluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQog
ICAgICAgICA6IFVJRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKLSAgICAgICAg
LCBtX2N0cmxLZXkoaW5pdGlhbGl6ZXIuY3RybEtleSkKLSAgICAgICAgLCBtX2FsdEtleShpbml0
aWFsaXplci5hbHRLZXkpCi0gICAgICAgICwgbV9zaGlmdEtleShpbml0aWFsaXplci5zaGlmdEtl
eSkKLSAgICAgICAgLCBtX21ldGFLZXkoaW5pdGlhbGl6ZXIubWV0YUtleSkKLSAgICAgICAgLCBt
X2FsdEdyYXBoS2V5KGluaXRpYWxpemVyLm1vZGlmaWVyQWx0R3JhcGgpCi0gICAgICAgICwgbV9j
YXBzTG9ja0tleShpbml0aWFsaXplci5tb2RpZmllckNhcHNMb2NrKQorICAgICAgICAsIG1fbW9k
aWZpZXJzKG1vZGlmaWVyc0Zyb21Jbml0aWFsaXplcihpbml0aWFsaXplcikpCisgICAgeworICAg
IH0KKworICAgIHZvaWQgc2V0TW9kaWZpZXJLZXlzKGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXks
IGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBhbHRHcmFwaEtleSkKICAgICB7Cisg
ICAgICAgIE9wdGlvblNldDxNb2RpZmllcj4gcmVzdWx0OworICAgICAgICBpZiAoY3RybEtleSkK
KyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6Q3RybEtleTsKKyAgICAgICAgaWYgKGFs
dEtleSkKKyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6QWx0S2V5OworICAgICAgICBp
ZiAoc2hpZnRLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OlNoaWZ0S2V5Owor
ICAgICAgICBpZiAobWV0YUtleSkKKyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6TWV0
YUtleTsKKyAgICAgICAgaWYgKGFsdEdyYXBoS2V5KQorICAgICAgICAgICAgcmVzdWx0IHw9IE1v
ZGlmaWVyOjpBbHRHcmFwaEtleTsKKyAgICAgICAgLy8gIEZJWE1FOiBDaHJvbWUgb3IgRmlyZWZv
eCBkb24ndCBwcmVzZXJ2ZSB0aGlzIHN0YXRlLgorICAgICAgICBpZiAobV9tb2RpZmllcnMgJiBN
b2RpZmllcjo6Q2Fwc0xvY2tLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkNh
cHNMb2NrS2V5OworICAgICAgICBtX21vZGlmaWVycyA9IHJlc3VsdDsKICAgICB9CiAKLSAgICAv
LyBFeHBvc2UgdGhlc2Ugc28gaW5pdCBmdW5jdGlvbnMgY2FuIHNldCB0aGVtLgotICAgIGJvb2wg
bV9jdHJsS2V5IHsgZmFsc2UgfTsKLSAgICBib29sIG1fYWx0S2V5IHsgZmFsc2UgfTsKLSAgICBi
b29sIG1fc2hpZnRLZXkgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9tZXRhS2V5IHsgZmFsc2UgfTsK
LSAgICBib29sIG1fYWx0R3JhcGhLZXkgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9jYXBzTG9ja0tl
eSB7IGZhbHNlIH07CisgICAgdm9pZCBzZXRNb2RpZmllcktleXMoYm9vbCBjdHJsS2V5LCBib29s
IGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQorICAgIHsKKyAgICAgICAgT3B0
aW9uU2V0PE1vZGlmaWVyPiByZXN1bHQ7CisgICAgICAgIGlmIChjdHJsS2V5KQorICAgICAgICAg
ICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpDdHJsS2V5OworICAgICAgICBpZiAoYWx0S2V5KQorICAg
ICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpBbHRLZXk7CisgICAgICAgIGlmIChzaGlmdEtl
eSkKKyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6U2hpZnRLZXk7CisgICAgICAgIGlm
IChtZXRhS2V5KQorICAgICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpNZXRhS2V5OworICAg
ICAgICAvLyAgRklYTUU6IENocm9tZSBvciBGaXJlZm94IGRvbid0IHByZXNlcnZlIHRoZXNlIHN0
YXRlcy4KKyAgICAgICAgaWYgKG1fbW9kaWZpZXJzICYgTW9kaWZpZXI6OkFsdEdyYXBoS2V5KQor
ICAgICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpBbHRHcmFwaEtleTsKKyAgICAgICAgaWYg
KG1fbW9kaWZpZXJzICYgTW9kaWZpZXI6OkNhcHNMb2NrS2V5KQorICAgICAgICAgICAgcmVzdWx0
IHw9IE1vZGlmaWVyOjpDYXBzTG9ja0tleTsKKyAgICAgICAgbV9tb2RpZmllcnMgPSByZXN1bHQ7
CisgICAgfQorCitwcml2YXRlOgorICAgIE9wdGlvblNldDxNb2RpZmllcj4gbV9tb2RpZmllcnM7
CisKKyAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVyc0Zyb21Jbml0aWFsaXplcihjb25z
dCBFdmVudE1vZGlmaWVySW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgeworICAgICAgICBPcHRpb25T
ZXQ8TW9kaWZpZXI+IHJlc3VsdDsKKyAgICAgICAgaWYgKGluaXRpYWxpemVyLmN0cmxLZXkpCisg
ICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkN0cmxLZXk7CisgICAgICAgIGlmIChpbml0
aWFsaXplci5hbHRLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkFsdEtleTsK
KyAgICAgICAgaWYgKGluaXRpYWxpemVyLnNoaWZ0S2V5KQorICAgICAgICAgICAgcmVzdWx0IHw9
IE1vZGlmaWVyOjpTaGlmdEtleTsKKyAgICAgICAgaWYgKGluaXRpYWxpemVyLm1ldGFLZXkpCisg
ICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6Ok1ldGFLZXk7CisgICAgICAgIGlmIChpbml0
aWFsaXplci5tb2RpZmllckFsdEdyYXBoKQorICAgICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVy
OjpBbHRHcmFwaEtleTsKKyAgICAgICAgaWYgKGluaXRpYWxpemVyLm1vZGlmaWVyQ2Fwc0xvY2sp
CisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkNhcHNMb2NrS2V5OworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKIH07CiAKIFVJRXZlbnRXaXRoS2V5U3RhdGUqIGZp
bmRFdmVudFdpdGhLZXlTdGF0ZShFdmVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCmlu
ZGV4IDI3Njc3YTg3YTVlZmJhZTYzM2ZmMTAxZjEyY2RiY2Q1MGI5NDA2NjguLjA3MjIzYjk1NDk1
ZjNjOTRjZDcwNDlkZDQ2ZmJhNzhjY2UxYjc0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5j
cHAKQEAgLTQ4LDExICs0OCw4IEBAIGlubGluZSBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsCiB9CiAKIGlubGlu
ZSBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQs
IFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3KQotICAgIDogTW91c2VFdmVudChldmVudE5hbWVz
KCkud2hlZWxFdmVudCwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6WWVzLCBldmVudC50
aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgV1RGTW92ZSh2aWV3KSwgMCwg
ZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQotI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCi0gICAgICAgICwgeyB9Ci0jZW5kaWYKLSAgICAgICAgLCBldmVudC5jdHJsS2V5
KCksIGV2ZW50LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCksIDAs
IDAsIG51bGxwdHIsIDAsIDAsIG51bGxwdHIsIGZhbHNlKQorICAgIDogTW91c2VFdmVudChldmVu
dE5hbWVzKCkud2hlZWxFdmVudCwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6WWVzLCBl
dmVudC50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgV1RGTW92ZSh2aWV3
KSwgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKSAsIHsgfQorICAg
ICAgICAsIGV2ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxscHRyLCAwLCAwLCBudWxscHRyLCBJ
c1NpbXVsYXRlZDo6Tm8pCiAgICAgLCBtX3doZWVsRGVsdGEoZXZlbnQud2hlZWxUaWNrc1goKSAq
IFRpY2tNdWx0aXBsaWVyLCBldmVudC53aGVlbFRpY2tzWSgpICogVGlja011bHRpcGxpZXIpCiAg
ICAgLCBtX2RlbHRhWCgtZXZlbnQuZGVsdGFYKCkpCiAgICAgLCBtX2RlbHRhWSgtZXZlbnQuZGVs
dGFZKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMDYzMWExMWE2NTEy
N2E3MDY3ZmNhOWFhNGVjMjJjMDQ4NTg5ZTU1NS4uZmU2NmVjYjc3NzcyMjEzODk4OWUzMjNiNzcx
NjQyODcxMjRmMWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjIx
MywxNCArMjIxMywxNSBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICB2aWV3LT5kaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3Jhcmls
eUZvckludGVyYWN0aW9uKCk7Ci0gICAgUmVmPE1vdXNlRXZlbnQ+IG1lID0gTW91c2VFdmVudDo6
Y3JlYXRlKGV2ZW50VHlwZSwKLSAgICAgICAgRXZlbnQ6OkNhbkJ1YmJsZTo6WWVzLCBFdmVudDo6
SXNDYW5jZWxhYmxlOjpZZXMsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3Rvbmlj
VGltZSgpLCAmbV9mcmFtZS53aW5kb3dQcm94eSgpLAotICAgICAgICAwLCBldmVudC5nbG9iYWxQ
b3NpdGlvbigpLngoKSwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9u
KCkueCgpLCBldmVudC5wb3NpdGlvbigpLnkoKSwKKyAgICAvLyBGSVhNRTogVXNlIE1vdXNlRXZl
bnQ6OmNyZWF0ZSB3aGljaCB0YWtlcyBQbGF0Zm9ybU1vdXNlRXZlbnQuCisgICAgUmVmPE1vdXNl
RXZlbnQ+IG1lID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgRXZlbnQ6OkNhbkJ1YmJs
ZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJv
eGltYXRlTW9ub3RvbmljVGltZSgpLCAmbV9mcmFtZS53aW5kb3dQcm94eSgpLCAwLAorICAgICAg
ICBldmVudC5nbG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpLAogI2lmIEVOQUJMRShQ
T0lOVEVSX0xPQ0spCi0gICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50Lm1v
dmVtZW50RGVsdGEoKS55KCksCisgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKSwKKyNlbHNl
CisgICAgICAgIHsgfSwKICNlbmRpZgotICAgICAgICBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFs
dEtleSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCksCi0gICAgICAgIDAsIDAs
IG51bGxwdHIsIGV2ZW50LmZvcmNlKCksIE5vVGFwLCAmZGF0YVRyYW5zZmVyKTsKKyAgICAgICAg
ZXZlbnQubW9kaWZpZXJzKCksIDAsIDAsIG51bGxwdHIsIGV2ZW50LmZvcmNlKCksIE5vVGFwLCAm
ZGF0YVRyYW5zZmVyKTsKIAogICAgIGRyYWdUYXJnZXQuZGlzcGF0Y2hFdmVudChtZSk7CiAgICAg
cmV0dXJuIG1lLT5kZWZhdWx0UHJldmVudGVkKCk7CkBAIC00MjIyLDEwICs0MjIzLDggQEAgYm9v
bCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50
JiBldmVudCkKICAgICAgICAgICAgIFJlZlB0cjxUb3VjaExpc3Q+IHRhcmdldFRvdWNoZXMoaXNU
b3VjaENhbmNlbEV2ZW50ID8gZW1wdHlMaXN0IDogdG91Y2hlc0J5VGFyZ2V0LmdldCh0YXJnZXQu
Z2V0KCkpKTsKICAgICAgICAgICAgIEFTU0VSVCh0YXJnZXRUb3VjaGVzKTsKIAotICAgICAgICAg
ICAgUmVmPFRvdWNoRXZlbnQ+IHRvdWNoRXZlbnQgPQotICAgICAgICAgICAgICAgIFRvdWNoRXZl
bnQ6OmNyZWF0ZShlZmZlY3RpdmVUb3VjaGVzLmdldCgpLCB0YXJnZXRUb3VjaGVzLmdldCgpLCBj
aGFuZ2VkVG91Y2hlc1tzdGF0ZV0ubV90b3VjaGVzLmdldCgpLAotICAgICAgICAgICAgICAgICAg
ICBzdGF0ZU5hbWUsIGRvd25jYXN0PE5vZGU+KCp0YXJnZXQpLmRvY3VtZW50KCkud2luZG93UHJv
eHkoKSwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgZXZlbnQuY3RybEtleSgpLCBl
dmVudC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpKTsKKyAgICAg
ICAgICAgIFJlZjxUb3VjaEV2ZW50PiB0b3VjaEV2ZW50ID0gVG91Y2hFdmVudDo6Y3JlYXRlKGVm
ZmVjdGl2ZVRvdWNoZXMuZ2V0KCksIHRhcmdldFRvdWNoZXMuZ2V0KCksIGNoYW5nZWRUb3VjaGVz
W3N0YXRlXS5tX3RvdWNoZXMuZ2V0KCksCisgICAgICAgICAgICAgICAgc3RhdGVOYW1lLCBkb3du
Y2FzdDxOb2RlPigqdGFyZ2V0KS5kb2N1bWVudCgpLndpbmRvd1Byb3h5KCksIHsgfSwgZXZlbnQu
bW9kaWZpZXJzKCkpOwogICAgICAgICAgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KHRvdWNoRXZl
bnQpOwogICAgICAgICAgICAgc3dhbGxvd2VkRXZlbnQgPSBzd2FsbG93ZWRFdmVudCB8fCB0b3Vj
aEV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCkgfHwgdG91Y2hFdmVudC0+ZGVmYXVsdEhhbmRsZWQo
KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4
IDYzNTM5MjUyMGRiYzE0ZGIxMTQ0NjdiNGM1MGQxOGM2MWE3NjJiOTguLjgxNWEzYzkzYmFkMGYz
YTFjNmVlZjFkMzU0OWQ1Y2IxMjNiODdjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50LmgKQEAgLTcwLDEyICs3MCwxNSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9Owog
Ci0gICAgZW51bSBjbGFzcyBNb2RpZmllciB7CisgICAgZW51bSBjbGFzcyBNb2RpZmllciA6IHVp
bnQ4X3QgewogICAgICAgICBBbHRLZXkgICAgICA9IDEgPDwgMCwKICAgICAgICAgQ3RybEtleSAg
ICAgPSAxIDw8IDEsCiAgICAgICAgIE1ldGFLZXkgICAgID0gMSA8PCAyLAogICAgICAgICBTaGlm
dEtleSAgICA9IDEgPDwgMywKICAgICAgICAgQ2Fwc0xvY2tLZXkgPSAxIDw8IDQsCisKKyAgICAg
ICAgLy8gTmV2ZXIgdXNlZCBpbiBuYXRpdmUgcGxhdGZvcm1zIGJ1dCBhZGRlZCBmb3IgaW5pdEV2
ZW50CisgICAgICAgIEFsdEdyYXBoS2V5ID0gMSA8PCA1LAogICAgIH07CiAKICAgICBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUeXBlPihtX3R5cGUpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5o
CmluZGV4IGUyYWI0MDVmNDBjMTY1NjAwYWEwNTM1MDAyZTI3NjRhMjUyOTQwOWEuLjJmMThmOTU5
MzkyOGZlOTNmZTA3MzVjMjQ1Y2E2N2VkNjg4NTk5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCkBAIC01MSw3ICs1
MSw4IEBAIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNF
dmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBrZXlGb3JLZXlFdmVudChOU0V2ZW50ICop
OwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvZGVGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VC
Q09SRV9FWFBPUlQgV2FsbFRpbWUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCAqKTsK
LSAgICAKKworV0VCQ09SRV9FWFBPUlQgT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVy
PiBtb2RpZmllcnNGb3JFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRX
aGVlbEV2ZW50RGVsdGFzKE5TRXZlbnQgKiwgZmxvYXQmIGRlbHRhWCwgZmxvYXQmIGRlbHRhWSwg
Qk9PTCYgY29udGludW91cyk7CiBXRUJDT1JFX0VYUE9SVCBVSW50OCBrZXlDaGFyRm9yRXZlbnQo
TlNFdmVudCAqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDcwODFlMTI0NDI3ZWUzZDZkZTQ5MTkwNzM2
NjA4NzM4OWY5OTQ4MzguLjU5ODU0NzdkOWUwNTQ4OGEyOTA0MGUwYzI0MzU5NGE5NDk5N2I5NzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0KQEAgLTY2MSw3ICs2NjEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNL
ZXlVcEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGlj
IGlubGluZSBPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyc0ZvckV2
ZW50KE5TRXZlbnQgKmV2ZW50KQorT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBt
b2RpZmllcnNGb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBPcHRpb25TZXQ8UGxhdGZv
cm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IDBmMzc5NjE4ZjFmYzk0YmYzODVjZjNmZDg0ZDVhOWJkNjBhYTI4NmMuLmVm
YTZhYTc1ZTY0MzFiMjI4YmI1ZDdjNzQ1Nzg5M2VhNmU1NmVmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTQyOTUsNiArNDI5NSw5IEBAIFZlY3RvcjxTdHJpbmc+IElu
dGVybmFsczo6YWNjZXNzS2V5TW9kaWZpZXJzKCkgY29uc3QKICAgICAgICAgY2FzZSBQbGF0Zm9y
bUV2ZW50OjpNb2RpZmllcjo6Q2Fwc0xvY2tLZXk6CiAgICAgICAgICAgICBhY2Nlc3NLZXlNb2Rp
ZmllclN0cmluZ3MuYXBwZW5kKCJjYXBzTG9ja0tleSJfcyk7CiAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0R3JhcGhLZXk6CisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gQWx0R3JhcGggaXMgb25seSBmb3IgRE9N
IEFQSS4KKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDE3YTAwNjQ5NzE3YjEw
NWVkMTU0NGJiN2ZhNDM0NjMxOTk3MmZhNTcuLmM4ZGM0NzYwNWUzMmJiNGI1ZGRmNDljNTc1NThl
YjY1MjQ1NzhkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC0xMzM2LDEyICsxMzM2LDEwIEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVUb1BE
RkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50IGRvCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGludCBzaW5nbGVDbGljayA9IDE7CisgICAgLy8g
RklYTUU6IFNldCBtb2RpZmllciBrZXlzLgorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9i
YWJseSBzZXQgSXNTaW11bGF0ZWQ6Olllcy4KICAgICBSZWZQdHI8TW91c2VFdmVudD4gbW91c2VF
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsCi0gICAgICAgIE1vbm90
b25pY1RpbWU6Om5vdygpLCBudWxscHRyLCBzaW5nbGVDbGljaywgc2NyZWVuUG9pbnQueCgpLCBz
Y3JlZW5Qb2ludC55KCksIGRvY3VtZW50UG9pbnQueCgpLCBkb2N1bWVudFBvaW50LnkoKSwKLSNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQotICAgICAgICAwLCAwLAotI2VuZGlmCi0gICAgICAgIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCBudWxscHRyLCAwLCBXZWJDb3JlOjpOb1Rh
cCwgbnVsbHB0cik7CisgICAgICAgIE1vbm90b25pY1RpbWU6Om5vdygpLCBudWxscHRyLCBzaW5n
bGVDbGljaywgc2NyZWVuUG9pbnQsIGRvY3VtZW50UG9pbnQsIHsgfSwgeyB9LCAwLCAwLCBudWxs
cHRyLCAwLCBXZWJDb3JlOjpOb1RhcCwgbnVsbHB0cik7CiAKICAgICBtYWluRnJhbWUtPmxvYWRl
cigpLnVybFNlbGVjdGVkKG1haW5GcmFtZURvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpLCBlbXB0
eVN0cmluZygpLCBtb3VzZUV2ZW50LmdldCgpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok1heWJlU2VuZFJlZmVycmVyLCBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVy
Lm1tCmluZGV4IDYzMzJhODA3ZTQ4ZmU0OWYxYjhhOTE5NTdiNmQ0MmJhZmIxYTg3NGIuLjRhZGYy
ZjcyOGE1ZDgyZmZjYmVmNjAxMTJhOTAxNTcxNzg2N2Y3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tCkBA
IC00NzksMTEgKzQ3OSw4IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBQQUdFX0hFSUdIVF9JTlNFVCA9
IDQuMGYgKiAyLjBmOwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDb25zdHJ1Y3QgYW4gZXZl
bnQgdG8gc2ltdWxhdGUgYSBjbGljay4KLSAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91c2VF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpZ
ZXMsIEV2ZW50OjpJc0NhbmNlbGFibGU6OlllcywgTW9ub3RvbmljVGltZTo6bm93KCksIDAsIDEs
IDAsIDAsIDAsIDAsCi0jaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAgMCwgMCwKLSNl
bmRpZgotICAgICAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgMCwgbnVsbHB0ciwg
MCwgMCwgbnVsbHB0ciwgdHJ1ZSk7CisgICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IE1vdXNlRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6WWVz
LCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsIE1vbm90b25pY1RpbWU6Om5vdygpLCBudWxscHRy
LCAxLAorICAgICAgICB7IH0sIHsgfSwgeyB9LCB7IH0sIDAsIDAsIG51bGxwdHIsIDAsIDAsIG51
bGxwdHIsIE1vdXNlRXZlbnQ6OklzU2ltdWxhdGVkOjpZZXMpOwogCiAgICAgLy8gQ2FsbCB0byB0
aGUgZnJhbWUgbG9hZGVyIGJlY2F1c2UgdGhpcyBpcyB3aGVyZSBvdXIgc2VjdXJpdHkgY2hlY2tz
IGFyZSBtYWRlLgogICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUoW19kYXRhU291cmNlIHdlYkZyYW1l
XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5k
ZXggY2ViOTM5MGM2YWYwMGZkOGM4YzYzY2I1NGNjODgwOGIxMzhkNGEwZC4uM2UxMmRmYmE3ZGE3
NDFhZTNhODM3ZDRmMDJhMzBhNGFiYTcxOWRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQpAQCAtMTAzMCwxNSArMTAzMCw5IEBAIHN0YXRpYyBC
T09MIGlzRnJhbWVJblJhbmdlKFdlYkZyYW1lICpmcmFtZSwgRE9NUmFuZ2UgKnJhbmdlKQogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgaWYgKGJ1dHRvbiAhPSBub0J1dHRvbikgewotICAgICAg
ICBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgRXZl
bnQ6OkNhbkJ1YmJsZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsIE1vbm90b25pY1Rp
bWU6Om5vdygpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKLSNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQotICAgICAgICAgICAgMCwgMCwKLSNlbmRpZgotICAgICAgICAgICAg
W25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCwKLSAg
ICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09w
dGlvbiwKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlm
aWVyRmxhZ1NoaWZ0LAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2
ZW50TW9kaWZpZXJGbGFnQ29tbWFuZCwKLSAgICAgICAgICAgIGJ1dHRvbiwgW05TRXZlbnQgcHJl
c3NlZE1vdXNlQnV0dG9uc10sIG51bGxwdHIsIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgMCwgbnVs
bHB0ciwgdHJ1ZSk7CisgICAgICAgIC8vIEZJWE1FOiBVc2UgY3JlYXRlUGxhdGZvcm1Nb3VzZUV2
ZW50IGluc3RlYWQuCisgICAgICAgIGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5jbGlja0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpZZXMsIEV2ZW50OjpJc0NhbmNlbGFi
bGU6OlllcywgTW9ub3RvbmljVGltZTo6bm93KCksIG51bGxwdHIsIFtuc0V2ZW50IGNsaWNrQ291
bnRdLCB7IH0sIHsgfSwgeyB9LAorICAgICAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQobnNFdmVu
dCksIGJ1dHRvbiwgW05TRXZlbnQgcHJlc3NlZE1vdXNlQnV0dG9uc10sIG51bGxwdHIsIFdlYkNv
cmU6OkZvcmNlQXRDbGljaywgMCwgbnVsbHB0ciwgTW91c2VFdmVudDo6SXNTaW11bGF0ZWQ6Olll
cyk7CiAgICAgfQogCiAgICAgLy8gQ2FsbCB0byB0aGUgZnJhbWUgbG9hZGVyIGJlY2F1c2UgdGhp
cyBpcyB3aGVyZSBvdXIgc2VjdXJpdHkgY2hlY2tzIGFyZSBtYWRlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347751</attachid>
            <date>2018-08-21 19:06:50 -0700</date>
            <delta_ts>2018-08-21 19:07:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-188777-20180821190649.patch</filename>
            <type>text/plain</type>
            <size>49058</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhjOGI2MGQ3MGI5NTg2
Nzc4NTI3YzUzYmZiODc3ZmRiYzBlMTRlNi4uNjY3ZTRkZjBjNTI4NmE5OTY1NTlhYzU4MGMwYjkx
NzNlZjNjOGIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE4LTA4LTIxICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlcGxhY2UgYm9vbGVhbnMg
Zm9yIG1vZGlmaWVyIGtleXMgaW4gVUlFdmVudFdpdGhLZXlTdGF0ZSB3aXRoIE9wdGlvblNldDxN
b2RpZmllcj4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4ODc3NworCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBS
ZXBsYWNlZCBib29sZWFuIGFyZ3VtZW50cyBhbmQgaW5zdGFuY2UgdmFyaWFibGVzIGZvciBtb2Rp
ZmllciBrZXlzIChjdHJsLCBhbHQsIHNoaWZ0LCBhbmQgbWV0YSBrZXlzKSBpbgorICAgICAgICBV
SUV2ZW50V2l0aEtleVN0YXRlIHdpdGggT3B0aW9uU2V0PE1vZGlmaWVyPiBhbmQgaXNTaW11bGF0
ZWQgYm9vbGVhbiBpbiBNb3VzZVJlbGF0ZWRFdmVudCB3aXRoIElzU2ltdWxhdGVkCisgICAgICAg
IGVudW0gY2xhc3MuCisKKyAgICAgICAgQWxzbyBtYWRlIG1vdmVtZW50RGVsdGEgYWx3YXlzIGNv
bXBpbGVkIGluc3RlYWQgb2Ygb25seSB3aGVuIEVOQUJMRShQT0lOVEVSX0xPQ0spIHRvIHNpbXBs
aWZ5IHRoZSBjb2RlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSB0aGVyZSBzaG91bGQg
YmUgbm8gb2JzZXJ2YWJsZSBiZWhhdmlvcmFsIGNoYW5nZS4KKworICAgICAgICAqIGRvbS9FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3BhdGNoTW91c2VFdmVudCk6
CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5
Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpLZXlib2FyZEV2
ZW50Ojppbml0S2V5Ym9hcmRFdmVudCk6IENhbGwgc2V0TW9kaWZpZXJLZXlzLgorICAgICAgICAq
IGRvbS9Nb3VzZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmluaXRNb3VzZUV2ZW50KTogRGl0dG8uCisgICAgICAgICog
ZG9tL01vdXNlRXZlbnQuaDoKKyAgICAgICAgKiBkb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50KTog
QWRkZWQgYSBuZXcgdmFyaWFudCB3aGljaCB0YWtlcyB0aGUgbWluaW11bSBhcmd1bWVudHMKKyAg
ICAgICAgZm9yIGdlc3R1cmUgJiB0b3VjaCBldmVudHMuIEluIHRob3NlIGV2ZW50cywgZGV0YWls
IGlzIGFsd2F5cyBzZXQgdG8gMCwgbW92ZW1lbnREZWx0YSBpcyBhbHdheXMgc2V0IHRvIDAsMCwK
KyAgICAgICAgYW5kIHRoZXkgYXJlIG5ldmVyIHNpbXVsYXRlZC4KKyAgICAgICAgKiBkb20vTW91
c2VSZWxhdGVkRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjpJ
c1NpbXVsYXRlZCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9TaW11bGF0ZWRDbGljay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW11bGF0ZWRNb3VzZUV2ZW50OjpTaW11bGF0ZWRNb3VzZUV2ZW50
KTogR2V0IE9wdGlvblNldDxNb2RpZmllcj4gb3V0IG9mIHRoZSB1bmRlcmx5aW5nIGV2ZW50Cisg
ICAgICAgIGluc3RlYWQgb2YgbWFudWFsbHkgc2V0dGluZyBlYWNoIGtleSBzdGF0ZS4gVGhpcyBj
b2RlIG5vdyBwcmVzZXJ2ZXMgdGhlIHN0YXRlIG9mIGNhcHMgbG9jayBhbmQgYWx0LWdyYXBoCisg
ICAgICAgIGtleXMgYnV0IHRoaXMgaXMgbm90IG9ic2VydmFibGUgYmVjYXVzZSB3ZSBoYXZlIHll
dCB0byBpbXBsZW1lbnQgZ2V0TW9kaWZpZXJTdGF0ZSBvbiBNb3VzZUV2ZW50LgorICAgICAgICAo
V2ViQ29yZTo6U2ltdWxhdGVkTW91c2VFdmVudDo6bW9kaWZpZXJzRnJvbVVuZGVybHlpbmdFdmVu
dCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9Ub3VjaEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRvdWNoRXZlbnQ6OlRvdWNoRXZlbnQpOgorICAgICAgICAqIGRvbS9Ub3VjaEV2ZW50Lmg6
CisgICAgICAgICogZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlVJRXZlbnRXaXRoS2V5U3RhdGU6Ok1vZGlmaWVyKTogQWxpYXMgdG8gUGxhdGZvcm1FdmVudDo6
TW9kaWZpZXIuCisgICAgICAgIChXZWJDb3JlOjpVSUV2ZW50V2l0aEtleVN0YXRlOjpjdHJsS2V5
IGNvbnN0KTogVXBkYXRlZCB0byB1c2UgbV9tb2RpZmllcnMuCisgICAgICAgIChXZWJDb3JlOjpV
SUV2ZW50V2l0aEtleVN0YXRlOjpzaGlmdEtleSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6VUlFdmVudFdpdGhLZXlTdGF0ZTo6YWx0S2V5IGNvbnN0KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpVSUV2ZW50V2l0aEtleVN0YXRlOjptZXRhS2V5IGNvbnN0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpVSUV2ZW50V2l0aEtleVN0YXRlOjphbHRHcmFwaEtleSBjb25zdCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VUlFdmVudFdpdGhLZXlTdGF0ZTo6Y2Fwc0xvY2tL
ZXkgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlVJRXZlbnRXaXRoS2V5U3RhdGU6
Om1vZGlmaWVyS2V5cyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VUlFdmVudFdpdGhLZXlT
dGF0ZTo6VUlFdmVudFdpdGhLZXlTdGF0ZSk6IE5vdyB0YWtlcyBPcHRpb25TZXQ8TW9kaWZpZXI+
LgorICAgICAgICAoV2ViQ29yZTo6VUlFdmVudFdpdGhLZXlTdGF0ZTo6c2V0TW9kaWZpZXJLZXlz
KTogQWRkZWQuIFVzZWQgYnkgaW5pdCpFdmVudCBmdW5jdGlvbnMgaW4gc3ViY2xhc3Nlcy4gTm90
ZSB0aGF0CisgICAgICAgIHRoZXNlIGZ1bmN0aW9ucyBwcmVzZXZlIHRoZSBzdGF0ZXMgb2YgYWx0
LWdyYXBoIGFuZCBjYXBzIGxvY2sga2V5cyB0byBtYXRjaCB0aGUgZXhpc3RpbmcgYmVoYXZpb3Jz
IGluIHRoaXMKKyAgICAgICAgY2xlYW51cCBwYXRjaCBidXQgdGhleSBkb24ndCBtYXRjaCBiZWhh
dmlvcnMgb2YgQ2hyb21lIG9yIEZpcmVmb3guCisgICAgICAgIChXZWJDb3JlOjpVSUV2ZW50V2l0
aEtleVN0YXRlOjptb2RpZmllcnNGcm9tSW5pdGlhbGl6ZXIpOiBBZGRlZC4KKyAgICAgICAgKiBk
b20vV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVlbEV2
ZW50KTogU2ltdWxhdGVkOjpObyBjb3JyZXNwb25kcyB0byB0aGUgbGFzdCBib29sZWFuIGJlaW5n
IGZhbHNlLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcik6
IEFkZGVkIEFsdEdyYXBoS2V5LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50
RmFjdG9yeU1hYy5oOgorICAgICAgICAoV2ViQ29yZTo6bW9kaWZpZXJzRm9yRXZlbnQpOiBFeHBv
cnRlZCB0byBiZSB1c2VkIGluIFtXZWJQREZWaWV3IFBERlZpZXdXaWxsQ2xpY2tPbkxpbms6d2l0
aFVSTDpdLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Om1vZGlmaWVyc0ZvckV2ZW50KToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmFjY2Vzc0tl
eU1vZGlmaWVycyBjb25zdCk6CisKIDIwMTgtMDgtMjAgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNh
dGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDTWFrZV0gU3luYyB1bmlmaWVkIGJ1aWxk
IHdpdGggQ29jb2EgcG9ydHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTAwZjEyY2U2MDQ3MzFjMzllZmRmMjdjOWQx
NGEwNTFjZTg4YmU0Mi4uZjAxMzE3ZmQ3OTZiNjYxOWNjY2EwNTdiYjY1Yzg1NjhkZTBmYmNkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wOC0yMSAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXBsYWNlIGJvb2xlYW5zIGZvciBtb2RpZmllciBr
ZXlzIGluIFVJRXZlbnRXaXRoS2V5U3RhdGUgd2l0aCBPcHRpb25TZXQ8TW9kaWZpZXI+CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg3NzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkZWQgdHdvIEZJWE1F
cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6bmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2spOgor
CiAyMDE4LTA4LTIwICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4K
IAogICAgICAgICBbQ01ha2VdIFN5bmMgdW5pZmllZCBidWlsZCB3aXRoIENvY29hIHBvcnRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggMmZlN2ZlOWZiZGQwYmRhM2ViNmUzOTcxZDFj
MjQzNDA2NzM2ZmVmOC4uODA0MzIxOWMwZjM1YTk0MDRkZDRiOTBlYmMxZjMwMjgxN2IxYzA0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTA4LTIx
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlcGxhY2UgYm9v
bGVhbnMgZm9yIG1vZGlmaWVyIGtleXMgaW4gVUlFdmVudFdpdGhLZXlTdGF0ZSB3aXRoIE9wdGlv
blNldDxNb2RpZmllcj4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4ODc3NworCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAg
ICAgICBDcmVhdGUgTW91c2VFdmVudDo6Y3JlYXRlIHdpdGggSXNTaW11bGF0ZWQgc2V0IHRvIFll
czsgY29ycmVzcG9kaW5nIHRvIHRoZSBsYXN0IGFyZ3VtZW50CisgICAgICAgIGJlaW5nICJ0cnVl
IiBiZWZvcmUgdGhlIGNvZGUgY2hhbmdlLgorCisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3
UGxhY2Vob2xkZXIubW06CisgICAgICAgICgtW1dlYlBERlZpZXdQbGFjZWhvbGRlciBzaW11bGF0
ZUNsaWNrT25MaW5rVG9VUkw6XSk6CisKIDIwMTgtMDgtMTYgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVwbGFjZSBjYW5CdWJibGUgYW5kIGNhbmNlbGFibGUg
Ym9vbGVhbnMgaW4gRXZlbnQgYnkgZW51bSBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggOTg1ODE2NjFiYTQwOTk0OTMyYWFiMGQ3N2IwYzRhMjc0YTk3ZjZjZC4uZDQ0NGIw
NDMwNWQzYWQ1Y2VmOTBjMzZmMTYzYzY4MmFiYmE1YjA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA4LTIxICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlcGxhY2UgYm9vbGVhbnMgZm9yIG1vZGlmaWVyIGtl
eXMgaW4gVUlFdmVudFdpdGhLZXlTdGF0ZSB3aXRoIE9wdGlvblNldDxNb2RpZmllcj4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODc3NworCisgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBDcmVhdGUgTW91c2VFdmVu
dDo6Y3JlYXRlIHdpdGggSXNTaW11bGF0ZWQgc2V0IHRvIFllczsgY29ycmVzcG9kaW5nIHRvIHRo
ZSBsYXN0IGFyZ3VtZW50CisgICAgICAgIGJlaW5nICJ0cnVlIiBiZWZvcmUgdGhlIGNvZGUgY2hh
bmdlLgorCisgICAgICAgIFVzZSBtb2RpZmllcnNGb3JFdmVudCB0byBjb252ZXJ0IFtuc0V2ZW50
IG1vZGlmaWVyRmxhZ3NdIHRvIE9wdGlvblNldDxNb2RpZmllcj4uCisKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dlYlBERlZpZXcgUERGVmlld1dpbGxDbGlj
a09uTGluazp3aXRoVVJMOl0pOgorCiAyMDE4LTA4LTE3ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIHNvbWUgcGx1bWJpbmcgZm9yIHNh
ZmUgYnJvd3NpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBjM2JhOGE3ZTVjOTliNmYxMjY3
ODJjYjdjMjViNWY1N2ViY2VhZTllLi5kOWNiZjM4MjFmN2Y5YjdmNmQ2MzljZjhmZTUwYTAyNTZl
ODVkMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yOTAsMTIgKzI5MCwxMiBAQCBib29s
IEVsZW1lbnQ6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBs
YXRmb3JtRXZlbnQsIGNvbnN0CiAgICAgICAgIC8vIFNwZWNpYWwgY2FzZTogSWYgaXQncyBhIGRv
dWJsZSBjbGljayBldmVudCwgd2UgYWxzbyBzZW5kIHRoZSBkYmxjbGljayBldmVudC4gVGhpcyBp
cyBub3QgcGFydAogICAgICAgICAvLyBvZiB0aGUgRE9NIHNwZWNzLCBidXQgaXMgdXNlZCBmb3Ig
Y29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvbmRibGNsaWNrPSIiIGF0dHJpYnV0ZS4gVGhpcyBpcyB0
cmVhdGVkCiAgICAgICAgIC8vIGFzIGEgc2VwYXJhdGUgZXZlbnQgaW4gb3RoZXIgRE9NLWNvbXBs
aWFudCBicm93c2VycyBsaWtlIEZpcmVmb3gsIGFuZCBzbyB3ZSBkbyB0aGUgc2FtZS4KKyAgICAg
ICAgLy8gRklYTUU6IElzIGl0IG9rYXkgdGhhdCBtb3VzZUV2ZW50IG1heSBoYXZlIGJlZW4gbXV0
YXRlZCBieSBzY3JpcHRzIHZpYSBpbml0TW91c2VFdmVudCBpbiBkaXNwYXRjaEV2ZW50IGFib3Zl
PwogICAgICAgICBSZWY8TW91c2VFdmVudD4gZG91YmxlQ2xpY2tFdmVudCA9IE1vdXNlRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuZGJsY2xpY2tFdmVudCwKICAgICAgICAgICAgIG1vdXNlRXZl
bnQtPmJ1YmJsZXMoKSA/IEV2ZW50OjpDYW5CdWJibGU6OlllcyA6IEV2ZW50OjpDYW5CdWJibGU6
Ok5vLCBtb3VzZUV2ZW50LT5jYW5jZWxhYmxlKCkgPyBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMg
OiBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywKICAgICAgICAgICAgIG1vdXNlRXZlbnQtPnZpZXco
KSwgbW91c2VFdmVudC0+ZGV0YWlsKCksCiAgICAgICAgICAgICBtb3VzZUV2ZW50LT5zY3JlZW5Y
KCksIG1vdXNlRXZlbnQtPnNjcmVlblkoKSwgbW91c2VFdmVudC0+Y2xpZW50WCgpLCBtb3VzZUV2
ZW50LT5jbGllbnRZKCksCi0gICAgICAgICAgICBtb3VzZUV2ZW50LT5jdHJsS2V5KCksIG1vdXNl
RXZlbnQtPmFsdEtleSgpLCBtb3VzZUV2ZW50LT5zaGlmdEtleSgpLCBtb3VzZUV2ZW50LT5tZXRh
S2V5KCksCi0gICAgICAgICAgICBtb3VzZUV2ZW50LT5idXR0b24oKSwgbW91c2VFdmVudC0+YnV0
dG9ucygpLCBtb3VzZUV2ZW50LT5zeW50aGV0aWNDbGlja1R5cGUoKSwgcmVsYXRlZFRhcmdldCk7
CisgICAgICAgICAgICBtb3VzZUV2ZW50LT5tb2RpZmllcktleXMoKSwgbW91c2VFdmVudC0+YnV0
dG9uKCksIG1vdXNlRXZlbnQtPmJ1dHRvbnMoKSwgbW91c2VFdmVudC0+c3ludGhldGljQ2xpY2tU
eXBlKCksIHJlbGF0ZWRUYXJnZXQpOwogCiAgICAgICAgIGlmIChtb3VzZUV2ZW50LT5kZWZhdWx0
SGFuZGxlZCgpKQogICAgICAgICAgICAgZG91YmxlQ2xpY2tFdmVudC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCBhZDRkY2U0NTc2YjQ4
ZTMzNzVmNTVhNWEwZDAzNTdiODhkMjAyYTBjLi4zYjVlOWM5ODQ5OTg4YWQyNTMzNjYxMWVhMzNl
MmE4ZDRlN2UzNTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCkBAIC05NSw4
ICs5NSw3IEBAIGlubGluZSBLZXlib2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KCkgPSBkZWZhdWx0
OwogCiBpbmxpbmUgS2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQmIGtleSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcpCiAgICAgOiBVSUV2
ZW50V2l0aEtleVN0YXRlKGV2ZW50VHlwZUZvcktleWJvYXJkRXZlbnRUeXBlKGtleS50eXBlKCkp
LCBDYW5CdWJibGU6OlllcywgSXNDYW5jZWxhYmxlOjpZZXMsCi0gICAgICAgIGtleS50aW1lc3Rh
bXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldy5jb3B5UmVmKCksIDAsIGtleS5j
dHJsS2V5KCksIGtleS5hbHRLZXkoKSwga2V5LnNoaWZ0S2V5KCksIGtleS5tZXRhS2V5KCksCi0g
ICAgICAgIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9k
aWZpZXI6OkNhcHNMb2NrS2V5KSkKKyAgICAgICAga2V5LnRpbWVzdGFtcCgpLmFwcHJveGltYXRl
TW9ub3RvbmljVGltZSgpLCB2aWV3LmNvcHlSZWYoKSwgMCwga2V5Lm1vZGlmaWVycygpKQogICAg
ICwgbV91bmRlcmx5aW5nUGxhdGZvcm1FdmVudChzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtS2V5
Ym9hcmRFdmVudD4oa2V5KSkKICNpZiBFTkFCTEUoS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkKICAg
ICAsIG1fa2V5KGtleS5rZXkoKSkKQEAgLTE2MCwxMSArMTU5LDggQEAgdm9pZCBLZXlib2FyZEV2
ZW50Ojppbml0S2V5Ym9hcmRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2Fu
QnViYmxlLAogCiAgICAgbV9rZXlJZGVudGlmaWVyID0ga2V5SWRlbnRpZmllcjsKICAgICBtX2xv
Y2F0aW9uID0gbG9jYXRpb247Ci0gICAgbV9jdHJsS2V5ID0gY3RybEtleTsKLSAgICBtX3NoaWZ0
S2V5ID0gc2hpZnRLZXk7Ci0gICAgbV9hbHRLZXkgPSBhbHRLZXk7Ci0gICAgbV9tZXRhS2V5ID0g
bWV0YUtleTsKLSAgICBtX2FsdEdyYXBoS2V5ID0gYWx0R3JhcGhLZXk7CisKKyAgICBzZXRNb2Rp
ZmllcktleXMoY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSwgYWx0R3JhcGhLZXkp
OwogCiAgICAgbV9jaGFyQ29kZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2lzQ29tcG9zaW5nID0g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKaW5kZXggYjI2N2RlMmJkMDhmNmVkNjQx
ZmY2ZTNmYjE1OWViZmI4ZTdhOWMwZS4uN2Y4NDc2NDQwZjI2MTQyNWFlODRiNjg1YWZhZjQzYWM5
OWRhNzA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtNTAsNDYgKzUwLDM3IEBA
IFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIFJlZlB0cjxXaW5kb3dQCiAgICAgYXV0byBpc0NhbmNlbGFibGUgPSBldmVudFR5
cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZl
ID8gSXNDYW5jZWxhYmxlOjpZZXMgOiBJc0NhbmNlbGFibGU6Ok5vOwogICAgIGF1dG8gY2FuQnVi
YmxlID0gIWlzTW91c2VFbnRlck9yTGVhdmUgPyBDYW5CdWJibGU6OlllcyA6IENhbkJ1YmJsZTo6
Tm87CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgY2FuQnViYmxl
LCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGlt
ZSgpLCBXVEZNb3ZlKHZpZXcpLAotICAgICAgICBkZXRhaWwsIGV2ZW50Lmdsb2JhbFBvc2l0aW9u
KCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnkoKSwgZXZlbnQucG9zaXRpb24oKS54KCks
IGV2ZW50LnBvc2l0aW9uKCkueSgpLAorICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94
aW1hdGVNb25vdG9uaWNUaW1lKCksIFdURk1vdmUodmlldyksIGRldGFpbCwKKyAgICAgICAgZXZl
bnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKSwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQotICAgICAgICBldmVudC5tb3ZlbWVudERlbHRhKCkueCgpLCBldmVudC5tb3ZlbWVu
dERlbHRhKCkueSgpLAorICAgICAgICBldmVudC5tb3ZlbWVudERlbHRhKCksCisjZWxzZQorICAg
ICAgICB7IH0sCiAjZW5kaWYKLSAgICAgICAgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXko
KSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpLCBldmVudC5idXR0b24oKSwgZXZl
bnQuYnV0dG9ucygpLAotICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3JjZSgpLCBldmVu
dC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CisgICAgICAgIGV2ZW50Lm1vZGlmaWVycygpLCBldmVu
dC5idXR0b24oKSwgZXZlbnQuYnV0dG9ucygpLCByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3JjZSgp
LCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBNb3Vz
ZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBDYW5CdWJibGUgY2FuQnVi
YmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIFJl
ZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNj
cmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0g
ICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKLSNlbmRpZgotICAgIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWduZWQgc2hv
cnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLCBFdmVudFRhcmdldCogcmVsYXRlZFRh
cmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIERh
dGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyLCBib29sIGlzU2ltdWxhdGVkKQorUmVmPE1vdXNlRXZl
bnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIENhbkJ1YmJs
ZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVz
dGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsCisgICAgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24s
IGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlm
aWVycywgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLAorICAg
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0
IHN5bnRoZXRpY0NsaWNrVHlwZSwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIsIElzU2ltdWxh
dGVkIGlzU2ltdWxhdGVkKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQo
dHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIFdURk1vdmUodmlldyksCi0g
ICAgICAgIGRldGFpbCwgeyBzY3JlZW5YLCBzY3JlZW5ZIH0sIHsgcGFnZVgsIHBhZ2VZIH0sCi0j
aWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAgeyBtb3ZlbWVudFgsIG1vdmVtZW50WSB9
LAotI2VuZGlmCi0gICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXksIGJ1
dHRvbiwgYnV0dG9ucywgcmVsYXRlZFRhcmdldCwgZm9yY2UsIHN5bnRoZXRpY0NsaWNrVHlwZSwg
ZGF0YVRyYW5zZmVyLCBpc1NpbXVsYXRlZCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1v
dXNlRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIFdURk1vdmUo
dmlldyksIGRldGFpbCwKKyAgICAgICAgc2NyZWVuTG9jYXRpb24sIHdpbmRvd0xvY2F0aW9uLCBt
b3ZlbWVudERlbHRhLCBtb2RpZmllcnMsIGJ1dHRvbiwgYnV0dG9ucywgcmVsYXRlZFRhcmdldCwg
Zm9yY2UsIHN5bnRoZXRpY0NsaWNrVHlwZSwgZGF0YVRyYW5zZmVyLCBpc1NpbXVsYXRlZCkpOwog
fQogCi1SZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJs
ZSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBp
bnQgc2NyZWVuWSwgaW50IGNsaWVudFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wg
YWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRv
biwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tU
eXBlLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCkKK1JlZjxNb3VzZUV2ZW50PiBNb3VzZUV2
ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENhbkJ1YmJsZSBjYW5C
dWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmll
dywgaW50IGRldGFpbCwKKyAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRY
LCBpbnQgY2xpZW50WSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIHVuc2lnbmVkIHNo
b3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywKKyAgICB1bnNpZ25lZCBzaG9ydCBz
eW50aGV0aWNDbGlja1R5cGUsIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGNhbmNl
bGFibGUsIFdURk1vdmUodmlldyksIGRldGFpbCwgeyBzY3JlZW5YLCBzY3JlZW5ZIH0sIHsgY2xp
ZW50WCwgY2xpZW50WSB9LCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBidXR0
b24sIGJ1dHRvbnMsIHN5bnRoZXRpY0NsaWNrVHlwZSwgcmVsYXRlZFRhcmdldCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGNhbmNl
bGFibGUsIFdURk1vdmUodmlldyksIGRldGFpbCwgeyBzY3JlZW5YLCBzY3JlZW5ZIH0sIHsgY2xp
ZW50WCwgY2xpZW50WSB9LCBtb2RpZmllcnMsIGJ1dHRvbiwgYnV0dG9ucywgc3ludGhldGljQ2xp
Y2tUeXBlLCByZWxhdGVkVGFyZ2V0KSk7CiB9CiAKIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoKSA9
IGRlZmF1bHQ7CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIENhbkJ1YmJsZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBN
b25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBk
ZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdp
bmRvd0xvY2F0aW9uLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAgIGNvbnN0IElu
dFBvaW50JiBtb3ZlbWVudERlbHRhLAotI2VuZGlmCi0gICAgICAgIGJvb2wgY3RybEtleSwgYm9v
bCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWduZWQgc2hvcnQgYnV0
dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCwg
ZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIERhdGFUcmFu
c2ZlciogZGF0YVRyYW5zZmVyLCBib29sIGlzU2ltdWxhdGVkKQotICAgIDogTW91c2VSZWxhdGVk
RXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIHRpbWVzdGFtcCwgV1RGTW92
ZSh2aWV3KSwgZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgd2luZG93TG9jYXRpb24sCi0jaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAgbW92ZW1lbnREZWx0YSwKLSNlbmRpZgotICAgICAg
ICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBpc1NpbXVsYXRlZCkKK01vdXNl
RXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENhbkJ1YmJs
ZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVz
dGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsCisgICAgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24s
IGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlm
aWVycywgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLAorICAg
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0LCBkb3VibGUgZm9yY2UsIHVuc2lnbmVkIHNob3J0
IHN5bnRoZXRpY0NsaWNrVHlwZSwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIsIElzU2ltdWxh
dGVkIGlzU2ltdWxhdGVkKQorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZlbnRUeXBlLCBjYW5C
dWJibGUsIGNhbmNlbGFibGUsIHRpbWVzdGFtcCwgV1RGTW92ZSh2aWV3KSwgZGV0YWlsLCBzY3Jl
ZW5Mb2NhdGlvbiwgd2luZG93TG9jYXRpb24sIG1vdmVtZW50RGVsdGEsIG1vZGlmaWVycywgaXNT
aW11bGF0ZWQpCiAgICAgLCBtX2J1dHRvbihidXR0b24gPT0gKHVuc2lnbmVkIHNob3J0KS0xID8g
MCA6IGJ1dHRvbikKICAgICAsIG1fYnV0dG9ucyhidXR0b25zKQogICAgICwgbV9zeW50aGV0aWND
bGlja1R5cGUoYnV0dG9uID09ICh1bnNpZ25lZCBzaG9ydCktMSA/IDAgOiBzeW50aGV0aWNDbGlj
a1R5cGUpCkBAIC0xMDAsMTIgKzkxLDkgQEAgTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgQ2FuQnViYmxlIGNhbkJ1YmJsZSwgSXNDYW4KIHsKIH0K
IAotTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
Q2FuQnViYmxlIGNhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlIGNhbmNlbGFibGUsIFJlZlB0cjxXaW5k
b3dQcm94eT4mJiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRp
b24sIGNvbnN0IEludFBvaW50JiBjbGllbnRMb2NhdGlvbiwgYm9vbCBjdHJsS2V5LCBib29sIGFs
dEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24s
IHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlw
ZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpCi0gICAgOiBNb3VzZVJlbGF0ZWRFdmVudChl
dmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZTo6bm93KCksIFdU
Rk1vdmUodmlldyksIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKLSNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQotICAgICAgICB7IH0sCi0jZW5kaWYKLSAgICAgICAgY3RybEtleSwgYWx0S2V5
LCBzaGlmdEtleSwgbWV0YUtleSwgZmFsc2UpCitNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFi
bGUgY2FuY2VsYWJsZSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsCisg
ICAgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgY2xpZW50
TG9jYXRpb24sIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCB1bnNpZ25lZCBzaG9ydCBi
dXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0Ns
aWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpCisgICAgOiBNb3VzZVJlbGF0ZWRF
dmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZTo6bm93
KCksIFdURk1vdmUodmlldyksIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwgeyB9LCBtb2Rp
ZmllcnMsIElzU2ltdWxhdGVkOjpObykKICAgICAsIG1fYnV0dG9uKGJ1dHRvbiA9PSAodW5zaWdu
ZWQgc2hvcnQpLTEgPyAwIDogYnV0dG9uKQogICAgICwgbV9idXR0b25zKGJ1dHRvbnMpCiAgICAg
LCBtX3N5bnRoZXRpY0NsaWNrVHlwZShidXR0b24gPT0gKHVuc2lnbmVkIHNob3J0KS0xID8gMCA6
IHN5bnRoZXRpY0NsaWNrVHlwZSkKQEAgLTEyNyw3ICsxMTUsOCBAQCBNb3VzZUV2ZW50OjpNb3Vz
ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBNb3VzZUV2ZW50SW5p
dCYgaW5pdAogCiBNb3VzZUV2ZW50Ojp+TW91c2VFdmVudCgpID0gZGVmYXVsdDsKIAotdm9pZCBN
b3VzZUV2ZW50Ojppbml0TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBp
bnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xp
ZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRh
S2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQor
dm9pZCBNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2
aWV3LCBpbnQgZGV0YWlsLAorICAgIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IGNsaWVu
dFgsIGludCBjbGllbnRZLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5
LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgRXZlbnRUYXJnZXQqIHJlbGF0
ZWRUYXJnZXQpCiB7CiAgICAgaWYgKGlzQmVpbmdEaXNwYXRjaGVkKCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTEzNSwxMCArMTI0LDcgQEAgdm9pZCBNb3VzZUV2ZW50Ojppbml0TW91c2VFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGMKICAgICBpbml0
VUlFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURk1vdmUodmlldyksIGRldGFp
bCk7CiAKICAgICBtX3NjcmVlbkxvY2F0aW9uID0gSW50UG9pbnQoc2NyZWVuWCwgc2NyZWVuWSk7
Ci0gICAgbV9jdHJsS2V5ID0gY3RybEtleTsKLSAgICBtX2FsdEtleSA9IGFsdEtleTsKLSAgICBt
X3NoaWZ0S2V5ID0gc2hpZnRLZXk7Ci0gICAgbV9tZXRhS2V5ID0gbWV0YUtleTsKKyAgICBzZXRN
b2RpZmllcktleXMoY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtleSk7CiAgICAgbV9i
dXR0b24gPSBidXR0b24gPT0gKHVuc2lnbmVkIHNob3J0KS0xID8gMCA6IGJ1dHRvbjsKICAgICBt
X3N5bnRoZXRpY0NsaWNrVHlwZSA9IDA7CiAgICAgbV9idXR0b25Eb3duID0gYnV0dG9uICE9ICh1
bnNpZ25lZCBzaG9ydCktMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCmluZGV4IGIwM2FhYmJiZTZm
NTVmMGRiMzM3NzNiNGFmZTVjN2U5NWM3OGQ5MmQuLjAyZDM1YzY3MzE5ZjQyMTg1YTliN2I3YmQ3
NzQyYjYwOTZlNjdmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAtMzQsMTggKzM0LDE0
IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6IHB1Ymxp
YyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBDYW5CdWJi
bGUsIElzQ2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsCi0gICAgICAgIFJlZlB0
cjxXaW5kb3dQcm94eT4mJiwgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBp
bnQgcGFnZVgsIGludCBwYWdlWSwKLSNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQotICAgICAgICBp
bnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAotI2VuZGlmCi0gICAgICAgIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgdW5zaWduZWQgc2hv
cnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLAotICAgICAgICBFdmVudFRhcmdldCog
cmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlj
a1R5cGUsIERhdGFUcmFuc2ZlciogPSBudWxscHRyLCBib29sIGlzU2ltdWxhdGVkID0gZmFsc2Up
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgQ2FuQnViYmxlLCBJc0NhbmNlbGFibGUsIE1vbm90b25pY1Rp
bWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYsIGludCBkZXRhaWwsCisgICAgICAg
IGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xv
Y2F0aW9uLCBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVy
PiwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBidXR0b25zLAorICAgICAg
ICBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCwgZG91YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9y
dCBzeW50aGV0aWNDbGlja1R5cGUsIERhdGFUcmFuc2ZlciogPSBudWxscHRyLCBJc1NpbXVsYXRl
ZCA9IElzU2ltdWxhdGVkOjpObyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1v
dXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmUHRyPFdp
bmRvd1Byb3h5PiYmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBpbnQgZGV0YWlsLCBOb2Rl
KiByZWxhdGVkVGFyZ2V0KTsKIAogICAgIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBDYW5CdWJibGUsIElzQ2FuY2VsYWJsZSwgUmVm
UHRyPFdpbmRvd1Byb3h5PiYmLAotICAgICAgICBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50
IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgYm9vbCBjdHJsS2V5LCBib29sIGFs
dEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LAorICAgICAgICBpbnQgZGV0YWlsLCBp
bnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBjbGllbnRYLCBpbnQgY2xpZW50WSwgT3B0aW9u
U2V0PE1vZGlmaWVyPiwKICAgICAgICAgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBz
aG9ydCBidXR0b25zLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIEV2ZW50VGFy
Z2V0KiByZWxhdGVkVGFyZ2V0KTsKIAogICAgIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRl
Rm9yQmluZGluZ3MoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE1vdXNlRXZlbnQpOyB9CkBAIC04
MCwxOCArNzYsMTMgQEAgcHVibGljOgogICAgIGludCB3aGljaCgpIGNvbnN0IGZpbmFsOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIENhbkJ1
YmJsZSwgSXNDYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdpbmRv
d1Byb3h5PiYmLAotICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9j
YXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKLSNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQotICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKLSNlbmRpZgot
ICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1l
dGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywKLSAg
ICAgICAgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQsIGRvdWJsZSBmb3JjZSwgdW5zaWduZWQg
c2hvcnQgc3ludGhldGljQ2xpY2tUeXBlLCBEYXRhVHJhbnNmZXIqLCBib29sIGlzU2ltdWxhdGVk
KTsKKyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQ2FuQnViYmxlLCBJ
c0NhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+
JiYsIGludCBkZXRhaWwsCisgICAgICAgIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwg
Y29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnRE
ZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgdW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25l
ZCBzaG9ydCBidXR0b25zLAorICAgICAgICBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCwgZG91
YmxlIGZvcmNlLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUsIERhdGFUcmFuc2Zl
ciosIElzU2ltdWxhdGVkKTsKIAogICAgIE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBDYW5CdWJibGUsIElzQ2FuY2VsYWJsZSwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLAogICAg
ICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IElu
dFBvaW50JiBjbGllbnRMb2NhdGlvbiwKLSAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtl
eSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LAotICAgICAgICB1bnNpZ25lZCBzaG9ydCBi
dXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0Ns
aWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpOworICAgICAgICBPcHRpb25TZXQ8
TW9kaWZpZXI+LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMs
IHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRU
YXJnZXQpOwogCiAgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0
IE1vdXNlRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJl
bGF0ZWRFdmVudC5jcHAKaW5kZXggYTMyMjdhNTRiYjQ1MmU4YzU5Yjk0ZjY5ZTYyNjYyYTdmZTZk
NzIyYS4uODkzY2MyOGQxODExNjQxMWRiZWY0YTQzZjgyZGI3ZjI2NTM3YjY2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMywyMCArMzMsMjQgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1Nb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENhbkJ1YmJsZSBjYW5CdWJibGUsIElz
Q2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgUmVmUHRyPFdp
bmRvd1Byb3h5PiYmIHZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2lu
dCYgd2luZG93TG9jYXRpb24sCi0jaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwK
LSNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBpc1NpbXVs
YXRlZCkKLSAgICA6IFVJRXZlbnRXaXRoS2V5U3RhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGNh
bmNlbGFibGUsIHRpbWVzdGFtcCwgV1RGTW92ZSh2aWV3KSwgZGV0YWlsLCBjdHJsS2V5LCBhbHRL
ZXksIHNoaWZ0S2V5LCBtZXRhS2V5LCBmYWxzZSwgZmFsc2UpCitNb3VzZVJlbGF0ZWRFdmVudDo6
TW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIENhbkJ1YmJs
ZSBjYW5CdWJibGUsIElzQ2FuY2VsYWJsZSBpc0NhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGlt
ZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywgaW50IGRldGFpbCwKKyAgICBjb25z
dCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlv
biwgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsIE9wdGlvblNldDxNb2RpZmllcj4gbW9k
aWZpZXJzLCBJc1NpbXVsYXRlZCBpc1NpbXVsYXRlZCkKKyAgICA6IFVJRXZlbnRXaXRoS2V5U3Rh
dGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgdGltZXN0YW1wLCBXVEZNb3Zl
KHZpZXcpLCBkZXRhaWwsIG1vZGlmaWVycykKICAgICAsIG1fc2NyZWVuTG9jYXRpb24oc2NyZWVu
TG9jYXRpb24pCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAsIG1fbW92ZW1lbnREZWx0
YShtb3ZlbWVudERlbHRhKQogI2VuZGlmCi0gICAgLCBtX2lzU2ltdWxhdGVkKGlzU2ltdWxhdGVk
KQorICAgICwgbV9pc1NpbXVsYXRlZChpc1NpbXVsYXRlZCA9PSBJc1NpbXVsYXRlZDo6WWVzKQor
eworI2lmICFFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIFVOVVNFRF9QQVJBTShtb3ZlbWVudERl
bHRhKTsKKyNlbmRpZgorICAgIGluaXQobV9pc1NpbXVsYXRlZCwgd2luZG93TG9jYXRpb24pOwor
fQorCitNb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBJc0NhbmNlbGFibGUgaXNDYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVz
dGFtcCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNvbnN0IEludFBvaW50JiBnbG9iYWxM
b2NhdGlvbiwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMpCisgICAgOiBNb3VzZVJlbGF0
ZWRFdmVudCh0eXBlLCBDYW5CdWJibGU6OlllcywgaXNDYW5jZWxhYmxlLCB0aW1lc3RhbXAsIFdU
Rk1vdmUodmlldyksIDAsIGdsb2JhbExvY2F0aW9uLCBnbG9iYWxMb2NhdGlvbiAvKiBDb252ZXJ0
ZWQgaW4gaW5pdCAqLywgeyB9LCBtb2RpZmllcnMsIElzU2ltdWxhdGVkOjpObykKIHsKLSAgICBp
bml0KGlzU2ltdWxhdGVkLCB3aW5kb3dMb2NhdGlvbik7CiB9CiAKIE1vdXNlUmVsYXRlZEV2ZW50
OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3Qg
TW91c2VSZWxhdGVkRXZlbnRJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKaW5kZXggZDhmMWZjZGYzZTExYjFl
MzhlZWJlYWU3YzYwZjRmODVlODhhNDk2Ni4uNzY2M2ExYTA2ZTgyZjY5NTlkNTU0MGI3NWY4ODlj
MjA4NjdmODFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKQEAgLTM4
LDYgKzM4LDggQEAgc3RydWN0IE1vdXNlUmVsYXRlZEV2ZW50SW5pdCA6IHB1YmxpYyBFdmVudE1v
ZGlmaWVySW5pdCB7CiAvLyBJbnRlcm5hbCBvbmx5OiBIZWxwZXIgY2xhc3MgZm9yIHdoYXQncyBj
b21tb24gYmV0d2VlbiBtb3VzZSBhbmQgd2hlZWwgZXZlbnRzLgogY2xhc3MgTW91c2VSZWxhdGVk
RXZlbnQgOiBwdWJsaWMgVUlFdmVudFdpdGhLZXlTdGF0ZSB7CiBwdWJsaWM6CisgICAgZW51bSBj
bGFzcyBJc1NpbXVsYXRlZCA6IHVpbnQ4X3QgeyBZZXMsIE5vIH07CisKICAgICAvLyBOb3RlIHRo
YXQgdGhlc2UgdmFsdWVzIGFyZSBhZGp1c3RlZCB0byBjb3VudGVyIHRoZSBlZmZlY3RzIG9mIHpv
b20sIHNvIHRoYXQgdmFsdWVzCiAgICAgLy8gZXhwb3NlZCB2aWEgRE9NIEFQSXMgYXJlIGludmFy
aWFudCB1bmRlciB6b29taW5nLgogICAgIGludCBzY3JlZW5YKCkgY29uc3QgeyByZXR1cm4gbV9z
Y3JlZW5Mb2NhdGlvbi54KCk7IH0KQEAgLTc0LDEyICs3Niw5IEBAIHB1YmxpYzoKIAogcHJvdGVj
dGVkOgogICAgIE1vdXNlUmVsYXRlZEV2ZW50KCkgPSBkZWZhdWx0OwotICAgIE1vdXNlUmVsYXRl
ZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgQ2FuQnViYmxlLCBJc0NhbmNlbGFibGUs
IE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYsCi0gICAgICAg
IGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9p
bnQmIHdpbmRvd0xvY2F0aW9uLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAgIGNv
bnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLAotI2VuZGlmCi0gICAgICAgIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBpc1NpbXVs
YXRlZCA9IGZhbHNlKTsKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IHR5cGUsIENhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lLCBSZWZQdHI8V2lu
ZG93UHJveHk+JiYsIGludCBkZXRhaWwsCisgICAgICAgIGNvbnN0IEludFBvaW50JiBzY3JlZW5M
b2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYg
bW92ZW1lbnREZWx0YSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIElzU2ltdWxhdGVk
ID0gSXNTaW11bGF0ZWQ6Ok5vKTsKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIElzQ2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSwgUmVmUHRyPFdpbmRvd1By
b3h5PiYmLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsTG9jYXRpb24sIE9wdGlvblNldDxNb2RpZmll
cj4pOwogICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29u
c3QgTW91c2VSZWxhdGVkRXZlbnRJbml0JiwgSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CiAK
ICAgICB2b2lkIGluaXRDb29yZGluYXRlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NpbXVsYXRlZENsaWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGlj
ay5jcHAKaW5kZXggYTUyYzFhNzgzODZjMmRmMjU3ZGFjZjI1OWEzNmVkYWRmNmJjZDc5MS4uZjUw
NmZhZjhkMTZiYzc0NDBlYTc0MGQ1ZGY4NzU1MTg3YmIyNGQ2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2ltdWxhdGVkQ2xpY2suY3BwCkBAIC00NCwyMSArNDQsMTIgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIFNpbXVsYXRlZE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBSZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWluZ0V2
ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRlZENsaWNrU291cmNlIHNvdXJjZSkKLSAgICAg
ICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6
WWVzLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQtPnRpbWVTdGFtcCgpIDogTW9u
b3RvbmljVGltZTo6bm93KCksIFdURk1vdmUodmlldyksIDAsIHsgfSwgeyB9LAotI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCi0gICAgICAgICAgICB7IH0sCi0jZW5kaWYKLSAgICAgICAgICAgIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCBudWxscHRyLCAwLCAwLCBudWxscHRyLCB0
cnVlKQorICAgICAgICA6IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCBDYW5CdWJibGU6OlllcywgSXND
YW5jZWxhYmxlOjpZZXMsIHVuZGVybHlpbmdFdmVudCA/IHVuZGVybHlpbmdFdmVudC0+dGltZVN0
YW1wKCkgOiBNb25vdG9uaWNUaW1lOjpub3coKSwgV1RGTW92ZSh2aWV3KSwgLyogZGV0YWlsICov
IDAsCisgICAgICAgICAgICB7IH0sIHsgfSwgeyB9LCBtb2RpZmllcnNGcm9tVW5kZXJseWluZ0V2
ZW50KHVuZGVybHlpbmdFdmVudCksIDAsIDAsIG51bGxwdHIsIDAsIDAsIG51bGxwdHIsIElzU2lt
dWxhdGVkOjpZZXMpCiAgICAgewogICAgICAgICBpZiAoc291cmNlID09IFNpbXVsYXRlZENsaWNr
U291cmNlOjpCaW5kaW5ncykKICAgICAgICAgICAgIHNldFVudHJ1c3RlZCgpOwogCi0gICAgICAg
IGlmIChVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0aEtl
eVN0YXRlKHVuZGVybHlpbmdFdmVudC5nZXQoKSkpIHsKLSAgICAgICAgICAgIG1fY3RybEtleSA9
IGtleVN0YXRlRXZlbnQtPmN0cmxLZXkoKTsKLSAgICAgICAgICAgIG1fYWx0S2V5ID0ga2V5U3Rh
dGVFdmVudC0+YWx0S2V5KCk7Ci0gICAgICAgICAgICBtX3NoaWZ0S2V5ID0ga2V5U3RhdGVFdmVu
dC0+c2hpZnRLZXkoKTsKLSAgICAgICAgICAgIG1fbWV0YUtleSA9IGtleVN0YXRlRXZlbnQtPm1l
dGFLZXkoKTsKLSAgICAgICAgfQogICAgICAgICBzZXRVbmRlcmx5aW5nRXZlbnQodW5kZXJseWlu
Z0V2ZW50LmdldCgpKTsKIAogICAgICAgICBpZiAoaXM8TW91c2VFdmVudD4odGhpcy0+dW5kZXJs
eWluZ0V2ZW50KCkpKSB7CkBAIC03NSw2ICs2NiwxMyBAQCBwcml2YXRlOgogICAgICAgICB9CiAg
ICAgfQogCisgICAgc3RhdGljIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzRnJvbVVuZGVy
bHlpbmdFdmVudChjb25zdCBSZWZQdHI8RXZlbnQ+JiB1bmRlcmx5aW5nRXZlbnQpCisgICAgewor
ICAgICAgICBVSUV2ZW50V2l0aEtleVN0YXRlKiBrZXlTdGF0ZUV2ZW50ID0gZmluZEV2ZW50V2l0
aEtleVN0YXRlKHVuZGVybHlpbmdFdmVudC5nZXQoKSk7CisgICAgICAgIGlmICgha2V5U3RhdGVF
dmVudCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBrZXlTdGF0ZUV2
ZW50LT5tb2RpZmllcktleXMoKTsKKyAgICB9CiB9OwogCiBzdGF0aWMgdm9pZCBzaW11bGF0ZU1v
dXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGVsZW1lbnQs
IEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrU291cmNlIHNvdXJjZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRleCAyOTJjODQ2NjhmNmEzY2RhOGM0M2NhNTU5MTgz
MjNiYzk4OTBjOTE1Li41MzI2N2U0NDIxYWEzMTZmMjdjMmUzMWE1NWI0ZTM5MjBjOGVmZjg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCkBAIC0zNywxMyArMzcsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KCkgPSBkZWZhdWx0OwogCiBUb3VjaEV2
ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3Vj
aGVzLCBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
Ci0gICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVu
WSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
c2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KHR5cGUsIENh
bkJ1YmJsZTo6WWVzLCBJc0NhbmNlbGFibGU6OlllcywgTW9ub3RvbmljVGltZTo6bm93KCksIFdU
Rk1vdmUodmlldyksIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVlblkpLAotICAgICAgICBJbnRQ
b2ludChwYWdlWCwgcGFnZVkpLAotI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgICAgIElu
dFBvaW50KDAsIDApLAotI2VuZGlmCi0gICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXks
IG1ldGFLZXkpCisgICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNvbnN0IEludFBvaW50
JiBnbG9iYWxMb2NhdGlvbiwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMpCisgICAgOiBN
b3VzZVJlbGF0ZWRFdmVudCh0eXBlLCBJc0NhbmNlbGFibGU6OlllcywgTW9ub3RvbmljVGltZTo6
bm93KCksIFdURk1vdmUodmlldyksIGdsb2JhbExvY2F0aW9uLCBtb2RpZmllcnMpCiAgICAgLCBt
X3RvdWNoZXModG91Y2hlcykKICAgICAsIG1fdGFyZ2V0VG91Y2hlcyh0YXJnZXRUb3VjaGVzKQog
ICAgICwgbV9jaGFuZ2VkVG91Y2hlcyhjaGFuZ2VkVG91Y2hlcykKQEAgLTc0LDEwICs2OSw3IEBA
IHZvaWQgVG91Y2hFdmVudDo6aW5pdFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3Vj
aExpc3QqIHRhcmdldFRvdWNoZXMsCiAgICAgbV90YXJnZXRUb3VjaGVzID0gdGFyZ2V0VG91Y2hl
czsKICAgICBtX2NoYW5nZWRUb3VjaGVzID0gY2hhbmdlZFRvdWNoZXM7CiAgICAgbV9zY3JlZW5M
b2NhdGlvbiA9IEludFBvaW50KHNjcmVlblgsIHNjcmVlblkpOwotICAgIG1fY3RybEtleSA9IGN0
cmxLZXk7Ci0gICAgbV9hbHRLZXkgPSBhbHRLZXk7Ci0gICAgbV9zaGlmdEtleSA9IHNoaWZ0S2V5
OwotICAgIG1fbWV0YUtleSA9IG1ldGFLZXk7CisgICAgc2V0TW9kaWZpZXJLZXlzKGN0cmxLZXks
IGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXkpOwogICAgIGluaXRDb29yZGluYXRlcyhJbnRQb2lu
dChjbGllbnRYLCBjbGllbnRZKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ub3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oCmluZGV4IDg1
ZmExNjFmMjE5NmQzZjJhMDVkOWEzMWExMTdiMGExYWY4NjZmOTkuLjEzZGUwYzI5ODY1MWNlNDEx
MGU0NmE3NzVjZDMxY2FjMzNiODRlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
b3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaApAQCAtMzks
MTUgKzM5LDEwIEBAIGNsYXNzIFRvdWNoRXZlbnQgZmluYWwgOiBwdWJsaWMgTW91c2VSZWxhdGVk
RXZlbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflRvdWNoRXZlbnQoKTsKIAotICAgIHN0YXRp
YyBSZWY8VG91Y2hFdmVudD4gY3JlYXRlKFRvdWNoTGlzdCogdG91Y2hlcywgCi0gICAgICAgICAg
ICBUb3VjaExpc3QqIHRhcmdldFRvdWNoZXMsIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIAot
ICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBSZWZQdHI8V2luZG93UHJveHk+
JiYgdmlldywKLSAgICAgICAgICAgIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VY
LCBpbnQgcGFnZVksCi0gICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29s
IHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpCisgICAgc3RhdGljIFJlZjxUb3VjaEV2ZW50PiBjcmVh
dGUoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdldFRvdWNoZXMsIFRvdWNoTGlz
dCogY2hhbmdlZFRvdWNoZXMsCisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUmVm
UHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcsIGNvbnN0IEludFBvaW50JiBnbG9iYWxMb2NhdGlvbiwg
T3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBUb3VjaEV2ZW50KHRvdWNoZXMsIHRhcmdldFRvdWNoZXMsIGNoYW5nZWRUb3Vj
aGVzLAotICAgICAgICAgICAgICAgIHR5cGUsIFdURk1vdmUodmlldyksIHNjcmVlblgsIHNjcmVl
blksIHBhZ2VYLCBwYWdlWSwKLSAgICAgICAgICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0
S2V5LCBtZXRhS2V5KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRvdWNoRXZlbnQo
dG91Y2hlcywgdGFyZ2V0VG91Y2hlcywgY2hhbmdlZFRvdWNoZXMsIHR5cGUsIFdURk1vdmUodmll
dyksIGdsb2JhbExvY2F0aW9uLCBtb2RpZmllcnMpKTsKICAgICB9CiAgICAgc3RhdGljIFJlZjxU
b3VjaEV2ZW50PiBjcmVhdGVGb3JCaW5kaW5ncygpCiAgICAgewpAQCAtNjUsMTEgKzYwLDggQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUb3VjaEV2ZW50KHR5cGUsIGlu
aXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKICAgICB9CiAKLSAgICB2b2lkIGluaXRUb3VjaEV2ZW50
KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAotICAgICAgICAg
ICAgVG91Y2hMaXN0KiBjaGFuZ2VkVG91Y2hlcywgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCAK
LSAgICAgICAgICAgIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLAotICAgICAgICAgICAgaW50IGNsaWVudFgsIGludCBjbGllbnRZLAotICAgICAgICAgICAg
Ym9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KTsK
KyAgICB2b2lkIGluaXRUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0
YXJnZXRUb3VjaGVzLCBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsCisgICAgICAgIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IHNjcmVlblgsIGlu
dCBzY3JlZW5ZLCBpbnQgY2xpZW50WCwgaW50IGNsaWVudFksIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CiAKICAgICBUb3VjaExpc3QqIHRv
dWNoZXMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoZXMuZ2V0KCk7IH0KICAgICBUb3VjaExpc3Qq
IHRhcmdldFRvdWNoZXMoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldFRvdWNoZXMuZ2V0KCk7IH0K
QEAgLTg1LDExICs3Nyw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBUb3VjaEV2ZW50KCk7
Ci0gICAgVG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlzdCogdGFyZ2V0VG91
Y2hlcywKLSAgICAgICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwKLSAgICAgICAgICAgIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgaW50IHNj
cmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsCi0gICAgICAgICAgICBpbnQgcGFnZVksCi0g
ICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29s
IG1ldGFLZXkpOworICAgIFRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3Qq
IHRhcmdldFRvdWNoZXMsIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwKKyAgICAgICAgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLCBjb25zdCBJbnRQb2lu
dCYgZ2xvYmFsTG9jYXRpb24sIE9wdGlvblNldDxNb2RpZmllcj4pOwogICAgIFRvdWNoRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CiAKICAgICBSZWZQ
dHI8VG91Y2hMaXN0PiBtX3RvdWNoZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VUlFdmVudFdpdGhLZXlTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5
U3RhdGUuaAppbmRleCAzNjY4MzY0Njk5YjkzYTUxYzhhOWI4ZWE5NjE1MjE0ZDc5Mzg3YTI3Li5k
OWNhNzU4ZmQ5ODdiZDU3YTg3ODQ0OTNiZDk4OWZhZWQwNjRlZmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKQEAgLTI0LDYxICsyNCwxMDQgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiRXZlbnRNb2RpZmllckluaXQuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bUV2ZW50LmgiCiAjaW5jbHVkZSAiVUlFdmVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFVJRXZlbnRXaXRoS2V5U3RhdGUgOiBwdWJsaWMgVUlFdmVudCB7CiBwdWJsaWM6Ci0g
ICAgYm9vbCBjdHJsS2V5KCkgY29uc3QgeyByZXR1cm4gbV9jdHJsS2V5OyB9Ci0gICAgYm9vbCBz
aGlmdEtleSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hpZnRLZXk7IH0KLSAgICBib29sIGFsdEtleSgp
IGNvbnN0IHsgcmV0dXJuIG1fYWx0S2V5OyB9Ci0gICAgYm9vbCBtZXRhS2V5KCkgY29uc3QgeyBy
ZXR1cm4gbV9tZXRhS2V5OyB9Ci0gICAgYm9vbCBhbHRHcmFwaEtleSgpIGNvbnN0IHsgcmV0dXJu
IG1fYWx0R3JhcGhLZXk7IH0KLSAgICBib29sIGNhcHNMb2NrS2V5KCkgY29uc3QgeyByZXR1cm4g
bV9jYXBzTG9ja0tleTsgfQorICAgIHVzaW5nIE1vZGlmaWVyID0gUGxhdGZvcm1FdmVudDo6TW9k
aWZpZXI7CisKKyAgICBib29sIGN0cmxLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVycy5j
b250YWlucyhNb2RpZmllcjo6Q3RybEtleSk7IH0KKyAgICBib29sIHNoaWZ0S2V5KCkgY29uc3Qg
eyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9kaWZpZXI6OlNoaWZ0S2V5KTsgfQorICAg
IGJvb2wgYWx0S2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9kaWZp
ZXI6OkFsdEtleSk7IH0KKyAgICBib29sIG1ldGFLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZGlm
aWVycy5jb250YWlucyhNb2RpZmllcjo6TWV0YUtleSk7IH0KKyAgICBib29sIGFsdEdyYXBoS2V5
KCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnMuY29udGFpbnMoTW9kaWZpZXI6OkFsdEdyYXBo
S2V5KTsgfQorICAgIGJvb2wgY2Fwc0xvY2tLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVy
cy5jb250YWlucyhNb2RpZmllcjo6Q2Fwc0xvY2tLZXkpOyB9CisKKyAgICBPcHRpb25TZXQ8TW9k
aWZpZXI+IG1vZGlmaWVyS2V5cygpIHsgcmV0dXJuIG1fbW9kaWZpZXJzOyB9CiAKIHByb3RlY3Rl
ZDoKICAgICBVSUV2ZW50V2l0aEtleVN0YXRlKCkgPSBkZWZhdWx0OwogCi0gICAgVUlFdmVudFdp
dGhLZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIENhbkJ1YmJsZSBjYW5CdWJibGUs
IElzQ2FuY2VsYWJsZSBjYW5jZWxhYmxlLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywgaW50
IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBt
ZXRhS2V5KQorICAgIFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJsZSwgUmVmUHRyPFdp
bmRvd1Byb3h5PiYmIHZpZXcsIGludCBkZXRhaWwsIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZp
ZXJzKQogICAgICAgICA6IFVJRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBXVEZN
b3ZlKHZpZXcpLCBkZXRhaWwpCi0gICAgICAgICwgbV9jdHJsS2V5KGN0cmxLZXkpCi0gICAgICAg
ICwgbV9hbHRLZXkoYWx0S2V5KQotICAgICAgICAsIG1fc2hpZnRLZXkoc2hpZnRLZXkpCi0gICAg
ICAgICwgbV9tZXRhS2V5KG1ldGFLZXkpCisgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJz
KQogICAgIHsKICAgICB9CiAKLSAgICBVSUV2ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgQ2FuQnViYmxlIGNhbkJ1YmJsZSwgSXNDYW5jZWxhYmxlIGNhbmNlbGFibGUs
IE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBSZWZQdHI8V2luZG93UHJveHk+JiYgdmlldywKLSAg
ICAgICAgaW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtl
eSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQotICAg
ICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1w
LCBXVEZNb3ZlKHZpZXcpLCBkZXRhaWwpCi0gICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5
KQotICAgICAgICAgICAgLCBtX2FsdEtleShhbHRLZXkpCi0gICAgICAgICAgICAsIG1fc2hpZnRL
ZXkoc2hpZnRLZXkpCi0gICAgICAgICAgICAsIG1fbWV0YUtleShtZXRhS2V5KQotICAgICAgICAg
ICAgLCBtX2FsdEdyYXBoS2V5KGFsdEdyYXBoS2V5KQotICAgICAgICAgICAgLCBtX2NhcHNMb2Nr
S2V5KGNhcHNMb2NrS2V5KQorICAgIFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBDYW5CdWJibGUgY2FuQnViYmxlLCBJc0NhbmNlbGFibGUgY2FuY2VsYWJsZSwg
TW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBpbnQg
ZGV0YWlsLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycykKKyAgICAgICAgOiBVSUV2ZW50
KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCBXVEZNb3ZlKHZpZXcpLCBk
ZXRhaWwpCisgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgIHsKICAgICB9CiAK
ICAgICBVSUV2ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3Qg
RXZlbnRNb2RpZmllckluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkKQogICAg
ICAgICA6IFVJRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkKLSAgICAgICAgLCBt
X2N0cmxLZXkoaW5pdGlhbGl6ZXIuY3RybEtleSkKLSAgICAgICAgLCBtX2FsdEtleShpbml0aWFs
aXplci5hbHRLZXkpCi0gICAgICAgICwgbV9zaGlmdEtleShpbml0aWFsaXplci5zaGlmdEtleSkK
LSAgICAgICAgLCBtX21ldGFLZXkoaW5pdGlhbGl6ZXIubWV0YUtleSkKLSAgICAgICAgLCBtX2Fs
dEdyYXBoS2V5KGluaXRpYWxpemVyLm1vZGlmaWVyQWx0R3JhcGgpCi0gICAgICAgICwgbV9jYXBz
TG9ja0tleShpbml0aWFsaXplci5tb2RpZmllckNhcHNMb2NrKQorICAgICAgICAsIG1fbW9kaWZp
ZXJzKG1vZGlmaWVyc0Zyb21Jbml0aWFsaXplcihpbml0aWFsaXplcikpCisgICAgeworICAgIH0K
KworICAgIHZvaWQgc2V0TW9kaWZpZXJLZXlzKGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJv
b2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwgYm9vbCBhbHRHcmFwaEtleSkKICAgICB7CisgICAg
ICAgIE9wdGlvblNldDxNb2RpZmllcj4gcmVzdWx0OworICAgICAgICBpZiAoY3RybEtleSkKKyAg
ICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6Q3RybEtleTsKKyAgICAgICAgaWYgKGFsdEtl
eSkKKyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6QWx0S2V5OworICAgICAgICBpZiAo
c2hpZnRLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OlNoaWZ0S2V5OworICAg
ICAgICBpZiAobWV0YUtleSkKKyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6TWV0YUtl
eTsKKyAgICAgICAgaWYgKGFsdEdyYXBoS2V5KQorICAgICAgICAgICAgcmVzdWx0IHw9IE1vZGlm
aWVyOjpBbHRHcmFwaEtleTsKKyAgICAgICAgLy8gIEZJWE1FOiBDaHJvbWUgb3IgRmlyZWZveCBk
b24ndCBwcmVzZXJ2ZSB0aGlzIHN0YXRlLgorICAgICAgICBpZiAobV9tb2RpZmllcnMgJiBNb2Rp
Zmllcjo6Q2Fwc0xvY2tLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkNhcHNM
b2NrS2V5OworICAgICAgICBtX21vZGlmaWVycyA9IHJlc3VsdDsKICAgICB9CiAKLSAgICAvLyBF
eHBvc2UgdGhlc2Ugc28gaW5pdCBmdW5jdGlvbnMgY2FuIHNldCB0aGVtLgotICAgIGJvb2wgbV9j
dHJsS2V5IHsgZmFsc2UgfTsKLSAgICBib29sIG1fYWx0S2V5IHsgZmFsc2UgfTsKLSAgICBib29s
IG1fc2hpZnRLZXkgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9tZXRhS2V5IHsgZmFsc2UgfTsKLSAg
ICBib29sIG1fYWx0R3JhcGhLZXkgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9jYXBzTG9ja0tleSB7
IGZhbHNlIH07CisgICAgdm9pZCBzZXRNb2RpZmllcktleXMoYm9vbCBjdHJsS2V5LCBib29sIGFs
dEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQorICAgIHsKKyAgICAgICAgT3B0aW9u
U2V0PE1vZGlmaWVyPiByZXN1bHQ7CisgICAgICAgIGlmIChjdHJsS2V5KQorICAgICAgICAgICAg
cmVzdWx0IHw9IE1vZGlmaWVyOjpDdHJsS2V5OworICAgICAgICBpZiAoYWx0S2V5KQorICAgICAg
ICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpBbHRLZXk7CisgICAgICAgIGlmIChzaGlmdEtleSkK
KyAgICAgICAgICAgIHJlc3VsdCB8PSBNb2RpZmllcjo6U2hpZnRLZXk7CisgICAgICAgIGlmICht
ZXRhS2V5KQorICAgICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpNZXRhS2V5OworICAgICAg
ICAvLyAgRklYTUU6IENocm9tZSBvciBGaXJlZm94IGRvbid0IHByZXNlcnZlIHRoZXNlIHN0YXRl
cy4KKyAgICAgICAgaWYgKG1fbW9kaWZpZXJzICYgTW9kaWZpZXI6OkFsdEdyYXBoS2V5KQorICAg
ICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpBbHRHcmFwaEtleTsKKyAgICAgICAgaWYgKG1f
bW9kaWZpZXJzICYgTW9kaWZpZXI6OkNhcHNMb2NrS2V5KQorICAgICAgICAgICAgcmVzdWx0IHw9
IE1vZGlmaWVyOjpDYXBzTG9ja0tleTsKKyAgICAgICAgbV9tb2RpZmllcnMgPSByZXN1bHQ7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIE9wdGlvblNldDxNb2RpZmllcj4gbV9tb2RpZmllcnM7CisK
KyAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVyc0Zyb21Jbml0aWFsaXplcihjb25zdCBF
dmVudE1vZGlmaWVySW5pdCYgaW5pdGlhbGl6ZXIpCisgICAgeworICAgICAgICBPcHRpb25TZXQ8
TW9kaWZpZXI+IHJlc3VsdDsKKyAgICAgICAgaWYgKGluaXRpYWxpemVyLmN0cmxLZXkpCisgICAg
ICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkN0cmxLZXk7CisgICAgICAgIGlmIChpbml0aWFs
aXplci5hbHRLZXkpCisgICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkFsdEtleTsKKyAg
ICAgICAgaWYgKGluaXRpYWxpemVyLnNoaWZ0S2V5KQorICAgICAgICAgICAgcmVzdWx0IHw9IE1v
ZGlmaWVyOjpTaGlmdEtleTsKKyAgICAgICAgaWYgKGluaXRpYWxpemVyLm1ldGFLZXkpCisgICAg
ICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6Ok1ldGFLZXk7CisgICAgICAgIGlmIChpbml0aWFs
aXplci5tb2RpZmllckFsdEdyYXBoKQorICAgICAgICAgICAgcmVzdWx0IHw9IE1vZGlmaWVyOjpB
bHRHcmFwaEtleTsKKyAgICAgICAgaWYgKGluaXRpYWxpemVyLm1vZGlmaWVyQ2Fwc0xvY2spCisg
ICAgICAgICAgICByZXN1bHQgfD0gTW9kaWZpZXI6OkNhcHNMb2NrS2V5OworICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgIH0KKyAgICAKIH07CiAKIFVJRXZlbnRXaXRoS2V5U3RhdGUqIGZpbmRF
dmVudFdpdGhLZXlTdGF0ZShFdmVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCmluZGV4
IDI3Njc3YTg3YTVlZmJhZTYzM2ZmMTAxZjEyY2RiY2Q1MGI5NDA2NjguLjA3MjIzYjk1NDk1ZjNj
OTRjZDcwNDlkZDQ2ZmJhNzhjY2UxYjc0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAK
QEAgLTQ4LDExICs0OCw4IEBAIGlubGluZSBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsCiB9CiAKIGlubGluZSBX
aGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIFJl
ZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3KQotICAgIDogTW91c2VFdmVudChldmVudE5hbWVzKCku
d2hlZWxFdmVudCwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6WWVzLCBldmVudC50aW1l
c3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgV1RGTW92ZSh2aWV3KSwgMCwgZXZl
bnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQotI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCi0gICAgICAgICwgeyB9Ci0jZW5kaWYKLSAgICAgICAgLCBldmVudC5jdHJsS2V5KCks
IGV2ZW50LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCksIDAsIDAs
IG51bGxwdHIsIDAsIDAsIG51bGxwdHIsIGZhbHNlKQorICAgIDogTW91c2VFdmVudChldmVudE5h
bWVzKCkud2hlZWxFdmVudCwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6WWVzLCBldmVu
dC50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgV1RGTW92ZSh2aWV3KSwg
MCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKSAsIHsgfQorICAgICAg
ICAsIGV2ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxscHRyLCAwLCAwLCBudWxscHRyLCBJc1Np
bXVsYXRlZDo6Tm8pCiAgICAgLCBtX3doZWVsRGVsdGEoZXZlbnQud2hlZWxUaWNrc1goKSAqIFRp
Y2tNdWx0aXBsaWVyLCBldmVudC53aGVlbFRpY2tzWSgpICogVGlja011bHRpcGxpZXIpCiAgICAg
LCBtX2RlbHRhWCgtZXZlbnQuZGVsdGFYKCkpCiAgICAgLCBtX2RlbHRhWSgtZXZlbnQuZGVsdGFZ
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMDYzMWExMWE2NTEyN2E3
MDY3ZmNhOWFhNGVjMjJjMDQ4NTg5ZTU1NS4uZmU2NmVjYjc3NzcyMjEzODk4OWUzMjNiNzcxNjQy
ODcxMjRmMWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjIxMywx
NCArMjIxMywxNSBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICB2aWV3LT5kaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZv
ckludGVyYWN0aW9uKCk7Ci0gICAgUmVmPE1vdXNlRXZlbnQ+IG1lID0gTW91c2VFdmVudDo6Y3Jl
YXRlKGV2ZW50VHlwZSwKLSAgICAgICAgRXZlbnQ6OkNhbkJ1YmJsZTo6WWVzLCBFdmVudDo6SXND
YW5jZWxhYmxlOjpZZXMsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGlt
ZSgpLCAmbV9mcmFtZS53aW5kb3dQcm94eSgpLAotICAgICAgICAwLCBldmVudC5nbG9iYWxQb3Np
dGlvbigpLngoKSwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCku
eCgpLCBldmVudC5wb3NpdGlvbigpLnkoKSwKKyAgICAvLyBGSVhNRTogVXNlIE1vdXNlRXZlbnQ6
OmNyZWF0ZSB3aGljaCB0YWtlcyBQbGF0Zm9ybU1vdXNlRXZlbnQuCisgICAgUmVmPE1vdXNlRXZl
bnQ+IG1lID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgRXZlbnQ6OkNhbkJ1YmJsZTo6
WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGlt
YXRlTW9ub3RvbmljVGltZSgpLCAmbV9mcmFtZS53aW5kb3dQcm94eSgpLCAwLAorICAgICAgICBl
dmVudC5nbG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpLAogI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCi0gICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50Lm1vdmVt
ZW50RGVsdGEoKS55KCksCisgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKSwKKyNlbHNlCisg
ICAgICAgIHsgfSwKICNlbmRpZgotICAgICAgICBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFsdEtl
eSgpLCBldmVudC5zaGlmdEtleSgpLCBldmVudC5tZXRhS2V5KCksCi0gICAgICAgIDAsIDAsIG51
bGxwdHIsIGV2ZW50LmZvcmNlKCksIE5vVGFwLCAmZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgZXZl
bnQubW9kaWZpZXJzKCksIDAsIDAsIG51bGxwdHIsIGV2ZW50LmZvcmNlKCksIE5vVGFwLCAmZGF0
YVRyYW5zZmVyKTsKIAogICAgIGRyYWdUYXJnZXQuZGlzcGF0Y2hFdmVudChtZSk7CiAgICAgcmV0
dXJuIG1lLT5kZWZhdWx0UHJldmVudGVkKCk7CkBAIC00MjIyLDEwICs0MjIzLDggQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBl
dmVudCkKICAgICAgICAgICAgIFJlZlB0cjxUb3VjaExpc3Q+IHRhcmdldFRvdWNoZXMoaXNUb3Vj
aENhbmNlbEV2ZW50ID8gZW1wdHlMaXN0IDogdG91Y2hlc0J5VGFyZ2V0LmdldCh0YXJnZXQuZ2V0
KCkpKTsKICAgICAgICAgICAgIEFTU0VSVCh0YXJnZXRUb3VjaGVzKTsKIAotICAgICAgICAgICAg
UmVmPFRvdWNoRXZlbnQ+IHRvdWNoRXZlbnQgPQotICAgICAgICAgICAgICAgIFRvdWNoRXZlbnQ6
OmNyZWF0ZShlZmZlY3RpdmVUb3VjaGVzLmdldCgpLCB0YXJnZXRUb3VjaGVzLmdldCgpLCBjaGFu
Z2VkVG91Y2hlc1tzdGF0ZV0ubV90b3VjaGVzLmdldCgpLAotICAgICAgICAgICAgICAgICAgICBz
dGF0ZU5hbWUsIGRvd25jYXN0PE5vZGU+KCp0YXJnZXQpLmRvY3VtZW50KCkud2luZG93UHJveHko
KSwKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgZXZlbnQuY3RybEtleSgpLCBldmVu
dC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwgZXZlbnQubWV0YUtleSgpKTsKKyAgICAgICAg
ICAgIFJlZjxUb3VjaEV2ZW50PiB0b3VjaEV2ZW50ID0gVG91Y2hFdmVudDo6Y3JlYXRlKGVmZmVj
dGl2ZVRvdWNoZXMuZ2V0KCksIHRhcmdldFRvdWNoZXMuZ2V0KCksIGNoYW5nZWRUb3VjaGVzW3N0
YXRlXS5tX3RvdWNoZXMuZ2V0KCksCisgICAgICAgICAgICAgICAgc3RhdGVOYW1lLCBkb3duY2Fz
dDxOb2RlPigqdGFyZ2V0KS5kb2N1bWVudCgpLndpbmRvd1Byb3h5KCksIHsgfSwgZXZlbnQubW9k
aWZpZXJzKCkpOwogICAgICAgICAgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KHRvdWNoRXZlbnQp
OwogICAgICAgICAgICAgc3dhbGxvd2VkRXZlbnQgPSBzd2FsbG93ZWRFdmVudCB8fCB0b3VjaEV2
ZW50LT5kZWZhdWx0UHJldmVudGVkKCkgfHwgdG91Y2hFdmVudC0+ZGVmYXVsdEhhbmRsZWQoKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1F
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4IDYz
NTM5MjUyMGRiYzE0ZGIxMTQ0NjdiNGM1MGQxOGM2MWE3NjJiOTguLjgxNWEzYzkzYmFkMGYzYTFj
NmVlZjFkMzU0OWQ1Y2IxMjNiODdjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bUV2ZW50LmgKQEAgLTcwLDEyICs3MCwxNSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9OwogCi0g
ICAgZW51bSBjbGFzcyBNb2RpZmllciB7CisgICAgZW51bSBjbGFzcyBNb2RpZmllciA6IHVpbnQ4
X3QgewogICAgICAgICBBbHRLZXkgICAgICA9IDEgPDwgMCwKICAgICAgICAgQ3RybEtleSAgICAg
PSAxIDw8IDEsCiAgICAgICAgIE1ldGFLZXkgICAgID0gMSA8PCAyLAogICAgICAgICBTaGlmdEtl
eSAgICA9IDEgPDwgMywKICAgICAgICAgQ2Fwc0xvY2tLZXkgPSAxIDw8IDQsCisKKyAgICAgICAg
Ly8gTmV2ZXIgdXNlZCBpbiBuYXRpdmUgcGxhdGZvcm1zIGJ1dCBhZGRlZCBmb3IgaW5pdEV2ZW50
CisgICAgICAgIEFsdEdyYXBoS2V5ID0gMSA8PCA1LAogICAgIH07CiAKICAgICBUeXBlIHR5cGUo
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUeXBlPihtX3R5cGUpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCmlu
ZGV4IGUyYWI0MDVmNDBjMTY1NjAwYWEwNTM1MDAyZTI3NjRhMjUyOTQwOWEuLjJmMThmOTU5Mzky
OGZlOTNmZTA3MzVjMjQ1Y2E2N2VkNjg4NTk5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCkBAIC01MSw3ICs1MSw4
IEBAIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVu
dCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBrZXlGb3JLZXlFdmVudChOU0V2ZW50ICopOwog
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvZGVGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09S
RV9FWFBPUlQgV2FsbFRpbWUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCAqKTsKLSAg
ICAKKworV0VCQ09SRV9FWFBPUlQgT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBt
b2RpZmllcnNGb3JFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRXaGVl
bEV2ZW50RGVsdGFzKE5TRXZlbnQgKiwgZmxvYXQmIGRlbHRhWCwgZmxvYXQmIGRlbHRhWSwgQk9P
TCYgY29udGludW91cyk7CiBXRUJDT1JFX0VYUE9SVCBVSW50OCBrZXlDaGFyRm9yRXZlbnQoTlNF
dmVudCAqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDcwODFlMTI0NDI3ZWUzZDZkZTQ5MTkwNzM2NjA4
NzM4OWY5OTQ4MzguLjU5ODU0NzdkOWUwNTQ4OGEyOTA0MGUwYzI0MzU5NGE5NDk5N2I5NzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZh
Y3RvcnlNYWMubW0KQEAgLTY2MSw3ICs2NjEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNLZXlV
cEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIGlu
bGluZSBPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyc0ZvckV2ZW50
KE5TRXZlbnQgKmV2ZW50KQorT3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2Rp
ZmllcnNGb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBPcHRpb25TZXQ8UGxhdGZvcm1F
dmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IDBmMzc5NjE4ZjFmYzk0YmYzODVjZjNmZDg0ZDVhOWJkNjBhYTI4NmMuLmVmYTZh
YTc1ZTY0MzFiMjI4YmI1ZDdjNzQ1Nzg5M2VhNmU1NmVmNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTQyOTUsNiArNDI5NSw5IEBAIFZlY3RvcjxTdHJpbmc+IEludGVy
bmFsczo6YWNjZXNzS2V5TW9kaWZpZXJzKCkgY29uc3QKICAgICAgICAgY2FzZSBQbGF0Zm9ybUV2
ZW50OjpNb2RpZmllcjo6Q2Fwc0xvY2tLZXk6CiAgICAgICAgICAgICBhY2Nlc3NLZXlNb2RpZmll
clN0cmluZ3MuYXBwZW5kKCJjYXBzTG9ja0tleSJfcyk7CiAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0R3JhcGhLZXk6CisgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gQWx0R3JhcGggaXMgb25seSBmb3IgRE9NIEFQ
SS4KKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDE3YTAwNjQ5NzE3YjEwNWVk
MTU0NGJiN2ZhNDM0NjMxOTk3MmZhNTcuLmM4ZGM0NzYwNWUzMmJiNGI1ZGRmNDljNTc1NThlYjY1
MjQ1NzhkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0xMzM2LDEyICsxMzM2LDEwIEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVUb1BERkxp
bmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50IGRvCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGNvbnN0IGludCBzaW5nbGVDbGljayA9IDE7CisgICAgLy8gRklY
TUU6IFNldCBtb2RpZmllciBrZXlzLgorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJs
eSBzZXQgSXNTaW11bGF0ZWQ6Olllcy4KICAgICBSZWZQdHI8TW91c2VFdmVudD4gbW91c2VFdmVu
dCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgRXZlbnQ6OkNh
bkJ1YmJsZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsCi0gICAgICAgIE1vbm90b25p
Y1RpbWU6Om5vdygpLCBudWxscHRyLCBzaW5nbGVDbGljaywgc2NyZWVuUG9pbnQueCgpLCBzY3Jl
ZW5Qb2ludC55KCksIGRvY3VtZW50UG9pbnQueCgpLCBkb2N1bWVudFBvaW50LnkoKSwKLSNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQotICAgICAgICAwLCAwLAotI2VuZGlmCi0gICAgICAgIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCBudWxscHRyLCAwLCBXZWJDb3JlOjpOb1RhcCwg
bnVsbHB0cik7CisgICAgICAgIE1vbm90b25pY1RpbWU6Om5vdygpLCBudWxscHRyLCBzaW5nbGVD
bGljaywgc2NyZWVuUG9pbnQsIGRvY3VtZW50UG9pbnQsIHsgfSwgeyB9LCAwLCAwLCBudWxscHRy
LCAwLCBXZWJDb3JlOjpOb1RhcCwgbnVsbHB0cik7CiAKICAgICBtYWluRnJhbWUtPmxvYWRlcigp
LnVybFNlbGVjdGVkKG1haW5GcmFtZURvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpLCBlbXB0eVN0
cmluZygpLCBtb3VzZUV2ZW50LmdldCgpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2Fy
ZExpc3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok1heWJlU2VuZFJlZmVycmVyLCBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1t
CmluZGV4IDYzMzJhODA3ZTQ4ZmU0OWYxYjhhOTE5NTdiNmQ0MmJhZmIxYTg3NGIuLjRhZGYyZjcy
OGE1ZDgyZmZjYmVmNjAxMTJhOTAxNTcxNzg2N2Y3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tCkBAIC00
NzksMTEgKzQ3OSw4IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBQQUdFX0hFSUdIVF9JTlNFVCA9IDQu
MGYgKiAyLjBmOwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDb25zdHJ1Y3QgYW4gZXZlbnQg
dG8gc2ltdWxhdGUgYSBjbGljay4KLSAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91c2VFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpZZXMs
IEV2ZW50OjpJc0NhbmNlbGFibGU6OlllcywgTW9ub3RvbmljVGltZTo6bm93KCksIDAsIDEsIDAs
IDAsIDAsIDAsCi0jaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICAgICAgMCwgMCwKLSNlbmRp
ZgotICAgICAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgMCwgbnVsbHB0ciwgMCwg
MCwgbnVsbHB0ciwgdHJ1ZSk7CisgICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IE1vdXNlRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6WWVzLCBF
dmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsIE1vbm90b25pY1RpbWU6Om5vdygpLCBudWxscHRyLCAx
LAorICAgICAgICB7IH0sIHsgfSwgeyB9LCB7IH0sIDAsIDAsIG51bGxwdHIsIDAsIDAsIG51bGxw
dHIsIE1vdXNlRXZlbnQ6OklzU2ltdWxhdGVkOjpZZXMpOwogCiAgICAgLy8gQ2FsbCB0byB0aGUg
ZnJhbWUgbG9hZGVyIGJlY2F1c2UgdGhpcyBpcyB3aGVyZSBvdXIgc2VjdXJpdHkgY2hlY2tzIGFy
ZSBtYWRlLgogICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUoW19kYXRhU291cmNlIHdlYkZyYW1lXSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXgg
Y2ViOTM5MGM2YWYwMGZkOGM4YzYzY2I1NGNjODgwOGIxMzhkNGEwZC4uM2UxMmRmYmE3ZGE3NDFh
ZTNhODM3ZDRmMDJhMzBhNGFiYTcxOWRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUERGVmlldy5tbQpAQCAtMTAzMCwxNSArMTAzMCw5IEBAIHN0YXRpYyBCT09M
IGlzRnJhbWVJblJhbmdlKFdlYkZyYW1lICpmcmFtZSwgRE9NUmFuZ2UgKnJhbmdlKQogICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgaWYgKGJ1dHRvbiAhPSBub0J1dHRvbikgewotICAgICAgICBl
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsIE1vbm90b25pY1RpbWU6
Om5vdygpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKLSNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQotICAgICAgICAgICAgMCwgMCwKLSNlbmRpZgotICAgICAgICAgICAgW25z
RXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbCwKLSAgICAg
ICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlv
biwKLSAgICAgICAgICAgIFtuc0V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNFdmVudE1vZGlmaWVy
RmxhZ1NoaWZ0LAotICAgICAgICAgICAgW25zRXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0V2ZW50
TW9kaWZpZXJGbGFnQ29tbWFuZCwKLSAgICAgICAgICAgIGJ1dHRvbiwgW05TRXZlbnQgcHJlc3Nl
ZE1vdXNlQnV0dG9uc10sIG51bGxwdHIsIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgMCwgbnVsbHB0
ciwgdHJ1ZSk7CisgICAgICAgIC8vIEZJWE1FOiBVc2UgY3JlYXRlUGxhdGZvcm1Nb3VzZUV2ZW50
IGluc3RlYWQuCisgICAgICAgIGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5jbGlja0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpZZXMsIEV2ZW50OjpJc0NhbmNlbGFibGU6
OlllcywgTW9ub3RvbmljVGltZTo6bm93KCksIG51bGxwdHIsIFtuc0V2ZW50IGNsaWNrQ291bnRd
LCB7IH0sIHsgfSwgeyB9LAorICAgICAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQobnNFdmVudCks
IGJ1dHRvbiwgW05TRXZlbnQgcHJlc3NlZE1vdXNlQnV0dG9uc10sIG51bGxwdHIsIFdlYkNvcmU6
OkZvcmNlQXRDbGljaywgMCwgbnVsbHB0ciwgTW91c2VFdmVudDo6SXNTaW11bGF0ZWQ6Olllcyk7
CiAgICAgfQogCiAgICAgLy8gQ2FsbCB0byB0aGUgZnJhbWUgbG9hZGVyIGJlY2F1c2UgdGhpcyBp
cyB3aGVyZSBvdXIgc2VjdXJpdHkgY2hlY2tzIGFyZSBtYWRlLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>