<?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>115740</bug_id>
          
          <creation_ts>2013-05-07 10:53:24 -0700</creation_ts>
          <short_desc>[Mac] Inband text tracks are not in text track menu on Lion</short_desc>
          <delta_ts>2013-05-08 09:06:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>885826</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-05-07 10:53:24 -0700</bug_when>
    <thetext>Inband text tracks are not listed in the track menu on OS X Lion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886068</commentid>
    <comment_count>1</comment_count>
      <attachid>201004</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-05-07 17:42:43 -0700</bug_when>
    <thetext>Created attachment 201004
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886069</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-07 17:44:00 -0700</bug_when>
    <thetext>Attachment 201004 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/platform/mac-lion/media/video-controls-captions-trackmenu-localized-expected.txt&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Platform.h&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/html/HTMLMediaElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLMediaElement.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm&apos;]&quot; exit_code: 1
Source/WebCore/ChangeLog:13:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:19:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:20:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:34:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:44:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:47:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:49:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:53:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 8 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886073</commentid>
    <comment_count>3</comment_count>
      <attachid>201006</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-05-07 18:06:20 -0700</bug_when>
    <thetext>Created attachment 201006
Out damned tabs!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886165</commentid>
    <comment_count>4</comment_count>
      <attachid>201006</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-05-07 23:22:24 -0700</bug_when>
    <thetext>Comment on attachment 201006
Out damned tabs!

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:88
&gt;  {
&gt;      if (!m_playerItemTrack)
&gt;          return false;
&gt; -    
&gt; -    return [[[m_playerItemTrack assetTrack] mediaType] isEqualToString:AVMediaTypeClosedCaption];
&gt; +
&gt; +    return true;
&gt;  }

Seems like this can now be &quot;return m_playerItemTrack&quot;

&gt; Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:98
&gt;  bool InbandTextTrackPrivateLegacyAVFObjC::isMainProgramContent() const
&gt;  {
&gt; -    if (!m_playerItemTrack)
&gt; -        return false;
&gt; -    
&gt; -    return [[m_playerItemTrack assetTrack] hasMediaCharacteristic:AVMediaCharacteristicIsMainProgramContent];
&gt; +    return m_playerItemTrack;
&gt;  }

Which is the same as this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886367</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-05-08 09:06:45 -0700</bug_when>
    <thetext>Committed r149741  - https://trac.webkit.org/r149741</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201004</attachid>
            <date>2013-05-07 17:42:43 -0700</date>
            <delta_ts>2013-05-07 18:06:20 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_7.txt</filename>
            <type>text/plain</type>
            <size>35563</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNDk3MDEpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTA1LTA3ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEluYmFuZCB0ZXh0IHRyYWNrcyBh
cmUgbm90IGluIHRleHQgdHJhY2sgbWVudSBvbiBMaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTU3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOiBBVkZPVU5EQVRJT05f
VEVYVF9UUkFDS19TVVBQT1JUIC0+IEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVAK
KwogMjAxMy0wNS0wNyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBBbHdheXNJbmxpbmUuaCBmcm9tIFdURgpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShy
ZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNv
cHkpCkBAIC05NTYsNyArOTU2LDcgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAK
LSNkZWZpbmUgSEFWRV9BVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUIDEKKyNkZWZpbmUg
SEFWRV9BVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQIDEKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwOTAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0OTcwMSkKKysrIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisy
MDEzLTA1LTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIEluYmFuZCB0ZXh0IHRyYWNrcyBhcmUgbm90IGluIHRyYWNrIG1lbnUgb24gTGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1NzQw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhU
TUxNZWRpYUVsZW1lbnQpOiBSZW1vdmUgbV9sZWdhY3lXZWJLaXRDbG9zZWRDYXB0aW9uc1Zpc2li
bGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRDbG9zZWRDYXB0aW9u
c1Zpc2libGUpOiBTZXQgbV9jbG9zZWRDYXB0aW9uc1Zpc2libGUKKyAgICAgICAgCXRvIGZhbHNl
IGltbWVkaWF0ZWx5LCBpdCB3aWxsIGJlIHJlc2V0IHRvIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZSBp
ZiBuZWNlc3NhcnkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRXZWJr
aXRDbG9zZWRDYXB0aW9uc1Zpc2libGUpOiBSZW1vdmUgbV9sZWdhY3lXZWJLaXRDbG9zZWRDYXB0
aW9uc1Zpc2libGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3ZWJraXRD
bG9zZWRDYXB0aW9uc1Zpc2libGUpOiBSZW1vdmUgbV9sZWdhY3lXZWJLaXRDbG9zZWRDYXB0aW9u
c1Zpc2libGUuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Ri5jcHA6IFJlbW92ZSAKKyAgICAgICAgCUhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQ
UE9SVCkgcmVxdWlyZW1lbnQuIEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQgLT4KKyAg
ICAgICAgCUFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVAKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOiBE
aXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwOiAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
OnNlZWspOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6c2Vla0NvbXBsZXRlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpkaXNwYXRjaE5vdGlmaWNhdGlvbik6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp0cmFja01v
ZGVDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOiAgRGl0dG8uCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlTGVnYWN5QVZGT2JqQy5oOiAgRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQzo6
a2luZCk6IERvbid0IGxvb2sgYXQgbWVkaWEgY2hhcmFjdGVyaXN0aWNzLCAKKyAgICAgICAgCWEg
bGVnYWN5IENDIHRyYWNrIGlzIGFsd2F5cyBDYXB0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6Oklu
YmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDOjppc0Nsb3NlZENhcHRpb25zKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2Jq
Qzo6Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQzo6aXNNYWluUHJvZ3JhbUNvbnRl
bnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdh
Y3lBVkZPYmpDOjppc0Vhc3lUb1JlYWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFu
ZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDOjpsYWJlbCk6IFVzZSBkaWZmZXJlbnQgQVZG
b3VuZGF0aW9uIEFQSSBvbiAxMC43LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
KTogQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCAtPgorICAgICAgICAJQVZGT1VOREFU
SU9OX01FRElBX1NFTEVDVElPTl9HUk9VUC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNhbmNlbExvYWQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldENsb3NlZENhcHRp
b25zVmlzaWJsZSk6IERvIG5vdGhpbmcuIEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQg
LT4KKyAgICAgICAgCUFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVAuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp0cmFja3NDaGFu
Z2VkKTogU3VwcG9ydCBsZWdhY3kgQ0MgdHJhY2tzCisgICAgICAgIAlvbmx5IG9uIDEwLjguIEFW
Rk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQgLT4gQVZGT1VOREFUSU9OX01FRElBX1NFTEVD
VElPTl9HUk9VUAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6cHJvY2Vzc0xlZ2FjeUNsb3NlZENhcHRpb25zVHJhY2tzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRDdXJy
ZW50VHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjayk6IEFWRk9VTkRBVElP
Tl9URVhUX1RSQUNLX1NVUFBPUlQgLT4gCisgICAgICAgIAlBVkZPVU5EQVRJT05fTUVESUFfU0VM
RUNUSU9OX0dST1VQCisKIDIwMTMtMDUtMDcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBCZWdpbiB1bnJhdmVsaW5nIHRoZSBtZXNzIHRoYXQgaXMgUXVv
dGVzRGF0YQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsNyArMjk0LDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6
SFRNTE1lZGlhRWxlbWVudChjb25zdAogICAgICwgbV9zZW5kUHJvZ3Jlc3NFdmVudHModHJ1ZSkK
ICAgICAsIG1faXNGdWxsc2NyZWVuKGZhbHNlKQogICAgICwgbV9jbG9zZWRDYXB0aW9uc1Zpc2li
bGUoZmFsc2UpCi0gICAgLCBtX2xlZ2FjeVdlYktpdENsb3NlZENhcHRpb25zVmlzaWJsZShmYWxz
ZSkKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICAsIG1fbmVlZFdpZGdl
dFVwZGF0ZShmYWxzZSkKICNlbmRpZgpAQCAtNDQ0NSw2ICs0NDQ0LDggQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpzZXRDbG9zZWRDYXB0aW9ucwogewogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRp
YUVsZW1lbnQ6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZSglcykiLCBib29sU3RyaW5nKGNsb3Nl
ZENhcHRpb25WaXNpYmxlKSk7CiAKKyAgICBtX2Nsb3NlZENhcHRpb25zVmlzaWJsZSA9IGZhbHNl
OworCiAgICAgaWYgKCFtX3BsYXllciB8fCAhaGFzQ2xvc2VkQ2FwdGlvbnMoKSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC00NDY0LDE0ICs0NDY1LDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
c2V0Q2xvc2VkQ2FwdGlvbnMKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRXZWJraXRDbG9z
ZWRDYXB0aW9uc1Zpc2libGUoYm9vbCB2aXNpYmxlKQogewotICAgIG1fbGVnYWN5V2ViS2l0Q2xv
c2VkQ2FwdGlvbnNWaXNpYmxlID0gdmlzaWJsZTsKICAgICBzZXRDbG9zZWRDYXB0aW9uc1Zpc2li
bGUodmlzaWJsZSk7Ci0gICAgbV9sZWdhY3lXZWJLaXRDbG9zZWRDYXB0aW9uc1Zpc2libGUgPSBt
X2Nsb3NlZENhcHRpb25zVmlzaWJsZTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojp3ZWJr
aXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoKSBjb25zdAogewotICAgIHJldHVybiBtX2xlZ2FjeVdl
YktpdENsb3NlZENhcHRpb25zVmlzaWJsZTsKKyAgICByZXR1cm4gbV9jbG9zZWRDYXB0aW9uc1Zp
c2libGU7CiB9CiAKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJ
KHJldmlzaW9uIDE0OTU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MDksNyArNzA5LDYgQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgbV9pc0Z1bGxzY3JlZW4gOiAxOwogICAgIGJvb2wgbV9jbG9zZWRDYXB0aW9uc1Zpc2libGUg
OiAxOwotICAgIGJvb2wgbV9sZWdhY3lXZWJLaXRDbG9zZWRDYXB0aW9uc1Zpc2libGUgOiAxOwog
CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAgICAgYm9vbCBtX25lZWRXaWRn
ZXRVcGRhdGUgOiAxOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcAkocmV2aXNpb24gMTQ5NTk1KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIK
IAotI2lmIEVOQUJMRShWSURFTykgJiYgKChVU0UoQVZGT1VOREFUSU9OKSAmJiBIQVZFKEFWRk9V
TkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpKSB8fCBQTEFURk9STShJT1MpKQorI2lmIEVOQUJM
RShWSURFTykgJiYgKFVTRShBVkZPVU5EQVRJT04pIHx8IFBMQVRGT1JNKElPUykpCiAKICNpbmNs
dWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmgiCiAKQEAgLTQ0Nyw0ICs0NDcsNCBAQCB2
b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnNldE1vZGUoCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgKChVU0UoQVZGT1VOREFUSU9O
KSAmJiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpKSB8fCBQTEFURk9STShJ
T1MpKQorI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgKFVTRShBVkZPVU5EQVRJT04pIHx8IFBM
QVRGT1JNKElPUykpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZGLmgJKHJldmlzaW9uIDE0OTU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRl9oCiAjZGVmaW5lIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZfaAogCi0jaWYgRU5BQkxF
KFZJREVPKSAmJiAoKFVTRShBVkZPVU5EQVRJT04pICYmIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRf
VFJBQ0tfU1VQUE9SVCkpIHx8IFBMQVRGT1JNKElPUykpCisjaWYgRU5BQkxFKFZJREVPKSAmJiAo
VVNFKEFWRk9VTkRBVElPTikgfHwgUExBVEZPUk0oSU9TKSkKIAogI2luY2x1ZGUgIkluYmFuZFRl
eHRUcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50
LmgiCkBAIC05MCw2ICs5MCw2IEBAIHByb3RlY3RlZDoKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jZW5kaWYgLy8gIEVOQUJMRShWSURFTykgJiYgKChVU0UoQVZGT1VOREFUSU9OKSAmJiBI
QVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpKSB8fCBQTEFURk9STShJT1MpKQor
I2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgKFVTRShBVkZPVU5EQVRJT04pIHx8IFBMQVRGT1JN
KElPUykpCiAKICNlbmRpZiAvLyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGX2gKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
Y3BwCShyZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzUsOSArNzUsNyBAQCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
Ok1lZGlhUGxhCiAgICAgLCBtX2lnbm9yZUxvYWRTdGF0ZUNoYW5nZXMoZmFsc2UpCiAgICAgLCBt
X2hhdmVSZXBvcnRlZEZpcnN0VmlkZW9GcmFtZShmYWxzZSkKICAgICAsIG1fcGxheVdoZW5GcmFt
ZXNBdmFpbGFibGUoZmFsc2UpCi0jaWYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQ
T1JUKQogICAgICwgbV9pbmJhbmRUcmFja0NvbmZpZ3VyYXRpb25QZW5kaW5nKGZhbHNlKQotI2Vu
ZGlmCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oJXApIiwgdGhpcyk7CiB9CkBAIC0yNjcsMTAg
KzI2NSw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZWUKICAgICBp
ZiAoY3VycmVudFRpbWUoKSA9PSB0aW1lKQogICAgICAgICByZXR1cm47CiAKLSNpZiBIQVZFKEFW
Rk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCiAgICAgaWYgKGN1cnJlbnRUcmFjaygpKQog
ICAgICAgICBjdXJyZW50VHJhY2soKS0+YmVnaW5TZWVraW5nKCk7Ci0jZW5kaWYKICAgICAKICAg
ICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNlZWsoJXApIC0g
c2Vla2luZyB0byAlZiIsIHRoaXMsIHRpbWUpOwogICAgIG1fc2Vla1RvID0gdGltZTsKQEAgLTU5
NCwxMCArNTkwLDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNlZQog
ICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vla0NvbXBs
ZXRlZCglcCkgLSBmaW5pc2hlZCA9ICVkIiwgdGhpcywgZmluaXNoZWQpOwogICAgIFVOVVNFRF9Q
QVJBTShmaW5pc2hlZCk7CiAKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBP
UlQpCiAgICAgaWYgKGN1cnJlbnRUcmFjaygpKQogICAgICAgICBjdXJyZW50VHJhY2soKS0+ZW5k
U2Vla2luZygpOwotI2VuZGlmCiAKICAgICBtX3NlZWtUbyA9IE1lZGlhUGxheWVyOjppbnZhbGlk
VGltZSgpOwogICAgIHVwZGF0ZVN0YXRlcygpOwpAQCAtODI4LDEwICs4MjIsOCBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6ZGlzCiAgICAgICAgIGNvbnRlbnRzTmVlZHNE
aXNwbGF5KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTm90aWZpY2F0aW9uOjpJbmJhbmRU
cmFja3NOZWVkQ29uZmlndXJhdGlvbjoKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNL
X1NVUFBPUlQpCiAgICAgICAgIG1faW5iYW5kVHJhY2tDb25maWd1cmF0aW9uUGVuZGluZyA9IGZh
bHNlOwogICAgICAgICBjb25maWd1cmVJbmJhbmRUcmFja3MoKTsKLSNlbmRpZgogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgTm90aWZpY2F0aW9uOjpOb25lOgpAQCAtODQwLDcgKzgzMiw2IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpkaXMKICAgICB9CiB9CiAKLSNp
ZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbjo6Y29uZmlndXJlSW5iYW5kVHJhY2tzKCkKIHsKICAgICBSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRj4gdHJhY2tUb0VuYWJsZTsKQEAgLTg2Nyw3ICs4
NTgsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6dHJhCiAgICAgbV9p
bmJhbmRUcmFja0NvbmZpZ3VyYXRpb25QZW5kaW5nID0gdHJ1ZTsKICAgICBzY2hlZHVsZU1haW5U
aHJlYWROb3RpZmljYXRpb24oTm90aWZpY2F0aW9uOjpJbmJhbmRUcmFja3NOZWVkQ29uZmlndXJh
dGlvbik7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCShy
ZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQwLDkgKzQwLDcgQEAgY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRjsKIGNsYXNz
IEdlbmVyaWNDdWVEYXRhOwogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24g
OiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCi0jaWYgSEFWRShBVkZPVU5EQVRJ
T05fVEVYVF9UUkFDS19TVVBQT1JUKQogICAgICwgcHVibGljIEFWRkluYmFuZFRyYWNrUGFyZW50
Ci0jZW5kaWYKIHsKIHB1YmxpYzoKIApAQCAtNTYsMTEgKzU0LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZWVrQ29tcGxldGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbmQo
KTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNOZWVkc0Rpc3BsYXkoKSB7IH0KLSNpZiBIQVZF
KEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCiAgICAgdmlydHVhbCB2b2lkIGNvbmZp
Z3VyZUluYmFuZFRyYWNrcygpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VHJhY2soSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRiopIHsgfQogICAgIHZpcnR1YWwgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRiogY3VycmVudFRyYWNrKCkgY29uc3QgPSAwOwotI2VuZGlmCiAKICAgICBjbGFz
cyBOb3RpZmljYXRpb24gewogICAgIHB1YmxpYzoKQEAgLTI2NiwxMCArMjYyLDggQEAgcHJvdGVj
dGVkOgogCiAgICAgdmlydHVhbCBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCB7IHJl
dHVybiAiQVZGb3VuZGF0aW9uIjsgfQogCi0jaWYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFD
S19TVVBQT1JUKQogICAgIHZpcnR1YWwgdm9pZCB0cmFja01vZGVDaGFuZ2VkKCkgT1ZFUlJJREU7
CiAgICAgVmVjdG9yPFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGPiA+IG1fdGV4dFRy
YWNrczsKLSNlbmRpZgogICAgIAogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXI7
CkBAIC0zMDYsOSArMzAwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faWdub3JlTG9hZFN0YXRl
Q2hhbmdlczsKICAgICBib29sIG1faGF2ZVJlcG9ydGVkRmlyc3RWaWRlb0ZyYW1lOwogICAgIGJv
b2wgbV9wbGF5V2hlbkZyYW1lc0F2YWlsYWJsZTsKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhU
X1RSQUNLX1NVUFBPUlQpCiAgICAgYm9vbCBtX2luYmFuZFRyYWNrQ29uZmlndXJhdGlvblBlbmRp
bmc7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkZPYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMu
aAkocmV2aXNpb24gMTQ5NTk1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
QVZGT2JqQ19oCiAjZGVmaW5lIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDX2gKIAotI2lm
IEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikgJiYgSEFWRShBVkZPVU5EQVRJT05f
VEVYVF9UUkFDS19TVVBQT1JUKQorI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElP
TikgJiYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogCiAjaW5jbHVk
ZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRU
cmFja1ByaXZhdGVBVkZPYmpDLm1tCShyZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGT2JqQy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1wb3J0
ICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikgJiYg
SEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKQorI2lmIEVOQUJMRShWSURFTykg
JiYgVVNFKEFWRk9VTkRBVElPTikgJiYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9O
X0dST1VQKQogCiAjaW1wb3J0ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5oIgogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9J
bmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRU
cmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLmgJKHJldmlzaW9uIDE0OTU5NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVMZWdhY3lBVkZPYmpDLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAK
ICNpZm5kZWYgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakNfaAogI2RlZmluZSBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQ19oCiAKLSNpZiBFTkFCTEUoVklERU8p
ICYmIFVTRShBVkZPVU5EQVRJT04pICYmIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQ
UE9SVCkgJiYgIUhBVkUoQVZGT1VOREFUSU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQpCisjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKSAmJiAhSEFWRShBVkZPVU5EQVRJT05f
TEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkgJiYgIVBMQVRGT1JNKElPUykKIAogI2luY2x1ZGUgIklu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBA
IC02OCw1ICs2OCw2IEBAIHByb3RlY3RlZDoKIAogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFC
TEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pICYmICFIQVZFKEFWRk9VTkRBVElPTl9MRUdJ
QkxFX09VVFBVVF9TVVBQT1JUKSAmJiAhUExBVEZPUk0oSU9TKQorCiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRl
eHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1By
aXZhdGVMZWdhY3lBVkZPYmpDLm1tCShyZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlTGVnYWN5QVZGT2JqQy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogCiAj
aW1wb3J0ICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElP
TikgJiYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKSAmJiAhSEFWRShBVkZP
VU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkKKyNpZiBFTkFCTEUoVklERU8pICYmIFVT
RShBVkZPVU5EQVRJT04pICYmICFIQVZFKEFWRk9VTkRBVElPTl9MRUdJQkxFX09VVFBVVF9TVVBQ
T1JUKSAmJiAhUExBVEZPUk0oSU9TKQogCiAjaW1wb3J0ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRl
TGVnYWN5QVZGT2JqQy5oIgogCkBAIC00MywyOCArNDMsMTYgQEAgU09GVF9MSU5LX0ZSQU1FV09S
S19PUFRJT05BTChBVkZvdW5kYXRpbwogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZQ
bGF5ZXJJdGVtKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZNZXRhZGF0YUl0ZW0p
CiAjZGVmaW5lIEFWTWVkaWFUeXBlQ2xvc2VkQ2FwdGlvbiBnZXRBVk1lZGlhVHlwZUNsb3NlZENh
cHRpb24oKQotI2RlZmluZSBBVk1lZGlhQ2hhcmFjdGVyaXN0aWNDb250YWluc09ubHlGb3JjZWRT
dWJ0aXRsZXMgZ2V0QVZNZWRpYUNoYXJhY3RlcmlzdGljQ29udGFpbnNPbmx5Rm9yY2VkU3VidGl0
bGVzKCkKLSNkZWZpbmUgQVZNZWRpYUNoYXJhY3RlcmlzdGljSXNNYWluUHJvZ3JhbUNvbnRlbnQg
Z2V0QVZNZWRpYUNoYXJhY3RlcmlzdGljSXNNYWluUHJvZ3JhbUNvbnRlbnQoKQotI2RlZmluZSBB
Vk1lZGlhQ2hhcmFjdGVyaXN0aWNFYXN5VG9SZWFkIGdldEFWTWVkaWFDaGFyYWN0ZXJpc3RpY0Vh
c3lUb1JlYWQoKQogCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBl
Q2xvc2VkQ2FwdGlvbiwgTlNTdHJpbmcgKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlv
biwgQVZNZWRpYUNoYXJhY3RlcmlzdGljTGVnaWJsZSwgTlNTdHJpbmcgKikKIFNPRlRfTElOS19Q
T0lOVEVSKEFWRm91bmRhdGlvbiwgQVZNZXRhZGF0YUNvbW1vbktleVRpdGxlLCBOU1N0cmluZyAq
KQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVk1ldGFkYXRhS2V5U3BhY2VDb21t
b24sIE5TU3RyaW5nICopCi1TT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFU
eXBlU3VidGl0bGUsIE5TU3RyaW5nICopCi1TT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24s
IEFWTWVkaWFDaGFyYWN0ZXJpc3RpY1RyYW5zY3JpYmVzU3Bva2VuRGlhbG9nRm9yQWNjZXNzaWJp
bGl0eSwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZNZWRp
YUNoYXJhY3RlcmlzdGljRGVzY3JpYmVzTXVzaWNBbmRTb3VuZEZvckFjY2Vzc2liaWxpdHksIE5T
U3RyaW5nICopCi1TT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFDaGFyYWN0
ZXJpc3RpY0NvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcywgTlNTdHJpbmcgKikKLVNPRlRfTElO
S19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZNZWRpYUNoYXJhY3RlcmlzdGljSXNNYWluUHJvZ3Jh
bUNvbnRlbnQsIE5TU3RyaW5nICopCi1TT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFW
TWVkaWFDaGFyYWN0ZXJpc3RpY0Vhc3lUb1JlYWQsIE5TU3RyaW5nICopCiAKICNkZWZpbmUgQVZN
ZXRhZGF0YUl0ZW0gZ2V0QVZNZXRhZGF0YUl0ZW1DbGFzcygpCiAjZGVmaW5lIEFWTWVkaWFDaGFy
YWN0ZXJpc3RpY0xlZ2libGUgZ2V0QVZNZWRpYUNoYXJhY3RlcmlzdGljTGVnaWJsZSgpCiAjZGVm
aW5lIEFWTWV0YWRhdGFDb21tb25LZXlUaXRsZSBnZXRBVk1ldGFkYXRhQ29tbW9uS2V5VGl0bGUo
KQogI2RlZmluZSBBVk1ldGFkYXRhS2V5U3BhY2VDb21tb24gZ2V0QVZNZXRhZGF0YUtleVNwYWNl
Q29tbW9uKCkKLSNkZWZpbmUgQVZNZWRpYVR5cGVTdWJ0aXRsZSBnZXRBVk1lZGlhVHlwZVN1YnRp
dGxlKCkKLSNkZWZpbmUgQVZNZWRpYUNoYXJhY3RlcmlzdGljVHJhbnNjcmliZXNTcG9rZW5EaWFs
b2dGb3JBY2Nlc3NpYmlsaXR5IGdldEFWTWVkaWFDaGFyYWN0ZXJpc3RpY1RyYW5zY3JpYmVzU3Bv
a2VuRGlhbG9nRm9yQWNjZXNzaWJpbGl0eSgpCi0jZGVmaW5lIEFWTWVkaWFDaGFyYWN0ZXJpc3Rp
Y0Rlc2NyaWJlc011c2ljQW5kU291bmRGb3JBY2Nlc3NpYmlsaXR5IGdldEFWTWVkaWFDaGFyYWN0
ZXJpc3RpY0Rlc2NyaWJlc011c2ljQW5kU291bmRGb3JBY2Nlc3NpYmlsaXR5KCkKIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtODgsMjYgKzc2LDYg
QEAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6S2luZCBJbmJhbmRUZXh0VAogICAgIGlmICghbV9w
bGF5ZXJJdGVtVHJhY2spCiAgICAgICAgIHJldHVybiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpO
b25lOwogCi0gICAgQVZBc3NldFRyYWNrICphc3NldFRyYWNrID0gW21fcGxheWVySXRlbVRyYWNr
IGFzc2V0VHJhY2tdOwotICAgIE5TU3RyaW5nICptZWRpYVR5cGUgPSBbYXNzZXRUcmFjayBtZWRp
YVR5cGVdOwotICAgIAotICAgIGlmIChbbWVkaWFUeXBlIGlzRXF1YWxUb1N0cmluZzpBVk1lZGlh
VHlwZUNsb3NlZENhcHRpb25dKQotICAgICAgICByZXR1cm4gSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZTo6Q2FwdGlvbnM7Ci0gICAgaWYgKFttZWRpYVR5cGUgaXNFcXVhbFRvU3RyaW5nOkFWTWVkaWFU
eXBlU3VidGl0bGVdKSB7Ci0KLSAgICAgICAgaWYgKFthc3NldFRyYWNrIGhhc01lZGlhQ2hhcmFj
dGVyaXN0aWM6QVZNZWRpYUNoYXJhY3RlcmlzdGljQ29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVz
XSkKLSAgICAgICAgICAgIHJldHVybiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpGb3JjZWQ7Ci0K
LSAgICAgICAgLy8gQW4gIlNESCIgdHJhY2sgaXMgYSBzdWJ0aXRsZSB0cmFjayBjcmVhdGVkIGZv
ciB0aGUgZGVhZiBvciBoYXJkLW9mLWhlYXJpbmcuICJjYXB0aW9ucyIgaW4gV2ViVlRUIGFyZQot
ICAgICAgICAvLyAibGFiZWxlZCBhcyBhcHByb3ByaWF0ZSBmb3IgdGhlIGhhcmQtb2YtaGVhcmlu
ZyIsIHNvIHRhZyBTREggc3V0aXRsZXMgYXMgImNhcHRpb25zIi4KLSAgICAgICAgaWYgKFthc3Nl
dFRyYWNrIGhhc01lZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJhY3RlcmlzdGljVHJhbnNj
cmliZXNTcG9rZW5EaWFsb2dGb3JBY2Nlc3NpYmlsaXR5XSkKLSAgICAgICAgICAgIHJldHVybiBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlOjpDYXB0aW9uczsKLSAgICAgICAgaWYgKFthc3NldFRyYWNr
IGhhc01lZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJhY3RlcmlzdGljRGVzY3JpYmVzTXVz
aWNBbmRTb3VuZEZvckFjY2Vzc2liaWxpdHldKQotICAgICAgICAgICAgcmV0dXJuIEluYmFuZFRl
eHRUcmFja1ByaXZhdGU6OkNhcHRpb25zOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIEluYmFu
ZFRleHRUcmFja1ByaXZhdGU6OlN1YnRpdGxlczsKLSAgICB9Ci0KICAgICByZXR1cm4gSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZTo6Q2FwdGlvbnM7CiB9CiAKQEAgLTExNSwzMiArODMsMjMgQEAgYm9v
bCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQwogewogICAgIGlmICghbV9wbGF5
ZXJJdGVtVHJhY2spCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICByZXR1cm4gW1tb
bV9wbGF5ZXJJdGVtVHJhY2sgYXNzZXRUcmFja10gbWVkaWFUeXBlXSBpc0VxdWFsVG9TdHJpbmc6
QVZNZWRpYVR5cGVDbG9zZWRDYXB0aW9uXTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiBib29s
IEluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDOjpjb250YWluc09ubHlGb3JjZWRT
dWJ0aXRsZXMoKSBjb25zdAogewotICAgIGlmICghbV9wbGF5ZXJJdGVtVHJhY2spCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAKLSAgICByZXR1cm4gW1ttX3BsYXllckl0ZW1UcmFjayBhc3Nl
dFRyYWNrXSBoYXNNZWRpYUNoYXJhY3RlcmlzdGljOkFWTWVkaWFDaGFyYWN0ZXJpc3RpY0NvbnRh
aW5zT25seUZvcmNlZFN1YnRpdGxlc107CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIElu
YmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDOjppc01haW5Qcm9ncmFtQ29udGVudCgp
IGNvbnN0CiB7Ci0gICAgaWYgKCFtX3BsYXllckl0ZW1UcmFjaykKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIAotICAgIHJldHVybiBbW21fcGxheWVySXRlbVRyYWNrIGFzc2V0VHJhY2tdIGhh
c01lZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJhY3RlcmlzdGljSXNNYWluUHJvZ3JhbUNv
bnRlbnRdOworICAgIHJldHVybiBtX3BsYXllckl0ZW1UcmFjazsKIH0KIAogYm9vbCBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQzo6aXNFYXN5VG9SZWFkKCkgY29uc3QKIHsKLSAg
ICBpZiAoIW1fcGxheWVySXRlbVRyYWNrKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBy
ZXR1cm4gW1ttX3BsYXllckl0ZW1UcmFjayBhc3NldFRyYWNrXSBoYXNNZWRpYUNoYXJhY3Rlcmlz
dGljOkFWTWVkaWFDaGFyYWN0ZXJpc3RpY0Vhc3lUb1JlYWRdOworICAgIHJldHVybiBmYWxzZTsK
IH0KIAogQXRvbWljU3RyaW5nIEluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDOjps
YWJlbCgpIGNvbnN0CkBAIC0xNTIsOCArMTExLDEyIEBAIEF0b21pY1N0cmluZyBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlTGVnYWMKIAogICAgIE5TQXJyYXkgKnRpdGxlcyA9IFtBVk1ldGFkYXRhSXRl
bSBtZXRhZGF0YUl0ZW1zRnJvbUFycmF5OltbbV9wbGF5ZXJJdGVtVHJhY2sgYXNzZXRUcmFja10g
Y29tbW9uTWV0YWRhdGFdIHdpdGhLZXk6QVZNZXRhZGF0YUNvbW1vbktleVRpdGxlIGtleVNwYWNl
OkFWTWV0YWRhdGFLZXlTcGFjZUNvbW1vbl07CiAgICAgaWYgKFt0aXRsZXMgY291bnRdKSB7Cisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCiAgICAgICAgIC8vIElm
IHBvc3NpYmxlLCByZXR1cm4gYSB0aXRsZSBpbiBvbmUgb2YgdGhlIHVzZXIncyBwcmVmZXJyZWQg
bGFuZ3VhZ2VzLgogICAgICAgICBOU0FycmF5ICp0aXRsZXNGb3JQcmVmZXJyZWRMYW5ndWFnZXMg
PSBbQVZNZXRhZGF0YUl0ZW0gbWV0YWRhdGFJdGVtc0Zyb21BcnJheTp0aXRsZXMgZmlsdGVyZWRB
bmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExhbmd1YWdlczpbTlNMb2NhbGUgcHJlZmVycmVk
TGFuZ3VhZ2VzXV07CisjZWxzZQorICAgICAgICAgTlNBcnJheSAqdGl0bGVzRm9yUHJlZmVycmVk
TGFuZ3VhZ2VzID0gW0FWTWV0YWRhdGFJdGVtIG1ldGFkYXRhSXRlbXNGcm9tQXJyYXk6dGl0bGVz
IHdpdGhMb2NhbGU6W05TTG9jYWxlIGN1cnJlbnRMb2NhbGVdXTsKKyNlbmRpZgogICAgICAgICBp
ZiAoW3RpdGxlc0ZvclByZWZlcnJlZExhbmd1YWdlcyBjb3VudF0pCiAgICAgICAgICAgICB0aXRs
ZSA9IFtbdGl0bGVzRm9yUHJlZmVycmVkTGFuZ3VhZ2VzIG9iamVjdEF0SW5kZXg6MF0gc3RyaW5n
VmFsdWVdOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCShyZXZpc2lvbiAxNDk1OTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcg
KzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXNzZXQoaWQpOwogICAgIHZpcnR1YWwgdm9p
ZCB0cmFja3NDaGFuZ2VkKCk7CiAKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NV
UFBPUlQpCisjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogICAg
IFJldGFpblB0cjxBVlBsYXllckl0ZW0+IHBsYXllckl0ZW0oKSBjb25zdCB7IHJldHVybiBtX2F2
UGxheWVySXRlbTsgfQogICAgIHZvaWQgcHJvY2Vzc0N1ZShOU0FycmF5ICosIGRvdWJsZSk7CiAj
ZW5kaWYKQEAgLTE2NywyMCArMTY3LDIwIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmlu
ZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdCBPVkVSUklERTsKIAotI2lmIEhB
VkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkKKyNpZiBIQVZFKEFWRk9VTkRBVElP
Tl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCisgICAgdm9pZCBwcm9jZXNzTWVkaWFTZWxlY3Rpb25P
cHRpb25zKCk7CisgICAgQVZNZWRpYVNlbGVjdGlvbkdyb3VwKiBzYWZlTWVkaWFTZWxlY3Rpb25H
cm91cEZvckxlZ2libGVNZWRpYSgpOworI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vy
cmVudFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYqKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYqIGN1cnJlbnRUcmFjaygpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIG1fY3VycmVudFRyYWNrOyB9Ci0gICAgdm9pZCBwcm9jZXNzTWVkaWFTZWxl
Y3Rpb25PcHRpb25zKCk7CiAgICAgdm9pZCBwcm9jZXNzTmV3QW5kUmVtb3ZlZFRleHRUcmFja3Mo
Y29uc3QgVmVjdG9yPFJlZlB0cjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGPiA+Jik7CiAgICAg
dm9pZCBjbGVhclRleHRUcmFja3MoKTsKLSAgICBBVk1lZGlhU2VsZWN0aW9uR3JvdXAqIHNhZmVN
ZWRpYVNlbGVjdGlvbkdyb3VwRm9yTGVnaWJsZU1lZGlhKCk7CiAKICNpZiAhSEFWRShBVkZPVU5E
QVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkKICAgICB2b2lkIHByb2Nlc3NMZWdhY3lDbG9z
ZWRDYXB0aW9uc1RyYWNrcygpOwogI2VuZGlmCiAKLSNlbmRpZgotCiAgICAgUmV0YWluUHRyPEFW
VVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7
CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4gbV9hdlBsYXllckl0ZW07CkBAIC0yMDgsMTMg
KzIwOCwxMSBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5nLCBSZXRhaW5QdHI8QVZBc3Nl
dFJlc291cmNlTG9hZGluZ1JlcXVlc3Q+ID4gbV9zZXNzaW9uSURUb1JlcXVlc3RNYXA7CiAjZW5k
aWYKIAotI2lmIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkgJiYgSEFWRShB
VkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkKKyNpZiBIQVZFKEFWRk9VTkRBVElP
Tl9NRURJQV9TRUxFQ1RJT05fR1JPVVApICYmIEhBVkUoQVZGT1VOREFUSU9OX0xFR0lCTEVfT1VU
UFVUX1NVUFBPUlQpCiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbUxlZ2libGVPdXRwdXQ+IG1f
bGVnaWJsZU91dHB1dDsKICNlbmRpZgogICAgIAotI2lmIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRf
VFJBQ0tfU1VQUE9SVCkKICAgICBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGKiBtX2N1cnJlbnRU
cmFjazsKLSNlbmRpZgogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCShyZXZp
c2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTYsNyArMTE2LDcgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVNZWRpYSwg
a0NNVGltZVplcgogI2RlZmluZSBBVkFzc2V0SW1hZ2VHZW5lcmF0b3JBcGVydHVyZU1vZGVDbGVh
bkFwZXJ0dXJlIGdldEFWQXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJlTW9kZUNsZWFuQXBlcnR1
cmUoKQogI2RlZmluZSBBVlVSTEFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rpb25zS2V5IGdldEFWVVJM
QXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbnNLZXkoKQogCi0jaWYgSEFWRShBVkZPVU5EQVRJT05f
VEVYVF9UUkFDS19TVVBQT1JUKQorI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElP
Tl9HUk9VUCkKIHR5cGVkZWYgQVZNZWRpYVNlbGVjdGlvbkdyb3VwIEFWTWVkaWFTZWxlY3Rpb25H
cm91cFR5cGU7CiB0eXBlZGVmIEFWTWVkaWFTZWxlY3Rpb25PcHRpb24gQVZNZWRpYVNlbGVjdGlv
bk9wdGlvblR5cGU7CiAKQEAgLTE0OCw3ICsxNDgsNyBAQCBlbnVtIE1lZGlhUGxheWVyQVZGb3Vu
ZGF0aW9uT2JzZXJ2YXRpb25DCiAgICAgTWVkaWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNlcnZhdGlv
bkNvbnRleHRQbGF5ZXIKIH07CiAKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NV
UFBPUlQpICYmIEhBVkUoQVZGT1VOREFUSU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQpCisjaWYg
SEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKSAmJiBIQVZFKEFWRk9VTkRB
VElPTl9MRUdJQkxFX09VVFBVVF9TVVBQT1JUKQogQGludGVyZmFjZSBXZWJDb3JlQVZGTW92aWVP
YnNlcnZlciA6IE5TT2JqZWN0IDxBVlBsYXllckl0ZW1MZWdpYmxlT3V0cHV0UHVzaERlbGVnYXRl
PgogI2Vsc2UKIEBpbnRlcmZhY2UgV2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXIgOiBOU09iamVjdApA
QCAtMTY0LDcgKzE2NCw3IEBAIC0odm9pZCltZXRhZGF0YUxvYWRlZDsKIC0odm9pZClzZWVrQ29t
cGxldGVkOihCT09MKWZpbmlzaGVkOwogLSh2b2lkKWRpZEVuZDooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb247CiAtKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRoIG9mT2Jq
ZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDooTWVk
aWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNlcnZhdGlvbkNvbnRleHQpY29udGV4dDsKLSNpZiBIQVZF
KEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCisjaWYgSEFWRShBVkZPVU5EQVRJT05f
TUVESUFfU0VMRUNUSU9OX0dST1VQKQogLSAodm9pZClsZWdpYmxlT3V0cHV0OihpZClvdXRwdXQg
ZGlkT3V0cHV0QXR0cmlidXRlZFN0cmluZ3M6KE5TQXJyYXkgKilzdHJpbmdzIG5hdGl2ZVNhbXBs
ZUJ1ZmZlcnM6KE5TQXJyYXkgKiluYXRpdmVTYW1wbGVzIGZvckl0ZW1UaW1lOihDTVRpbWUpaXRl
bVRpbWU7CiAjZW5kaWYKIEBlbmQKQEAgLTIzNSw5ICsyMzUsNyBAQCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDkwCiAgICAgLCBtX2xvYWRlckRlbGVnYXRlKGFkb3B0TlMoW1tXZWJDb3JlQVZG
TG9hZGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6dGhpc10pKQogI2VuZGlmCi0j
aWYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKQogICAgICwgbV9jdXJyZW50
VHJhY2soMCkKLSNlbmRpZgogewogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCiAgICAg
cGxheWVyVG9Qcml2YXRlTWFwKCkuc2V0KHBsYXllciwgdGhpcyk7CkBAIC0yNzEsMTEgKzI2OSw5
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzoKICAgICAgICAgbV9h
dkFzc2V0ID0gbmlsOwogICAgIH0KIAotI2lmIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tf
U1VQUE9SVCkKICAgICBjbGVhclRleHRUcmFja3MoKTsKLSNlbmRpZgogCi0jaWYgSEFWRShBVkZP
VU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKSAmJiBIQVZFKEFWRk9VTkRBVElPTl9MRUdJQkxF
X09VVFBVVF9TVVBQT1JUKQorI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9H
Uk9VUCkgJiYgSEFWRShBVkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkKICAgICBp
ZiAobV9sZWdpYmxlT3V0cHV0KSB7CiAgICAgICAgIGlmIChtX2F2UGxheWVySXRlbSkKICAgICAg
ICAgICAgIFttX2F2UGxheWVySXRlbS5nZXQoKSByZW1vdmVPdXRwdXQ6bV9sZWdpYmxlT3V0cHV0
LmdldCgpXTsKQEAgLTQ0Niw3ICs0NDIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6CiAgICAgbV9hdlBsYXllciA9IGFkb3B0TlMoW1tBVlBsYXllciBhbGxvY10g
aW5pdF0pOwogICAgIFttX2F2UGxheWVyLmdldCgpIGFkZE9ic2VydmVyOm1fb2JqY09ic2VydmVy
LmdldCgpIGZvcktleVBhdGg6QCJyYXRlIiBvcHRpb25zOm5pbCBjb250ZXh0Oih2b2lkICopTWVk
aWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNlcnZhdGlvbkNvbnRleHRQbGF5ZXJdOwogCi0jaWYgSEFW
RShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKSAmJiBIQVZFKEFWRk9VTkRBVElPTl9M
RUdJQkxFX09VVFBVVF9TVVBQT1JUKQorI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVD
VElPTl9HUk9VUCkgJiYgSEFWRShBVkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkK
ICAgICBbbV9hdlBsYXllci5nZXQoKSBzZXRBcHBsaWVzTWVkaWFTZWxlY3Rpb25Dcml0ZXJpYUF1
dG9tYXRpY2FsbHk6WUVTXTsKICNlbmRpZgogCkBAIC00NzYsNyArNDcyLDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOgogICAgIGlmIChtX2F2UGxheWVyKQogICAg
ICAgICBbbV9hdlBsYXllci5nZXQoKSByZXBsYWNlQ3VycmVudEl0ZW1XaXRoUGxheWVySXRlbTpt
X2F2UGxheWVySXRlbS5nZXQoKV07CiAKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNL
X1NVUFBPUlQpICYmIEhBVkUoQVZGT1VOREFUSU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQpCisj
aWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKSAmJiBIQVZFKEFWRk9V
TkRBVElPTl9MRUdJQkxFX09VVFBVVF9TVVBQT1JUKQogICAgIGNvbnN0IE5TVGltZUludGVydmFs
IGxlZ2libGVPdXRwdXRBZHZhbmNlSW50ZXJ2YWwgPSAyOwogCiAgICAgbV9sZWdpYmxlT3V0cHV0
ID0gYWRvcHROUyhbW0FWUGxheWVySXRlbUxlZ2libGVPdXRwdXQgYWxsb2NdIGluaXRXaXRoTWVk
aWFTdWJ0eXBlc0Zvck5hdGl2ZVJlcHJlc2VudGF0aW9uOltOU0FycmF5IGFycmF5XV0pOwpAQCAt
NjQyLDExICs2MzgsMTAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OgogICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYg
SEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKQorI2lmIEhBVkUoQVZGT1VOREFU
SU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICAgICBVTlVTRURfUEFSQU0oY2xvc2VkQ2FwdGlv
bnNWaXNpYmxlKTsKICNlbHNlCiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKCVwKSAtIHNldHRpbmcgdG8g
JXMiLCB0aGlzLCBib29sU3RyaW5nKGNsb3NlZENhcHRpb25zVmlzaWJsZSkpOwotICAgIFttX2F2
UGxheWVyLmdldCgpIHNldENsb3NlZENhcHRpb25EaXNwbGF5RW5hYmxlZDpjbG9zZWRDYXB0aW9u
c1Zpc2libGVdOwogI2VuZGlmCiB9CiAKQEAgLTc2OSw2ICs3NjQsNyBAQCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb246OkFzc2V0U3RhCiAKICAgICBmb3IgKE5TU3RyaW5nICprZXlOYW1l
IGluIGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpKSB7CiAgICAgICAgIEFWS2V5VmFsdWVTdGF0dXMg
a2V5U3RhdHVzID0gW21fYXZBc3NldC5nZXQoKSBzdGF0dXNPZlZhbHVlRm9yS2V5OmtleU5hbWUg
ZXJyb3I6bmlsXTsKKwogICAgICAgICBpZiAoa2V5U3RhdHVzIDwgQVZLZXlWYWx1ZVN0YXR1c0xv
YWRlZCkKICAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNMb2FkaW5n
Oy8vIEF0IGxlYXN0IG9uZSBrZXkgaXMgbm90IGxvYWRlZCB5ZXQuCiAgICAgICAgIApAQCAtOTkz
LDcgKzk4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzoKICAg
ICAgICAgLy8gcHJpb3IgdG8gYmVjb21pbmcgcmVhZHkgdG8gcGxheS4KICAgICAgICAgc2V0SGFz
VmlkZW8oW1ttX2F2QXNzZXQuZ2V0KCkgdHJhY2tzV2l0aE1lZGlhQ2hhcmFjdGVyaXN0aWM6QVZN
ZWRpYUNoYXJhY3RlcmlzdGljVmlzdWFsXSBjb3VudF0pOwogICAgICAgICBzZXRIYXNBdWRpbyhb
W21fYXZBc3NldC5nZXQoKSB0cmFja3NXaXRoTWVkaWFDaGFyYWN0ZXJpc3RpYzpBVk1lZGlhQ2hh
cmFjdGVyaXN0aWNBdWRpYmxlXSBjb3VudF0pOwotI2lmICFIQVZFKEFWRk9VTkRBVElPTl9URVhU
X1RSQUNLX1NVUFBPUlQpCisjaWYgIUhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9H
Uk9VUCkKICAgICAgICAgaGFzQ2FwdGlvbnMgPSBbW21fYXZBc3NldC5nZXQoKSB0cmFja3NXaXRo
TWVkaWFUeXBlOkFWTWVkaWFUeXBlQ2xvc2VkQ2FwdGlvbl0gY291bnRdOwogI2VuZGlmCiAgICAg
fSBlbHNlIHsKQEAgLTEwMDgsNyArMTAwNCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzoKICAgICAgICAgICAgICAgICBlbHNlIGlmIChbW2Fzc2V0VHJhY2sgbWVk
aWFUeXBlXSBpc0VxdWFsVG9TdHJpbmc6QVZNZWRpYVR5cGVBdWRpb10pCiAgICAgICAgICAgICAg
ICAgICAgIGhhc0F1ZGlvID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChbW2Fzc2V0
VHJhY2sgbWVkaWFUeXBlXSBpc0VxdWFsVG9TdHJpbmc6QVZNZWRpYVR5cGVDbG9zZWRDYXB0aW9u
XSkgewotI2lmICFIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCisjaWYgIUhB
VkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICAgICAgICAgICAgICAgICAg
ICAgaGFzQ2FwdGlvbnMgPSB0cnVlOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgIGhhdmVD
Q1RyYWNrID0gdHJ1ZTsKQEAgLTEwMTksMTggKzEwMTUsMjAgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOgogICAgICAgICBzZXRIYXNBdWRpbyhoYXNBdWRpbyk7CiAg
ICAgfQogCi0jaWYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKQorI2lmIEhB
VkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICAgICBpZiAoQVZNZWRpYVNl
bGVjdGlvbkdyb3VwVHlwZSAqbGVnaWJsZUdyb3VwID0gc2FmZU1lZGlhU2VsZWN0aW9uR3JvdXBG
b3JMZWdpYmxlTWVkaWEoKSkgewogICAgICAgICBoYXNDYXB0aW9ucyA9IFtbQVZNZWRpYVNlbGVj
dGlvbkdyb3VwIHBsYXlhYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zRnJvbUFycmF5OltsZWdpYmxl
R3JvdXAgb3B0aW9uc11dIGNvdW50XTsKICAgICAgICAgaWYgKGhhc0NhcHRpb25zKQogICAgICAg
ICAgICAgcHJvY2Vzc01lZGlhU2VsZWN0aW9uT3B0aW9ucygpOwogICAgIH0KKyNlbmRpZgogCi0j
aWYgIUhBVkUoQVZGT1VOREFUSU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQpCisjaWYgIUhBVkUo
QVZGT1VOREFUSU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQpICYmIEhBVkUoQVZGT1VOREFUSU9O
X01FRElBX1NFTEVDVElPTl9HUk9VUCkKICAgICBpZiAoIWhhc0NhcHRpb25zICYmIGhhdmVDQ1Ry
YWNrKQogICAgICAgICBwcm9jZXNzTGVnYWN5Q2xvc2VkQ2FwdGlvbnNUcmFja3MoKTsKLSNlbmRp
ZgotICAgIAorI2VsaWYgIUhBVkUoQVZGT1VOREFUSU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQp
CisgICAgaWYgKGhhdmVDQ1RyYWNrKQorICAgICAgICBwcm9jZXNzTGVnYWN5Q2xvc2VkQ2FwdGlv
bnNUcmFja3MoKTsKICNlbmRpZgogCiAgICAgc2V0SGFzQ2xvc2VkQ2FwdGlvbnMoaGFzQ2FwdGlv
bnMpOwpAQCAtMTMzMCw3ICsxMzI4LDYgQEAgUmV0YWluUHRyPEFWQXNzZXRSZXNvdXJjZUxvYWRp
bmdSZXF1ZXN0PgogfQogI2VuZGlmCiAKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNL
X1NVUFBPUlQpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2xl
YXJUZXh0VHJhY2tzKCkKIHsKQEAgLTEzNDIsMjEgKzEzMzksMTIgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOgogICAgIG1fdGV4dFRyYWNrcy5jbGVhcigpOwogfQog
Ci1BVk1lZGlhU2VsZWN0aW9uR3JvdXBUeXBlKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVNZWRpYSgpCi17Ci0gICAg
aWYgKCFtX2F2QXNzZXQpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBpZiAoW21fYXZBc3Nl
dC5nZXQoKSBzdGF0dXNPZlZhbHVlRm9yS2V5OkAiYXZhaWxhYmxlTWVkaWFDaGFyYWN0ZXJpc3Rp
Y3NXaXRoTWVkaWFTZWxlY3Rpb25PcHRpb25zIiBlcnJvcjpOVUxMXSAhPSBBVktleVZhbHVlU3Rh
dHVzTG9hZGVkKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgcmV0dXJuIFttX2F2QXNzZXQu
Z2V0KCkgbWVkaWFTZWxlY3Rpb25Hcm91cEZvck1lZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNo
YXJhY3RlcmlzdGljTGVnaWJsZV07Ci19Ci0KICNpZiAhSEFWRShBVkZPVU5EQVRJT05fTEVHSUJM
RV9PVVRQVVRfU1VQUE9SVCkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6cHJvY2Vzc0xlZ2FjeUNsb3NlZENhcHRpb25zVHJhY2tzKCkKIHsKKyNpZiBIQVZFKEFWRk9V
TkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAgICAgW21fYXZQbGF5ZXJJdGVtLmdldCgp
IHNlbGVjdE1lZGlhT3B0aW9uOm5pbCBpbk1lZGlhU2VsZWN0aW9uR3JvdXA6c2FmZU1lZGlhU2Vs
ZWN0aW9uR3JvdXBGb3JMZWdpYmxlTWVkaWEoKV07CisjZW5kaWYKIAogICAgIFZlY3RvcjxSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRj4gPiByZW1vdmVkVGV4dFRyYWNrcyA9IG1fdGV4
dFRyYWNrczsKICAgICBOU0FycmF5ICp0cmFja3MgPSBbbV9hdlBsYXllckl0ZW0uZ2V0KCkgdHJh
Y2tzXTsKQEAgLTE0MTUsNiArMTQwMywxOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6CiAgICAgCiB9CiAKKyNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxF
Q1RJT05fR1JPVVApCitBVk1lZGlhU2VsZWN0aW9uR3JvdXBUeXBlKiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVNZWRp
YSgpCit7CisgICAgaWYgKCFtX2F2QXNzZXQpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisg
ICAgaWYgKFttX2F2QXNzZXQuZ2V0KCkgc3RhdHVzT2ZWYWx1ZUZvcktleTpAImF2YWlsYWJsZU1l
ZGlhQ2hhcmFjdGVyaXN0aWNzV2l0aE1lZGlhU2VsZWN0aW9uT3B0aW9ucyIgZXJyb3I6TlVMTF0g
IT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAg
ICByZXR1cm4gW21fYXZBc3NldC5nZXQoKSBtZWRpYVNlbGVjdGlvbkdyb3VwRm9yTWVkaWFDaGFy
YWN0ZXJpc3RpYzpBVk1lZGlhQ2hhcmFjdGVyaXN0aWNMZWdpYmxlXTsKK30KKwogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwcm9jZXNzTWVkaWFTZWxlY3Rpb25PcHRp
b25zKCkKIHsKICAgICBBVk1lZGlhU2VsZWN0aW9uR3JvdXBUeXBlICpsZWdpYmxlR3JvdXAgPSBz
YWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVNZWRpYSgpOwpAQCAtMTQ1OSw2ICsxNDU5
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOgogCiAgICAgbV9j
dXJyZW50VHJhY2stPnByb2Nlc3NDdWUocmVpbnRlcnByZXRfY2FzdDxDRkFycmF5UmVmPihhdHRy
aWJ1dGVkU3RyaW5ncyksIHRpbWUpOwogfQorI2VuZGlmIC8vIEhBVkUoQVZGT1VOREFUSU9OX01F
RElBX1NFTEVDVElPTl9HUk9VUCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpzZXRDdXJyZW50VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRiAqdHJhY2sp
CiB7CkBAIC0xNDcyLDE3ICsxNDczLDE5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzoKICAgICBpZiAodHJhY2spIHsKICAgICAgICAgaWYgKHRyYWNrLT5pc0xlZ2Fj
eUNsb3NlZENhcHRpb25zVHJhY2soKSkKICAgICAgICAgICAgIFttX2F2UGxheWVyLmdldCgpIHNl
dENsb3NlZENhcHRpb25EaXNwbGF5RW5hYmxlZDpZRVNdOworI2lmIEhBVkUoQVZGT1VOREFUSU9O
X01FRElBX1NFTEVDVElPTl9HUk9VUCkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgW21fYXZQ
bGF5ZXJJdGVtLmdldCgpIHNlbGVjdE1lZGlhT3B0aW9uOnN0YXRpY19jYXN0PEluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkZPYmpDKj4odHJhY2spLT5tZWRpYVNlbGVjdGlvbk9wdGlvbigpIGluTWVk
aWFTZWxlY3Rpb25Hcm91cDpzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVNZWRpYSgp
XTsKKyNlbmRpZgogICAgIH0gZWxzZSB7CisjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VM
RUNUSU9OX0dST1VQKQogICAgICAgICBbbV9hdlBsYXllckl0ZW0uZ2V0KCkgc2VsZWN0TWVkaWFP
cHRpb246MCBpbk1lZGlhU2VsZWN0aW9uR3JvdXA6c2FmZU1lZGlhU2VsZWN0aW9uR3JvdXBGb3JM
ZWdpYmxlTWVkaWEoKV07CisjZW5kaWYKICAgICAgICAgW21fYXZQbGF5ZXIuZ2V0KCkgc2V0Q2xv
c2VkQ2FwdGlvbkRpc3BsYXlFbmFibGVkOk5PXTsKICAgICB9CiAKIH0KIAotI2VuZGlmIC8vIEhB
VkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkKLQogU3RyaW5nIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2xhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjay5pc051bGwoKSkK
QEAgLTE0OTEsNyArMTQ5NCw3IEBAIFN0cmluZyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmoKICAgICBpZiAoIW1fYXZQbGF5ZXJJdGVtLmdldCgpKQogICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKIAotI2lmIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkK
KyNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAgICAgLy8gSWYg
QVZGb3VuZGF0aW9uIGhhcyBhbiBhdWRpYmxlIGdyb3VwLCByZXR1cm4gdGhlIGxhbmd1YWdlIG9m
IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgYXVkaWJsZSBvcHRpb24uCiAgICAgQVZNZWRpYVNlbGVj
dGlvbkdyb3VwVHlwZSAqYXVkaWJsZUdyb3VwID0gW21fYXZBc3NldC5nZXQoKSBtZWRpYVNlbGVj
dGlvbkdyb3VwRm9yTWVkaWFDaGFyYWN0ZXJpc3RpYzpBVk1lZGlhQ2hhcmFjdGVyaXN0aWNBdWRp
YmxlXTsKICAgICBBVk1lZGlhU2VsZWN0aW9uT3B0aW9uVHlwZSAqY3VycmVudGx5U2VsZWN0ZWRB
dWRpYmxlT3B0aW9uID0gW21fYXZQbGF5ZXJJdGVtLmdldCgpIHNlbGVjdGVkTWVkaWFPcHRpb25J
bk1lZGlhU2VsZWN0aW9uR3JvdXA6YXVkaWJsZUdyb3VwXTsKQEAgLTE1MDEsNyArMTUwNCw3IEBA
IFN0cmluZyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmoKIAogICAgICAgICByZXR1
cm4gbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2s7CiAgICAgfQotI2VuZGlmIC8vIEhBVkUo
QVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkKKyNlbmRpZiAvLyBIQVZFKEFWRk9VTkRB
VElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAKICAgICAvLyBBVkZvdW5kYXRpb24gc3ludGhl
c2l6ZXMgYW4gYXVkaWJsZSBncm91cCB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIHVuZ3JvdXBlZCBh
dWRpbyB0cmFjayBpZiB0aGVyZSBpcyBhbHNvIGEgbGVnaWJsZSBncm91cCAob25lIG9yCiAgICAg
Ly8gbW9yZSBpbi1iYW5kIHRleHQgdHJhY2tzKS4gSXQgZG9lc24ndCBrbm93IGFib3V0IG91dC1v
Zi1iYW5kIHRyYWNrcywgc28gaWYgdGhlcmUgaXMgYSBzaW5nbGUgYXVkaW8gdHJhY2sgcmV0dXJu
IGl0cyBsYW5ndWFnZS4KQEAgLTE2NTYsNyArMTY1OSw3IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVl
Rm9yS2V5UGF0aDprZXlQYXRoIG8KICAgICB9CiB9CiAKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9U
RVhUX1RSQUNLX1NVUFBPUlQpCisjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9O
X0dST1VQKQogLSAodm9pZClsZWdpYmxlT3V0cHV0OihpZClvdXRwdXQgZGlkT3V0cHV0QXR0cmli
dXRlZFN0cmluZ3M6KE5TQXJyYXkgKilzdHJpbmdzIG5hdGl2ZVNhbXBsZUJ1ZmZlcnM6KE5TQXJy
YXkgKiluYXRpdmVTYW1wbGVzIGZvckl0ZW1UaW1lOihDTVRpbWUpaXRlbVRpbWUKIHsKICAgICBV
TlVTRURfUEFSQU0ob3V0cHV0KTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0OTcwMSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTA1
LTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtN
YWNdIEluYmFuZCB0ZXh0IHRyYWNrcyBhcmUgbm90IGluIHRleHQgdHJhY2sgbWVudSBvbiBMaW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTU3NDAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRm
b3JtL21hYy1saW9uL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1sb2Nh
bGl6ZWQtZXhwZWN0ZWQudHh0OgorCiAyMDEzLTA1LTA3ICBIYW5zIE11bGxlciAgPGhtdWxsZXJA
YWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgRXhjbHVzaW9uc10gc2hhcGUtaW5zaWRlLCBzaGFw
ZS1wYWRkaW5nLCBwb2x5Z29uIHRlc3QgZmFpbGluZyB3aGVuIHN1YnBpeGVsIGxheW91dCBpcyBk
aXNhYmxlZApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24vbWVkaWEvdmlkZW8t
Y29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LWxvY2FsaXplZC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24vbWVkaWEvdmlkZW8tY29udHJv
bHMtY2FwdGlvbnMtdHJhY2ttZW51LWxvY2FsaXplZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE0
OTU5NSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL21lZGlhL3ZpZGVvLWNvbnRy
b2xzLWNhcHRpb25zLXRyYWNrbWVudS1sb2NhbGl6ZWQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xNCwxMiArMTQsMTIgQEAgU2Vjb25kIGl0ZW0gaW4gY2FwdGlvbnMgbWVudSBzaG91
bGQgYmUgbAogRVhQRUNURUQgKGl0ZW0udGV4dENvbnRlbnQgPT0gJ0F1dG9tYXRpYyAoRW5nbGlz
aCknKSBPSwogCiBUaGlyZCBpdGVtIGluIGNhcHRpb25zIG1lbnUgc2hvdWxkIGJlIGxhYmVsbGVk
ICdFbmdsaXNoIENDJwotRVhQRUNURUQgKGl0ZW0udGV4dENvbnRlbnQgPT0gJ0VuZ2xpc2ggQ0Mn
KSwgT0JTRVJWRUQgJ0xhdWdoIFRyYWNrIChFbmdsaXNoLVVuaXRlZCBTdGF0ZXMpJyBGQUlMCitF
WFBFQ1RFRCAoaXRlbS50ZXh0Q29udGVudCA9PSAnRW5nbGlzaCBDQycpIE9LCiAKIEZvdXJ0aCBp
dGVtIGluIGNhcHRpb25zIG1lbnUgc2hvdWxkIGJlIGxhYmVsbGVkICdMYXVnaCBUcmFjayAoRW5n
bGlzaC1Vbml0ZWQgU3RhdGVzKScKLUVYUEVDVEVEIChpdGVtLnRleHRDb250ZW50ID09ICdMYXVn
aCBUcmFjayAoRW5nbGlzaC1Vbml0ZWQgU3RhdGVzKScpLCBPQlNFUlZFRCAnVW5rbm93biBTREgn
IEZBSUwKK0VYUEVDVEVEIChpdGVtLnRleHRDb250ZW50ID09ICdMYXVnaCBUcmFjayAoRW5nbGlz
aC1Vbml0ZWQgU3RhdGVzKScpIE9LCiAKIEZpZnRoIGl0ZW0gaW4gY2FwdGlvbnMgbWVudSBzaG91
bGQgYmUgbGFiZWxsZWQgJ1Vua25vd24gU0RIJwotVHlwZUVycm9yOiAndW5kZWZpbmVkJyBpcyBu
b3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdpdGVtLnRleHRDb250ZW50JykKK0VYUEVDVEVEIChp
dGVtLnRleHRDb250ZW50ID09ICdVbmtub3duIFNESCcpIE9LCiBFTkQgT0YgVEVTVAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201006</attachid>
            <date>2013-05-07 18:06:20 -0700</date>
            <delta_ts>2013-05-08 09:06:55 -0700</delta_ts>
            <desc>Out damned tabs!</desc>
            <filename>patch_8.txt</filename>
            <type>text/plain</type>
            <size>35587</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNDk3MDEpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTA1LTA3ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEluYmFuZCB0ZXh0IHRyYWNrcyBh
cmUgbm90IGluIHRleHQgdHJhY2sgbWVudSBvbiBMaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTU3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOiBBVkZPVU5EQVRJT05f
VEVYVF9UUkFDS19TVVBQT1JUIC0+IEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVAK
KwogMjAxMy0wNS0wNyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBBbHdheXNJbmxpbmUuaCBmcm9tIFdURgpJbmRleDogU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShy
ZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNv
cHkpCkBAIC05NTYsNyArOTU2LDcgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwODAK
LSNkZWZpbmUgSEFWRV9BVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUIDEKKyNkZWZpbmUg
SEFWRV9BVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQIDEKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwOTAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0OTcwMSkKKysrIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisy
MDEzLTA1LTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFtNYWNdIEluYmFuZCB0ZXh0IHRyYWNrcyBhcmUgbm90IGluIHRyYWNrIG1lbnUgb24gTGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1NzQw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhU
TUxNZWRpYUVsZW1lbnQpOiBSZW1vdmUgbV9sZWdhY3lXZWJLaXRDbG9zZWRDYXB0aW9uc1Zpc2li
bGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRDbG9zZWRDYXB0aW9u
c1Zpc2libGUpOiBTZXQgbV9jbG9zZWRDYXB0aW9uc1Zpc2libGUKKyAgICAgICAgICAgIHRvIGZh
bHNlIGltbWVkaWF0ZWx5LCBpdCB3aWxsIGJlIHJlc2V0IHRvIHRoZSBhcHByb3ByaWF0ZSB2YWx1
ZSBpZiBuZWNlc3NhcnkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRX
ZWJraXRDbG9zZWRDYXB0aW9uc1Zpc2libGUpOiBSZW1vdmUgbV9sZWdhY3lXZWJLaXRDbG9zZWRD
YXB0aW9uc1Zpc2libGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3ZWJr
aXRDbG9zZWRDYXB0aW9uc1Zpc2libGUpOiBSZW1vdmUgbV9sZWdhY3lXZWJLaXRDbG9zZWRDYXB0
aW9uc1Zpc2libGUuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRi5jcHA6IFJlbW92ZSAKKyAgICAgICAgICAgIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJB
Q0tfU1VQUE9SVCkgcmVxdWlyZW1lbnQuIEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQg
LT4KKyAgICAgICAgICAgIEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVAKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRi5oOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwOiAKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246OnNlZWspOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6c2Vla0NvbXBsZXRlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpkaXNwYXRjaE5vdGlmaWNhdGlvbik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Ojp0cmFja01vZGVDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOiAgRGl0dG8uCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQy5oOiAgRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFW
Rk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5
QVZGT2JqQzo6a2luZCk6IERvbid0IGxvb2sgYXQgbWVkaWEgY2hhcmFjdGVyaXN0aWNzLCAKKyAg
ICAgICAgICAgIGEgbGVnYWN5IENDIHRyYWNrIGlzIGFsd2F5cyBDYXB0aW9ucy4KKyAgICAgICAg
KFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDOjppc0Nsb3NlZENh
cHRpb25zKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRl
TGVnYWN5QVZGT2JqQzo6Y29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQzo6aXNNYWlu
UHJvZ3JhbUNvbnRlbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkluYmFuZFRleHRUcmFj
a1ByaXZhdGVMZWdhY3lBVkZPYmpDOjppc0Vhc3lUb1JlYWQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDOjpsYWJlbCk6IFVzZSBk
aWZmZXJlbnQgQVZGb3VuZGF0aW9uIEFQSSBvbiAxMC43LgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaDoKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDKTogQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCAtPgorICAgICAg
ICAgICAgQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNhbmNlbExvYWQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnNldENsb3NlZENhcHRpb25zVmlzaWJsZSk6IERvIG5vdGhpbmcuIEFWRk9VTkRBVElPTl9URVhU
X1RSQUNLX1NVUFBPUlQgLT4KKyAgICAgICAgICAgIEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJ
T05fR1JPVVAuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjp0cmFja3NDaGFuZ2VkKTogU3VwcG9ydCBsZWdhY3kgQ0MgdHJhY2tzCisgICAgICAg
ICAgICBvbmx5IG9uIDEwLjguIEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQgLT4gQVZG
T1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cHJvY2Vzc0xlZ2FjeUNsb3NlZENhcHRpb25z
VHJhY2tzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpzZXRDdXJyZW50VHJhY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVk
aW9UcmFjayk6IEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQgLT4gCisgICAgICAgICAg
ICBBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQCisKIDIwMTMtMDUtMDcgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBCZWdpbiB1bnJhdmVs
aW5nIHRoZSBtZXNzIHRoYXQgaXMgUXVvdGVzRGF0YQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsNyArMjk0
LDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdAogICAgICwgbV9z
ZW5kUHJvZ3Jlc3NFdmVudHModHJ1ZSkKICAgICAsIG1faXNGdWxsc2NyZWVuKGZhbHNlKQogICAg
ICwgbV9jbG9zZWRDYXB0aW9uc1Zpc2libGUoZmFsc2UpCi0gICAgLCBtX2xlZ2FjeVdlYktpdENs
b3NlZENhcHRpb25zVmlzaWJsZShmYWxzZSkKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9W
SURFTykKICAgICAsIG1fbmVlZFdpZGdldFVwZGF0ZShmYWxzZSkKICNlbmRpZgpAQCAtNDQ0NSw2
ICs0NDQ0LDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRDbG9zZWRDYXB0aW9ucwogewog
ICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6OnNldENsb3NlZENhcHRpb25zVmlzaWJs
ZSglcykiLCBib29sU3RyaW5nKGNsb3NlZENhcHRpb25WaXNpYmxlKSk7CiAKKyAgICBtX2Nsb3Nl
ZENhcHRpb25zVmlzaWJsZSA9IGZhbHNlOworCiAgICAgaWYgKCFtX3BsYXllciB8fCAhaGFzQ2xv
c2VkQ2FwdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC00NDY0LDE0ICs0NDY1LDEyIEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0Q2xvc2VkQ2FwdGlvbnMKIAogdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpzZXRXZWJraXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCB2aXNpYmxlKQog
ewotICAgIG1fbGVnYWN5V2ViS2l0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlID0gdmlzaWJsZTsKICAg
ICBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUodmlzaWJsZSk7Ci0gICAgbV9sZWdhY3lXZWJLaXRD
bG9zZWRDYXB0aW9uc1Zpc2libGUgPSBtX2Nsb3NlZENhcHRpb25zVmlzaWJsZTsKIH0KIAogYm9v
bCBIVE1MTWVkaWFFbGVtZW50Ojp3ZWJraXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoKSBjb25zdAog
ewotICAgIHJldHVybiBtX2xlZ2FjeVdlYktpdENsb3NlZENhcHRpb25zVmlzaWJsZTsKKyAgICBy
ZXR1cm4gbV9jbG9zZWRDYXB0aW9uc1Zpc2libGU7CiB9CiAKIApJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDE0OTU5NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MDksNyArNzA5
LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pc0Z1bGxzY3JlZW4gOiAxOwogICAgIGJvb2wg
bV9jbG9zZWRDYXB0aW9uc1Zpc2libGUgOiAxOwotICAgIGJvb2wgbV9sZWdhY3lXZWJLaXRDbG9z
ZWRDYXB0aW9uc1Zpc2libGUgOiAxOwogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklE
RU8pCiAgICAgYm9vbCBtX25lZWRXaWRnZXRVcGRhdGUgOiAxOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVB
VkYuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAkocmV2aXNpb24gMTQ5NTk1
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShWSURFTykgJiYgKChVU0UoQVZG
T1VOREFUSU9OKSAmJiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpKSB8fCBQ
TEFURk9STShJT1MpKQorI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShBVkZPVU5EQVRJT04pIHx8
IFBMQVRGT1JNKElPUykpCiAKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmgi
CiAKQEAgLTQ0Nyw0ICs0NDcsNCBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkY6OnNl
dE1vZGUoCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShWSURF
TykgJiYgKChVU0UoQVZGT1VOREFUSU9OKSAmJiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNL
X1NVUFBPUlQpKSB8fCBQTEFURk9STShJT1MpKQorI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYg
KFVTRShBVkZPVU5EQVRJT04pIHx8IFBMQVRGT1JNKElPUykpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
Ri5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmgJKHJldmlzaW9uIDE0OTU5NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5k
ZWYgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRl9oCiAjZGVmaW5lIEluYmFuZFRleHRUcmFja1By
aXZhdGVBVkZfaAogCi0jaWYgRU5BQkxFKFZJREVPKSAmJiAoKFVTRShBVkZPVU5EQVRJT04pICYm
IEhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkpIHx8IFBMQVRGT1JNKElPUykp
CisjaWYgRU5BQkxFKFZJREVPKSAmJiAoVVNFKEFWRk9VTkRBVElPTikgfHwgUExBVEZPUk0oSU9T
KSkKIAogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJJbmJh
bmRUZXh0VHJhY2tQcml2YXRlQ2xpZW50LmgiCkBAIC05MCw2ICs5MCw2IEBAIHByb3RlY3RlZDoK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gIEVOQUJMRShWSURFTykgJiYg
KChVU0UoQVZGT1VOREFUSU9OKSAmJiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBP
UlQpKSB8fCBQTEFURk9STShJT1MpKQorI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgKFVTRShB
VkZPVU5EQVRJT04pIHx8IFBMQVRGT1JNKElPUykpCiAKICNlbmRpZiAvLyBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCShyZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsOSArNzUsNyBAQCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUGxhCiAgICAgLCBtX2lnbm9yZUxvYWRTdGF0
ZUNoYW5nZXMoZmFsc2UpCiAgICAgLCBtX2hhdmVSZXBvcnRlZEZpcnN0VmlkZW9GcmFtZShmYWxz
ZSkKICAgICAsIG1fcGxheVdoZW5GcmFtZXNBdmFpbGFibGUoZmFsc2UpCi0jaWYgSEFWRShBVkZP
VU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKQogICAgICwgbV9pbmJhbmRUcmFja0NvbmZpZ3Vy
YXRpb25QZW5kaW5nKGZhbHNlKQotI2VuZGlmCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oJXAp
IiwgdGhpcyk7CiB9CkBAIC0yNjcsMTAgKzI2NSw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpzZWUKICAgICBpZiAoY3VycmVudFRpbWUoKSA9PSB0aW1lKQogICAgICAg
ICByZXR1cm47CiAKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCiAg
ICAgaWYgKGN1cnJlbnRUcmFjaygpKQogICAgICAgICBjdXJyZW50VHJhY2soKS0+YmVnaW5TZWVr
aW5nKCk7Ci0jZW5kaWYKICAgICAKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246OnNlZWsoJXApIC0gc2Vla2luZyB0byAlZiIsIHRoaXMsIHRpbWUpOwogICAg
IG1fc2Vla1RvID0gdGltZTsKQEAgLTU5NCwxMCArNTkwLDggQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb246OnNlZQogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbjo6c2Vla0NvbXBsZXRlZCglcCkgLSBmaW5pc2hlZCA9ICVkIiwgdGhpcywg
ZmluaXNoZWQpOwogICAgIFVOVVNFRF9QQVJBTShmaW5pc2hlZCk7CiAKLSNpZiBIQVZFKEFWRk9V
TkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCiAgICAgaWYgKGN1cnJlbnRUcmFjaygpKQogICAg
ICAgICBjdXJyZW50VHJhY2soKS0+ZW5kU2Vla2luZygpOwotI2VuZGlmCiAKICAgICBtX3NlZWtU
byA9IE1lZGlhUGxheWVyOjppbnZhbGlkVGltZSgpOwogICAgIHVwZGF0ZVN0YXRlcygpOwpAQCAt
ODI4LDEwICs4MjIsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6ZGlz
CiAgICAgICAgIGNvbnRlbnRzTmVlZHNEaXNwbGF5KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgTm90aWZpY2F0aW9uOjpJbmJhbmRUcmFja3NOZWVkQ29uZmlndXJhdGlvbjoKLSNpZiBIQVZF
KEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCiAgICAgICAgIG1faW5iYW5kVHJhY2tD
b25maWd1cmF0aW9uUGVuZGluZyA9IGZhbHNlOwogICAgICAgICBjb25maWd1cmVJbmJhbmRUcmFj
a3MoKTsKLSNlbmRpZgogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgTm90aWZpY2F0aW9uOjpO
b25lOgpAQCAtODQwLDcgKzgzMiw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uOjpkaXMKICAgICB9CiB9CiAKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NV
UFBPUlQpCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Y29uZmlndXJlSW5i
YW5kVHJhY2tzKCkKIHsKICAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRj4gdHJh
Y2tUb0VuYWJsZTsKQEAgLTg2Nyw3ICs4NTgsNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6dHJhCiAgICAgbV9pbmJhbmRUcmFja0NvbmZpZ3VyYXRpb25QZW5kaW5nID0g
dHJ1ZTsKICAgICBzY2hlZHVsZU1haW5UaHJlYWROb3RpZmljYXRpb24oTm90aWZpY2F0aW9uOjpJ
bmJhbmRUcmFja3NOZWVkQ29uZmlndXJhdGlvbik7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5oCShyZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDkgKzQwLDcgQEAgY2xhc3MgSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRjsKIGNsYXNzIEdlbmVyaWNDdWVEYXRhOwogCiBjbGFzcyBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24gOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlCi0jaWYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKQogICAgICwgcHVi
bGljIEFWRkluYmFuZFRyYWNrUGFyZW50Ci0jZW5kaWYKIHsKIHB1YmxpYzoKIApAQCAtNTYsMTEg
KzU0LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZWVrQ29tcGxldGVkKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRFbmQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNOZWVk
c0Rpc3BsYXkoKSB7IH0KLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQp
CiAgICAgdmlydHVhbCB2b2lkIGNvbmZpZ3VyZUluYmFuZFRyYWNrcygpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRDdXJyZW50VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRiopIHsgfQogICAg
IHZpcnR1YWwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRiogY3VycmVudFRyYWNrKCkgY29uc3Qg
PSAwOwotI2VuZGlmCiAKICAgICBjbGFzcyBOb3RpZmljYXRpb24gewogICAgIHB1YmxpYzoKQEAg
LTI2NiwxMCArMjYyLDggQEAgcHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCBTdHJpbmcgZW5naW5l
RGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiAiQVZGb3VuZGF0aW9uIjsgfQogCi0jaWYgSEFW
RShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKQogICAgIHZpcnR1YWwgdm9pZCB0cmFj
a01vZGVDaGFuZ2VkKCkgT1ZFUlJJREU7CiAgICAgVmVjdG9yPFJlZlB0cjxJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGPiA+IG1fdGV4dFRyYWNrczsKLSNlbmRpZgogICAgIAogcHJpdmF0ZToKICAg
ICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CkBAIC0zMDYsOSArMzAwLDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1faWdub3JlTG9hZFN0YXRlQ2hhbmdlczsKICAgICBib29sIG1faGF2ZVJlcG9ydGVk
Rmlyc3RWaWRlb0ZyYW1lOwogICAgIGJvb2wgbV9wbGF5V2hlbkZyYW1lc0F2YWlsYWJsZTsKLSNp
ZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCiAgICAgYm9vbCBtX2luYmFu
ZFRyYWNrQ29uZmlndXJhdGlvblBlbmRpbmc7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMuaAkocmV2aXNpb24gMTQ5NTk1KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRk9iakMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRl
ZiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQ19oCiAjZGVmaW5lIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkZPYmpDX2gKIAotI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElP
TikgJiYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKQorI2lmIEVOQUJMRShW
SURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikgJiYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VM
RUNUSU9OX0dST1VQKQogCiAjaW5jbHVkZSAiSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oIgog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpD
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDLm1tCShyZXZpc2lvbiAx
NDk1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjUsNyArMjUsNyBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShWSURFTykg
JiYgVVNFKEFWRk9VTkRBVElPTikgJiYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQ
T1JUKQorI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikgJiYgSEFWRShBVkZP
VU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogCiAjaW1wb3J0ICJJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGT2JqQy5oIgogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2Jq
Qy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLmgJKHJldmlz
aW9uIDE0OTU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxl
Z2FjeUFWRk9iakNfaAogI2RlZmluZSBJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2Jq
Q19oCiAKLSNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pICYmIEhBVkUoQVZG
T1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkgJiYgIUhBVkUoQVZGT1VOREFUSU9OX0xFR0lC
TEVfT1VUUFVUX1NVUFBPUlQpCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9O
KSAmJiAhSEFWRShBVkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkgJiYgIVBMQVRG
T1JNKElPUykKIAogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCIKICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC02OCw1ICs2OCw2IEBAIHByb3RlY3RlZDoKIAogfQog
Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pICYm
ICFIQVZFKEFWRk9VTkRBVElPTl9MRUdJQkxFX09VVFBVVF9TVVBQT1JUKSAmJiAhUExBVEZPUk0o
SU9TKQorCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpDLm1tCShyZXZpc2lvbiAx
NDk1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMjUsNyArMjUsNyBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShW
SURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikgJiYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFD
S19TVVBQT1JUKSAmJiAhSEFWRShBVkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkK
KyNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pICYmICFIQVZFKEFWRk9VTkRB
VElPTl9MRUdJQkxFX09VVFBVVF9TVVBQT1JUKSAmJiAhUExBVEZPUk0oSU9TKQogCiAjaW1wb3J0
ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQy5oIgogCkBAIC00MywyOCArNDMs
MTYgQEAgU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpbwogU09GVF9MSU5L
X0NMQVNTKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJJdGVtKQogU09GVF9MSU5LX0NMQVNTKEFWRm91
bmRhdGlvbiwgQVZNZXRhZGF0YUl0ZW0pCiAjZGVmaW5lIEFWTWVkaWFUeXBlQ2xvc2VkQ2FwdGlv
biBnZXRBVk1lZGlhVHlwZUNsb3NlZENhcHRpb24oKQotI2RlZmluZSBBVk1lZGlhQ2hhcmFjdGVy
aXN0aWNDb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMgZ2V0QVZNZWRpYUNoYXJhY3RlcmlzdGlj
Q29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkKLSNkZWZpbmUgQVZNZWRpYUNoYXJhY3Rlcmlz
dGljSXNNYWluUHJvZ3JhbUNvbnRlbnQgZ2V0QVZNZWRpYUNoYXJhY3RlcmlzdGljSXNNYWluUHJv
Z3JhbUNvbnRlbnQoKQotI2RlZmluZSBBVk1lZGlhQ2hhcmFjdGVyaXN0aWNFYXN5VG9SZWFkIGdl
dEFWTWVkaWFDaGFyYWN0ZXJpc3RpY0Vhc3lUb1JlYWQoKQogCiBTT0ZUX0xJTktfUE9JTlRFUihB
VkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQ2xvc2VkQ2FwdGlvbiwgTlNTdHJpbmcgKikKIFNPRlRf
TElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZNZWRpYUNoYXJhY3RlcmlzdGljTGVnaWJsZSwg
TlNTdHJpbmcgKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZNZXRhZGF0YUNv
bW1vbktleVRpdGxlLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9u
LCBBVk1ldGFkYXRhS2V5U3BhY2VDb21tb24sIE5TU3RyaW5nICopCi1TT0ZUX0xJTktfUE9JTlRF
UihBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlU3VidGl0bGUsIE5TU3RyaW5nICopCi1TT0ZUX0xJ
TktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFDaGFyYWN0ZXJpc3RpY1RyYW5zY3JpYmVz
U3Bva2VuRGlhbG9nRm9yQWNjZXNzaWJpbGl0eSwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19QT0lO
VEVSKEFWRm91bmRhdGlvbiwgQVZNZWRpYUNoYXJhY3RlcmlzdGljRGVzY3JpYmVzTXVzaWNBbmRT
b3VuZEZvckFjY2Vzc2liaWxpdHksIE5TU3RyaW5nICopCi1TT0ZUX0xJTktfUE9JTlRFUihBVkZv
dW5kYXRpb24sIEFWTWVkaWFDaGFyYWN0ZXJpc3RpY0NvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxl
cywgTlNTdHJpbmcgKikKLVNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZNZWRpYUNo
YXJhY3RlcmlzdGljSXNNYWluUHJvZ3JhbUNvbnRlbnQsIE5TU3RyaW5nICopCi1TT0ZUX0xJTktf
UE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFDaGFyYWN0ZXJpc3RpY0Vhc3lUb1JlYWQsIE5T
U3RyaW5nICopCiAKICNkZWZpbmUgQVZNZXRhZGF0YUl0ZW0gZ2V0QVZNZXRhZGF0YUl0ZW1DbGFz
cygpCiAjZGVmaW5lIEFWTWVkaWFDaGFyYWN0ZXJpc3RpY0xlZ2libGUgZ2V0QVZNZWRpYUNoYXJh
Y3RlcmlzdGljTGVnaWJsZSgpCiAjZGVmaW5lIEFWTWV0YWRhdGFDb21tb25LZXlUaXRsZSBnZXRB
Vk1ldGFkYXRhQ29tbW9uS2V5VGl0bGUoKQogI2RlZmluZSBBVk1ldGFkYXRhS2V5U3BhY2VDb21t
b24gZ2V0QVZNZXRhZGF0YUtleVNwYWNlQ29tbW9uKCkKLSNkZWZpbmUgQVZNZWRpYVR5cGVTdWJ0
aXRsZSBnZXRBVk1lZGlhVHlwZVN1YnRpdGxlKCkKLSNkZWZpbmUgQVZNZWRpYUNoYXJhY3Rlcmlz
dGljVHJhbnNjcmliZXNTcG9rZW5EaWFsb2dGb3JBY2Nlc3NpYmlsaXR5IGdldEFWTWVkaWFDaGFy
YWN0ZXJpc3RpY1RyYW5zY3JpYmVzU3Bva2VuRGlhbG9nRm9yQWNjZXNzaWJpbGl0eSgpCi0jZGVm
aW5lIEFWTWVkaWFDaGFyYWN0ZXJpc3RpY0Rlc2NyaWJlc011c2ljQW5kU291bmRGb3JBY2Nlc3Np
YmlsaXR5IGdldEFWTWVkaWFDaGFyYWN0ZXJpc3RpY0Rlc2NyaWJlc011c2ljQW5kU291bmRGb3JB
Y2Nlc3NpYmlsaXR5KCkKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwpAQCAtODgsMjYgKzc2LDYgQEAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6S2luZCBJ
bmJhbmRUZXh0VAogICAgIGlmICghbV9wbGF5ZXJJdGVtVHJhY2spCiAgICAgICAgIHJldHVybiBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlOjpOb25lOwogCi0gICAgQVZBc3NldFRyYWNrICphc3NldFRy
YWNrID0gW21fcGxheWVySXRlbVRyYWNrIGFzc2V0VHJhY2tdOwotICAgIE5TU3RyaW5nICptZWRp
YVR5cGUgPSBbYXNzZXRUcmFjayBtZWRpYVR5cGVdOwotICAgIAotICAgIGlmIChbbWVkaWFUeXBl
IGlzRXF1YWxUb1N0cmluZzpBVk1lZGlhVHlwZUNsb3NlZENhcHRpb25dKQotICAgICAgICByZXR1
cm4gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Q2FwdGlvbnM7Ci0gICAgaWYgKFttZWRpYVR5cGUg
aXNFcXVhbFRvU3RyaW5nOkFWTWVkaWFUeXBlU3VidGl0bGVdKSB7Ci0KLSAgICAgICAgaWYgKFth
c3NldFRyYWNrIGhhc01lZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJhY3RlcmlzdGljQ29u
dGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzXSkKLSAgICAgICAgICAgIHJldHVybiBJbmJhbmRUZXh0
VHJhY2tQcml2YXRlOjpGb3JjZWQ7Ci0KLSAgICAgICAgLy8gQW4gIlNESCIgdHJhY2sgaXMgYSBz
dWJ0aXRsZSB0cmFjayBjcmVhdGVkIGZvciB0aGUgZGVhZiBvciBoYXJkLW9mLWhlYXJpbmcuICJj
YXB0aW9ucyIgaW4gV2ViVlRUIGFyZQotICAgICAgICAvLyAibGFiZWxlZCBhcyBhcHByb3ByaWF0
ZSBmb3IgdGhlIGhhcmQtb2YtaGVhcmluZyIsIHNvIHRhZyBTREggc3V0aXRsZXMgYXMgImNhcHRp
b25zIi4KLSAgICAgICAgaWYgKFthc3NldFRyYWNrIGhhc01lZGlhQ2hhcmFjdGVyaXN0aWM6QVZN
ZWRpYUNoYXJhY3RlcmlzdGljVHJhbnNjcmliZXNTcG9rZW5EaWFsb2dGb3JBY2Nlc3NpYmlsaXR5
XSkKLSAgICAgICAgICAgIHJldHVybiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpDYXB0aW9uczsK
LSAgICAgICAgaWYgKFthc3NldFRyYWNrIGhhc01lZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNo
YXJhY3RlcmlzdGljRGVzY3JpYmVzTXVzaWNBbmRTb3VuZEZvckFjY2Vzc2liaWxpdHldKQotICAg
ICAgICAgICAgcmV0dXJuIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OkNhcHRpb25zOwotICAgICAg
ICAKLSAgICAgICAgcmV0dXJuIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OlN1YnRpdGxlczsKLSAg
ICB9Ci0KICAgICByZXR1cm4gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6Q2FwdGlvbnM7CiB9CiAK
QEAgLTExNSwzMiArODMsMjMgQEAgYm9vbCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZG
T2JqQwogewogICAgIGlmICghbV9wbGF5ZXJJdGVtVHJhY2spCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAKLSAgICByZXR1cm4gW1tbbV9wbGF5ZXJJdGVtVHJhY2sgYXNzZXRUcmFja10gbWVk
aWFUeXBlXSBpc0VxdWFsVG9TdHJpbmc6QVZNZWRpYVR5cGVDbG9zZWRDYXB0aW9uXTsKKworICAg
IHJldHVybiB0cnVlOwogfQogCiBib29sIEluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZP
YmpDOjpjb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSBjb25zdAogewotICAgIGlmICghbV9w
bGF5ZXJJdGVtVHJhY2spCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICByZXR1cm4g
W1ttX3BsYXllckl0ZW1UcmFjayBhc3NldFRyYWNrXSBoYXNNZWRpYUNoYXJhY3RlcmlzdGljOkFW
TWVkaWFDaGFyYWN0ZXJpc3RpY0NvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlc107CisgICAgcmV0
dXJuIGZhbHNlOwogfQogCiBib29sIEluYmFuZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkZPYmpD
Ojppc01haW5Qcm9ncmFtQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3BsYXllckl0ZW1U
cmFjaykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJldHVybiBbW21fcGxheWVy
SXRlbVRyYWNrIGFzc2V0VHJhY2tdIGhhc01lZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJh
Y3RlcmlzdGljSXNNYWluUHJvZ3JhbUNvbnRlbnRdOworICAgIHJldHVybiBtX3BsYXllckl0ZW1U
cmFjazsKIH0KIAogYm9vbCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQzo6aXNF
YXN5VG9SZWFkKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcGxheWVySXRlbVRyYWNrKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gW1ttX3BsYXllckl0ZW1UcmFjayBhc3NldFRy
YWNrXSBoYXNNZWRpYUNoYXJhY3RlcmlzdGljOkFWTWVkaWFDaGFyYWN0ZXJpc3RpY0Vhc3lUb1Jl
YWRdOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogQXRvbWljU3RyaW5nIEluYmFuZFRleHRUcmFj
a1ByaXZhdGVMZWdhY3lBVkZPYmpDOjpsYWJlbCgpIGNvbnN0CkBAIC0xNTIsOCArMTExLDEyIEBA
IEF0b21pY1N0cmluZyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWMKIAogICAgIE5TQXJyYXkg
KnRpdGxlcyA9IFtBVk1ldGFkYXRhSXRlbSBtZXRhZGF0YUl0ZW1zRnJvbUFycmF5OltbbV9wbGF5
ZXJJdGVtVHJhY2sgYXNzZXRUcmFja10gY29tbW9uTWV0YWRhdGFdIHdpdGhLZXk6QVZNZXRhZGF0
YUNvbW1vbktleVRpdGxlIGtleVNwYWNlOkFWTWV0YWRhdGFLZXlTcGFjZUNvbW1vbl07CiAgICAg
aWYgKFt0aXRsZXMgY291bnRdKSB7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDgwCiAgICAgICAgIC8vIElmIHBvc3NpYmxlLCByZXR1cm4gYSB0aXRsZSBpbiBvbmUg
b2YgdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2VzLgogICAgICAgICBOU0FycmF5ICp0aXRs
ZXNGb3JQcmVmZXJyZWRMYW5ndWFnZXMgPSBbQVZNZXRhZGF0YUl0ZW0gbWV0YWRhdGFJdGVtc0Zy
b21BcnJheTp0aXRsZXMgZmlsdGVyZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExhbmd1
YWdlczpbTlNMb2NhbGUgcHJlZmVycmVkTGFuZ3VhZ2VzXV07CisjZWxzZQorICAgICAgICAgTlNB
cnJheSAqdGl0bGVzRm9yUHJlZmVycmVkTGFuZ3VhZ2VzID0gW0FWTWV0YWRhdGFJdGVtIG1ldGFk
YXRhSXRlbXNGcm9tQXJyYXk6dGl0bGVzIHdpdGhMb2NhbGU6W05TTG9jYWxlIGN1cnJlbnRMb2Nh
bGVdXTsKKyNlbmRpZgogICAgICAgICBpZiAoW3RpdGxlc0ZvclByZWZlcnJlZExhbmd1YWdlcyBj
b3VudF0pCiAgICAgICAgICAgICB0aXRsZSA9IFtbdGl0bGVzRm9yUHJlZmVycmVkTGFuZ3VhZ2Vz
IG9iamVjdEF0SW5kZXg6MF0gc3RyaW5nVmFsdWVdOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCShyZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXNz
ZXQoaWQpOwogICAgIHZpcnR1YWwgdm9pZCB0cmFja3NDaGFuZ2VkKCk7CiAKLSNpZiBIQVZFKEFW
Rk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCisjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVE
SUFfU0VMRUNUSU9OX0dST1VQKQogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW0+IHBsYXllckl0
ZW0oKSBjb25zdCB7IHJldHVybiBtX2F2UGxheWVySXRlbTsgfQogICAgIHZvaWQgcHJvY2Vzc0N1
ZShOU0FycmF5ICosIGRvdWJsZSk7CiAjZW5kaWYKQEAgLTE2NywyMCArMTY3LDIwIEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBj
b25zdCBPVkVSUklERTsKIAotI2lmIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9S
VCkKKyNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCisgICAgdm9p
ZCBwcm9jZXNzTWVkaWFTZWxlY3Rpb25PcHRpb25zKCk7CisgICAgQVZNZWRpYVNlbGVjdGlvbkdy
b3VwKiBzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVNZWRpYSgpOworI2VuZGlmCisK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGVB
VkYqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYqIGN1
cnJlbnRUcmFjaygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fY3VycmVudFRyYWNrOyB9Ci0g
ICAgdm9pZCBwcm9jZXNzTWVkaWFTZWxlY3Rpb25PcHRpb25zKCk7CiAgICAgdm9pZCBwcm9jZXNz
TmV3QW5kUmVtb3ZlZFRleHRUcmFja3MoY29uc3QgVmVjdG9yPFJlZlB0cjxJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGPiA+Jik7CiAgICAgdm9pZCBjbGVhclRleHRUcmFja3MoKTsKLSAgICBBVk1l
ZGlhU2VsZWN0aW9uR3JvdXAqIHNhZmVNZWRpYVNlbGVjdGlvbkdyb3VwRm9yTGVnaWJsZU1lZGlh
KCk7CiAKICNpZiAhSEFWRShBVkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkKICAg
ICB2b2lkIHByb2Nlc3NMZWdhY3lDbG9zZWRDYXB0aW9uc1RyYWNrcygpOwogI2VuZGlmCiAKLSNl
bmRpZgotCiAgICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBSZXRhaW5Q
dHI8QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4gbV9h
dlBsYXllckl0ZW07CkBAIC0yMDgsMTMgKzIwOCwxMSBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8
U3RyaW5nLCBSZXRhaW5QdHI8QVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3Q+ID4gbV9zZXNz
aW9uSURUb1JlcXVlc3RNYXA7CiAjZW5kaWYKIAotI2lmIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRf
VFJBQ0tfU1VQUE9SVCkgJiYgSEFWRShBVkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9S
VCkKKyNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApICYmIEhBVkUo
QVZGT1VOREFUSU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQpCiAgICAgUmV0YWluUHRyPEFWUGxh
eWVySXRlbUxlZ2libGVPdXRwdXQ+IG1fbGVnaWJsZU91dHB1dDsKICNlbmRpZgogICAgIAotI2lm
IEhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkKICAgICBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGKiBtX2N1cnJlbnRUcmFjazsKLSNlbmRpZgogfTsKIAogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tCShyZXZpc2lvbiAxNDk1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNyArMTE2LDcgQEAgU09GVF9M
SU5LX0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZVplcgogI2RlZmluZSBBVkFzc2V0SW1hZ2VH
ZW5lcmF0b3JBcGVydHVyZU1vZGVDbGVhbkFwZXJ0dXJlIGdldEFWQXNzZXRJbWFnZUdlbmVyYXRv
ckFwZXJ0dXJlTW9kZUNsZWFuQXBlcnR1cmUoKQogI2RlZmluZSBBVlVSTEFzc2V0UmVmZXJlbmNl
UmVzdHJpY3Rpb25zS2V5IGdldEFWVVJMQXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbnNLZXkoKQog
Ci0jaWYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKQorI2lmIEhBVkUoQVZG
T1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKIHR5cGVkZWYgQVZNZWRpYVNlbGVjdGlv
bkdyb3VwIEFWTWVkaWFTZWxlY3Rpb25Hcm91cFR5cGU7CiB0eXBlZGVmIEFWTWVkaWFTZWxlY3Rp
b25PcHRpb24gQVZNZWRpYVNlbGVjdGlvbk9wdGlvblR5cGU7CiAKQEAgLTE0OCw3ICsxNDgsNyBA
QCBlbnVtIE1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25DCiAgICAgTWVkaWFQbGF5
ZXJBVkZvdW5kYXRpb25PYnNlcnZhdGlvbkNvbnRleHRQbGF5ZXIKIH07CiAKLSNpZiBIQVZFKEFW
Rk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpICYmIEhBVkUoQVZGT1VOREFUSU9OX0xFR0lC
TEVfT1VUUFVUX1NVUFBPUlQpCisjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9O
X0dST1VQKSAmJiBIQVZFKEFWRk9VTkRBVElPTl9MRUdJQkxFX09VVFBVVF9TVVBQT1JUKQogQGlu
dGVyZmFjZSBXZWJDb3JlQVZGTW92aWVPYnNlcnZlciA6IE5TT2JqZWN0IDxBVlBsYXllckl0ZW1M
ZWdpYmxlT3V0cHV0UHVzaERlbGVnYXRlPgogI2Vsc2UKIEBpbnRlcmZhY2UgV2ViQ29yZUFWRk1v
dmllT2JzZXJ2ZXIgOiBOU09iamVjdApAQCAtMTY0LDcgKzE2NCw3IEBAIC0odm9pZCltZXRhZGF0
YUxvYWRlZDsKIC0odm9pZClzZWVrQ29tcGxldGVkOihCT09MKWZpbmlzaGVkOwogLSh2b2lkKWRp
ZEVuZDooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb247CiAtKHZvaWQpb2JzZXJ2ZVZhbHVl
Rm9yS2V5UGF0aDprZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25h
cnkgKiljaGFuZ2UgY29udGV4dDooTWVkaWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNlcnZhdGlvbkNv
bnRleHQpY29udGV4dDsKLSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQp
CisjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogLSAodm9pZCls
ZWdpYmxlT3V0cHV0OihpZClvdXRwdXQgZGlkT3V0cHV0QXR0cmlidXRlZFN0cmluZ3M6KE5TQXJy
YXkgKilzdHJpbmdzIG5hdGl2ZVNhbXBsZUJ1ZmZlcnM6KE5TQXJyYXkgKiluYXRpdmVTYW1wbGVz
IGZvckl0ZW1UaW1lOihDTVRpbWUpaXRlbVRpbWU7CiAjZW5kaWYKIEBlbmQKQEAgLTIzNSw5ICsy
MzUsNyBAQCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpCiAjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAgICAgLCBtX2xvYWRlckRlbGVn
YXRlKGFkb3B0TlMoW1tXZWJDb3JlQVZGTG9hZGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQ2Fs
bGJhY2s6dGhpc10pKQogI2VuZGlmCi0jaWYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19T
VVBQT1JUKQogICAgICwgbV9jdXJyZW50VHJhY2soMCkKLSNlbmRpZgogewogI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUFfVjIpCiAgICAgcGxheWVyVG9Qcml2YXRlTWFwKCkuc2V0KHBsYXllciwg
dGhpcyk7CkBAIC0yNzEsMTEgKzI2OSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzoKICAgICAgICAgbV9hdkFzc2V0ID0gbmlsOwogICAgIH0KIAotI2lmIEhBVkUo
QVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkKICAgICBjbGVhclRleHRUcmFja3MoKTsK
LSNlbmRpZgogCi0jaWYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JUKSAmJiBI
QVZFKEFWRk9VTkRBVElPTl9MRUdJQkxFX09VVFBVVF9TVVBQT1JUKQorI2lmIEhBVkUoQVZGT1VO
REFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkgJiYgSEFWRShBVkZPVU5EQVRJT05fTEVHSUJM
RV9PVVRQVVRfU1VQUE9SVCkKICAgICBpZiAobV9sZWdpYmxlT3V0cHV0KSB7CiAgICAgICAgIGlm
IChtX2F2UGxheWVySXRlbSkKICAgICAgICAgICAgIFttX2F2UGxheWVySXRlbS5nZXQoKSByZW1v
dmVPdXRwdXQ6bV9sZWdpYmxlT3V0cHV0LmdldCgpXTsKQEAgLTQ0Niw3ICs0NDIsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6CiAgICAgbV9hdlBsYXllciA9IGFk
b3B0TlMoW1tBVlBsYXllciBhbGxvY10gaW5pdF0pOwogICAgIFttX2F2UGxheWVyLmdldCgpIGFk
ZE9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJyYXRlIiBvcHRpb25z
Om5pbCBjb250ZXh0Oih2b2lkICopTWVkaWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNlcnZhdGlvbkNv
bnRleHRQbGF5ZXJdOwogCi0jaWYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQT1JU
KSAmJiBIQVZFKEFWRk9VTkRBVElPTl9MRUdJQkxFX09VVFBVVF9TVVBQT1JUKQorI2lmIEhBVkUo
QVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkgJiYgSEFWRShBVkZPVU5EQVRJT05f
TEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkKICAgICBbbV9hdlBsYXllci5nZXQoKSBzZXRBcHBsaWVz
TWVkaWFTZWxlY3Rpb25Dcml0ZXJpYUF1dG9tYXRpY2FsbHk6WUVTXTsKICNlbmRpZgogCkBAIC00
NzYsNyArNDcyLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOgog
ICAgIGlmIChtX2F2UGxheWVyKQogICAgICAgICBbbV9hdlBsYXllci5nZXQoKSByZXBsYWNlQ3Vy
cmVudEl0ZW1XaXRoUGxheWVySXRlbTptX2F2UGxheWVySXRlbS5nZXQoKV07CiAKLSNpZiBIQVZF
KEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpICYmIEhBVkUoQVZGT1VOREFUSU9OX0xF
R0lCTEVfT1VUUFVUX1NVUFBPUlQpCisjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNU
SU9OX0dST1VQKSAmJiBIQVZFKEFWRk9VTkRBVElPTl9MRUdJQkxFX09VVFBVVF9TVVBQT1JUKQog
ICAgIGNvbnN0IE5TVGltZUludGVydmFsIGxlZ2libGVPdXRwdXRBZHZhbmNlSW50ZXJ2YWwgPSAy
OwogCiAgICAgbV9sZWdpYmxlT3V0cHV0ID0gYWRvcHROUyhbW0FWUGxheWVySXRlbUxlZ2libGVP
dXRwdXQgYWxsb2NdIGluaXRXaXRoTWVkaWFTdWJ0eXBlc0Zvck5hdGl2ZVJlcHJlc2VudGF0aW9u
OltOU0FycmF5IGFycmF5XV0pOwpAQCAtNjQyLDExICs2MzgsMTAgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOgogICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0jaWYgSEFWRShBVkZPVU5EQVRJT05fVEVYVF9UUkFDS19TVVBQ
T1JUKQorI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICAgICBV
TlVTRURfUEFSQU0oY2xvc2VkQ2FwdGlvbnNWaXNpYmxlKTsKICNlbHNlCiAgICAgTE9HKE1lZGlh
LCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0Q2xvc2VkQ2FwdGlvbnNW
aXNpYmxlKCVwKSAtIHNldHRpbmcgdG8gJXMiLCB0aGlzLCBib29sU3RyaW5nKGNsb3NlZENhcHRp
b25zVmlzaWJsZSkpOwotICAgIFttX2F2UGxheWVyLmdldCgpIHNldENsb3NlZENhcHRpb25EaXNw
bGF5RW5hYmxlZDpjbG9zZWRDYXB0aW9uc1Zpc2libGVdOwogI2VuZGlmCiB9CiAKQEAgLTc2OSw2
ICs3NjQsNyBAQCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OkFzc2V0U3RhCiAKICAg
ICBmb3IgKE5TU3RyaW5nICprZXlOYW1lIGluIGFzc2V0TWV0YWRhdGFLZXlOYW1lcygpKSB7CiAg
ICAgICAgIEFWS2V5VmFsdWVTdGF0dXMga2V5U3RhdHVzID0gW21fYXZBc3NldC5nZXQoKSBzdGF0
dXNPZlZhbHVlRm9yS2V5OmtleU5hbWUgZXJyb3I6bmlsXTsKKwogICAgICAgICBpZiAoa2V5U3Rh
dHVzIDwgQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKICAgICAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllckFWQXNzZXRTdGF0dXNMb2FkaW5nOy8vIEF0IGxlYXN0IG9uZSBrZXkgaXMgbm90IGxvYWRl
ZCB5ZXQuCiAgICAgICAgIApAQCAtOTkzLDcgKzk4OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzoKICAgICAgICAgLy8gcHJpb3IgdG8gYmVjb21pbmcgcmVhZHkg
dG8gcGxheS4KICAgICAgICAgc2V0SGFzVmlkZW8oW1ttX2F2QXNzZXQuZ2V0KCkgdHJhY2tzV2l0
aE1lZGlhQ2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJhY3RlcmlzdGljVmlzdWFsXSBjb3VudF0p
OwogICAgICAgICBzZXRIYXNBdWRpbyhbW21fYXZBc3NldC5nZXQoKSB0cmFja3NXaXRoTWVkaWFD
aGFyYWN0ZXJpc3RpYzpBVk1lZGlhQ2hhcmFjdGVyaXN0aWNBdWRpYmxlXSBjb3VudF0pOwotI2lm
ICFIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCisjaWYgIUhBVkUoQVZGT1VO
REFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICAgICAgICAgaGFzQ2FwdGlvbnMgPSBbW21f
YXZBc3NldC5nZXQoKSB0cmFja3NXaXRoTWVkaWFUeXBlOkFWTWVkaWFUeXBlQ2xvc2VkQ2FwdGlv
bl0gY291bnRdOwogI2VuZGlmCiAgICAgfSBlbHNlIHsKQEAgLTEwMDgsNyArMTAwNCw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzoKICAgICAgICAgICAgICAgICBl
bHNlIGlmIChbW2Fzc2V0VHJhY2sgbWVkaWFUeXBlXSBpc0VxdWFsVG9TdHJpbmc6QVZNZWRpYVR5
cGVBdWRpb10pCiAgICAgICAgICAgICAgICAgICAgIGhhc0F1ZGlvID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICBlbHNlIGlmIChbW2Fzc2V0VHJhY2sgbWVkaWFUeXBlXSBpc0VxdWFsVG9TdHJpbmc6
QVZNZWRpYVR5cGVDbG9zZWRDYXB0aW9uXSkgewotI2lmICFIQVZFKEFWRk9VTkRBVElPTl9URVhU
X1RSQUNLX1NVUFBPUlQpCisjaWYgIUhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9H
Uk9VUCkKICAgICAgICAgICAgICAgICAgICAgaGFzQ2FwdGlvbnMgPSB0cnVlOwogI2VuZGlmCiAg
ICAgICAgICAgICAgICAgICAgIGhhdmVDQ1RyYWNrID0gdHJ1ZTsKQEAgLTEwMTksMTggKzEwMTUs
MjAgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOgogICAgICAgICBz
ZXRIYXNBdWRpbyhoYXNBdWRpbyk7CiAgICAgfQogCi0jaWYgSEFWRShBVkZPVU5EQVRJT05fVEVY
VF9UUkFDS19TVVBQT1JUKQorI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9H
Uk9VUCkKICAgICBpZiAoQVZNZWRpYVNlbGVjdGlvbkdyb3VwVHlwZSAqbGVnaWJsZUdyb3VwID0g
c2FmZU1lZGlhU2VsZWN0aW9uR3JvdXBGb3JMZWdpYmxlTWVkaWEoKSkgewogICAgICAgICBoYXND
YXB0aW9ucyA9IFtbQVZNZWRpYVNlbGVjdGlvbkdyb3VwIHBsYXlhYmxlTWVkaWFTZWxlY3Rpb25P
cHRpb25zRnJvbUFycmF5OltsZWdpYmxlR3JvdXAgb3B0aW9uc11dIGNvdW50XTsKICAgICAgICAg
aWYgKGhhc0NhcHRpb25zKQogICAgICAgICAgICAgcHJvY2Vzc01lZGlhU2VsZWN0aW9uT3B0aW9u
cygpOwogICAgIH0KKyNlbmRpZgogCi0jaWYgIUhBVkUoQVZGT1VOREFUSU9OX0xFR0lCTEVfT1VU
UFVUX1NVUFBPUlQpCisjaWYgIUhBVkUoQVZGT1VOREFUSU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBP
UlQpICYmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICAgICBpZiAo
IWhhc0NhcHRpb25zICYmIGhhdmVDQ1RyYWNrKQogICAgICAgICBwcm9jZXNzTGVnYWN5Q2xvc2Vk
Q2FwdGlvbnNUcmFja3MoKTsKLSNlbmRpZgotICAgIAorI2VsaWYgIUhBVkUoQVZGT1VOREFUSU9O
X0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQpCisgICAgaWYgKGhhdmVDQ1RyYWNrKQorICAgICAgICBw
cm9jZXNzTGVnYWN5Q2xvc2VkQ2FwdGlvbnNUcmFja3MoKTsKICNlbmRpZgogCiAgICAgc2V0SGFz
Q2xvc2VkQ2FwdGlvbnMoaGFzQ2FwdGlvbnMpOwpAQCAtMTMzMCw3ICsxMzI4LDYgQEAgUmV0YWlu
UHRyPEFWQXNzZXRSZXNvdXJjZUxvYWRpbmdSZXF1ZXN0PgogfQogI2VuZGlmCiAKLSNpZiBIQVZF
KEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2xlYXJUZXh0VHJhY2tzKCkKIHsKQEAgLTEzNDIsMjEgKzEz
MzksMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOgogICAgIG1f
dGV4dFRyYWNrcy5jbGVhcigpOwogfQogCi1BVk1lZGlhU2VsZWN0aW9uR3JvdXBUeXBlKiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZv
ckxlZ2libGVNZWRpYSgpCi17Ci0gICAgaWYgKCFtX2F2QXNzZXQpCi0gICAgICAgIHJldHVybiBu
aWw7Ci0KLSAgICBpZiAoW21fYXZBc3NldC5nZXQoKSBzdGF0dXNPZlZhbHVlRm9yS2V5OkAiYXZh
aWxhYmxlTWVkaWFDaGFyYWN0ZXJpc3RpY3NXaXRoTWVkaWFTZWxlY3Rpb25PcHRpb25zIiBlcnJv
cjpOVUxMXSAhPSBBVktleVZhbHVlU3RhdHVzTG9hZGVkKQotICAgICAgICByZXR1cm4gbmlsOwot
Ci0gICAgcmV0dXJuIFttX2F2QXNzZXQuZ2V0KCkgbWVkaWFTZWxlY3Rpb25Hcm91cEZvck1lZGlh
Q2hhcmFjdGVyaXN0aWM6QVZNZWRpYUNoYXJhY3RlcmlzdGljTGVnaWJsZV07Ci19Ci0KICNpZiAh
SEFWRShBVkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCkKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cHJvY2Vzc0xlZ2FjeUNsb3NlZENhcHRpb25zVHJh
Y2tzKCkKIHsKKyNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAg
ICAgW21fYXZQbGF5ZXJJdGVtLmdldCgpIHNlbGVjdE1lZGlhT3B0aW9uOm5pbCBpbk1lZGlhU2Vs
ZWN0aW9uR3JvdXA6c2FmZU1lZGlhU2VsZWN0aW9uR3JvdXBGb3JMZWdpYmxlTWVkaWEoKV07Cisj
ZW5kaWYKIAogICAgIFZlY3RvcjxSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRj4gPiBy
ZW1vdmVkVGV4dFRyYWNrcyA9IG1fdGV4dFRyYWNrczsKICAgICBOU0FycmF5ICp0cmFja3MgPSBb
bV9hdlBsYXllckl0ZW0uZ2V0KCkgdHJhY2tzXTsKQEAgLTE0MTUsNiArMTQwMywxOCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6CiAgICAgCiB9CiAKKyNpZiBIQVZF
KEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCitBVk1lZGlhU2VsZWN0aW9uR3Jv
dXBUeXBlKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzYWZlTWVkaWFTZWxl
Y3Rpb25Hcm91cEZvckxlZ2libGVNZWRpYSgpCit7CisgICAgaWYgKCFtX2F2QXNzZXQpCisgICAg
ICAgIHJldHVybiBuaWw7CisgICAgCisgICAgaWYgKFttX2F2QXNzZXQuZ2V0KCkgc3RhdHVzT2ZW
YWx1ZUZvcktleTpAImF2YWlsYWJsZU1lZGlhQ2hhcmFjdGVyaXN0aWNzV2l0aE1lZGlhU2VsZWN0
aW9uT3B0aW9ucyIgZXJyb3I6TlVMTF0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICByZXR1cm4gW21fYXZBc3NldC5nZXQoKSBtZWRpYVNl
bGVjdGlvbkdyb3VwRm9yTWVkaWFDaGFyYWN0ZXJpc3RpYzpBVk1lZGlhQ2hhcmFjdGVyaXN0aWNM
ZWdpYmxlXTsKK30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpw
cm9jZXNzTWVkaWFTZWxlY3Rpb25PcHRpb25zKCkKIHsKICAgICBBVk1lZGlhU2VsZWN0aW9uR3Jv
dXBUeXBlICpsZWdpYmxlR3JvdXAgPSBzYWZlTWVkaWFTZWxlY3Rpb25Hcm91cEZvckxlZ2libGVN
ZWRpYSgpOwpAQCAtMTQ1OSw2ICsxNDU5LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOgogCiAgICAgbV9jdXJyZW50VHJhY2stPnByb2Nlc3NDdWUocmVpbnRlcnBy
ZXRfY2FzdDxDRkFycmF5UmVmPihhdHRyaWJ1dGVkU3RyaW5ncyksIHRpbWUpOwogfQorI2VuZGlm
IC8vIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKIAogdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRDdXJyZW50VHJhY2soSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRiAqdHJhY2spCiB7CkBAIC0xNDcyLDE3ICsxNDczLDE5IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzoKICAgICBpZiAodHJhY2spIHsKICAg
ICAgICAgaWYgKHRyYWNrLT5pc0xlZ2FjeUNsb3NlZENhcHRpb25zVHJhY2soKSkKICAgICAgICAg
ICAgIFttX2F2UGxheWVyLmdldCgpIHNldENsb3NlZENhcHRpb25EaXNwbGF5RW5hYmxlZDpZRVNd
OworI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgW21fYXZQbGF5ZXJJdGVtLmdldCgpIHNlbGVjdE1lZGlhT3B0aW9u
OnN0YXRpY19jYXN0PEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDKj4odHJhY2spLT5tZWRp
YVNlbGVjdGlvbk9wdGlvbigpIGluTWVkaWFTZWxlY3Rpb25Hcm91cDpzYWZlTWVkaWFTZWxlY3Rp
b25Hcm91cEZvckxlZ2libGVNZWRpYSgpXTsKKyNlbmRpZgogICAgIH0gZWxzZSB7CisjaWYgSEFW
RShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogICAgICAgICBbbV9hdlBsYXll
ckl0ZW0uZ2V0KCkgc2VsZWN0TWVkaWFPcHRpb246MCBpbk1lZGlhU2VsZWN0aW9uR3JvdXA6c2Fm
ZU1lZGlhU2VsZWN0aW9uR3JvdXBGb3JMZWdpYmxlTWVkaWEoKV07CisjZW5kaWYKICAgICAgICAg
W21fYXZQbGF5ZXIuZ2V0KCkgc2V0Q2xvc2VkQ2FwdGlvbkRpc3BsYXlFbmFibGVkOk5PXTsKICAg
ICB9CiAKIH0KIAotI2VuZGlmIC8vIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9S
VCkKLQogU3RyaW5nIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Omxhbmd1YWdl
T2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2xhbmd1YWdlT2ZQcmlt
YXJ5QXVkaW9UcmFjay5pc051bGwoKSkKQEAgLTE0OTEsNyArMTQ5NCw3IEBAIFN0cmluZyBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmoKICAgICBpZiAoIW1fYXZQbGF5ZXJJdGVtLmdl
dCgpKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAotI2lmIEhBVkUoQVZGT1VOREFU
SU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkKKyNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxF
Q1RJT05fR1JPVVApCiAgICAgLy8gSWYgQVZGb3VuZGF0aW9uIGhhcyBhbiBhdWRpYmxlIGdyb3Vw
LCByZXR1cm4gdGhlIGxhbmd1YWdlIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgYXVkaWJsZSBv
cHRpb24uCiAgICAgQVZNZWRpYVNlbGVjdGlvbkdyb3VwVHlwZSAqYXVkaWJsZUdyb3VwID0gW21f
YXZBc3NldC5nZXQoKSBtZWRpYVNlbGVjdGlvbkdyb3VwRm9yTWVkaWFDaGFyYWN0ZXJpc3RpYzpB
Vk1lZGlhQ2hhcmFjdGVyaXN0aWNBdWRpYmxlXTsKICAgICBBVk1lZGlhU2VsZWN0aW9uT3B0aW9u
VHlwZSAqY3VycmVudGx5U2VsZWN0ZWRBdWRpYmxlT3B0aW9uID0gW21fYXZQbGF5ZXJJdGVtLmdl
dCgpIHNlbGVjdGVkTWVkaWFPcHRpb25Jbk1lZGlhU2VsZWN0aW9uR3JvdXA6YXVkaWJsZUdyb3Vw
XTsKQEAgLTE1MDEsNyArMTUwNCw3IEBAIFN0cmluZyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmoKIAogICAgICAgICByZXR1cm4gbV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2s7
CiAgICAgfQotI2VuZGlmIC8vIEhBVkUoQVZGT1VOREFUSU9OX1RFWFRfVFJBQ0tfU1VQUE9SVCkK
KyNlbmRpZiAvLyBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAKICAg
ICAvLyBBVkZvdW5kYXRpb24gc3ludGhlc2l6ZXMgYW4gYXVkaWJsZSBncm91cCB3aGVuIHRoZXJl
IGlzIG9ubHkgb25lIHVuZ3JvdXBlZCBhdWRpbyB0cmFjayBpZiB0aGVyZSBpcyBhbHNvIGEgbGVn
aWJsZSBncm91cCAob25lIG9yCiAgICAgLy8gbW9yZSBpbi1iYW5kIHRleHQgdHJhY2tzKS4gSXQg
ZG9lc24ndCBrbm93IGFib3V0IG91dC1vZi1iYW5kIHRyYWNrcywgc28gaWYgdGhlcmUgaXMgYSBz
aW5nbGUgYXVkaW8gdHJhY2sgcmV0dXJuIGl0cyBsYW5ndWFnZS4KQEAgLTE2NTYsNyArMTY1OSw3
IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRoIG8KICAgICB9CiB9CiAK
LSNpZiBIQVZFKEFWRk9VTkRBVElPTl9URVhUX1RSQUNLX1NVUFBPUlQpCisjaWYgSEFWRShBVkZP
VU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogLSAodm9pZClsZWdpYmxlT3V0cHV0Oihp
ZClvdXRwdXQgZGlkT3V0cHV0QXR0cmlidXRlZFN0cmluZ3M6KE5TQXJyYXkgKilzdHJpbmdzIG5h
dGl2ZVNhbXBsZUJ1ZmZlcnM6KE5TQXJyYXkgKiluYXRpdmVTYW1wbGVzIGZvckl0ZW1UaW1lOihD
TVRpbWUpaXRlbVRpbWUKIHsKICAgICBVTlVTRURfUEFSQU0ob3V0cHV0KTsKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE0OTcwMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDEzLTA1LTA3ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEluYmFuZCB0ZXh0IHRyYWNrcyBhcmUgbm90IGlu
IHRleHQgdHJhY2sgbWVudSBvbiBMaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTU3NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy1saW9uL21lZGlhL3ZpZGVvLWNvbnRyb2xz
LWNhcHRpb25zLXRyYWNrbWVudS1sb2NhbGl6ZWQtZXhwZWN0ZWQudHh0OgorCiAyMDEzLTA1LTA3
ICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgRXhjbHVz
aW9uc10gc2hhcGUtaW5zaWRlLCBzaGFwZS1wYWRkaW5nLCBwb2x5Z29uIHRlc3QgZmFpbGluZyB3
aGVuIHN1YnBpeGVsIGxheW91dCBpcyBkaXNhYmxlZApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLWxpb24vbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LWxvY2Fs
aXplZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LWxpb24vbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LWxvY2FsaXplZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDE0OTU5NSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1saW9uL21lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS1sb2NhbGl6ZWQt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNCwxMiArMTQsMTIgQEAgU2Vjb25kIGl0
ZW0gaW4gY2FwdGlvbnMgbWVudSBzaG91bGQgYmUgbAogRVhQRUNURUQgKGl0ZW0udGV4dENvbnRl
bnQgPT0gJ0F1dG9tYXRpYyAoRW5nbGlzaCknKSBPSwogCiBUaGlyZCBpdGVtIGluIGNhcHRpb25z
IG1lbnUgc2hvdWxkIGJlIGxhYmVsbGVkICdFbmdsaXNoIENDJwotRVhQRUNURUQgKGl0ZW0udGV4
dENvbnRlbnQgPT0gJ0VuZ2xpc2ggQ0MnKSwgT0JTRVJWRUQgJ0xhdWdoIFRyYWNrIChFbmdsaXNo
LVVuaXRlZCBTdGF0ZXMpJyBGQUlMCitFWFBFQ1RFRCAoaXRlbS50ZXh0Q29udGVudCA9PSAnRW5n
bGlzaCBDQycpIE9LCiAKIEZvdXJ0aCBpdGVtIGluIGNhcHRpb25zIG1lbnUgc2hvdWxkIGJlIGxh
YmVsbGVkICdMYXVnaCBUcmFjayAoRW5nbGlzaC1Vbml0ZWQgU3RhdGVzKScKLUVYUEVDVEVEIChp
dGVtLnRleHRDb250ZW50ID09ICdMYXVnaCBUcmFjayAoRW5nbGlzaC1Vbml0ZWQgU3RhdGVzKScp
LCBPQlNFUlZFRCAnVW5rbm93biBTREgnIEZBSUwKK0VYUEVDVEVEIChpdGVtLnRleHRDb250ZW50
ID09ICdMYXVnaCBUcmFjayAoRW5nbGlzaC1Vbml0ZWQgU3RhdGVzKScpIE9LCiAKIEZpZnRoIGl0
ZW0gaW4gY2FwdGlvbnMgbWVudSBzaG91bGQgYmUgbGFiZWxsZWQgJ1Vua25vd24gU0RIJwotVHlw
ZUVycm9yOiAndW5kZWZpbmVkJyBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdpdGVtLnRl
eHRDb250ZW50JykKK0VYUEVDVEVEIChpdGVtLnRleHRDb250ZW50ID09ICdVbmtub3duIFNESCcp
IE9LCiBFTkQgT0YgVEVTVAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>