<?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>167233</bug_id>
          
          <creation_ts>2017-01-20 00:01:07 -0800</creation_ts>
          <short_desc>REGRESSION (r208149): Video details does not apear and missing scrubber in Control Center</short_desc>
          <delta_ts>2017-01-23 11:24:51 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1268384</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-20 00:01:07 -0800</bug_when>
    <thetext>Video details does not apear and missing scrubber in Control Center</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268459</commentid>
    <comment_count>1</comment_count>
      <attachid>299353</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-20 10:21:56 -0800</bug_when>
    <thetext>Created attachment 299353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268461</commentid>
    <comment_count>2</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-20 10:24:00 -0800</bug_when>
    <thetext>rdar://problem/29486368</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268535</commentid>
    <comment_count>3</comment_count>
      <attachid>299372</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-20 13:17:41 -0800</bug_when>
    <thetext>Created attachment 299372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268536</commentid>
    <comment_count>4</comment_count>
      <attachid>299373</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-20 13:18:29 -0800</bug_when>
    <thetext>Created attachment 299373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268538</commentid>
    <comment_count>5</comment_count>
      <attachid>299375</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-20 13:24:11 -0800</bug_when>
    <thetext>Created attachment 299375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268552</commentid>
    <comment_count>6</comment_count>
      <attachid>299375</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-20 13:49:16 -0800</bug_when>
    <thetext>Comment on attachment 299375
Patch

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

&gt; Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.h:73
&gt; +    bool hasActiveNowPlayingSession() const override { return m_nowPlayingActive; }

final?

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:318
&gt; +- (void)_requestActiveNowPlayingSessionInfo WK_API_AVAILABLE(macosx(WK_MAC_TBA));
&gt; +- (void)_handleActiveNowPlayingSessionInfoResponse:(BOOL)hasActiveSession title:(NSString *)title duration:(double)duration elapsedTime:(double)elapsedTime WK_API_AVAILABLE(macosx(WK_MAC_TBA));

These need a , ios(WK_IOS_TBA)
I think this should have a completionHandler for when you get your result instead of making subclasses override a selector.  That&apos;s an awful API design.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268557</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-20 14:04:29 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 299375 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=299375&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.h:73
&gt; &gt; +    bool hasActiveNowPlayingSession() const override { return m_nowPlayingActive; }
&gt; 
&gt; final?

Ok.

&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:318
&gt; &gt; +- (void)_requestActiveNowPlayingSessionInfo WK_API_AVAILABLE(macosx(WK_MAC_TBA));
&gt; &gt; +- (void)_handleActiveNowPlayingSessionInfoResponse:(BOOL)hasActiveSession title:(NSString *)title duration:(double)duration elapsedTime:(double)elapsedTime WK_API_AVAILABLE(macosx(WK_MAC_TBA));
&gt; 
&gt; These need a , ios(WK_IOS_TBA)

Ok.

&gt; I think this should have a completionHandler for when you get your result
&gt; instead of making subclasses override a selector.  That&apos;s an awful API
&gt; design.

Indeed. I&apos;ll file a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269072</commentid>
    <comment_count>8</comment_count>
      <attachid>299519</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-01-23 09:37:04 -0800</bug_when>
    <thetext>Created attachment 299519
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269111</commentid>
    <comment_count>9</comment_count>
      <attachid>299519</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-23 11:24:51 -0800</bug_when>
    <thetext>Comment on attachment 299519
Patch for landing

Clearing flags on attachment: 299519

Committed r211045: &lt;http://trac.webkit.org/changeset/211045&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299353</attachid>
            <date>2017-01-20 10:21:56 -0800</date>
            <delta_ts>2017-01-20 13:17:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Source-WebCore.patch</filename>
            <type>text/plain</type>
            <size>46006</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSAyNjkzODVhNjgwNDJlZDViNjJjZjM0ZTk4YWJjOTZlYmU2MjE0YzVjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMjAgSmFuIDIwMTcgMTA6MTg6NDEgLTA4MDAKU3ViamVjdDogU291cmNlL1dlYkNvcmU6
IFJFR1JFU1NJT04gKHIyMDgxNDkpOiBWaWRlbyBkZXRhaWxzIGRvZXMgbm90IGFwZWFyCiBhbmQg
bWlzc2luZyBzY3J1YmJlciBpbiBDb250cm9sIENlbnRlcgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NzIzMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpU
ZXN0OiBJbiBUZXN0V2ViS2l0QVBJLCBOb3dQbGF5aW5nQ29udHJvbHNUZXN0cy5Ob3dQbGF5aW5n
Q29udHJvbHNJT1MKCkluIHIyMDgxNDksIHdlIGludHJvZHVjZWQgYSBuZXcgbWVkaWEgdHlwZSwg
VmlkZW8sIGFuZCByZW5hbWVkIHRoZSBvbGQgdHlwZSB0bwpWaWRlb0F1ZGlvICh0byBiZSBhYmxl
IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdmlkZW8td2l0aC1hdWRpbyBhbmQgc2lsZW50LXZpZGVv
KS4KQnV0IHdlIG1pc3NlZCBvbmUgcGxhY2Ugd2hlcmUgdGhhdCB0eXBlIG5lZWRzIHRvIGJlIHJl
bmFtZWQuCgpGb3IgdGVzdGluZyBwdXJwb3Nlcywgb3ZlcmxvYWQgbWV0aG9kcyBmcm9tIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlciB3aGljaCBXZWJLaXQyIHVzZXMKdG8gcmVwb3J0IHRoZSBj
dXJyZW50IG5vdyBwbGF5aW5nIHNlc3Npb24gYW5kIGl0J3MgaW5mb3JtYXRpb24uCgoqIHBsYXRm
b3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg6CiogcGxhdGZvcm0vYXVkaW8v
aW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW06CihXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyaU9TOjpub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKToKKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1M6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKToKClNvdXJjZS9XZWJLaXQyOgpWaWRl
byBkZXRhaWxzIGRvZXMgbm90IGFwZWFyIGFuZCBtaXNzaW5nIHNjcnViYmVyIGluIENvbnRyb2wg
Q2VudGVyCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMzMKClJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKTWFrZSByZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nl
c3Npb25JbmZvKCkgYW5kIGhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNl
KCkKd29yayBpbiBQTEFURk9STShJT1MpLgoKKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbToKKC1bV0tXZWJWaWV3IF9yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvXSk6
CigtW1dLV2ViVmlldyBfaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2U6
dGl0bGU6ZHVyYXRpb246ZWxhcHNlZFRpbWU6XSk6CiogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmg6CiogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0QWN0aXZlTm93UGxh
eWluZ1Nlc3Npb25JbmZvKToKKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVBY3RpdmVOb3dQ
bGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZSk6CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgoq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CiogVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oOgoqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CihX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9S
ZXNwb25zZSk6CiogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbToKKFdl
YktpdDo6V2ViUGFnZTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbyk6CiogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CihXZWJL
aXQ6OldlYlBhZ2U6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8pOiBEZWxldGVk
LgoKVG9vbHM6ClZpZGVvIGRldGFpbHMgZG9lcyBub3QgYXBlYXIgYW5kIG1pc3Npbmcgc2NydWJi
ZXIgaW4gQ29udHJvbCBDZW50ZXIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NzIzMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpSZWZhY3RvciBUZXN0V0tX
ZWJWaWV3TWFjIHRvIHdvcmsgb24gUExBVEZPUk0oSU9TKS4gQWRkIGEgbmV3IHRlc3QgdG8KTm93
UGxheWluZ0NvbnRyb2xUZXN0cyBmb3IgaU9TLgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9Ob3dQbGF5aW5nQ29udHJvbHNUZXN0cy5tbToKKC1bTm93UGxheWluZ1Rlc3RXZWJW
aWV3IHNldFdpbmRvd1Zpc2libGU6XSk6CihUZXN0V2ViS2l0QVBJOjpURVNUKToKKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TbmFwc2hvdFN0b3JlLm1tOgoqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgoqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tOgoqIFRl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oOiBSZW5hbWVkIGZyb20gVG9vbHMvVGVz
dFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oLgoqIFRlc3RXZWJLaXRBUEkvY29jb2Ev
VGVzdFdLV2ViVmlldy5tbTogUmVuYW1lZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rl
c3RXS1dlYlZpZXdNYWMubW0uCihTT0ZUX0xJTktfQ0xBU1MpOgooLVtUZXN0TWVzc2FnZUhhbmRs
ZXIgYWRkTWVzc2FnZTp3aXRoSGFuZGxlcjpdKToKKC1bVGVzdE1lc3NhZ2VIYW5kbGVyIHVzZXJD
b250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKToKKF9fc2ltdWxhdGVk
X2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayk6CigtW1Rlc3RXS1dlYlZpZXdIb3N0V2lu
ZG93IF9tb3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6XSk6CigtW1Rlc3RXS1dlYlZp
ZXdIb3N0V2luZG93IGlzS2V5V2luZG93XSk6CigtW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IG1h
a2VLZXlXaW5kb3ddKToKKC1bVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgcmVzaWduS2V5V2luZG93
XSk6CigtW1Rlc3RXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpdKToKKC1bVGVzdFdLV2ViVmlldyBp
bml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb246XSk6CigtW1Rlc3RXS1dlYlZpZXcgX3NldFVwVGVz
dFdpbmRvdzpdKToKKC1bVGVzdFdLV2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdl
OmFjdGlvbjpdKToKKC1bVGVzdFdLV2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpdKToKKC1bVGVz
dFdLV2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6XSk6CigtW1Rlc3RXS1dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpdKToKKC1bVGVzdFdLV2ViVmlldyB3
YWl0Rm9yTWVzc2FnZTpdKToKKC1bVGVzdFdLV2ViVmlldyBwZXJmb3JtQWZ0ZXJMb2FkaW5nOl0p
OgooLVtUZXN0V0tXZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTpdKToK
KC1bVGVzdFdLV2ViVmlldyB0eXBlQ2hhcmFjdGVyOl0pOgotLS0KIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjEgKysrKysrKwogLi4uL3BsYXRm
b3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggICAgfCAgNiArKwogLi4uL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICAgfCAgNSArLQogU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMCArKysr
KysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSAg
ICB8IDIyICsrKy0tLS0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oIHwgIDYgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50Lmgg
ICAgICAgICAgICAgIHwgIDUgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwICAgICAgICAgIHwgMjIgKysrLS0tLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oICAgICAgICAgICAgfCAgNSArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiAgfCAgMyArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggICB8ICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gIHwgIDYgKysKIC4uLi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tICAgICAgIHwgMTggKysrKysrCiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oICAgICAgICB8ICA0ICstCiAuLi4vV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiB8ICA0ICstCiAuLi4v
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gICB8IDE3IC0tLS0t
LQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAz
OSArKysrKysrKysrKysrCiAuLi4vVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qICAgICAgICB8IDEyICsrLS0KIC4uLi9UZXN0cy9XZWJLaXQyQ29jb2EvTm93UGxheWluZ0Nv
bnRyb2xzVGVzdHMubW0gIHwgNDUgKysrKysrKysrKysrLS0tCiAuLi4vVGVzdHMvV2ViS2l0MkNv
Y29hL1NuYXBzaG90U3RvcmUubW0gICAgICAgICAgICB8ICAyICstCiAuLi4vVGVzdHMvV2ViS2l0
MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tICAgICB8ICAyICstCiAuLi4vVGVzdHMvV2Vi
S2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICB8ICAyICstCiAuLi4vVGVzdFdL
V2ViVmlld01hYy5oID0+IGNvY29hL1Rlc3RXS1dlYlZpZXcuaH0gICB8IDE5ICsrKy0tLQogLi4u
L1Rlc3RXS1dlYlZpZXdNYWMubW0gPT4gY29jb2EvVGVzdFdLV2ViVmlldy5tbX0gfCA2NyArKysr
KysrKysrKysrKysrLS0tLS0tCiAyNCBmaWxlcyBjaGFuZ2VkLCAyNzEgaW5zZXJ0aW9ucygrKSwg
OTMgZGVsZXRpb25zKC0pCiByZW5hbWUgVG9vbHMvVGVzdFdlYktpdEFQSS97bWFjL1Rlc3RXS1dl
YlZpZXdNYWMuaCA9PiBjb2NvYS9UZXN0V0tXZWJWaWV3Lmh9ICg5MiUpCiByZW5hbWUgVG9vbHMv
VGVzdFdlYktpdEFQSS97bWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0gPT4gY29jb2EvVGVzdFdLV2Vi
Vmlldy5tbX0gKDkyJSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJkMmZlNy4uOWUzZTZiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE3LTAxLTE5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCisgICAgICAgIFJFR1JFU1NJT04gKHIyMDgxNDkpOiBWaWRlbyBkZXRhaWxzIGRv
ZXMgbm90IGFwZWFyIGFuZCBtaXNzaW5nIHNjcnViYmVyIGluIENvbnRyb2wgQ2VudGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBJbiBUZXN0
V2ViS2l0QVBJLCBOb3dQbGF5aW5nQ29udHJvbHNUZXN0cy5Ob3dQbGF5aW5nQ29udHJvbHNJT1MK
KworICAgICAgICBJbiByMjA4MTQ5LCB3ZSBpbnRyb2R1Y2VkIGEgbmV3IG1lZGlhIHR5cGUsIFZp
ZGVvLCBhbmQgcmVuYW1lZCB0aGUgb2xkIHR5cGUgdG8KKyAgICAgICAgVmlkZW9BdWRpbyAodG8g
YmUgYWJsZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHZpZGVvLXdpdGgtYXVkaW8gYW5kIHNpbGVu
dC12aWRlbykuCisgICAgICAgIEJ1dCB3ZSBtaXNzZWQgb25lIHBsYWNlIHdoZXJlIHRoYXQgdHlw
ZSBuZWVkcyB0byBiZSByZW5hbWVkLgorCisgICAgICAgIEZvciB0ZXN0aW5nIHB1cnBvc2VzLCBv
dmVybG9hZCBtZXRob2RzIGZyb20gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyIHdoaWNoIFdl
YktpdDIgdXNlcworICAgICAgICB0byByZXBvcnQgdGhlIGN1cnJlbnQgbm93IHBsYXlpbmcgc2Vz
c2lvbiBhbmQgaXQncyBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lv
cy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9z
L01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b25NYW5hZ2VyaU9TOjpub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKToKKworMjAx
Ny0wMS0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwogICAgICAgICBDUkFT
SCBhdCBXZWJDb3JlOjpUcmFja0xpc3RCYXNlOjpyZW1vdmUKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIxNwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaApp
bmRleCBhZDAyYWE3Li41NTg0NGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKQEAgLTcwLDExICs3
MCwxNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzZXNzaW9uQ2FuTG9hZE1lZGlhKGNvbnN0IFBs
YXRmb3JtTWVkaWFTZXNzaW9uJikgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICBib29sIGhhc0FjdGl2
ZU5vd1BsYXlpbmdTZXNzaW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ub3dQbGF5aW5n
QWN0aXZlOyB9CisgICAgU3RyaW5nIGxhc3RVcGRhdGVkTm93UGxheWluZ1RpdGxlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9yZXBvcnRlZFRpdGxlOyB9CisgICAgZG91YmxlIGxhc3RVcGRh
dGVkTm93UGxheWluZ0R1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yZXBvcnRl
ZER1cmF0aW9uOyB9CisgICAgZG91YmxlIGxhc3RVcGRhdGVkTm93UGxheWluZ0VsYXBzZWRUaW1l
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yZXBvcnRlZEN1cnJlbnRUaW1lOyB9CisKICAg
ICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiogbm93UGxheWluZ0VsaWdpYmxlU2Vzc2lvbigpOwogICAg
IAogICAgIFJldGFpblB0cjxXZWJNZWRpYVNlc3Npb25IZWxwZXI+IG1fb2JqY09ic2VydmVyOwog
ICAgIGRvdWJsZSBtX3JlcG9ydGVkUmF0ZSB7IDAgfTsKICAgICBkb3VibGUgbV9yZXBvcnRlZER1
cmF0aW9uIHsgMCB9OworICAgIGRvdWJsZSBtX3JlcG9ydGVkQ3VycmVudFRpbWUgeyAwIH07CiAg
ICAgU3RyaW5nIG1fcmVwb3J0ZWRUaXRsZTsKICAgICBib29sIG1fbm93UGxheWluZ0FjdGl2ZSB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzSW5CYWNrZ3JvdW5kIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2Vy
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1h
bmFnZXJJT1MubW0KaW5kZXggNGEwNGI5Ni4uN2JjOGY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
bW0KQEAgLTIxOSw3ICsyMTksNyBAQCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiogTWVkaWFTZXNzaW9u
TWFuYWdlcmlPUzo6bm93UGxheWluZ0VsaWdpYmxlU2Vzc2lvbigpCiB7CiAgICAgcmV0dXJuIGZp
bmRTZXNzaW9uKFtdIChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbiwgc2l6ZV90KSB7CiAg
ICAgICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGUgdHlwZSA9IHNlc3Npb24ubWVk
aWFUeXBlKCk7Ci0gICAgICAgIGlmICh0eXBlICE9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRl
byAmJiB0eXBlICE9IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpBdWRpbykKKyAgICAgICAgaWYgKHR5
cGUgIT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVvQXVkaW8gJiYgdHlwZSAhPSBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6QXVkaW8pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAg
ICAgaWYgKHNlc3Npb24uY2hhcmFjdGVyaXN0aWNzKCkgJiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
SGFzQXVkaW8pCkBAIC0yNDksNiArMjQ5LDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9T
Ojp1cGRhdGVOb3dQbGF5aW5nSW5mbygpCiAgICAgU3RyaW5nIHRpdGxlID0gY3VycmVudFNlc3Np
b24tPnRpdGxlKCk7CiAgICAgZG91YmxlIGR1cmF0aW9uID0gY3VycmVudFNlc3Npb24tPmR1cmF0
aW9uKCk7CiAgICAgZG91YmxlIHJhdGUgPSBjdXJyZW50U2Vzc2lvbi0+c3RhdGUoKSA9PSBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheWluZyA/IDEgOiAwOworICAgIGRvdWJsZSBjdXJyZW50VGlt
ZSA9IGN1cnJlbnRTZXNzaW9uLT5jdXJyZW50VGltZSgpOwogICAgIGlmIChtX3JlcG9ydGVkVGl0
bGUgPT0gdGl0bGUgJiYgbV9yZXBvcnRlZFJhdGUgPT0gcmF0ZSAmJiBtX3JlcG9ydGVkRHVyYXRp
b24gPT0gZHVyYXRpb24pIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFTZXNzaW9uTWFuYWdl
cmlPUzo6dXBkYXRlTm93UGxheWluZ0luZm8gLSBub3RoaW5nIG5ldyB0byBzaG93Iik7CiAgICAg
ICAgIHJldHVybjsKQEAgLTI1Nyw2ICsyNTgsNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJp
T1M6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkKICAgICBtX3JlcG9ydGVkUmF0ZSA9IHJhdGU7CiAg
ICAgbV9yZXBvcnRlZER1cmF0aW9uID0gZHVyYXRpb247CiAgICAgbV9yZXBvcnRlZFRpdGxlID0g
dGl0bGU7CisgICAgbV9yZXBvcnRlZEN1cnJlbnRUaW1lID0gY3VycmVudFRpbWU7CiAKICAgICBh
dXRvIGluZm8gPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOwog
ICAgIGlmICghdGl0bGUuaXNFbXB0eSgpKQpAQCAtMjY1LDcgKzI2Nyw2IEBAIHZvaWQgTWVkaWFT
ZXNzaW9uTWFuYWdlcmlPUzo6dXBkYXRlTm93UGxheWluZ0luZm8oKQogICAgICAgICBpbmZvLmdl
dCgpW01QTWVkaWFJdGVtUHJvcGVydHlQbGF5YmFja0R1cmF0aW9uXSA9IEAoZHVyYXRpb24pOwog
ICAgIGluZm8uZ2V0KClbTVBOb3dQbGF5aW5nSW5mb1Byb3BlcnR5UGxheWJhY2tSYXRlXSA9IEAo
cmF0ZSk7CiAKLSAgICBkb3VibGUgY3VycmVudFRpbWUgPSBjdXJyZW50U2Vzc2lvbi0+Y3VycmVu
dFRpbWUoKTsKICAgICBpZiAoc3RkOjppc2Zpbml0ZShjdXJyZW50VGltZSkgJiYgY3VycmVudFRp
bWUgIT0gTWVkaWFQbGF5ZXI6OmludmFsaWRUaW1lKCkpCiAgICAgICAgIGluZm8uZ2V0KClbTVBO
b3dQbGF5aW5nSW5mb1Byb3BlcnR5RWxhcHNlZFBsYXliYWNrVGltZV0gPSBAKGN1cnJlbnRUaW1l
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDNlYTk4MDguLjdhN2VjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMyBAQAorMjAxNy0wMS0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBWaWRlbyBkZXRhaWxzIGRvZXMgbm90IGFwZWFyIGFuZCBtaXNzaW5nIHNjcnViYmVy
IGluIENvbnRyb2wgQ2VudGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjcyMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNYWtlIHJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oKSBhbmQg
aGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoKQorICAgICAgICB3b3Jr
IGluIFBMQVRGT1JNKElPUykuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nl
c3Npb25JbmZvXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaGFuZGxlQWN0aXZlTm93UGxheWlu
Z1Nlc3Npb25JbmZvUmVzcG9uc2U6dGl0bGU6ZHVyYXRpb246ZWxhcHNlZFRpbWU6XSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0QWN0aXZlTm93UGxh
eWluZ1Nlc3Npb25JbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVB
Y3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNw
b25zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNz
aW9uSW5mbyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8pOiBEZWxldGVkLgorCiAy
MDE3LTAxLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIE1h
a2UgX1dLRnVsbHNjcmVlbkRlbGVnYXRlIGF2YWlsYWJsZSB0byB1c2VycyBvZiB0aGUgV2ViS2l0
MiBDLUFQSS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KaW5kZXggNzdkODA5OS4uMWY1YWNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ4NjIsMTcgKzQ4NjIsNiBAQCBzdGF0
aWMgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1VzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24oVUlTZQogICAgIHJldHVybiBfaW1wbC0+c2hvdWxkUmVxdWVzdENhbmRp
ZGF0ZXMoKTsKIH0KIAotLSAodm9pZClfcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5m
bwotewotICAgIGlmIChfcGFnZSkKLSAgICAgICAgX3BhZ2UtPnJlcXVlc3RBY3RpdmVOb3dQbGF5
aW5nU2Vzc2lvbkluZm8oKTsKLX0KLQotLSAodm9pZClfaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nl
c3Npb25JbmZvUmVzcG9uc2U6KEJPT0wpaGFzQWN0aXZlU2Vzc2lvbiB0aXRsZTooTlNTdHJpbmcg
Kil0aXRsZSBkdXJhdGlvbjooZG91YmxlKWR1cmF0aW9uIGVsYXBzZWRUaW1lOihkb3VibGUpZWxh
cHNlZFRpbWUKLXsKLSAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMuCi19Ci0KIC0gKHZv
aWQpX2luc2VydFRleHQ6KGlkKXN0cmluZyByZXBsYWNlbWVudFJhbmdlOihOU1JhbmdlKXJlcGxh
Y2VtZW50UmFuZ2UKIHsKICAgICBbc2VsZiBpbnNlcnRUZXh0OnN0cmluZyByZXBsYWNlbWVudFJh
bmdlOnJlcGxhY2VtZW50UmFuZ2VdOwpAQCAtNDg5MCw2ICs0ODc5LDE3IEBAIHN0YXRpYyBXZWJD
b3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvbihVSVNlCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKKy0gKHZvaWQpX3JlcXVl
c3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8KK3sKKyAgICBpZiAoX3BhZ2UpCisgICAgICAg
IF9wYWdlLT5yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCk7Cit9CisKKy0gKHZv
aWQpX2hhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlOihCT09MKWhhc0Fj
dGl2ZVNlc3Npb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgZHVyYXRpb246KGRvdWJsZSlkdXJh
dGlvbiBlbGFwc2VkVGltZTooZG91YmxlKWVsYXBzZWRUaW1lCit7CisgICAgLy8gT3ZlcnJpZGRl
biBieSBzdWJjbGFzc2VzLgorfQorCiAtICh2b2lkKV9zZXRQYWdlU2NhbGU6KENHRmxvYXQpc2Nh
bGUgd2l0aE9yaWdpbjooQ0dQb2ludClvcmlnaW4KIHsKICAgICBfcGFnZS0+c2NhbGVQYWdlKHNj
YWxlLCBXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQob3JpZ2luKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDMx
M2IzMzguLmMwMTk2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0zMDgsMTUgKzMwOCwxNSBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAtICh2b2lkKV9m
b3JjZVJlcXVlc3RDYW5kaWRhdGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
KTsKIC0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5OihCT09MKXZpc2li
bGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRSZXF1ZXN0Q2FuZGlkYXRlcyBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7Ci0tICh2b2lkKV9yZXF1ZXN0QWN0aXZlTm93UGxh
eWluZ1Nlc3Npb25JbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKLS0g
KHZvaWQpX2hhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlOihCT09MKWhh
c0FjdGl2ZVNlc3Npb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgZHVyYXRpb246KGRvdWJsZSlk
dXJhdGlvbiBlbGFwc2VkVGltZTooZG91YmxlKWVsYXBzZWRUaW1lIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpKTsKLQogLSAodm9pZClfaW5zZXJ0VGV4dDooaWQpc3RyaW5nIHJl
cGxhY2VtZW50UmFuZ2U6KE5TUmFuZ2UpcmVwbGFjZW1lbnRSYW5nZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSk7CiAKIC0gKHZvaWQpX3NldEhlYWRlckJhbm5lckhlaWdodDoo
aW50KWhlaWdodCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAtICh2b2lk
KV9zZXRGb290ZXJCYW5uZXJIZWlnaHQ6KGludCloZWlnaHQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKKy0gKHZvaWQpX3JlcXVlc3RBY3RpdmVOb3dQbGF5
aW5nU2Vzc2lvbkluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAo
dm9pZClfaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2U6KEJPT0wpaGFz
QWN0aXZlU2Vzc2lvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBkdXJhdGlvbjooZG91YmxlKWR1
cmF0aW9uIGVsYXBzZWRUaW1lOihkb3VibGUpZWxhcHNlZFRpbWUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSkpOworCiAtICh2b2lkKV9zZXRQYWdlU2NhbGU6KENHRmxvYXQpc2Nh
bGUgd2l0aE9yaWdpbjooQ0dQb2ludClvcmlnaW4gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9T
X1RCQSkpOwogLSAoQ0dGbG9hdClfcGFnZVNjYWxlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMWMyMTBi
MS4uMjA3MjUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0yNTMs
NyArMjUzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJh
clN0eWxlRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGJhclN0eWxlKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZShjb25zdCBTdHJpbmcmKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jl
c3BvbnNlKGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgZG91Ymxl
IGR1cmF0aW9uLCBkb3VibGUgZWxhcHNlZFRpbWUpID0gMDsKIAogICAgIHZpcnR1YWwgQ0dSZWN0
IGJvdW5kc09mTGF5ZXJJbkxheWVyQmFja2VkV2luZG93Q29vcmRpbmF0ZXMoQ0FMYXllciAqKSBj
b25zdCA9IDA7CiAKQEAgLTI4NCw2ICsyODMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRFZGl0YWJsZUVsZW1lbnRJc0ZvY3VzZWQoYm9vbCkgPSAwOwogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVB
Y3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZShib29sIGhhc0FjdGl2ZVNlc3Npb24s
IGNvbnN0IFN0cmluZyYgdGl0bGUsIGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIGVsYXBzZWRUaW1l
KSA9IDA7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIHZvaWQgY29t
bWl0UG90ZW50aWFsVGFwRmFpbGVkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRHZXRUYXBI
aWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29s
b3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRRdWFkcywg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbUxlZnRS
YWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGViOTM5NWMuLmQ4
ZWVjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02
NDczLDE2ICs2NDczLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RDb250cm9sbGVkRWxl
bWVudElEKCkgY29uc3QKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFj
dGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygpCi17Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpSZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCksIG1fcGFn
ZUlEKTsKLX0KLQotdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNz
aW9uSW5mb1Jlc3BvbnNlKGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgZWxhcHNlZFRpbWUpIGNvbnN0Ci17Ci0gICAgbV9w
YWdlQ2xpZW50LmhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGhhc0Fj
dGl2ZVNlc3Npb24sIHRpdGxlLCBkdXJhdGlvbiwgZWxhcHNlZFRpbWUpOwotfQotCiB2b2lkIFdl
YlBhZ2VQcm94eTo6aGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlKGNvbnN0IFN0cmlu
ZyYgaWRlbnRpZmllcikgY29uc3QKIHsKICAgICBtX3BhZ2VDbGllbnQuaGFuZGxlQ29udHJvbGxl
ZEVsZW1lbnRJRFJlc3BvbnNlKGlkZW50aWZpZXIpOwpAQCAtNjQ5OCw2ICs2NDg4LDE4IEBAIGJv
b2wgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29u
c3QKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCit2b2lkIFdlYlBhZ2VQcm94eTo6
cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygpCit7CisgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZv
KCksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUFjdGl2ZU5vd1Bs
YXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgZWxhcHNlZFRpbWUpIGNvbnN0Cit7
CisgICAgbV9wYWdlQ2xpZW50LmhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3Bv
bnNlKGhhc0FjdGl2ZVNlc3Npb24sIHRpdGxlLCBkdXJhdGlvbiwgZWxhcHNlZFRpbWUpOworfQor
I2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIHZvaWQgV2ViUGFnZVByb3h5Ojpo
YXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENoYW5nZShib29sIHN0YXRl
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGVmNTZiMWMu
LjRmNTVhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEw
NjEsOSArMTA2MSwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNBY3RpdmVWaWRlb0ZvckNvbnRy
b2xzTWFuYWdlcigpIGNvbnN0OwogICAgIHZvaWQgcmVxdWVzdENvbnRyb2xsZWRFbGVtZW50SUQo
KSBjb25zdDsKICAgICB2b2lkIGhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZShjb25z
dCBTdHJpbmcmKSBjb25zdDsKKyAgICBib29sIGlzUGxheWluZ1ZpZGVvSW5FbmhhbmNlZEZ1bGxz
Y3JlZW4oKSBjb25zdDsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBy
ZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCk7CiAgICAgdm9pZCBoYW5kbGVBY3Rp
dmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZShib29sIGhhc0FjdGl2ZVNlc3Npb24sIGNv
bnN0IFN0cmluZyYgdGl0bGUsIGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIGVsYXBzZWRUaW1lKSBj
b25zdDsKLSAgICBib29sIGlzUGxheWluZ1ZpZGVvSW5FbmhhbmNlZEZ1bGxzY3JlZW4oKSBjb25z
dDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2MjEwMmExLi4x
NjdiMGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KQEAgLTQ4Myw2ICs0ODMsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIERpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKCkK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgSGFuZGxlQWN0aXZlTm93UGxheWlu
Z1Nlc3Npb25JbmZvUmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9uLCBTdHJpbmcgdGl0bGUs
IGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIGVsYXBzZWRUaW1lKQogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggNjli
NjEzNS4uNGNhMmU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaApAQCAtMTk0LDYgKzE5NCw4IEBAIHByaXZhdGU6CiAKICAgICBXZWJD
b3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24oKSBvdmVycmlkZTsKIAorICAgIHZvaWQgaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Np
b25JbmZvUmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSkgb3ZlcnJpZGU7CisKICAgICBX
S0NvbnRlbnRWaWV3ICptX2NvbnRlbnRWaWV3OwogICAgIFdLV2ViVmlldyAqbV93ZWJWaWV3Owog
ICAgIFJldGFpblB0cjxXS0VkaXRvclVuZG9UYXJnZXRPYmpDPiBtX3VuZG9UYXJnZXQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRl
eCBjZTM2NDA1Li5mNTY0OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIkludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50LmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uU3RhdGUuaCIKKyNpbXBvcnQgIlN0cmluZ1V0
aWxpdGllcy5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIlZpZXdTbmFwc2hvdFN0
b3JlLmgiCiAjaW1wb3J0ICJXS0NvbnRlbnRWaWV3LmgiCkBAIC03NDksNiArNzUwLDExIEBAIHN0
ZDo6dW5pcXVlX3B0cjxWYWxpZGF0aW9uQnViYmxlPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlVmFs
aWRhdGlvbkJ1YmJsZShjb25zdCBTCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VmFsaWRh
dGlvbkJ1YmJsZT4obV9jb250ZW50VmlldywgbWVzc2FnZSk7CiB9CiAKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wgaGFz
QWN0aXZlU2Vzc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBkb3Vi
bGUgZWxhcHNlZFRpbWUpCit7CisgICAgW21fd2ViVmlldyBfaGFuZGxlQWN0aXZlTm93UGxheWlu
Z1Nlc3Npb25JbmZvUmVzcG9uc2U6aGFzQWN0aXZlU2Vzc2lvbiB0aXRsZTpuc1N0cmluZ0Zyb21X
ZWJDb3JlU3RyaW5nKHRpdGxlKSBkdXJhdGlvbjpkdXJhdGlvbiBlbGFwc2VkVGltZTplbGFwc2Vk
VGltZV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0o
SU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29h
L1dlYlBhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db2Nv
YS9XZWJQYWdlQ29jb2EubW0KaW5kZXggOTE4NDQ2Ni4uZDQwYTBkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1t
CkBAIC0yNyw2ICsyNyw4IEBACiAjaW1wb3J0ICJXZWJQYWdlLmgiCiAKICNpbXBvcnQgIkxvYWRQ
YXJhbWV0ZXJzLmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCA8
V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogCkBAIC0zOSw2ICs0MSwyMiBAQCB2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtRGlkUmVjZWl2
ZUxvYWRQYXJhbWV0ZXJzKGNvbnN0IExvYWRQYXJhbWV0ZXJzJiBsb2FkUGFyYW1ldAogICAgIG1f
ZGF0YURldGVjdGlvbkNvbnRleHQgPSBsb2FkUGFyYW1ldGVycy5kYXRhRGV0ZWN0aW9uQ29udGV4
dDsKIH0KIAordm9pZCBXZWJQYWdlOjpyZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZv
KCkKK3sKKyAgICBib29sIGhhc0FjdGl2ZVNlc3Npb24gPSBmYWxzZTsKKyAgICBTdHJpbmcgdGl0
bGUgPSBlbXB0eVN0cmluZygpOworICAgIGRvdWJsZSBkdXJhdGlvbiA9IE5BTjsKKyAgICBkb3Vi
bGUgZWxhcHNlZFRpbWUgPSBOQU47CisgICAgaWYgKGF1dG8qIHNoYXJlZE1hbmFnZXIgPSBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0cygp
KSB7CisgICAgICAgIGhhc0FjdGl2ZVNlc3Npb24gPSBzaGFyZWRNYW5hZ2VyLT5oYXNBY3RpdmVO
b3dQbGF5aW5nU2Vzc2lvbigpOworICAgICAgICB0aXRsZSA9IHNoYXJlZE1hbmFnZXItPmxhc3RV
cGRhdGVkTm93UGxheWluZ1RpdGxlKCk7CisgICAgICAgIGR1cmF0aW9uID0gc2hhcmVkTWFuYWdl
ci0+bGFzdFVwZGF0ZWROb3dQbGF5aW5nRHVyYXRpb24oKTsKKyAgICAgICAgZWxhcHNlZFRpbWUg
PSBzaGFyZWRNYW5hZ2VyLT5sYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2VkVGltZSgpOworICAg
IH0KKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlQWN0aXZlTm93UGxh
eWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoaGFzQWN0aXZlU2Vzc2lvbiwgdGl0bGUsIGR1cmF0aW9u
LCBlbGFwc2VkVGltZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggODFjZTc1MS4uNzRjMGNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjIzLDEwICsxMjIzLDEyIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkYXRhRGV0ZWN0b3JzRGlkSGlkZVVJKFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpQYWdl
T3ZlcmxheUlEKTsKIAogICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVzdWx0KTsKLSAgICB2b2lkIHJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vz
c2lvbkluZm8oKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCByZXF1
ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCk7CiAgICAgdm9pZCBzZXRTaG91bGREaXNw
YXRjaEZha2VNb3VzZU1vdmVFdmVudHMoYm9vbCBkaXNwYXRjaCkgeyBtX3Nob3VsZERpc3BhdGNo
RmFrZU1vdXNlTW92ZUV2ZW50cyA9IGRpc3BhdGNoOyB9CisjZW5kaWYKIAogI2lmIEVOQUJMRShX
SVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBwbGF5
YmFja1RhcmdldFNlbGVjdGVkKHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpNZWRpYVBsYXliYWNr
VGFyZ2V0Q29udGV4dCYgb3V0cHV0RGV2aWNlKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNzU2YjYy
Mi4uOGFhYzk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQyNCwxMyArNDI0LDE1IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIERhdGFEZXRlY3RvcnNEaWRIaWRlVUkoV2Vi
Q29yZTo6UGFnZU92ZXJsYXk6OlBhZ2VPdmVybGF5SUQgcGFnZU92ZXJsYXkpCiAKICAgICBIYW5k
bGVBY2NlcHRlZENhbmRpZGF0ZShzdHJ1Y3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0IGFj
Y2VwdGVkQ2FuZGlkYXRlKQotICAgIFJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8o
KQogCiAgICAgU2V0SGVhZGVyQmFubmVySGVpZ2h0Rm9yVGVzdGluZyhpbnQgaGVpZ2h0KTsKICAg
ICBTZXRGb290ZXJCYW5uZXJIZWlnaHRGb3JUZXN0aW5nKGludCBoZWlnaHQpOwogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBSZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25J
bmZvKCkKICAgICBTZXRTaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoYm9vbCBzaG91
bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMpCisjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCiAgICAgUGxheWJhY2tUYXJn
ZXRTZWxlY3RlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0IHRhcmdldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCBmN2ViOGQ3Li4yOTQ5NjdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBA
IC03Niw3ICs3Niw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGFnZU92ZXJsYXlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luRG9jdW1lbnQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVuZGVyRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJPYmplY3QuaD4KQEAg
LTE2MiwyMiArMTYxLDYgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZShX
ZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQgYWNjZXB0ZWRDYW5kaWQKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKCkpOwogfQogCi12
b2lkIFdlYlBhZ2U6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oKQotewotICAg
IGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiA9IGZhbHNlOwotICAgIFN0cmluZyB0aXRsZSA9IGVtcHR5
U3RyaW5nKCk7Ci0gICAgZG91YmxlIGR1cmF0aW9uID0gTkFOOwotICAgIGRvdWJsZSBlbGFwc2Vk
VGltZSA9IE5BTjsKLSAgICBpZiAoYXV0byogc2hhcmVkTWFuYWdlciA9IFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcklmRXhpc3RzKCkpIHsKLSAgICAg
ICAgaGFzQWN0aXZlU2Vzc2lvbiA9IHNoYXJlZE1hbmFnZXItPmhhc0FjdGl2ZU5vd1BsYXlpbmdT
ZXNzaW9uKCk7Ci0gICAgICAgIHRpdGxlID0gc2hhcmVkTWFuYWdlci0+bGFzdFVwZGF0ZWROb3dQ
bGF5aW5nVGl0bGUoKTsKLSAgICAgICAgZHVyYXRpb24gPSBzaGFyZWRNYW5hZ2VyLT5sYXN0VXBk
YXRlZE5vd1BsYXlpbmdEdXJhdGlvbigpOwotICAgICAgICBlbGFwc2VkVGltZSA9IHNoYXJlZE1h
bmFnZXItPmxhc3RVcGRhdGVkTm93UGxheWluZ0VsYXBzZWRUaW1lKCk7Ci0gICAgfQotCi0gICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lv
bkluZm9SZXNwb25zZShoYXNBY3RpdmVTZXNzaW9uLCB0aXRsZSwgZHVyYXRpb24sIGVsYXBzZWRU
aW1lKSk7Ci19Ci0KIE5TT2JqZWN0ICpXZWJQYWdlOjphY2Nlc3NpYmlsaXR5T2JqZWN0Rm9yTWFp
bkZyYW1lUGx1Z2luKCkKIHsKICAgICBpZiAoIW1fcGFnZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5OTdiZDdiLi5jMDM2YzJiIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTctMDEtMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgVmlkZW8gZGV0YWlscyBkb2VzIG5vdCBhcGVhciBhbmQgbWlzc2luZyBzY3J1YmJlciBpbiBD
b250cm9sIENlbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY3MjMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVmYWN0b3IgVGVzdFdLV2ViVmlld01hYyB0byB3b3JrIG9uIFBMQVRGT1JNKElPUyku
IEFkZCBhIG5ldyB0ZXN0IHRvCisgICAgICAgIE5vd1BsYXlpbmdDb250cm9sVGVzdHMgZm9yIGlP
Uy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L05vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tOgorICAgICAgICAoLVtOb3dQbGF5aW5nVGVzdFdl
YlZpZXcgc2V0V2luZG93VmlzaWJsZTpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1NuYXBzaG90U3Rv
cmUubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9D
b250cm9sc01hbmFnZXIubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmg6IFJlbmFtZWQgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJ
L21hYy9UZXN0V0tXZWJWaWV3TWFjLmguCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0V0tXZWJWaWV3Lm1tOiBSZW5hbWVkIGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVz
dFdLV2ViVmlld01hYy5tbS4KKyAgICAgICAgKFNPRlRfTElOS19DTEFTUyk6CisgICAgICAgICgt
W1Rlc3RNZXNzYWdlSGFuZGxlciBhZGRNZXNzYWdlOndpdGhIYW5kbGVyOl0pOgorICAgICAgICAo
LVtUZXN0TWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3Jp
cHRNZXNzYWdlOl0pOgorICAgICAgICAoX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRF
dmVudHNNYXNrKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgX21vdXNlRG93
bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlld0hv
c3RXaW5kb3cgaXNLZXlXaW5kb3ddKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlld0hvc3RXaW5k
b3cgbWFrZUtleVdpbmRvd10pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBy
ZXNpZ25LZXlXaW5kb3ddKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBpbml0V2l0aEZyYW1l
Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlv
bjpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBfc2V0VXBUZXN0V2luZG93Ol0pOgorICAg
ICAgICAoLVtUZXN0V0tXZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6YWN0aW9u
Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOl0pOgorICAg
ICAgICAoLVtUZXN0V0tXZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpdKToK
KyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0Ol0p
OgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOl0pOgorICAgICAgICAo
LVtUZXN0V0tXZWJWaWV3IHBlcmZvcm1BZnRlckxvYWRpbmc6XSk6CisgICAgICAgICgtW1Rlc3RX
S1dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpzaW11bGF0ZVByZXNzdXJlOl0pOgorICAgICAgICAo
LVtUZXN0V0tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6XSk6CisKIDIwMTYtMTItMTkgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHNjaGVtZSBmb3IgTW9iaWxl
TWluaUJyb3dzZXJVSVRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQwNTY0MjQuLjAx
OGVkMzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04Niw3ICs4Niw3IEBACiAJCTJFRkYw
NkM1MUQ4ODY3NzYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVG
RjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRt
bCAqLzsgfTsKIAkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3Vy
Y2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3Vy
Y2Utb24tZW5kLmh0bWwgKi87IH07CiAJCTJFRkYwNkNEMUQ4QTQyOUEwMDA0QkIzMCAvKiBpbnB1
dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2Q0MxRDhBNDI5MTAwMDRCQjMw
IC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCAqLzsgfTsKLQkJMkVG
RjA2RDQxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZEMzFEOEFFREJCMDAwNEJC
MzAgLyogVGVzdFdLV2ViVmlld01hYy5tbSAqLzsgfTsKKwkJMkVGRjA2RDQxRDhBRURCQjAwMDRC
QjMwIC8qIFRlc3RXS1dlYlZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRUZGMDZEMzFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlldy5t
bSAqLzsgfTsKIAkJMkVGRjA2RDcxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0
ZVRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkVGRjA2RDYxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICov
OyB9OwogCQkzMTUxMTgxMDFEQjFBRTQwMDAxNzYzMDQgLyogRXh0ZW5kZWRDb2xvci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTUxMTgwRjFEQjFB
REQ1MDAxNzYzMDQgLyogRXh0ZW5kZWRDb2xvci5jcHAgKi87IH07CiAJCTMzQkU1QUY5MTM3QjVB
QUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JFNUFGODEzN0I1QUFFMDA3MDU4
MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovOyB9OwpAQCAtODc2LDggKzg3
Niw4IEBACiAJCTJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNl
LW9uLWNsaWNrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY2hhbmdlLXZpZGVv
LXNvdXJjZS1vbi1jbGljay5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVG
RjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRkYwNkNDMUQ4QTQyOTEwMDA0
QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAiaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkVGRjA2RDIxRDhBRURCQjAwMDRC
QjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGVzdFdLV2ViVmlld01hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRUZG
MDZEMzFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRlc3RXS1dlYlZpZXdNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRkYwNkQyMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tX
ZWJWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRlc3RXS1dlYlZpZXcu
aDsgcGF0aCA9IGNvY29hL1Rlc3RXS1dlYlZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXcubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXN0V0tXZWJWaWV3Lm1tOyBwYXRo
ID0gY29jb2EvVGVzdFdLV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkVGRjA2RDYxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3Q2FuZGlkYXRl
VGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNTExODBGMURCMUFERDUw
MDE3NjMwNCAvKiBFeHRlbmRlZENvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEV4dGVuZGVkQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMgLyogUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZXZlbnRFbXB0eVVzZXJBZ2Vu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDI3LDYgKzE0MjcsOCBAQAog
CQkJCTJEMUMwNEE2MUQ3NjI5OEIwMDBBNjgxNiAvKiBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1t
ICovLAogCQkJCUExNEZDNThEMUI4QUUzNjUwMEQxMDdFQiAvKiBUZXN0UHJvdG9jb2wuaCAqLywK
IAkJCQlBMTRGQzU4RTFCOEFFMzY1MDBEMTA3RUIgLyogVGVzdFByb3RvY29sLm1tICovLAorCQkJ
CTJFRkYwNkQyMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3LmggKi8sCisJCQkJMkVG
RjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXcubW0gKi8sCiAJCQkJN0M4M0Uw
MzkxRDBBNjAyNzAwRkVCQ0YzIC8qIFV0aWxpdGllc0NvY29hLm1tICovLAogCQkJCUExNEZDNTg0
MUI4OTczOTEwMEQxMDdFQiAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmggKi8sCiAJ
CQkJQTE0RkM1ODMxQjg5NzM5MTAwRDEwN0VCIC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRy
YXMubW0gKi8sCkBAIC0yMDAxLDggKzIwMDMsNiBAQAogCQkJCUMwODEyMjQ0MTNGQzE5RUMwMERD
MzlBRSAvKiBTeW50aGV0aWNCYWNraW5nU2NhbGVGYWN0b3JXaW5kb3cubSAqLywKIAkJCQkyOUFC
OEFBMzE2NEM3QTkzMDBENDlCRUMgLyogVGVzdEJyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZS5o
ICovLAogCQkJCTI5QUI4QUEyMTY0QzdBOTMwMEQ0OUJFQyAvKiBUZXN0QnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlLm1tICovLAotCQkJCTJFRkYwNkQyMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0
V0tXZWJWaWV3TWFjLmggKi8sCi0JCQkJMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RX
S1dlYlZpZXdNYWMubW0gKi8sCiAJCQkJQzA4NTg3QkUxM0ZFOTU2QzAwMUVGNEU1IC8qIFdlYktp
dEFnbm9zdGljVGVzdC5oICovLAogCQkJCUMwODU4N0JEMTNGRTk1NkMwMDFFRjRFNSAvKiBXZWJL
aXRBZ25vc3RpY1Rlc3QubW0gKi8sCiAJCQkpOwpAQCAtMjU1NSw3ICsyNTU1LDcgQEAKIAkJCQk4
MzQ5RDNDMjFEQjk2RERFMDA0QTlGNjUgLyogQ29udGV4dE1lbnVEb3dubG9hZC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RUZDMUE0MTFBRTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1bmRsZUZy
YW1lSGl0VGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGRDFBNDExQUU2MDA0NDdD
NEMgLyogSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTJFRkYwNkQ0MUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tX
ZWJWaWV3TWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkVGRjA2RDQxRDhBRURCQjAwMDRCQjMw
IC8qIFRlc3RXS1dlYlZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCODFEMEE2NEJE
MDBGRUJDRjMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDQ0U3RUMzMUE0MTFBN0UwMDQ0N0M0QyAvKiBJbnNwZWN0b3JCYXIu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQTFBNDExQTg3MDA0NDdDNEMgLyogSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvTm93UGxheWluZ0NvbnRyb2xzVGVzdHMubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Ob3dQbGF5aW5nQ29udHJv
bHNUZXN0cy5tbQppbmRleCA1NzI1MTExLi5iNWQ5NzkwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Ob3dQbGF5aW5nQ29udHJvbHNUZXN0cy5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Ob3dQbGF5aW5nQ29u
dHJvbHNUZXN0cy5tbQpAQCAtMjYsMTIgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAK
ICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJUZXN0V0tXZWJWaWV3TWFj
LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGUuaD4KIAotI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTIwMQorI2lmIFdLX0FQSV9FTkFCTEVEICYmIChQ
TEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEyMDEp
CiAKIEBpbnRlcmZhY2UgTm93UGxheWluZ1Rlc3RXZWJWaWV3IDogVGVzdFdLV2ViVmlldwogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGhhc0FjdGl2ZU5vd1BsYXlpbmdTZXNz
aW9uOwpAQCAtOTMsMTAgKzkzLDIwIEBACiAKICAgICBfcmVjZWl2ZWROb3dQbGF5aW5nSW5mb1Jl
c3BvbnNlID0gdHJ1ZTsKIH0KKworLSAodm9pZClzZXRXaW5kb3dWaXNpYmxlOihCT09MKWlzVmlz
aWJsZQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBbc2VsZi53aW5kb3cgc2V0SXNWaXNpYmxl
OmlzVmlzaWJsZV07CisjZWxzZQorICAgIHNlbGYud2luZG93LmhpZGRlbiA9ICFpc1Zpc2libGU7
CisjZW5kaWYKK30KIEBlbmQKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCisjaWYgUExB
VEZPUk0oTUFDKQogVEVTVChOb3dQbGF5aW5nQ29udHJvbHNUZXN0cywgTm93UGxheWluZ0NvbnRy
b2xzRG9Ob3RTaG93Rm9yRm9yZWdyb3VuZFBhZ2UpCiB7CiAgICAgV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiAqY29uZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF07CkBAIC0xMDUsNyArMTE1LDcgQEAgVEVTVChOb3dQbGF5aW5nQ29udHJvbHNUZXN0cywgTm93
UGxheWluZ0NvbnRyb2xzRG9Ob3RTaG93Rm9yRm9yZWdyb3VuZFBhZ2UpCiAgICAgW3dlYlZpZXcg
bG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nIl07CiAgICAg
W3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJwbGF5aW5nIl07CiAKLSAgICBbd2ViVmlldy53aW5k
b3cgc2V0SXNWaXNpYmxlOllFU107CisgICAgW3dlYlZpZXcgc2V0V2luZG93VmlzaWJsZTpZRVNd
OwogICAgIFt3ZWJWaWV3LndpbmRvdyBtYWtlS2V5V2luZG93XTsKICAgICBbd2ViVmlldyBleHBl
Y3RIYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbjpOT107CiAKQEAgLTEyMiw3ICsxMzIsNyBAQCBU
RVNUKE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLCBOb3dQbGF5aW5nQ29udHJvbHNTaG93Rm9yQmFj
a2dyb3VuZFBhZ2UpCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRl
by10ZXN0LW5vdy1wbGF5aW5nIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJwbGF5
aW5nIl07CiAKLSAgICBbd2ViVmlldy53aW5kb3cgc2V0SXNWaXNpYmxlOk5PXTsKKyAgICBbd2Vi
VmlldyBzZXRXaW5kb3dWaXNpYmxlOk5PXTsKICAgICBbd2ViVmlldy53aW5kb3cgcmVzaWduS2V5
V2luZG93XTsKICAgICBbd2ViVmlldyBleHBlY3RIYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbjpZ
RVNdOwogCkBAIC0xMzksMTIgKzE0OSwxMiBAQCBURVNUKE5vd1BsYXlpbmdDb250cm9sc1Rlc3Rz
LCBOb3dQbGF5aW5nQ29udHJvbHNIaWRlQWZ0ZXJTaG93aW5nS2VlcHNTZXNzaW9uQWN0aQogICAg
IFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAibGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWlu
ZyJdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAicGxheWluZyJdOwogCi0gICAgW3dl
YlZpZXcud2luZG93IHNldElzVmlzaWJsZTpOT107CisgICAgW3dlYlZpZXcgc2V0V2luZG93Vmlz
aWJsZTpOT107CiAgICAgW3dlYlZpZXcud2luZG93IHJlc2lnbktleVdpbmRvd107CiAKICAgICBb
d2ViVmlldyBleHBlY3RIYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbjpZRVNdOwogCi0gICAgW3dl
YlZpZXcud2luZG93IHNldElzVmlzaWJsZTpZRVNdOworICAgIFt3ZWJWaWV3IHNldFdpbmRvd1Zp
c2libGU6WUVTXTsKICAgICBbd2ViVmlldy53aW5kb3cgbWFrZUtleVdpbmRvd107CiAKICAgICBb
d2ViVmlldyBleHBlY3RIYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbjpOT107CkBAIC0xNjIsOCAr
MTcyLDggQEAgVEVTVChOb3dQbGF5aW5nQ29udHJvbHNUZXN0cywgTm93UGxheWluZ0NvbnRyb2xz
Q2xlYXJJbmZvQWZ0ZXJTZXNzaW9uSXNOb0xvbmdlclYKICAgICBbd2ViVmlldyBsb2FkVGVzdFBh
Z2VOYW1lZDpAImxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmciXTsKICAgICBbd2ViVmlldyB3
YWl0Rm9yTWVzc2FnZTpAInBsYXlpbmciXTsKIAotICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9p
bnQ6TlNNYWtlUG9pbnQoMjQwLCAxNjApIHNpbXVsYXRlUHJlc3N1cmU6WUVTXTsKLSAgICBbd2Vi
Vmlldy53aW5kb3cgc2V0SXNWaXNpYmxlOk5PXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKS5tdXRlZCA9
IHRydWUiXTsKKyAgICBbd2ViVmlldyBzZXRXaW5kb3dWaXNpYmxlOk5PXTsKICAgICBbd2ViVmll
dy53aW5kb3cgcmVzaWduS2V5V2luZG93XTsKIAogICAgIFt3ZWJWaWV3IHdhaXRGb3JOb3dQbGF5
aW5nSW5mb1RvQ2hhbmdlXTsKQEAgLTE3Miw3ICsxODIsMjQgQEAgVEVTVChOb3dQbGF5aW5nQ29u
dHJvbHNUZXN0cywgTm93UGxheWluZ0NvbnRyb2xzQ2xlYXJJbmZvQWZ0ZXJTZXNzaW9uSXNOb0xv
bmdlclYKICAgICBBU1NFUlRfVFJVRShpc25hbih3ZWJWaWV3Lmxhc3RVcGRhdGVkRHVyYXRpb24p
KTsKICAgICBBU1NFUlRfVFJVRShpc25hbih3ZWJWaWV3Lmxhc3RVcGRhdGVkRWxhcHNlZFRpbWUp
KTsKIH0KKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKKyNpZiBQTEFURk9STShJT1MpCitURVNU
KE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLCBOb3dQbGF5aW5nQ29udHJvbHNJT1MpCit7CisgICAg
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF07CisgICAgY29uZmlndXJhdGlvbi5tZWRpYVR5cGVzUmVxdWly
aW5nVXNlckFjdGlvbkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZU5vbmU7Cisg
ICAgTm93UGxheWluZ1Rlc3RXZWJWaWV3ICp3ZWJWaWV3ID0gW1tOb3dQbGF5aW5nVGVzdFdlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0ODAsIDMyMCkgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXTsKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpA
ImxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmciXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVz
c2FnZTpAInBsYXlpbmciXTsKKworICAgIFt3ZWJWaWV3IGV4cGVjdEhhc0FjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uOllFU107CisgICAgQVNTRVJUX1NUUkVRKCJmb28iLCB3ZWJWaWV3Lmxhc3RVcGRh
dGVkVGl0bGUuVVRGOFN0cmluZyk7CisgICAgQVNTRVJUX0VRKDEwLCB3ZWJWaWV3Lmxhc3RVcGRh
dGVkRHVyYXRpb24pOworICAgIEFTU0VSVF9HRSh3ZWJWaWV3Lmxhc3RVcGRhdGVkRWxhcHNlZFRp
bWUsIDApOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAotI2Vu
ZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01BWF9BTExPV0VEID49IDEwMTIwMQorI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIChQ
TEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEyMDEp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TbmFw
c2hvdFN0b3JlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvU25h
cHNob3RTdG9yZS5tbQppbmRleCAyMjhlNzYxLi4xYWY4NjA1IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TbmFwc2hvdFN0b3JlLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1NuYXBzaG90U3RvcmUubW0KQEAg
LTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJU
ZXN0LmgiCiAjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCi0jaW1wb3J0ICJUZXN0
V0tXZWJWaWV3TWFjLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJL
aXQvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUGFn
ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUGFnZVByaXZhdGUuaD4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01h
bmFnZXIubW0KaW5kZXggZmRkYmVhOS4uMWQ2MzBjOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFn
ZXIubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMuaCIKKyNpbXBv
cnQgIlRlc3RXS1dlYlZpZXcuaCIKIAogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3
Q2FuZGlkYXRlVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQppbmRleCBlZDcyMjMxLi45ZGQzOWJiIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdD
YW5kaWRhdGVUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQpAQCAtMjgsNyArMjgsNyBAQAogI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9B
TExPV0VEID49IDEwMTIwMQogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotI2ltcG9y
dCAiVGVzdFdLV2ViVmlld01hYy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogCiAjaW1w
b3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0UHJpdmF0ZS5oPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKc2ltaWxhcml0eSBpbmRl
eCA5MiUKcmVuYW1lIGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01h
Yy5oCnJlbmFtZSB0byBUb29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApp
bmRleCA0NWNjYWJkLi5hMWU4MjcwMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
bWFjL1Rlc3RXS1dlYlZpZXdNYWMuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3RXS1dlYlZpZXcuaApAQCAtMjMsMjkgKzIzLDMwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBUZXN0V0tXZWJWaWV3TWFjX2gKLSNkZWZpbmUg
VGVzdFdLV2ViVmlld01hY19oCi0KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KIAotI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykKKyNpZiBXS19BUElfRU5BQkxFRAogCiBAaW50
ZXJmYWNlIFRlc3RNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5k
bGVyPgogLSAodm9pZClhZGRNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2Ugd2l0aEhhbmRsZXI6
KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcjsKIEBlbmQKIAogQGludGVyZmFjZSBUZXN0V0tXZWJW
aWV3IDogV0tXZWJWaWV3Ci0vLyBTaW11bGF0ZXMgY2xpY2tpbmcgd2l0aCBhIHByZXNzdXJlLXNl
bnNpdGl2ZSBkZXZpY2UsIGlmIHBvc3NpYmxlLgotLSAodm9pZCltb3VzZURvd25BdFBvaW50OihO
U1BvaW50KXBvaW50IHNpbXVsYXRlUHJlc3N1cmU6KEJPT0wpc2ltdWxhdGVQcmVzc3VyZTsKIC0g
KHZvaWQpcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGFj
dGlvbjooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb247CiAtICh2b2lkKWxvYWRUZXN0UGFnZU5hbWVk
OihOU1N0cmluZyAqKXBhZ2VOYW1lOwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdl
TmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7Ci0tICh2b2lkKXR5cGVDaGFyYWN0ZXI6KGNoYXIp
Y2hhcmFjdGVyOwogLSAoTlNTdHJpbmcgKilzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OihO
U1N0cmluZyAqKXNjcmlwdDsKIC0gKHZvaWQpd2FpdEZvck1lc3NhZ2U6KE5TU3RyaW5nICopbWVz
c2FnZTsKIC0gKHZvaWQpcGVyZm9ybUFmdGVyTG9hZGluZzooZGlzcGF0Y2hfYmxvY2tfdClhY3Rp
b25zOwogQGVuZAogCi0jZW5kaWYgLyogV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKSAq
LworI2lmIFBMQVRGT1JNKE1BQykKK0BpbnRlcmZhY2UgVGVzdFdLV2ViVmlldyAoTWFjT25seSkK
Ky8vIFNpbXVsYXRlcyBjbGlja2luZyB3aXRoIGEgcHJlc3N1cmUtc2Vuc2l0aXZlIGRldmljZSwg
aWYgcG9zc2libGUuCistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgc2lt
dWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlOworLSAodm9pZCl0eXBlQ2hhcmFj
dGVyOihjaGFyKWNoYXJhY3RlcjsKK0BlbmQKKyNlbmRpZgorCisjZW5kaWYgLy8gV0tfQVBJX0VO
QUJMRUQKIAotI2VuZGlmIC8qIFRlc3RXS1dlYlZpZXdNYWNfaCAqLwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpzaW1pbGFyaXR5IGluZGV4IDkyJQpyZW5hbWUg
ZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tCnJlbmFtZSB0
byBUb29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggODkzYjFi
Yy4uMmJjZTIwZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2Vi
Vmlld01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
bW0KQEAgLTI0LDE5ICsyNCwyOCBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9y
dCAiVGVzdFdLV2ViVmlld01hYy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogCi0jaWYg
V0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKQorI2lmIFdLX0FQSV9FTkFCTEVECiAKICNp
bXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQgIlV0aWxpdGllcy5oIgog
Ci0jaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+Ci0jaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViS2l0UHJpdmF0ZS5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBQTEFURk9STShNQUMpCisjaW1wb3J0
IDxBcHBLaXQvQXBwS2l0Lmg+CisjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDx3
dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4KKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oSU9TKQorI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgorU09GVF9MSU5L
X0ZSQU1FV09SSyhVSUtpdCkKK1NPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlXaW5kb3cpCisjZW5k
aWYKIAogQGltcGxlbWVudGF0aW9uIFRlc3RNZXNzYWdlSGFuZGxlciB7CiAgICAgTlNNdXRhYmxl
RGljdGlvbmFyeTxOU1N0cmluZyAqLCBkaXNwYXRjaF9ibG9ja190PiAqX21lc3NhZ2VIYW5kbGVy
czsKQEAgLTU5LDEzICs2OCwxOCBAQAogCiBAZW5kCiAKKyNpZiBQTEFURk9STShNQUMpCiBAaW50
ZXJmYWNlIFRlc3RXS1dlYlZpZXdIb3N0V2luZG93IDogTlNXaW5kb3cKKyNlbHNlCitAaW50ZXJm
YWNlIFRlc3RXS1dlYlZpZXdIb3N0V2luZG93IDogVUlXaW5kb3cKKyNlbmRpZiAvLyBQTEFURk9S
TShNQUMpCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyB7
CiAgICAgQk9PTCBfZm9yY2VLZXlXaW5kb3c7CiB9CiAKKyNpZiBQTEFURk9STShNQUMpCiBzdGF0
aWMgaW50IGdFdmVudE51bWJlciA9IDE7CiAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTAwMwpAQCAtMTA2LDYgKzEyMCw3IEBAIE5TRXZlbnRNYXNrIF9fc2ltdWxh
dGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayhpZCBzZWxmLCBTRUwgX2NtZCkKICAg
ICB9CiAjZW5kaWYKIH0KKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIC0gKEJPT0wpaXNLZXlX
aW5kb3cKIHsKQEAgLTExOCw3ICsxMzMsMTEgQEAgTlNFdmVudE1hc2sgX19zaW11bGF0ZWRfZm9y
Y2VDbGlja0Fzc29jaWF0ZWRFdmVudHNNYXNrKGlkIHNlbGYsIFNFTCBfY21kKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBfZm9yY2VLZXlXaW5kb3cgPSBZRVM7CisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlv
bk5hbWU6TlNXaW5kb3dEaWRCZWNvbWVLZXlOb3RpZmljYXRpb24gb2JqZWN0OnNlbGZdOworI2Vs
c2UKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmlj
YXRpb25OYW1lOlVJV2luZG93RGlkQmVjb21lS2V5Tm90aWZpY2F0aW9uIG9iamVjdDpzZWxmXTsK
KyNlbmRpZgogfQogCiAtICh2b2lkKXJlc2lnbktleVdpbmRvdwpAQCAtMTUwLDE2ICsxNjksMTcg
QEAgTlNFdmVudE1hc2sgX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVudHNNYXNr
KGlkIHNlbGYsIFNFTCBfY21kKQogCiAtICh2b2lkKV9zZXRVcFRlc3RXaW5kb3c6KE5TUmVjdClm
cmFtZQogeworI2lmIFBMQVRGT1JNKE1BQykKICAgICBfaG9zdFdpbmRvdyA9IFtbVGVzdFdLV2Vi
Vmlld0hvc3RXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6ZnJhbWUgc3R5bGVNYXNr
Ok5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVy
ZWQgZGVmZXI6Tk9dOwogICAgIFtfaG9zdFdpbmRvdyBzZXRGcmFtZU9yaWdpbjpOU01ha2VQb2lu
dCgwLCAwKV07Ci0gICAgW1tfaG9zdFdpbmRvdyBjb250ZW50Vmlld10gYWRkU3VidmlldzpzZWxm
XTsKICAgICBbX2hvc3RXaW5kb3cgc2V0SXNWaXNpYmxlOllFU107CisgICAgW1tfaG9zdFdpbmRv
dyBjb250ZW50Vmlld10gYWRkU3VidmlldzpzZWxmXTsKICAgICBbX2hvc3RXaW5kb3cgbWFrZUtl
eUFuZE9yZGVyRnJvbnQ6c2VsZl07Ci19Ci0KLS0gKHZvaWQpbW91c2VEb3duQXRQb2ludDooTlNQ
b2ludClwb2ludCBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUKLXsKLSAg
ICBbX2hvc3RXaW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6cG9pbnQgc2ltdWxhdGVQcmVzc3VyZTpz
aW11bGF0ZVByZXNzdXJlXTsKKyNlbHNlCisgICAgX2hvc3RXaW5kb3cgPSBbW1Rlc3RXS1dlYlZp
ZXdIb3N0V2luZG93IGFsbG9jXSBpbml0V2l0aEZyYW1lOmZyYW1lXTsKKyAgICBfaG9zdFdpbmRv
dy5oaWRkZW4gPSBOTzsKKyAgICBbX2hvc3RXaW5kb3cgYWRkU3VidmlldzpzZWxmXTsKKyNlbmRp
ZgogfQogCiAtICh2b2lkKXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICop
bWVzc2FnZSBhY3Rpb246KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uCkBAIC0xODQsMTQgKzIwNCw2
IEBAIE5TRXZlbnRNYXNrIF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFz
ayhpZCBzZWxmLCBTRUwgX2NtZCkKICAgICBbc2VsZiBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2
aWdhdGlvbl07CiB9CiAKLS0gKHZvaWQpdHlwZUNoYXJhY3RlcjooY2hhciljaGFyYWN0ZXIgewot
ICAgIE5TU3RyaW5nICpjaGFyYWN0ZXJBc1N0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiJWMiICwgY2hhcmFjdGVyXTsKLSAgICBOU0V2ZW50VHlwZSBrZXlEb3duRXZlbnRUeXBl
ID0gTlNFdmVudFR5cGVLZXlEb3duOwotICAgIE5TRXZlbnRUeXBlIGtleVVwRXZlbnRUeXBlID0g
TlNFdmVudFR5cGVLZXlVcDsKLSAgICBbc2VsZiBrZXlEb3duOltOU0V2ZW50IGtleUV2ZW50V2l0
aFR5cGU6a2V5RG93bkV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdz
OjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6X2hvc3RXaW5k
b3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpO
TyBrZXlDb2RlOmNoYXJhY3Rlcl1dOwotICAgIFtzZWxmIGtleVVwOltOU0V2ZW50IGtleUV2ZW50
V2l0aFR5cGU6a2V5VXBFdmVudFR5cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFn
czowIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOl9ob3N0V2lu
ZG93LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5n
IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6
Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKLX0KLQogLSAoTlNTdHJpbmcgKilzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdAogewogICAgIF9fYmxvY2sgYm9vbCBp
c1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gZmFsc2U7CkBAIC0yMzEsNCArMjQzLDIxIEBAIE5TRXZl
bnRNYXNrIF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayhpZCBzZWxm
LCBTRUwgX2NtZCkKIAogQGVuZAogCi0jZW5kaWYgLyogV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZP
Uk0oTUFDKSAqLworI2lmIFBMQVRGT1JNKE1BQykKK0BpbXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJW
aWV3IChNYWNPbmx5KQorLSAodm9pZCltb3VzZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50IHNp
bXVsYXRlUHJlc3N1cmU6KEJPT0wpc2ltdWxhdGVQcmVzc3VyZQoreworICAgIFtfaG9zdFdpbmRv
dyBfbW91c2VEb3duQXRQb2ludDpwb2ludCBzaW11bGF0ZVByZXNzdXJlOnNpbXVsYXRlUHJlc3N1
cmVdOworfQorCistICh2b2lkKXR5cGVDaGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyIHsKKyAgICBO
U1N0cmluZyAqY2hhcmFjdGVyQXNTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpA
IiVjIiAsIGNoYXJhY3Rlcl07CisgICAgTlNFdmVudFR5cGUga2V5RG93bkV2ZW50VHlwZSA9IE5T
RXZlbnRUeXBlS2V5RG93bjsKKyAgICBOU0V2ZW50VHlwZSBrZXlVcEV2ZW50VHlwZSA9IE5TRXZl
bnRUeXBlS2V5VXA7CisgICAgW3NlbGYga2V5RG93bjpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBl
OmtleURvd25FdmVudFR5cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRp
bWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOl9ob3N0V2luZG93Lndp
bmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJh
Y3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5
Q29kZTpjaGFyYWN0ZXJdXTsKKyAgICBbc2VsZiBrZXlVcDpbTlNFdmVudCBrZXlFdmVudFdpdGhU
eXBlOmtleVVwRXZlbnRUeXBlIGxvY2F0aW9uOk5TWmVyb1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0
aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjpfaG9zdFdpbmRvdy53
aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJBc1N0cmluZyBjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVyQXNTdHJpbmcgaXNBUmVwZWF0Ok5PIGtl
eUNvZGU6Y2hhcmFjdGVyXV07Cit9CitAZW5kCisjZW5kaWYKKworI2VuZGlmIC8vIFdLX0FQSV9F
TkFCTEVECg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299372</attachid>
            <date>2017-01-20 13:17:41 -0800</date>
            <delta_ts>2017-01-20 13:18:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167233-20170120131548.patch</filename>
            <type>text/plain</type>
            <size>15776</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2VhOTgwODAzZmVjNWU1
OWNhMWU5NWIzYzEzYTY3ZmFmMGVjMzUyNy4uN2E3ZWNkNDZiOTBlNzYwOGI5MWU1MmI3NWQ1MTcy
ODgyN2Q0MDExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTAxLTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFZpZGVvIGRldGFpbHMgZG9l
cyBub3QgYXBlYXIgYW5kIG1pc3Npbmcgc2NydWJiZXIgaW4gQ29udHJvbCBDZW50ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIzMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgcmVxdWVzdEFj
dGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygpIGFuZCBoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vz
c2lvbkluZm9SZXNwb25zZSgpCisgICAgICAgIHdvcmsgaW4gUExBVEZPUk0oSU9TKS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX3JlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9dKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9oYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZTp0aXRs
ZTpkdXJhdGlvbjplbGFwc2VkVGltZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5m
b1Jlc3BvbnNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmhhbmRs
ZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpyZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEFjdGl2ZU5vd1Bs
YXlpbmdTZXNzaW9uSW5mbyk6IERlbGV0ZWQuCisKIDIwMTctMDEtMTAgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBfV0tGdWxsc2NyZWVuRGVsZWdhdGUg
YXZhaWxhYmxlIHRvIHVzZXJzIG9mIHRoZSBXZWJLaXQyIEMtQVBJLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA3N2Q4MDk5ZWUzYTU3
ZmJjOTkxZThkOTYxNGY0Yjg5NjhhMzI5NmNjLi4xZjVhY2RjYjVmNjUyODZjMDMwNDJhNjU5ODQ4
NzhjMmEzODhhMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQpAQCAtNDg2MiwxNyArNDg2Miw2IEBAIHN0YXRpYyBXZWJDb3JlOjpVc2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbihV
SVNlCiAgICAgcmV0dXJuIF9pbXBsLT5zaG91bGRSZXF1ZXN0Q2FuZGlkYXRlcygpOwogfQogCi0t
ICh2b2lkKV9yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvCi17Ci0gICAgaWYgKF9w
YWdlKQotICAgICAgICBfcGFnZS0+cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygp
OwotfQotCi0tICh2b2lkKV9oYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25z
ZTooQk9PTCloYXNBY3RpdmVTZXNzaW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGR1cmF0aW9u
Oihkb3VibGUpZHVyYXRpb24gZWxhcHNlZFRpbWU6KGRvdWJsZSllbGFwc2VkVGltZQotewotICAg
IC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KLX0KLQogLSAodm9pZClfaW5zZXJ0VGV4dDoo
aWQpc3RyaW5nIHJlcGxhY2VtZW50UmFuZ2U6KE5TUmFuZ2UpcmVwbGFjZW1lbnRSYW5nZQogewog
ICAgIFtzZWxmIGluc2VydFRleHQ6c3RyaW5nIHJlcGxhY2VtZW50UmFuZ2U6cmVwbGFjZW1lbnRS
YW5nZV07CkBAIC00ODkwLDYgKzQ4NzksMTcgQEAgc3RhdGljIFdlYkNvcmU6OlVzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb24gdG9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKFVJU2UKIAog
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAorLSAodm9pZClfcmVxdWVzdEFjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uSW5mbworeworICAgIGlmIChfcGFnZSkKKyAgICAgICAgX3BhZ2UtPnJlcXVlc3RB
Y3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oKTsKK30KKworLSAodm9pZClfaGFuZGxlQWN0aXZl
Tm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2U6KEJPT0wpaGFzQWN0aXZlU2Vzc2lvbiB0aXRs
ZTooTlNTdHJpbmcgKil0aXRsZSBkdXJhdGlvbjooZG91YmxlKWR1cmF0aW9uIGVsYXBzZWRUaW1l
Oihkb3VibGUpZWxhcHNlZFRpbWUKK3sKKyAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMu
Cit9CisKIC0gKHZvaWQpX3NldFBhZ2VTY2FsZTooQ0dGbG9hdClzY2FsZSB3aXRoT3JpZ2luOihD
R1BvaW50KW9yaWdpbgogewogICAgIF9wYWdlLT5zY2FsZVBhZ2Uoc2NhbGUsIFdlYkNvcmU6OnJv
dW5kZWRJbnRQb2ludChvcmlnaW4pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMzEzYjMzODk1ZTM0YzlmOTRm
OWIzNjBiZWQ0ZWNlNjNhNjFiM2ZmYi4uYzAxOTY3NTcxZDE4NjU2Mjk2NzJhM2U5ZGJhMTc4OWZj
MDM5OTBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTMwOCwxNSArMzA4LDE1IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIC0gKHZvaWQpX2ZvcmNlUmVx
dWVzdENhbmRpZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAo
dm9pZClfZGlkVXBkYXRlQ2FuZGlkYXRlTGlzdFZpc2liaWxpdHk6KEJPT0wpdmlzaWJsZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIEJPT0wgX3Nob3VsZFJlcXVlc3RDYW5kaWRhdGVzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpKTsKLS0gKHZvaWQpX3JlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vz
c2lvbkluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwotLSAodm9pZClf
aGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2U6KEJPT0wpaGFzQWN0aXZl
U2Vzc2lvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBkdXJhdGlvbjooZG91YmxlKWR1cmF0aW9u
IGVsYXBzZWRUaW1lOihkb3VibGUpZWxhcHNlZFRpbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSkpOwotCiAtICh2b2lkKV9pbnNlcnRUZXh0OihpZClzdHJpbmcgcmVwbGFjZW1l
bnRSYW5nZTooTlNSYW5nZSlyZXBsYWNlbWVudFJhbmdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpKTsKIAogLSAodm9pZClfc2V0SGVhZGVyQmFubmVySGVpZ2h0OihpbnQpaGVp
Z2h0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX3NldEZv
b3RlckJhbm5lckhlaWdodDooaW50KWhlaWdodCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSk7CiAjZW5kaWYKIAorLSAodm9pZClfcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNz
aW9uSW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9o
YW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZTooQk9PTCloYXNBY3RpdmVT
ZXNzaW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGR1cmF0aW9uOihkb3VibGUpZHVyYXRpb24g
ZWxhcHNlZFRpbWU6KGRvdWJsZSllbGFwc2VkVGltZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSk7CisKIC0gKHZvaWQpX3NldFBhZ2VTY2FsZTooQ0dGbG9hdClzY2FsZSB3aXRo
T3JpZ2luOihDR1BvaW50KW9yaWdpbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7
CiAtIChDR0Zsb2F0KV9wYWdlU2NhbGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAxYzIxMGIxZDdkYzJm
M2I4YzY5ZWVkYzgxYjk4MjcwYWVlZjA1MTYzLi4yMDcyNTE0YjYzNzhjMTA0YTdhZmIzYjBiODc1
NTg4ZmUwYjMzN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTI1
Myw3ICsyNTMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlY29tbWVuZGVkU2Nyb2xs
YmFyU3R5bGVEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsYmFyU3R5bGUpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlKGNvbnN0IFN0cmluZyYp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZv
UmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBkb3Vi
bGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSkgPSAwOwogCiAgICAgdmlydHVhbCBDR1Jl
Y3QgYm91bmRzT2ZMYXllckluTGF5ZXJCYWNrZWRXaW5kb3dDb29yZGluYXRlcyhDQUxheWVyICop
IGNvbnN0ID0gMDsKIApAQCAtMjg0LDYgKzI4MywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldEVkaXRhYmxlRWxlbWVudElzRm9jdXNlZChib29sKSA9IDA7CiAjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wgaGFzQWN0aXZlU2Vzc2lv
biwgY29uc3QgU3RyaW5nJiB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgZWxhcHNlZFRp
bWUpID0gMDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBj
b21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEdldFRh
cEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpD
b2xvciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+JiBoaWdobGlnaHRlZFF1YWRz
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BMZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiB0b3BSaWdodFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tTGVm
dFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tUmlnaHRSYWRpdXMpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWI5Mzk1Y2Vm
NWMwZDg0NzBhMmZjYmE0YWEyMGVkYzBmNDFlYzkwMy4uZDhlZWMzYWNmZjRmNWE0MzgyMmI0MDg5
YzUwOGJiNDg1MzE5ZjU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTY0NzMsMTYgKzY0NzMsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdENv
bnRyb2xsZWRFbGVtZW50SUQoKSBjb25zdAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpyZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCkKLXsKLSAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbklu
Zm8oKSwgbV9wYWdlSUQpOwotfQotCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQWN0aXZlTm93
UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9uLCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSkgY29uc3QK
LXsKLSAgICBtX3BhZ2VDbGllbnQuaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVz
cG9uc2UoaGFzQWN0aXZlU2Vzc2lvbiwgdGl0bGUsIGR1cmF0aW9uLCBlbGFwc2VkVGltZSk7Ci19
Ci0KIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2Uo
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKSBjb25zdAogewogICAgIG1fcGFnZUNsaWVudC5oYW5k
bGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2UoaWRlbnRpZmllcik7CkBAIC02NDk4LDYgKzY0
ODgsMTggQEAgYm9vbCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ1ZpZGVvSW5FbmhhbmNlZEZ1bGxz
Y3JlZW4oKSBjb25zdAogfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpyZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCkKK3sKKyAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RBY3RpdmVOb3dQbGF5aW5n
U2Vzc2lvbkluZm8oKSwgbV9wYWdlSUQpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxl
QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9u
LCBjb25zdCBTdHJpbmcmIHRpdGxlLCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGlt
ZSkgY29uc3QKK3sKKyAgICBtX3BhZ2VDbGllbnQuaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Np
b25JbmZvUmVzcG9uc2UoaGFzQWN0aXZlU2Vzc2lvbiwgdGl0bGUsIGR1cmF0aW9uLCBlbGFwc2Vk
VGltZSk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogdm9pZCBXZWJQ
YWdlUHJveHk6Omhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzRGlkQ2hhbmdl
KGJvb2wgc3RhdGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggZWY1NmIxYzY2MzZmMWFiNWRjZDZmZTU4ZGY2Mjg4NGM5ODEzZWUxMS4uNGY1NWEwNzc3MDNh
OTk5MDE1OTVlY2U4MTZlMGNmZDBlNjAyNjI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtMTA2MSw5ICsxMDYxLDEyIEBAIHB1YmxpYzoKICAgICBib29sIGhh
c0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyKCkgY29uc3Q7CiAgICAgdm9pZCByZXF1ZXN0
Q29udHJvbGxlZEVsZW1lbnRJRCgpIGNvbnN0OwogICAgIHZvaWQgaGFuZGxlQ29udHJvbGxlZEVs
ZW1lbnRJRFJlc3BvbnNlKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIGJvb2wgaXNQbGF5aW5n
VmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0OworI2VuZGlmCisKKyNpZiBQTEFURk9S
TShDT0NPQSkKICAgICB2b2lkIHJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oKTsK
ICAgICB2b2lkIGhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wg
aGFzQWN0aXZlU2Vzc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBk
b3VibGUgZWxhcHNlZFRpbWUpIGNvbnN0OwotICAgIGJvb2wgaXNQbGF5aW5nVmlkZW9JbkVuaGFu
Y2VkRnVsbHNjcmVlbigpIGNvbnN0OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDYyMTAyYTE5ZGRkYWJiNjdhZDU3OGI0OTc3YWRkOWNlNTk3MjcyOTAuLjE2N2Iw
ZGMzN2JkOWEyOTk5MDg0YWEwYjNmOWU2MDMzZDI1NjBkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDgzLDYgKzQ4Myw5
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAg
RGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoKQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NP
QSkKICAgICBIYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZShib29sIGhh
c0FjdGl2ZVNlc3Npb24sIFN0cmluZyB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgZWxh
cHNlZFRpbWUpCiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaAppbmRleCA2OWI2MTM1YWY5ZTI2Y2IxZDMzNTYwZjg0Yzk0NTA4
MmJjMDg2MzhhLi40Y2EyZTg2ZGZmNzM3MTM5ZTc0MDMyNWZjNmJkYzU1MDY0M2EwZDI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBA
IC0xOTQsNiArMTk0LDggQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24gdXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbigpIG92ZXJyaWRlOwog
CisgICAgdm9pZCBoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZShib29s
IGhhc0FjdGl2ZVNlc3Npb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGRvdWJsZSBkdXJhdGlvbiwg
ZG91YmxlIGVsYXBzZWRUaW1lKSBvdmVycmlkZTsKKwogICAgIFdLQ29udGVudFZpZXcgKm1fY29u
dGVudFZpZXc7CiAgICAgV0tXZWJWaWV3ICptX3dlYlZpZXc7CiAgICAgUmV0YWluUHRyPFdLRWRp
dG9yVW5kb1RhcmdldE9iakM+IG1fdW5kb1RhcmdldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGNlMzY0MDU1NTg1ZWQ0OWVl
ZTZjNWY4NzNhYmNkZDNkMDg4OTM5NjguLmY1NjQ4YjhkMTgwNjBlMzZhNTMzOGIxYzAwMzg2MWZh
YTEwZjNjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24uaCIKICNpbXBvcnQgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIK
ICNpbXBvcnQgIk5hdmlnYXRpb25TdGF0ZS5oIgorI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgi
CiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiVmlld1NuYXBzaG90U3RvcmUuaCIKICNp
bXBvcnQgIldLQ29udGVudFZpZXcuaCIKQEAgLTc0OSw2ICs3NTAsMTEgQEAgc3RkOjp1bmlxdWVf
cHRyPFZhbGlkYXRpb25CdWJibGU+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVWYWxpZGF0aW9uQnVi
YmxlKGNvbnN0IFMKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxWYWxpZGF0aW9uQnViYmxl
PihtX2NvbnRlbnRWaWV3LCBtZXNzYWdlKTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFu
ZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNz
aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2Vk
VGltZSkKK3sKKyAgICBbbV93ZWJWaWV3IF9oYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbklu
Zm9SZXNwb25zZTpoYXNBY3RpdmVTZXNzaW9uIHRpdGxlOm5zU3RyaW5nRnJvbVdlYkNvcmVTdHJp
bmcodGl0bGUpIGR1cmF0aW9uOmR1cmF0aW9uIGVsYXBzZWRUaW1lOmVsYXBzZWRUaW1lXTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNv
Y29hLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VD
b2NvYS5tbQppbmRleCA5MTg0NDY2MWIzMzJiM2UxN2UyMjI1MjhmZjRmYmMyM2VmM2ZjODE3Li5k
NDBhMGQ3ZjFiMzMzNjhmOWVkMzBjOTdmYjZkNjRjZDY2OTc0YzU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0K
QEAgLTI3LDYgKzI3LDggQEAKICNpbXBvcnQgIldlYlBhZ2UuaCIKIAogI2ltcG9ydCAiTG9hZFBh
cmFtZXRlcnMuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW1wb3J0IDxX
ZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAKQEAgLTM5LDYgKzQxLDIyIEBAIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZl
TG9hZFBhcmFtZXRlcnMoY29uc3QgTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0CiAgICAgbV9k
YXRhRGV0ZWN0aW9uQ29udGV4dCA9IGxvYWRQYXJhbWV0ZXJzLmRhdGFEZXRlY3Rpb25Db250ZXh0
OwogfQogCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8o
KQoreworICAgIGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiA9IGZhbHNlOworICAgIFN0cmluZyB0aXRs
ZSA9IGVtcHR5U3RyaW5nKCk7CisgICAgZG91YmxlIGR1cmF0aW9uID0gTkFOOworICAgIGRvdWJs
ZSBlbGFwc2VkVGltZSA9IE5BTjsKKyAgICBpZiAoYXV0byogc2hhcmVkTWFuYWdlciA9IFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcklmRXhpc3RzKCkp
IHsKKyAgICAgICAgaGFzQWN0aXZlU2Vzc2lvbiA9IHNoYXJlZE1hbmFnZXItPmhhc0FjdGl2ZU5v
d1BsYXlpbmdTZXNzaW9uKCk7CisgICAgICAgIHRpdGxlID0gc2hhcmVkTWFuYWdlci0+bGFzdFVw
ZGF0ZWROb3dQbGF5aW5nVGl0bGUoKTsKKyAgICAgICAgZHVyYXRpb24gPSBzaGFyZWRNYW5hZ2Vy
LT5sYXN0VXBkYXRlZE5vd1BsYXlpbmdEdXJhdGlvbigpOworICAgICAgICBlbGFwc2VkVGltZSA9
IHNoYXJlZE1hbmFnZXItPmxhc3RVcGRhdGVkTm93UGxheWluZ0VsYXBzZWRUaW1lKCk7CisgICAg
fQorCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIYW5kbGVBY3RpdmVOb3dQbGF5
aW5nU2Vzc2lvbkluZm9SZXNwb25zZShoYXNBY3RpdmVTZXNzaW9uLCB0aXRsZSwgZHVyYXRpb24s
IGVsYXBzZWRUaW1lKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8g
UExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCA4MWNlNzUxZjhlYmQxZDhlMGUwYjdkY2E1ZmYwN2JiNzNkM2QyMTY1Li4zMjZl
NDk4MWIxYjQ5NzhjNWU3MmJhZWYyYzhhMDQ1ZmRlMjlmZWY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEyMjMsNiArMTIyMyw5IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkYXRhRGV0ZWN0b3JzRGlkSGlkZVVJKFdlYkNvcmU6OlBhZ2VPdmVybGF5
OjpQYWdlT3ZlcmxheUlEKTsKIAogICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoV2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVzdWx0KTsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgdm9pZCByZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCk7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgppbmRleCA3NTZiNjIyNmM5MjJjMGJiMjA2MTQ1YmIyYjRiZjY0NmU3NTcyZmU2
Li45YTQ3NTM1MDQ0YjkzMGU0MjMwYWI0ZmU1YTI5Y2E3Yzc3YWFlOGE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtNDI0LDEyICs0MjQsMTUgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7
CiAgICAgRGF0YURldGVjdG9yc0RpZEhpZGVVSShXZWJDb3JlOjpQYWdlT3ZlcmxheTo6UGFnZU92
ZXJsYXlJRCBwYWdlT3ZlcmxheSkKIAogICAgIEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKHN0cnVj
dCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQgYWNjZXB0ZWRDYW5kaWRhdGUpCi0gICAgUmVx
dWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygpCiAKICAgICBTZXRIZWFkZXJCYW5uZXJI
ZWlnaHRGb3JUZXN0aW5nKGludCBoZWlnaHQpOwogICAgIFNldEZvb3RlckJhbm5lckhlaWdodEZv
clRlc3RpbmcoaW50IGhlaWdodCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IFJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oKQorI2VuZGlmCisKICAgICBTZXRT
aG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoYm9vbCBzaG91bGREaXNwYXRjaEZha2VN
b3VzZU1vdmVFdmVudHMpCiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAm
JiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGY3ZWI4ZDcwYzZkNjI4ZTZlYmQzNzlhNjI4OTZm
NDEyYTVjYmJlNWEuLjI5NDk2N2ViM2IxZjJmYjE4MjBhNjE4OGY1MTY5OGRhOTUzMDY0YWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VN
YWMubW0KQEAgLTc2LDcgKzc2LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxh
dGZvcm1LZXlib2FyZEV2ZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5Eb2N1bWVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SZW5kZXJFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlck9iamVj
dC5oPgpAQCAtMTYyLDIyICsxNjEsNiBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZUFjY2VwdGVkQ2Fu
ZGlkYXRlKFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCBhY2NlcHRlZENhbmRpZAogICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoKSk7
CiB9CiAKLXZvaWQgV2ViUGFnZTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygp
Ci17Ci0gICAgYm9vbCBoYXNBY3RpdmVTZXNzaW9uID0gZmFsc2U7Ci0gICAgU3RyaW5nIHRpdGxl
ID0gZW1wdHlTdHJpbmcoKTsKLSAgICBkb3VibGUgZHVyYXRpb24gPSBOQU47Ci0gICAgZG91Ymxl
IGVsYXBzZWRUaW1lID0gTkFOOwotICAgIGlmIChhdXRvKiBzaGFyZWRNYW5hZ2VyID0gV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMoKSkg
ewotICAgICAgICBoYXNBY3RpdmVTZXNzaW9uID0gc2hhcmVkTWFuYWdlci0+aGFzQWN0aXZlTm93
UGxheWluZ1Nlc3Npb24oKTsKLSAgICAgICAgdGl0bGUgPSBzaGFyZWRNYW5hZ2VyLT5sYXN0VXBk
YXRlZE5vd1BsYXlpbmdUaXRsZSgpOwotICAgICAgICBkdXJhdGlvbiA9IHNoYXJlZE1hbmFnZXIt
Pmxhc3RVcGRhdGVkTm93UGxheWluZ0R1cmF0aW9uKCk7Ci0gICAgICAgIGVsYXBzZWRUaW1lID0g
c2hhcmVkTWFuYWdlci0+bGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUoKTsKLSAgICB9
Ci0KLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkhhbmRsZUFjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGhhc0FjdGl2ZVNlc3Npb24sIHRpdGxlLCBkdXJhdGlvbiwg
ZWxhcHNlZFRpbWUpKTsKLX0KLQogTlNPYmplY3QgKldlYlBhZ2U6OmFjY2Vzc2liaWxpdHlPYmpl
Y3RGb3JNYWluRnJhbWVQbHVnaW4oKQogewogICAgIGlmICghbV9wYWdlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299373</attachid>
            <date>2017-01-20 13:18:29 -0800</date>
            <delta_ts>2017-01-20 13:24:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167233-20170120131636.patch</filename>
            <type>text/plain</type>
            <size>58587</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJkMmZlNzBkMThmNmY5
NzA2NzIwZDQ0NDc0ZWI5NjMxMGMzMWIxYS4uOWUzZTZiYTZhODA3MDI2Nzg5YmIzNjZiOGM4MmY1
ODk5ODNiNzdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDE3LTAxLTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFJFR1JFU1NJT04gKHIyMDgx
NDkpOiBWaWRlbyBkZXRhaWxzIGRvZXMgbm90IGFwZWFyIGFuZCBtaXNzaW5nIHNjcnViYmVyIGlu
IENvbnRyb2wgQ2VudGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjcyMzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBJbiBUZXN0V2ViS2l0QVBJLCBOb3dQbGF5aW5nQ29udHJvbHNUZXN0cy5O
b3dQbGF5aW5nQ29udHJvbHNJT1MKKworICAgICAgICBJbiByMjA4MTQ5LCB3ZSBpbnRyb2R1Y2Vk
IGEgbmV3IG1lZGlhIHR5cGUsIFZpZGVvLCBhbmQgcmVuYW1lZCB0aGUgb2xkIHR5cGUgdG8KKyAg
ICAgICAgVmlkZW9BdWRpbyAodG8gYmUgYWJsZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHZpZGVv
LXdpdGgtYXVkaW8gYW5kIHNpbGVudC12aWRlbykuCisgICAgICAgIEJ1dCB3ZSBtaXNzZWQgb25l
IHBsYWNlIHdoZXJlIHRoYXQgdHlwZSBuZWVkcyB0byBiZSByZW5hbWVkLgorCisgICAgICAgIEZv
ciB0ZXN0aW5nIHB1cnBvc2VzLCBvdmVybG9hZCBtZXRob2RzIGZyb20gUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyIHdoaWNoIFdlYktpdDIgdXNlcworICAgICAgICB0byByZXBvcnQgdGhlIGN1
cnJlbnQgbm93IHBsYXlpbmcgc2Vzc2lvbiBhbmQgaXQncyBpbmZvcm1hdGlvbi4KKworICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW06CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpub3dQbGF5aW5nRWxpZ2libGVTZXNz
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnVwZGF0ZU5v
d1BsYXlpbmdJbmZvKToKKworMjAxNy0wMS0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKwogICAgICAgICBDUkFTSCBhdCBXZWJDb3JlOjpUcmFja0xpc3RCYXNlOjpyZW1vdmUK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIxNwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggM2VhOTgwODAzZmVjNWU1OWNhMWU5NWIzYzEzYTY3ZmFmMGVjMzUyNy4u
N2E3ZWNkNDZiOTBlNzYwOGI5MWU1MmI3NWQ1MTcyODgyN2Q0MDExNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMzIEBACisyMDE3LTAxLTE5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFZpZGVvIGRldGFpbHMgZG9lcyBub3QgYXBlYXIgYW5kIG1pc3Npbmcgc2Ny
dWJiZXIgaW4gQ29udHJvbCBDZW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NzIzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1ha2UgcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygp
IGFuZCBoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZSgpCisgICAgICAg
IHdvcmsgaW4gUExBVEZPUk0oSU9TKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3JlcXVlc3RBY3RpdmVOb3dQbGF5
aW5nU2Vzc2lvbkluZm9dKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYW5kbGVBY3RpdmVOb3dQ
bGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZTp0aXRsZTpkdXJhdGlvbjplbGFwc2VkVGltZTpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RBY3RpdmVO
b3dQbGF5aW5nU2Vzc2lvbkluZm8pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omhh
bmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5m
b1Jlc3BvbnNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0QWN0aXZlTm93UGxheWlu
Z1Nlc3Npb25JbmZvKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbyk6IERlbGV0ZWQu
CisKIDIwMTctMDEtMTAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAg
ICAgTWFrZSBfV0tGdWxsc2NyZWVuRGVsZWdhdGUgYXZhaWxhYmxlIHRvIHVzZXJzIG9mIHRoZSBX
ZWJLaXQyIEMtQVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
aW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKaW5kZXggYWQwMmFhNzAzN2YzNDg2Nzc4
YWJhMjU3ZWQ3YTIxZTlkNjljMjk1MS4uNTU4NDRkMTRhMmI1ZmIyNThhYWZjOGViZDYzMzcyNzM3
YTNmNDIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01l
ZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCkBAIC03MCwxMSArNzAsMTcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgc2Vzc2lvbkNhbkxvYWRNZWRpYShjb25zdCBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbiYpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgYm9vbCBoYXNBY3RpdmVOb3dQbGF5aW5nU2Vz
c2lvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbm93UGxheWluZ0FjdGl2ZTsgfQorICAg
IFN0cmluZyBsYXN0VXBkYXRlZE5vd1BsYXlpbmdUaXRsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fcmVwb3J0ZWRUaXRsZTsgfQorICAgIGRvdWJsZSBsYXN0VXBkYXRlZE5vd1BsYXlpbmdE
dXJhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmVwb3J0ZWREdXJhdGlvbjsgfQor
ICAgIGRvdWJsZSBsYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2VkVGltZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fcmVwb3J0ZWRDdXJyZW50VGltZTsgfQorCiAgICAgUGxhdGZvcm1NZWRp
YVNlc3Npb24qIG5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKTsKICAgICAKICAgICBSZXRhaW5Q
dHI8V2ViTWVkaWFTZXNzaW9uSGVscGVyPiBtX29iamNPYnNlcnZlcjsKICAgICBkb3VibGUgbV9y
ZXBvcnRlZFJhdGUgeyAwIH07CiAgICAgZG91YmxlIG1fcmVwb3J0ZWREdXJhdGlvbiB7IDAgfTsK
KyAgICBkb3VibGUgbV9yZXBvcnRlZEN1cnJlbnRUaW1lIHsgMCB9OwogICAgIFN0cmluZyBtX3Jl
cG9ydGVkVGl0bGU7CiAgICAgYm9vbCBtX25vd1BsYXlpbmdBY3RpdmUgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9pc0luQmFja2dyb3VuZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCmlu
ZGV4IDRhMDRiOTYyODUwOWUxZDljNTI5YTkwN2YzNmIzNjk4OTBmYmFiNjYuLjdiYzhmNjg1ZThl
MmZkNzQ0MjFkNjBkMjg5MzM0MmUzN2NhZmI3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCkBA
IC0yMTksNyArMjE5LDcgQEAgUGxhdGZvcm1NZWRpYVNlc3Npb24qIE1lZGlhU2Vzc2lvbk1hbmFn
ZXJpT1M6Om5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKQogewogICAgIHJldHVybiBmaW5kU2Vz
c2lvbihbXSAoUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24sIHNpemVfdCkgewogICAgICAg
ICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIHR5cGUgPSBzZXNzaW9uLm1lZGlhVHlw
ZSgpOwotICAgICAgICBpZiAodHlwZSAhPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8gJiYg
dHlwZSAhPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pCisgICAgICAgIGlmICh0eXBlICE9
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlb0F1ZGlvICYmIHR5cGUgIT0gUGxhdGZvcm1NZWRp
YVNlc3Npb246OkF1ZGlvKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlm
IChzZXNzaW9uLmNoYXJhY3RlcmlzdGljcygpICYgUGxhdGZvcm1NZWRpYVNlc3Npb246Okhhc0F1
ZGlvKQpAQCAtMjQ5LDYgKzI0OSw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6dXBk
YXRlTm93UGxheWluZ0luZm8oKQogICAgIFN0cmluZyB0aXRsZSA9IGN1cnJlbnRTZXNzaW9uLT50
aXRsZSgpOwogICAgIGRvdWJsZSBkdXJhdGlvbiA9IGN1cnJlbnRTZXNzaW9uLT5kdXJhdGlvbigp
OwogICAgIGRvdWJsZSByYXRlID0gY3VycmVudFNlc3Npb24tPnN0YXRlKCkgPT0gUGxhdGZvcm1N
ZWRpYVNlc3Npb246OlBsYXlpbmcgPyAxIDogMDsKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBj
dXJyZW50U2Vzc2lvbi0+Y3VycmVudFRpbWUoKTsKICAgICBpZiAobV9yZXBvcnRlZFRpdGxlID09
IHRpdGxlICYmIG1fcmVwb3J0ZWRSYXRlID09IHJhdGUgJiYgbV9yZXBvcnRlZER1cmF0aW9uID09
IGR1cmF0aW9uKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6
OnVwZGF0ZU5vd1BsYXlpbmdJbmZvIC0gbm90aGluZyBuZXcgdG8gc2hvdyIpOwogICAgICAgICBy
ZXR1cm47CkBAIC0yNTcsNiArMjU4LDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjp1
cGRhdGVOb3dQbGF5aW5nSW5mbygpCiAgICAgbV9yZXBvcnRlZFJhdGUgPSByYXRlOwogICAgIG1f
cmVwb3J0ZWREdXJhdGlvbiA9IGR1cmF0aW9uOwogICAgIG1fcmVwb3J0ZWRUaXRsZSA9IHRpdGxl
OworICAgIG1fcmVwb3J0ZWRDdXJyZW50VGltZSA9IGN1cnJlbnRUaW1lOwogCiAgICAgYXV0byBp
bmZvID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBp
ZiAoIXRpdGxlLmlzRW1wdHkoKSkKQEAgLTI2NSw3ICsyNjcsNiBAQCB2b2lkIE1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1M6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkKICAgICAgICAgaW5mby5nZXQoKVtN
UE1lZGlhSXRlbVByb3BlcnR5UGxheWJhY2tEdXJhdGlvbl0gPSBAKGR1cmF0aW9uKTsKICAgICBp
bmZvLmdldCgpW01QTm93UGxheWluZ0luZm9Qcm9wZXJ0eVBsYXliYWNrUmF0ZV0gPSBAKHJhdGUp
OwogCi0gICAgZG91YmxlIGN1cnJlbnRUaW1lID0gY3VycmVudFNlc3Npb24tPmN1cnJlbnRUaW1l
KCk7CiAgICAgaWYgKHN0ZDo6aXNmaW5pdGUoY3VycmVudFRpbWUpICYmIGN1cnJlbnRUaW1lICE9
IE1lZGlhUGxheWVyOjppbnZhbGlkVGltZSgpKQogICAgICAgICBpbmZvLmdldCgpW01QTm93UGxh
eWluZ0luZm9Qcm9wZXJ0eUVsYXBzZWRQbGF5YmFja1RpbWVdID0gQChjdXJyZW50VGltZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5k
ZXggNzdkODA5OWVlM2E1N2ZiYzk5MWU4ZDk2MTRmNGI4OTY4YTMyOTZjYy4uMWY1YWNkY2I1ZjY1
Mjg2YzAzMDQyYTY1OTg0ODc4YzJhMzg4YTA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ4NjIsMTcgKzQ4NjIsNiBAQCBzdGF0
aWMgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1VzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24oVUlTZQogICAgIHJldHVybiBfaW1wbC0+c2hvdWxkUmVxdWVzdENhbmRp
ZGF0ZXMoKTsKIH0KIAotLSAodm9pZClfcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5m
bwotewotICAgIGlmIChfcGFnZSkKLSAgICAgICAgX3BhZ2UtPnJlcXVlc3RBY3RpdmVOb3dQbGF5
aW5nU2Vzc2lvbkluZm8oKTsKLX0KLQotLSAodm9pZClfaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nl
c3Npb25JbmZvUmVzcG9uc2U6KEJPT0wpaGFzQWN0aXZlU2Vzc2lvbiB0aXRsZTooTlNTdHJpbmcg
Kil0aXRsZSBkdXJhdGlvbjooZG91YmxlKWR1cmF0aW9uIGVsYXBzZWRUaW1lOihkb3VibGUpZWxh
cHNlZFRpbWUKLXsKLSAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMuCi19Ci0KIC0gKHZv
aWQpX2luc2VydFRleHQ6KGlkKXN0cmluZyByZXBsYWNlbWVudFJhbmdlOihOU1JhbmdlKXJlcGxh
Y2VtZW50UmFuZ2UKIHsKICAgICBbc2VsZiBpbnNlcnRUZXh0OnN0cmluZyByZXBsYWNlbWVudFJh
bmdlOnJlcGxhY2VtZW50UmFuZ2VdOwpAQCAtNDg5MCw2ICs0ODc5LDE3IEBAIHN0YXRpYyBXZWJD
b3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvbihVSVNlCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKKy0gKHZvaWQpX3JlcXVl
c3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8KK3sKKyAgICBpZiAoX3BhZ2UpCisgICAgICAg
IF9wYWdlLT5yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCk7Cit9CisKKy0gKHZv
aWQpX2hhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlOihCT09MKWhhc0Fj
dGl2ZVNlc3Npb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgZHVyYXRpb246KGRvdWJsZSlkdXJh
dGlvbiBlbGFwc2VkVGltZTooZG91YmxlKWVsYXBzZWRUaW1lCit7CisgICAgLy8gT3ZlcnJpZGRl
biBieSBzdWJjbGFzc2VzLgorfQorCiAtICh2b2lkKV9zZXRQYWdlU2NhbGU6KENHRmxvYXQpc2Nh
bGUgd2l0aE9yaWdpbjooQ0dQb2ludClvcmlnaW4KIHsKICAgICBfcGFnZS0+c2NhbGVQYWdlKHNj
YWxlLCBXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQob3JpZ2luKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDMx
M2IzMzg5NWUzNGM5Zjk0ZjliMzYwYmVkNGVjZTYzYTYxYjNmZmIuLmMwMTk2NzU3MWQxODY1NjI5
NjcyYTNlOWRiYTE3ODlmYzAzOTkwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0zMDgsMTUgKzMwOCwxNSBA
QCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAt
ICh2b2lkKV9mb3JjZVJlcXVlc3RDYW5kaWRhdGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpKTsKIC0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5OihC
T09MKXZpc2libGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRSZXF1ZXN0Q2FuZGlkYXRlcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7Ci0tICh2b2lkKV9yZXF1ZXN0QWN0
aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpKTsKLS0gKHZvaWQpX2hhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNl
OihCT09MKWhhc0FjdGl2ZVNlc3Npb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgZHVyYXRpb246
KGRvdWJsZSlkdXJhdGlvbiBlbGFwc2VkVGltZTooZG91YmxlKWVsYXBzZWRUaW1lIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKLQogLSAodm9pZClfaW5zZXJ0VGV4dDooaWQp
c3RyaW5nIHJlcGxhY2VtZW50UmFuZ2U6KE5TUmFuZ2UpcmVwbGFjZW1lbnRSYW5nZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKIC0gKHZvaWQpX3NldEhlYWRlckJhbm5l
ckhlaWdodDooaW50KWhlaWdodCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7
CiAtICh2b2lkKV9zZXRGb290ZXJCYW5uZXJIZWlnaHQ6KGludCloZWlnaHQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKKy0gKHZvaWQpX3JlcXVlc3RBY3Rp
dmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSkpOworLSAodm9pZClfaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2U6
KEJPT0wpaGFzQWN0aXZlU2Vzc2lvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBkdXJhdGlvbjoo
ZG91YmxlKWR1cmF0aW9uIGVsYXBzZWRUaW1lOihkb3VibGUpZWxhcHNlZFRpbWUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworCiAtICh2b2lkKV9zZXRQYWdlU2NhbGU6KENH
RmxvYXQpc2NhbGUgd2l0aE9yaWdpbjooQ0dQb2ludClvcmlnaW4gV0tfQVBJX0FWQUlMQUJMRShp
b3MoV0tfSU9TX1RCQSkpOwogLSAoQ0dGbG9hdClfcGFnZVNjYWxlIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5k
ZXggMWMyMTBiMWQ3ZGMyZjNiOGM2OWVlZGM4MWI5ODI3MGFlZWYwNTE2My4uMjA3MjUxNGI2Mzc4
YzEwNGE3YWZiM2IwYjg3NTU4OGZlMGIzMzdmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oCkBAIC0yNTMsNyArMjUzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBy
ZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGJhclN0eWxl
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3Qo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25z
ZShjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUFjdGl2ZU5vd1Bs
YXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgZWxhcHNlZFRpbWUpID0gMDsKIAog
ICAgIHZpcnR1YWwgQ0dSZWN0IGJvdW5kc09mTGF5ZXJJbkxheWVyQmFja2VkV2luZG93Q29vcmRp
bmF0ZXMoQ0FMYXllciAqKSBjb25zdCA9IDA7CiAKQEAgLTI4NCw2ICsyODMsMTAgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0YWJsZUVsZW1lbnRJc0ZvY3VzZWQoYm9vbCkgPSAw
OwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZShib29s
IGhhc0FjdGl2ZVNlc3Npb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGRvdWJsZSBkdXJhdGlvbiwg
ZG91YmxlIGVsYXBzZWRUaW1lKSA9IDA7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPUykKICAg
ICB2aXJ0dWFsIHZvaWQgY29tbWl0UG90ZW50aWFsVGFwRmFpbGVkKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYg
aGlnaGxpZ2h0ZWRRdWFkcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJp
Z2h0UmFkaXVzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IGViOTM5NWNlZjVjMGQ4NDcwYTJmY2JhNGFhMjBlZGMwZjQxZWM5MDMuLmQ4ZWVjM2Fj
ZmY0ZjVhNDM4MjJiNDA4OWM1MDhiYjQ4NTMxOWY1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02NDczLDE2ICs2NDczLDYgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RDb250cm9sbGVkRWxlbWVudElEKCkgY29uc3QKICNlbmRpZgogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygpCi17
Ci0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0QWN0aXZlTm93
UGxheWluZ1Nlc3Npb25JbmZvKCksIG1fcGFnZUlEKTsKLX0KLQotdm9pZCBXZWJQYWdlUHJveHk6
OmhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wgaGFzQWN0aXZl
U2Vzc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgZWxh
cHNlZFRpbWUpIGNvbnN0Ci17Ci0gICAgbV9wYWdlQ2xpZW50LmhhbmRsZUFjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGhhc0FjdGl2ZVNlc3Npb24sIHRpdGxlLCBkdXJhdGlvbiwg
ZWxhcHNlZFRpbWUpOwotfQotCiB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQ29udHJvbGxlZEVs
ZW1lbnRJRFJlc3BvbnNlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikgY29uc3QKIHsKICAgICBt
X3BhZ2VDbGllbnQuaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlKGlkZW50aWZpZXIp
OwpAQCAtNjQ5OCw2ICs2NDg4LDE4IEBAIGJvb2wgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdWaWRl
b0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3QKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0o
Q09DT0EpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9u
SW5mbygpCit7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0
QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQ
YWdlUHJveHk6OmhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wg
aGFzQWN0aXZlU2Vzc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBk
b3VibGUgZWxhcHNlZFRpbWUpIGNvbnN0Cit7CisgICAgbV9wYWdlQ2xpZW50LmhhbmRsZUFjdGl2
ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGhhc0FjdGl2ZVNlc3Npb24sIHRpdGxlLCBk
dXJhdGlvbiwgZWxhcHNlZFRpbWUpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTikKIHZvaWQgV2ViUGFnZVByb3h5OjpoYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFF
bGVtZW50c0RpZENoYW5nZShib29sIHN0YXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IGVmNTZiMWM2NjM2ZjFhYjVkY2Q2ZmU1OGRmNjI4ODRjOTgxM2Vl
MTEuLjRmNTVhMDc3NzAzYTk5OTAxNTk1ZWNlODE2ZTBjZmQwZTYwMjYyNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwNjEsOSArMTA2MSwxMiBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNBY3RpdmVWaWRlb0ZvckNvbnRyb2xzTWFuYWdlcigpIGNvbnN0Owog
ICAgIHZvaWQgcmVxdWVzdENvbnRyb2xsZWRFbGVtZW50SUQoKSBjb25zdDsKICAgICB2b2lkIGhh
bmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZShjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAg
ICBib29sIGlzUGxheWluZ1ZpZGVvSW5FbmhhbmNlZEZ1bGxzY3JlZW4oKSBjb25zdDsKKyNlbmRp
ZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCByZXF1ZXN0QWN0aXZlTm93UGxheWlu
Z1Nlc3Npb25JbmZvKCk7CiAgICAgdm9pZCBoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbklu
Zm9SZXNwb25zZShib29sIGhhc0FjdGl2ZVNlc3Npb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGRv
dWJsZSBkdXJhdGlvbiwgZG91YmxlIGVsYXBzZWRUaW1lKSBjb25zdDsKLSAgICBib29sIGlzUGxh
eWluZ1ZpZGVvSW5FbmhhbmNlZEZ1bGxzY3JlZW4oKSBjb25zdDsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKE1FRElBX1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2MjEwMmExOWRkZGFiYjY3YWQ1NzhiNDk3N2FkZDlj
ZTU5NzI3MjkwLi4xNjdiMGRjMzdiZDlhMjk5OTA4NGFhMGIzZjllNjAzM2QyNTYwZGU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
QEAgLTQ4Myw2ICs0ODMsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIERpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKCkKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgSGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZv
UmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9uLCBTdHJpbmcgdGl0bGUsIGRvdWJsZSBkdXJh
dGlvbiwgZG91YmxlIGVsYXBzZWRUaW1lKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggNjliNjEzNWFmOWUyNmNi
MWQzMzU2MGY4NGM5NDUwODJiYzA4NjM4YS4uNGNhMmU4NmRmZjczNzEzOWU3NDAzMjVmYzZiZGM1
NTA2NDNhMGQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaApAQCAtMTk0LDYgKzE5NCw4IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3Jl
OjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rp
b24oKSBvdmVycmlkZTsKIAorICAgIHZvaWQgaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25J
bmZvUmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBk
b3VibGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSkgb3ZlcnJpZGU7CisKICAgICBXS0Nv
bnRlbnRWaWV3ICptX2NvbnRlbnRWaWV3OwogICAgIFdLV2ViVmlldyAqbV93ZWJWaWV3OwogICAg
IFJldGFpblB0cjxXS0VkaXRvclVuZG9UYXJnZXRPYmpDPiBtX3VuZG9UYXJnZXQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCBj
ZTM2NDA1NTU4NWVkNDllZWU2YzVmODczYWJjZGQzZDA4ODkzOTY4Li5mNTY0OGI4ZDE4MDYwZTM2
YTUzMzhiMWMwMDM4NjFmYWExMGYzYzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQg
IkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJL
ZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uU3RhdGUuaCIKKyNpbXBvcnQgIlN0
cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIlZpZXdTbmFw
c2hvdFN0b3JlLmgiCiAjaW1wb3J0ICJXS0NvbnRlbnRWaWV3LmgiCkBAIC03NDksNiArNzUwLDEx
IEBAIHN0ZDo6dW5pcXVlX3B0cjxWYWxpZGF0aW9uQnViYmxlPiBQYWdlQ2xpZW50SW1wbDo6Y3Jl
YXRlVmFsaWRhdGlvbkJ1YmJsZShjb25zdCBTCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
VmFsaWRhdGlvbkJ1YmJsZT4obV9jb250ZW50VmlldywgbWVzc2FnZSk7CiB9CiAKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OmhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJv
b2wgaGFzQWN0aXZlU2Vzc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgZG91YmxlIGR1cmF0aW9u
LCBkb3VibGUgZWxhcHNlZFRpbWUpCit7CisgICAgW21fd2ViVmlldyBfaGFuZGxlQWN0aXZlTm93
UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2U6aGFzQWN0aXZlU2Vzc2lvbiB0aXRsZTpuc1N0cmlu
Z0Zyb21XZWJDb3JlU3RyaW5nKHRpdGxlKSBkdXJhdGlvbjpkdXJhdGlvbiBlbGFwc2VkVGltZTpl
bGFwc2VkVGltZV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExB
VEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0NvY29hL1dlYlBhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KaW5kZXggOTE4NDQ2NjFiMzMyYjNlMTdlMjIyNTI4ZmY0
ZmJjMjNlZjNmYzgxNy4uZDQwYTBkN2YxYjMzMzY4ZjllZDMwYzk3ZmI2ZDY0Y2Q2Njk3NGM1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBh
Z2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2Ev
V2ViUGFnZUNvY29hLm1tCkBAIC0yNyw2ICsyNyw4IEBACiAjaW1wb3J0ICJXZWJQYWdlLmgiCiAK
ICNpbXBvcnQgIkxvYWRQYXJhbWV0ZXJzLmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdl
cy5oIgorI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KIAog
I2lmIFBMQVRGT1JNKENPQ09BKQogCkBAIC0zOSw2ICs0MSwyMiBAQCB2b2lkIFdlYlBhZ2U6OnBs
YXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKGNvbnN0IExvYWRQYXJhbWV0ZXJzJiBsb2Fk
UGFyYW1ldAogICAgIG1fZGF0YURldGVjdGlvbkNvbnRleHQgPSBsb2FkUGFyYW1ldGVycy5kYXRh
RGV0ZWN0aW9uQ29udGV4dDsKIH0KIAordm9pZCBXZWJQYWdlOjpyZXF1ZXN0QWN0aXZlTm93UGxh
eWluZ1Nlc3Npb25JbmZvKCkKK3sKKyAgICBib29sIGhhc0FjdGl2ZVNlc3Npb24gPSBmYWxzZTsK
KyAgICBTdHJpbmcgdGl0bGUgPSBlbXB0eVN0cmluZygpOworICAgIGRvdWJsZSBkdXJhdGlvbiA9
IE5BTjsKKyAgICBkb3VibGUgZWxhcHNlZFRpbWUgPSBOQU47CisgICAgaWYgKGF1dG8qIHNoYXJl
ZE1hbmFnZXIgPSBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1h
bmFnZXJJZkV4aXN0cygpKSB7CisgICAgICAgIGhhc0FjdGl2ZVNlc3Npb24gPSBzaGFyZWRNYW5h
Z2VyLT5oYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbigpOworICAgICAgICB0aXRsZSA9IHNoYXJl
ZE1hbmFnZXItPmxhc3RVcGRhdGVkTm93UGxheWluZ1RpdGxlKCk7CisgICAgICAgIGR1cmF0aW9u
ID0gc2hhcmVkTWFuYWdlci0+bGFzdFVwZGF0ZWROb3dQbGF5aW5nRHVyYXRpb24oKTsKKyAgICAg
ICAgZWxhcHNlZFRpbWUgPSBzaGFyZWRNYW5hZ2VyLT5sYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFw
c2VkVGltZSgpOworICAgIH0KKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFu
ZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoaGFzQWN0aXZlU2Vzc2lvbiwg
dGl0bGUsIGR1cmF0aW9uLCBlbGFwc2VkVGltZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggODFjZTc1MWY4ZWJkMWQ4ZTBlMGI3ZGNhNWZmMDdi
YjczZDNkMjE2NS4uMzI2ZTQ5ODFiMWI0OTc4YzVlNzJiYWVmMmM4YTA0NWZkZTI5ZmVmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjIzLDYg
KzEyMjMsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGF0YURldGVjdG9yc0RpZEhpZGVVSShXZWJD
b3JlOjpQYWdlT3ZlcmxheTo6UGFnZU92ZXJsYXlJRCk7CiAKICAgICB2b2lkIGhhbmRsZUFjY2Vw
dGVkQ2FuZGlkYXRlKFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCk7CisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9u
SW5mbygpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNzU2YjYyMjZjOTIyYzBiYjIwNjE0NWJi
MmI0YmY2NDZlNzU3MmZlNi4uOWE0NzUzNTA0NGI5MzBlNDIzMGFiNGZlNWEyOWNhN2M3N2FhZThh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KQEAgLTQyNCwxMiArNDI0LDE1IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
TGVnYWN5UmVjZWl2ZXIgewogICAgIERhdGFEZXRlY3RvcnNEaWRIaWRlVUkoV2ViQ29yZTo6UGFn
ZU92ZXJsYXk6OlBhZ2VPdmVybGF5SUQgcGFnZU92ZXJsYXkpCiAKICAgICBIYW5kbGVBY2NlcHRl
ZENhbmRpZGF0ZShzdHJ1Y3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0IGFjY2VwdGVkQ2Fu
ZGlkYXRlKQotICAgIFJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oKQogCiAgICAg
U2V0SGVhZGVyQmFubmVySGVpZ2h0Rm9yVGVzdGluZyhpbnQgaGVpZ2h0KTsKICAgICBTZXRGb290
ZXJCYW5uZXJIZWlnaHRGb3JUZXN0aW5nKGludCBoZWlnaHQpOwogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBSZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCkKKyNl
bmRpZgorCiAgICAgU2V0U2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKGJvb2wgc2hv
dWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKQogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCBmN2ViOGQ3MGM2ZDYy
OGU2ZWJkMzc5YTYyODk2ZjQxMmE1Y2JiZTVhLi4yOTQ5NjdlYjNiMWYyZmIxODIwYTYxODhmNTE2
OThkYTk1MzA2NGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC03Niw3ICs3Niw2IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZU92ZXJsYXlDb250cm9sbGVyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luRG9j
dW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyRWxlbWVudC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9SZW5kZXJPYmplY3QuaD4KQEAgLTE2MiwyMiArMTYxLDYgQEAgdm9pZCBXZWJQYWdlOjpo
YW5kbGVBY2NlcHRlZENhbmRpZGF0ZShXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQgYWNjZXB0
ZWRDYW5kaWQKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEhhbmRsZUFjY2Vw
dGVkQ2FuZGlkYXRlKCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJlcXVlc3RBY3RpdmVOb3dQbGF5
aW5nU2Vzc2lvbkluZm8oKQotewotICAgIGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiA9IGZhbHNlOwot
ICAgIFN0cmluZyB0aXRsZSA9IGVtcHR5U3RyaW5nKCk7Ci0gICAgZG91YmxlIGR1cmF0aW9uID0g
TkFOOwotICAgIGRvdWJsZSBlbGFwc2VkVGltZSA9IE5BTjsKLSAgICBpZiAoYXV0byogc2hhcmVk
TWFuYWdlciA9IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcklmRXhpc3RzKCkpIHsKLSAgICAgICAgaGFzQWN0aXZlU2Vzc2lvbiA9IHNoYXJlZE1hbmFn
ZXItPmhhc0FjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uKCk7Ci0gICAgICAgIHRpdGxlID0gc2hhcmVk
TWFuYWdlci0+bGFzdFVwZGF0ZWROb3dQbGF5aW5nVGl0bGUoKTsKLSAgICAgICAgZHVyYXRpb24g
PSBzaGFyZWRNYW5hZ2VyLT5sYXN0VXBkYXRlZE5vd1BsYXlpbmdEdXJhdGlvbigpOwotICAgICAg
ICBlbGFwc2VkVGltZSA9IHNoYXJlZE1hbmFnZXItPmxhc3RVcGRhdGVkTm93UGxheWluZ0VsYXBz
ZWRUaW1lKCk7Ci0gICAgfQotCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIYW5k
bGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZShoYXNBY3RpdmVTZXNzaW9uLCB0
aXRsZSwgZHVyYXRpb24sIGVsYXBzZWRUaW1lKSk7Ci19Ci0KIE5TT2JqZWN0ICpXZWJQYWdlOjph
Y2Nlc3NpYmlsaXR5T2JqZWN0Rm9yTWFpbkZyYW1lUGx1Z2luKCkKIHsKICAgICBpZiAoIW1fcGFn
ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5
OTdiZDdiNzdkM2NkOTE1ZWRjMWNjMmQzMWE4ODQ1M2RmYzAyNjYwLi5jMDM2YzJiYzJhNjEyZjA2
MzhmZWIzMGRhYzQyZGI0MTRhOWY2NTE4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTctMDEtMTkgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgVmlkZW8gZGV0YWlscyBkb2VzIG5v
dCBhcGVhciBhbmQgbWlzc2luZyBzY3J1YmJlciBpbiBDb250cm9sIENlbnRlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjMzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgVGVzdFdLV2Vi
Vmlld01hYyB0byB3b3JrIG9uIFBMQVRGT1JNKElPUykuIEFkZCBhIG5ldyB0ZXN0IHRvCisgICAg
ICAgIE5vd1BsYXlpbmdDb250cm9sVGVzdHMgZm9yIGlPUy4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL05vd1BsYXlpbmdDb250cm9sc1Rlc3Rz
Lm1tOgorICAgICAgICAoLVtOb3dQbGF5aW5nVGVzdFdlYlZpZXcgc2V0V2luZG93VmlzaWJsZTpd
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1NuYXBzaG90U3RvcmUubW06CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW06CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRl
VGVzdHMubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmg6
IFJlbmFtZWQgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmgu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tOiBSZW5hbWVk
IGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbS4KKyAgICAg
ICAgKFNPRlRfTElOS19DTEFTUyk6CisgICAgICAgICgtW1Rlc3RNZXNzYWdlSGFuZGxlciBhZGRN
ZXNzYWdlOndpdGhIYW5kbGVyOl0pOgorICAgICAgICAoLVtUZXN0TWVzc2FnZUhhbmRsZXIgdXNl
ckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOl0pOgorICAgICAgICAo
X19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVudHNNYXNrKToKKyAgICAgICAgKC1b
VGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3Vy
ZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgaXNLZXlXaW5kb3ddKToK
KyAgICAgICAgKC1bVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgbWFrZUtleVdpbmRvd10pOgorICAg
ICAgICAoLVtUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyByZXNpZ25LZXlXaW5kb3ddKToKKyAgICAg
ICAgKC1bVGVzdFdLV2ViVmlldyBpbml0V2l0aEZyYW1lOl0pOgorICAgICAgICAoLVtUZXN0V0tX
ZWJWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bVGVzdFdL
V2ViVmlldyBfc2V0VXBUZXN0V2luZG93Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHBl
cmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6YWN0aW9uOl0pOgorICAgICAgICAoLVtUZXN0V0tX
ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJW
aWV3IHdhaXRGb3JNZXNzYWdlOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHBlcmZvcm1B
ZnRlckxvYWRpbmc6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91c2VEb3duQXRQb2lu
dDpzaW11bGF0ZVByZXNzdXJlOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHR5cGVDaGFy
YWN0ZXI6XSk6CisKIDIwMTYtMTItMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIHNjaGVtZSBmb3IgTW9iaWxlTWluaUJyb3dzZXJVSVRlc3RzCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDQwNTY0MjRjNjEyZjRiNTY0NjBlNDZhNDhiZTcxNzMyYzY3
NGMyNDguLjAxOGVkMzEyNzMxYmUxNjRkZGE0ZmIxNTQ3MWMyYjIyMjU3NDg1YjggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC04Niw3ICs4Niw3IEBACiAJCTJFRkYwNkM1MUQ4ODY3NzYwMDA0
QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2QzQxRDg4Njc3MDAw
MDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCAqLzsgfTsKIAkJMkVG
RjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVG
RjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwg
Ki87IH07CiAJCTJFRkYwNkNEMUQ4QTQyOUEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3Jv
bGxhYmxlLWRvY3VtZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2Q0MxRDhBNDI5MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxk
LWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCAqLzsgfTsKLQkJMkVGRjA2RDQxRDhBRURCQjAw
MDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZEMzFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2Vi
Vmlld01hYy5tbSAqLzsgfTsKKwkJMkVGRjA2RDQxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dl
YlZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RUZGMDZEMzFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlldy5tbSAqLzsgfTsKIAkJMkVG
RjA2RDcxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2RDYxRDhBRjM0
QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICovOyB9OwogCQkzMTUxMTgx
MDFEQjFBRTQwMDAxNzYzMDQgLyogRXh0ZW5kZWRDb2xvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTUxMTgwRjFEQjFBREQ1MDAxNzYzMDQgLyog
RXh0ZW5kZWRDb2xvci5jcHAgKi87IH07CiAJCTMzQkU1QUY5MTM3QjVBQUUwMDcwNTgxMyAvKiBN
b3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JFNUFGODEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3Zl
QWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovOyB9OwpAQCAtODc2LDggKzg3Niw4IEBACiAJCTJFRkYw
NkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGlj
ay5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVGRjA2QzYxRDg4NkE1NjAw
MDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1m
aWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAiaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkVGRjA2RDIxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dl
YlZpZXdNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdFdLV2ViVmll
d01hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRUZGMDZEMzFEOEFFREJCMDAw
NEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFRlc3RXS1dlYlZpZXdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJFRkYwNkQyMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRlc3RXS1dlYlZpZXcuaDsgcGF0aCA9IGNvY29h
L1Rlc3RXS1dlYlZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVGRjA2RDMx
RDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBUZXN0V0tXZWJWaWV3Lm1tOyBwYXRoID0gY29jb2EvVGVzdFdL
V2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVGRjA2RDYxRDhBRjM0
QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNTExODBGMURCMUFERDUwMDE3NjMwNCAvKiBFeHRl
bmRlZENvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4dGVu
ZGVkQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzNCOUNFMTEyNzdG
MjMxMDBGRUZDRTMgLyogUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDI3LDYgKzE0MjcsOCBAQAogCQkJCTJEMUMwNEE2MUQ3
NjI5OEIwMDBBNjgxNiAvKiBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tICovLAogCQkJCUExNEZD
NThEMUI4QUUzNjUwMEQxMDdFQiAvKiBUZXN0UHJvdG9jb2wuaCAqLywKIAkJCQlBMTRGQzU4RTFC
OEFFMzY1MDBEMTA3RUIgLyogVGVzdFByb3RvY29sLm1tICovLAorCQkJCTJFRkYwNkQyMUQ4QUVE
QkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3LmggKi8sCisJCQkJMkVGRjA2RDMxRDhBRURCQjAw
MDRCQjMwIC8qIFRlc3RXS1dlYlZpZXcubW0gKi8sCiAJCQkJN0M4M0UwMzkxRDBBNjAyNzAwRkVC
Q0YzIC8qIFV0aWxpdGllc0NvY29hLm1tICovLAogCQkJCUExNEZDNTg0MUI4OTczOTEwMEQxMDdF
QiAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmggKi8sCiAJCQkJQTE0RkM1ODMxQjg5
NzM5MTAwRDEwN0VCIC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMubW0gKi8sCkBAIC0y
MDAxLDggKzIwMDMsNiBAQAogCQkJCUMwODEyMjQ0MTNGQzE5RUMwMERDMzlBRSAvKiBTeW50aGV0
aWNCYWNraW5nU2NhbGVGYWN0b3JXaW5kb3cubSAqLywKIAkJCQkyOUFCOEFBMzE2NEM3QTkzMDBE
NDlCRUMgLyogVGVzdEJyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZS5oICovLAogCQkJCTI5QUI4
QUEyMTY0QzdBOTMwMEQ0OUJFQyAvKiBUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLm1t
ICovLAotCQkJCTJFRkYwNkQyMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLmgg
Ki8sCi0JCQkJMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMubW0g
Ki8sCiAJCQkJQzA4NTg3QkUxM0ZFOTU2QzAwMUVGNEU1IC8qIFdlYktpdEFnbm9zdGljVGVzdC5o
ICovLAogCQkJCUMwODU4N0JEMTNGRTk1NkMwMDFFRjRFNSAvKiBXZWJLaXRBZ25vc3RpY1Rlc3Qu
bW0gKi8sCiAJCQkpOwpAQCAtMjU1NSw3ICsyNTU1LDcgQEAKIAkJCQk4MzQ5RDNDMjFEQjk2RERF
MDA0QTlGNjUgLyogQ29udGV4dE1lbnVEb3dubG9hZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdD
Q0U3RUZDMUE0MTFBRTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGRDFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRC
dW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTJFRkYwNkQ0MUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJMkVGRjA2RDQxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZp
ZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCODFEMEE2NEJEMDBGRUJDRjMgLyogSW5q
ZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RUMzMUE0MTFBN0UwMDQ0N0M0QyAvKiBJbnNwZWN0b3JCYXIubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0VEQTFBNDExQTg3MDA0NDdDNEMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxl
ci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvTm93UGxheWluZ0NvbnRyb2xzVGVzdHMubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Ob3dQbGF5aW5nQ29udHJvbHNUZXN0cy5tbQppbmRl
eCA1NzI1MTExZjRmZWM1YzFlOWYyY2IzMmMwNGRkMmFiYTIxMWY2OTM3Li5iNWQ5NzkwM2I0MDVi
MzVhOTMxMmMyMWYxOTlhMjNmMWQ4YzI0OTRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Ob3dQbGF5aW5nQ29udHJvbHNUZXN0cy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Ob3dQbGF5aW5nQ29udHJvbHNU
ZXN0cy5tbQpAQCAtMjYsMTIgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJUZXN0V0tXZWJWaWV3TWFjLmgiCisj
aW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25m
aWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4K
IAotI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01BWF9BTExPV0VEID49IDEwMTIwMQorI2lmIFdLX0FQSV9FTkFCTEVEICYmIChQTEFURk9S
TShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEyMDEpCiAKIEBp
bnRlcmZhY2UgTm93UGxheWluZ1Rlc3RXZWJWaWV3IDogVGVzdFdLV2ViVmlldwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGhhc0FjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uOwpA
QCAtOTMsMTAgKzkzLDIwIEBACiAKICAgICBfcmVjZWl2ZWROb3dQbGF5aW5nSW5mb1Jlc3BvbnNl
ID0gdHJ1ZTsKIH0KKworLSAodm9pZClzZXRXaW5kb3dWaXNpYmxlOihCT09MKWlzVmlzaWJsZQor
eworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBbc2VsZi53aW5kb3cgc2V0SXNWaXNpYmxlOmlzVmlz
aWJsZV07CisjZWxzZQorICAgIHNlbGYud2luZG93LmhpZGRlbiA9ICFpc1Zpc2libGU7CisjZW5k
aWYKK30KIEBlbmQKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCisjaWYgUExBVEZPUk0o
TUFDKQogVEVTVChOb3dQbGF5aW5nQ29udHJvbHNUZXN0cywgTm93UGxheWluZ0NvbnRyb2xzRG9O
b3RTaG93Rm9yRm9yZWdyb3VuZFBhZ2UpCiB7CiAgICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAq
Y29uZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF07CkBA
IC0xMDUsNyArMTE1LDcgQEAgVEVTVChOb3dQbGF5aW5nQ29udHJvbHNUZXN0cywgTm93UGxheWlu
Z0NvbnRyb2xzRG9Ob3RTaG93Rm9yRm9yZWdyb3VuZFBhZ2UpCiAgICAgW3dlYlZpZXcgbG9hZFRl
c3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nIl07CiAgICAgW3dlYlZp
ZXcgd2FpdEZvck1lc3NhZ2U6QCJwbGF5aW5nIl07CiAKLSAgICBbd2ViVmlldy53aW5kb3cgc2V0
SXNWaXNpYmxlOllFU107CisgICAgW3dlYlZpZXcgc2V0V2luZG93VmlzaWJsZTpZRVNdOwogICAg
IFt3ZWJWaWV3LndpbmRvdyBtYWtlS2V5V2luZG93XTsKICAgICBbd2ViVmlldyBleHBlY3RIYXNB
Y3RpdmVOb3dQbGF5aW5nU2Vzc2lvbjpOT107CiAKQEAgLTEyMiw3ICsxMzIsNyBAQCBURVNUKE5v
d1BsYXlpbmdDb250cm9sc1Rlc3RzLCBOb3dQbGF5aW5nQ29udHJvbHNTaG93Rm9yQmFja2dyb3Vu
ZFBhZ2UpCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlby10ZXN0
LW5vdy1wbGF5aW5nIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJwbGF5aW5nIl07
CiAKLSAgICBbd2ViVmlldy53aW5kb3cgc2V0SXNWaXNpYmxlOk5PXTsKKyAgICBbd2ViVmlldyBz
ZXRXaW5kb3dWaXNpYmxlOk5PXTsKICAgICBbd2ViVmlldy53aW5kb3cgcmVzaWduS2V5V2luZG93
XTsKICAgICBbd2ViVmlldyBleHBlY3RIYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbjpZRVNdOwog
CkBAIC0xMzksMTIgKzE0OSwxMiBAQCBURVNUKE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLCBOb3dQ
bGF5aW5nQ29udHJvbHNIaWRlQWZ0ZXJTaG93aW5nS2VlcHNTZXNzaW9uQWN0aQogICAgIFt3ZWJW
aWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAibGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZyJdOwog
ICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAicGxheWluZyJdOwogCi0gICAgW3dlYlZpZXcu
d2luZG93IHNldElzVmlzaWJsZTpOT107CisgICAgW3dlYlZpZXcgc2V0V2luZG93VmlzaWJsZTpO
T107CiAgICAgW3dlYlZpZXcud2luZG93IHJlc2lnbktleVdpbmRvd107CiAKICAgICBbd2ViVmll
dyBleHBlY3RIYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbjpZRVNdOwogCi0gICAgW3dlYlZpZXcu
d2luZG93IHNldElzVmlzaWJsZTpZRVNdOworICAgIFt3ZWJWaWV3IHNldFdpbmRvd1Zpc2libGU6
WUVTXTsKICAgICBbd2ViVmlldy53aW5kb3cgbWFrZUtleVdpbmRvd107CiAKICAgICBbd2ViVmll
dyBleHBlY3RIYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbjpOT107CkBAIC0xNjIsOCArMTcyLDgg
QEAgVEVTVChOb3dQbGF5aW5nQ29udHJvbHNUZXN0cywgTm93UGxheWluZ0NvbnRyb2xzQ2xlYXJJ
bmZvQWZ0ZXJTZXNzaW9uSXNOb0xvbmdlclYKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1l
ZDpAImxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmciXTsKICAgICBbd2ViVmlldyB3YWl0Rm9y
TWVzc2FnZTpAInBsYXlpbmciXTsKIAotICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6TlNN
YWtlUG9pbnQoMjQwLCAxNjApIHNpbXVsYXRlUHJlc3N1cmU6WUVTXTsKLSAgICBbd2ViVmlldy53
aW5kb3cgc2V0SXNWaXNpYmxlOk5PXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKS5tdXRlZCA9IHRydWUi
XTsKKyAgICBbd2ViVmlldyBzZXRXaW5kb3dWaXNpYmxlOk5PXTsKICAgICBbd2ViVmlldy53aW5k
b3cgcmVzaWduS2V5V2luZG93XTsKIAogICAgIFt3ZWJWaWV3IHdhaXRGb3JOb3dQbGF5aW5nSW5m
b1RvQ2hhbmdlXTsKQEAgLTE3Miw3ICsxODIsMjQgQEAgVEVTVChOb3dQbGF5aW5nQ29udHJvbHNU
ZXN0cywgTm93UGxheWluZ0NvbnRyb2xzQ2xlYXJJbmZvQWZ0ZXJTZXNzaW9uSXNOb0xvbmdlclYK
ICAgICBBU1NFUlRfVFJVRShpc25hbih3ZWJWaWV3Lmxhc3RVcGRhdGVkRHVyYXRpb24pKTsKICAg
ICBBU1NFUlRfVFJVRShpc25hbih3ZWJWaWV3Lmxhc3RVcGRhdGVkRWxhcHNlZFRpbWUpKTsKIH0K
KyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKKyNpZiBQTEFURk9STShJT1MpCitURVNUKE5vd1Bs
YXlpbmdDb250cm9sc1Rlc3RzLCBOb3dQbGF5aW5nQ29udHJvbHNJT1MpCit7CisgICAgV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF07CisgICAgY29uZmlndXJhdGlvbi5tZWRpYVR5cGVzUmVxdWlyaW5nVXNl
ckFjdGlvbkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZU5vbmU7CisgICAgTm93
UGxheWluZ1Rlc3RXZWJWaWV3ICp3ZWJWaWV3ID0gW1tOb3dQbGF5aW5nVGVzdFdlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0ODAsIDMyMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uXTsKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdl
LXZpZGVvLXRlc3Qtbm93LXBsYXlpbmciXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpA
InBsYXlpbmciXTsKKworICAgIFt3ZWJWaWV3IGV4cGVjdEhhc0FjdGl2ZU5vd1BsYXlpbmdTZXNz
aW9uOllFU107CisgICAgQVNTRVJUX1NUUkVRKCJmb28iLCB3ZWJWaWV3Lmxhc3RVcGRhdGVkVGl0
bGUuVVRGOFN0cmluZyk7CisgICAgQVNTRVJUX0VRKDEwLCB3ZWJWaWV3Lmxhc3RVcGRhdGVkRHVy
YXRpb24pOworICAgIEFTU0VSVF9HRSh3ZWJWaWV3Lmxhc3RVcGRhdGVkRWxhcHNlZFRpbWUsIDAp
OworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAotI2VuZGlmIC8v
IFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01B
WF9BTExPV0VEID49IDEwMTIwMQorI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIChQTEFURk9S
TShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEyMDEpCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TbmFwc2hvdFN0
b3JlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvU25hcHNob3RT
dG9yZS5tbQppbmRleCAyMjhlNzYxZGNjOWE0YzE5MjYwNzg0N2Q5MmRhMGExOTI3ZTFmZjEwLi4x
YWY4NjA1N2ZmYjU0MjNjMjE2NjBhYTE1YzYxNTdlZWUwMDU0YWJkIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TbmFwc2hvdFN0b3JlLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1NuYXBzaG90U3RvcmUubW0K
QEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0
ICJUZXN0LmgiCiAjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCi0jaW1wb3J0ICJU
ZXN0V0tXZWJWaWV3TWFjLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxX
ZWJLaXQvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dL
UGFnZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUGFnZVByaXZhdGUuaD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2Vy
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9s
c01hbmFnZXIubW0KaW5kZXggZmRkYmVhOTFhNWM0ZTg3MzQzNDMyNzE2NDRlOTUzN2M3ZWJhMWUz
YS4uMWQ2MzBjOTBiNTZlZjgwYWJjYzMxZTJmNzI2ZGEyMTQwM2Y3ZmIxNiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFn
ZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9D
b250cm9sc01hbmFnZXIubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
IAogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlRlc3RXS1dlYlZpZXdN
YWMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKIAogI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJp
dmF0ZS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQppbmRleCBlZDcyMjMxMjk1
OWIwYTI5NWQwMjhjMWEzMzIwOWFiMjU1NTg5MzJjLi45ZGQzOWJiMzEwNTVlNGQwYzRjN2UxM2Yx
Y2Y1NWFkNjdiZTdiMzhlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQpAQCAt
MjgsNyArMjgsNyBAQAogI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTIwMQogCiAjaW1wb3J0ICJQbGF0Zm9y
bVV0aWxpdGllcy5oIgotI2ltcG9ydCAiVGVzdFdLV2ViVmlld01hYy5oIgorI2ltcG9ydCAiVGVz
dFdLV2ViVmlldy5oIgogCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV2ViS2l0UHJpdmF0ZS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMWU4MjcwMjY2YmU1ZWU0NTMzY2Y1MmNjNDRmNjkxNzYwNDA4NjUx
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJW
aWV3LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XZWJL
aXQuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK0BpbnRlcmZhY2UgVGVzdE1lc3NhZ2VIYW5k
bGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CistICh2b2lkKWFkZE1lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZSB3aXRoSGFuZGxlcjooZGlzcGF0Y2hfYmxvY2tfdCloYW5k
bGVyOworQGVuZAorCitAaW50ZXJmYWNlIFRlc3RXS1dlYlZpZXcgOiBXS1dlYlZpZXcKKy0gKHZv
aWQpcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGFjdGlv
bjooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb247CistICh2b2lkKWxvYWRUZXN0UGFnZU5hbWVkOihO
U1N0cmluZyAqKXBhZ2VOYW1lOworLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFt
ZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7CistIChOU1N0cmluZyAqKXN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6KE5TU3RyaW5nICopc2NyaXB0OworLSAodm9pZCl3YWl0Rm9yTWVzc2FnZToo
TlNTdHJpbmcgKiltZXNzYWdlOworLSAodm9pZClwZXJmb3JtQWZ0ZXJMb2FkaW5nOihkaXNwYXRj
aF9ibG9ja190KWFjdGlvbnM7CitAZW5kCisKKyNpZiBQTEFURk9STShNQUMpCitAaW50ZXJmYWNl
IFRlc3RXS1dlYlZpZXcgKE1hY09ubHkpCisvLyBTaW11bGF0ZXMgY2xpY2tpbmcgd2l0aCBhIHBy
ZXNzdXJlLXNlbnNpdGl2ZSBkZXZpY2UsIGlmIHBvc3NpYmxlLgorLSAodm9pZCltb3VzZURvd25B
dFBvaW50OihOU1BvaW50KXBvaW50IHNpbXVsYXRlUHJlc3N1cmU6KEJPT0wpc2ltdWxhdGVQcmVz
c3VyZTsKKy0gKHZvaWQpdHlwZUNoYXJhY3RlcjooY2hhciljaGFyYWN0ZXI7CitAZW5kCisjZW5k
aWYKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECisKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvVGVzdFdLV2ViVmlldy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmNlMjBmMWJhZDNlYjhiMjE2ZWNjNjEx
OGU5ZjQzYmM1MTI0YmYyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lm1tCkBAIC0wLDAgKzEsMjYzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisKKyNpZiBXS19BUElf
RU5BQkxFRAorCisjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJV
dGlsaXRpZXMuaCIKKworI2ltcG9ydCA8V2ViS2l0L1dlYktpdFByaXZhdGUuaD4KKyNpbXBvcnQg
PG9iamMvcnVudGltZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgUExBVEZP
Uk0oTUFDKQorI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorI2ltcG9ydCA8Q2FyYm9uL0NhcmJv
bi5oPgorI2ltcG9ydCA8d3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmg+
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtp
bmcuaD4KK1NPRlRfTElOS19GUkFNRVdPUksoVUlLaXQpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQs
IFVJV2luZG93KQorI2VuZGlmCisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0TWVzc2FnZUhhbmRsZXIg
eworICAgIE5TTXV0YWJsZURpY3Rpb25hcnk8TlNTdHJpbmcgKiwgZGlzcGF0Y2hfYmxvY2tfdD4g
Kl9tZXNzYWdlSGFuZGxlcnM7Cit9CisKKy0gKHZvaWQpYWRkTWVzc2FnZTooTlNTdHJpbmcgKilt
ZXNzYWdlIHdpdGhIYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXIKK3sKKyAgICBpZiAo
IV9tZXNzYWdlSGFuZGxlcnMpCisgICAgICAgIF9tZXNzYWdlSGFuZGxlcnMgPSBbTlNNdXRhYmxl
RGljdGlvbmFyeSBkaWN0aW9uYXJ5XTsKKworICAgIF9tZXNzYWdlSGFuZGxlcnNbbWVzc2FnZV0g
PSBbaGFuZGxlciBjb3B5XTsKK30KKworLSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdL
VXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2VpdmVT
Y3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCit7CisgICAgZGlzcGF0Y2hf
YmxvY2tfdCBoYW5kbGVyID0gX21lc3NhZ2VIYW5kbGVyc1ttZXNzYWdlLmJvZHldOworICAgIGlm
IChoYW5kbGVyKQorICAgICAgICBoYW5kbGVyKCk7Cit9CisKK0BlbmQKKworI2lmIFBMQVRGT1JN
KE1BQykKK0BpbnRlcmZhY2UgVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgOiBOU1dpbmRvdworI2Vs
c2UKK0BpbnRlcmZhY2UgVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgOiBVSVdpbmRvdworI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXdI
b3N0V2luZG93IHsKKyAgICBCT09MIF9mb3JjZUtleVdpbmRvdzsKK30KKworI2lmIFBMQVRGT1JN
KE1BQykKK3N0YXRpYyBpbnQgZ0V2ZW50TnVtYmVyID0gMTsKKworI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAzCitOU0V2ZW50TWFzayBfX3NpbXVsYXRlZF9mb3Jj
ZUNsaWNrQXNzb2NpYXRlZEV2ZW50c01hc2soaWQgc2VsZiwgU0VMIF9jbWQpCit7CisgICAgcmV0
dXJuIE5TRXZlbnRNYXNrUHJlc3N1cmUgfCBOU0V2ZW50TWFza0xlZnRNb3VzZURvd24gfCBOU0V2
ZW50TWFza0xlZnRNb3VzZVVwIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEcmFnZ2VkOworfQorI2Vu
ZGlmCisKKy0gKHZvaWQpX21vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgc2ltdWxhdGVQ
cmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlCit7CisgICAgTlNFdmVudFR5cGUgbW91c2VF
dmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CisKKyAgICBOU0V2ZW50TWFzayBt
b2RpZmllckZsYWdzID0gMDsKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTAwMworICAgIGlmIChzaW11bGF0ZVByZXNzdXJlKQorICAgICAgICBtb2RpZmllckZsYWdz
IHw9IE5TRXZlbnRNYXNrUHJlc3N1cmU7CisjZWxzZQorICAgIHNpbXVsYXRlUHJlc3N1cmUgPSBO
TzsKKyNlbmRpZgorCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6bW91c2VFdmVudFR5cGUgbG9jYXRpb246cG9pbnQgbW9kaWZpZXJGbGFnczptb2RpZmll
ckZsYWdzIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOnNlbGYu
d2luZG93TnVtYmVyIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBl
dmVudE51bWJlcjorK2dFdmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6c2ltdWxhdGVQ
cmVzc3VyZV07CisgICAgaWYgKCFzaW11bGF0ZVByZXNzdXJlKSB7CisgICAgICAgIFtzZWxmIHNl
bmRFdmVudDpldmVudF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMworICAgIElNUCBzaW11bGF0ZWRBc3NvY2lh
dGVkRXZlbnRzTWFza0ltcGwgPSAoSU1QKV9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVk
RXZlbnRzTWFzazsKKyAgICBNZXRob2QgYXNzb2NpYXRlZEV2ZW50c01hc2tNZXRob2QgPSBjbGFz
c19nZXRJbnN0YW5jZU1ldGhvZChbTlNFdmVudCBjbGFzc10sIEBzZWxlY3Rvcihhc3NvY2lhdGVk
RXZlbnRzTWFzaykpOworICAgIElNUCBvcmlnaW5hbEFzc29jaWF0ZWRFdmVudHNNYXNrSW1wbCA9
IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihhc3NvY2lhdGVkRXZlbnRzTWFza01ldGhvZCwgc2lt
dWxhdGVkQXNzb2NpYXRlZEV2ZW50c01hc2tJbXBsKTsKKyAgICBAdHJ5IHsKKyAgICAgICAgW3Nl
bGYgc2VuZEV2ZW50OmV2ZW50XTsKKyAgICB9IEBmaW5hbGx5IHsKKyAgICAgICAgLy8gSW4gdGhl
IGNhc2Ugd2hlcmUgZXZlbnQgc2VuZGluZyByYWlzZXMgYW4gZXhjZXB0aW9uLCB3ZSBzdGlsbCB3
YW50IHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uCisgICAgICAgIC8vIHRv
IHByZXZlbnQgc3Vic2VxdWVudCBldmVudCBzZW5kaW5nIHRlc3RzIGZyb20gYmVpbmcgYWZmZWN0
ZWQuCisgICAgICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihhc3NvY2lhdGVkRXZlbnRzTWFz
a01ldGhvZCwgb3JpZ2luYWxBc3NvY2lhdGVkRXZlbnRzTWFza0ltcGwpOworICAgIH0KKyNlbmRp
ZgorfQorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworLSAoQk9PTClpc0tleVdpbmRvdworewor
ICAgIHJldHVybiBfZm9yY2VLZXlXaW5kb3cgfHwgW3N1cGVyIGlzS2V5V2luZG93XTsKK30KKwor
LSAodm9pZCltYWtlS2V5V2luZG93Cit7CisgICAgaWYgKF9mb3JjZUtleVdpbmRvdykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgX2ZvcmNlS2V5V2luZG93ID0gWUVTOworI2lmIFBMQVRGT1JNKE1B
QykKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmlj
YXRpb25OYW1lOk5TV2luZG93RGlkQmVjb21lS2V5Tm90aWZpY2F0aW9uIG9iamVjdDpzZWxmXTsK
KyNlbHNlCisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90
aWZpY2F0aW9uTmFtZTpVSVdpbmRvd0RpZEJlY29tZUtleU5vdGlmaWNhdGlvbiBvYmplY3Q6c2Vs
Zl07CisjZW5kaWYKK30KKworLSAodm9pZClyZXNpZ25LZXlXaW5kb3cKK3sKKyAgICBfZm9yY2VL
ZXlXaW5kb3cgPSBOTzsKKyAgICBbc3VwZXIgcmVzaWduS2V5V2luZG93XTsKK30KKworQGVuZAor
CitAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyB7CisgICAgVGVzdFdLV2ViVmlld0hvc3RX
aW5kb3cgKl9ob3N0V2luZG93OworICAgIFJldGFpblB0cjxUZXN0TWVzc2FnZUhhbmRsZXI+IF90
ZXN0SGFuZGxlcjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClm
cmFtZQoreworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmRlZmF1bHRDb25maWd1cmF0aW9u
ID0gW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gW3Nl
bGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb25maWd1cmF0aW9uOmRlZmF1bHRDb25maWd1cmF0aW9u
XTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb25m
aWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgoreworICAg
IGlmIChzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSkKKyAgICAgICAgW3NlbGYgX3NldFVwVGVzdFdpbmRvdzpmcmFtZV07CisKKyAg
ICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClfc2V0VXBUZXN0V2luZG93OihOU1JlY3QpZnJh
bWUKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgX2hvc3RXaW5kb3cgPSBbW1Rlc3RXS1dlYlZp
ZXdIb3N0V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpO
U1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVk
IGRlZmVyOk5PXTsKKyAgICBbX2hvc3RXaW5kb3cgc2V0RnJhbWVPcmlnaW46TlNNYWtlUG9pbnQo
MCwgMCldOworICAgIFtfaG9zdFdpbmRvdyBzZXRJc1Zpc2libGU6WUVTXTsKKyAgICBbW19ob3N0
V2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OnNlbGZdOworICAgIFtfaG9zdFdpbmRvdyBt
YWtlS2V5QW5kT3JkZXJGcm9udDpzZWxmXTsKKyNlbHNlCisgICAgX2hvc3RXaW5kb3cgPSBbW1Rl
c3RXS1dlYlZpZXdIb3N0V2luZG93IGFsbG9jXSBpbml0V2l0aEZyYW1lOmZyYW1lXTsKKyAgICBf
aG9zdFdpbmRvdy5oaWRkZW4gPSBOTzsKKyAgICBbX2hvc3RXaW5kb3cgYWRkU3VidmlldzpzZWxm
XTsKKyNlbmRpZgorfQorCistICh2b2lkKXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5T
U3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uCit7CisgICAg
aWYgKCFfdGVzdEhhbmRsZXIpIHsKKyAgICAgICAgX3Rlc3RIYW5kbGVyID0gYWRvcHROUyhbW1Rl
c3RNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgICAgICBbW1tzZWxmIGNvbmZpZ3Vy
YXRpb25dIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6X3Rl
c3RIYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworICAgIH0KKworICAgIFtfdGVz
dEhhbmRsZXIgYWRkTWVzc2FnZTptZXNzYWdlIHdpdGhIYW5kbGVyOmFjdGlvbl07Cit9CisKKy0g
KHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWUKK3sKKyAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6cGFnZU5hbWUgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFtzZWxm
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworfQorCistICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVz
dFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZQoreworICAgIFtzZWxmIGxvYWRUZXN0UGFn
ZU5hbWVkOnBhZ2VOYW1lXTsKKyAgICBbc2VsZiBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdh
dGlvbl07Cit9CisKKy0gKE5TU3RyaW5nICopc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDoo
TlNTdHJpbmcgKilzY3JpcHQKK3sKKyAgICBfX2Jsb2NrIGJvb2wgaXNXYWl0aW5nRm9ySmF2YVNj
cmlwdCA9IGZhbHNlOworICAgIF9fYmxvY2sgTlNTdHJpbmcgKmV2YWxSZXN1bHQgPSBuaWw7Cisg
ICAgW3NlbGYgZXZhbHVhdGVKYXZhU2NyaXB0OnNjcmlwdCBjb21wbGV0aW9uSGFuZGxlcjpeKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpCisgICAgeworICAgICAgICBldmFsUmVzdWx0ID0gW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQCIsIHJlc3VsdF07CisgICAgICAgIGlzV2FpdGlu
Z0ZvckphdmFTY3JpcHQgPSB0cnVlOworICAgICAgICBFWFBFQ1RfVFJVRSghZXJyb3IpOworICAg
IH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc1dhaXRpbmdGb3JKYXZhU2Ny
aXB0KTsKKyAgICByZXR1cm4gZXZhbFJlc3VsdDsKK30KKworLSAodm9pZCl3YWl0Rm9yTWVzc2Fn
ZTooTlNTdHJpbmcgKiltZXNzYWdlCit7CisgICAgX19ibG9jayBib29sIGlzRG9uZVdhaXRpbmcg
PSBmYWxzZTsKKyAgICBbc2VsZiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOm1lc3NhZ2Ug
YWN0aW9uOl4oKQorICAgIHsKKyAgICAgICAgaXNEb25lV2FpdGluZyA9IHRydWU7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmVXYWl0aW5nKTsKK30KKworLSAo
dm9pZClwZXJmb3JtQWZ0ZXJMb2FkaW5nOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbnMgeworICAg
IFRlc3RNZXNzYWdlSGFuZGxlciAqaGFuZGxlciA9IFtbVGVzdE1lc3NhZ2VIYW5kbGVyIGFsbG9j
XSBpbml0XTsKKyAgICBbaGFuZGxlciBhZGRNZXNzYWdlOkAibG9hZGVkIiB3aXRoSGFuZGxlcjph
Y3Rpb25zXTsKKworICAgIE5TU3RyaW5nICpvbmxvYWRTY3JpcHQgPSBAIndpbmRvdy5vbmxvYWQg
PSAoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5vbmxvYWRIYW5kbGVyLnBvc3RN
ZXNzYWdlKCdsb2FkZWQnKSI7CisgICAgV0tVc2VyU2NyaXB0ICpzY3JpcHQgPSBbW1dLVXNlclNj
cmlwdCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6b25sb2FkU2NyaXB0IGluamVjdGlvblRpbWU6V0tV
c2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJhbWVPbmx5Ok5P
XTsKKworICAgIFdLVXNlckNvbnRlbnRDb250cm9sbGVyKiBjb250ZW50Q29udHJvbGxlciA9IFtb
c2VsZiBjb25maWd1cmF0aW9uXSB1c2VyQ29udGVudENvbnRyb2xsZXJdOworICAgIFtjb250ZW50
Q29udHJvbGxlciBhZGRVc2VyU2NyaXB0OnNjcmlwdF07CisgICAgW2NvbnRlbnRDb250cm9sbGVy
IGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIgbmFtZTpAIm9ubG9hZEhhbmRsZXIiXTsK
K30KKworQGVuZAorCisjaWYgUExBVEZPUk0oTUFDKQorQGltcGxlbWVudGF0aW9uIFRlc3RXS1dl
YlZpZXcgKE1hY09ubHkpCistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQg
c2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlCit7CisgICAgW19ob3N0V2lu
ZG93IF9tb3VzZURvd25BdFBvaW50OnBvaW50IHNpbXVsYXRlUHJlc3N1cmU6c2ltdWxhdGVQcmVz
c3VyZV07Cit9CisKKy0gKHZvaWQpdHlwZUNoYXJhY3RlcjooY2hhciljaGFyYWN0ZXIgeworICAg
IE5TU3RyaW5nICpjaGFyYWN0ZXJBc1N0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAiJWMiICwgY2hhcmFjdGVyXTsKKyAgICBOU0V2ZW50VHlwZSBrZXlEb3duRXZlbnRUeXBlID0g
TlNFdmVudFR5cGVLZXlEb3duOworICAgIE5TRXZlbnRUeXBlIGtleVVwRXZlbnRUeXBlID0gTlNF
dmVudFR5cGVLZXlVcDsKKyAgICBbc2VsZiBrZXlEb3duOltOU0V2ZW50IGtleUV2ZW50V2l0aFR5
cGU6a2V5RG93bkV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6X2hvc3RXaW5kb3cu
d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcgY2hh
cmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpOTyBr
ZXlDb2RlOmNoYXJhY3Rlcl1dOworICAgIFtzZWxmIGtleVVwOltOU0V2ZW50IGtleUV2ZW50V2l0
aFR5cGU6a2V5VXBFdmVudFR5cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczow
IHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOl9ob3N0V2luZG93
LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNo
YXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8g
a2V5Q29kZTpjaGFyYWN0ZXJdXTsKK30KK0BlbmQKKyNlbmRpZgorCisjZW5kaWYgLy8gV0tfQVBJ
X0VOQUJMRUQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZp
ZXdNYWMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDVjY2FiZDAzNzUyMTg2ZWY5NzE5YzkxNWFhNjQ4
MmNiODIwZDA4NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBUZXN0V0tXZWJWaWV3TWFj
X2gKLSNkZWZpbmUgVGVzdFdLV2ViVmlld01hY19oCi0KLSNpbXBvcnQgPFdlYktpdC9XZWJLaXQu
aD4KLQotI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykKLQotQGludGVyZmFjZSBU
ZXN0TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KLS0g
KHZvaWQpYWRkTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIHdpdGhIYW5kbGVyOihkaXNwYXRj
aF9ibG9ja190KWhhbmRsZXI7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgVGVzdFdLV2ViVmlldyA6IFdL
V2ViVmlldwotLy8gU2ltdWxhdGVzIGNsaWNraW5nIHdpdGggYSBwcmVzc3VyZS1zZW5zaXRpdmUg
ZGV2aWNlLCBpZiBwb3NzaWJsZS4KLS0gKHZvaWQpbW91c2VEb3duQXRQb2ludDooTlNQb2ludClw
b2ludCBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmU7Ci0tICh2b2lkKXBl
cmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRp
c3BhdGNoX2Jsb2NrX3QpYWN0aW9uOwotLSAodm9pZClsb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJp
bmcgKilwYWdlTmFtZTsKLS0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOihO
U1N0cmluZyAqKXBhZ2VOYW1lOwotLSAodm9pZCl0eXBlQ2hhcmFjdGVyOihjaGFyKWNoYXJhY3Rl
cjsKLS0gKE5TU3RyaW5nICopc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDooTlNTdHJpbmcg
KilzY3JpcHQ7Ci0tICh2b2lkKXdhaXRGb3JNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2U7Ci0t
ICh2b2lkKXBlcmZvcm1BZnRlckxvYWRpbmc6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uczsKLUBl
bmQKLQotI2VuZGlmIC8qIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgKi8KLQotI2Vu
ZGlmIC8qIFRlc3RXS1dlYlZpZXdNYWNfaCAqLwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rl
c3RXS1dlYlZpZXdNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5M2IxYmMy
ZmI3MmMyYmZiMjllNzlmMjUwNDgwMmYxMTY1YWFkZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2Vi
Vmlld01hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDIzNCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJUZXN0V0tXZWJWaWV3TWFjLmgiCi0KLSNpZiBX
S19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpCi0KLSNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9u
RGVsZWdhdGUuaCIKLSNpbXBvcnQgIlV0aWxpdGllcy5oIgotCi0jaW1wb3J0IDxBcHBLaXQvQXBw
S2l0Lmg+Ci0jaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV2ViS2l0
UHJpdmF0ZS5oPgotI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+Ci0jaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+Ci0jaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMu
aD4KLQotQGltcGxlbWVudGF0aW9uIFRlc3RNZXNzYWdlSGFuZGxlciB7Ci0gICAgTlNNdXRhYmxl
RGljdGlvbmFyeTxOU1N0cmluZyAqLCBkaXNwYXRjaF9ibG9ja190PiAqX21lc3NhZ2VIYW5kbGVy
czsKLX0KLQotLSAodm9pZClhZGRNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2Ugd2l0aEhhbmRs
ZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcgotewotICAgIGlmICghX21lc3NhZ2VIYW5kbGVy
cykKLSAgICAgICAgX21lc3NhZ2VIYW5kbGVycyA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rp
b25hcnldOwotCi0gICAgX21lc3NhZ2VIYW5kbGVyc1ttZXNzYWdlXSA9IFtoYW5kbGVyIGNvcHld
OwotfQotCi0tICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRy
b2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdL
U2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKLXsKLSAgICBkaXNwYXRjaF9ibG9ja190IGhhbmRsZXIg
PSBfbWVzc2FnZUhhbmRsZXJzW21lc3NhZ2UuYm9keV07Ci0gICAgaWYgKGhhbmRsZXIpCi0gICAg
ICAgIGhhbmRsZXIoKTsKLX0KLQotQGVuZAotCi1AaW50ZXJmYWNlIFRlc3RXS1dlYlZpZXdIb3N0
V2luZG93IDogTlNXaW5kb3cKLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXdI
b3N0V2luZG93IHsKLSAgICBCT09MIF9mb3JjZUtleVdpbmRvdzsKLX0KLQotc3RhdGljIGludCBn
RXZlbnROdW1iZXIgPSAxOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEwMDMKLU5TRXZlbnRNYXNrIF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZl
bnRzTWFzayhpZCBzZWxmLCBTRUwgX2NtZCkKLXsKLSAgICByZXR1cm4gTlNFdmVudE1hc2tQcmVz
c3VyZSB8IE5TRXZlbnRNYXNrTGVmdE1vdXNlRG93biB8IE5TRXZlbnRNYXNrTGVmdE1vdXNlVXAg
fCBOU0V2ZW50TWFza0xlZnRNb3VzZURyYWdnZWQ7Ci19Ci0jZW5kaWYKLQotLSAodm9pZClfbW91
c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVs
YXRlUHJlc3N1cmUKLXsKLSAgICBOU0V2ZW50VHlwZSBtb3VzZUV2ZW50VHlwZSA9IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93bjsKLQotICAgIE5TRXZlbnRNYXNrIG1vZGlmaWVyRmxhZ3MgPSAwOwot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAzCi0gICAgaWYgKHNp
bXVsYXRlUHJlc3N1cmUpCi0gICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlNFdmVudE1hc2tQcmVz
c3VyZTsKLSNlbHNlCi0gICAgc2ltdWxhdGVQcmVzc3VyZSA9IE5POwotI2VuZGlmCi0KLSAgICBO
U0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTptb3VzZUV2ZW50VHlw
ZSBsb2NhdGlvbjpwb2ludCBtb2RpZmllckZsYWdzOm1vZGlmaWVyRmxhZ3MgdGltZXN0YW1wOkdl
dEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6c2VsZi53aW5kb3dOdW1iZXIgY29udGV4
dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOisrZ0V2ZW50
TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpzaW11bGF0ZVByZXNzdXJlXTsKLSAgICBpZiAo
IXNpbXVsYXRlUHJlc3N1cmUpIHsKLSAgICAgICAgW3NlbGYgc2VuZEV2ZW50OmV2ZW50XTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMDAzCi0gICAgSU1QIHNpbXVsYXRlZEFzc29jaWF0ZWRFdmVudHNNYXNrSW1wbCA9
IChJTVApX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVudHNNYXNrOwotICAgIE1l
dGhvZCBhc3NvY2lhdGVkRXZlbnRzTWFza01ldGhvZCA9IGNsYXNzX2dldEluc3RhbmNlTWV0aG9k
KFtOU0V2ZW50IGNsYXNzXSwgQHNlbGVjdG9yKGFzc29jaWF0ZWRFdmVudHNNYXNrKSk7Ci0gICAg
SU1QIG9yaWdpbmFsQXNzb2NpYXRlZEV2ZW50c01hc2tJbXBsID0gbWV0aG9kX3NldEltcGxlbWVu
dGF0aW9uKGFzc29jaWF0ZWRFdmVudHNNYXNrTWV0aG9kLCBzaW11bGF0ZWRBc3NvY2lhdGVkRXZl
bnRzTWFza0ltcGwpOwotICAgIEB0cnkgewotICAgICAgICBbc2VsZiBzZW5kRXZlbnQ6ZXZlbnRd
OwotICAgIH0gQGZpbmFsbHkgewotICAgICAgICAvLyBJbiB0aGUgY2FzZSB3aGVyZSBldmVudCBz
ZW5kaW5nIHJhaXNlcyBhbiBleGNlcHRpb24sIHdlIHN0aWxsIHdhbnQgdG8gcmVzdG9yZSB0aGUg
b3JpZ2luYWwgaW1wbGVtZW50YXRpb24KLSAgICAgICAgLy8gdG8gcHJldmVudCBzdWJzZXF1ZW50
IGV2ZW50IHNlbmRpbmcgdGVzdHMgZnJvbSBiZWluZyBhZmZlY3RlZC4KLSAgICAgICAgbWV0aG9k
X3NldEltcGxlbWVudGF0aW9uKGFzc29jaWF0ZWRFdmVudHNNYXNrTWV0aG9kLCBvcmlnaW5hbEFz
c29jaWF0ZWRFdmVudHNNYXNrSW1wbCk7Ci0gICAgfQotI2VuZGlmCi19Ci0KLS0gKEJPT0wpaXNL
ZXlXaW5kb3cKLXsKLSAgICByZXR1cm4gX2ZvcmNlS2V5V2luZG93IHx8IFtzdXBlciBpc0tleVdp
bmRvd107Ci19Ci0KLS0gKHZvaWQpbWFrZUtleVdpbmRvdwotewotICAgIGlmIChfZm9yY2VLZXlX
aW5kb3cpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9mb3JjZUtleVdpbmRvdyA9IFlFUzsKLSAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmljYXRpb25O
YW1lOk5TV2luZG93RGlkQmVjb21lS2V5Tm90aWZpY2F0aW9uIG9iamVjdDpzZWxmXTsKLX0KLQot
LSAodm9pZClyZXNpZ25LZXlXaW5kb3cKLXsKLSAgICBfZm9yY2VLZXlXaW5kb3cgPSBOTzsKLSAg
ICBbc3VwZXIgcmVzaWduS2V5V2luZG93XTsKLX0KLQotQGVuZAotCi1AaW1wbGVtZW50YXRpb24g
VGVzdFdLV2ViVmlldyB7Ci0gICAgVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgKl9ob3N0V2luZG93
OwotICAgIFJldGFpblB0cjxUZXN0TWVzc2FnZUhhbmRsZXI+IF90ZXN0SGFuZGxlcjsKLX0KLQot
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZQotewotICAgIFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gKmRlZmF1bHRDb25maWd1cmF0aW9uID0gW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XTsKLSAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhGcmFtZTpm
cmFtZSBjb25maWd1cmF0aW9uOmRlZmF1bHRDb25maWd1cmF0aW9uXTsKLX0KLQotLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb25maWd1cmF0aW9uOihXS1dlYlZp
ZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgotewotICAgIGlmIChzZWxmID0gW3N1cGVy
IGluaXRXaXRoRnJhbWU6ZnJhbWUgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSkKLSAgICAg
ICAgW3NlbGYgX3NldFVwVGVzdFdpbmRvdzpmcmFtZV07Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0K
LQotLSAodm9pZClfc2V0VXBUZXN0V2luZG93OihOU1JlY3QpZnJhbWUKLXsKLSAgICBfaG9zdFdp
bmRvdyA9IFtbVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJl
Y3Q6ZnJhbWUgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwotICAgIFtfaG9zdFdpbmRvdyBzZXRGcmFt
ZU9yaWdpbjpOU01ha2VQb2ludCgwLCAwKV07Ci0gICAgW1tfaG9zdFdpbmRvdyBjb250ZW50Vmll
d10gYWRkU3VidmlldzpzZWxmXTsKLSAgICBbX2hvc3RXaW5kb3cgc2V0SXNWaXNpYmxlOllFU107
Ci0gICAgW19ob3N0V2luZG93IG1ha2VLZXlBbmRPcmRlckZyb250OnNlbGZdOwotfQotCi0tICh2
b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgc2ltdWxhdGVQcmVzc3VyZTooQk9P
TClzaW11bGF0ZVByZXNzdXJlCi17Ci0gICAgW19ob3N0V2luZG93IF9tb3VzZURvd25BdFBvaW50
OnBvaW50IHNpbXVsYXRlUHJlc3N1cmU6c2ltdWxhdGVQcmVzc3VyZV07Ci19Ci0KLS0gKHZvaWQp
cGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGFjdGlvbjoo
ZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb24KLXsKLSAgICBpZiAoIV90ZXN0SGFuZGxlcikgewotICAg
ICAgICBfdGVzdEhhbmRsZXIgPSBhZG9wdE5TKFtbVGVzdE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBp
bml0XSk7Ci0gICAgICAgIFtbW3NlbGYgY29uZmlndXJhdGlvbl0gdXNlckNvbnRlbnRDb250cm9s
bGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpfdGVzdEhhbmRsZXIuZ2V0KCkgbmFtZTpAInRl
c3RIYW5kbGVyIl07Ci0gICAgfQotCi0gICAgW190ZXN0SGFuZGxlciBhZGRNZXNzYWdlOm1lc3Nh
Z2Ugd2l0aEhhbmRsZXI6YWN0aW9uXTsKLX0KLQotLSAodm9pZClsb2FkVGVzdFBhZ2VOYW1lZDoo
TlNTdHJpbmcgKilwYWdlTmFtZQotewotICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpwYWdlTmFtZSB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXV07Ci0gICAgW3NlbGYgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci19
Ci0KLS0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBh
Z2VOYW1lCi17Ci0gICAgW3NlbGYgbG9hZFRlc3RQYWdlTmFtZWQ6cGFnZU5hbWVdOwotICAgIFtz
ZWxmIF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKLX0KLQotLSAodm9pZCl0eXBl
Q2hhcmFjdGVyOihjaGFyKWNoYXJhY3RlciB7Ci0gICAgTlNTdHJpbmcgKmNoYXJhY3RlckFzU3Ry
aW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlYyIgLCBjaGFyYWN0ZXJdOwotICAg
IE5TRXZlbnRUeXBlIGtleURvd25FdmVudFR5cGUgPSBOU0V2ZW50VHlwZUtleURvd247Ci0gICAg
TlNFdmVudFR5cGUga2V5VXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUtleVVwOwotICAgIFtzZWxm
IGtleURvd246W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTprZXlEb3duRXZlbnRUeXBlIGxvY2F0
aW9uOk5TWmVyb1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50
VGltZSgpIHdpbmRvd051bWJlcjpfaG9zdFdpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwg
Y2hhcmFjdGVyczpjaGFyYWN0ZXJBc1N0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6
Y2hhcmFjdGVyQXNTdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6Y2hhcmFjdGVyXV07Ci0gICAg
W3NlbGYga2V5VXA6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTprZXlVcEV2ZW50VHlwZSBsb2Nh
dGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVu
dFRpbWUoKSB3aW5kb3dOdW1iZXI6X2hvc3RXaW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmls
IGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJz
OmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmNoYXJhY3Rlcl1dOwotfQot
Ci0tIChOU1N0cmluZyAqKXN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6KE5TU3RyaW5nICop
c2NyaXB0Ci17Ci0gICAgX19ibG9jayBib29sIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSBmYWxz
ZTsKLSAgICBfX2Jsb2NrIE5TU3RyaW5nICpldmFsUmVzdWx0ID0gbmlsOwotICAgIFtzZWxmIGV2
YWx1YXRlSmF2YVNjcmlwdDpzY3JpcHQgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5T
RXJyb3IgKmVycm9yKQotICAgIHsKLSAgICAgICAgZXZhbFJlc3VsdCA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiJUAiLCByZXN1bHRdOwotICAgICAgICBpc1dhaXRpbmdGb3JKYXZhU2Ny
aXB0ID0gdHJ1ZTsKLSAgICAgICAgRVhQRUNUX1RSVUUoIWVycm9yKTsKLSAgICB9XTsKLQotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCk7Ci0gICAg
cmV0dXJuIGV2YWxSZXN1bHQ7Ci19Ci0KLS0gKHZvaWQpd2FpdEZvck1lc3NhZ2U6KE5TU3RyaW5n
ICopbWVzc2FnZQotewotICAgIF9fYmxvY2sgYm9vbCBpc0RvbmVXYWl0aW5nID0gZmFsc2U7Ci0g
ICAgW3NlbGYgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTptZXNzYWdlIGFjdGlvbjpeKCkK
LSAgICB7Ci0gICAgICAgIGlzRG9uZVdhaXRpbmcgPSB0cnVlOwotICAgIH1dOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lV2FpdGluZyk7Ci19Ci0KLS0gKHZvaWQpcGVyZm9y
bUFmdGVyTG9hZGluZzooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb25zIHsKLSAgICBUZXN0TWVzc2Fn
ZUhhbmRsZXIgKmhhbmRsZXIgPSBbW1Rlc3RNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF07Ci0g
ICAgW2hhbmRsZXIgYWRkTWVzc2FnZTpAImxvYWRlZCIgd2l0aEhhbmRsZXI6YWN0aW9uc107Ci0K
LSAgICBOU1N0cmluZyAqb25sb2FkU2NyaXB0ID0gQCJ3aW5kb3cub25sb2FkID0gKCkgPT4gd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMub25sb2FkSGFuZGxlci5wb3N0TWVzc2FnZSgnbG9h
ZGVkJykiOwotICAgIFdLVXNlclNjcmlwdCAqc2NyaXB0ID0gW1tXS1VzZXJTY3JpcHQgYWxsb2Nd
IGluaXRXaXRoU291cmNlOm9ubG9hZFNjcmlwdCBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdElu
amVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOT107Ci0KLSAgICBX
S1VzZXJDb250ZW50Q29udHJvbGxlciogY29udGVudENvbnRyb2xsZXIgPSBbW3NlbGYgY29uZmln
dXJhdGlvbl0gdXNlckNvbnRlbnRDb250cm9sbGVyXTsKLSAgICBbY29udGVudENvbnRyb2xsZXIg
YWRkVXNlclNjcmlwdDpzY3JpcHRdOwotICAgIFtjb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRN
ZXNzYWdlSGFuZGxlcjpoYW5kbGVyIG5hbWU6QCJvbmxvYWRIYW5kbGVyIl07Ci19Ci0KLUBlbmQK
LQotI2VuZGlmIC8qIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgKi8K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299375</attachid>
            <date>2017-01-20 13:24:11 -0800</date>
            <delta_ts>2017-01-20 13:49:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Source-WebCore.patch</filename>
            <type>text/plain</type>
            <size>45588</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSBjMTc5NmVhYWViYzQ2NTM0ZWI0ZjQxZWZkMTg3ZTM5NzU4Nzc5NjU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMjAgSmFuIDIwMTcgMTA6MTg6NDEgLTA4MDAKU3ViamVjdDogU291cmNlL1dlYkNvcmU6
IFJFR1JFU1NJT04gKHIyMDgxNDkpOiBWaWRlbyBkZXRhaWxzIGRvZXMgbm90IGFwZWFyCiBhbmQg
bWlzc2luZyBzY3J1YmJlciBpbiBDb250cm9sIENlbnRlcgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NzIzMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpU
ZXN0OiBJbiBUZXN0V2ViS2l0QVBJLCBOb3dQbGF5aW5nQ29udHJvbHNUZXN0cy5Ob3dQbGF5aW5n
Q29udHJvbHNJT1MKCkluIHIyMDgxNDksIHdlIGludHJvZHVjZWQgYSBuZXcgbWVkaWEgdHlwZSwg
VmlkZW8sIGFuZCByZW5hbWVkIHRoZSBvbGQgdHlwZSB0bwpWaWRlb0F1ZGlvICh0byBiZSBhYmxl
IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdmlkZW8td2l0aC1hdWRpbyBhbmQgc2lsZW50LXZpZGVv
KS4KQnV0IHdlIG1pc3NlZCBvbmUgcGxhY2Ugd2hlcmUgdGhhdCB0eXBlIG5lZWRzIHRvIGJlIHJl
bmFtZWQuCgpGb3IgdGVzdGluZyBwdXJwb3Nlcywgb3ZlcmxvYWQgbWV0aG9kcyBmcm9tIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlciB3aGljaCBXZWJLaXQyIHVzZXMKdG8gcmVwb3J0IHRoZSBj
dXJyZW50IG5vdyBwbGF5aW5nIHNlc3Npb24gYW5kIGl0J3MgaW5mb3JtYXRpb24uCgoqIHBsYXRm
b3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg6CiogcGxhdGZvcm0vYXVkaW8v
aW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW06CihXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyaU9TOjpub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKToKKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1M6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKToKClNvdXJjZS9XZWJLaXQyOgpWaWRl
byBkZXRhaWxzIGRvZXMgbm90IGFwZWFyIGFuZCBtaXNzaW5nIHNjcnViYmVyIGluIENvbnRyb2wg
Q2VudGVyCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMzMKClJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKTWFrZSByZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nl
c3Npb25JbmZvKCkgYW5kIGhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNl
KCkKd29yayBpbiBQTEFURk9STShJT1MpLgoKKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbToKKC1bV0tXZWJWaWV3IF9yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvXSk6
CigtW1dLV2ViVmlldyBfaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2U6
dGl0bGU6ZHVyYXRpb246ZWxhcHNlZFRpbWU6XSk6CiogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmg6CiogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0QWN0aXZlTm93UGxh
eWluZ1Nlc3Npb25JbmZvKToKKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVBY3RpdmVOb3dQ
bGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZSk6CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgoq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CiogVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oOgoqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CihX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9S
ZXNwb25zZSk6CiogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbToKKFdl
YktpdDo6V2ViUGFnZTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbyk6CiogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CihXZWJL
aXQ6OldlYlBhZ2U6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8pOiBEZWxldGVk
LgoKVG9vbHM6ClZpZGVvIGRldGFpbHMgZG9lcyBub3QgYXBlYXIgYW5kIG1pc3Npbmcgc2NydWJi
ZXIgaW4gQ29udHJvbCBDZW50ZXIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NzIzMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpSZWZhY3RvciBUZXN0V0tX
ZWJWaWV3TWFjIHRvIHdvcmsgb24gUExBVEZPUk0oSU9TKS4gQWRkIGEgbmV3IHRlc3QgdG8KTm93
UGxheWluZ0NvbnRyb2xUZXN0cyBmb3IgaU9TLgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9Ob3dQbGF5aW5nQ29udHJvbHNUZXN0cy5tbToKKC1bTm93UGxheWluZ1Rlc3RXZWJW
aWV3IHNldFdpbmRvd1Zpc2libGU6XSk6CihUZXN0V2ViS2l0QVBJOjpURVNUKToKKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TbmFwc2hvdFN0b3JlLm1tOgoqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgoqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tOgoqIFRl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oOiBSZW5hbWVkIGZyb20gVG9vbHMvVGVz
dFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oLgoqIFRlc3RXZWJLaXRBUEkvY29jb2Ev
VGVzdFdLV2ViVmlldy5tbTogUmVuYW1lZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rl
c3RXS1dlYlZpZXdNYWMubW0uCihTT0ZUX0xJTktfQ0xBU1MpOgooLVtUZXN0TWVzc2FnZUhhbmRs
ZXIgYWRkTWVzc2FnZTp3aXRoSGFuZGxlcjpdKToKKC1bVGVzdE1lc3NhZ2VIYW5kbGVyIHVzZXJD
b250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKToKKF9fc2ltdWxhdGVk
X2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayk6CigtW1Rlc3RXS1dlYlZpZXdIb3N0V2lu
ZG93IF9tb3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6XSk6CigtW1Rlc3RXS1dlYlZp
ZXdIb3N0V2luZG93IGlzS2V5V2luZG93XSk6CigtW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IG1h
a2VLZXlXaW5kb3ddKToKKC1bVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgcmVzaWduS2V5V2luZG93
XSk6CigtW1Rlc3RXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpdKToKKC1bVGVzdFdLV2ViVmlldyBp
bml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb246XSk6CigtW1Rlc3RXS1dlYlZpZXcgX3NldFVwVGVz
dFdpbmRvdzpdKToKKC1bVGVzdFdLV2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdl
OmFjdGlvbjpdKToKKC1bVGVzdFdLV2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpdKToKKC1bVGVz
dFdLV2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6XSk6CigtW1Rlc3RXS1dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpdKToKKC1bVGVzdFdLV2ViVmlldyB3
YWl0Rm9yTWVzc2FnZTpdKToKKC1bVGVzdFdLV2ViVmlldyBwZXJmb3JtQWZ0ZXJMb2FkaW5nOl0p
OgooLVtUZXN0V0tXZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTpdKToK
KC1bVGVzdFdLV2ViVmlldyB0eXBlQ2hhcmFjdGVyOl0pOgotLS0KIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjEgKysrKysrKwogLi4uL3BsYXRm
b3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggICAgfCAgNiArKwogLi4uL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICAgfCAgNSArLQogU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMCArKysr
KysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSAg
ICB8IDIyICsrKy0tLS0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oIHwgIDYgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50Lmgg
ICAgICAgICAgICAgIHwgIDUgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwICAgICAgICAgIHwgMjIgKysrLS0tLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oICAgICAgICAgICAgfCAgNSArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiAgfCAgMyArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggICB8ICAyICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gIHwgIDYgKysKIC4uLi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tICAgICAgIHwgMTggKysrKysrCiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oICAgICAgICB8ICAzICsKIC4uLi9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIHwgIDUgKy0KIC4uLi9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSAgIHwgMTcgLS0tLS0t
CiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM5
ICsrKysrKysrKysrKysKIC4uLi9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogICAgICAgIHwgMTIgKystLQogLi4uL1Rlc3RzL1dlYktpdDJDb2NvYS9Ob3dQbGF5aW5nQ29u
dHJvbHNUZXN0cy5tbSAgfCA0NSArKysrKysrKysrKystLS0KIC4uLi9UZXN0cy9XZWJLaXQyQ29j
b2EvU25hcHNob3RTdG9yZS5tbSAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9UZXN0cy9XZWJLaXQy
Q29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0gICAgIHwgIDIgKy0KIC4uLi9UZXN0cy9XZWJL
aXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0gIHwgIDIgKy0KIC4uLi9UZXN0V0tX
ZWJWaWV3TWFjLmggPT4gY29jb2EvVGVzdFdLV2ViVmlldy5ofSAgIHwgMTkgKysrLS0tCiAuLi4v
VGVzdFdLV2ViVmlld01hYy5tbSA9PiBjb2NvYS9UZXN0V0tXZWJWaWV3Lm1tfSB8IDY3ICsrKysr
KysrKysrKysrKystLS0tLS0KIDI0IGZpbGVzIGNoYW5nZWQsIDI3MiBpbnNlcnRpb25zKCspLCA5
MiBkZWxldGlvbnMoLSkKIHJlbmFtZSBUb29scy9UZXN0V2ViS2l0QVBJL3ttYWMvVGVzdFdLV2Vi
Vmlld01hYy5oID0+IGNvY29hL1Rlc3RXS1dlYlZpZXcuaH0gKDkyJSkKIHJlbmFtZSBUb29scy9U
ZXN0V2ViS2l0QVBJL3ttYWMvVGVzdFdLV2ViVmlld01hYy5tbSA9PiBjb2NvYS9UZXN0V0tXZWJW
aWV3Lm1tfSAoOTIlKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MmQyZmU3Li45ZTNlNmJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsMjYgQEAKIDIwMTctMDEtMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKKyAgICAgICAgUkVHUkVTU0lPTiAocjIwODE0OSk6IFZpZGVvIGRldGFpbHMgZG9l
cyBub3QgYXBlYXIgYW5kIG1pc3Npbmcgc2NydWJiZXIgaW4gQ29udHJvbCBDZW50ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIzMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IEluIFRlc3RX
ZWJLaXRBUEksIE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLk5vd1BsYXlpbmdDb250cm9sc0lPUwor
CisgICAgICAgIEluIHIyMDgxNDksIHdlIGludHJvZHVjZWQgYSBuZXcgbWVkaWEgdHlwZSwgVmlk
ZW8sIGFuZCByZW5hbWVkIHRoZSBvbGQgdHlwZSB0bworICAgICAgICBWaWRlb0F1ZGlvICh0byBi
ZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdmlkZW8td2l0aC1hdWRpbyBhbmQgc2lsZW50
LXZpZGVvKS4KKyAgICAgICAgQnV0IHdlIG1pc3NlZCBvbmUgcGxhY2Ugd2hlcmUgdGhhdCB0eXBl
IG5lZWRzIHRvIGJlIHJlbmFtZWQuCisKKyAgICAgICAgRm9yIHRlc3RpbmcgcHVycG9zZXMsIG92
ZXJsb2FkIG1ldGhvZHMgZnJvbSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIgd2hpY2ggV2Vi
S2l0MiB1c2VzCisgICAgICAgIHRvIHJlcG9ydCB0aGUgY3VycmVudCBub3cgcGxheWluZyBzZXNz
aW9uIGFuZCBpdCdzIGluZm9ybWF0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9z
L01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9pb3Mv
TWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1M6Om5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6dXBkYXRlTm93UGxheWluZ0luZm8pOgorCisyMDE3
LTAxLTE5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCiAgICAgICAgIENSQVNI
IGF0IFdlYkNvcmU6OlRyYWNrTGlzdEJhc2U6OnJlbW92ZQogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjE3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCmlu
ZGV4IGFkMDJhYTcuLjU1ODQ0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaApAQCAtNzAsMTEgKzcw
LDE3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNlc3Npb25DYW5Mb2FkTWVkaWEoY29uc3QgUGxh
dGZvcm1NZWRpYVNlc3Npb24mKSBjb25zdCBvdmVycmlkZTsKIAorICAgIGJvb2wgaGFzQWN0aXZl
Tm93UGxheWluZ1Nlc3Npb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX25vd1BsYXlpbmdB
Y3RpdmU7IH0KKyAgICBTdHJpbmcgbGFzdFVwZGF0ZWROb3dQbGF5aW5nVGl0bGUoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX3JlcG9ydGVkVGl0bGU7IH0KKyAgICBkb3VibGUgbGFzdFVwZGF0
ZWROb3dQbGF5aW5nRHVyYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JlcG9ydGVk
RHVyYXRpb247IH0KKyAgICBkb3VibGUgbGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JlcG9ydGVkQ3VycmVudFRpbWU7IH0KKwogICAg
IFBsYXRmb3JtTWVkaWFTZXNzaW9uKiBub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKCk7CiAgICAg
CiAgICAgUmV0YWluUHRyPFdlYk1lZGlhU2Vzc2lvbkhlbHBlcj4gbV9vYmpjT2JzZXJ2ZXI7CiAg
ICAgZG91YmxlIG1fcmVwb3J0ZWRSYXRlIHsgMCB9OwogICAgIGRvdWJsZSBtX3JlcG9ydGVkRHVy
YXRpb24geyAwIH07CisgICAgZG91YmxlIG1fcmVwb3J0ZWRDdXJyZW50VGltZSB7IDAgfTsKICAg
ICBTdHJpbmcgbV9yZXBvcnRlZFRpdGxlOwogICAgIGJvb2wgbV9ub3dQbGF5aW5nQWN0aXZlIHsg
ZmFsc2UgfTsKICAgICBib29sIG1faXNJbkJhY2tncm91bmQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5tbQppbmRleCA0YTA0Yjk2Li43YmM4ZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5t
bQpAQCAtMjE5LDcgKzIxOSw3IEBAIFBsYXRmb3JtTWVkaWFTZXNzaW9uKiBNZWRpYVNlc3Npb25N
YW5hZ2VyaU9TOjpub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKCkKIHsKICAgICByZXR1cm4gZmlu
ZFNlc3Npb24oW10gKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uLCBzaXplX3QpIHsKICAg
ICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZSB0eXBlID0gc2Vzc2lvbi5tZWRp
YVR5cGUoKTsKLSAgICAgICAgaWYgKHR5cGUgIT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlZpZGVv
ICYmIHR5cGUgIT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OkF1ZGlvKQorICAgICAgICBpZiAodHlw
ZSAhPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW9BdWRpbyAmJiB0eXBlICE9IFBsYXRmb3Jt
TWVkaWFTZXNzaW9uOjpBdWRpbykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAg
ICBpZiAoc2Vzc2lvbi5jaGFyYWN0ZXJpc3RpY3MoKSAmIFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpI
YXNBdWRpbykKQEAgLTI0OSw2ICsyNDksNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6
OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkKICAgICBTdHJpbmcgdGl0bGUgPSBjdXJyZW50U2Vzc2lv
bi0+dGl0bGUoKTsKICAgICBkb3VibGUgZHVyYXRpb24gPSBjdXJyZW50U2Vzc2lvbi0+ZHVyYXRp
b24oKTsKICAgICBkb3VibGUgcmF0ZSA9IGN1cnJlbnRTZXNzaW9uLT5zdGF0ZSgpID09IFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpQbGF5aW5nID8gMSA6IDA7CisgICAgZG91YmxlIGN1cnJlbnRUaW1l
ID0gY3VycmVudFNlc3Npb24tPmN1cnJlbnRUaW1lKCk7CiAgICAgaWYgKG1fcmVwb3J0ZWRUaXRs
ZSA9PSB0aXRsZSAmJiBtX3JlcG9ydGVkUmF0ZSA9PSByYXRlICYmIG1fcmVwb3J0ZWREdXJhdGlv
biA9PSBkdXJhdGlvbikgewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYVNlc3Npb25NYW5hZ2Vy
aU9TOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyAtIG5vdGhpbmcgbmV3IHRvIHNob3ciKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMjU3LDYgKzI1OCw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlP
Uzo6dXBkYXRlTm93UGxheWluZ0luZm8oKQogICAgIG1fcmVwb3J0ZWRSYXRlID0gcmF0ZTsKICAg
ICBtX3JlcG9ydGVkRHVyYXRpb24gPSBkdXJhdGlvbjsKICAgICBtX3JlcG9ydGVkVGl0bGUgPSB0
aXRsZTsKKyAgICBtX3JlcG9ydGVkQ3VycmVudFRpbWUgPSBjdXJyZW50VGltZTsKIAogICAgIGF1
dG8gaW5mbyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CiAg
ICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpCkBAIC0yNjUsNyArMjY3LDYgQEAgdm9pZCBNZWRpYVNl
c3Npb25NYW5hZ2VyaU9TOjp1cGRhdGVOb3dQbGF5aW5nSW5mbygpCiAgICAgICAgIGluZm8uZ2V0
KClbTVBNZWRpYUl0ZW1Qcm9wZXJ0eVBsYXliYWNrRHVyYXRpb25dID0gQChkdXJhdGlvbik7CiAg
ICAgaW5mby5nZXQoKVtNUE5vd1BsYXlpbmdJbmZvUHJvcGVydHlQbGF5YmFja1JhdGVdID0gQChy
YXRlKTsKIAotICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IGN1cnJlbnRTZXNzaW9uLT5jdXJyZW50
VGltZSgpOwogICAgIGlmIChzdGQ6OmlzZmluaXRlKGN1cnJlbnRUaW1lKSAmJiBjdXJyZW50VGlt
ZSAhPSBNZWRpYVBsYXllcjo6aW52YWxpZFRpbWUoKSkKICAgICAgICAgaW5mby5nZXQoKVtNUE5v
d1BsYXlpbmdJbmZvUHJvcGVydHlFbGFwc2VkUGxheWJhY2tUaW1lXSA9IEAoY3VycmVudFRpbWUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggM2VhOTgwOC4uN2E3ZWNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMzIEBACisyMDE3LTAxLTE5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisg
ICAgICAgIFZpZGVvIGRldGFpbHMgZG9lcyBub3QgYXBlYXIgYW5kIG1pc3Npbmcgc2NydWJiZXIg
aW4gQ29udHJvbCBDZW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2NzIzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1ha2UgcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygpIGFuZCBo
YW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZSgpCisgICAgICAgIHdvcmsg
aW4gUExBVEZPUk0oSU9TKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3JlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vz
c2lvbkluZm9dKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYW5kbGVBY3RpdmVOb3dQbGF5aW5n
U2Vzc2lvbkluZm9SZXNwb25zZTp0aXRsZTpkdXJhdGlvbjplbGFwc2VkVGltZTpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RBY3RpdmVOb3dQbGF5
aW5nU2Vzc2lvbkluZm8pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUFj
dGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3Bv
bnNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Np
b25JbmZvKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbyk6IERlbGV0ZWQuCisKIDIw
MTctMDEtMTAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFr
ZSBfV0tGdWxsc2NyZWVuRGVsZWdhdGUgYXZhaWxhYmxlIHRvIHVzZXJzIG9mIHRoZSBXZWJLaXQy
IEMtQVBJLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCA3N2Q4MDk5Li4xZjVhY2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDg2MiwxNyArNDg2Miw2IEBAIHN0YXRp
YyBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbihVSVNlCiAgICAgcmV0dXJuIF9pbXBsLT5zaG91bGRSZXF1ZXN0Q2FuZGlk
YXRlcygpOwogfQogCi0tICh2b2lkKV9yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZv
Ci17Ci0gICAgaWYgKF9wYWdlKQotICAgICAgICBfcGFnZS0+cmVxdWVzdEFjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uSW5mbygpOwotfQotCi0tICh2b2lkKV9oYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vz
c2lvbkluZm9SZXNwb25zZTooQk9PTCloYXNBY3RpdmVTZXNzaW9uIHRpdGxlOihOU1N0cmluZyAq
KXRpdGxlIGR1cmF0aW9uOihkb3VibGUpZHVyYXRpb24gZWxhcHNlZFRpbWU6KGRvdWJsZSllbGFw
c2VkVGltZQotewotICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KLX0KLQogLSAodm9p
ZClfaW5zZXJ0VGV4dDooaWQpc3RyaW5nIHJlcGxhY2VtZW50UmFuZ2U6KE5TUmFuZ2UpcmVwbGFj
ZW1lbnRSYW5nZQogewogICAgIFtzZWxmIGluc2VydFRleHQ6c3RyaW5nIHJlcGxhY2VtZW50UmFu
Z2U6cmVwbGFjZW1lbnRSYW5nZV07CkBAIC00ODkwLDYgKzQ4NzksMTcgQEAgc3RhdGljIFdlYkNv
cmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdG9Vc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uKFVJU2UKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAorLSAodm9pZClfcmVxdWVz
dEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbworeworICAgIGlmIChfcGFnZSkKKyAgICAgICAg
X3BhZ2UtPnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oKTsKK30KKworLSAodm9p
ZClfaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2U6KEJPT0wpaGFzQWN0
aXZlU2Vzc2lvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBkdXJhdGlvbjooZG91YmxlKWR1cmF0
aW9uIGVsYXBzZWRUaW1lOihkb3VibGUpZWxhcHNlZFRpbWUKK3sKKyAgICAvLyBPdmVycmlkZGVu
IGJ5IHN1YmNsYXNzZXMuCit9CisKIC0gKHZvaWQpX3NldFBhZ2VTY2FsZTooQ0dGbG9hdClzY2Fs
ZSB3aXRoT3JpZ2luOihDR1BvaW50KW9yaWdpbgogewogICAgIF9wYWdlLT5zY2FsZVBhZ2Uoc2Nh
bGUsIFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChvcmlnaW4pKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMzEz
YjMzOC4uYzAxOTY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTMwOCwxNSArMzA4LDE1IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIC0gKHZvaWQpX2Zv
cmNlUmVxdWVzdENhbmRpZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkp
OwogLSAodm9pZClfZGlkVXBkYXRlQ2FuZGlkYXRlTGlzdFZpc2liaWxpdHk6KEJPT0wpdmlzaWJs
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZFJlcXVlc3RDYW5kaWRhdGVzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKLS0gKHZvaWQpX3JlcXVlc3RBY3RpdmVOb3dQbGF5
aW5nU2Vzc2lvbkluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwotLSAo
dm9pZClfaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2U6KEJPT0wpaGFz
QWN0aXZlU2Vzc2lvbiB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBkdXJhdGlvbjooZG91YmxlKWR1
cmF0aW9uIGVsYXBzZWRUaW1lOihkb3VibGUpZWxhcHNlZFRpbWUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSkpOwotCiAtICh2b2lkKV9pbnNlcnRUZXh0OihpZClzdHJpbmcgcmVw
bGFjZW1lbnRSYW5nZTooTlNSYW5nZSlyZXBsYWNlbWVudFJhbmdlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpKTsKIAogLSAodm9pZClfc2V0SGVhZGVyQmFubmVySGVpZ2h0Oihp
bnQpaGVpZ2h0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQp
X3NldEZvb3RlckJhbm5lckhlaWdodDooaW50KWhlaWdodCBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSk7CiAjZW5kaWYKIAorLSAodm9pZClfcmVxdWVzdEFjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uSW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2
b2lkKV9oYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZTooQk9PTCloYXNB
Y3RpdmVTZXNzaW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGR1cmF0aW9uOihkb3VibGUpZHVy
YXRpb24gZWxhcHNlZFRpbWU6KGRvdWJsZSllbGFwc2VkVGltZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7CisKIC0gKHZvaWQpX3NldFBhZ2VTY2FsZTooQ0dGbG9hdClzY2Fs
ZSB3aXRoT3JpZ2luOihDR1BvaW50KW9yaWdpbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSk7CiAtIChDR0Zsb2F0KV9wYWdlU2NhbGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9T
X1RCQSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAxYzIxMGIx
Li4yMDcyNTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTI1Myw3
ICsyNTMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFy
U3R5bGVEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsYmFyU3R5bGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlKGNvbnN0IFN0cmluZyYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVz
cG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBkb3VibGUg
ZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSkgPSAwOwogCiAgICAgdmlydHVhbCBDR1JlY3Qg
Ym91bmRzT2ZMYXllckluTGF5ZXJCYWNrZWRXaW5kb3dDb29yZGluYXRlcyhDQUxheWVyICopIGNv
bnN0ID0gMDsKIApAQCAtMjg0LDYgKzI4MywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldEVkaXRhYmxlRWxlbWVudElzRm9jdXNlZChib29sKSA9IDA7CiAjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUFj
dGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgZWxhcHNlZFRpbWUp
ID0gMDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBjb21t
aXRQb3RlbnRpYWxUYXBGYWlsZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEdldFRhcEhp
Z2hsaWdodEdlb21ldHJpZXModWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+JiBoaWdobGlnaHRlZFF1YWRzLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BMZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiB0b3BSaWdodFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tTGVmdFJh
ZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tUmlnaHRSYWRpdXMpID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWI5Mzk1Yy4uZDhl
ZWMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTY0
NzMsMTYgKzY0NzMsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdENvbnRyb2xsZWRFbGVt
ZW50SUQoKSBjb25zdAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0QWN0
aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCkKLXsKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oKSwgbV9wYWdl
SUQpOwotfQotCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Np
b25JbmZvUmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSkgY29uc3QKLXsKLSAgICBtX3Bh
Z2VDbGllbnQuaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoaGFzQWN0
aXZlU2Vzc2lvbiwgdGl0bGUsIGR1cmF0aW9uLCBlbGFwc2VkVGltZSk7Ci19Ci0KIHZvaWQgV2Vi
UGFnZVByb3h5OjpoYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2UoY29uc3QgU3RyaW5n
JiBpZGVudGlmaWVyKSBjb25zdAogewogICAgIG1fcGFnZUNsaWVudC5oYW5kbGVDb250cm9sbGVk
RWxlbWVudElEUmVzcG9uc2UoaWRlbnRpZmllcik7CkBAIC02NDk4LDYgKzY0ODgsMTggQEAgYm9v
bCBXZWJQYWdlUHJveHk6OmlzUGxheWluZ1ZpZGVvSW5FbmhhbmNlZEZ1bGxzY3JlZW4oKSBjb25z
dAogfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpy
ZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCkKK3sKKyAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8o
KSwgbV9wYWdlSUQpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlQWN0aXZlTm93UGxh
eWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9uLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSkgY29uc3QKK3sK
KyAgICBtX3BhZ2VDbGllbnQuaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9u
c2UoaGFzQWN0aXZlU2Vzc2lvbiwgdGl0bGUsIGR1cmF0aW9uLCBlbGFwc2VkVGltZSk7Cit9Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogdm9pZCBXZWJQYWdlUHJveHk6Omhh
c01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzRGlkQ2hhbmdlKGJvb2wgc3RhdGUp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZWY1NmIxYy4u
NGY1NWEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTA2
MSw5ICsxMDYxLDEyIEBAIHB1YmxpYzoKICAgICBib29sIGhhc0FjdGl2ZVZpZGVvRm9yQ29udHJv
bHNNYW5hZ2VyKCkgY29uc3Q7CiAgICAgdm9pZCByZXF1ZXN0Q29udHJvbGxlZEVsZW1lbnRJRCgp
IGNvbnN0OwogICAgIHZvaWQgaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlKGNvbnN0
IFN0cmluZyYpIGNvbnN0OworICAgIGJvb2wgaXNQbGF5aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNj
cmVlbigpIGNvbnN0OworI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHJl
cXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oKTsKICAgICB2b2lkIGhhbmRsZUFjdGl2
ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgZWxhcHNlZFRpbWUpIGNv
bnN0OwotICAgIGJvb2wgaXNQbGF5aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDYyMTAyYTEuLjE2
N2IwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtNDgzLDYgKzQ4Myw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7
CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgRGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoKQor
I2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBIYW5kbGVBY3RpdmVOb3dQbGF5aW5n
U2Vzc2lvbkluZm9SZXNwb25zZShib29sIGhhc0FjdGl2ZVNlc3Npb24sIFN0cmluZyB0aXRsZSwg
ZG91YmxlIGR1cmF0aW9uLCBkb3VibGUgZWxhcHNlZFRpbWUpCiAjZW5kaWYKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCA2OWI2
MTM1Li40Y2EyZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCkBAIC0xOTQsNiArMTk0LDggQEAgcHJpdmF0ZToKIAogICAgIFdlYkNv
cmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdXNlckludGVyZmFjZUxheW91dERpcmVj
dGlvbigpIG92ZXJyaWRlOwogCisgICAgdm9pZCBoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lv
bkluZm9SZXNwb25zZShib29sIGhhc0FjdGl2ZVNlc3Npb24sIGNvbnN0IFN0cmluZyYgdGl0bGUs
IGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIGVsYXBzZWRUaW1lKSBvdmVycmlkZTsKKwogICAgIFdL
Q29udGVudFZpZXcgKm1fY29udGVudFZpZXc7CiAgICAgV0tXZWJWaWV3ICptX3dlYlZpZXc7CiAg
ICAgUmV0YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5kb1RhcmdldDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4
IGNlMzY0MDUuLmY1NjQ4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKICNpbXBvcnQgIk5hdGl2ZVdlYktleWJvYXJk
RXZlbnQuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25TdGF0ZS5oIgorI2ltcG9ydCAiU3RyaW5nVXRp
bGl0aWVzLmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiVmlld1NuYXBzaG90U3Rv
cmUuaCIKICNpbXBvcnQgIldLQ29udGVudFZpZXcuaCIKQEAgLTc0OSw2ICs3NTAsMTEgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFZhbGlkYXRpb25CdWJibGU+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVWYWxp
ZGF0aW9uQnViYmxlKGNvbnN0IFMKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxWYWxpZGF0
aW9uQnViYmxlPihtX2NvbnRlbnRWaWV3LCBtZXNzYWdlKTsKIH0KIAordm9pZCBQYWdlQ2xpZW50
SW1wbDo6aGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoYm9vbCBoYXNB
Y3RpdmVTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBkb3VibGUgZHVyYXRpb24sIGRvdWJs
ZSBlbGFwc2VkVGltZSkKK3sKKyAgICBbbV93ZWJWaWV3IF9oYW5kbGVBY3RpdmVOb3dQbGF5aW5n
U2Vzc2lvbkluZm9SZXNwb25zZTpoYXNBY3RpdmVTZXNzaW9uIHRpdGxlOm5zU3RyaW5nRnJvbVdl
YkNvcmVTdHJpbmcodGl0bGUpIGR1cmF0aW9uOmR1cmF0aW9uIGVsYXBzZWRUaW1lOmVsYXBzZWRU
aW1lXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJ
T1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2Ev
V2ViUGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29h
L1dlYlBhZ2VDb2NvYS5tbQppbmRleCA5MTg0NDY2Li5kNDBhMGQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0K
QEAgLTI3LDYgKzI3LDggQEAKICNpbXBvcnQgIldlYlBhZ2UuaCIKIAogI2ltcG9ydCAiTG9hZFBh
cmFtZXRlcnMuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW1wb3J0IDxX
ZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAKQEAgLTM5LDYgKzQxLDIyIEBAIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZl
TG9hZFBhcmFtZXRlcnMoY29uc3QgTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0CiAgICAgbV9k
YXRhRGV0ZWN0aW9uQ29udGV4dCA9IGxvYWRQYXJhbWV0ZXJzLmRhdGFEZXRlY3Rpb25Db250ZXh0
OwogfQogCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8o
KQoreworICAgIGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiA9IGZhbHNlOworICAgIFN0cmluZyB0aXRs
ZSA9IGVtcHR5U3RyaW5nKCk7CisgICAgZG91YmxlIGR1cmF0aW9uID0gTkFOOworICAgIGRvdWJs
ZSBlbGFwc2VkVGltZSA9IE5BTjsKKyAgICBpZiAoYXV0byogc2hhcmVkTWFuYWdlciA9IFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcklmRXhpc3RzKCkp
IHsKKyAgICAgICAgaGFzQWN0aXZlU2Vzc2lvbiA9IHNoYXJlZE1hbmFnZXItPmhhc0FjdGl2ZU5v
d1BsYXlpbmdTZXNzaW9uKCk7CisgICAgICAgIHRpdGxlID0gc2hhcmVkTWFuYWdlci0+bGFzdFVw
ZGF0ZWROb3dQbGF5aW5nVGl0bGUoKTsKKyAgICAgICAgZHVyYXRpb24gPSBzaGFyZWRNYW5hZ2Vy
LT5sYXN0VXBkYXRlZE5vd1BsYXlpbmdEdXJhdGlvbigpOworICAgICAgICBlbGFwc2VkVGltZSA9
IHNoYXJlZE1hbmFnZXItPmxhc3RVcGRhdGVkTm93UGxheWluZ0VsYXBzZWRUaW1lKCk7CisgICAg
fQorCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIYW5kbGVBY3RpdmVOb3dQbGF5
aW5nU2Vzc2lvbkluZm9SZXNwb25zZShoYXNBY3RpdmVTZXNzaW9uLCB0aXRsZSwgZHVyYXRpb24s
IGVsYXBzZWRUaW1lKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8g
UExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCA4MWNlNzUxLi4zMjZlNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEyMjMsNiArMTIyMyw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkYXRhRGV0ZWN0b3JzRGlkSGlkZVVJKFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpQYWdlT3Zl
cmxheUlEKTsKIAogICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoV2ViQ29yZTo6VGV4
dENoZWNraW5nUmVzdWx0KTsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9p
ZCByZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCk7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCA3NTZiNjIyLi45YTQ3NTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNDI0LDEyICs0MjQsMTUg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGF0YURldGVjdG9y
c0RpZEhpZGVVSShXZWJDb3JlOjpQYWdlT3ZlcmxheTo6UGFnZU92ZXJsYXlJRCBwYWdlT3Zlcmxh
eSkKIAogICAgIEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKHN0cnVjdCBXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdSZXN1bHQgYWNjZXB0ZWRDYW5kaWRhdGUpCi0gICAgUmVxdWVzdEFjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uSW5mbygpCiAKICAgICBTZXRIZWFkZXJCYW5uZXJIZWlnaHRGb3JUZXN0aW5nKGlu
dCBoZWlnaHQpOwogICAgIFNldEZvb3RlckJhbm5lckhlaWdodEZvclRlc3RpbmcoaW50IGhlaWdo
dCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFJlcXVlc3RBY3RpdmVOb3dQ
bGF5aW5nU2Vzc2lvbkluZm8oKQorI2VuZGlmCisKICAgICBTZXRTaG91bGREaXNwYXRjaEZha2VN
b3VzZU1vdmVFdmVudHMoYm9vbCBzaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMpCiAK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdl
TWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCmluZGV4IGY3ZWI4ZDcuLjI5NDk2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTc2LDcgKzc2LDYgQEAKICNp
bXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlT3ZlcmxheUNvbnRy
b2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9QbHVnaW5Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJFbGVtZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlck9iamVjdC5oPgpAQCAtMTYyLDIyICsxNjEsNiBAQCB2
b2lkIFdlYlBhZ2U6OmhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKFdlYkNvcmU6OlRleHRDaGVja2lu
Z1Jlc3VsdCBhY2NlcHRlZENhbmRpZAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6cmVxdWVz
dEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygpCi17Ci0gICAgYm9vbCBoYXNBY3RpdmVTZXNz
aW9uID0gZmFsc2U7Ci0gICAgU3RyaW5nIHRpdGxlID0gZW1wdHlTdHJpbmcoKTsKLSAgICBkb3Vi
bGUgZHVyYXRpb24gPSBOQU47Ci0gICAgZG91YmxlIGVsYXBzZWRUaW1lID0gTkFOOwotICAgIGlm
IChhdXRvKiBzaGFyZWRNYW5hZ2VyID0gV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMoKSkgewotICAgICAgICBoYXNBY3RpdmVTZXNzaW9u
ID0gc2hhcmVkTWFuYWdlci0+aGFzQWN0aXZlTm93UGxheWluZ1Nlc3Npb24oKTsKLSAgICAgICAg
dGl0bGUgPSBzaGFyZWRNYW5hZ2VyLT5sYXN0VXBkYXRlZE5vd1BsYXlpbmdUaXRsZSgpOwotICAg
ICAgICBkdXJhdGlvbiA9IHNoYXJlZE1hbmFnZXItPmxhc3RVcGRhdGVkTm93UGxheWluZ0R1cmF0
aW9uKCk7Ci0gICAgICAgIGVsYXBzZWRUaW1lID0gc2hhcmVkTWFuYWdlci0+bGFzdFVwZGF0ZWRO
b3dQbGF5aW5nRWxhcHNlZFRpbWUoKTsKLSAgICB9Ci0KLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGhhc0Fj
dGl2ZVNlc3Npb24sIHRpdGxlLCBkdXJhdGlvbiwgZWxhcHNlZFRpbWUpKTsKLX0KLQogTlNPYmpl
Y3QgKldlYlBhZ2U6OmFjY2Vzc2liaWxpdHlPYmplY3RGb3JNYWluRnJhbWVQbHVnaW4oKQogewog
ICAgIGlmICghbV9wYWdlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDk5N2JkN2IuLmMwMzZjMmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxNy0wMS0xOSAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBWaWRlbyBkZXRhaWxzIGRv
ZXMgbm90IGFwZWFyIGFuZCBtaXNzaW5nIHNjcnViYmVyIGluIENvbnRyb2wgQ2VudGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBUZXN0
V0tXZWJWaWV3TWFjIHRvIHdvcmsgb24gUExBVEZPUk0oSU9TKS4gQWRkIGEgbmV3IHRlc3QgdG8K
KyAgICAgICAgTm93UGxheWluZ0NvbnRyb2xUZXN0cyBmb3IgaU9TLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvTm93UGxheWluZ0NvbnRyb2xz
VGVzdHMubW06CisgICAgICAgICgtW05vd1BsYXlpbmdUZXN0V2ViVmlldyBzZXRXaW5kb3dWaXNp
YmxlOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvU25hcHNob3RTdG9yZS5tbToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5k
aWRhdGVUZXN0cy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcuaDogUmVuYW1lZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdN
YWMuaC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06IFJl
bmFtZWQgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tLgor
ICAgICAgICAoU09GVF9MSU5LX0NMQVNTKToKKyAgICAgICAgKC1bVGVzdE1lc3NhZ2VIYW5kbGVy
IGFkZE1lc3NhZ2U6d2l0aEhhbmRsZXI6XSk6CisgICAgICAgICgtW1Rlc3RNZXNzYWdlSGFuZGxl
ciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAg
ICAgIChfX3NpbXVsYXRlZF9mb3JjZUNsaWNrQXNzb2NpYXRlZEV2ZW50c01hc2spOgorICAgICAg
ICAoLVtUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBfbW91c2VEb3duQXRQb2ludDpzaW11bGF0ZVBy
ZXNzdXJlOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBpc0tleVdpbmRv
d10pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBtYWtlS2V5V2luZG93XSk6
CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IHJlc2lnbktleVdpbmRvd10pOgor
ICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGluaXRXaXRoRnJhbWU6XSk6CisgICAgICAgICgtW1Rl
c3RXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpjb25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtU
ZXN0V0tXZWJWaWV3IF9zZXRVcFRlc3RXaW5kb3c6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZp
ZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTphY3Rpb246XSk6CisgICAgICAgICgtW1Rl
c3RXS1dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOl0pOgorICAgICAgICAoLVtUZXN0V0tX
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6XSk6CisgICAgICAgICgtW1Rlc3RX
S1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgcGVy
Zm9ybUFmdGVyTG9hZGluZzpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBtb3VzZURvd25B
dFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgdHlw
ZUNoYXJhY3RlcjpdKToKKwogMjAxNi0xMi0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgc2NoZW1lIGZvciBNb2JpbGVNaW5pQnJvd3NlclVJVGVzdHMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDA1NjQyNC4uMDE4ZWQzMSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTg2LDcgKzg2LDcgQEAKIAkJMkVGRjA2QzUxRDg4Njc3NjAwMDRCQjMw
IC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZDNDFEODg2NzcwMDAwNEJC
MzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovOyB9OwogCQkyRUZGMDZD
NzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZD
NjFEODg2QTU2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCAqLzsg
fTsKIAkJMkVGRjA2Q0QxRDhBNDI5QTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFi
bGUtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRUZGMDZDQzFEOEE0MjkxMDAwNEJCMzAgLyogaW5wdXQtZmllbGQtaW4t
c2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sICovOyB9OwotCQkyRUZGMDZENDFEOEFFREJCMDAwNEJC
MzAgLyogVGVzdFdLV2ViVmlld01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFRkYwNkQzMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3
TWFjLm1tICovOyB9OworCQkyRUZGMDZENDFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmll
dy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYw
NkQzMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3Lm1tICovOyB9OwogCQkyRUZGMDZE
NzFEOEFGMzRBMDAwNEJCMzAgLyogV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZENjFEOEFGMzRBMDAw
NEJCMzAgLyogV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0gKi87IH07CiAJCTMxNTExODEwMURC
MUFFNDAwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNTExODBGMURCMUFERDUwMDE3NjMwNCAvKiBFeHRl
bmRlZENvbG9yLmNwcCAqLzsgfTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNl
TW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRl
ckNyYXNoX0J1bmRsZS5jcHAgKi87IH07CkBAIC04NzYsOCArODc2LDggQEAKIAkJMkVGRjA2QzQx
RDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUZGMDZDNjFEODg2QTU2MDAwNEJC
MzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkVGRjA2Q0MxRDhBNDI5MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxk
LWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkyRUZGMDZEMjFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmll
d01hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXN0V0tXZWJWaWV3TWFj
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJFRkYwNkQzMUQ4QUVEQkIwMDA0QkIz
MCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gVGVzdFdLV2ViVmlld01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMkVGRjA2RDIxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGVzdFdLV2ViVmlldy5oOyBwYXRoID0gY29jb2EvVGVz
dFdLV2ViVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZEMzFEOEFF
REJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFRlc3RXS1dlYlZpZXcubW07IHBhdGggPSBjb2NvYS9UZXN0V0tXZWJW
aWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUZGMDZENjFEOEFGMzRBMDAw
NEJCMzAgLyogV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE1MTE4MEYxREIxQURENTAwMTc2MzA0IC8qIEV4dGVuZGVk
Q29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5kZWRD
b2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzM0I5Q0UxMTI3N0YyMzEw
MEZFRkNFMyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUHJldmVudEVtcHR5VXNlckFnZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MjcsNiArMTQyNyw4IEBACiAJCQkJMkQxQzA0QTYxRDc2Mjk4
QjAwMEE2ODE2IC8qIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0gKi8sCiAJCQkJQTE0RkM1OEQx
QjhBRTM2NTAwRDEwN0VCIC8qIFRlc3RQcm90b2NvbC5oICovLAogCQkJCUExNEZDNThFMUI4QUUz
NjUwMEQxMDdFQiAvKiBUZXN0UHJvdG9jb2wubW0gKi8sCisJCQkJMkVGRjA2RDIxRDhBRURCQjAw
MDRCQjMwIC8qIFRlc3RXS1dlYlZpZXcuaCAqLywKKwkJCQkyRUZGMDZEMzFEOEFFREJCMDAwNEJC
MzAgLyogVGVzdFdLV2ViVmlldy5tbSAqLywKIAkJCQk3QzgzRTAzOTFEMEE2MDI3MDBGRUJDRjMg
LyogVXRpbGl0aWVzQ29jb2EubW0gKi8sCiAJCQkJQTE0RkM1ODQxQjg5NzM5MTAwRDEwN0VCIC8q
IFdLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCAqLywKIAkJCQlBMTRGQzU4MzFCODk3Mzkx
MDBEMTA3RUIgLyogV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5tbSAqLywKQEAgLTIwMDEs
OCArMjAwMyw2IEBACiAJCQkJQzA4MTIyNDQxM0ZDMTlFQzAwREMzOUFFIC8qIFN5bnRoZXRpY0Jh
Y2tpbmdTY2FsZUZhY3RvcldpbmRvdy5tICovLAogCQkJCTI5QUI4QUEzMTY0QzdBOTMwMEQ0OUJF
QyAvKiBUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLmggKi8sCiAJCQkJMjlBQjhBQTIx
NjRDN0E5MzAwRDQ5QkVDIC8qIFRlc3RCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUubW0gKi8s
Ci0JCQkJMkVGRjA2RDIxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMuaCAqLywK
LQkJCQkyRUZGMDZEMzFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5tbSAqLywK
IAkJCQlDMDg1ODdCRTEzRkU5NTZDMDAxRUY0RTUgLyogV2ViS2l0QWdub3N0aWNUZXN0LmggKi8s
CiAJCQkJQzA4NTg3QkQxM0ZFOTU2QzAwMUVGNEU1IC8qIFdlYktpdEFnbm9zdGljVGVzdC5tbSAq
LywKIAkJCSk7CkBAIC0yNTU1LDcgKzI1NTUsNyBAQAogCQkJCTgzNDlEM0MyMURCOTZEREUwMDRB
OUY2NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
RkMxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDQ0U3RUZEMUE0MTFBRTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1bmRs
ZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja1dpbnMuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJMkVGRjA2RDQxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMubW0gaW4gU291
cmNlcyAqLywKKwkJCQkyRUZGMDZENDFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlldy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEI4MUQwQTY0QkQwMEZFQkNGMyAvKiBJbmplY3Rl
ZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdFQzMxQTQxMUE3RTAwNDQ3QzRDIC8qIEluc3BlY3RvckJhci5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RURBMUE0MTFBODcwMDQ0N0M0QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9Ob3dQbGF5aW5nQ29udHJvbHNUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL05vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tCmluZGV4IDU3
MjUxMTEuLmI1ZDk3OTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL05vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL05vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tCkBAIC0y
NiwxMiArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2ltcG9ydCAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKLSNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMuaCIKKyNpbXBvcnQgIlRlc3RX
S1dlYlZpZXcuaCIKIAogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2
YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogCi0jaWYgV0tfQVBJ
X0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9X
RUQgPj0gMTAxMjAxCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgKFBMQVRGT1JNKElPUykgfHwgX19N
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTIwMSkKIAogQGludGVyZmFjZSBOb3dQ
bGF5aW5nVGVzdFdlYlZpZXcgOiBUZXN0V0tXZWJWaWV3CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIEJPT0wgaGFzQWN0aXZlTm93UGxheWluZ1Nlc3Npb247CkBAIC05MywxMCArOTMs
MjAgQEAKIAogICAgIF9yZWNlaXZlZE5vd1BsYXlpbmdJbmZvUmVzcG9uc2UgPSB0cnVlOwogfQor
CistICh2b2lkKXNldFdpbmRvd1Zpc2libGU6KEJPT0wpaXNWaXNpYmxlCit7CisjaWYgUExBVEZP
Uk0oTUFDKQorICAgIFtzZWxmLndpbmRvdyBzZXRJc1Zpc2libGU6aXNWaXNpYmxlXTsKKyNlbHNl
CisgICAgc2VsZi53aW5kb3cuaGlkZGVuID0gIWlzVmlzaWJsZTsKKyNlbmRpZgorfQogQGVuZAog
CiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKKyNpZiBQTEFURk9STShNQUMpCiBURVNUKE5v
d1BsYXlpbmdDb250cm9sc1Rlc3RzLCBOb3dQbGF5aW5nQ29udHJvbHNEb05vdFNob3dGb3JGb3Jl
Z3JvdW5kUGFnZSkKIHsKICAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9u
ID0gW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XTsKQEAgLTEwNSw3ICsxMTUs
NyBAQCBURVNUKE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLCBOb3dQbGF5aW5nQ29udHJvbHNEb05v
dFNob3dGb3JGb3JlZ3JvdW5kUGFnZSkKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpA
ImxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmciXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTWVz
c2FnZTpAInBsYXlpbmciXTsKIAotICAgIFt3ZWJWaWV3LndpbmRvdyBzZXRJc1Zpc2libGU6WUVT
XTsKKyAgICBbd2ViVmlldyBzZXRXaW5kb3dWaXNpYmxlOllFU107CiAgICAgW3dlYlZpZXcud2lu
ZG93IG1ha2VLZXlXaW5kb3ddOwogICAgIFt3ZWJWaWV3IGV4cGVjdEhhc0FjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uOk5PXTsKIApAQCAtMTIyLDcgKzEzMiw3IEBAIFRFU1QoTm93UGxheWluZ0NvbnRy
b2xzVGVzdHMsIE5vd1BsYXlpbmdDb250cm9sc1Nob3dGb3JCYWNrZ3JvdW5kUGFnZSkKICAgICBb
d2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmci
XTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAInBsYXlpbmciXTsKIAotICAgIFt3ZWJW
aWV3LndpbmRvdyBzZXRJc1Zpc2libGU6Tk9dOworICAgIFt3ZWJWaWV3IHNldFdpbmRvd1Zpc2li
bGU6Tk9dOwogICAgIFt3ZWJWaWV3LndpbmRvdyByZXNpZ25LZXlXaW5kb3ddOwogICAgIFt3ZWJW
aWV3IGV4cGVjdEhhc0FjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uOllFU107CiAKQEAgLTEzOSwxMiAr
MTQ5LDEyIEBAIFRFU1QoTm93UGxheWluZ0NvbnRyb2xzVGVzdHMsIE5vd1BsYXlpbmdDb250cm9s
c0hpZGVBZnRlclNob3dpbmdLZWVwc1Nlc3Npb25BY3RpCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQ
YWdlTmFtZWQ6QCJsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nIl07CiAgICAgW3dlYlZpZXcg
d2FpdEZvck1lc3NhZ2U6QCJwbGF5aW5nIl07CiAKLSAgICBbd2ViVmlldy53aW5kb3cgc2V0SXNW
aXNpYmxlOk5PXTsKKyAgICBbd2ViVmlldyBzZXRXaW5kb3dWaXNpYmxlOk5PXTsKICAgICBbd2Vi
Vmlldy53aW5kb3cgcmVzaWduS2V5V2luZG93XTsKIAogICAgIFt3ZWJWaWV3IGV4cGVjdEhhc0Fj
dGl2ZU5vd1BsYXlpbmdTZXNzaW9uOllFU107CiAKLSAgICBbd2ViVmlldy53aW5kb3cgc2V0SXNW
aXNpYmxlOllFU107CisgICAgW3dlYlZpZXcgc2V0V2luZG93VmlzaWJsZTpZRVNdOwogICAgIFt3
ZWJWaWV3LndpbmRvdyBtYWtlS2V5V2luZG93XTsKIAogICAgIFt3ZWJWaWV3IGV4cGVjdEhhc0Fj
dGl2ZU5vd1BsYXlpbmdTZXNzaW9uOk5PXTsKQEAgLTE2Miw4ICsxNzIsOCBAQCBURVNUKE5vd1Bs
YXlpbmdDb250cm9sc1Rlc3RzLCBOb3dQbGF5aW5nQ29udHJvbHNDbGVhckluZm9BZnRlclNlc3Np
b25Jc05vTG9uZ2VyVgogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAibGFyZ2Utdmlk
ZW8tdGVzdC1ub3ctcGxheWluZyJdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAicGxh
eWluZyJdOwogCi0gICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpOU01ha2VQb2ludCgyNDAs
IDE2MCkgc2ltdWxhdGVQcmVzc3VyZTpZRVNdOwotICAgIFt3ZWJWaWV3LndpbmRvdyBzZXRJc1Zp
c2libGU6Tk9dOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpLm11dGVkID0gdHJ1ZSJdOworICAgIFt3ZWJW
aWV3IHNldFdpbmRvd1Zpc2libGU6Tk9dOwogICAgIFt3ZWJWaWV3LndpbmRvdyByZXNpZ25LZXlX
aW5kb3ddOwogCiAgICAgW3dlYlZpZXcgd2FpdEZvck5vd1BsYXlpbmdJbmZvVG9DaGFuZ2VdOwpA
QCAtMTcyLDcgKzE4MiwyNCBAQCBURVNUKE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLCBOb3dQbGF5
aW5nQ29udHJvbHNDbGVhckluZm9BZnRlclNlc3Npb25Jc05vTG9uZ2VyVgogICAgIEFTU0VSVF9U
UlVFKGlzbmFuKHdlYlZpZXcubGFzdFVwZGF0ZWREdXJhdGlvbikpOwogICAgIEFTU0VSVF9UUlVF
KGlzbmFuKHdlYlZpZXcubGFzdFVwZGF0ZWRFbGFwc2VkVGltZSkpOwogfQorI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKKworI2lmIFBMQVRGT1JNKElPUykKK1RFU1QoTm93UGxheWluZ0NvbnRyb2xz
VGVzdHMsIE5vd1BsYXlpbmdDb250cm9sc0lPUykKK3sKKyAgICBXS1dlYlZpZXdDb25maWd1cmF0
aW9uICpjb25maWd1cmF0aW9uID0gW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XTsKKyAgICBjb25maWd1cmF0aW9uLm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxh
eWJhY2sgPSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlTm9uZTsKKyAgICBOb3dQbGF5aW5nVGVzdFdl
YlZpZXcgKndlYlZpZXcgPSBbW05vd1BsYXlpbmdUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDQ4MCwgMzIwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b25dOworICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAibGFyZ2UtdmlkZW8tdGVzdC1u
b3ctcGxheWluZyJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAicGxheWluZyJdOwor
CisgICAgW3dlYlZpZXcgZXhwZWN0SGFzQWN0aXZlTm93UGxheWluZ1Nlc3Npb246WUVTXTsKKyAg
ICBBU1NFUlRfU1RSRVEoImZvbyIsIHdlYlZpZXcubGFzdFVwZGF0ZWRUaXRsZS5VVEY4U3RyaW5n
KTsKKyAgICBBU1NFUlRfRVEoMTAsIHdlYlZpZXcubGFzdFVwZGF0ZWREdXJhdGlvbik7CisgICAg
QVNTRVJUX0dFKHdlYlZpZXcubGFzdFVwZGF0ZWRFbGFwc2VkVGltZSwgMCk7Cit9CisjZW5kaWYK
IAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCi0jZW5kaWYgLy8gV0tfQVBJX0VOQUJM
RUQgJiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0g
MTAxMjAxCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQgJiYgKFBMQVRGT1JNKElPUykgfHwgX19N
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTIwMSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1NuYXBzaG90U3RvcmUubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TbmFwc2hvdFN0b3JlLm1tCmluZGV4
IDIyOGU3NjEuLjFhZjg2MDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL1NuYXBzaG90U3RvcmUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvU25hcHNob3RTdG9yZS5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgIlRl
c3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKLSNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMuaCIKKyNp
bXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlz
dEl0ZW1Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQYWdlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tQYWdlUHJpdmF0ZS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQppbmRleCBmZGRi
ZWE5Li4xZDYzMGM5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQpAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5o
IgotI2ltcG9ydCAiVGVzdFdLV2ViVmlld01hYy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5o
IgogCiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0
ZVRlc3RzLm1tCmluZGV4IGVkNzIyMzEuLjlkZDM5YmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRp
ZGF0ZVRlc3RzLm1tCkBAIC0yOCw3ICsyOCw3IEBACiAjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMjAxCiAK
ICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJUZXN0V0tXZWJWaWV3TWFj
LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAKICNpbXBvcnQgPENhcmJvbi9DYXJib24u
aD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXRQcml2YXRlLmg+CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL1Rlc3RXS1dlYlZpZXcuaApzaW1pbGFyaXR5IGluZGV4IDkyJQpyZW5hbWUgZnJvbSBU
b29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmgKcmVuYW1lIHRvIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCmluZGV4IDQ1Y2NhYmQuLmExZTgy
NzAyNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01h
Yy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC0y
MywyOSArMjMsMzAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0jaWZuZGVmIFRlc3RXS1dlYlZpZXdNYWNfaAotI2RlZmluZSBUZXN0V0tXZWJWaWV3TWFjX2gK
LQogI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgogCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExB
VEZPUk0oTUFDKQorI2lmIFdLX0FQSV9FTkFCTEVECiAKIEBpbnRlcmZhY2UgVGVzdE1lc3NhZ2VI
YW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CiAtICh2b2lkKWFkZE1l
c3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSB3aXRoSGFuZGxlcjooZGlzcGF0Y2hfYmxvY2tfdClo
YW5kbGVyOwogQGVuZAogCiBAaW50ZXJmYWNlIFRlc3RXS1dlYlZpZXcgOiBXS1dlYlZpZXcKLS8v
IFNpbXVsYXRlcyBjbGlja2luZyB3aXRoIGEgcHJlc3N1cmUtc2Vuc2l0aXZlIGRldmljZSwgaWYg
cG9zc2libGUuCi0tICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgc2ltdWxh
dGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlOwogLSAodm9pZClwZXJmb3JtQWZ0ZXJS
ZWNlaXZpbmdNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9j
a190KWFjdGlvbjsKIC0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5h
bWU7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilw
YWdlTmFtZTsKLS0gKHZvaWQpdHlwZUNoYXJhY3RlcjooY2hhciljaGFyYWN0ZXI7CiAtIChOU1N0
cmluZyAqKXN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6KE5TU3RyaW5nICopc2NyaXB0Owog
LSAodm9pZCl3YWl0Rm9yTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlOwogLSAodm9pZClwZXJm
b3JtQWZ0ZXJMb2FkaW5nOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbnM7CiBAZW5kCiAKLSNlbmRp
ZiAvKiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpICovCisjaWYgUExBVEZPUk0oTUFD
KQorQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IChNYWNPbmx5KQorLy8gU2ltdWxhdGVzIGNsaWNr
aW5nIHdpdGggYSBwcmVzc3VyZS1zZW5zaXRpdmUgZGV2aWNlLCBpZiBwb3NzaWJsZS4KKy0gKHZv
aWQpbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11bGF0ZVByZXNzdXJlOihCT09M
KXNpbXVsYXRlUHJlc3N1cmU7CistICh2b2lkKXR5cGVDaGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVy
OworQGVuZAorI2VuZGlmCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAogCi0jZW5kaWYgLyog
VGVzdFdLV2ViVmlld01hY19oICovCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21h
Yy9UZXN0V0tXZWJWaWV3TWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tCnNpbWlsYXJpdHkgaW5kZXggOTIlCnJlbmFtZSBmcm9tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0KcmVuYW1lIHRvIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQppbmRleCA4OTNiMWJjLi4yYmNlMjBmIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtMjQsMTkgKzI0LDI4
IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJUZXN0V0tXZWJWaWV3TWFj
LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAKLSNpZiBXS19BUElfRU5BQkxFRCAmJiBQ
TEFURk9STShNQUMpCisjaWYgV0tfQVBJX0VOQUJMRUQKIAogI2ltcG9ydCAiVGVzdE5hdmlnYXRp
b25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVXRpbGl0aWVzLmgiCiAKLSNpbXBvcnQgPEFwcEtpdC9B
cHBLaXQuaD4KLSNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPFdlYktpdC9XZWJL
aXRQcml2YXRlLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4K
KyNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPHd0Zi9tYWMvQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCisjaW1w
b3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CitTT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQor
U09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSVdpbmRvdykKKyNlbmRpZgogCiBAaW1wbGVtZW50YXRp
b24gVGVzdE1lc3NhZ2VIYW5kbGVyIHsKICAgICBOU011dGFibGVEaWN0aW9uYXJ5PE5TU3RyaW5n
ICosIGRpc3BhdGNoX2Jsb2NrX3Q+ICpfbWVzc2FnZUhhbmRsZXJzOwpAQCAtNTksMTMgKzY4LDE4
IEBACiAKIEBlbmQKIAorI2lmIFBMQVRGT1JNKE1BQykKIEBpbnRlcmZhY2UgVGVzdFdLV2ViVmll
d0hvc3RXaW5kb3cgOiBOU1dpbmRvdworI2Vsc2UKK0BpbnRlcmZhY2UgVGVzdFdLV2ViVmlld0hv
c3RXaW5kb3cgOiBVSVdpbmRvdworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIEBlbmQKIAogQGlt
cGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXdIb3N0V2luZG93IHsKICAgICBCT09MIF9mb3JjZUtl
eVdpbmRvdzsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKIHN0YXRpYyBpbnQgZ0V2ZW50TnVtYmVy
ID0gMTsKIAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAzCkBA
IC0xMDYsNiArMTIwLDcgQEAgTlNFdmVudE1hc2sgX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29j
aWF0ZWRFdmVudHNNYXNrKGlkIHNlbGYsIFNFTCBfY21kKQogICAgIH0KICNlbmRpZgogfQorI2Vu
ZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogLSAoQk9PTClpc0tleVdpbmRvdwogewpAQCAtMTE4LDcg
KzEzMywxMSBAQCBOU0V2ZW50TWFzayBfX3NpbXVsYXRlZF9mb3JjZUNsaWNrQXNzb2NpYXRlZEV2
ZW50c01hc2soaWQgc2VsZiwgU0VMIF9jbWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIF9mb3Jj
ZUtleVdpbmRvdyA9IFlFUzsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpOU1dpbmRvd0RpZEJl
Y29tZUtleU5vdGlmaWNhdGlvbiBvYmplY3Q6c2VsZl07CisjZWxzZQorICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6VUlXaW5kb3dE
aWRCZWNvbWVLZXlOb3RpZmljYXRpb24gb2JqZWN0OnNlbGZdOworI2VuZGlmCiB9CiAKIC0gKHZv
aWQpcmVzaWduS2V5V2luZG93CkBAIC0xNTAsMTYgKzE2OSwxNyBAQCBOU0V2ZW50TWFzayBfX3Np
bXVsYXRlZF9mb3JjZUNsaWNrQXNzb2NpYXRlZEV2ZW50c01hc2soaWQgc2VsZiwgU0VMIF9jbWQp
CiAKIC0gKHZvaWQpX3NldFVwVGVzdFdpbmRvdzooTlNSZWN0KWZyYW1lCiB7CisjaWYgUExBVEZP
Uk0oTUFDKQogICAgIF9ob3N0V2luZG93ID0gW1tUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tC
b3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CiAgICAg
W19ob3N0V2luZG93IHNldEZyYW1lT3JpZ2luOk5TTWFrZVBvaW50KDAsIDApXTsKLSAgICBbW19o
b3N0V2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OnNlbGZdOwogICAgIFtfaG9zdFdpbmRv
dyBzZXRJc1Zpc2libGU6WUVTXTsKKyAgICBbW19ob3N0V2luZG93IGNvbnRlbnRWaWV3XSBhZGRT
dWJ2aWV3OnNlbGZdOwogICAgIFtfaG9zdFdpbmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9udDpzZWxm
XTsKLX0KLQotLSAodm9pZCltb3VzZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50IHNpbXVsYXRl
UHJlc3N1cmU6KEJPT0wpc2ltdWxhdGVQcmVzc3VyZQotewotICAgIFtfaG9zdFdpbmRvdyBfbW91
c2VEb3duQXRQb2ludDpwb2ludCBzaW11bGF0ZVByZXNzdXJlOnNpbXVsYXRlUHJlc3N1cmVdOwor
I2Vsc2UKKyAgICBfaG9zdFdpbmRvdyA9IFtbVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6ZnJhbWVdOworICAgIF9ob3N0V2luZG93LmhpZGRlbiA9IE5POworICAg
IFtfaG9zdFdpbmRvdyBhZGRTdWJ2aWV3OnNlbGZdOworI2VuZGlmCiB9CiAKIC0gKHZvaWQpcGVy
Zm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGFjdGlvbjooZGlz
cGF0Y2hfYmxvY2tfdClhY3Rpb24KQEAgLTE4NCwxNCArMjA0LDYgQEAgTlNFdmVudE1hc2sgX19z
aW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVudHNNYXNrKGlkIHNlbGYsIFNFTCBfY21k
KQogICAgIFtzZWxmIF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKIH0KIAotLSAo
dm9pZCl0eXBlQ2hhcmFjdGVyOihjaGFyKWNoYXJhY3RlciB7Ci0gICAgTlNTdHJpbmcgKmNoYXJh
Y3RlckFzU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlYyIgLCBjaGFyYWN0
ZXJdOwotICAgIE5TRXZlbnRUeXBlIGtleURvd25FdmVudFR5cGUgPSBOU0V2ZW50VHlwZUtleURv
d247Ci0gICAgTlNFdmVudFR5cGUga2V5VXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUtleVVwOwot
ICAgIFtzZWxmIGtleURvd246W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTprZXlEb3duRXZlbnRU
eXBlIGxvY2F0aW9uOk5TWmVyb1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3Vy
cmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjpfaG9zdFdpbmRvdy53aW5kb3dOdW1iZXIgY29u
dGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJBc1N0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdN
b2RpZmllcnM6Y2hhcmFjdGVyQXNTdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6Y2hhcmFjdGVy
XV07Ci0gICAgW3NlbGYga2V5VXA6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTprZXlVcEV2ZW50
VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1
cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6X2hvc3RXaW5kb3cud2luZG93TnVtYmVyIGNv
bnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5n
TW9kaWZpZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmNoYXJhY3Rl
cl1dOwotfQotCiAtIChOU1N0cmluZyAqKXN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6KE5T
U3RyaW5nICopc2NyaXB0CiB7CiAgICAgX19ibG9jayBib29sIGlzV2FpdGluZ0ZvckphdmFTY3Jp
cHQgPSBmYWxzZTsKQEAgLTIzMSw0ICsyNDMsMjEgQEAgTlNFdmVudE1hc2sgX19zaW11bGF0ZWRf
Zm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVudHNNYXNrKGlkIHNlbGYsIFNFTCBfY21kKQogCiBAZW5k
CiAKLSNlbmRpZiAvKiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpICovCisjaWYgUExB
VEZPUk0oTUFDKQorQGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXcgKE1hY09ubHkpCistICh2
b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgc2ltdWxhdGVQcmVzc3VyZTooQk9P
TClzaW11bGF0ZVByZXNzdXJlCit7CisgICAgW19ob3N0V2luZG93IF9tb3VzZURvd25BdFBvaW50
OnBvaW50IHNpbXVsYXRlUHJlc3N1cmU6c2ltdWxhdGVQcmVzc3VyZV07Cit9CisKKy0gKHZvaWQp
dHlwZUNoYXJhY3RlcjooY2hhciljaGFyYWN0ZXIgeworICAgIE5TU3RyaW5nICpjaGFyYWN0ZXJB
c1N0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJWMiICwgY2hhcmFjdGVyXTsK
KyAgICBOU0V2ZW50VHlwZSBrZXlEb3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlEb3duOwor
ICAgIE5TRXZlbnRUeXBlIGtleVVwRXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlVcDsKKyAgICBb
c2VsZiBrZXlEb3duOltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6a2V5RG93bkV2ZW50VHlwZSBs
b2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRF
dmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6X2hvc3RXaW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6
bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZp
ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmNoYXJhY3Rlcl1dOwor
ICAgIFtzZWxmIGtleVVwOltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6a2V5VXBFdmVudFR5cGUg
bG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJyZW50
RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOl9ob3N0V2luZG93LndpbmRvd051bWJlciBjb250ZXh0
Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlm
aWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsK
K30KK0BlbmQKKyNlbmRpZgorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
</data>
<flag name="review"
          id="321335"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299519</attachid>
            <date>2017-01-23 09:37:04 -0800</date>
            <delta_ts>2017-01-23 11:24:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>0001-Source-WebCore.patch</filename>
            <type>text/plain</type>
            <size>45622</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSBhMjljMzdlZmQyMTA2MjE5YzYyYmU2YWQ1ZTVmYjNlNzdmZWZjZmY1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMjAgSmFuIDIwMTcgMTA6MTg6NDEgLTA4MDAKU3ViamVjdDogU291cmNlL1dlYkNvcmU6
IFJFR1JFU1NJT04gKHIyMDgxNDkpOiBWaWRlbyBkZXRhaWxzIGRvZXMgbm90IGFwZWFyCiBhbmQg
bWlzc2luZyBzY3J1YmJlciBpbiBDb250cm9sIENlbnRlcgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NzIzMwoKUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
ClRlc3Q6IEluIFRlc3RXZWJLaXRBUEksIE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLk5vd1BsYXlp
bmdDb250cm9sc0lPUwoKSW4gcjIwODE0OSwgd2UgaW50cm9kdWNlZCBhIG5ldyBtZWRpYSB0eXBl
LCBWaWRlbywgYW5kIHJlbmFtZWQgdGhlIG9sZCB0eXBlIHRvClZpZGVvQXVkaW8gKHRvIGJlIGFi
bGUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB2aWRlby13aXRoLWF1ZGlvIGFuZCBzaWxlbnQtdmlk
ZW8pLgpCdXQgd2UgbWlzc2VkIG9uZSBwbGFjZSB3aGVyZSB0aGF0IHR5cGUgbmVlZHMgdG8gYmUg
cmVuYW1lZC4KCkZvciB0ZXN0aW5nIHB1cnBvc2VzLCBvdmVybG9hZCBtZXRob2RzIGZyb20gUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyIHdoaWNoIFdlYktpdDIgdXNlcwp0byByZXBvcnQgdGhl
IGN1cnJlbnQgbm93IHBsYXlpbmcgc2Vzc2lvbiBhbmQgaXQncyBpbmZvcm1hdGlvbi4KCiogcGxh
dGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaDoKKiBwbGF0Zm9ybS9hdWRp
by9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbToKKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1h
bmFnZXJpT1M6Om5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24pOgooV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlcmlPUzo6dXBkYXRlTm93UGxheWluZ0luZm8pOgoKU291cmNlL1dlYktpdDI6ClZp
ZGVvIGRldGFpbHMgZG9lcyBub3QgYXBlYXIgYW5kIG1pc3Npbmcgc2NydWJiZXIgaW4gQ29udHJv
bCBDZW50ZXIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIzMwoK
UmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KCk1ha2UgcmVxdWVzdEFjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uSW5mbygpIGFuZCBoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNw
b25zZSgpCndvcmsgaW4gUExBVEZPUk0oSU9TKS4KCiogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CigtW1dLV2ViVmlldyBfcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5m
b10pOgooLVtXS1dlYlZpZXcgX2hhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3Bv
bnNlOnRpdGxlOmR1cmF0aW9uOmVsYXBzZWRUaW1lOl0pOgoqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oOgoqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CiogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdEFjdGl2ZU5v
d1BsYXlpbmdTZXNzaW9uSW5mbyk6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlQWN0aXZl
Tm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UpOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgoqIFVJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaDoKKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgooV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25J
bmZvUmVzcG9uc2UpOgoqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06
CihXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8pOgoq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW46CiogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgoo
V2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKTogRGVs
ZXRlZC4KClRvb2xzOgpWaWRlbyBkZXRhaWxzIGRvZXMgbm90IGFwZWFyIGFuZCBtaXNzaW5nIHNj
cnViYmVyIGluIENvbnRyb2wgQ2VudGVyCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjcyMzMKClJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCgpSZWZhY3RvciBU
ZXN0V0tXZWJWaWV3TWFjIHRvIHdvcmsgb24gUExBVEZPUk0oSU9TKS4gQWRkIGEgbmV3IHRlc3Qg
dG8KTm93UGxheWluZ0NvbnRyb2xUZXN0cyBmb3IgaU9TLgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9Ob3dQbGF5aW5nQ29udHJvbHNUZXN0cy5tbToKKC1bTm93UGxheWluZ1Rl
c3RXZWJWaWV3IHNldFdpbmRvd1Zpc2libGU6XSk6CihUZXN0V2ViS2l0QVBJOjpURVNUKToKKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TbmFwc2hvdFN0b3JlLm1tOgoqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgoqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1t
OgoqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oOiBSZW5hbWVkIGZyb20gVG9v
bHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oLgoqIFRlc3RXZWJLaXRBUEkv
Y29jb2EvVGVzdFdLV2ViVmlldy5tbTogUmVuYW1lZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
bWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0uCihTT0ZUX0xJTktfQ0xBU1MpOgooLVtUZXN0TWVzc2Fn
ZUhhbmRsZXIgYWRkTWVzc2FnZTp3aXRoSGFuZGxlcjpdKToKKC1bVGVzdE1lc3NhZ2VIYW5kbGVy
IHVzZXJDb250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKToKKF9fc2lt
dWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayk6CigtW1Rlc3RXS1dlYlZpZXdI
b3N0V2luZG93IF9tb3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6XSk6CigtW1Rlc3RX
S1dlYlZpZXdIb3N0V2luZG93IGlzS2V5V2luZG93XSk6CigtW1Rlc3RXS1dlYlZpZXdIb3N0V2lu
ZG93IG1ha2VLZXlXaW5kb3ddKToKKC1bVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgcmVzaWduS2V5
V2luZG93XSk6CigtW1Rlc3RXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpdKToKKC1bVGVzdFdLV2Vi
VmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb246XSk6CigtW1Rlc3RXS1dlYlZpZXcgX3Nl
dFVwVGVzdFdpbmRvdzpdKToKKC1bVGVzdFdLV2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdN
ZXNzYWdlOmFjdGlvbjpdKToKKC1bVGVzdFdLV2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpdKToK
KC1bVGVzdFdLV2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6XSk6CigtW1Rl
c3RXS1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpdKToKKC1bVGVzdFdLV2Vi
VmlldyB3YWl0Rm9yTWVzc2FnZTpdKToKKC1bVGVzdFdLV2ViVmlldyBwZXJmb3JtQWZ0ZXJMb2Fk
aW5nOl0pOgooLVtUZXN0V0tXZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3Vy
ZTpdKToKKC1bVGVzdFdLV2ViVmlldyB0eXBlQ2hhcmFjdGVyOl0pOgotLS0KIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjEgKysrKysrKwogLi4u
L3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggICAgfCAgNiArKwog
Li4uL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICAgfCAgNSAr
LQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAz
MCArKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbSAgICB8IDIyICsrKy0tLS0KIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oIHwgIDYgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmggICAgICAgICAgICAgIHwgIDUgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwICAgICAgICAgIHwgMjIgKysrLS0tLQogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oICAgICAgICAgICAgfCAgNSArLQogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiAgfCAgMyArCiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggICB8ICAyICsKIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gIHwgIDYgKysKIC4uLi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tICAgICAgIHwgMTggKysrKysrCiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oICAgICAgICB8ICAzICsKIC4u
Li9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIHwgIDUgKy0K
IC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSAgIHwgMTcg
LS0tLS0tCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDM5ICsrKysrKysrKysrKysKIC4uLi9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogICAgICAgIHwgMTIgKystLQogLi4uL1Rlc3RzL1dlYktpdDJDb2NvYS9Ob3dQbGF5
aW5nQ29udHJvbHNUZXN0cy5tbSAgfCA0NSArKysrKysrKysrKystLS0KIC4uLi9UZXN0cy9XZWJL
aXQyQ29jb2EvU25hcHNob3RTdG9yZS5tbSAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9UZXN0cy9X
ZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0gICAgIHwgIDIgKy0KIC4uLi9UZXN0
cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0gIHwgIDIgKy0KIC4uLi9U
ZXN0V0tXZWJWaWV3TWFjLmggPT4gY29jb2EvVGVzdFdLV2ViVmlldy5ofSAgIHwgMTkgKysrLS0t
CiAuLi4vVGVzdFdLV2ViVmlld01hYy5tbSA9PiBjb2NvYS9UZXN0V0tXZWJWaWV3Lm1tfSB8IDY3
ICsrKysrKysrKysrKysrKystLS0tLS0KIDI0IGZpbGVzIGNoYW5nZWQsIDI3MiBpbnNlcnRpb25z
KCspLCA5MiBkZWxldGlvbnMoLSkKIHJlbmFtZSBUb29scy9UZXN0V2ViS2l0QVBJL3ttYWMvVGVz
dFdLV2ViVmlld01hYy5oID0+IGNvY29hL1Rlc3RXS1dlYlZpZXcuaH0gKDkyJSkKIHJlbmFtZSBU
b29scy9UZXN0V2ViS2l0QVBJL3ttYWMvVGVzdFdLV2ViVmlld01hYy5tbSA9PiBjb2NvYS9UZXN0
V0tXZWJWaWV3Lm1tfSAoOTIlKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MmQyZmU3Li43NGU0Y2E1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjYgQEAKIDIwMTctMDEtMTkgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKKyAgICAgICAgUkVHUkVTU0lPTiAocjIwODE0OSk6IFZpZGVvIGRldGFp
bHMgZG9lcyBub3QgYXBlYXIgYW5kIG1pc3Npbmcgc2NydWJiZXIgaW4gQ29udHJvbCBDZW50ZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIzMwor
CisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgVGVzdDog
SW4gVGVzdFdlYktpdEFQSSwgTm93UGxheWluZ0NvbnRyb2xzVGVzdHMuTm93UGxheWluZ0NvbnRy
b2xzSU9TCisKKyAgICAgICAgSW4gcjIwODE0OSwgd2UgaW50cm9kdWNlZCBhIG5ldyBtZWRpYSB0
eXBlLCBWaWRlbywgYW5kIHJlbmFtZWQgdGhlIG9sZCB0eXBlIHRvCisgICAgICAgIFZpZGVvQXVk
aW8gKHRvIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB2aWRlby13aXRoLWF1ZGlvIGFu
ZCBzaWxlbnQtdmlkZW8pLgorICAgICAgICBCdXQgd2UgbWlzc2VkIG9uZSBwbGFjZSB3aGVyZSB0
aGF0IHR5cGUgbmVlZHMgdG8gYmUgcmVuYW1lZC4KKworICAgICAgICBGb3IgdGVzdGluZyBwdXJw
b3Nlcywgb3ZlcmxvYWQgbWV0aG9kcyBmcm9tIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciB3
aGljaCBXZWJLaXQyIHVzZXMKKyAgICAgICAgdG8gcmVwb3J0IHRoZSBjdXJyZW50IG5vdyBwbGF5
aW5nIHNlc3Npb24gYW5kIGl0J3MgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uTWFuYWdlcmlPUzo6bm93UGxheWluZ0VsaWdpYmxlU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyk6
CisKKzIwMTctMDEtMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKICAgICAg
ICAgQ1JBU0ggYXQgV2ViQ29yZTo6VHJhY2tMaXN0QmFzZTo6cmVtb3ZlCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMTcKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2Vy
SU9TLmgKaW5kZXggYWQwMmFhNy4uMTk5YWM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCkBAIC03
MCwxMSArNzAsMTcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2Vzc2lvbkNhbkxvYWRNZWRpYShj
b25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgYm9vbCBo
YXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbm93UGxh
eWluZ0FjdGl2ZTsgfQorICAgIFN0cmluZyBsYXN0VXBkYXRlZE5vd1BsYXlpbmdUaXRsZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVwb3J0ZWRUaXRsZTsgfQorICAgIGRvdWJsZSBsYXN0VXBk
YXRlZE5vd1BsYXlpbmdEdXJhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVwb3J0ZWRE
dXJhdGlvbjsgfQorICAgIGRvdWJsZSBsYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2VkVGltZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVwb3J0ZWRDdXJyZW50VGltZTsgfQorCiAgICAgUGxh
dGZvcm1NZWRpYVNlc3Npb24qIG5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKTsKICAgICAKICAg
ICBSZXRhaW5QdHI8V2ViTWVkaWFTZXNzaW9uSGVscGVyPiBtX29iamNPYnNlcnZlcjsKICAgICBk
b3VibGUgbV9yZXBvcnRlZFJhdGUgeyAwIH07CiAgICAgZG91YmxlIG1fcmVwb3J0ZWREdXJhdGlv
biB7IDAgfTsKKyAgICBkb3VibGUgbV9yZXBvcnRlZEN1cnJlbnRUaW1lIHsgMCB9OwogICAgIFN0
cmluZyBtX3JlcG9ydGVkVGl0bGU7CiAgICAgYm9vbCBtX25vd1BsYXlpbmdBY3RpdmUgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pc0luQmFja2dyb3VuZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2Vy
SU9TLm1tCmluZGV4IDRhMDRiOTYuLjdiYzhmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCkBA
IC0yMTksNyArMjE5LDcgQEAgUGxhdGZvcm1NZWRpYVNlc3Npb24qIE1lZGlhU2Vzc2lvbk1hbmFn
ZXJpT1M6Om5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKQogewogICAgIHJldHVybiBmaW5kU2Vz
c2lvbihbXSAoUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24sIHNpemVfdCkgewogICAgICAg
ICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIHR5cGUgPSBzZXNzaW9uLm1lZGlhVHlw
ZSgpOwotICAgICAgICBpZiAodHlwZSAhPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6VmlkZW8gJiYg
dHlwZSAhPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXVkaW8pCisgICAgICAgIGlmICh0eXBlICE9
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpWaWRlb0F1ZGlvICYmIHR5cGUgIT0gUGxhdGZvcm1NZWRp
YVNlc3Npb246OkF1ZGlvKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlm
IChzZXNzaW9uLmNoYXJhY3RlcmlzdGljcygpICYgUGxhdGZvcm1NZWRpYVNlc3Npb246Okhhc0F1
ZGlvKQpAQCAtMjQ5LDYgKzI0OSw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6dXBk
YXRlTm93UGxheWluZ0luZm8oKQogICAgIFN0cmluZyB0aXRsZSA9IGN1cnJlbnRTZXNzaW9uLT50
aXRsZSgpOwogICAgIGRvdWJsZSBkdXJhdGlvbiA9IGN1cnJlbnRTZXNzaW9uLT5kdXJhdGlvbigp
OwogICAgIGRvdWJsZSByYXRlID0gY3VycmVudFNlc3Npb24tPnN0YXRlKCkgPT0gUGxhdGZvcm1N
ZWRpYVNlc3Npb246OlBsYXlpbmcgPyAxIDogMDsKKyAgICBkb3VibGUgY3VycmVudFRpbWUgPSBj
dXJyZW50U2Vzc2lvbi0+Y3VycmVudFRpbWUoKTsKICAgICBpZiAobV9yZXBvcnRlZFRpdGxlID09
IHRpdGxlICYmIG1fcmVwb3J0ZWRSYXRlID09IHJhdGUgJiYgbV9yZXBvcnRlZER1cmF0aW9uID09
IGR1cmF0aW9uKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6
OnVwZGF0ZU5vd1BsYXlpbmdJbmZvIC0gbm90aGluZyBuZXcgdG8gc2hvdyIpOwogICAgICAgICBy
ZXR1cm47CkBAIC0yNTcsNiArMjU4LDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjp1
cGRhdGVOb3dQbGF5aW5nSW5mbygpCiAgICAgbV9yZXBvcnRlZFJhdGUgPSByYXRlOwogICAgIG1f
cmVwb3J0ZWREdXJhdGlvbiA9IGR1cmF0aW9uOwogICAgIG1fcmVwb3J0ZWRUaXRsZSA9IHRpdGxl
OworICAgIG1fcmVwb3J0ZWRDdXJyZW50VGltZSA9IGN1cnJlbnRUaW1lOwogCiAgICAgYXV0byBp
bmZvID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBp
ZiAoIXRpdGxlLmlzRW1wdHkoKSkKQEAgLTI2NSw3ICsyNjcsNiBAQCB2b2lkIE1lZGlhU2Vzc2lv
bk1hbmFnZXJpT1M6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkKICAgICAgICAgaW5mby5nZXQoKVtN
UE1lZGlhSXRlbVByb3BlcnR5UGxheWJhY2tEdXJhdGlvbl0gPSBAKGR1cmF0aW9uKTsKICAgICBp
bmZvLmdldCgpW01QTm93UGxheWluZ0luZm9Qcm9wZXJ0eVBsYXliYWNrUmF0ZV0gPSBAKHJhdGUp
OwogCi0gICAgZG91YmxlIGN1cnJlbnRUaW1lID0gY3VycmVudFNlc3Npb24tPmN1cnJlbnRUaW1l
KCk7CiAgICAgaWYgKHN0ZDo6aXNmaW5pdGUoY3VycmVudFRpbWUpICYmIGN1cnJlbnRUaW1lICE9
IE1lZGlhUGxheWVyOjppbnZhbGlkVGltZSgpKQogICAgICAgICBpbmZvLmdldCgpW01QTm93UGxh
eWluZ0luZm9Qcm9wZXJ0eUVsYXBzZWRQbGF5YmFja1RpbWVdID0gQChjdXJyZW50VGltZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzZWE5ODA4Li43OTBmZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTctMDEtMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgVmlkZW8gZGV0YWlscyBkb2VzIG5vdCBhcGVhciBhbmQgbWlzc2luZyBzY3J1YmJlciBpbiBD
b250cm9sIENlbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY3MjMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKwor
ICAgICAgICBNYWtlIHJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oKSBhbmQgaGFu
ZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoKQorICAgICAgICB3b3JrIGlu
IFBMQVRGT1JNKElPUykuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Np
b25JbmZvXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nl
c3Npb25JbmZvUmVzcG9uc2U6dGl0bGU6ZHVyYXRpb246ZWxhcHNlZFRpbWU6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0QWN0aXZlTm93UGxheWlu
Z1Nlc3Npb25JbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVBY3Rp
dmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25z
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9u
SW5mbyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8pOiBEZWxldGVkLgorCiAyMDE3
LTAxLTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
X1dLRnVsbHNjcmVlbkRlbGVnYXRlIGF2YWlsYWJsZSB0byB1c2VycyBvZiB0aGUgV2ViS2l0MiBD
LUFQSS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KaW5kZXggNzdkODA5OS4uMWY1YWNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ4NjIsMTcgKzQ4NjIsNiBAQCBzdGF0aWMg
V2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1VzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb24oVUlTZQogICAgIHJldHVybiBfaW1wbC0+c2hvdWxkUmVxdWVzdENhbmRpZGF0
ZXMoKTsKIH0KIAotLSAodm9pZClfcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbwot
ewotICAgIGlmIChfcGFnZSkKLSAgICAgICAgX3BhZ2UtPnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5n
U2Vzc2lvbkluZm8oKTsKLX0KLQotLSAodm9pZClfaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Np
b25JbmZvUmVzcG9uc2U6KEJPT0wpaGFzQWN0aXZlU2Vzc2lvbiB0aXRsZTooTlNTdHJpbmcgKil0
aXRsZSBkdXJhdGlvbjooZG91YmxlKWR1cmF0aW9uIGVsYXBzZWRUaW1lOihkb3VibGUpZWxhcHNl
ZFRpbWUKLXsKLSAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMuCi19Ci0KIC0gKHZvaWQp
X2luc2VydFRleHQ6KGlkKXN0cmluZyByZXBsYWNlbWVudFJhbmdlOihOU1JhbmdlKXJlcGxhY2Vt
ZW50UmFuZ2UKIHsKICAgICBbc2VsZiBpbnNlcnRUZXh0OnN0cmluZyByZXBsYWNlbWVudFJhbmdl
OnJlcGxhY2VtZW50UmFuZ2VdOwpAQCAtNDg5MCw2ICs0ODc5LDE3IEBAIHN0YXRpYyBXZWJDb3Jl
OjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91dERpcmVj
dGlvbihVSVNlCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKKy0gKHZvaWQpX3JlcXVlc3RB
Y3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8KK3sKKyAgICBpZiAoX3BhZ2UpCisgICAgICAgIF9w
YWdlLT5yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCk7Cit9CisKKy0gKHZvaWQp
X2hhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlOihCT09MKWhhc0FjdGl2
ZVNlc3Npb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgZHVyYXRpb246KGRvdWJsZSlkdXJhdGlv
biBlbGFwc2VkVGltZTooZG91YmxlKWVsYXBzZWRUaW1lCit7CisgICAgLy8gT3ZlcnJpZGRlbiBi
eSBzdWJjbGFzc2VzLgorfQorCiAtICh2b2lkKV9zZXRQYWdlU2NhbGU6KENHRmxvYXQpc2NhbGUg
d2l0aE9yaWdpbjooQ0dQb2ludClvcmlnaW4KIHsKICAgICBfcGFnZS0+c2NhbGVQYWdlKHNjYWxl
LCBXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQob3JpZ2luKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDMxM2Iz
MzguLjY4ZjA1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0zMDgsMTUgKzMwOCwxNSBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAtICh2b2lkKV9mb3Jj
ZVJlcXVlc3RDYW5kaWRhdGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsK
IC0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5OihCT09MKXZpc2libGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRSZXF1ZXN0Q2FuZGlkYXRlcyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSk7Ci0tICh2b2lkKV9yZXF1ZXN0QWN0aXZlTm93UGxheWlu
Z1Nlc3Npb25JbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKLS0gKHZv
aWQpX2hhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlOihCT09MKWhhc0Fj
dGl2ZVNlc3Npb24gdGl0bGU6KE5TU3RyaW5nICopdGl0bGUgZHVyYXRpb246KGRvdWJsZSlkdXJh
dGlvbiBlbGFwc2VkVGltZTooZG91YmxlKWVsYXBzZWRUaW1lIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpKTsKLQogLSAodm9pZClfaW5zZXJ0VGV4dDooaWQpc3RyaW5nIHJlcGxh
Y2VtZW50UmFuZ2U6KE5TUmFuZ2UpcmVwbGFjZW1lbnRSYW5nZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7CiAKIC0gKHZvaWQpX3NldEhlYWRlckJhbm5lckhlaWdodDooaW50
KWhlaWdodCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAtICh2b2lkKV9z
ZXRGb290ZXJCYW5uZXJIZWlnaHQ6KGludCloZWlnaHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKKy0gKHZvaWQpX3JlcXVlc3RBY3RpdmVOb3dQbGF5aW5n
U2Vzc2lvbkluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CistICh2b2lkKV9oYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNw
b25zZTooQk9PTCloYXNBY3RpdmVTZXNzaW9uIHRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGR1cmF0
aW9uOihkb3VibGUpZHVyYXRpb24gZWxhcHNlZFRpbWU6KGRvdWJsZSllbGFwc2VkVGltZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogLSAo
dm9pZClfc2V0UGFnZVNjYWxlOihDR0Zsb2F0KXNjYWxlIHdpdGhPcmlnaW46KENHUG9pbnQpb3Jp
Z2luIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKENHRmxvYXQpX3BhZ2VT
Y2FsZSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDFjMjEwYjEuLjIwNzI1MTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMjUzLDcgKzI1Myw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShXZWJDb3JlOjpT
Y3JvbGxiYXJTdHlsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVOYXZpZ2F0aW9uR2Vz
dHVyZVNuYXBzaG90KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVDb250cm9sbGVkRWxl
bWVudElEUmVzcG9uc2UoY29uc3QgU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZShib29sIGhhc0FjdGl2ZVNlc3Np
b24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIGVsYXBzZWRU
aW1lKSA9IDA7CiAKICAgICB2aXJ0dWFsIENHUmVjdCBib3VuZHNPZkxheWVySW5MYXllckJhY2tl
ZFdpbmRvd0Nvb3JkaW5hdGVzKENBTGF5ZXIgKikgY29uc3QgPSAwOwogCkBAIC0yODQsNiArMjgz
LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGFibGVFbGVtZW50SXNGb2N1
c2VkKGJvb2wpID0gMDsKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZv
UmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBkb3Vi
bGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSkgPSAwOworI2VuZGlmCisKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OkZsb2F0UXVhZD4mIGhpZ2hsaWdodGVkUXVhZHMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRv
cExlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBib3R0b21SaWdodFJhZGl1cykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCBlYjkzOTVjLi5kOGVlYzNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjQ3MywxNiArNjQ3Myw2IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpyZXF1ZXN0Q29udHJvbGxlZEVsZW1lbnRJRCgpIGNvbnN0CiAjZW5kaWYKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8o
KQotewotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVxdWVzdEFjdGl2
ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygpLCBtX3BhZ2VJRCk7Ci19Ci0KLXZvaWQgV2ViUGFnZVBy
b3h5OjpoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZShib29sIGhhc0Fj
dGl2ZVNlc3Npb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGRvdWJsZSBkdXJhdGlvbiwgZG91Ymxl
IGVsYXBzZWRUaW1lKSBjb25zdAotewotICAgIG1fcGFnZUNsaWVudC5oYW5kbGVBY3RpdmVOb3dQ
bGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZShoYXNBY3RpdmVTZXNzaW9uLCB0aXRsZSwgZHVyYXRp
b24sIGVsYXBzZWRUaW1lKTsKLX0KLQogdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUNvbnRyb2xs
ZWRFbGVtZW50SURSZXNwb25zZShjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpIGNvbnN0CiB7CiAg
ICAgbV9wYWdlQ2xpZW50LmhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZShpZGVudGlm
aWVyKTsKQEAgLTY0OTgsNiArNjQ4OCwxOCBAQCBib29sIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5n
VmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIFBMQVRG
T1JNKENPQ09BKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vz
c2lvbkluZm8oKQoreworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UmVx
dWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygpLCBtX3BhZ2VJRCk7Cit9CisKK3ZvaWQg
V2ViUGFnZVByb3h5OjpoYW5kbGVBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZShi
b29sIGhhc0FjdGl2ZVNlc3Npb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIGRvdWJsZSBkdXJhdGlv
biwgZG91YmxlIGVsYXBzZWRUaW1lKSBjb25zdAoreworICAgIG1fcGFnZUNsaWVudC5oYW5kbGVB
Y3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm9SZXNwb25zZShoYXNBY3RpdmVTZXNzaW9uLCB0aXRs
ZSwgZHVyYXRpb24sIGVsYXBzZWRUaW1lKTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElB
X1NFU1NJT04pCiB2b2lkIFdlYlBhZ2VQcm94eTo6aGFzTWVkaWFTZXNzaW9uV2l0aEFjdGl2ZU1l
ZGlhRWxlbWVudHNEaWRDaGFuZ2UoYm9vbCBzdGF0ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCBlZjU2YjFjLi40ZjU1YTA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMDYxLDkgKzEwNjEsMTIgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIoKSBjb25zdDsKICAgICB2
b2lkIHJlcXVlc3RDb250cm9sbGVkRWxlbWVudElEKCkgY29uc3Q7CiAgICAgdm9pZCBoYW5kbGVD
b250cm9sbGVkRWxlbWVudElEUmVzcG9uc2UoY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgYm9v
bCBpc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3Q7CisjZW5kaWYKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNz
aW9uSW5mbygpOwogICAgIHZvaWQgaGFuZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVz
cG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNzaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBkb3VibGUg
ZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSkgY29uc3Q7Ci0gICAgYm9vbCBpc1BsYXlpbmdW
aWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3Q7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggNjIxMDJhMS4uMTY3YjBkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC00ODMsNiArNDgz
LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBEaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSgpCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIEhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wg
aGFzQWN0aXZlU2Vzc2lvbiwgU3RyaW5nIHRpdGxlLCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSBl
bGFwc2VkVGltZSkKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDY5YjYxMzUuLjRjYTJlODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTE5NCw2
ICsxOTQsOCBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgb3ZlcnJpZGU7CiAKKyAgICB2
b2lkIGhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wgaGFzQWN0
aXZlU2Vzc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgZG91YmxlIGR1cmF0aW9uLCBkb3VibGUg
ZWxhcHNlZFRpbWUpIG92ZXJyaWRlOworCiAgICAgV0tDb250ZW50VmlldyAqbV9jb250ZW50Vmll
dzsKICAgICBXS1dlYlZpZXcgKm1fd2ViVmlldzsKICAgICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRv
VGFyZ2V0T2JqQz4gbV91bmRvVGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggY2UzNjQwNS4uZjU2NDhiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBA
IC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
bi5oIgogI2ltcG9ydCAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2ltcG9ydCAiTmF2aWdh
dGlvblN0YXRlLmgiCisjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlVJS2l0
U1BJLmgiCiAjaW1wb3J0ICJWaWV3U25hcHNob3RTdG9yZS5oIgogI2ltcG9ydCAiV0tDb250ZW50
Vmlldy5oIgpAQCAtNzQ5LDYgKzc1MCwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmFsaWRhdGlvbkJ1
YmJsZT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVZhbGlkYXRpb25CdWJibGUoY29uc3QgUwogICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZhbGlkYXRpb25CdWJibGU+KG1fY29udGVudFZpZXcs
IG1lc3NhZ2UpOwogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVBY3RpdmVOb3dQbGF5
aW5nU2Vzc2lvbkluZm9SZXNwb25zZShib29sIGhhc0FjdGl2ZVNlc3Npb24sIGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIGVsYXBzZWRUaW1lKQoreworICAgIFtt
X3dlYlZpZXcgX2hhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlOmhhc0Fj
dGl2ZVNlc3Npb24gdGl0bGU6bnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyh0aXRsZSkgZHVyYXRp
b246ZHVyYXRpb24gZWxhcHNlZFRpbWU6ZWxhcHNlZFRpbWVdOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCmluZGV4IDkx
ODQ0NjYuLmQ0MGEwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQpAQCAtMjcsNiArMjcsOCBAQAogI2ltcG9y
dCAiV2ViUGFnZS5oIgogCiAjaW1wb3J0ICJMb2FkUGFyYW1ldGVycy5oIgorI2ltcG9ydCAiV2Vi
UGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKIApAQCAtMzksNiArNDEsMjIgQEAg
dm9pZCBXZWJQYWdlOjpwbGF0Zm9ybURpZFJlY2VpdmVMb2FkUGFyYW1ldGVycyhjb25zdCBMb2Fk
UGFyYW1ldGVycyYgbG9hZFBhcmFtZXQKICAgICBtX2RhdGFEZXRlY3Rpb25Db250ZXh0ID0gbG9h
ZFBhcmFtZXRlcnMuZGF0YURldGVjdGlvbkNvbnRleHQ7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6cmVx
dWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygpCit7CisgICAgYm9vbCBoYXNBY3RpdmVT
ZXNzaW9uID0gZmFsc2U7CisgICAgU3RyaW5nIHRpdGxlID0gZW1wdHlTdHJpbmcoKTsKKyAgICBk
b3VibGUgZHVyYXRpb24gPSBOQU47CisgICAgZG91YmxlIGVsYXBzZWRUaW1lID0gTkFOOworICAg
IGlmIChhdXRvKiBzaGFyZWRNYW5hZ2VyID0gV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMoKSkgeworICAgICAgICBoYXNBY3RpdmVTZXNz
aW9uID0gc2hhcmVkTWFuYWdlci0+aGFzQWN0aXZlTm93UGxheWluZ1Nlc3Npb24oKTsKKyAgICAg
ICAgdGl0bGUgPSBzaGFyZWRNYW5hZ2VyLT5sYXN0VXBkYXRlZE5vd1BsYXlpbmdUaXRsZSgpOwor
ICAgICAgICBkdXJhdGlvbiA9IHNoYXJlZE1hbmFnZXItPmxhc3RVcGRhdGVkTm93UGxheWluZ0R1
cmF0aW9uKCk7CisgICAgICAgIGVsYXBzZWRUaW1lID0gc2hhcmVkTWFuYWdlci0+bGFzdFVwZGF0
ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUoKTsKKyAgICB9CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGhh
c0FjdGl2ZVNlc3Npb24sIHRpdGxlLCBkdXJhdGlvbiwgZWxhcHNlZFRpbWUpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDgxY2U3NTEuLjMyNmU0
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAt
MTIyMyw2ICsxMjIzLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRhdGFEZXRlY3RvcnNEaWRIaWRl
VUkoV2ViQ29yZTo6UGFnZU92ZXJsYXk6OlBhZ2VPdmVybGF5SUQpOwogCiAgICAgdm9pZCBoYW5k
bGVBY2NlcHRlZENhbmRpZGF0ZShXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQpOworI2VuZGlm
CisKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHJlcXVlc3RBY3RpdmVOb3dQbGF5aW5n
U2Vzc2lvbkluZm8oKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDc1NmI2MjIuLjlhNDc1MzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC00MjQsMTIgKzQyNCwxNSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExl
Z2FjeVJlY2VpdmVyIHsKICAgICBEYXRhRGV0ZWN0b3JzRGlkSGlkZVVJKFdlYkNvcmU6OlBhZ2VP
dmVybGF5OjpQYWdlT3ZlcmxheUlEIHBhZ2VPdmVybGF5KQogCiAgICAgSGFuZGxlQWNjZXB0ZWRD
YW5kaWRhdGUoc3RydWN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCBhY2NlcHRlZENhbmRp
ZGF0ZSkKLSAgICBSZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvKCkKIAogICAgIFNl
dEhlYWRlckJhbm5lckhlaWdodEZvclRlc3RpbmcoaW50IGhlaWdodCk7CiAgICAgU2V0Rm9vdGVy
QmFubmVySGVpZ2h0Rm9yVGVzdGluZyhpbnQgaGVpZ2h0KTsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgUmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbygpCisjZW5k
aWYKKwogICAgIFNldFNob3VsZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cyhib29sIHNob3Vs
ZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cykKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZ
QkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggZjdlYjhkNy4uMjk0OTY3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbQpAQCAtNzYsNyArNzYsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1JlbmRlckVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVy
T2JqZWN0Lmg+CkBAIC0xNjIsMjIgKzE2MSw2IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlQWNjZXB0
ZWRDYW5kaWRhdGUoV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0IGFjY2VwdGVkQ2FuZGlkCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0
ZSgpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpyZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25J
bmZvKCkKLXsKLSAgICBib29sIGhhc0FjdGl2ZVNlc3Npb24gPSBmYWxzZTsKLSAgICBTdHJpbmcg
dGl0bGUgPSBlbXB0eVN0cmluZygpOwotICAgIGRvdWJsZSBkdXJhdGlvbiA9IE5BTjsKLSAgICBk
b3VibGUgZWxhcHNlZFRpbWUgPSBOQU47Ci0gICAgaWYgKGF1dG8qIHNoYXJlZE1hbmFnZXIgPSBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0
cygpKSB7Ci0gICAgICAgIGhhc0FjdGl2ZVNlc3Npb24gPSBzaGFyZWRNYW5hZ2VyLT5oYXNBY3Rp
dmVOb3dQbGF5aW5nU2Vzc2lvbigpOwotICAgICAgICB0aXRsZSA9IHNoYXJlZE1hbmFnZXItPmxh
c3RVcGRhdGVkTm93UGxheWluZ1RpdGxlKCk7Ci0gICAgICAgIGR1cmF0aW9uID0gc2hhcmVkTWFu
YWdlci0+bGFzdFVwZGF0ZWROb3dQbGF5aW5nRHVyYXRpb24oKTsKLSAgICAgICAgZWxhcHNlZFRp
bWUgPSBzaGFyZWRNYW5hZ2VyLT5sYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2VkVGltZSgpOwot
ICAgIH0KLQotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGFuZGxlQWN0aXZlTm93
UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoaGFzQWN0aXZlU2Vzc2lvbiwgdGl0bGUsIGR1cmF0
aW9uLCBlbGFwc2VkVGltZSkpOwotfQotCiBOU09iamVjdCAqV2ViUGFnZTo6YWNjZXNzaWJpbGl0
eU9iamVjdEZvck1haW5GcmFtZVBsdWdpbigpCiB7CiAgICAgaWYgKCFtX3BhZ2UpCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTk3YmQ3Yi4uMjZm
YmFhOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQyIEBACisyMDE3LTAxLTE5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFZpZGVvIGRldGFpbHMgZG9lcyBub3QgYXBlYXIgYW5kIG1pc3Npbmcg
c2NydWJiZXIgaW4gQ29udHJvbCBDZW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NzIzMworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hy
aXN0ZW5zZW4uCisKKyAgICAgICAgUmVmYWN0b3IgVGVzdFdLV2ViVmlld01hYyB0byB3b3JrIG9u
IFBMQVRGT1JNKElPUykuIEFkZCBhIG5ldyB0ZXN0IHRvCisgICAgICAgIE5vd1BsYXlpbmdDb250
cm9sVGVzdHMgZm9yIGlPUy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL05vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tOgorICAgICAgICAoLVtO
b3dQbGF5aW5nVGVzdFdlYlZpZXcgc2V0V2luZG93VmlzaWJsZTpdKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL1NuYXBzaG90U3RvcmUubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW06CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW06CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmg6IFJlbmFtZWQgZnJvbSBUb29s
cy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmguCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tOiBSZW5hbWVkIGZyb20gVG9vbHMvVGVzdFdl
YktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbS4KKyAgICAgICAgKFNPRlRfTElOS19DTEFT
Uyk6CisgICAgICAgICgtW1Rlc3RNZXNzYWdlSGFuZGxlciBhZGRNZXNzYWdlOndpdGhIYW5kbGVy
Ol0pOgorICAgICAgICAoLVtUZXN0TWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVy
OmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOl0pOgorICAgICAgICAoX19zaW11bGF0ZWRfZm9yY2VD
bGlja0Fzc29jaWF0ZWRFdmVudHNNYXNrKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlld0hvc3RX
aW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6c2ltdWxhdGVQcmVzc3VyZTpdKToKKyAgICAgICAgKC1b
VGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgaXNLZXlXaW5kb3ddKToKKyAgICAgICAgKC1bVGVzdFdL
V2ViVmlld0hvc3RXaW5kb3cgbWFrZUtleVdpbmRvd10pOgorICAgICAgICAoLVtUZXN0V0tXZWJW
aWV3SG9zdFdpbmRvdyByZXNpZ25LZXlXaW5kb3ddKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmll
dyBpbml0V2l0aEZyYW1lOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGluaXRXaXRoRnJh
bWU6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBfc2V0VXBUZXN0
V2luZG93Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHBlcmZvcm1BZnRlclJlY2Vpdmlu
Z01lc3NhZ2U6YWN0aW9uOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGxvYWRUZXN0UGFn
ZU5hbWVkOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVz
dFBhZ2VOYW1lZDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHdhaXRGb3JNZXNzYWdl
Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHBlcmZvcm1BZnRlckxvYWRpbmc6XSk6Cisg
ICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpzaW11bGF0ZVByZXNzdXJl
Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6XSk6CisKIDIwMTYt
MTItMTkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHNj
aGVtZSBmb3IgTW9iaWxlTWluaUJyb3dzZXJVSVRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDQwNTY0MjQuLjAxOGVkMzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04Niw3ICs4
Niw3IEBACiAJCTJFRkYwNkM1MUQ4ODY3NzYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNl
LW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3Vy
Y2Utb24tY2xpY2suaHRtbCAqLzsgfTsKIAkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNo
YW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNo
YW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi87IH07CiAJCTJFRkYwNkNEMUQ4QTQyOUEw
MDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2Q0Mx
RDhBNDI5MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRt
bCAqLzsgfTsKLQkJMkVGRjA2RDQxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZE
MzFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5tbSAqLzsgfTsKKwkJMkVGRjA2
RDQxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZEMzFEOEFFREJCMDAwNEJCMzAgLyog
VGVzdFdLV2ViVmlldy5tbSAqLzsgfTsKIAkJMkVGRjA2RDcxRDhBRjM0QTAwMDRCQjMwIC8qIFdL
V2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkVGRjA2RDYxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRp
ZGF0ZVRlc3RzLm1tICovOyB9OwogCQkzMTUxMTgxMDFEQjFBRTQwMDAxNzYzMDQgLyogRXh0ZW5k
ZWRDb2xvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTUxMTgwRjFEQjFBREQ1MDAxNzYzMDQgLyogRXh0ZW5kZWRDb2xvci5jcHAgKi87IH07CiAJ
CTMzQkU1QUY5MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JFNUFG
ODEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovOyB9
OwpAQCAtODc2LDggKzg3Niw4IEBACiAJCTJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFu
Z2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3Vy
Y2Utb24tZW5kLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY2hhbmdlLXZpZGVv
LXNvdXJjZS1vbi1lbmQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRkYw
NkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiaW5wdXQtZmllbGQtaW4tc2Nyb2xs
YWJsZS1kb2N1bWVudC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkVGRjA2
RDIxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGVzdFdLV2ViVmlld01hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkyRUZGMDZEMzFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRlc3RXS1dlYlZpZXdN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRkYwNkQyMUQ4QUVEQkIwMDA0
QkIzMCAvKiBUZXN0V0tXZWJWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFRlc3RXS1dlYlZpZXcuaDsgcGF0aCA9IGNvY29hL1Rlc3RXS1dlYlZpZXcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dl
YlZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXN0V0tX
ZWJWaWV3Lm1tOyBwYXRoID0gY29jb2EvVGVzdFdLV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkVGRjA2RDYxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRp
ZGF0ZVRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tX
ZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMx
NTExODBGMURCMUFERDUwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9yLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4dGVuZGVkQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMgLyogUHJldmVudEVtcHR5
VXNlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZXZl
bnRFbXB0eVVzZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDI3
LDYgKzE0MjcsOCBAQAogCQkJCTJEMUMwNEE2MUQ3NjI5OEIwMDBBNjgxNiAvKiBUZXN0TmF2aWdh
dGlvbkRlbGVnYXRlLm1tICovLAogCQkJCUExNEZDNThEMUI4QUUzNjUwMEQxMDdFQiAvKiBUZXN0
UHJvdG9jb2wuaCAqLywKIAkJCQlBMTRGQzU4RTFCOEFFMzY1MDBEMTA3RUIgLyogVGVzdFByb3Rv
Y29sLm1tICovLAorCQkJCTJFRkYwNkQyMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3
LmggKi8sCisJCQkJMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXcubW0g
Ki8sCiAJCQkJN0M4M0UwMzkxRDBBNjAyNzAwRkVCQ0YzIC8qIFV0aWxpdGllc0NvY29hLm1tICov
LAogCQkJCUExNEZDNTg0MUI4OTczOTEwMEQxMDdFQiAvKiBXS1dlYlZpZXdDb25maWd1cmF0aW9u
RXh0cmFzLmggKi8sCiAJCQkJQTE0RkM1ODMxQjg5NzM5MTAwRDEwN0VCIC8qIFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb25FeHRyYXMubW0gKi8sCkBAIC0yMDAxLDggKzIwMDMsNiBAQAogCQkJCUMwODEy
MjQ0MTNGQzE5RUMwMERDMzlBRSAvKiBTeW50aGV0aWNCYWNraW5nU2NhbGVGYWN0b3JXaW5kb3cu
bSAqLywKIAkJCQkyOUFCOEFBMzE2NEM3QTkzMDBENDlCRUMgLyogVGVzdEJyb3dzaW5nQ29udGV4
dExvYWREZWxlZ2F0ZS5oICovLAogCQkJCTI5QUI4QUEyMTY0QzdBOTMwMEQ0OUJFQyAvKiBUZXN0
QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLm1tICovLAotCQkJCTJFRkYwNkQyMUQ4QUVEQkIw
MDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLmggKi8sCi0JCQkJMkVGRjA2RDMxRDhBRURCQjAw
MDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMubW0gKi8sCiAJCQkJQzA4NTg3QkUxM0ZFOTU2QzAw
MUVGNEU1IC8qIFdlYktpdEFnbm9zdGljVGVzdC5oICovLAogCQkJCUMwODU4N0JEMTNGRTk1NkMw
MDFFRjRFNSAvKiBXZWJLaXRBZ25vc3RpY1Rlc3QubW0gKi8sCiAJCQkpOwpAQCAtMjU1NSw3ICsy
NTU1LDcgQEAKIAkJCQk4MzQ5RDNDMjFEQjk2RERFMDA0QTlGNjUgLyogQ29udGV4dE1lbnVEb3du
bG9hZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUZDMUE0MTFBRTYwMDQ0N0M0QyAvKiBJ
bmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VG
RDFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRh
Q2FsbGJhY2tXaW5zLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTJFRkYwNkQ0MUQ4QUVEQkIwMDA0
QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkVGRjA2RDQx
RDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
QzgzRTBCODFEMEE2NEJEMDBGRUJDRjMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9v
dHNPcGVuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUMzMUE0MTFBN0UwMDQ0N0M0QyAv
KiBJbnNwZWN0b3JCYXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQTFBNDExQTg3MDA0
NDdDNEMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvTm93UGxheWluZ0Nv
bnRyb2xzVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9O
b3dQbGF5aW5nQ29udHJvbHNUZXN0cy5tbQppbmRleCA1NzI1MTExLi5iNWQ5NzkwIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Ob3dQbGF5aW5nQ29u
dHJvbHNUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9Ob3dQbGF5aW5nQ29udHJvbHNUZXN0cy5tbQpAQCAtMjYsMTIgKzI2LDEyIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJU
ZXN0V0tXZWJWaWV3TWFjLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAKICNpbXBvcnQg
PFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0
L1dLV2ViVmlld1ByaXZhdGUuaD4KIAotI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTIwMQorI2lmIFdLX0FQ
SV9FTkFCTEVEICYmIChQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxM
T1dFRCA+PSAxMDEyMDEpCiAKIEBpbnRlcmZhY2UgTm93UGxheWluZ1Rlc3RXZWJWaWV3IDogVGVz
dFdLV2ViVmlldwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGhhc0FjdGl2
ZU5vd1BsYXlpbmdTZXNzaW9uOwpAQCAtOTMsMTAgKzkzLDIwIEBACiAKICAgICBfcmVjZWl2ZWRO
b3dQbGF5aW5nSW5mb1Jlc3BvbnNlID0gdHJ1ZTsKIH0KKworLSAodm9pZClzZXRXaW5kb3dWaXNp
YmxlOihCT09MKWlzVmlzaWJsZQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBbc2VsZi53aW5k
b3cgc2V0SXNWaXNpYmxlOmlzVmlzaWJsZV07CisjZWxzZQorICAgIHNlbGYud2luZG93LmhpZGRl
biA9ICFpc1Zpc2libGU7CisjZW5kaWYKK30KIEBlbmQKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewogCisjaWYgUExBVEZPUk0oTUFDKQogVEVTVChOb3dQbGF5aW5nQ29udHJvbHNUZXN0cywg
Tm93UGxheWluZ0NvbnRyb2xzRG9Ob3RTaG93Rm9yRm9yZWdyb3VuZFBhZ2UpCiB7CiAgICAgV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF07CkBAIC0xMDUsNyArMTE1LDcgQEAgVEVTVChOb3dQbGF5aW5nQ29u
dHJvbHNUZXN0cywgTm93UGxheWluZ0NvbnRyb2xzRG9Ob3RTaG93Rm9yRm9yZWdyb3VuZFBhZ2Up
CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlby10ZXN0LW5vdy1w
bGF5aW5nIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJwbGF5aW5nIl07CiAKLSAg
ICBbd2ViVmlldy53aW5kb3cgc2V0SXNWaXNpYmxlOllFU107CisgICAgW3dlYlZpZXcgc2V0V2lu
ZG93VmlzaWJsZTpZRVNdOwogICAgIFt3ZWJWaWV3LndpbmRvdyBtYWtlS2V5V2luZG93XTsKICAg
ICBbd2ViVmlldyBleHBlY3RIYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbjpOT107CiAKQEAgLTEy
Miw3ICsxMzIsNyBAQCBURVNUKE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLCBOb3dQbGF5aW5nQ29u
dHJvbHNTaG93Rm9yQmFja2dyb3VuZFBhZ2UpCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFt
ZWQ6QCJsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nIl07CiAgICAgW3dlYlZpZXcgd2FpdEZv
ck1lc3NhZ2U6QCJwbGF5aW5nIl07CiAKLSAgICBbd2ViVmlldy53aW5kb3cgc2V0SXNWaXNpYmxl
Ok5PXTsKKyAgICBbd2ViVmlldyBzZXRXaW5kb3dWaXNpYmxlOk5PXTsKICAgICBbd2ViVmlldy53
aW5kb3cgcmVzaWduS2V5V2luZG93XTsKICAgICBbd2ViVmlldyBleHBlY3RIYXNBY3RpdmVOb3dQ
bGF5aW5nU2Vzc2lvbjpZRVNdOwogCkBAIC0xMzksMTIgKzE0OSwxMiBAQCBURVNUKE5vd1BsYXlp
bmdDb250cm9sc1Rlc3RzLCBOb3dQbGF5aW5nQ29udHJvbHNIaWRlQWZ0ZXJTaG93aW5nS2VlcHNT
ZXNzaW9uQWN0aQogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAibGFyZ2UtdmlkZW8t
dGVzdC1ub3ctcGxheWluZyJdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAicGxheWlu
ZyJdOwogCi0gICAgW3dlYlZpZXcud2luZG93IHNldElzVmlzaWJsZTpOT107CisgICAgW3dlYlZp
ZXcgc2V0V2luZG93VmlzaWJsZTpOT107CiAgICAgW3dlYlZpZXcud2luZG93IHJlc2lnbktleVdp
bmRvd107CiAKICAgICBbd2ViVmlldyBleHBlY3RIYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbjpZ
RVNdOwogCi0gICAgW3dlYlZpZXcud2luZG93IHNldElzVmlzaWJsZTpZRVNdOworICAgIFt3ZWJW
aWV3IHNldFdpbmRvd1Zpc2libGU6WUVTXTsKICAgICBbd2ViVmlldy53aW5kb3cgbWFrZUtleVdp
bmRvd107CiAKICAgICBbd2ViVmlldyBleHBlY3RIYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbjpO
T107CkBAIC0xNjIsOCArMTcyLDggQEAgVEVTVChOb3dQbGF5aW5nQ29udHJvbHNUZXN0cywgTm93
UGxheWluZ0NvbnRyb2xzQ2xlYXJJbmZvQWZ0ZXJTZXNzaW9uSXNOb0xvbmdlclYKICAgICBbd2Vi
VmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmciXTsK
ICAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAInBsYXlpbmciXTsKIAotICAgIFt3ZWJWaWV3
IG1vdXNlRG93bkF0UG9pbnQ6TlNNYWtlUG9pbnQoMjQwLCAxNjApIHNpbXVsYXRlUHJlc3N1cmU6
WUVTXTsKLSAgICBbd2ViVmlldy53aW5kb3cgc2V0SXNWaXNpYmxlOk5PXTsKKyAgICBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
dmlkZW8nKS5tdXRlZCA9IHRydWUiXTsKKyAgICBbd2ViVmlldyBzZXRXaW5kb3dWaXNpYmxlOk5P
XTsKICAgICBbd2ViVmlldy53aW5kb3cgcmVzaWduS2V5V2luZG93XTsKIAogICAgIFt3ZWJWaWV3
IHdhaXRGb3JOb3dQbGF5aW5nSW5mb1RvQ2hhbmdlXTsKQEAgLTE3Miw3ICsxODIsMjQgQEAgVEVT
VChOb3dQbGF5aW5nQ29udHJvbHNUZXN0cywgTm93UGxheWluZ0NvbnRyb2xzQ2xlYXJJbmZvQWZ0
ZXJTZXNzaW9uSXNOb0xvbmdlclYKICAgICBBU1NFUlRfVFJVRShpc25hbih3ZWJWaWV3Lmxhc3RV
cGRhdGVkRHVyYXRpb24pKTsKICAgICBBU1NFUlRfVFJVRShpc25hbih3ZWJWaWV3Lmxhc3RVcGRh
dGVkRWxhcHNlZFRpbWUpKTsKIH0KKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKKyNpZiBQTEFU
Rk9STShJT1MpCitURVNUKE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLCBOb3dQbGF5aW5nQ29udHJv
bHNJT1MpCit7CisgICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF07CisgICAgY29uZmlndXJhdGlvbi5t
ZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1l
ZGlhVHlwZU5vbmU7CisgICAgTm93UGxheWluZ1Rlc3RXZWJWaWV3ICp3ZWJWaWV3ID0gW1tOb3dQ
bGF5aW5nVGVzdFdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA0
ODAsIDMyMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXTsKKyAgICBbd2ViVmlldyBsb2Fk
VGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmciXTsKKyAgICBbd2Vi
VmlldyB3YWl0Rm9yTWVzc2FnZTpAInBsYXlpbmciXTsKKworICAgIFt3ZWJWaWV3IGV4cGVjdEhh
c0FjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uOllFU107CisgICAgQVNTRVJUX1NUUkVRKCJmb28iLCB3
ZWJWaWV3Lmxhc3RVcGRhdGVkVGl0bGUuVVRGOFN0cmluZyk7CisgICAgQVNTRVJUX0VRKDEwLCB3
ZWJWaWV3Lmxhc3RVcGRhdGVkRHVyYXRpb24pOworICAgIEFTU0VSVF9HRSh3ZWJWaWV3Lmxhc3RV
cGRhdGVkRWxhcHNlZFRpbWUsIDApOworfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKIAotI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTIwMQorI2VuZGlmIC8vIFdLX0FQ
SV9FTkFCTEVEICYmIChQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxM
T1dFRCA+PSAxMDEyMDEpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9TbmFwc2hvdFN0b3JlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvU25hcHNob3RTdG9yZS5tbQppbmRleCAyMjhlNzYxLi4xYWY4NjA1IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9TbmFwc2hvdFN0
b3JlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1NuYXBz
aG90U3RvcmUubW0KQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgi
Ci0jaW1wb3J0ICJUZXN0V0tXZWJWaWV3TWFjLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3Lmgi
CiAjaW1wb3J0IDxXZWJLaXQvV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLUGFnZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUGFnZVByaXZhdGUuaD4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29u
dHJvbHNNYW5hZ2VyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
VmlkZW9Db250cm9sc01hbmFnZXIubW0KaW5kZXggZmRkYmVhOS4uMWQ2MzBjOSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01h
bmFnZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlk
ZW9Db250cm9sc01hbmFnZXIubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKIAogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKLSNpbXBvcnQgIlRlc3RXS1dlYlZp
ZXdNYWMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKIAogI2ltcG9ydCA8V2ViS2l0L1dL
V2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3
UHJpdmF0ZS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQppbmRleCBlZDcyMjMx
Li45ZGQzOWJiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQpAQCAtMjgsNyAr
MjgsNyBAQAogI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTIwMQogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxp
dGllcy5oIgotI2ltcG9ydCAiVGVzdFdLV2ViVmlld01hYy5oIgorI2ltcG9ydCAiVGVzdFdLV2Vi
Vmlldy5oIgogCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2Vi
S2l0UHJpdmF0ZS5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdL
V2ViVmlld01hYy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgK
c2ltaWxhcml0eSBpbmRleCA5MiUKcmVuYW1lIGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMv
VGVzdFdLV2ViVmlld01hYy5oCnJlbmFtZSB0byBUb29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3RXS1dlYlZpZXcuaAppbmRleCA0NWNjYWJkLi5hMWU4MjcwMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtMjMsMjkgKzIzLDMwIEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBUZXN0V0tXZWJWaWV3
TWFjX2gKLSNkZWZpbmUgVGVzdFdLV2ViVmlld01hY19oCi0KICNpbXBvcnQgPFdlYktpdC9XZWJL
aXQuaD4KIAotI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykKKyNpZiBXS19BUElf
RU5BQkxFRAogCiBAaW50ZXJmYWNlIFRlc3RNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1Nj
cmlwdE1lc3NhZ2VIYW5kbGVyPgogLSAodm9pZClhZGRNZXNzYWdlOihOU1N0cmluZyAqKW1lc3Nh
Z2Ugd2l0aEhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcjsKIEBlbmQKIAogQGludGVy
ZmFjZSBUZXN0V0tXZWJWaWV3IDogV0tXZWJWaWV3Ci0vLyBTaW11bGF0ZXMgY2xpY2tpbmcgd2l0
aCBhIHByZXNzdXJlLXNlbnNpdGl2ZSBkZXZpY2UsIGlmIHBvc3NpYmxlLgotLSAodm9pZCltb3Vz
ZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50IHNpbXVsYXRlUHJlc3N1cmU6KEJPT0wpc2ltdWxh
dGVQcmVzc3VyZTsKIC0gKHZvaWQpcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTooTlNTdHJp
bmcgKiltZXNzYWdlIGFjdGlvbjooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb247CiAtICh2b2lkKWxv
YWRUZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lOwogLSAodm9pZClzeW5jaHJvbm91
c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7Ci0tICh2b2lkKXR5cGVD
aGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyOwogLSAoTlNTdHJpbmcgKilzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdDsKIC0gKHZvaWQpd2FpdEZvck1lc3NhZ2U6
KE5TU3RyaW5nICopbWVzc2FnZTsKIC0gKHZvaWQpcGVyZm9ybUFmdGVyTG9hZGluZzooZGlzcGF0
Y2hfYmxvY2tfdClhY3Rpb25zOwogQGVuZAogCi0jZW5kaWYgLyogV0tfQVBJX0VOQUJMRUQgJiYg
UExBVEZPUk0oTUFDKSAqLworI2lmIFBMQVRGT1JNKE1BQykKK0BpbnRlcmZhY2UgVGVzdFdLV2Vi
VmlldyAoTWFjT25seSkKKy8vIFNpbXVsYXRlcyBjbGlja2luZyB3aXRoIGEgcHJlc3N1cmUtc2Vu
c2l0aXZlIGRldmljZSwgaWYgcG9zc2libGUuCistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5T
UG9pbnQpcG9pbnQgc2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlOworLSAo
dm9pZCl0eXBlQ2hhcmFjdGVyOihjaGFyKWNoYXJhY3RlcjsKK0BlbmQKKyNlbmRpZgorCisjZW5k
aWYgLy8gV0tfQVBJX0VOQUJMRUQKIAotI2VuZGlmIC8qIFRlc3RXS1dlYlZpZXdNYWNfaCAqLwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpzaW1pbGFyaXR5IGlu
ZGV4IDkyJQpyZW5hbWUgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3
TWFjLm1tCnJlbmFtZSB0byBUb29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
bW0KaW5kZXggODkzYjFiYy4uMmJjZTIwZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcubW0KQEAgLTI0LDE5ICsyNCwyOCBAQAogICovCiAKICNpbXBvcnQgImNv
bmZpZy5oIgotI2ltcG9ydCAiVGVzdFdLV2ViVmlld01hYy5oIgorI2ltcG9ydCAiVGVzdFdLV2Vi
Vmlldy5oIgogCi0jaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKQorI2lmIFdLX0FQ
SV9FTkFCTEVECiAKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQg
IlV0aWxpdGllcy5oIgogCi0jaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+Ci0jaW1wb3J0IDxDYXJi
b24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0UHJpdmF0ZS5oPgogI2ltcG9ydCA8
b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBQTEFURk9S
TShNQUMpCisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CisjaW1wb3J0IDxDYXJib24vQ2FyYm9u
Lmg+CiAjaW1wb3J0IDx3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaD4K
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2lu
Zy5oPgorU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKK1NPRlRfTElOS19DTEFTUyhVSUtpdCwg
VUlXaW5kb3cpCisjZW5kaWYKIAogQGltcGxlbWVudGF0aW9uIFRlc3RNZXNzYWdlSGFuZGxlciB7
CiAgICAgTlNNdXRhYmxlRGljdGlvbmFyeTxOU1N0cmluZyAqLCBkaXNwYXRjaF9ibG9ja190PiAq
X21lc3NhZ2VIYW5kbGVyczsKQEAgLTU5LDEzICs2OCwxOCBAQAogCiBAZW5kCiAKKyNpZiBQTEFU
Rk9STShNQUMpCiBAaW50ZXJmYWNlIFRlc3RXS1dlYlZpZXdIb3N0V2luZG93IDogTlNXaW5kb3cK
KyNlbHNlCitAaW50ZXJmYWNlIFRlc3RXS1dlYlZpZXdIb3N0V2luZG93IDogVUlXaW5kb3cKKyNl
bmRpZiAvLyBQTEFURk9STShNQUMpCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJW
aWV3SG9zdFdpbmRvdyB7CiAgICAgQk9PTCBfZm9yY2VLZXlXaW5kb3c7CiB9CiAKKyNpZiBQTEFU
Rk9STShNQUMpCiBzdGF0aWMgaW50IGdFdmVudE51bWJlciA9IDE7CiAKICNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMwpAQCAtMTA2LDYgKzEyMCw3IEBAIE5TRXZl
bnRNYXNrIF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayhpZCBzZWxm
LCBTRUwgX2NtZCkKICAgICB9CiAjZW5kaWYKIH0KKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAK
IC0gKEJPT0wpaXNLZXlXaW5kb3cKIHsKQEAgLTExOCw3ICsxMzMsMTEgQEAgTlNFdmVudE1hc2sg
X19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVudHNNYXNrKGlkIHNlbGYsIFNFTCBf
Y21kKQogICAgICAgICByZXR1cm47CiAKICAgICBfZm9yY2VLZXlXaW5kb3cgPSBZRVM7CisjaWYg
UExBVEZPUk0oTUFDKQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
cG9zdE5vdGlmaWNhdGlvbk5hbWU6TlNXaW5kb3dEaWRCZWNvbWVLZXlOb3RpZmljYXRpb24gb2Jq
ZWN0OnNlbGZdOworI2Vsc2UKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOlVJV2luZG93RGlkQmVjb21lS2V5Tm90aWZpY2F0aW9u
IG9iamVjdDpzZWxmXTsKKyNlbmRpZgogfQogCiAtICh2b2lkKXJlc2lnbktleVdpbmRvdwpAQCAt
MTUwLDE2ICsxNjksMTcgQEAgTlNFdmVudE1hc2sgX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29j
aWF0ZWRFdmVudHNNYXNrKGlkIHNlbGYsIFNFTCBfY21kKQogCiAtICh2b2lkKV9zZXRVcFRlc3RX
aW5kb3c6KE5TUmVjdClmcmFtZQogeworI2lmIFBMQVRGT1JNKE1BQykKICAgICBfaG9zdFdpbmRv
dyA9IFtbVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6
ZnJhbWUgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVybGVzcyBiYWNraW5nOk5TQmFj
a2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFtfaG9zdFdpbmRvdyBzZXRGcmFtZU9y
aWdpbjpOU01ha2VQb2ludCgwLCAwKV07Ci0gICAgW1tfaG9zdFdpbmRvdyBjb250ZW50Vmlld10g
YWRkU3VidmlldzpzZWxmXTsKICAgICBbX2hvc3RXaW5kb3cgc2V0SXNWaXNpYmxlOllFU107Cisg
ICAgW1tfaG9zdFdpbmRvdyBjb250ZW50Vmlld10gYWRkU3VidmlldzpzZWxmXTsKICAgICBbX2hv
c3RXaW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VsZl07Ci19Ci0KLS0gKHZvaWQpbW91c2VE
b3duQXRQb2ludDooTlNQb2ludClwb2ludCBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRl
UHJlc3N1cmUKLXsKLSAgICBbX2hvc3RXaW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6cG9pbnQgc2lt
dWxhdGVQcmVzc3VyZTpzaW11bGF0ZVByZXNzdXJlXTsKKyNlbHNlCisgICAgX2hvc3RXaW5kb3cg
PSBbW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IGFsbG9jXSBpbml0V2l0aEZyYW1lOmZyYW1lXTsK
KyAgICBfaG9zdFdpbmRvdy5oaWRkZW4gPSBOTzsKKyAgICBbX2hvc3RXaW5kb3cgYWRkU3Vidmll
dzpzZWxmXTsKKyNlbmRpZgogfQogCiAtICh2b2lkKXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uCkBA
IC0xODQsMTQgKzIwNCw2IEBAIE5TRXZlbnRNYXNrIF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3Nv
Y2lhdGVkRXZlbnRzTWFzayhpZCBzZWxmLCBTRUwgX2NtZCkKICAgICBbc2VsZiBfdGVzdF93YWl0
Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CiB9CiAKLS0gKHZvaWQpdHlwZUNoYXJhY3RlcjooY2hh
ciljaGFyYWN0ZXIgewotICAgIE5TU3RyaW5nICpjaGFyYWN0ZXJBc1N0cmluZyA9IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiJWMiICwgY2hhcmFjdGVyXTsKLSAgICBOU0V2ZW50VHlwZSBr
ZXlEb3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlEb3duOwotICAgIE5TRXZlbnRUeXBlIGtl
eVVwRXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlVcDsKLSAgICBbc2VsZiBrZXlEb3duOltOU0V2
ZW50IGtleUV2ZW50V2l0aFR5cGU6a2V5RG93bkV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dO
dW1iZXI6X2hvc3RXaW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hh
cmFjdGVyQXNTdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlckFzU3Ry
aW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmNoYXJhY3Rlcl1dOwotICAgIFtzZWxmIGtleVVwOltO
U0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6a2V5VXBFdmVudFR5cGUgbG9jYXRpb246TlNaZXJvUG9p
bnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93
TnVtYmVyOl9ob3N0V2luZG93LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNo
YXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0
cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKLX0KLQogLSAoTlNTdHJpbmcg
KilzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdAogewogICAg
IF9fYmxvY2sgYm9vbCBpc1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gZmFsc2U7CkBAIC0yMzEsNCAr
MjQzLDIxIEBAIE5TRXZlbnRNYXNrIF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZl
bnRzTWFzayhpZCBzZWxmLCBTRUwgX2NtZCkKIAogQGVuZAogCi0jZW5kaWYgLyogV0tfQVBJX0VO
QUJMRUQgJiYgUExBVEZPUk0oTUFDKSAqLworI2lmIFBMQVRGT1JNKE1BQykKK0BpbXBsZW1lbnRh
dGlvbiBUZXN0V0tXZWJWaWV3IChNYWNPbmx5KQorLSAodm9pZCltb3VzZURvd25BdFBvaW50OihO
U1BvaW50KXBvaW50IHNpbXVsYXRlUHJlc3N1cmU6KEJPT0wpc2ltdWxhdGVQcmVzc3VyZQorewor
ICAgIFtfaG9zdFdpbmRvdyBfbW91c2VEb3duQXRQb2ludDpwb2ludCBzaW11bGF0ZVByZXNzdXJl
OnNpbXVsYXRlUHJlc3N1cmVdOworfQorCistICh2b2lkKXR5cGVDaGFyYWN0ZXI6KGNoYXIpY2hh
cmFjdGVyIHsKKyAgICBOU1N0cmluZyAqY2hhcmFjdGVyQXNTdHJpbmcgPSBbTlNTdHJpbmcgc3Ry
aW5nV2l0aEZvcm1hdDpAIiVjIiAsIGNoYXJhY3Rlcl07CisgICAgTlNFdmVudFR5cGUga2V5RG93
bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5RG93bjsKKyAgICBOU0V2ZW50VHlwZSBrZXlVcEV2
ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5VXA7CisgICAgW3NlbGYga2V5RG93bjpbTlNFdmVudCBr
ZXlFdmVudFdpdGhUeXBlOmtleURvd25FdmVudFR5cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9k
aWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVy
Ol9ob3N0V2luZG93LndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3Rl
ckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBp
c0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKKyAgICBbc2VsZiBrZXlVcDpbTlNFdmVu
dCBrZXlFdmVudFdpdGhUeXBlOmtleVVwRXZlbnRUeXBlIGxvY2F0aW9uOk5TWmVyb1BvaW50IG1v
ZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJl
cjpfaG9zdFdpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0
ZXJBc1N0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVyQXNTdHJpbmcg
aXNBUmVwZWF0Ok5PIGtleUNvZGU6Y2hhcmFjdGVyXV07Cit9CitAZW5kCisjZW5kaWYKKworI2Vu
ZGlmIC8vIFdLX0FQSV9FTkFCTEVECg==
</data>

          </attachment>
      

    </bug>

</bugzilla>