<?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>145193</bug_id>
          
          <creation_ts>2015-05-19 16:23:17 -0700</creation_ts>
          <short_desc>Touching HTMLMediaElement.h or MediaPlayer.h causes a world rebuild.</short_desc>
          <delta_ts>2015-05-20 16:12:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1096086</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-05-19 16:23:17 -0700</bug_when>
    <thetext>Touching HTMLMediaElement.h or MediaPlayer.h causes a world rebuild.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096088</commentid>
    <comment_count>1</comment_count>
      <attachid>253410</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-05-19 16:33:09 -0700</bug_when>
    <thetext>Created attachment 253410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096089</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-19 16:36:03 -0700</bug_when>
    <thetext>Attachment 253410 did not pass style-queue:


ERROR: Source/WebCore/html/HTMLMediaElementEnums.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/html/HTMLMediaElementEnums.h:48:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 31 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>1096262</commentid>
    <comment_count>3</comment_count>
      <attachid>253410</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-05-20 09:43:41 -0700</bug_when>
    <thetext>Comment on attachment 253410
Patch

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

&gt; Source/WebCore/html/HTMLMediaElementEnums.h:45
&gt; +    enum DelayedActionType {
&gt; +        LoadMediaResource = 1 &lt;&lt; 0,
&gt; +        ConfigureTextTracks = 1 &lt;&lt; 1,
&gt; +        TextTrackChangesNotification = 1 &lt;&lt; 2,
&gt; +        ConfigureTextTrackDisplay = 1 &lt;&lt; 3,
&gt; +        CheckPlaybackTargetCompatablity = 1 &lt;&lt; 4,
&gt; +
&gt; +        EveryDelayedAction = LoadMediaResource | ConfigureTextTracks | TextTrackChangesNotification | ConfigureTextTrackDisplay | CheckPlaybackTargetCompatablity,
&gt; +    };

Does this need to be visible outside of HTMLMediaElement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096265</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-05-20 09:47:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 253410 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=253410&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElementEnums.h:45
&gt; &gt; +    enum DelayedActionType {
&gt; &gt; +        LoadMediaResource = 1 &lt;&lt; 0,
&gt; &gt; +        ConfigureTextTracks = 1 &lt;&lt; 1,
&gt; &gt; +        TextTrackChangesNotification = 1 &lt;&lt; 2,
&gt; &gt; +        ConfigureTextTrackDisplay = 1 &lt;&lt; 3,
&gt; &gt; +        CheckPlaybackTargetCompatablity = 1 &lt;&lt; 4,
&gt; &gt; +
&gt; &gt; +        EveryDelayedAction = LoadMediaResource | ConfigureTextTracks | TextTrackChangesNotification | ConfigureTextTrackDisplay | CheckPlaybackTargetCompatablity,
&gt; &gt; +    };
&gt; 
&gt; Does this need to be visible outside of HTMLMediaElement?

It does to HTMLAudioElement, but it should go inside protected:, along with all the methods which take or return it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096314</commentid>
    <comment_count>5</comment_count>
      <attachid>253456</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-05-20 12:23:15 -0700</bug_when>
    <thetext>Created attachment 253456
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096320</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-20 12:40:09 -0700</bug_when>
    <thetext>Attachment 253456 did not pass style-queue:


ERROR: Source/WebCore/html/HTMLMediaElementEnums.h:47:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/html/HTMLMediaElementEnums.h:48:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 31 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>1096378</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-05-20 16:12:21 -0700</bug_when>
    <thetext>Committed r184670: &lt;http://trac.webkit.org/changeset/184670&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253410</attachid>
            <date>2015-05-19 16:33:09 -0700</date>
            <delta_ts>2015-05-20 09:43:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145193-20150519163306.patch</filename>
            <type>text/plain</type>
            <size>67272</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGU1MjFmY2FkYmU3ZWJm
ZTUyY2FjMjA1ZTY2YjcyMjFhZjU2MzZkOC4uY2E5ZjU1YTFhOGY4MmE2NWMyNTVmMWYzNjJmOTA0
ZjA4MjczMjZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE1LTA1LTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFRvdWNoaW5nIEhUTUxNZWRp
YUVsZW1lbnQuaCBvciBNZWRpYVBsYXllci5oIGNhdXNlcyBhIHdvcmxkIHJlYnVpbGQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUxOTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIVE1MTWVkaWFFbGVt
ZW50LmggYW5kIE1lZGlhUGxheWVyLmggYXJlIGluY2x1ZGVkIGluIGEgbnVtYmVyIG9mIGhlYWRl
cnMgc29sZWx5IGZvciBhY2Nlc3MgdG8gdGhlIGVudW1zCisgICAgICAgIGRlZmluZWQgd2l0aGlu
IHRoZSBjbGFzc2VzIGNvbnRhaW5lZCB3aXRoaW4uIE1vdmUgdGhlc2UgZW51bXMgaW50byB0aGVp
ciBvd24tLW90aGVyd2lzZSBlbXB0eS0tY2xhc3Nlcy4KKyAgICAgICAgVGhlbiBhZGQgYHVzaW5n
YCBkZWNsYXJhdGlvbnMgdG8gcHVsbCB0aG9zZSBpbmhlcml0ZWQgZW51bXMgYmFjayBpbnRvIHRo
ZSBuYW1lc3BhY2Ugb2YgSFRNTE1lZGlhRWxlbWVudAorICAgICAgICBhbmQgTWVkaWFQbGF5ZXIu
CisKKyAgICAgICAgQ2xhc3NlcyBhbmQgaGVhZGVycyB3aGljaCBkbyBub3QgbmVlZCB0byBkaXJl
Y3RseSBpbmNsdWRlIEhUTUxNZWRpYUVsZW1lbnQuaCBjYW4gbm93IGluY2x1ZGUgSFRNTE1lZGlh
RWxlbWVudEVudW1zLmgKKyAgICAgICAgaW5zdGVhZDsgdGhlIHNhbWUgZ29lcyBmb3IgTWVkaWFQ
bGF5ZXIuaCBhbmQgTWVkaWFQbGF5ZXJFbnVtcy5oLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IGZpbGVzIHRvIHByb2plY3QuCisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OlRyYWNrR3JvdXA6OlRyYWNrR3JvdXApOiBNb3ZlIGRlZmluaXRpb24gaGVyZSBm
cm9tIHRoZSBoZWFkZXIuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp2aWRlb0Z1bGxzY3JlZW5HcmF2aXR5KTog
TWVkaWFQbGF5ZXIgLT4gTWVkaWFQbGF5ZXJFbnVtcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OnByZWxvYWRWYWx1ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6VHJhY2tHcm91cDo6VHJhY2tHcm91cCk6IERlbGV0ZWQ7IG1vdmVkIHRv
IGltcGxlbWVudGF0aW9uIGZpbGUuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50RW51
bXMuaDogQWRkZWQuCisgICAgICAgICogaHRtbC9NZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaDog
SW5oZXJpdCBmcm9tIEhUTUxNZWRpYUVsZW1lbnRFbnVtcy4KKyAgICAgICAgKiBwYWdlL0Nocm9t
ZUNsaWVudC5oOiBIVE1MTWVkaWFFbGVtZW50IC0+IEhUTUxNZWRpYUVsZW1lbnRFbnVtcy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOiBNZWRpYVBsYXllciAtPiBN
ZWRpYVBsYXllckVudW1zLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
RW51bXMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJBVktpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXIgZW50ZXJGdWxsc2NyZWVuOm1vZGU6XSk6IEhUTUxNZWRpYUVsZW1lbnQgLT4gSFRN
TE1lZGlhRWxlbWVudEVudW1zLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4pOiBEaXR0by4KKyAgICAgICAgKFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW5JbnRlcm5hbCk6IERpdHRv
LgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNj
cmVlbik6IERpdHRvLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmV4aXRGdWxsc2NyZWVuSW50ZXJuYWwpOiBEaXR0by4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbkludGVybmFsKTogRGl0dG8uCisg
ICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cmVxdWVzdEhpZGVBbmRF
eGl0RnVsbHNjcmVlbik6IERpdHRvLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6Om1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9PcHRpbWl6ZWQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxsU3RhcnRPcHRpbWl6
ZWRGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZGlkU3RvcE9wdGltaXplZEZ1bGxzY3JlZW4pOiBEaXR0by4KKyAgICAgICAgKFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpkaWRDYW5jZWxPcHRpbWl6ZWRGdWxsc2Ny
ZWVuKTogRGl0dG8uCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
c2V0TW9kZSk6IERpdHRvLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmNsZWFyTW9kZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0VsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQp
OiBEaXR0by4KKwogMjAxNS0wNS0xOSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBTY3JvbGwtc25hcCBhbmltYXRpb25zIHNob3VsZCBub3Qgc3RhcnQgb24g
YXhlcyB3aXRoIHplcm8tZGVsdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1MzgzZTI1YTk5ZDk0N2Ix
YWQ2OTc3NWQwNzkyOTYzYjJjNjU4YjI3Li41MTQ3MTJmOGY1N2UyNGNmZTFjNjMyMWQzODZhZDk5
YmZmNzI0YzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUtMDUtMTkg
IEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgVG91Y2hpbmcgSFRN
TE1lZGlhRWxlbWVudC5oIG9yIE1lZGlhUGxheWVyLmggY2F1c2VzIGEgd29ybGQgcmVidWlsZC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTE5Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBIVE1M
TWVkaWFFbGVtZW50RW51bXMgaW5zdGVhZCBvZiBIVE1MTWVkaWFFbGVtZW50LgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjplbnRl
clZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6IEhUTUxNZWRpYUVsZW1lbnQgLT4gSFRN
TE1lZGlhRWxlbWVudEVudW1zLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViVmlldyBfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6bW9kZTpd
KTogRGl0dG8uCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKwogMjAxNS0w
NS0xOCAgU2thY2hrb3YgQWxleGFuZHIgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAgICAgICAg
IFtFUzZdIEFycm93IGZ1bmN0aW9uIHN5bnRheC4gRmVhdHVyZSBmbGFnIGZvciBhcnJvdyBmdW5j
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDZmZmNkMDFhZTFlZDZjYWE5NDg5YTFjZmE5MDY1MGNjN2E1OTE5
YzkuLjZjMWIzNGE0MzM1OTlmM2VhMWQ5NzIyN2FhODdiNDcyOTE2ZWIxNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMyBAQAorMjAxNS0wNS0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKworICAgICAgICBUb3VjaGluZyBIVE1MTWVkaWFFbGVtZW50Lmggb3IgTWVkaWFQbGF5
ZXIuaCBjYXVzZXMgYSB3b3JsZCByZWJ1aWxkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1MTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXNlIEhUTUxNZWRpYUVsZW1lbnRFbnVtcyBpbnN0ZWFkIG9m
IEhUTUxNZWRpYUVsZW1lbnQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pc1Nob3dpbmdWaWRlb09wdGltaXplZF0p
OiBIVE1MTWVkaWFFbGVtZW50IC0+IEhUTUxNZWRpYUVsZW1lbnRFbnVtcy4KKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Omhh
c01vZGUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxD
b250ZXh0OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOiBE
aXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpm
dWxsc2NyZWVuTW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4dDo6ZnVsbHNjcmVl
bk1vZGUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQ29udGV4dDo6c2V0RnVsbHNjcmVlbk1vZGUpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9y
VmlkZW9FbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVlbik6IERpdHRv
LgorCiAyMDE1LTA1LTE5ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgaGFzIGluY29ycmVjdCBPU19WRVJT
SU9OX01JTl9SRVFVSVJFRCBjb25kaXRpb25hbHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjA4NWEwNzA3MmQ2MDk4ZDE3OTQ0
MDNlNTBmMWU0MzcwYWQ2YThkMS4uZDYxZTRhYjUwZTc4ZWIwYTVkMzk2Y2MyYzEyNmNmNzRkZjI2
ZThjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNTcyOSw2ICs1NzI5LDggQEAKIAkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2
IC8qIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzRTI1MjExODA0NkJDRDAwRTI3RjU2IC8qIENTU0dy
aWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwICovOyB9OwogCQlDRDNFMjUyNDE4MDQ2QkNEMDBFMjdG
NTYgLyogQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QzRTI1MjIxODA0NkJDRDAwRTI3RjU2IC8qIENTU0dy
aWRUZW1wbGF0ZUFyZWFzVmFsdWUuaCAqLzsgfTsKIAkJQ0Q0QUM1MkExNDk2QUU5QTAwODdDNEVG
IC8qIENvbXBvc2l0ZS53YXYgaW4gQ29weSBBdWRpbyBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0QUM1MjgxNDk2QUUyRjAwODdDNEVGIC8qIENvbXBvc2l0
ZS53YXYgKi87IH07CisJCUNENTIwOUU0MUIwQkQ4MzgwMDc3MTg0RSAvKiBNZWRpYVBsYXllckVu
dW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDUy
MDlFMzFCMEJEODM4MDA3NzE4NEUgLyogTWVkaWFQbGF5ZXJFbnVtcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNENTIwOUU2MUIwQkQ5RTEwMDc3
MTg0RSAvKiBIVE1MTWVkaWFFbGVtZW50RW51bXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTIwOUU1MUIwQkQ5RTEwMDc3MTg0RSAvKiBIVE1MTWVk
aWFFbGVtZW50RW51bXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlDRDUyNDgxQTE4RTIwMEVEMDAwOEEwN0QgLyogRGlzcGxheVNsZWVwRGlzYWJs
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1
MjQ4MTgxOEUyMDBFRDAwMDhBMDdEIC8qIERpc3BsYXlTbGVlcERpc2FibGVyLmNwcCAqLzsgfTsK
IAkJQ0Q1MjQ4MUIxOEUyMDBFRDAwMDhBMDdEIC8qIERpc3BsYXlTbGVlcERpc2FibGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDUyNDgxOTE4RTIw
MEVEMDAwOEEwN0QgLyogRGlzcGxheVNsZWVwRGlzYWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDUzOTNEMzE3NUUwMTg2MDBDMDcxMjMg
LyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENTM5M0QxMTc1RTAxODYwMEMwNzEyMyAvKiBKU01lbW9yeUluZm8uY3BwICov
OyB9OwpAQCAtMTMyOTEsNiArMTMyOTMsOCBAQAogCQlDRDQwOTdGRjFBOEM4NTVGMDA0QzY1RTkg
LyogQ0ZOU1VSTENvbm5lY3Rpb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ0ZOU1VSTENvbm5lY3Rpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q0QUM1MjgxNDk2QUUyRjAwODdDNEVGIC8qIENvbXBvc2l0ZS53YXYgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhdWRpby53YXY7IG5hbWUgPSBDb21w
b3NpdGUud2F2OyBwYXRoID0gcGxhdGZvcm0vYXVkaW8vcmVzb3VyY2VzL0NvbXBvc2l0ZS53YXY7
IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQ0Q0RTBBRkExMUY3QkMyNzAwOUQzODEx
IC8qIGZ1bGxzY3JlZW4uY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5jc3M7IHBhdGggPSBmdWxsc2NyZWVu
LmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1MjA5RTMxQjBCRDgzODAwNzcx
ODRFIC8qIE1lZGlhUGxheWVyRW51bXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFQbGF5ZXJFbnVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDUy
MDlFNTFCMEJEOUUxMDA3NzE4NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDUyNDgxODE4RTIwMEVEMDAwOEEwN0QgLyogRGlzcGxh
eVNsZWVwRGlzYWJsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGlzcGxheVNsZWVwRGlzYWJsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDUyNDgxOTE4RTIwMEVEMDAwOEEwN0QgLyogRGlzcGxheVNsZWVwRGlzYWJsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVNsZWVwRGlzYWJsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1MzkzQ0IxNzVEQ0NFNjAwQzA3MTIzIC8qIE1lbW9y
eUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5SW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgxNTcsNiArMTgxNjEsNyBAQAogCQkJCUU0
NDYxMzkyMENENjMzMTAwMEZBREE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmNwcCAqLywKIAkJCQlF
NDQ2MTM5MzBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5oICovLAogCQkJCUU0
NDYxMzk0MENENjMzMTAwMEZBREE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmlkbCAqLywKKwkJCQlD
RDUyMDlFNTFCMEJEOUUxMDA3NzE4NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmggKi8sCiAJ
CQkJMDdGRTk5REExODgwN0E3RDAwMjU2NjQ4IC8qIEhUTUxNZWRpYVNlc3Npb24uY3BwICovLAog
CQkJCTA3RkU5OURCMTg4MDdBN0QwMDI1NjY0OCAvKiBIVE1MTWVkaWFTZXNzaW9uLmggKi8sCiAJ
CQkJQThFQTc5RUMwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVudC5jcHAgKi8sCkBA
IC0yMDg5MCw2ICsyMDg5NSw3IEBACiAJCQkJMDc4RTQzRDgxQUJCNkM3RTAwMUMyRkE2IC8qIE1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuaCAqLywKIAkJCQlFNEI0MUUwQzBDQkY5MEJEMDBBRjJF
Q0UgLyogTWVkaWFQbGF5ZXIuY3BwICovLAogCQkJCUU0QjQxRTBEMENCRjkwQkQwMEFGMkVDRSAv
KiBNZWRpYVBsYXllci5oICovLAorCQkJCUNENTIwOUUzMUIwQkQ4MzgwMDc3MTg0RSAvKiBNZWRp
YVBsYXllckVudW1zLmggKi8sCiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAwNUUwNzgyIC8qIE1lZGlh
UGxheWVyUHJpdmF0ZS5oICovLAogCQkJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRp
YVNvdXJjZVByaXZhdGUuaCAqLywKIAkJCQlDRERDMUU3OTE4QTk1MkYzMDAyN0E5RDQgLyogTWVk
aWFTb3VyY2VQcml2YXRlQ2xpZW50LmggKi8sCkBAIC0yMzg0Miw2ICsyMzg0OCw3IEBACiAJCQkJ
NTE3NDFEMEYwQjA3MjU5QTAwRUQ0NDJDIC8qIEJhY2tGb3J3YXJkQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0E4QzgxRTExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E4Q0E2MDExRTRFNkQxMDA4MTJGQjcgLyogQmFj
a0ZvcndhcmRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDUyMDlFNjFCMEJEOUUxMDA3NzE4
NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEVF
ODBDMjY0MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5RTYx
Q0ExMjZDQTVDNDAwQjYzRThEIC8qIEJhc2VCdXR0b25JbnB1dFR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTM3OUU2MUNDMTI2Q0E1QzQwMEI2M0U4RCAvKiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBl
LmggaW4gSGVhZGVycyAqLywKQEAgLTI3MDI1LDYgKzI3MDMyLDcgQEAKIAkJCQk3QUY5QjIwNjE4
Q0ZCMkRGMDBDNjRCRUYgLyogVlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E5
Mzg2ODYxOERDQzE0NTAwQjgyNjNEIC8qIFZUVFNjYW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUExNDgzMkIwMTg3RjYxOEQwMERBNjNBNiAvKiBXQUtBcHBLaXRTdHVicy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0Q1MjA5RTQxQjBCRDgzODAwNzcxODRFIC8qIE1lZGlhUGxheWVyRW51bXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUExNDgzMkIyMTg3RjYxRUQwMERBNjNBNiAvKiBXQUtDbGlwVmll
dy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0ODMyQjQxODdGNjI5QTAwREE2M0E2IC8qIFdBS1Jl
c3BvbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0ODMyQjYxODdGNjMxRjAwREE2M0E2IC8q
IFdBS1Njcm9sbFZpZXcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKaW5kZXggMGZmODZhYWMzZTk1MzJjOGM5NTk0ZjM0YThhYmMyZjhiNWQ1
YzhkNS4uZWY4Njg4NjZlNTUyOTUwZjM5YzBmYjcyMjk5YTMwZWZhMGI3OGFmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5j
bHVkZSAiTWVkaWFGcmFnbWVudFVSSVBhcnNlci5oIgogI2luY2x1ZGUgIk1lZGlhS2V5RXZlbnQu
aCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2lu
Y2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKICNpbmNsdWRlICJNZWRpYVJlc291cmNlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uTWFuYWdlci5oIgpAQCAtMjUzLDYgKzI1NCwy
NCBAQCBwcml2YXRlOgogfTsKICNlbmRpZgogCitzdHJ1Y3QgSFRNTE1lZGlhRWxlbWVudDo6VHJh
Y2tHcm91cCB7CisgICAgZW51bSBHcm91cEtpbmQgeyBDYXB0aW9uc0FuZFN1YnRpdGxlcywgRGVz
Y3JpcHRpb24sIENoYXB0ZXIsIE1ldGFkYXRhLCBPdGhlciB9OworCisgICAgVHJhY2tHcm91cChH
cm91cEtpbmQga2luZCkKKyAgICAgICAgOiB2aXNpYmxlVHJhY2soMCkKKyAgICAgICAgLCBkZWZh
dWx0VHJhY2soMCkKKyAgICAgICAgLCBraW5kKGtpbmQpCisgICAgICAgICwgaGFzU3JjTGFuZyhm
YWxzZSkKKyAgICB7CisgICAgfQorCisgICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2s+PiB0cmFj
a3M7CisgICAgUmVmUHRyPFRleHRUcmFjaz4gdmlzaWJsZVRyYWNrOworICAgIFJlZlB0cjxUZXh0
VHJhY2s+IGRlZmF1bHRUcmFjazsKKyAgICBHcm91cEtpbmQga2luZDsKKyAgICBib29sIGhhc1Ny
Y0xhbmc7Cit9OworCiBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQ
YXJzZXIpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIEFjdGl2
ZURPTU9iamVjdCgmZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CmluZGV4IDkyY2NlODY2ZjdkOWM0NzBkZjA2MmVhY2Q1NTFiMWM3M2UxYzFlMjMuLmU5NzMzMjlk
ZDg1MDEzZTQ0ODliODU3NGM2ZTUwY2NmMWIxZmY5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCkBAIC0zMSwxMCArMzEsMTAgQEAKICNpbmNsdWRlICJBY3RpdmVET01P
YmplY3QuaCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkdlbmVy
aWNUYXNrUXVldWUuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50RW51bXMuaCIKICNpbmNs
dWRlICJIVE1MTWVkaWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVy
LmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAjaW5jbHVkZSAiUGFnZVRo
cm90dGxlci5oIgogCkBAIC02Nyw2ICs2Nyw3IEBAIGNsYXNzIE1lZGlhQ29udHJvbGxlcjsKIGNs
YXNzIE1lZGlhQ29udHJvbHM7CiBjbGFzcyBNZWRpYUNvbnRyb2xzSG9zdDsKIGNsYXNzIE1lZGlh
RXJyb3I7CitjbGFzcyBNZWRpYVBsYXllcjsKIGNsYXNzIFRpbWVSYW5nZXM7CiAjaWYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQV9WMikKIGNsYXNzIE1lZGlhS2V5czsKQEAgLTEzMSwyMiArMTMyLDE0
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5
ZXIqKTsKICAgICBQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCk7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5H
cmF2aXR5KE1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkpOwotICAgIE1lZGlhUGxheWVyOjpWaWRl
b0dyYXZpdHkgdmlkZW9GdWxsc2NyZWVuR3Jhdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9G
dWxsc2NyZWVuR3Jhdml0eTsgfQorICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShN
ZWRpYVBsYXllckVudW1zOjpWaWRlb0dyYXZpdHkpOworICAgIE1lZGlhUGxheWVyRW51bXM6OlZp
ZGVvR3Jhdml0eSB2aWRlb0Z1bGxzY3JlZW5HcmF2aXR5KCkgY29uc3QgeyByZXR1cm4gbV92aWRl
b0Z1bGxzY3JlZW5HcmF2aXR5OyB9CiAjZW5kaWYKIAotICAgIGVudW0gRGVsYXllZEFjdGlvblR5
cGUgewotICAgICAgICBMb2FkTWVkaWFSZXNvdXJjZSA9IDEgPDwgMCwKLSAgICAgICAgQ29uZmln
dXJlVGV4dFRyYWNrcyA9IDEgPDwgMSwKLSAgICAgICAgVGV4dFRyYWNrQ2hhbmdlc05vdGlmaWNh
dGlvbiA9IDEgPDwgMiwKLSAgICAgICAgQ29uZmlndXJlVGV4dFRyYWNrRGlzcGxheSA9IDEgPDwg
MywKLSAgICAgICAgQ2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGFibGl0eSA9IDEgPDwgNCwKLQot
ICAgICAgICBFdmVyeURlbGF5ZWRBY3Rpb24gPSBMb2FkTWVkaWFSZXNvdXJjZSB8IENvbmZpZ3Vy
ZVRleHRUcmFja3MgfCBUZXh0VHJhY2tDaGFuZ2VzTm90aWZpY2F0aW9uIHwgQ29uZmlndXJlVGV4
dFRyYWNrRGlzcGxheSB8IENoZWNrUGxheWJhY2tUYXJnZXRDb21wYXRhYmxpdHksCi0gICAgfTsK
KyAgICB1c2luZyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkRlbGF5ZWRBY3Rpb25UeXBlOwogICAg
IHZvaWQgc2NoZWR1bGVEZWxheWVkQWN0aW9uKERlbGF5ZWRBY3Rpb25UeXBlKTsKICAgICAKLSAg
ICBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Q7CisgICAg
TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Q7CiAg
ICAgCiAgICAgYm9vbCBpbkFjdGl2ZURvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbkFjdGl2
ZURvY3VtZW50OyB9CiAgICAgCkBAIC0xNjMsNyArMTU2LDcgQEAgcHVibGljOgogI2VuZGlmCiAK
IC8vIG5ldHdvcmsgc3RhdGUKLSAgICBlbnVtIE5ldHdvcmtTdGF0ZSB7IE5FVFdPUktfRU1QVFks
IE5FVFdPUktfSURMRSwgTkVUV09SS19MT0FESU5HLCBORVRXT1JLX05PX1NPVVJDRSB9OworICAg
IHVzaW5nIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6TmV0d29ya1N0YXRlOwogICAgIE5ldHdvcmtT
dGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdDsKIAogICAgIFN0cmluZyBwcmVsb2FkKCkgY29uc3Q7
ICAgIApAQCAtMTc0LDYgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgY2FuUGxheVR5cGUo
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0gPSBTdHJpbmco
KSwgY29uc3QgVVJMJiA9IFVSTCgpKSBjb25zdDsKIAogLy8gcmVhZHkgc3RhdGUKKyAgICB1c2lu
ZyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlJlYWR5U3RhdGU7CiAgICAgdmlydHVhbCBSZWFkeVN0
YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNlZWtpbmcoKSBjb25z
dDsKIApAQCAtMzA2LDI0ICszMDAsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1UZXh0VHJhY2tN
ZW51SW50ZXJmYWNlKiBwbGF0Zm9ybVRleHRUcmFja01lbnUoKTsKICNlbmRpZgogCi0gICAgc3Ry
dWN0IFRyYWNrR3JvdXAgewotICAgICAgICBlbnVtIEdyb3VwS2luZCB7IENhcHRpb25zQW5kU3Vi
dGl0bGVzLCBEZXNjcmlwdGlvbiwgQ2hhcHRlciwgTWV0YWRhdGEsIE90aGVyIH07Ci0KLSAgICAg
ICAgVHJhY2tHcm91cChHcm91cEtpbmQga2luZCkKLSAgICAgICAgICAgIDogdmlzaWJsZVRyYWNr
KDApCi0gICAgICAgICAgICAsIGRlZmF1bHRUcmFjaygwKQotICAgICAgICAgICAgLCBraW5kKGtp
bmQpCi0gICAgICAgICAgICAsIGhhc1NyY0xhbmcoZmFsc2UpCi0gICAgICAgIHsKLSAgICAgICAg
fQotCi0gICAgICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPj4gdHJhY2tzOwotICAgICAgICBS
ZWZQdHI8VGV4dFRyYWNrPiB2aXNpYmxlVHJhY2s7Ci0gICAgICAgIFJlZlB0cjxUZXh0VHJhY2s+
IGRlZmF1bHRUcmFjazsKLSAgICAgICAgR3JvdXBLaW5kIGtpbmQ7Ci0gICAgICAgIGJvb2wgaGFz
U3JjTGFuZzsKLSAgICB9OwotCisgICAgc3RydWN0IFRyYWNrR3JvdXA7CiAgICAgdm9pZCBjb25m
aWd1cmVUZXh0VHJhY2tHcm91cEZvckxhbmd1YWdlKGNvbnN0IFRyYWNrR3JvdXAmKSBjb25zdDsK
ICAgICB2b2lkIGNvbmZpZ3VyZVRleHRUcmFja3MoKTsKICAgICB2b2lkIGNvbmZpZ3VyZVRleHRU
cmFja0dyb3VwKGNvbnN0IFRyYWNrR3JvdXAmKTsKQEAgLTMzMSw3ICszMDgsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRTZWxlY3RlZFRleHRUcmFjayhUZXh0VHJhY2sqKTsKIAogICAgIGJvb2wg
dGV4dFRyYWNrc0FyZVJlYWR5KCkgY29uc3Q7Ci0gICAgZW51bSBUZXh0VHJhY2tWaXNpYmlsaXR5
Q2hlY2tUeXBlIHsgQ2hlY2tUZXh0VHJhY2tWaXNpYmlsaXR5LCBBc3N1bWVUZXh0VHJhY2tWaXNp
YmlsaXR5Q2hhbmdlZCB9OworICAgIHVzaW5nIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VGV4dFRy
YWNrVmlzaWJpbGl0eUNoZWNrVHlwZTsKICAgICB2b2lkIGNvbmZpZ3VyZVRleHRUcmFja0Rpc3Bs
YXkoVGV4dFRyYWNrVmlzaWJpbGl0eUNoZWNrVHlwZSBjaGVja1R5cGUgPSBDaGVja1RleHRUcmFj
a1Zpc2liaWxpdHkpOwogICAgIHZvaWQgdXBkYXRlVGV4dFRyYWNrRGlzcGxheSgpOwogCkBAIC0z
ODEsMTMgKzM1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wg
aXNGdWxsc2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB0b2dnbGVGdWxsc2NyZWVu
U3RhdGUoKTsKIAotICAgIGVudW0gewotICAgICAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSA9
IDAsCi0gICAgICAgIFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCA9IDEgPDwgMCwKLSAgICAg
ICAgVmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCA9IDEgPDwgMSwKLSAgICB9OwotICAgIHR5
cGVkZWYgdWludDMyX3QgVmlkZW9GdWxsc2NyZWVuTW9kZTsKLQorICAgIHVzaW5nIE1lZGlhUGxh
eWVyRW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGU7CiAgICAgVmlkZW9GdWxsc2NyZWVuTW9kZSBm
dWxsc2NyZWVuTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTW9kZTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoVmlkZW9GdWxsc2NyZWVuTW9k
ZSBtb2RlKSB7IG1fdmlkZW9GdWxsc2NyZWVuTW9kZSA9IG1vZGU7IH0KIApAQCAtNDI0LDcgKzM5
NSw3IEBAIHB1YmxpYzoKICAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3Zp
ZGVyKCk7CiAjZW5kaWYKIAotICAgIGVudW0gSW52YWxpZFVSTEFjdGlvbiB7IERvTm90aGluZywg
Q29tcGxhaW4gfTsKKyAgICB1c2luZyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkludmFsaWRVUkxB
Y3Rpb247CiAgICAgYm9vbCBpc1NhZmVUb0xvYWRVUkwoY29uc3QgVVJMJiwgSW52YWxpZFVSTEFj
dGlvbik7CiAKICAgICBjb25zdCBTdHJpbmcmIG1lZGlhR3JvdXAoKSBjb25zdDsKQEAgLTQzNywx
NCArNDA4LDE0IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBmaWxlU2l6ZSgp
IGNvbnN0OwogCi0gICAgdm9pZCBtZWRpYUxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZSk7Ci0gICAgdm9pZCBtZWRpYUxvYWRpbmdGYWlsZWRGYXRhbGx5KE1lZGlhUGxheWVy
OjpOZXR3b3JrU3RhdGUpOworICAgIHZvaWQgbWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVy
RW51bXM6Ok5ldHdvcmtTdGF0ZSk7CisgICAgdm9pZCBtZWRpYUxvYWRpbmdGYWlsZWRGYXRhbGx5
KE1lZGlhUGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZSk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKQogICAgIFJlZlB0cjxWaWRlb1BsYXliYWNrUXVhbGl0eT4gZ2V0VmlkZW9QbGF5YmFja1F1
YWxpdHkoKTsKICNlbmRpZgogCi0gICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZFZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV9wcmVsb2FkOyB9CisgICAgTWVkaWFQbGF5ZXJFbnVtczo6UHJl
bG9hZCBwcmVsb2FkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ByZWxvYWQ7IH0KICAgICBIVE1M
TWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oKSBjb25zdCB7IHJldHVybiAqbV9tZWRpYVNlc3Np
b247IH0KIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19TQ1JJUFQpCkBAIC01MjQsOCArNDk1
LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5U3RhdGUoKSB7
IH0KICAgICAKLSAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUp
OwotICAgIHZvaWQgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUpOwor
ICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRlKTsKKyAg
ICB2b2lkIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGUpOwog
CiAgICAgZG91YmxlIGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpIGNvbnN0OwogICAgIGRvdWJsZSBy
ZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBjb25zdDsKQEAgLTcwNSw3ICs2NzYsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgaXNCbG9ja2VkKCkgY29uc3Q7CiAgICAgYm9vbCBpc0Jsb2NrZWRPbk1lZGlh
Q29udHJvbGxlcigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBoYXNDdXJyZW50U3JjKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gIW1fY3VycmVudFNyYy5pc0VtcHR5KCk7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgaXNMaXZlU3RyZWFtKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbW92aWVMb2Fk
VHlwZSgpID09IE1lZGlhUGxheWVyOjpMaXZlU3RyZWFtOyB9CisgICAgdmlydHVhbCBib29sIGlz
TGl2ZVN0cmVhbSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1vdmllTG9hZFR5cGUoKSA9PSBN
ZWRpYVBsYXllckVudW1zOjpMaXZlU3RyZWFtOyB9CiAgICAgYm9vbCBpc0F1dG9wbGF5aW5nKCkg
Y29uc3QgeyByZXR1cm4gbV9hdXRvcGxheWluZzsgfQogCiAgICAgdm9pZCB1cGRhdGVTbGVlcERp
c2FibGluZygpOwpAQCAtODAzLDEyICs3NzQsMTIgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXI7
CiAgICAgRmxvYXRSZWN0IG1fdmlkZW9GdWxsc2NyZWVuRnJhbWU7Ci0gICAgTWVkaWFQbGF5ZXI6
OlZpZGVvR3Jhdml0eSBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHk7CisgICAgTWVkaWFQbGF5ZXJF
bnVtczo6VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRpZgogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsKIAotICAgIE1lZGlhUGxh
eWVyOjpQcmVsb2FkIG1fcHJlbG9hZDsKKyAgICBNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIG1f
cHJlbG9hZDsKIAogICAgIERpc3BsYXlNb2RlIG1fZGlzcGxheU1vZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudEVudW1zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwNzk3OTE1Yzdh
MjY4YWYyZDBiZGYxZWZlNjEzZDMxNTk1MzYxZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oCkBAIC0wLDAgKzEsNTUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIEhUTUxNZWRpYUVsZW1lbnRFbnVtc19oCisjZGVmaW5lIEhUTUxNZWRp
YUVsZW1lbnRFbnVtc19oCisKKyNpbmNsdWRlICJNZWRpYVBsYXllckVudW1zLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTE1lZGlhRWxlbWVudEVudW1zIDogcHVibGljIE1l
ZGlhUGxheWVyRW51bXMgeworcHVibGljOgorICAgIHVzaW5nIE1lZGlhUGxheWVyRW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGU7CisKKyAgICBlbnVtIERlbGF5ZWRBY3Rpb25UeXBlIHsKKyAgICAg
ICAgTG9hZE1lZGlhUmVzb3VyY2UgPSAxIDw8IDAsCisgICAgICAgIENvbmZpZ3VyZVRleHRUcmFj
a3MgPSAxIDw8IDEsCisgICAgICAgIFRleHRUcmFja0NoYW5nZXNOb3RpZmljYXRpb24gPSAxIDw8
IDIsCisgICAgICAgIENvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkgPSAxIDw8IDMsCisgICAgICAg
IENoZWNrUGxheWJhY2tUYXJnZXRDb21wYXRhYmxpdHkgPSAxIDw8IDQsCisKKyAgICAgICAgRXZl
cnlEZWxheWVkQWN0aW9uID0gTG9hZE1lZGlhUmVzb3VyY2UgfCBDb25maWd1cmVUZXh0VHJhY2tz
IHwgVGV4dFRyYWNrQ2hhbmdlc05vdGlmaWNhdGlvbiB8IENvbmZpZ3VyZVRleHRUcmFja0Rpc3Bs
YXkgfCBDaGVja1BsYXliYWNrVGFyZ2V0Q29tcGF0YWJsaXR5LAorICAgIH07CisKKyAgICBlbnVt
IFJlYWR5U3RhdGUgeyBIQVZFX05PVEhJTkcsIEhBVkVfTUVUQURBVEEsIEhBVkVfQ1VSUkVOVF9E
QVRBLCBIQVZFX0ZVVFVSRV9EQVRBLCBIQVZFX0VOT1VHSF9EQVRBIH07CisgICAgZW51bSBOZXR3
b3JrU3RhdGUgeyBORVRXT1JLX0VNUFRZLCBORVRXT1JLX0lETEUsIE5FVFdPUktfTE9BRElORywg
TkVUV09SS19OT19TT1VSQ0UgfTsKKyAgICBlbnVtIFRleHRUcmFja1Zpc2liaWxpdHlDaGVja1R5
cGUgeyBDaGVja1RleHRUcmFja1Zpc2liaWxpdHksIEFzc3VtZVRleHRUcmFja1Zpc2liaWxpdHlD
aGFuZ2VkIH07CisgICAgZW51bSBJbnZhbGlkVVJMQWN0aW9uIHsgRG9Ob3RoaW5nLCBDb21wbGFp
biB9OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29u
dHJvbGxlckludGVyZmFjZS5oCmluZGV4IGNkMWFhN2FlNzllYjZhNTRhMDhkNGZlOWNmMjI0MzUz
Mjc5NGE2MWEuLmVlNzBlMmUyZTcxYzljODEwNjQ4ODQ3MmE4Zjg3N2I4MjllYTFhZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaApAQCAtMjgs
NiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxl
bWVudEVudW1zLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzYsNyArMzcsNyBAQCBjbGFzcyBUaW1lUmFuZ2VzOwogCiB0eXBlZGVmIGlu
dCBFeGNlcHRpb25Db2RlOwogCi1jbGFzcyBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UgeworY2xh
c3MgTWVkaWFDb250cm9sbGVySW50ZXJmYWNlIDogcHVibGljIEhUTUxNZWRpYUVsZW1lbnRFbnVt
cyB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TWVkaWFDb250cm9sbGVySW50ZXJmYWNlKCkgeyB9
OwogICAgIApAQCAtNjQsOCArNjUsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBib29s
IG11dGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRNdXRlZChib29sKSA9IDA7
Ci0gICAgCi0gICAgZW51bSBSZWFkeVN0YXRlIHsgSEFWRV9OT1RISU5HLCBIQVZFX01FVEFEQVRB
LCBIQVZFX0NVUlJFTlRfREFUQSwgSEFWRV9GVVRVUkVfREFUQSwgSEFWRV9FTk9VR0hfREFUQSB9
OworCisgICAgdXNpbmcgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpSZWFkeVN0YXRlOwogICAgIHZp
cnR1YWwgUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgPSAwOwogCiAgICAgLy8gTWVkaWFD
b250cm9sRWxlbWVudHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAwMzBkZDY4
ZWE3ZjA4ZTFlZmVhYmY2YmZkNjAzODU5NDEwNWNhY2JkLi5hNTZjZGMyOWFjMGZhYTdlMDc1OWZm
YjBjMjNiNTlmZDAwYzI4NjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTI5
LDcgKzI5LDcgQEAKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiSFRNTE1l
ZGlhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oIgogI2luY2x1
ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJMYXllckZsdXNoVGhyb3R0bGVTdGF0ZS5oIgog
I2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKQEAgLTMyNyw3ICszMjcsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oKSB7IHJldHVybiBmYWxz
ZTsgfQogI2lmIEVOQUJMRShWSURFTykKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnQ6
OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KICNlbmRpZgogICAgIHZpcnR1YWwgdm9p
ZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0Vs
ZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9Q
bGF5YmFjaygpIHsgcmV0dXJuIGZhbHNlOyB9IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggYzIwMjQxYzUzZjEwYWRhYjM2MTcwNWFmYzQ4
MDM2NzlmZmM1ODBiYS4uNTQ2MDJjYzg2NTcwZDM0MTY0NWRmZjdhMGJjN2NhY2RlZGI1ZGUwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBA
IC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlVSTC5oIgog
I2luY2x1ZGUgIkxheW91dFJlY3QuaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllckVudW1zLmgiCiAj
aW5jbHVkZSAiTWVkaWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCkBAIC0yODUsNyArMjg2LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxheWVyRG9jdW1lbnRIb3N0KCkgY29uc3QgeyByZXR1cm4g
U3RyaW5nKCk7IH0KIH07CiAKLWNsYXNzIE1lZGlhUGxheWVyIHsKK2NsYXNzIE1lZGlhUGxheWVy
IDogcHVibGljIE1lZGlhUGxheWVyRW51bXMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1l
ZGlhUGxheWVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmKTsKQEAgLTMxMSw3ICszMTIsNyBAQCBw
dWJsaWM6CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5
ZXIoUGxhdGZvcm1MYXllciopOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxv
YXRSZWN0KTsKLSAgICBlbnVtIFZpZGVvR3Jhdml0eSB7IFZpZGVvR3Jhdml0eVJlc2l6ZSwgVmlk
ZW9HcmF2aXR5UmVzaXplQXNwZWN0LCBWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsIH07Cisg
ICAgdXNpbmcgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5OwogICAgIHZvaWQgc2V0Vmlk
ZW9GdWxsc2NyZWVuR3Jhdml0eShWaWRlb0dyYXZpdHkpOwogCiAgICAgTlNBcnJheSAqdGltZWRN
ZXRhZGF0YSgpIGNvbnN0OwpAQCAtNDIyLDE2ICs0MjMsMTYgQEAgcHVibGljOgogCiAgICAgUGFz
c05hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKTsKIAotICAgIGVudW0g
TmV0d29ya1N0YXRlIHsgRW1wdHksIElkbGUsIExvYWRpbmcsIExvYWRlZCwgRm9ybWF0RXJyb3Is
IE5ldHdvcmtFcnJvciwgRGVjb2RlRXJyb3IgfTsKKyAgICB1c2luZyBNZWRpYVBsYXllckVudW1z
OjpOZXR3b3JrU3RhdGU7CiAgICAgTmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpOwogCi0gICAg
ZW51bSBSZWFkeVN0YXRlICB7IEhhdmVOb3RoaW5nLCBIYXZlTWV0YWRhdGEsIEhhdmVDdXJyZW50
RGF0YSwgSGF2ZUZ1dHVyZURhdGEsIEhhdmVFbm91Z2hEYXRhIH07CisgICAgdXNpbmcgTWVkaWFQ
bGF5ZXJFbnVtczo6UmVhZHlTdGF0ZTsKICAgICBSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKTsKIAot
ICAgIGVudW0gTW92aWVMb2FkVHlwZSB7IFVua25vd24sIERvd25sb2FkLCBTdG9yZWRTdHJlYW0s
IExpdmVTdHJlYW0gfTsKKyAgICB1c2luZyBNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBl
OwogICAgIE1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0OwogCi0gICAgZW51bSBQ
cmVsb2FkIHsgTm9uZSwgTWV0YURhdGEsIEF1dG8gfTsKKyAgICB1c2luZyBNZWRpYVBsYXllckVu
dW1zOjpQcmVsb2FkOwogICAgIFByZWxvYWQgcHJlbG9hZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0
UHJlbG9hZChQcmVsb2FkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxYWEwMTIwZjVhM2M2ODIwZTg2
NWMzZjQzMWJmYzA1YWY4YzVlM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmgKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgTWVkaWFQbGF5ZXJFbnVtc19oCisjZGVmaW5lIE1lZGlhUGxheWVyRW51
bXNfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUGxheWVyRW51bXMgewor
cHVibGljOgorICAgIGVudW0gTmV0d29ya1N0YXRlIHsgRW1wdHksIElkbGUsIExvYWRpbmcsIExv
YWRlZCwgRm9ybWF0RXJyb3IsIE5ldHdvcmtFcnJvciwgRGVjb2RlRXJyb3IgfTsKKyAgICBlbnVt
IFJlYWR5U3RhdGUgIHsgSGF2ZU5vdGhpbmcsIEhhdmVNZXRhZGF0YSwgSGF2ZUN1cnJlbnREYXRh
LCBIYXZlRnV0dXJlRGF0YSwgSGF2ZUVub3VnaERhdGEgfTsKKyAgICBlbnVtIE1vdmllTG9hZFR5
cGUgeyBVbmtub3duLCBEb3dubG9hZCwgU3RvcmVkU3RyZWFtLCBMaXZlU3RyZWFtIH07CisgICAg
ZW51bSBQcmVsb2FkIHsgTm9uZSwgTWV0YURhdGEsIEF1dG8gfTsKKyAgICBlbnVtIFZpZGVvR3Jh
dml0eSB7IFZpZGVvR3Jhdml0eVJlc2l6ZSwgVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0LCBWaWRl
b0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsIH07CisgICAgZW51bSB7CisgICAgICAgIFZpZGVvRnVs
bHNjcmVlbk1vZGVOb25lID0gMCwKKyAgICAgICAgVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJk
ID0gMSA8PCAwLAorICAgICAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkID0gMSA8PCAx
LAorICAgIH07CisgICAgdHlwZWRlZiB1aW50MzJfdCBWaWRlb0Z1bGxzY3JlZW5Nb2RlOworfTsK
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQuaAppbmRleCBhMjMzNjBj
ZTFiYWExMTgzZGI4YjNkOTAzODBhMDU2NzM0YjQxYjBhLi5lMjIzNzE3OTY3MjllMjFhZDRlZmU0
MjI0ODhlN2ZlYzI0MGE2ZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5oCkBAIC0y
OCwxNCArMjgsMTggQEAKIAogI2lmIFBMQVRGT1JNKElPUykKIAotI2ltcG9ydCA8V2ViQ29yZS9I
VE1MVmlkZW9FbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnRFbnVt
cy5oPgogCiBPQkpDX0NMQVNTIFVJVmlldzsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
SFRNTFZpZGVvRWxlbWVudDsKK30KKwogV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyIDogTlNPYmplY3QKIC0gKHZvaWQpc2V0VmlkZW9FbGVtZW50
OihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kil2aWRlb0VsZW1lbnQ7CiAtIChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50Kil2aWRlb0VsZW1lbnQ7Ci0tICh2b2lkKWVudGVyRnVsbHNjcmVlbjoo
VUlWaWV3ICopdmlldyBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKW1vZGU7CistICh2b2lkKWVudGVyRnVsbHNjcmVlbjooVUlWaWV3ICopdmlldyBt
b2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
bW9kZTsKIC0gKHZvaWQpZXhpdEZ1bGxzY3JlZW47CiAtICh2b2lkKXJlcXVlc3RIaWRlQW5kRXhp
dEZ1bGxzY3JlZW47CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQppbmRleCA3
YTUzNzM3NjI5MTkwZWQ0ZDcwYjY0MjFiMjk0ZjRmZjY1M2ZkMTcyLi5iMWMwYmU5MDQ1ZDAwYTU1
MjE2ZDE2ZWU1NzE3MGIyNGYzMjYxZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQu
bW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0LmgiCiAjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5o
IgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0hUTUxWaWRlb0VsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZFJ1bi5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTEyMSw3ICsxMjIsNyBAQCBwdWJsaWM6
CiAgICAgcmV0dXJuIF92aWRlb0VsZW1lbnQuZ2V0KCk7CiB9CiAKLS0gKHZvaWQpZW50ZXJGdWxs
c2NyZWVuOihVSVZpZXcgKil2aWV3IG1vZGU6KEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlbk1vZGUpbW9kZQorLSAodm9pZCllbnRlckZ1bGxzY3JlZW46KFVJVmlldyAqKXZpZXcgbW9k
ZTooSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGUKIHsKICAg
ICBbc2VsZiByZXRhaW5dOyAvLyBCYWxhbmNlZCBieSAtcmVsZWFzZSBpbiBkaWRFeGl0RnVsbHNj
cmVlbjoKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggZjIwNjc4NGY0OWQ5
YmQ3ODI3ZjQyM2YyZDIxY2IxNTU3OThiYmI1OC4uYjQ0YTNlMmE2Njk2ODVlODIzYzg2YWJhNWYw
ZjdlNWU3ZWI4NDYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTMwLDkgKzMw
LDEwIEBACiAjaWYgUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSA4MDAwMAogCiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudExpc3RlbmVyLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVE1M
TWVkaWFFbGVtZW50RW51bXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oPgorI2luY2x1
ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KQEAgLTg5
LDcgKzkwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZXRM
ZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIG9w
dGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZpcnR1YWwgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJu
YWxQbGF5YmFja1RhcmdldFR5cGUsIFdURjo6U3RyaW5nIGxvY2FsaXplZERldmljZU5hbWUpIG92
ZXJyaWRlOwogICAgIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZXR1cEZ1bGxz
Y3JlZW4oUGxhdGZvcm1MYXllciYsIGNvbnN0IEludFJlY3QmIGluaXRpYWxSZWN0LCBVSVZpZXcg
KiwgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd09wdGlt
aXplZEZ1bGxzY3JlZW4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZXR1cEZ1
bGxzY3JlZW4oUGxhdGZvcm1MYXllciYsIGNvbnN0IEludFJlY3QmIGluaXRpYWxSZWN0LCBVSVZp
ZXcgKiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFs
bG93T3B0aW1pemVkRnVsbHNjcmVlbik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lk
IGVudGVyRnVsbHNjcmVlbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBleGl0
RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbigpOwpAQCAtOTcsNyArOTgsNyBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJlcXVlc3RIaWRlQW5kRXhpdEZ1
bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgY29uc3QgSW50UmVjdCYgaW5saW5lUmVjdCk7CiAK
LSAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUoKSBjb25zdCB7
IHJldHVybiBtX21vZGU7IH0KKyAgICBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQogICAgIGJvb2wgYWxsb3dP
cHRpbWl6ZWRGdWxsc2NyZWVuKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd09wdGltaXplZEZ1bGxz
Y3JlZW47IH0KICAgICB2b2lkIHNldElzT3B0aW1pemVkKGJvb2wpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgbWF5QXV0b21hdGljYWxseVNob3dWaWRlb09wdGltaXplZCgpIGNvbnN0OwpAQCAt
MTA5LDE3ICsxMTAsMTcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkU3RvcE9wdGltaXplZEZ1bGxz
Y3JlZW4oKTsKICAgICB2b2lkIHdpbGxDYW5jZWxPcHRpbWl6ZWRGdWxsc2NyZWVuKCk7CiAgICAg
dm9pZCBkaWRDYW5jZWxPcHRpbWl6ZWRGdWxsc2NyZWVuKCk7Ci0gICAgdm9pZCBwcmVwYXJlRm9y
T3B0aW1pemVkRnVsbHNjcmVlblN0b3BXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9pZCAoXikoQk9P
TCkpOworICAgIHZvaWQgcHJlcGFyZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBs
ZXRpb25IYW5kbGVyKHZvaWQgKF4pKGJvb2wpKTsKIAotICAgIHZvaWQgc2V0TW9kZShIVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKLSAgICB2b2lkIGNsZWFyTW9kZShIVE1M
TWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKLSAgICBib29sIGhhc01vZGUoSFRN
TE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKSBjb25zdCB7IHJldHVybiBt
X21vZGUgJiBtb2RlOyB9Ci0gICAgYm9vbCBpc01vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9G
dWxsc2NyZWVuTW9kZSBtb2RlKSBjb25zdCB7IHJldHVybiBtX21vZGUgPT0gbW9kZTsgfQorICAg
IHZvaWQgc2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
OworICAgIHZvaWQgY2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSk7CisgICAgYm9vbCBoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZSBtb2RlKSBjb25zdCB7IHJldHVybiBtX21vZGUgJiBtb2RlOyB9CisgICAg
Ym9vbCBpc01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1v
ZGUpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZSA9PSBtb2RlOyB9CiAKIHByb3RlY3RlZDoKICAgICBX
RUJDT1JFX0VYUE9SVCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCgpOwogICAgIHZv
aWQgYmVnaW5TZXNzaW9uKCk7Ci0gICAgdm9pZCBzZXR1cEZ1bGxzY3JlZW5JbnRlcm5hbChQbGF0
Zm9ybUxheWVyJiwgY29uc3QgSW50UmVjdCYgaW5pdGlhbFJlY3QsIFVJVmlldyAqLCBIVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93T3B0aW1pemVkRnVsbHNj
cmVlbik7CisgICAgdm9pZCBzZXR1cEZ1bGxzY3JlZW5JbnRlcm5hbChQbGF0Zm9ybUxheWVyJiwg
Y29uc3QgSW50UmVjdCYgaW5pdGlhbFJlY3QsIFVJVmlldyAqLCBIVE1MTWVkaWFFbGVtZW50RW51
bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKTsK
ICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbk9wdGltaXplZCgpOwogICAgIHZvaWQgZW50ZXJGdWxs
c2NyZWVuU3RhbmRhcmQoKTsKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuSW50ZXJuYWwoY29uc3Qg
SW50UmVjdCYgZmluYWxSZWN0KTsKQEAgLTEzOCw3ICsxMzksNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
UmV0YWluUHRyPFVJVmlld0NvbnRyb2xsZXI+IG1fdmlld0NvbnRyb2xsZXI7CiAgICAgUmV0YWlu
UHRyPFVJVmlldz4gbV9wYXJlbnRWaWV3OwogICAgIFJldGFpblB0cjxVSVdpbmRvdz4gbV9wYXJl
bnRXaW5kb3c7Ci0gICAgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtX21v
ZGUgeyBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSB9OworICAgIEhU
TUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtX21vZGUgeyBIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lIH07CiAgICAgc3RkOjpmdW5j
dGlvbjx2b2lkKGJvb2wpPiBtX3ByZXBhcmVUb0lubGluZUNhbGxiYWNrOwogICAgIGJvb2wgbV9h
bGxvd09wdGltaXplZEZ1bGxzY3JlZW4geyBmYWxzZSB9OwogICAgIGJvb2wgbV9leGl0UmVxdWVz
dGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCBkMjhiYjZl
NzNiMzIxMmNlZmMwMWJiMDY2ZWJhNTYyNGEyM2M2N2IzLi4zNWU3ODY0ZDVkYTQ0Y2U1OTQ1YmQ3
YTI1MTA0Y2Q1ZDQ0ZWE1YTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC05
MjYsMTEgKzkyNiwxMSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpz
ZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYQogICAgIH0pOwogfQogCi12
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4oUGxh
dGZvcm1MYXllciYgdmlkZW9MYXllciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbFJl
Y3QsIFVJVmlldyogcGFyZW50VmlldywgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVu
TW9kZSBtb2RlLCBib29sIGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbikKK3ZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiB2
aWRlb0xheWVyLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsUmVjdCwgVUlWaWV3KiBw
YXJlbnRWaWV3LCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9k
ZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pCiB7CiAgICAgUmVmUHRyPFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMpOwogCi0gICAgQVNTRVJU
KG1vZGUgIT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworICAg
IEFTU0VSVChtb2RlICE9IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZU5vbmUpOwogICAgIG1fdmlkZW9MYXllciA9ICZ2aWRlb0xheWVyOwogCiAgICAgbV9tb2RlID0g
bW9kZTsKQEAgLTk0MCw3ICs5NDAsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllcgogICAgIH0p
OwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxz
Y3JlZW5JbnRlcm5hbChQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBpbml0aWFsUmVjdCwgVUlWaWV3KiBwYXJlbnRWaWV3LCBIVE1MTWVkaWFFbGVtZW50
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJvb2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVu
KQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVu
SW50ZXJuYWwoUGxhdGZvcm1MYXllciYgdmlkZW9MYXllciwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgaW5pdGlhbFJlY3QsIFVJVmlldyogcGFyZW50VmlldywgSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJvb2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVu
KQogewogICAgIExPRyhGdWxsc2NyZWVuLCAiV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OnNldHVwRnVsbHNjcmVlbkludGVybmFsKCVwKSIsIHRoaXMpOwogICAgIFVOVVNFRF9QQVJB
TSh2aWRlb0xheWVyKTsKQEAgLTEwMTksOSArMTAxOSw5IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbigpCiAgICAgUmVmUHRyPFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMpOwogICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtzdHJvbmdUaGlzXSB7CiAgICAgICAg
IFtzdHJvbmdUaGlzLT5tX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0QmFja2dyb3VuZENvbG9yOltb
Z2V0VUlDb2xvckNsYXNzKCkgYmxhY2tDb2xvcl0gQ0dDb2xvcl1dOwotICAgICAgICBpZiAoc3Ry
b25nVGhpcy0+bW9kZSgpID09IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVP
cHRpbWl6ZWQpCisgICAgICAgIGlmIChzdHJvbmdUaGlzLT5tb2RlKCkgPT0gSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKQogICAgICAgICAgICAgc3Ry
b25nVGhpcy0+ZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVkKCk7Ci0gICAgICAgIGVsc2UgaWYgKHN0
cm9uZ1RoaXMtPm1vZGUoKSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
U3RhbmRhcmQpCisgICAgICAgIGVsc2UgaWYgKHN0cm9uZ1RoaXMtPm1vZGUoKSA9PSBIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkKICAgICAgICAgICAg
IHN0cm9uZ1RoaXMtPmVudGVyRnVsbHNjcmVlblN0YW5kYXJkKCk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTA4NCwxNiArMTA4NCwxNiBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbkludGVy
bmFsKGNvbnN0IFdlYkNvcmU6OkludAogICAgIFtbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3
XSBsYXlvdXRJZk5lZWRlZF07CiAKIAotICAgIGlmIChpc01vZGUoSFRNTE1lZGlhRWxlbWVudDo6
VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkpIHsKKyAgICBpZiAoaXNNb2RlKEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkpIHsKICAgICAgICAg
W21fd2luZG93IHNldEhpZGRlbjpOT107CiAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVy
IHN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuXTsKLSAgICB9IGVsc2UgaWYgKGlzTW9kZShIVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkIHwgSFRNTE1lZGlhRWxlbWVu
dDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSkgeworICAgIH0gZWxzZSBpZiAoaXNNb2Rl
KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCB8IEhU
TUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSkgewogICAg
ICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHN0cm9uZ1RoaXMo
dGhpcyk7CiAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuQW5p
bWF0ZWQ6Tk8gY29tcGxldGlvbkhhbmRsZXI6W3N0cm9uZ1RoaXNdIChCT09MLCBOU0Vycm9yKikg
ewogICAgICAgICAgICAgW3N0cm9uZ1RoaXMtPm1fd2luZG93IHNldEhpZGRlbjpOT107CiAgICAg
ICAgICAgICBbc3Ryb25nVGhpcy0+bV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzdG9wT3B0aW1pemVk
RnVsbHNjcmVlbl07CiAgICAgICAgIH1dOwotICAgIH0gZWxzZSBpZiAoaXNNb2RlKEhUTUxNZWRp
YUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkpIHsKKyAgICB9IGVsc2UgaWYg
KGlzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFy
ZCkpIHsKICAgICAgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBz
dHJvbmdUaGlzKHRoaXMpOwogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBleGl0RnVs
bFNjcmVlbkFuaW1hdGVkOllFUyBjb21wbGV0aW9uSGFuZGxlcjpbc3Ryb25nVGhpc10gKEJPT0ws
IE5TRXJyb3IqKSB7CiAgICAgICAgICAgICBzdHJvbmdUaGlzLT5tX2V4aXRDb21wbGV0ZWQgPSB0
cnVlOwpAQCAtMTE0NSw5ICsxMTQ1LDkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW5JbnRlcm5hbCgpCiAgICAgW21fcGxheWVyVmlld0Nv
bnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBz
ZXRQbGF5ZXJDb250cm9sbGVyOm5pbF07CiAgICAgCi0gICAgaWYgKGhhc01vZGUoSFRNTE1lZGlh
RWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkpCisgICAgaWYgKGhhc01vZGUo
SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKSkKICAg
ICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3RvcE9wdGltaXplZEZ1bGxzY3JlZW5dOwot
ICAgIGlmIChoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFu
ZGFyZCkpCisgICAgaWYgKGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlU3RhbmRhcmQpKQogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBleGl0
RnVsbFNjcmVlbkFuaW1hdGVkOk5PIGNvbXBsZXRpb25IYW5kbGVyOltdIChCT09MLCBOU0Vycm9y
ICopIHsgfV07CiAgICAgCiAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHJlbW92
ZUZyb21TdXBlcnZpZXddOwpAQCAtMTE5Miw3ICsxMTkyLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpCiAgICAg
aWYgKCFtX2VudGVyUmVxdWVzdGVkKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgaWYgKGhh
c01vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkpCisg
ICAgaWYgKGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
T3B0aW1pemVkKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIExPRyhGdWxsc2NyZWVuLCAi
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxz
Y3JlZW4oJXApIiwgdGhpcyk7CkBAIC0xMjI4LDcgKzEyMjgsNyBAQCB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNp
YmxlLCBjbwogCiBib29sIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjptYXlBdXRv
bWF0aWNhbGx5U2hvd1ZpZGVvT3B0aW1pemVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gW21fcGxh
eWVyQ29udHJvbGxlciBpc1BsYXlpbmddICYmIG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgJiYgd2tJc09wdGltaXplZEZ1bGxzY3JlZW5TdXBw
b3J0ZWQoKTsKKyAgICByZXR1cm4gW21fcGxheWVyQ29udHJvbGxlciBpc1BsYXlpbmddICYmIG1f
bW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFy
ZCAmJiB3a0lzT3B0aW1pemVkRnVsbHNjcmVlblN1cHBvcnRlZCgpOwogfQogCiB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUo
c3RkOjpmdW5jdGlvbjx2b2lkKGJvb2wpPiBjYWxsYmFjaykKQEAgLTEyNDEsOSArMTI0MSw5IEBA
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1
cm5Ub0lubGluZShzdGQ6OmZ1bmN0aW9uCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Ojp3aWxsU3RhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuKCkKIHsKICAgICBMT0coRnVsbHNj
cmVlbiwgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxsU3RhcnRPcHRpbWl6
ZWRGdWxsc2NyZWVuKCVwKSIsIHRoaXMpOwotICAgIHNldE1vZGUoSFRNTE1lZGlhRWxlbWVudDo6
VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCk7CisgICAgc2V0TW9kZShIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQpOwogCi0gICAgaWYgKCFoYXNN
b2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkpCisgICAg
aWYgKCFoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0
YW5kYXJkKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMpOwpAQCAtMTI2MCw3ICsxMjYwLDcgQEAg
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0YXJ0T3B0aW1pemVk
RnVsbHNjcmVlbigpCiAgICAgICAgIFtzdHJvbmdUaGlzLT5tX3BsYXllclZpZXdDb250cm9sbGVy
IGV4aXRGdWxsU2NyZWVuQW5pbWF0ZWQ6WUVTIGNvbXBsZXRpb25IYW5kbGVyOltzdHJvbmdUaGlz
XSAoQk9PTCBjb21wbGV0ZWQsIE5TRXJyb3IqKSB7CiAgICAgICAgICAgICBpZiAoIWNvbXBsZXRl
ZCkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBzdHJvbmdUaGlzLT5jbGVh
ck1vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKTsKKyAg
ICAgICAgICAgIHN0cm9uZ1RoaXMtPmNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCk7CiAgICAgICAgICAgICBbc3Ryb25nVGhpcy0+bV93
aW5kb3cgc2V0SGlkZGVuOllFU107CiAgICAgICAgIH1dOwogICAgIH0pOwpAQCAtMTI5NCw3ICsx
Mjk0LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0b3BP
cHRpbWl6ZWRGdWxsc2NyZWVuKCkKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmRpZFN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuKCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwg
IldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpkaWRTdG9wT3B0aW1pemVkRnVsbHNj
cmVlbiglcCkiLCB0aGlzKTsKLSAgICBpZiAoaGFzTW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpKQorICAgIGlmIChoYXNNb2RlKEhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgbV9leGl0Q29tcGxldGVkID0gdHJ1ZTsKQEAgLTEzMDQsNyArMTMwNCw3IEBAIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0b3BPcHRpbWl6ZWRGdWxsc2Ny
ZWVuKCkKIAogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gc3Ry
b25nVGhpcyh0aGlzKTsKICAgICBXZWJUaHJlYWRSdW4oW3N0cm9uZ1RoaXNdIHsKLSAgICAgICAg
c3Ryb25nVGhpcy0+Y2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVPcHRpbWl6ZWQpOworICAgICAgICBzdHJvbmdUaGlzLT5jbGVhck1vZGUoSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKTsKICAgICAgICAgW3N0cm9u
Z1RoaXMtPm1fd2luZG93IHNldEhpZGRlbjpZRVNdOwogICAgICAgICBpZiAoc3Ryb25nVGhpcy0+
bV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCiAgICAgICAgICAgICBzdHJvbmdUaGlzLT5tX2Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRXhpdEZ1bGxzY3JlZW4oKTsKQEAgLTEzMjgsMTIg
KzEzMjgsMTIgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbENh
bmNlbE9wdGltaXplZEZ1bGxzY3JlZW4oKQogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZGlkQ2FuY2VsT3B0aW1pemVkRnVsbHNjcmVlbigpCiB7CiAgICAgTE9HKEZ1bGxz
Y3JlZW4sICJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkQ2FuY2VsT3B0aW1p
emVkRnVsbHNjcmVlbiglcCkiLCB0aGlzKTsKLSAgICBpZiAoaGFzTW9kZShIVE1MTWVkaWFFbGVt
ZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpKQorICAgIGlmIChoYXNNb2RlKEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBz
dHJvbmdUaGlzKHRoaXMpOwogICAgIFdlYlRocmVhZFJ1bihbc3Ryb25nVGhpc10gewotICAgICAg
ICBzdHJvbmdUaGlzLT5jbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVu
TW9kZU9wdGltaXplZCk7CisgICAgICAgIHN0cm9uZ1RoaXMtPmNsZWFyTW9kZShIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQpOwogICAgICAgICBbc3Ry
b25nVGhpcy0+bV93aW5kb3cgc2V0SGlkZGVuOllFU107CiAgICAgICAgIGlmIChzdHJvbmdUaGlz
LT5tX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKICAgICAgICAgICAgIHN0cm9uZ1RoaXMtPm1f
ZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRFeGl0RnVsbHNjcmVlbigpOwpAQCAtMTM1Miw5
ICsxMzUyLDkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFy
ZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXAKICAgICB9KTsKIH0KIAotdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSBtb2RlKQogewotICAgIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUg
bmV3TW9kZSA9IG1fbW9kZSB8IG1vZGU7CisgICAgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlIG5ld01vZGUgPSBtX21vZGUgfCBtb2RlOwogICAgIGlmIChtX21vZGUg
PT0gbmV3TW9kZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMzYzLDkgKzEzNjMsOSBAQCB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRNb2RlKEhUTUxNZWRpYUVsZW1l
bnQ6OlZpZGVvRnVsbHNjcmVlbgogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5mdWxs
c2NyZWVuTW9kZUNoYW5nZWQobV9tb2RlKTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6Y2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGUgbW9kZSkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFy
TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsK
LSAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG5ld01vZGUgPSBtX21v
ZGUgJiB+bW9kZTsKKyAgICBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgbmV3TW9kZSA9IG1fbW9kZSAmIH5tb2RlOwogICAgIGlmIChtX21vZGUgPT0gbmV3TW9kZSkK
ICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCmluZGV4IDhmMjYyMzA5MzgyMWI0MTdmYTBkYTEy
NTU4MjMxMDBjYzAxOTNiMDguLjcyOTE0ZGJmMjMxNTFjNGFlYzBhNmNmZmFlYTE1NzgyOGZmY2Yx
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFZp
ZGVvR3Jhdml0eSB2aWRlb0xheWVyR3Jhdml0eSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKEhUTUxNZWRpYUVsZW1lbnQ6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1vZGVD
aGFuZ2VkKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgPSAwOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaAppbmRleCBkMGM3YWY1MmIx
MGMyYjA1OTRkNjhkMDEyNTIwZDJhNGIyZDdhY2MyLi42OWM4ZjAxYjhjM2YyZGU2YmIyMGU1Mjg5
NmI0MjA0Zjc2MWRkNDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaApAQCAt
MzEsNyArMzEsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudExpc3RlbmVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1MYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBBdWRpb1RyYWNrOwogY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKIGNsYXNzIFRleHRUcmFj
azsKIGNsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZTsKQEAgLTc2LDcgKzc3LDcgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgVmlkZW9HcmF2aXR5IHZpZGVvTGF5
ZXJHcmF2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2
b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpIG92ZXJyaWRlOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWlu
dDY0X3QgaW5kZXgpIG92ZXJyaWRlOwotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBm
dWxsc2NyZWVuTW9kZUNoYW5nZWQoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGZ1bGxzY3JlZW5N
b2RlQ2hhbmdlZChIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92
ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgV2ViVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5t
bQppbmRleCAzNWI1MTM3YTRmNWJiZjRiZDE5ZjhmZjAwZDhmNjUzNjdlM2UxY2NiLi44YWQ1MWVk
YjFmMTkwYjdiYjY4OTgyNThkZDNjZjgzYjk5ZTUwZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
VmlkZW9FbGVtZW50Lm1tCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50KiB2aWRl
CiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5yZXNldE1lZGlhU3RhdGUoKTsK
IAogICAgIGlmIChtX3ZpZGVvRWxlbWVudCAmJiBtX3ZpZGVvRWxlbWVudC0+ZnVsbHNjcmVlbk1v
ZGUoKSkKLSAgICAgICAgbV92aWRlb0VsZW1lbnQtPmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChIVE1M
TWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CisgICAgICAgIG1fdmlkZW9F
bGVtZW50LT5mdWxsc2NyZWVuTW9kZUNoYW5nZWQoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiAKICAgICBpZiAobV92aWRlb0VsZW1lbnQgJiYgbV92aWRl
b0VsZW1lbnQtPnZpZGVvRnVsbHNjcmVlbkxheWVyKCkpCiAgICAgICAgIG1fdmlkZW9FbGVtZW50
LT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihudWxscHRyKTsKQEAgLTQ1Miw3ICs0NTIsNyBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojpl
dmVudE5hbWVBbGwoKQogICAgIHJldHVybiBzRXZlbnROYW1lQWxsOwogfQogCi12b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoSFRN
TE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQor
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6ZnVsbHNjcmVlbk1vZGVD
aGFuZ2VkKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1
bGxzY3JlZW5Nb2RlKQogewogICAgIF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50PiBwcm90ZWN0KHRoaXMpOwogICAgIFdlYlRocmVhZFJ1biheewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApp
bmRleCBhMzQ3NDk5YjVjODEzYjczN2U4M2IxY2RjMmYyMjYwYjJhMjRmMTRkLi4yZjQ5Y2M2MjM0
NGVhMjliMjMwYjY4MDAxM2Q4ZWYxOTU0YTRkNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTc5LDcgKzE3OSw3IEBA
IHB1YmxpYzoKIAogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNW
aWRlb0Z1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1
bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jikgb3ZlcnJp
ZGU7CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA0ZjY2YTg2NjI2NDE3YTEwOTliNjIzYTdiZmNi
N2ZjN2VkZjk2YmY0Li4yM2UyNGFmYTRhM2YyZjhlYzZiNTZjYWM3NzY5ZDdjZGFmZDExNzBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lm1tCkBAIC05MzYsOSArOTM2LDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRz
VmlkZW9GdWxsc2NyZWVuKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1l
bnQmIHZpZGVvRWxlbWVudCwgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBt
b2RlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9F
bGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiB7Ci0gICAgQVNTRVJUKG1vZGUgIT0gSFRN
TE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOworICAgIEFTU0VSVChtb2Rl
ICE9IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwogICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICBbbV93ZWJWaWV3IF9lbnRlclZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDomdmlkZW9FbGVtZW50IG1vZGU6bW9kZV07CiAgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCBkZGQ3Njc2YzdlYTJjMzQ0NjkxYzkxMjRiZmY0NTBlZjI3MDQ0NGViLi40MDJlYmI4
M2NmYzI3MTI5MzI2Y2VlNzVmNTk5MDQ3YTNjOGY4ZWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC04NDE5LDcgKzg0MTksNyBAQCBib29sIExheWVyRmx1c2hDb250cm9s
bGVyOjpmbHVzaExheWVycygpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykKLS0gKHZvaWQp
X2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OihXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50Kil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSltb2RlCistICh2b2lkKV9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudDooV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopdmlkZW9FbGVtZW50IG1vZGU6
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2Rl
CiB7CiAgICAgaWYgKF9wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlcikgewogICAgICAgICBp
ZiAoW19wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlciB2aWRlb0VsZW1lbnRdID09IHZpZGVv
RWxlbWVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgK
aW5kZXggZWE4YTgzMDUyNzg2MjUxMzgyNTdhZDQ0ODBmNzdmODYyNDA5MzVkOC4uMmU4MjgwYTli
ZmIwNjkwMGZiMGI3OWNkZWJjNjk0NWU5ZGI2NzM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0zNyw3ICszNyw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9GaW5kT3B0aW9u
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KLSNpbXBvcnQgPFdlYkNvcmUvSFRN
TE1lZGlhRWxlbWVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50RW51bXMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvTGF5b3V0TWlsZXN0b25lcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGlj
YXRvcldpbmRvdy5oPgpAQCAtMjQyLDcgKzI0Miw3IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJu
YXRpdmVzOwogLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAqKXBy
ZWZlcmVuY2VzOwogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQot
LSAodm9pZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGU7CistICh2b2lkKV9lbnRlclZpZGVvRnVsbHNj
cmVlbkZvclZpZGVvRWxlbWVudDooV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopdmlkZW9FbGVt
ZW50IG1vZGU6KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSltb2RlOwogLSAodm9pZClfZXhpdFZpZGVvRnVsbHNjcmVlbjsKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDU0
NGRmMDg2N2E2ZWFmMzg1NGFhMTJmZmRjYzExMGY2Yzc4ODNmMDkuLjZiNTQwNDY3ZmUwMzY2MTU4
ZDM2ZWJkYTNiYWUyMWQ5YTdhZTBiZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yNDUsNyArMjQ1LDcgQEAgc3RhdGljIGludDMy
X3QgZGV2aWNlT3JpZW50YXRpb24oKQogICAgIGlmICghX3BhZ2UgfHwgIV9wYWdlLT52aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICByZXR1
cm4gX3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS0+aGFzTW9kZShXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKTsKKyAgICByZXR1cm4g
X3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS0+aGFzTW9kZShXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQpOwogfQogCiAtIChC
T09MKV9tYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvT3B0aW1pemVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkuaAppbmRleCBiNDk4YWU4ZTViYTg3ZjJiMjQxM2FlZjhjNDZiYTFmZTQ3NjVkZTc3Li43
ZTBiZTc2Y2M1MDJhMzcyM2E2M2I1Y2EwZWY5ZjlmMGE3MTM5MzMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFZpZGVv
R3Jhdml0eSB2aWRlb0xheWVyR3Jhdml0eSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90KSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90KSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBm
dWxsc2NyZWVuTW9kZUNoYW5nZWQoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYlZpZGVvRnVsbHNjcmVlbkNo
YW5nZU9ic2VydmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbigpIG92ZXJy
aWRlOwpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGUoKTsK
IAogICAgIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbigpOwotICAgIGJvb2wgaGFz
TW9kZShXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBjb25z
dDsKKyAgICBib29sIGhhc01vZGUoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlKSBjb25zdDsKICAgICBib29sIG1heUF1dG9tYXRpY2FsbHlTaG93Vmlk
ZW9PcHRpbWl6ZWQoKSBjb25zdDsKIAogcHJpdmF0ZToKQEAgLTEyMyw3ICsxMjMsNyBAQCBwcml2
YXRlOgogICAgIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0JiBlbnN1
cmVJbnRlcmZhY2UodWludDY0X3QgY29udGV4dElkKTsKIAogICAgIC8vIE1lc3NhZ2VzIGZyb20g
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcgotICAgIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElE
KHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9MYXllcklELCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93T3B0aW1p
emVkRnVsbHNjcmVlbik7CisgICAgdm9pZCBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDY0X3Qg
Y29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1
bGxzY3JlZW4pOwogICAgIHZvaWQgcmVzZXRNZWRpYVN0YXRlKHVpbnQ2NF90IGNvbnRleHRJZCk7
CiAgICAgdm9pZCBzZXRDdXJyZW50VGltZSh1aW50NjRfdCBjb250ZXh0SWQsIGRvdWJsZSBjdXJy
ZW50VGltZSwgZG91YmxlIGhvc3RUaW1lKTsKICAgICB2b2lkIHNldEJ1ZmZlcmVkVGltZSh1aW50
NjRfdCBjb250ZXh0SWQsIGRvdWJsZSBidWZmZXJlZFRpbWUpOwpAQCAtMTYwLDcgKzE2MCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eSh1aW50NjRfdCBjb250ZXh0
SWQsIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkpOwogICAg
IHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQ2NF90
IGluZGV4KTsKICAgICB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBjb250
ZXh0SWQsIHVpbnQ2NF90IGluZGV4KTsKLSAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCh1
aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlbk1vZGUpOworICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKHVpbnQ2NF90IGNvbnRl
eHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
KTsKICAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSh1aW50NjRfdCBjb250ZXh0
SWQpOwogCiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGE0ZTdjMjdhOGUzYmMyMTI4M2U0NTEzOGVhODI0
NzZlZDcwNjNhMGEuLjBjNWRjMTE1NDYxODUxMDYxZjExMGZlYzc4Mzg2NTY3NTkwMWFiNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMyw3ICsz
Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CiAgICAg
U2V0RXh0ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXModWludDY0X3QgY29udGV4dElkLCBib29sIGVu
YWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKQog
ICAgIFNldER1cmF0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwgZG91YmxlIGR1cmF0aW9uKQogICAg
IFNldFJhdGUodWludDY0X3QgY29udGV4dElkLCBib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUp
Ci0gICAgU2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3Qg
dmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5n
U2NhbGVGYWN0b3IsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pCisg
ICAgU2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3Qgdmlk
ZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2Nh
bGVGYWN0b3IsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbikK
ICAgICBFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIEV4aXRGdWxsc2Ny
ZWVuKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QpCiAgICAg
Q2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tbQppbmRleCA0MzEwODBhYzViZmQ1ZDY2MTE1ZjhmMWJjZmI2MjdjNWRkMGEyMmExLi5l
NmFkYTEyYmQ4NmE3Zjc1ODgyYzRhMTI2YWViMjc3NmMxZDEwODYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tbQpAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7CiB9CiAKLWJvb2wgV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUpIGNvbnN0Citib29sIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aGFzTW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGZhbHNlOwogfQpAQCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxDb250ZXh0OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3Qgb3B0aW9u
SWQpCiAgICAgICAgIG1fbWFuYWdlci0+c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKG1fY29udGV4
dElkLCBvcHRpb25JZCk7CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0
OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9G
dWxsc2NyZWVuTW9kZSBtb2RlKQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6
OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKICAgICBpZiAobV9tYW5hZ2VyKQogICAgICAgICBt
X21hbmFnZXItPmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChtX2NvbnRleHRJZCwgbW9kZSk7CkBAIC0y
NTcsNyArMjU3LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVl
c3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKQogICAgICAgICBzdGQ6OmdldDwxPih0dXBsZSktPnJl
cXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKTsKIH0KIAotYm9vbCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6Omhhc01vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVu
TW9kZSBtb2RlKSBjb25zdAorYm9vbCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Omhh
c01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIGNv
bnN0CiB7CiAgICAgZm9yIChhdXRvJiB0dXBsZSA6IG1fY29udGV4dE1hcC52YWx1ZXMoKSkgewog
ICAgICAgICBpZiAoc3RkOjpnZXQ8MT4odHVwbGUpLT5oYXNNb2RlKG1vZGUpKQpAQCAtMzA2LDcg
KzMwNiw3IEBAIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0JiBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVuc3VyCiAKICNwcmFnbWEgbWFyayBNZXNzYWdl
cyBmcm9tIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIKIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50NjRfdCBjb250ZXh0SWQs
IHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbFJl
Y3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3RvciwgSFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93T3B0aW1pemVk
RnVsbHNjcmVlbikKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1
bGxzY3JlZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nRGV2aWNl
U2NhbGVGYWN0b3IsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2
aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbikKIHsKICAg
ICBBU1NFUlQodmlkZW9MYXllcklEKTsKICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWxDb250ZXh0PiBtb2RlbDsKQEAgLTU0Miw3ICs1NDIsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGNvbnRl
eHRJZAogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6U2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKGNvbnRleHRJZCwgaW5kZXgpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxz
Y3JlZW5Nb2RlQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkK
IHsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OkZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChjb250ZXh0SWQsIG1vZGUpLCBtX3BhZ2UtPnBhZ2VJRCgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBmNjExNzM4NTdkZGU2ZGFlOGFlZjhm
ZmI3ZGM1MTMyZWYzZGYyYjA2Li45MDUyODEyM2Q2NDIxMDIyYzYyMzI5Zjk2OGNlODE1YzI2ODc0
NDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC05MTUsOSArOTE1LDkgQEAgYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkKICAgICByZXR1cm4gbV9w
YWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCktPnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCk7
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogewotICAgIEFTU0VSVChtb2RlICE9IEhU
TUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKKyAgICBBU1NFUlQobW9k
ZSAhPSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKICAg
ICBtX3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50LCBtb2RlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKaW5kZXggNzQ5NDc5YzcwNTlmNTJjMjk4NWE3ODFhNmYxNjIxMTUyZTBhY2Q2NC4uZmJkYzMw
ODI3MWFlNTQ4NTU1ZTk2MGQ3NzI4NGVkMmY1YzY4YTQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC0yNTAsNyArMjUwLDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4
IDZhYzM2Yjk3NDc1NDIzMzQ1MmJjMGJiNmJhYjBjMGRhZjdkNDAwMzkuLjZmMjNhOGY0NWI4NzMw
Y2UxZWY0MjA0MzAxYzdlMGY2OTkzMDE0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTI5LDcg
KzI5LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvRXZlbnRMaXN0ZW5lci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudEVudW1zLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybUNBTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQuaD4KQEAgLTczLDggKzczLDggQEAgcHVibGljOgogICAgIGJvb2wg
dGFyZ2V0SXNGdWxsc2NyZWVuKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRJc0Z1bGxzY3JlZW47
IH0KICAgICB2b2lkIHNldFRhcmdldElzRnVsbHNjcmVlbihib29sIGZsYWcpIHsgbV90YXJnZXRJ
c0Z1bGxzY3JlZW4gPSBmbGFnOyB9CiAKLSAgICBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlIGZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV9mdWxs
c2NyZWVuTW9kZTsgfQotICAgIHZvaWQgc2V0RnVsbHNjcmVlbk1vZGUoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKSB7IG1fZnVsbHNjcmVlbk1vZGUg
PSBtb2RlOyB9CisgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlIGZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsc2NyZWVuTW9k
ZTsgfQorICAgIHZvaWQgc2V0RnVsbHNjcmVlbk1vZGUoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIHsgbV9mdWxsc2NyZWVuTW9kZSA9IG1v
ZGU7IH0KIAogICAgIGJvb2wgaXNGdWxsc2NyZWVuKCkgY29uc3QgeyByZXR1cm4gbV9pc0Z1bGxz
Y3JlZW47IH0KICAgICB2b2lkIHNldElzRnVsbHNjcmVlbihib29sIGZsYWcpIHsgbV9pc0Z1bGxz
Y3JlZW4gPSBmbGFnOyB9CkBAIC0xMDAsNyArMTAwLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9sYXllckhvc3RpbmdDb250ZXh0OwogICAg
IGJvb2wgbV9pc0FuaW1hdGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3RhcmdldElzRnVsbHNj
cmVlbiB7IGZhbHNlIH07Ci0gICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxs
c2NyZWVuTW9kZSBtX2Z1bGxzY3JlZW5Nb2RlIHsgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUgfTsKKyAgICBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbV9mdWxsc2NyZWVuTW9kZSB7IFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUgfTsKICAgICBib29s
IG1faXNGdWxsc2NyZWVuIHsgZmFsc2UgfTsKIH07CiAKQEAgLTExMyw3ICsxMTMsNyBAQCBwdWJs
aWM6CiAKICAgICAvLyBJbnRlcmZhY2UgdG8gQ2hyb21lQ2xpZW50CiAgICAgYm9vbCBzdXBwb3J0
c1ZpZGVvRnVsbHNjcmVlbigpIGNvbnN0OwotICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgIHZvaWQgZW50ZXJWaWRlb0Z1
bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgdm9p
ZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0Vs
ZW1lbnQmKTsKICAgICAKIHByb3RlY3RlZDoKQEAgLTE2MCw3ICsxNjAsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odWludDY0X3QgY29udGV4dElkLCB1
bnNpZ25lZCBncmF2aXR5KTsKICAgICB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0
X3QgY29udGV4dElkLCB1aW50NjRfdCBpbmRleCk7CiAgICAgdm9pZCBzZWxlY3RMZWdpYmxlTWVk
aWFPcHRpb24odWludDY0X3QgY29udGV4dElkLCB1aW50NjRfdCBpbmRleCk7Ci0gICAgdm9pZCBm
dWxsc2NyZWVuTW9kZUNoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyAgICB2b2lkIGZ1bGxzY3JlZW5Nb2Rl
Q2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmUodWludDY0X3QgY29udGV4dElkLCBib29sIGlzUGFnZVZpc2libGUpOwogICAgIAogICAg
IFdlYlBhZ2UqIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmlu
ZGV4IDAxM2RhM2VlNjIyNDVkMTQyNTJmY2IxNGEwYWI5ODMwYTA3NGVjNmQuLmIzMTUzYzBiMzk5
MjJlZWNiNDQ5Mjc4YzEzOWJmOTRhOTJmYjcyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tZXNzYWdlcy5pbgpAQCAtNDEsNyArNDEsNyBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyIHsKICAgICBTZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odWludDY0X3QgY29u
dGV4dElkLCB1bnNpZ25lZCBncmF2aXR5KQogICAgIFNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWlu
dDY0X3QgY29udGV4dElkLCB1aW50NjRfdCBpbmRleCkKICAgICBTZWxlY3RMZWdpYmxlTWVkaWFP
cHRpb24odWludDY0X3QgY29udGV4dElkLCB1aW50NjRfdCBpbmRleCkKLSAgICBGdWxsc2NyZWVu
TW9kZUNoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCisgICAgRnVsbHNjcmVl
bk1vZGVDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCiAgICAgRnVs
bHNjcmVlbk1heVJldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBpc1BhZ2VW
aXNpYmxlKQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCA5YWFlZmM4YjgxNDli
ZDQ5ZWUzNWE0MDQzYTgwZTdhNDNhZjBiNmFmLi5jYmQxZWMyNWI2NGU0Yzk5ODM0OGU2ZWVhZjlh
YzY0ZTczY2Q4ZmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTIxNyw5ICsyMTcsOSBAQCBi
b29sIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkg
Y29uc3QKICAgICByZXR1cm4gU2V0dGluZ3M6OmF2S2l0RW5hYmxlZCgpOwogfQogCi12b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRNTE1lZGlhRWxlbWVudDo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpl
bnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRl
b0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2Rl
KQogewotICAgIEFTU0VSVChtb2RlICE9IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGVOb25lKTsKKyAgICBBU1NFUlQobW9kZSAhPSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKIAogICAgIHVpbnQ2NF90IGNvbnRleHRJZDsKIApAQCAt
Mzk0LDcgKzM5NCw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2VsZWN0TGVn
aWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGNvbnRleHRJZCwgdWluCiAgICAgZW5zdXJlTW9kZWwo
Y29udGV4dElkKS5zZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24oaW5kZXgpOwogfQogCi12b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCh1aW50NjRfdCBj
b250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUg
dmlkZW9GdWxsc2NyZWVuTW9kZSkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVs
bHNjcmVlbk1vZGVDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCiB7
CiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5mdWxsc2NyZWVuTW9kZUNoYW5nZWQodmlkZW9G
dWxsc2NyZWVuTW9kZSk7CiB9CkBAIC00ODEsNyArNDgxLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAK
ICAgICBpbnRlcmZhY2UtPnNldElzQW5pbWF0aW5nKGZhbHNlKTsKICAgICBpbnRlcmZhY2UtPnNl
dElzRnVsbHNjcmVlbihmYWxzZSk7Ci0gICAgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSBtb2RlID0gaW50ZXJmYWNlLT5mdWxsc2NyZWVuTW9kZSgpOworICAgIEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlID0gaW50ZXJmYWNlLT5mdWxs
c2NyZWVuTW9kZSgpOwogCiAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG5pbCk7
CiAgICAgUmVmUHRyPEhUTUxWaWRlb0VsZW1lbnQ+IHZpZGVvRWxlbWVudCA9IG1vZGVsLT52aWRl
b0VsZW1lbnQoKTsK
</data>
<flag name="review"
          id="278323"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253456</attachid>
            <date>2015-05-20 12:23:15 -0700</date>
            <delta_ts>2015-05-20 12:23:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-145193-20150520122311.patch</filename>
            <type>text/plain</type>
            <size>67125</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGU1MjFmY2FkYmU3ZWJm
ZTUyY2FjMjA1ZTY2YjcyMjFhZjU2MzZkOC4uNjVmNWQ0ZjNjODRmMWU0NmU2NjU0ZmJkYjg4MDY3
NDgwOGYwODdhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE1LTA1LTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFRvdWNoaW5nIEhUTUxNZWRp
YUVsZW1lbnQuaCBvciBNZWRpYVBsYXllci5oIGNhdXNlcyBhIHdvcmxkIHJlYnVpbGQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUxOTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgSFRNTE1lZGlhRWxlbWVu
dC5oIGFuZCBNZWRpYVBsYXllci5oIGFyZSBpbmNsdWRlZCBpbiBhIG51bWJlciBvZiBoZWFkZXJz
IHNvbGVseSBmb3IgYWNjZXNzIHRvIHRoZSBlbnVtcworICAgICAgICBkZWZpbmVkIHdpdGhpbiB0
aGUgY2xhc3NlcyBjb250YWluZWQgd2l0aGluLiBNb3ZlIHRoZXNlIGVudW1zIGludG8gdGhlaXIg
b3duLS1vdGhlcndpc2UgZW1wdHktLWNsYXNzZXMuCisgICAgICAgIFRoZW4gYWRkIGB1c2luZ2Ag
ZGVjbGFyYXRpb25zIHRvIHB1bGwgdGhvc2UgaW5oZXJpdGVkIGVudW1zIGJhY2sgaW50byB0aGUg
bmFtZXNwYWNlIG9mIEhUTUxNZWRpYUVsZW1lbnQKKyAgICAgICAgYW5kIE1lZGlhUGxheWVyLgor
CisgICAgICAgIENsYXNzZXMgYW5kIGhlYWRlcnMgd2hpY2ggZG8gbm90IG5lZWQgdG8gZGlyZWN0
bHkgaW5jbHVkZSBIVE1MTWVkaWFFbGVtZW50LmggY2FuIG5vdyBpbmNsdWRlIEhUTUxNZWRpYUVs
ZW1lbnRFbnVtcy5oCisgICAgICAgIGluc3RlYWQ7IHRoZSBzYW1lIGdvZXMgZm9yIE1lZGlhUGxh
eWVyLmggYW5kIE1lZGlhUGxheWVyRW51bXMuaC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBmaWxlcyB0byBwcm9qZWN0LgorICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpUcmFja0dyb3VwOjpUcmFja0dyb3VwKTogTW92ZSBkZWZpbml0aW9uIGhlcmUgZnJv
bSB0aGUgaGVhZGVyLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dmlkZW9GdWxsc2NyZWVuR3Jhdml0eSk6IE1l
ZGlhUGxheWVyIC0+IE1lZGlhUGxheWVyRW51bXMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjpwcmVsb2FkVmFsdWUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OlRyYWNrR3JvdXA6OlRyYWNrR3JvdXApOiBEZWxldGVkOyBtb3ZlZCB0byBp
bXBsZW1lbnRhdGlvbiBmaWxlLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudEVudW1z
Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmg6IElu
aGVyaXQgZnJvbSBIVE1MTWVkaWFFbGVtZW50RW51bXMuCisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDogSFRNTE1lZGlhRWxlbWVudCAtPiBIVE1MTWVkaWFFbGVtZW50RW51bXMuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDogTWVkaWFQbGF5ZXIgLT4gTWVk
aWFQbGF5ZXJFbnVtcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllckVu
dW1zLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyIGVudGVyRnVsbHNjcmVlbjptb2RlOl0pOiBIVE1MTWVkaWFFbGVtZW50IC0+IEhUTUxN
ZWRpYUVsZW1lbnRFbnVtcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgIChXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuSW50ZXJuYWwpOiBEaXR0by4K
KyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3Jl
ZW4pOiBEaXR0by4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojpl
eGl0RnVsbHNjcmVlbkludGVybmFsKTogRGl0dG8uCisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW5JbnRlcm5hbCk6IERpdHRvLgorICAg
ICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJlcXVlc3RIaWRlQW5kRXhp
dEZ1bGxzY3JlZW4pOiBEaXR0by4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvT3B0aW1pemVkKTogRGl0dG8uCisgICAg
ICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6d2lsbFN0YXJ0T3B0aW1pemVk
RnVsbHNjcmVlbik6IERpdHRvLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmRpZFN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgIChXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkQ2FuY2VsT3B0aW1pemVkRnVsbHNjcmVl
bik6IERpdHRvLgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNl
dE1vZGUpOiBEaXR0by4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpjbGVhck1vZGUpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTW9kZWwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbFZpZGVvRWxlbWVudDo6c2V0VmlkZW9FbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKTog
RGl0dG8uCisKIDIwMTUtMDUtMTkgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+
CiAKICAgICAgICAgU2Nyb2xsLXNuYXAgYW5pbWF0aW9ucyBzaG91bGQgbm90IHN0YXJ0IG9uIGF4
ZXMgd2l0aCB6ZXJvLWRlbHRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTM4M2UyNWE5OWQ5NDdiMWFk
Njk3NzVkMDc5Mjk2M2IyYzY1OGIyNy4uMGUwNTkzMzk3OTcwYWFmNjNkMWUxYmY1NDQyY2VjYjI0
MTQ3ODMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA1LTE5ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFRvdWNoaW5nIEhUTUxN
ZWRpYUVsZW1lbnQuaCBvciBNZWRpYVBsYXllci5oIGNhdXNlcyBhIHdvcmxkIHJlYnVpbGQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDUxOTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVXNlIEhUTUxNZWRp
YUVsZW1lbnRFbnVtcyBpbnN0ZWFkIG9mIEhUTUxNZWRpYUVsZW1lbnQuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlk
ZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KTogSFRNTE1lZGlhRWxlbWVudCAtPiBIVE1MTWVk
aWFFbGVtZW50RW51bXMuCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXZWJWaWV3IF9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDptb2RlOl0pOiBE
aXR0by4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oOgorCiAyMDE1LTA1LTE4
ICBTa2FjaGtvdiBBbGV4YW5kciAgPGdza2FjaGtvdkBnbWFpbC5jb20+CiAKICAgICAgICAgW0VT
Nl0gQXJyb3cgZnVuY3Rpb24gc3ludGF4LiBGZWF0dXJlIGZsYWcgZm9yIGFycm93IGZ1bmN0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggNmZmY2QwMWFlMWVkNmNhYTk0ODlhMWNmYTkwNjUwY2M3YTU5MTljOS4u
MWVmNjkyNmE1ZTllOGY4OTUzMmFlN2M3YmVjMjg1YjIyNThmNzJjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMzIEBACisyMDE1LTA1LTE5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgorCisgICAgICAgIFRvdWNoaW5nIEhUTUxNZWRpYUVsZW1lbnQuaCBvciBNZWRpYVBsYXllci5o
IGNhdXNlcyBhIHdvcmxkIHJlYnVpbGQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDUxOTMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxz
b24uCisKKyAgICAgICAgVXNlIEhUTUxNZWRpYUVsZW1lbnRFbnVtcyBpbnN0ZWFkIG9mIEhUTUxN
ZWRpYUVsZW1lbnQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pc1Nob3dpbmdWaWRlb09wdGltaXplZF0pOiBIVE1M
TWVkaWFFbGVtZW50IC0+IEhUTUxNZWRpYUVsZW1lbnRFbnVtcy4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Omhhc01vZGUp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0
OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOiBEaXR0by4K
KyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2Ny
ZWVuTW9kZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOiBEaXR0by4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4dDo6ZnVsbHNjcmVlbk1vZGUp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29u
dGV4dDo6c2V0RnVsbHNjcmVlbk1vZGUpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9F
bGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVlbik6IERpdHRvLgorCiAy
MDE1LTA1LTE5ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgaGFzIGluY29ycmVjdCBPU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCBjb25kaXRpb25hbHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjA4NWEwNzA3MmQ2MDk4ZDE3OTQ0MDNlNTBm
MWU0MzcwYWQ2YThkMS4uZDYxZTRhYjUwZTc4ZWIwYTVkMzk2Y2MyYzEyNmNmNzRkZjI2ZThjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNTcyOSw2ICs1NzI5LDggQEAKIAkJQ0QzRTI1MjMxODA0NkJDRDAwRTI3RjU2IC8qIENT
U0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QzRTI1MjExODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWUuY3BwICovOyB9OwogCQlDRDNFMjUyNDE4MDQ2QkNEMDBFMjdGNTYgLyog
Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QzRTI1MjIxODA0NkJDRDAwRTI3RjU2IC8qIENTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWUuaCAqLzsgfTsKIAkJQ0Q0QUM1MkExNDk2QUU5QTAwODdDNEVGIC8qIENv
bXBvc2l0ZS53YXYgaW4gQ29weSBBdWRpbyBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q0QUM1MjgxNDk2QUUyRjAwODdDNEVGIC8qIENvbXBvc2l0ZS53YXYg
Ki87IH07CisJCUNENTIwOUU0MUIwQkQ4MzgwMDc3MTg0RSAvKiBNZWRpYVBsYXllckVudW1zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDUyMDlFMzFC
MEJEODM4MDA3NzE4NEUgLyogTWVkaWFQbGF5ZXJFbnVtcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNENTIwOUU2MUIwQkQ5RTEwMDc3MTg0RSAv
KiBIVE1MTWVkaWFFbGVtZW50RW51bXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENTIwOUU1MUIwQkQ5RTEwMDc3MTg0RSAvKiBIVE1MTWVkaWFFbGVt
ZW50RW51bXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDRDUyNDgxQTE4RTIwMEVEMDAwOEEwN0QgLyogRGlzcGxheVNsZWVwRGlzYWJsZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1MjQ4MTgx
OEUyMDBFRDAwMDhBMDdEIC8qIERpc3BsYXlTbGVlcERpc2FibGVyLmNwcCAqLzsgfTsKIAkJQ0Q1
MjQ4MUIxOEUyMDBFRDAwMDhBMDdEIC8qIERpc3BsYXlTbGVlcERpc2FibGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDUyNDgxOTE4RTIwMEVEMDAw
OEEwN0QgLyogRGlzcGxheVNsZWVwRGlzYWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDUzOTNEMzE3NUUwMTg2MDBDMDcxMjMgLyogSlNN
ZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENTM5M0QxMTc1RTAxODYwMEMwNzEyMyAvKiBKU01lbW9yeUluZm8uY3BwICovOyB9OwpA
QCAtMTMyOTEsNiArMTMyOTMsOCBAQAogCQlDRDQwOTdGRjFBOEM4NTVGMDA0QzY1RTkgLyogQ0ZO
U1VSTENvbm5lY3Rpb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0ZO
U1VSTENvbm5lY3Rpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0QUM1
MjgxNDk2QUUyRjAwODdDNEVGIC8qIENvbXBvc2l0ZS53YXYgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhdWRpby53YXY7IG5hbWUgPSBDb21wb3NpdGUu
d2F2OyBwYXRoID0gcGxhdGZvcm0vYXVkaW8vcmVzb3VyY2VzL0NvbXBvc2l0ZS53YXY7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQ0Q0RTBBRkExMUY3QkMyNzAwOUQzODExIC8qIGZ1
bGxzY3JlZW4uY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5jc3M7IHBhdGggPSBmdWxsc2NyZWVuLmNzczsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1MjA5RTMxQjBCRDgzODAwNzcxODRFIC8q
IE1lZGlhUGxheWVyRW51bXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFQbGF5ZXJFbnVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDUyMDlFNTFC
MEJEOUUxMDA3NzE4NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDUyNDgxODE4RTIwMEVEMDAwOEEwN0QgLyogRGlzcGxheVNsZWVw
RGlzYWJsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxh
eVNsZWVwRGlzYWJsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDUyNDgx
OTE4RTIwMEVEMDAwOEEwN0QgLyogRGlzcGxheVNsZWVwRGlzYWJsZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVNsZWVwRGlzYWJsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1MzkzQ0IxNzVEQ0NFNjAwQzA3MTIzIC8qIE1lbW9yeUluZm8u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5SW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgxNTcsNiArMTgxNjEsNyBAQAogCQkJCUU0NDYxMzky
MENENjMzMTAwMEZBREE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmNwcCAqLywKIAkJCQlFNDQ2MTM5
MzBDRDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5oICovLAogCQkJCUU0NDYxMzk0
MENENjMzMTAwMEZBREE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmlkbCAqLywKKwkJCQlDRDUyMDlF
NTFCMEJEOUUxMDA3NzE4NEUgLyogSFRNTE1lZGlhRWxlbWVudEVudW1zLmggKi8sCiAJCQkJMDdG
RTk5REExODgwN0E3RDAwMjU2NjQ4IC8qIEhUTUxNZWRpYVNlc3Npb24uY3BwICovLAogCQkJCTA3
RkU5OURCMTg4MDdBN0QwMDI1NjY0OCAvKiBIVE1MTWVkaWFTZXNzaW9uLmggKi8sCiAJCQkJQThF
QTc5RUMwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxNZW51RWxlbWVudC5jcHAgKi8sCkBAIC0yMDg5
MCw2ICsyMDg5NSw3IEBACiAJCQkJMDc4RTQzRDgxQUJCNkM3RTAwMUMyRkE2IC8qIE1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXIuaCAqLywKIAkJCQlFNEI0MUUwQzBDQkY5MEJEMDBBRjJFQ0UgLyog
TWVkaWFQbGF5ZXIuY3BwICovLAogCQkJCUU0QjQxRTBEMENCRjkwQkQwMEFGMkVDRSAvKiBNZWRp
YVBsYXllci5oICovLAorCQkJCUNENTIwOUUzMUIwQkQ4MzgwMDc3MTg0RSAvKiBNZWRpYVBsYXll
ckVudW1zLmggKi8sCiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAwNUUwNzgyIC8qIE1lZGlhUGxheWVy
UHJpdmF0ZS5oICovLAogCQkJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJj
ZVByaXZhdGUuaCAqLywKIAkJCQlDRERDMUU3OTE4QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3Vy
Y2VQcml2YXRlQ2xpZW50LmggKi8sCkBAIC0yMzg0Miw2ICsyMzg0OCw3IEBACiAJCQkJNTE3NDFE
MEYwQjA3MjU5QTAwRUQ0NDJDIC8qIEJhY2tGb3J3YXJkQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0E4QzgxRTExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0E4Q0E2MDExRTRFNkQxMDA4MTJGQjcgLyogQmFja0Zvcndh
cmRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDUyMDlFNjFCMEJEOUUxMDA3NzE4NEUgLyog
SFRNTE1lZGlhRWxlbWVudEVudW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEVFODBDMjY0
MUNEMDA5RTIzNDkgLyogQmFyUHJvcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5RTYxQ0ExMjZD
QTVDNDAwQjYzRThEIC8qIEJhc2VCdXR0b25JbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTM3OUU2MUNDMTI2Q0E1QzQwMEI2M0U4RCAvKiBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmggaW4g
SGVhZGVycyAqLywKQEAgLTI3MDI1LDYgKzI3MDMyLDcgQEAKIAkJCQk3QUY5QjIwNjE4Q0ZCMkRG
MDBDNjRCRUYgLyogVlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E5Mzg2ODYx
OERDQzE0NTAwQjgyNjNEIC8qIFZUVFNjYW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNDgz
MkIwMTg3RjYxOEQwMERBNjNBNiAvKiBXQUtBcHBLaXRTdHVicy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQ0Q1MjA5RTQxQjBCRDgzODAwNzcxODRFIC8qIE1lZGlhUGxheWVyRW51bXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExNDgzMkIyMTg3RjYxRUQwMERBNjNBNiAvKiBXQUtDbGlwVmlldy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTE0ODMyQjQxODdGNjI5QTAwREE2M0E2IC8qIFdBS1Jlc3BvbmRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0ODMyQjYxODdGNjMxRjAwREE2M0E2IC8qIFdBS1Nj
cm9sbFZpZXcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKaW5kZXggMGZmODZhYWMzZTk1MzJjOGM5NTk0ZjM0YThhYmMyZjhiNWQ1YzhkNS4u
ZWY4Njg4NjZlNTUyOTUwZjM5YzBmYjcyMjk5YTMwZWZhMGI3OGFmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAi
TWVkaWFGcmFnbWVudFVSSVBhcnNlci5oIgogI2luY2x1ZGUgIk1lZGlhS2V5RXZlbnQuaCIKICNp
bmNsdWRlICJNZWRpYUxpc3QuaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUg
Ik1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKICNpbmNsdWRlICJNZWRpYVJlc291cmNlTG9hZGVyLmgi
CiAjaW5jbHVkZSAiTWVkaWFTZXNzaW9uTWFuYWdlci5oIgpAQCAtMjUzLDYgKzI1NCwyNCBAQCBw
cml2YXRlOgogfTsKICNlbmRpZgogCitzdHJ1Y3QgSFRNTE1lZGlhRWxlbWVudDo6VHJhY2tHcm91
cCB7CisgICAgZW51bSBHcm91cEtpbmQgeyBDYXB0aW9uc0FuZFN1YnRpdGxlcywgRGVzY3JpcHRp
b24sIENoYXB0ZXIsIE1ldGFkYXRhLCBPdGhlciB9OworCisgICAgVHJhY2tHcm91cChHcm91cEtp
bmQga2luZCkKKyAgICAgICAgOiB2aXNpYmxlVHJhY2soMCkKKyAgICAgICAgLCBkZWZhdWx0VHJh
Y2soMCkKKyAgICAgICAgLCBraW5kKGtpbmQpCisgICAgICAgICwgaGFzU3JjTGFuZyhmYWxzZSkK
KyAgICB7CisgICAgfQorCisgICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2s+PiB0cmFja3M7Cisg
ICAgUmVmUHRyPFRleHRUcmFjaz4gdmlzaWJsZVRyYWNrOworICAgIFJlZlB0cjxUZXh0VHJhY2s+
IGRlZmF1bHRUcmFjazsKKyAgICBHcm91cEtpbmQga2luZDsKKyAgICBib29sIGhhc1NyY0xhbmc7
Cit9OworCiBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIp
CiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIEFjdGl2ZURPTU9i
amVjdCgmZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4
IDkyY2NlODY2ZjdkOWM0NzBkZjA2MmVhY2Q1NTFiMWM3M2UxYzFlMjMuLmU5NzMzMjlkZDg1MDEz
ZTQ0ODliODU3NGM2ZTUwY2NmMWIxZmY5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCkBAIC0zMSwxMCArMzEsMTAgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkdlbmVyaWNUYXNr
UXVldWUuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50RW51bXMuaCIKICNpbmNsdWRlICJI
VE1MTWVkaWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVyLmgiCiAj
aW5jbHVkZSAiTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiTWVkaWFQbGF5
ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAjaW5jbHVkZSAiUGFnZVRocm90dGxl
ci5oIgogCkBAIC02Nyw2ICs2Nyw3IEBAIGNsYXNzIE1lZGlhQ29udHJvbGxlcjsKIGNsYXNzIE1l
ZGlhQ29udHJvbHM7CiBjbGFzcyBNZWRpYUNvbnRyb2xzSG9zdDsKIGNsYXNzIE1lZGlhRXJyb3I7
CitjbGFzcyBNZWRpYVBsYXllcjsKIGNsYXNzIFRpbWVSYW5nZXM7CiAjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQV9WMikKIGNsYXNzIE1lZGlhS2V5czsKQEAgLTEzMSwyMiArMTMyLDE0IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqKTsK
ICAgICBQbGF0Zm9ybUxheWVyKiB2aWRlb0Z1bGxzY3JlZW5MYXllcigpIGNvbnN0IHsgcmV0dXJu
IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldFZpZGVvRnVsbHNj
cmVlbkZyYW1lKEZsb2F0UmVjdCk7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5
KE1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkpOwotICAgIE1lZGlhUGxheWVyOjpWaWRlb0dyYXZp
dHkgdmlkZW9GdWxsc2NyZWVuR3Jhdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GdWxsc2Ny
ZWVuR3Jhdml0eTsgfQorICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBs
YXllckVudW1zOjpWaWRlb0dyYXZpdHkpOworICAgIE1lZGlhUGxheWVyRW51bXM6OlZpZGVvR3Jh
dml0eSB2aWRlb0Z1bGxzY3JlZW5HcmF2aXR5KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Z1bGxz
Y3JlZW5HcmF2aXR5OyB9CiAjZW5kaWYKIAotICAgIGVudW0gRGVsYXllZEFjdGlvblR5cGUgewot
ICAgICAgICBMb2FkTWVkaWFSZXNvdXJjZSA9IDEgPDwgMCwKLSAgICAgICAgQ29uZmlndXJlVGV4
dFRyYWNrcyA9IDEgPDwgMSwKLSAgICAgICAgVGV4dFRyYWNrQ2hhbmdlc05vdGlmaWNhdGlvbiA9
IDEgPDwgMiwKLSAgICAgICAgQ29uZmlndXJlVGV4dFRyYWNrRGlzcGxheSA9IDEgPDwgMywKLSAg
ICAgICAgQ2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGFibGl0eSA9IDEgPDwgNCwKLQotICAgICAg
ICBFdmVyeURlbGF5ZWRBY3Rpb24gPSBMb2FkTWVkaWFSZXNvdXJjZSB8IENvbmZpZ3VyZVRleHRU
cmFja3MgfCBUZXh0VHJhY2tDaGFuZ2VzTm90aWZpY2F0aW9uIHwgQ29uZmlndXJlVGV4dFRyYWNr
RGlzcGxheSB8IENoZWNrUGxheWJhY2tUYXJnZXRDb21wYXRhYmxpdHksCi0gICAgfTsKKyAgICB1
c2luZyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkRlbGF5ZWRBY3Rpb25UeXBlOwogICAgIHZvaWQg
c2NoZWR1bGVEZWxheWVkQWN0aW9uKERlbGF5ZWRBY3Rpb25UeXBlKTsKICAgICAKLSAgICBNZWRp
YVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Q7CisgICAgTWVkaWFQ
bGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Q7CiAgICAgCiAg
ICAgYm9vbCBpbkFjdGl2ZURvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbkFjdGl2ZURvY3Vt
ZW50OyB9CiAgICAgCkBAIC0xNjMsNyArMTU2LDcgQEAgcHVibGljOgogI2VuZGlmCiAKIC8vIG5l
dHdvcmsgc3RhdGUKLSAgICBlbnVtIE5ldHdvcmtTdGF0ZSB7IE5FVFdPUktfRU1QVFksIE5FVFdP
UktfSURMRSwgTkVUV09SS19MT0FESU5HLCBORVRXT1JLX05PX1NPVVJDRSB9OworICAgIHVzaW5n
IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6TmV0d29ya1N0YXRlOwogICAgIE5ldHdvcmtTdGF0ZSBu
ZXR3b3JrU3RhdGUoKSBjb25zdDsKIAogICAgIFN0cmluZyBwcmVsb2FkKCkgY29uc3Q7ICAgIApA
QCAtMTc0LDYgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgY2FuUGxheVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0gPSBTdHJpbmcoKSwgY29u
c3QgVVJMJiA9IFVSTCgpKSBjb25zdDsKIAogLy8gcmVhZHkgc3RhdGUKKyAgICB1c2luZyBIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlJlYWR5U3RhdGU7CiAgICAgdmlydHVhbCBSZWFkeVN0YXRlIHJl
YWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNlZWtpbmcoKSBjb25zdDsKIApA
QCAtMzA2LDI0ICszMDAsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1UZXh0VHJhY2tNZW51SW50
ZXJmYWNlKiBwbGF0Zm9ybVRleHRUcmFja01lbnUoKTsKICNlbmRpZgogCi0gICAgc3RydWN0IFRy
YWNrR3JvdXAgewotICAgICAgICBlbnVtIEdyb3VwS2luZCB7IENhcHRpb25zQW5kU3VidGl0bGVz
LCBEZXNjcmlwdGlvbiwgQ2hhcHRlciwgTWV0YWRhdGEsIE90aGVyIH07Ci0KLSAgICAgICAgVHJh
Y2tHcm91cChHcm91cEtpbmQga2luZCkKLSAgICAgICAgICAgIDogdmlzaWJsZVRyYWNrKDApCi0g
ICAgICAgICAgICAsIGRlZmF1bHRUcmFjaygwKQotICAgICAgICAgICAgLCBraW5kKGtpbmQpCi0g
ICAgICAgICAgICAsIGhhc1NyY0xhbmcoZmFsc2UpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0g
ICAgICAgIFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrPj4gdHJhY2tzOwotICAgICAgICBSZWZQdHI8
VGV4dFRyYWNrPiB2aXNpYmxlVHJhY2s7Ci0gICAgICAgIFJlZlB0cjxUZXh0VHJhY2s+IGRlZmF1
bHRUcmFjazsKLSAgICAgICAgR3JvdXBLaW5kIGtpbmQ7Ci0gICAgICAgIGJvb2wgaGFzU3JjTGFu
ZzsKLSAgICB9OwotCisgICAgc3RydWN0IFRyYWNrR3JvdXA7CiAgICAgdm9pZCBjb25maWd1cmVU
ZXh0VHJhY2tHcm91cEZvckxhbmd1YWdlKGNvbnN0IFRyYWNrR3JvdXAmKSBjb25zdDsKICAgICB2
b2lkIGNvbmZpZ3VyZVRleHRUcmFja3MoKTsKICAgICB2b2lkIGNvbmZpZ3VyZVRleHRUcmFja0dy
b3VwKGNvbnN0IFRyYWNrR3JvdXAmKTsKQEAgLTMzMSw3ICszMDgsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRTZWxlY3RlZFRleHRUcmFjayhUZXh0VHJhY2sqKTsKIAogICAgIGJvb2wgdGV4dFRy
YWNrc0FyZVJlYWR5KCkgY29uc3Q7Ci0gICAgZW51bSBUZXh0VHJhY2tWaXNpYmlsaXR5Q2hlY2tU
eXBlIHsgQ2hlY2tUZXh0VHJhY2tWaXNpYmlsaXR5LCBBc3N1bWVUZXh0VHJhY2tWaXNpYmlsaXR5
Q2hhbmdlZCB9OworICAgIHVzaW5nIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VGV4dFRyYWNrVmlz
aWJpbGl0eUNoZWNrVHlwZTsKICAgICB2b2lkIGNvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkoVGV4
dFRyYWNrVmlzaWJpbGl0eUNoZWNrVHlwZSBjaGVja1R5cGUgPSBDaGVja1RleHRUcmFja1Zpc2li
aWxpdHkpOwogICAgIHZvaWQgdXBkYXRlVGV4dFRyYWNrRGlzcGxheSgpOwogCkBAIC0zODEsMTMg
KzM1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaXNGdWxs
c2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB0b2dnbGVGdWxsc2NyZWVuU3RhdGUo
KTsKIAotICAgIGVudW0gewotICAgICAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSA9IDAsCi0g
ICAgICAgIFZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCA9IDEgPDwgMCwKLSAgICAgICAgVmlk
ZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCA9IDEgPDwgMSwKLSAgICB9OwotICAgIHR5cGVkZWYg
dWludDMyX3QgVmlkZW9GdWxsc2NyZWVuTW9kZTsKLQorICAgIHVzaW5nIE1lZGlhUGxheWVyRW51
bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGU7CiAgICAgVmlkZW9GdWxsc2NyZWVuTW9kZSBmdWxsc2Ny
ZWVuTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTW9kZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoVmlkZW9GdWxsc2NyZWVuTW9kZSBtb2Rl
KSB7IG1fdmlkZW9GdWxsc2NyZWVuTW9kZSA9IG1vZGU7IH0KIApAQCAtNDI0LDcgKzM5NSw3IEBA
IHB1YmxpYzoKICAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCk7
CiAjZW5kaWYKIAotICAgIGVudW0gSW52YWxpZFVSTEFjdGlvbiB7IERvTm90aGluZywgQ29tcGxh
aW4gfTsKKyAgICB1c2luZyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkludmFsaWRVUkxBY3Rpb247
CiAgICAgYm9vbCBpc1NhZmVUb0xvYWRVUkwoY29uc3QgVVJMJiwgSW52YWxpZFVSTEFjdGlvbik7
CiAKICAgICBjb25zdCBTdHJpbmcmIG1lZGlhR3JvdXAoKSBjb25zdDsKQEAgLTQzNywxNCArNDA4
LDE0IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBmaWxlU2l6ZSgpIGNvbnN0
OwogCi0gICAgdm9pZCBtZWRpYUxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0
ZSk7Ci0gICAgdm9pZCBtZWRpYUxvYWRpbmdGYWlsZWRGYXRhbGx5KE1lZGlhUGxheWVyOjpOZXR3
b3JrU3RhdGUpOworICAgIHZvaWQgbWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyRW51bXM6
Ok5ldHdvcmtTdGF0ZSk7CisgICAgdm9pZCBtZWRpYUxvYWRpbmdGYWlsZWRGYXRhbGx5KE1lZGlh
UGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZSk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQog
ICAgIFJlZlB0cjxWaWRlb1BsYXliYWNrUXVhbGl0eT4gZ2V0VmlkZW9QbGF5YmFja1F1YWxpdHko
KTsKICNlbmRpZgogCi0gICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgcHJlbG9hZFZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9wcmVsb2FkOyB9CisgICAgTWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCBw
cmVsb2FkVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ByZWxvYWQ7IH0KICAgICBIVE1MTWVkaWFT
ZXNzaW9uJiBtZWRpYVNlc3Npb24oKSBjb25zdCB7IHJldHVybiAqbV9tZWRpYVNlc3Npb247IH0K
IAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19TQ1JJUFQpCkBAIC01MjQsOCArNDk1LDggQEAg
cHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5U3RhdGUoKSB7IH0KICAg
ICAKLSAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwotICAg
IHZvaWQgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUpOworICAgIHZv
aWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRlKTsKKyAgICB2b2lk
IHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGUpOwogCiAgICAg
ZG91YmxlIGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpIGNvbnN0OwogICAgIGRvdWJsZSByZXF1ZXN0
ZWRQbGF5YmFja1JhdGUoKSBjb25zdDsKQEAgLTcwNSw3ICs2NzYsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgaXNCbG9ja2VkKCkgY29uc3Q7CiAgICAgYm9vbCBpc0Jsb2NrZWRPbk1lZGlhQ29udHJv
bGxlcigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBoYXNDdXJyZW50U3JjKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gIW1fY3VycmVudFNyYy5pc0VtcHR5KCk7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNMaXZlU3RyZWFtKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbW92aWVMb2FkVHlwZSgp
ID09IE1lZGlhUGxheWVyOjpMaXZlU3RyZWFtOyB9CisgICAgdmlydHVhbCBib29sIGlzTGl2ZVN0
cmVhbSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1vdmllTG9hZFR5cGUoKSA9PSBNZWRpYVBs
YXllckVudW1zOjpMaXZlU3RyZWFtOyB9CiAgICAgYm9vbCBpc0F1dG9wbGF5aW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9hdXRvcGxheWluZzsgfQogCiAgICAgdm9pZCB1cGRhdGVTbGVlcERpc2FibGlu
ZygpOwpAQCAtODAzLDEyICs3NzQsMTIgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1MpCiAg
ICAgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXI7CiAgICAg
RmxvYXRSZWN0IG1fdmlkZW9GdWxsc2NyZWVuRnJhbWU7Ci0gICAgTWVkaWFQbGF5ZXI6OlZpZGVv
R3Jhdml0eSBtX3ZpZGVvRnVsbHNjcmVlbkdyYXZpdHk7CisgICAgTWVkaWFQbGF5ZXJFbnVtczo6
VmlkZW9HcmF2aXR5IG1fdmlkZW9GdWxsc2NyZWVuR3Jhdml0eTsKICNlbmRpZgogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsKIAotICAgIE1lZGlhUGxheWVyOjpQ
cmVsb2FkIG1fcHJlbG9hZDsKKyAgICBNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkIG1fcHJlbG9h
ZDsKIAogICAgIERpc3BsYXlNb2RlIG1fZGlzcGxheU1vZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudEVudW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwNzk3OTE1YzdhMjY4YWYy
ZDBiZGYxZWZlNjEzZDMxNTk1MzYxZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIEhUTUxNZWRpYUVsZW1lbnRFbnVtc19oCisjZGVmaW5lIEhUTUxNZWRpYUVsZW1l
bnRFbnVtc19oCisKKyNpbmNsdWRlICJNZWRpYVBsYXllckVudW1zLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgSFRNTE1lZGlhRWxlbWVudEVudW1zIDogcHVibGljIE1lZGlhUGxh
eWVyRW51bXMgeworcHVibGljOgorICAgIHVzaW5nIE1lZGlhUGxheWVyRW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGU7CisKKyAgICBlbnVtIERlbGF5ZWRBY3Rpb25UeXBlIHsKKyAgICAgICAgTG9h
ZE1lZGlhUmVzb3VyY2UgPSAxIDw8IDAsCisgICAgICAgIENvbmZpZ3VyZVRleHRUcmFja3MgPSAx
IDw8IDEsCisgICAgICAgIFRleHRUcmFja0NoYW5nZXNOb3RpZmljYXRpb24gPSAxIDw8IDIsCisg
ICAgICAgIENvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkgPSAxIDw8IDMsCisgICAgICAgIENoZWNr
UGxheWJhY2tUYXJnZXRDb21wYXRhYmxpdHkgPSAxIDw8IDQsCisKKyAgICAgICAgRXZlcnlEZWxh
eWVkQWN0aW9uID0gTG9hZE1lZGlhUmVzb3VyY2UgfCBDb25maWd1cmVUZXh0VHJhY2tzIHwgVGV4
dFRyYWNrQ2hhbmdlc05vdGlmaWNhdGlvbiB8IENvbmZpZ3VyZVRleHRUcmFja0Rpc3BsYXkgfCBD
aGVja1BsYXliYWNrVGFyZ2V0Q29tcGF0YWJsaXR5LAorICAgIH07CisKKyAgICBlbnVtIFJlYWR5
U3RhdGUgeyBIQVZFX05PVEhJTkcsIEhBVkVfTUVUQURBVEEsIEhBVkVfQ1VSUkVOVF9EQVRBLCBI
QVZFX0ZVVFVSRV9EQVRBLCBIQVZFX0VOT1VHSF9EQVRBIH07CisgICAgZW51bSBOZXR3b3JrU3Rh
dGUgeyBORVRXT1JLX0VNUFRZLCBORVRXT1JLX0lETEUsIE5FVFdPUktfTE9BRElORywgTkVUV09S
S19OT19TT1VSQ0UgfTsKKyAgICBlbnVtIFRleHRUcmFja1Zpc2liaWxpdHlDaGVja1R5cGUgeyBD
aGVja1RleHRUcmFja1Zpc2liaWxpdHksIEFzc3VtZVRleHRUcmFja1Zpc2liaWxpdHlDaGFuZ2Vk
IH07CisgICAgZW51bSBJbnZhbGlkVVJMQWN0aW9uIHsgRG9Ob3RoaW5nLCBDb21wbGFpbiB9Owor
fTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFD
b250cm9sbGVySW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxl
ckludGVyZmFjZS5oCmluZGV4IGNkMWFhN2FlNzllYjZhNTRhMDhkNGZlOWNmMjI0MzUzMjc5NGE2
MWEuLmVlNzBlMmUyZTcxYzljODEwNjQ4ODQ3MmE4Zjg3N2I4MjllYTFhZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaApAQCAtMjgsNiArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKFZJREVPKQogCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudEVu
dW1zLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMzYsNyArMzcsNyBAQCBjbGFzcyBUaW1lUmFuZ2VzOwogCiB0eXBlZGVmIGludCBFeGNl
cHRpb25Db2RlOwogCi1jbGFzcyBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UgeworY2xhc3MgTWVk
aWFDb250cm9sbGVySW50ZXJmYWNlIDogcHVibGljIEhUTUxNZWRpYUVsZW1lbnRFbnVtcyB7CiBw
dWJsaWM6CiAgICAgdmlydHVhbCB+TWVkaWFDb250cm9sbGVySW50ZXJmYWNlKCkgeyB9OwogICAg
IApAQCAtNjQsOCArNjUsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBib29sIG11dGVk
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRNdXRlZChib29sKSA9IDA7Ci0gICAg
Ci0gICAgZW51bSBSZWFkeVN0YXRlIHsgSEFWRV9OT1RISU5HLCBIQVZFX01FVEFEQVRBLCBIQVZF
X0NVUlJFTlRfREFUQSwgSEFWRV9GVVRVUkVfREFUQSwgSEFWRV9FTk9VR0hfREFUQSB9OworCisg
ICAgdXNpbmcgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpSZWFkeVN0YXRlOwogICAgIHZpcnR1YWwg
UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgPSAwOwogCiAgICAgLy8gTWVkaWFDb250cm9s
RWxlbWVudHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAwMzBkZDY4ZWE3ZjA4
ZTFlZmVhYmY2YmZkNjAzODU5NDEwNWNhY2JkLi5hNTZjZGMyOWFjMGZhYTdlMDc1OWZmYjBjMjNi
NTlmZDAwYzI4NjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTI5LDcgKzI5
LDcgQEAKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiSFRNTE1lZGlhRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnRFbnVtcy5oIgogI2luY2x1ZGUgIkhv
c3RXaW5kb3cuaCIKICNpbmNsdWRlICJMYXllckZsdXNoVGhyb3R0bGVTdGF0ZS5oIgogI2luY2x1
ZGUgIk1lZGlhUHJvZHVjZXIuaCIKQEAgLTMyNyw3ICszMjcsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oKSB7IHJldHVybiBmYWxzZTsgfQog
I2lmIEVOQUJMRShWSURFTykKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVv
RnVsbHNjcmVlbk1vZGUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBleGl0
VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQm
KSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFj
aygpIHsgcmV0dXJuIGZhbHNlOyB9IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKaW5kZXggYzIwMjQxYzUzZjEwYWRhYjM2MTcwNWFmYzQ4MDM2Nzlm
ZmM1ODBiYS4uNTQ2MDJjYzg2NTcwZDM0MTY0NWRmZjdhMGJjN2NhY2RlZGI1ZGUwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zNSw2
ICszNSw3IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1
ZGUgIkxheW91dFJlY3QuaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllckVudW1zLmgiCiAjaW5jbHVk
ZSAiTWVkaWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUxheWVyLmgiCkBAIC0yODUsNyArMjg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgU3RyaW5nIG1lZGlhUGxheWVyRG9jdW1lbnRIb3N0KCkgY29uc3QgeyByZXR1cm4gU3RyaW5n
KCk7IH0KIH07CiAKLWNsYXNzIE1lZGlhUGxheWVyIHsKK2NsYXNzIE1lZGlhUGxheWVyIDogcHVi
bGljIE1lZGlhUGxheWVyRW51bXMgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1lZGlhUGxh
eWVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTWVk
aWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmKTsKQEAgLTMxMSw3ICszMTIsNyBAQCBwdWJsaWM6
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxh
dGZvcm1MYXllciopOwogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0
KTsKLSAgICBlbnVtIFZpZGVvR3Jhdml0eSB7IFZpZGVvR3Jhdml0eVJlc2l6ZSwgVmlkZW9HcmF2
aXR5UmVzaXplQXNwZWN0LCBWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsIH07CisgICAgdXNp
bmcgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9HcmF2aXR5OwogICAgIHZvaWQgc2V0VmlkZW9GdWxs
c2NyZWVuR3Jhdml0eShWaWRlb0dyYXZpdHkpOwogCiAgICAgTlNBcnJheSAqdGltZWRNZXRhZGF0
YSgpIGNvbnN0OwpAQCAtNDIyLDE2ICs0MjMsMTYgQEAgcHVibGljOgogCiAgICAgUGFzc05hdGl2
ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKTsKIAotICAgIGVudW0gTmV0d29y
a1N0YXRlIHsgRW1wdHksIElkbGUsIExvYWRpbmcsIExvYWRlZCwgRm9ybWF0RXJyb3IsIE5ldHdv
cmtFcnJvciwgRGVjb2RlRXJyb3IgfTsKKyAgICB1c2luZyBNZWRpYVBsYXllckVudW1zOjpOZXR3
b3JrU3RhdGU7CiAgICAgTmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpOwogCi0gICAgZW51bSBS
ZWFkeVN0YXRlICB7IEhhdmVOb3RoaW5nLCBIYXZlTWV0YWRhdGEsIEhhdmVDdXJyZW50RGF0YSwg
SGF2ZUZ1dHVyZURhdGEsIEhhdmVFbm91Z2hEYXRhIH07CisgICAgdXNpbmcgTWVkaWFQbGF5ZXJF
bnVtczo6UmVhZHlTdGF0ZTsKICAgICBSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKTsKIAotICAgIGVu
dW0gTW92aWVMb2FkVHlwZSB7IFVua25vd24sIERvd25sb2FkLCBTdG9yZWRTdHJlYW0sIExpdmVT
dHJlYW0gfTsKKyAgICB1c2luZyBNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlOwogICAg
IE1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0OwogCi0gICAgZW51bSBQcmVsb2Fk
IHsgTm9uZSwgTWV0YURhdGEsIEF1dG8gfTsKKyAgICB1c2luZyBNZWRpYVBsYXllckVudW1zOjpQ
cmVsb2FkOwogICAgIFByZWxvYWQgcHJlbG9hZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0UHJlbG9h
ZChQcmVsb2FkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJFbnVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJFbnVtcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxYWEwMTIwZjVhM2M2ODIwZTg2NWMzZjQz
MWJmYzA1YWY4YzVlM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgTWVkaWFQbGF5ZXJFbnVtc19oCisjZGVmaW5lIE1lZGlhUGxheWVyRW51bXNfaAor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUGxheWVyRW51bXMgeworcHVibGlj
OgorICAgIGVudW0gTmV0d29ya1N0YXRlIHsgRW1wdHksIElkbGUsIExvYWRpbmcsIExvYWRlZCwg
Rm9ybWF0RXJyb3IsIE5ldHdvcmtFcnJvciwgRGVjb2RlRXJyb3IgfTsKKyAgICBlbnVtIFJlYWR5
U3RhdGUgIHsgSGF2ZU5vdGhpbmcsIEhhdmVNZXRhZGF0YSwgSGF2ZUN1cnJlbnREYXRhLCBIYXZl
RnV0dXJlRGF0YSwgSGF2ZUVub3VnaERhdGEgfTsKKyAgICBlbnVtIE1vdmllTG9hZFR5cGUgeyBV
bmtub3duLCBEb3dubG9hZCwgU3RvcmVkU3RyZWFtLCBMaXZlU3RyZWFtIH07CisgICAgZW51bSBQ
cmVsb2FkIHsgTm9uZSwgTWV0YURhdGEsIEF1dG8gfTsKKyAgICBlbnVtIFZpZGVvR3Jhdml0eSB7
IFZpZGVvR3Jhdml0eVJlc2l6ZSwgVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0LCBWaWRlb0dyYXZp
dHlSZXNpemVBc3BlY3RGaWxsIH07CisgICAgZW51bSB7CisgICAgICAgIFZpZGVvRnVsbHNjcmVl
bk1vZGVOb25lID0gMCwKKyAgICAgICAgVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkID0gMSA8
PCAwLAorICAgICAgICBWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkID0gMSA8PCAxLAorICAg
IH07CisgICAgdHlwZWRlZiB1aW50MzJfdCBWaWRlb0Z1bGxzY3JlZW5Nb2RlOworfTsKKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQuaAppbmRleCBhMjMzNjBjZTFiYWEx
MTgzZGI4YjNkOTAzODBhMDU2NzM0YjQxYjBhLi5lMjIzNzE3OTY3MjllMjFhZDRlZmU0MjI0ODhl
N2ZlYzI0MGE2ZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5oCkBAIC0yOCwxNCAr
MjgsMTggQEAKIAogI2lmIFBMQVRGT1JNKElPUykKIAotI2ltcG9ydCA8V2ViQ29yZS9IVE1MVmlk
ZW9FbGVtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oPgog
CiBPQkpDX0NMQVNTIFVJVmlldzsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSFRNTFZp
ZGVvRWxlbWVudDsKK30KKwogV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyIDogTlNPYmplY3QKIC0gKHZvaWQpc2V0VmlkZW9FbGVtZW50OihXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50Kil2aWRlb0VsZW1lbnQ7CiAtIChXZWJDb3JlOjpIVE1MVmlk
ZW9FbGVtZW50Kil2aWRlb0VsZW1lbnQ7Ci0tICh2b2lkKWVudGVyRnVsbHNjcmVlbjooVUlWaWV3
ICopdmlldyBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlKW1vZGU7CistICh2b2lkKWVudGVyRnVsbHNjcmVlbjooVUlWaWV3ICopdmlldyBtb2RlOihX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpbW9kZTsK
IC0gKHZvaWQpZXhpdEZ1bGxzY3JlZW47CiAtICh2b2lkKXJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxz
Y3JlZW47CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQppbmRleCA3YTUzNzM3
NjI5MTkwZWQ0ZDcwYjY0MjFiMjk0ZjRmZjY1M2ZkMTcyLi5iMWMwYmU5MDQ1ZDAwYTU1MjE2ZDE2
ZWU1NzE3MGIyNGYzMjYxZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KQEAg
LTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
LmgiCiAjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5oIgogI2lt
cG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxW
aWRlb0VsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZFJ1bi5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTEyMSw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAg
cmV0dXJuIF92aWRlb0VsZW1lbnQuZ2V0KCk7CiB9CiAKLS0gKHZvaWQpZW50ZXJGdWxsc2NyZWVu
OihVSVZpZXcgKil2aWV3IG1vZGU6KEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUpbW9kZQorLSAodm9pZCllbnRlckZ1bGxzY3JlZW46KFVJVmlldyAqKXZpZXcgbW9kZTooSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGUKIHsKICAgICBbc2Vs
ZiByZXRhaW5dOyAvLyBCYWxhbmNlZCBieSAtcmVsZWFzZSBpbiBkaWRFeGl0RnVsbHNjcmVlbjoK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggZjIwNjc4NGY0OWQ5YmQ3ODI3
ZjQyM2YyZDIxY2IxNTU3OThiYmI1OC4uN2FkNjVkZDE4NWM4OWU0OThlNWQzODA1ZjNjYWY1OWU5
MTMyMjBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTMwLDkgKzMwLDExIEBA
CiAjaWYgUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSA4MDAwMAogCiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudExpc3RlbmVyLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFF
bGVtZW50RW51bXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oPgorI2luY2x1ZGUgPGZ1
bmN0aW9uYWw+CisjaW5jbHVkZSA8b2JqYy9vYmpjLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJl
ZkNvdW50ZWQuaD4KQEAgLTg5LDcgKzkxLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgdm9pZCBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRl
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJv
b2wgZW5hYmxlZCwgRXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5cGUsIFdURjo6U3RyaW5nIGxvY2Fs
aXplZERldmljZU5hbWUpIG92ZXJyaWRlOwogICAgIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgdm9pZCBzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYsIGNvbnN0IEludFJlY3QmIGlu
aXRpYWxSZWN0LCBVSVZpZXcgKiwgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgdm9pZCBzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYsIGNvbnN0IEludFJlY3Qm
IGluaXRpYWxSZWN0LCBVSVZpZXcgKiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlLCBib29sIGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbigpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbihjb25zdCBJbnRSZWN0JiBmaW5hbFJlY3QpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbigpOwpAQCAt
OTcsNyArOTksNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJl
cXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFs
IHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGJvb2wgdmlzaWJsZSwgY29uc3QgSW50UmVj
dCYgaW5saW5lUmVjdCk7CiAKLSAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5N
b2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KKyAgICBIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsg
fQogICAgIGJvb2wgYWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKCkgY29uc3QgeyByZXR1cm4gbV9h
bGxvd09wdGltaXplZEZ1bGxzY3JlZW47IH0KICAgICB2b2lkIHNldElzT3B0aW1pemVkKGJvb2wp
OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbWF5QXV0b21hdGljYWxseVNob3dWaWRlb09wdGlt
aXplZCgpIGNvbnN0OwpAQCAtMTExLDE1ICsxMTMsMTUgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
Q2FuY2VsT3B0aW1pemVkRnVsbHNjcmVlbigpOwogICAgIHZvaWQgcHJlcGFyZUZvck9wdGltaXpl
ZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5kbGVyKHZvaWQgKF4pKEJPT0wpKTsKIAot
ICAgIHZvaWQgc2V0TW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsK
LSAgICB2b2lkIGNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
KTsKLSAgICBib29sIGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSBtb2RlKSBjb25zdCB7IHJldHVybiBtX21vZGUgJiBtb2RlOyB9Ci0gICAgYm9vbCBpc01vZGUo
SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKSBjb25zdCB7IHJldHVy
biBtX21vZGUgPT0gbW9kZTsgfQorICAgIHZvaWQgc2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51
bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgIHZvaWQgY2xlYXJNb2RlKEhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CisgICAgYm9vbCBoYXNNb2RlKEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKSBjb25zdCB7IHJldHVy
biBtX21vZGUgJiBtb2RlOyB9CisgICAgYm9vbCBpc01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZSA9PSBtb2Rl
OyB9CiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdCgpOwogICAgIHZvaWQgYmVnaW5TZXNzaW9uKCk7Ci0gICAgdm9pZCBzZXR1
cEZ1bGxzY3JlZW5JbnRlcm5hbChQbGF0Zm9ybUxheWVyJiwgY29uc3QgSW50UmVjdCYgaW5pdGlh
bFJlY3QsIFVJVmlldyAqLCBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBi
b29sIGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbik7CisgICAgdm9pZCBzZXR1cEZ1bGxzY3JlZW5J
bnRlcm5hbChQbGF0Zm9ybUxheWVyJiwgY29uc3QgSW50UmVjdCYgaW5pdGlhbFJlY3QsIFVJVmll
dyAqLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxs
b3dPcHRpbWl6ZWRGdWxsc2NyZWVuKTsKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbk9wdGltaXpl
ZCgpOwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuU3RhbmRhcmQoKTsKICAgICB2b2lkIGV4aXRG
dWxsc2NyZWVuSW50ZXJuYWwoY29uc3QgSW50UmVjdCYgZmluYWxSZWN0KTsKQEAgLTEzOCw3ICsx
NDAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmV0YWluUHRyPFVJVmlld0NvbnRyb2xsZXI+IG1fdmll
d0NvbnRyb2xsZXI7CiAgICAgUmV0YWluUHRyPFVJVmlldz4gbV9wYXJlbnRWaWV3OwogICAgIFJl
dGFpblB0cjxVSVdpbmRvdz4gbV9wYXJlbnRXaW5kb3c7Ci0gICAgSFRNTE1lZGlhRWxlbWVudDo6
VmlkZW9GdWxsc2NyZWVuTW9kZSBtX21vZGUgeyBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlTm9uZSB9OworICAgIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSBtX21vZGUgeyBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVOb25lIH07CiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKGJvb2wpPiBtX3ByZXBhcmVUb0lubGlu
ZUNhbGxiYWNrOwogICAgIGJvb2wgbV9hbGxvd09wdGltaXplZEZ1bGxzY3JlZW4geyBmYWxzZSB9
OwogICAgIGJvb2wgbV9leGl0UmVxdWVzdGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbQppbmRleCBkMjhiYjZlNzNiMzIxMmNlZmMwMWJiMDY2ZWJhNTYyNGEyM2M2N2Iz
Li4zNWU3ODY0ZDVkYTQ0Y2U1OTQ1YmQ3YTI1MTA0Y2Q1ZDQ0ZWE1YTI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0Lm1tCkBAIC05MjYsMTEgKzkyNiwxMSBAQCB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwg
RXh0ZXJuYQogICAgIH0pOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllciwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgaW5pdGlhbFJlY3QsIFVJVmlldyogcGFyZW50VmlldywgSFRNTE1lZGlh
RWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlLCBib29sIGFsbG93T3B0aW1pemVkRnVs
bHNjcmVlbikKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVs
bHNjcmVlbihQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBpbml0aWFsUmVjdCwgVUlWaWV3KiBwYXJlbnRWaWV3LCBIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4p
CiB7CiAgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdU
aGlzKHRoaXMpOwogCi0gICAgQVNTRVJUKG1vZGUgIT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9G
dWxsc2NyZWVuTW9kZU5vbmUpOworICAgIEFTU0VSVChtb2RlICE9IEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUpOwogICAgIG1fdmlkZW9MYXllciA9ICZ2aWRl
b0xheWVyOwogCiAgICAgbV9tb2RlID0gbW9kZTsKQEAgLTk0MCw3ICs5NDAsNyBAQCB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1M
YXllciYgdmlkZW9MYXllcgogICAgIH0pOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW5JbnRlcm5hbChQbGF0Zm9ybUxheWVyJiB2aWRl
b0xheWVyLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsUmVjdCwgVUlWaWV3KiBwYXJl
bnRWaWV3LCBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJvb2wg
YWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuSW50ZXJuYWwoUGxhdGZvcm1MYXllciYgdmlkZW9MYXll
ciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbFJlY3QsIFVJVmlldyogcGFyZW50Vmll
dywgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJvb2wg
YWxsb3dPcHRpbWl6ZWRGdWxsc2NyZWVuKQogewogICAgIExPRyhGdWxsc2NyZWVuLCAiV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbkludGVybmFsKCVwKSIs
IHRoaXMpOwogICAgIFVOVVNFRF9QQVJBTSh2aWRlb0xheWVyKTsKQEAgLTEwMTksOSArMTAxOSw5
IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVl
bigpCiAgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdU
aGlzKHRoaXMpOwogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IFtzdHJvbmdUaGlzXSB7CiAgICAgICAgIFtzdHJvbmdUaGlzLT5tX3ZpZGVvTGF5ZXJDb250YWlu
ZXIgc2V0QmFja2dyb3VuZENvbG9yOltbZ2V0VUlDb2xvckNsYXNzKCkgYmxhY2tDb2xvcl0gQ0dD
b2xvcl1dOwotICAgICAgICBpZiAoc3Ryb25nVGhpcy0+bW9kZSgpID09IEhUTUxNZWRpYUVsZW1l
bnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQpCisgICAgICAgIGlmIChzdHJvbmdUaGlz
LT5tb2RlKCkgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0
aW1pemVkKQogICAgICAgICAgICAgc3Ryb25nVGhpcy0+ZW50ZXJGdWxsc2NyZWVuT3B0aW1pemVk
KCk7Ci0gICAgICAgIGVsc2UgaWYgKHN0cm9uZ1RoaXMtPm1vZGUoKSA9PSBIVE1MTWVkaWFFbGVt
ZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpCisgICAgICAgIGVsc2UgaWYgKHN0cm9u
Z1RoaXMtPm1vZGUoKSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVTdGFuZGFyZCkKICAgICAgICAgICAgIHN0cm9uZ1RoaXMtPmVudGVyRnVsbHNjcmVlblN0YW5k
YXJkKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtMTA4NCwxNiArMTA4NCwxNiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpleGl0RnVsbHNjcmVlbkludGVybmFsKGNvbnN0IFdlYkNvcmU6OkludAogICAgIFtbbV9w
bGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07CiAKIAotICAgIGlmIChp
c01vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCkpIHsK
KyAgICBpZiAoaXNNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZU9wdGltaXplZCkpIHsKICAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpOT107CiAgICAgICAg
IFttX3BsYXllclZpZXdDb250cm9sbGVyIHN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuXTsKLSAgICB9
IGVsc2UgaWYgKGlzTW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0
aW1pemVkIHwgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSkg
eworICAgIH0gZWxzZSBpZiAoaXNNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZU9wdGltaXplZCB8IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZVN0YW5kYXJkKSkgewogICAgICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ+IHN0cm9uZ1RoaXModGhpcyk7CiAgICAgICAgIFttX3BsYXllclZpZXdDb250
cm9sbGVyIGV4aXRGdWxsU2NyZWVuQW5pbWF0ZWQ6Tk8gY29tcGxldGlvbkhhbmRsZXI6W3N0cm9u
Z1RoaXNdIChCT09MLCBOU0Vycm9yKikgewogICAgICAgICAgICAgW3N0cm9uZ1RoaXMtPm1fd2lu
ZG93IHNldEhpZGRlbjpOT107CiAgICAgICAgICAgICBbc3Ryb25nVGhpcy0+bV9wbGF5ZXJWaWV3
Q29udHJvbGxlciBzdG9wT3B0aW1pemVkRnVsbHNjcmVlbl07CiAgICAgICAgIH1dOwotICAgIH0g
ZWxzZSBpZiAoaXNNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFu
ZGFyZCkpIHsKKyAgICB9IGVsc2UgaWYgKGlzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkpIHsKICAgICAgICAgUmVmUHRyPFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMpOwogICAgICAgICBbbV9wbGF5
ZXJWaWV3Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbkFuaW1hdGVkOllFUyBjb21wbGV0aW9uSGFu
ZGxlcjpbc3Ryb25nVGhpc10gKEJPT0wsIE5TRXJyb3IqKSB7CiAgICAgICAgICAgICBzdHJvbmdU
aGlzLT5tX2V4aXRDb21wbGV0ZWQgPSB0cnVlOwpAQCAtMTE0NSw5ICsxMTQ1LDkgQEAgdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW5JbnRlcm5h
bCgpCiAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRQbGF5ZXJDb250cm9sbGVyOm5pbF07CiAgICAgCi0g
ICAgaWYgKGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGlt
aXplZCkpCisgICAgaWYgKGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlT3B0aW1pemVkKSkKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc3Rv
cE9wdGltaXplZEZ1bGxzY3JlZW5dOwotICAgIGlmIChoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6
OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCkpCisgICAgaWYgKGhhc01vZGUoSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpKQogICAgICAgICBbbV9w
bGF5ZXJWaWV3Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbkFuaW1hdGVkOk5PIGNvbXBsZXRpb25I
YW5kbGVyOltdIChCT09MLCBOU0Vycm9yICopIHsgfV07CiAgICAgCiAgICAgW1ttX3BsYXllclZp
ZXdDb250cm9sbGVyIHZpZXddIHJlbW92ZUZyb21TdXBlcnZpZXddOwpAQCAtMTE5Miw3ICsxMTky
LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cmVxdWVzdEhpZGVB
bmRFeGl0RnVsbHNjcmVlbigpCiAgICAgaWYgKCFtX2VudGVyUmVxdWVzdGVkKQogICAgICAgICBy
ZXR1cm47CiAgICAgCi0gICAgaWYgKGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxs
c2NyZWVuTW9kZU9wdGltaXplZCkpCisgICAgaWYgKGhhc01vZGUoSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0aW1pemVkKSkKICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIExPRyhGdWxsc2NyZWVuLCAiV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oJXApIiwgdGhpcyk7CkBAIC0xMjI4LDcgKzEy
MjgsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpwcmVwYXJlZFRv
UmV0dXJuVG9JbmxpbmUoYm9vbCB2aXNpYmxlLCBjbwogCiBib29sIFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvT3B0aW1pemVkKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gW21fcGxheWVyQ29udHJvbGxlciBpc1BsYXlpbmddICYmIG1fbW9k
ZSA9PSBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgJiYgd2tJ
c09wdGltaXplZEZ1bGxzY3JlZW5TdXBwb3J0ZWQoKTsKKyAgICByZXR1cm4gW21fcGxheWVyQ29u
dHJvbGxlciBpc1BsYXlpbmddICYmIG1fbW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCAmJiB3a0lzT3B0aW1pemVkRnVsbHNjcmVlblN1cHBv
cnRlZCgpOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpmdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoc3RkOjpmdW5jdGlvbjx2b2lkKGJvb2wpPiBjYWxsYmFj
aykKQEAgLTEyNDEsOSArMTI0MSw5IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZShzdGQ6OmZ1bmN0aW9uCiB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Ojp3aWxsU3RhcnRPcHRpbWl6ZWRGdWxsc2Ny
ZWVuKCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Ojp3aWxsU3RhcnRPcHRpbWl6ZWRGdWxsc2NyZWVuKCVwKSIsIHRoaXMpOwotICAgIHNl
dE1vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCk7Cisg
ICAgc2V0TW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRp
bWl6ZWQpOwogCi0gICAgaWYgKCFoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlbk1vZGVTdGFuZGFyZCkpCisgICAgaWYgKCFoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
UmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMp
OwpAQCAtMTI2MCw3ICsxMjYwLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6d2lsbFN0YXJ0T3B0aW1pemVkRnVsbHNjcmVlbigpCiAgICAgICAgIFtzdHJvbmdUaGlz
LT5tX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuQW5pbWF0ZWQ6WUVTIGNvbXBs
ZXRpb25IYW5kbGVyOltzdHJvbmdUaGlzXSAoQk9PTCBjb21wbGV0ZWQsIE5TRXJyb3IqKSB7CiAg
ICAgICAgICAgICBpZiAoIWNvbXBsZXRlZCkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICBzdHJvbmdUaGlzLT5jbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxs
c2NyZWVuTW9kZVN0YW5kYXJkKTsKKyAgICAgICAgICAgIHN0cm9uZ1RoaXMtPmNsZWFyTW9kZShI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCk7CiAgICAg
ICAgICAgICBbc3Ryb25nVGhpcy0+bV93aW5kb3cgc2V0SGlkZGVuOllFU107CiAgICAgICAgIH1d
OwogICAgIH0pOwpAQCAtMTI5NCw3ICsxMjk0LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6d2lsbFN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuKCkKIHZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmRpZFN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuKCkK
IHsKICAgICBMT0coRnVsbHNjcmVlbiwgIldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpkaWRTdG9wT3B0aW1pemVkRnVsbHNjcmVlbiglcCkiLCB0aGlzKTsKLSAgICBpZiAoaGFzTW9k
ZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQpKQorICAgIGlm
IChoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5k
YXJkKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9leGl0Q29tcGxldGVkID0gdHJ1ZTsKQEAg
LTEzMDQsNyArMTMwNCw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmRpZFN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuKCkKIAogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdD4gc3Ryb25nVGhpcyh0aGlzKTsKICAgICBXZWJUaHJlYWRSdW4o
W3N0cm9uZ1RoaXNdIHsKLSAgICAgICAgc3Ryb25nVGhpcy0+Y2xlYXJNb2RlKEhUTUxNZWRpYUVs
ZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVPcHRpbWl6ZWQpOworICAgICAgICBzdHJvbmdUaGlz
LT5jbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlT3B0
aW1pemVkKTsKICAgICAgICAgW3N0cm9uZ1RoaXMtPm1fd2luZG93IHNldEhpZGRlbjpZRVNdOwog
ICAgICAgICBpZiAoc3Ryb25nVGhpcy0+bV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCiAgICAg
ICAgICAgICBzdHJvbmdUaGlzLT5tX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+ZGlkRXhpdEZ1
bGxzY3JlZW4oKTsKQEAgLTEzMjgsMTIgKzEzMjgsMTIgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6d2lsbENhbmNlbE9wdGltaXplZEZ1bGxzY3JlZW4oKQogdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZGlkQ2FuY2VsT3B0aW1pemVkRnVsbHNj
cmVlbigpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZGlkQ2FuY2VsT3B0aW1pemVkRnVsbHNjcmVlbiglcCkiLCB0aGlzKTsKLSAgICBp
ZiAoaGFzTW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQp
KQorICAgIGlmIChoYXNNb2RlKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZVN0YW5kYXJkKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMpOwogICAgIFdlYlRocmVhZFJ1
bihbc3Ryb25nVGhpc10gewotICAgICAgICBzdHJvbmdUaGlzLT5jbGVhck1vZGUoSFRNTE1lZGlh
RWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU9wdGltaXplZCk7CisgICAgICAgIHN0cm9uZ1Ro
aXMtPmNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVP
cHRpbWl6ZWQpOwogICAgICAgICBbc3Ryb25nVGhpcy0+bV93aW5kb3cgc2V0SGlkZGVuOllFU107
CiAgICAgICAgIGlmIChzdHJvbmdUaGlzLT5tX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKICAg
ICAgICAgICAgIHN0cm9uZ1RoaXMtPm1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRFeGl0
RnVsbHNjcmVlbigpOwpAQCAtMTM1Miw5ICsxMzUyLDkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6cHJlcGFyZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENv
bXAKICAgICB9KTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
c2V0TW9kZShIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCit2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRNb2RlKEhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogewotICAgIEhUTUxNZWRpYUVsZW1l
bnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbmV3TW9kZSA9IG1fbW9kZSB8IG1vZGU7CisgICAgSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG5ld01vZGUgPSBtX21vZGUg
fCBtb2RlOwogICAgIGlmIChtX21vZGUgPT0gbmV3TW9kZSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC0xMzYzLDkgKzEzNjMsOSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpzZXRNb2RlKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbgogICAgICAgICBtX3Zp
ZGVvRnVsbHNjcmVlbk1vZGVsLT5mdWxsc2NyZWVuTW9kZUNoYW5nZWQobV9tb2RlKTsKIH0KIAot
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYXJNb2RlKEhUTUxNZWRp
YUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKK3ZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OmNsZWFyTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVv
RnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKLSAgICBIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlIG5ld01vZGUgPSBtX21vZGUgJiB+bW9kZTsKKyAgICBIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbmV3TW9kZSA9IG1fbW9kZSAmIH5tb2RlOwogICAg
IGlmIChtX21vZGUgPT0gbmV3TW9kZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCmluZGV4
IDhmMjYyMzA5MzgyMWI0MTdmYTBkYTEyNTU4MjMxMDBjYzAxOTNiMDguLjcyOTE0ZGJmMjMxNTFj
NGFlYzBhNmNmZmFlYTE1NzgyOGZmY2YxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFZpZGVvR3Jhdml0eSB2aWRlb0xheWVyR3Jhdml0eSgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRf
dCBpbmRleCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24o
dWludDY0X3QgaW5kZXgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFu
Z2VkKEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0Vs
ZW1lbnQuaAppbmRleCBkMGM3YWY1MmIxMGMyYjA1OTRkNjhkMDEyNTIwZDJhNGIyZDdhY2MyLi42
OWM4ZjAxYjhjM2YyZGU2YmIyMGU1Mjg5NmI0MjA0Zjc2MWRkNDY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWxWaWRlb0VsZW1lbnQuaApAQCAtMzEsNyArMzEsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29y
ZS9FdmVudExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxN
ZWRpYUVsZW1lbnRFbnVtcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1MYXllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBBdWRpb1RyYWNrOwogY2xhc3MgSFRNTFZpZGVv
RWxlbWVudDsKIGNsYXNzIFRleHRUcmFjazsKIGNsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZTsKQEAgLTc2LDcgKzc3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgVmlkZW9HcmF2aXR5IHZpZGVvTGF5ZXJHcmF2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0
X3QgaW5kZXgpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZWxl
Y3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpIG92ZXJyaWRlOwotICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoSFRNTE1lZGlhRWxl
bWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09S
RV9FWFBPUlQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCAzNWI1MTM3YTRmNWJiZjRiZDE5ZjhmZjAw
ZDhmNjUzNjdlM2UxY2NiLi44YWQ1MWVkYjFmMTkwYjdiYjY4OTgyNThkZDNjZjgzYjk5ZTUwZTA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCkBAIC04Myw3ICs4Myw3IEBA
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRWxlbWVu
dChIVE1MVmlkZW9FbGVtZW50KiB2aWRlCiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlLT5yZXNldE1lZGlhU3RhdGUoKTsKIAogICAgIGlmIChtX3ZpZGVvRWxlbWVudCAmJiBtX3Zp
ZGVvRWxlbWVudC0+ZnVsbHNjcmVlbk1vZGUoKSkKLSAgICAgICAgbV92aWRlb0VsZW1lbnQtPmZ1
bGxzY3JlZW5Nb2RlQ2hhbmdlZChIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
Tm9uZSk7CisgICAgICAgIG1fdmlkZW9FbGVtZW50LT5mdWxsc2NyZWVuTW9kZUNoYW5nZWQoSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7CiAKICAgICBpZiAo
bV92aWRlb0VsZW1lbnQgJiYgbV92aWRlb0VsZW1lbnQtPnZpZGVvRnVsbHNjcmVlbkxheWVyKCkp
CiAgICAgICAgIG1fdmlkZW9FbGVtZW50LT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihudWxscHRy
KTsKQEAgLTQ1Miw3ICs0NTIsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFdlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50OjpldmVudE5hbWVBbGwoKQogICAgIHJldHVybiBzRXZlbnRO
YW1lQWxsOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Ojpm
dWxsc2NyZWVuTW9kZUNoYW5nZWQoSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVv
RWxlbWVudDo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQogewogICAgIF9fYmxvY2sgUmVm
UHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50PiBwcm90ZWN0KHRoaXMpOwog
ICAgIFdlYlRocmVhZFJ1biheewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBhMzQ3NDk5YjVjODEzYjczN2U4M2IxY2RjMmYy
MjYwYjJhMjRmMTRkLi4yZjQ5Y2M2MjM0NGVhMjliMjMwYjY4MDAxM2Q4ZWYxOTU0YTRkNjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtMTc5LDcgKzE3OSw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShWSURFTykKICAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6
SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNj
cmVlbk1vZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50Jikgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA0ZjY2
YTg2NjI2NDE3YTEwOTliNjIzYTdiZmNiN2ZjN2VkZjk2YmY0Li4yM2UyNGFmYTRhM2YyZjhlYzZi
NTZjYWM3NzY5ZDdjZGFmZDExNzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC05MzYsOSArOTM2LDkgQEAgYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRNTE1lZGlhRWxlbWVu
dDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVy
VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxl
bWVudCwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUpCiB7
Ci0gICAgQVNTRVJUKG1vZGUgIT0gSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9k
ZU5vbmUpOworICAgIEFTU0VSVChtb2RlICE9IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZU5vbmUpOwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAg
ICBbbV93ZWJWaWV3IF9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDomdmlkZW9F
bGVtZW50IG1vZGU6bW9kZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBkZGQ3Njc2YzdlYTJjMzQ0NjkxYzkxMjRi
ZmY0NTBlZjI3MDQ0NGViLi40MDJlYmI4M2NmYzI3MTI5MzI2Y2VlNzVmNTk5MDQ3YTNjOGY4ZWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC04NDE5LDcgKzg0MTksNyBA
QCBib29sIExheWVyRmx1c2hDb250cm9sbGVyOjpmbHVzaExheWVycygpCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShWSURFTykKLS0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50OihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2RlCistICh2b2lkKV9l
bnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDooV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudCopdmlkZW9FbGVtZW50IG1vZGU6KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSltb2RlCiB7CiAgICAgaWYgKF9wcml2YXRlLT5mdWxsc2NyZWVu
Q29udHJvbGxlcikgewogICAgICAgICBpZiAoW19wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxl
ciB2aWRlb0VsZW1lbnRdID09IHZpZGVvRWxlbWVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld0ludGVybmFsLmgKaW5kZXggZWE4YTgzMDUyNzg2MjUxMzgyNTdhZDQ0ODBm
NzdmODYyNDA5MzVkOC4uMmU4MjgwYTliZmIwNjkwMGZiMGI3OWNkZWJjNjk0NWU5ZGI2NzM0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0zNyw3
ICszNyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9GaW5kT3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3Qu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9IVE1MTWVkaWFFbGVtZW50RW51bXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGF5b3V0TWlsZXN0
b25lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgpAQCAtMjQyLDcgKzI0Miw3IEBA
IE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwogLSAodm9pZClfcHJlZmVyZW5jZXNDaGFu
Z2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwogCiAjaWYgRU5BQkxFKFZJREVPKSAm
JiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JW
aWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudCBtb2Rl
OihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGU7Cist
ICh2b2lkKV9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDooV2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudCopdmlkZW9FbGVtZW50IG1vZGU6KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2RlOwogLSAodm9pZClfZXhpdFZpZGVvRnVs
bHNjcmVlbjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCmluZGV4IDU0NGRmMDg2N2E2ZWFmMzg1NGFhMTJmZmRjYzExMGY2Yzc4
ODNmMDkuLjZiNTQwNDY3ZmUwMzY2MTU4ZDM2ZWJkYTNiYWUyMWQ5YTdhZTBiZGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yNDUs
NyArMjQ1LDcgQEAgc3RhdGljIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24oKQogICAgIGlmICgh
X3BhZ2UgfHwgIV9wYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAKLSAgICByZXR1cm4gX3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
KS0+aGFzTW9kZShXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
T3B0aW1pemVkKTsKKyAgICByZXR1cm4gX3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS0+
aGFzTW9kZShXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVPcHRpbWl6ZWQpOwogfQogCiAtIChCT09MKV9tYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvT3B0
aW1pemVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCBiNDk4YWU4ZTViYTg3ZjJiMjQx
M2FlZjhjNDZiYTFmZTQ3NjVkZTc3Li43ZTBiZTc2Y2M1MDJhMzcyM2E2M2I1Y2EwZWY5ZjlmMGE3
MTM5MzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIFZpZGVvR3Jhdml0eSB2aWRlb0xheWVyR3Jhdml0eSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2
NF90KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9u
KHVpbnQ2NF90KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFu
Z2VkKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBvdmVycmlkZTsKIAogICAg
IC8vIFdlYlZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyCiAgICAgdmlydHVhbCB2b2lkIGRp
ZFNldHVwRnVsbHNjcmVlbigpIG92ZXJyaWRlOwpAQCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKIAogICAgIHZvaWQgcmVxdWVzdEhpZGVBbmRFeGl0RnVs
bHNjcmVlbigpOwotICAgIGJvb2wgaGFzTW9kZShXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlKSBjb25zdDsKKyAgICBib29sIGhhc01vZGUoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBjb25zdDsKICAgICBib29s
IG1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9PcHRpbWl6ZWQoKSBjb25zdDsKIAogcHJpdmF0ZToK
QEAgLTEyMyw3ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0JiBlbnN1cmVJbnRlcmZhY2UodWludDY0X3QgY29udGV4dElkKTsK
IAogICAgIC8vIE1lc3NhZ2VzIGZyb20gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcgotICAgIHZv
aWQgc2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3Qgdmlk
ZW9MYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsUmVjdCwgZmxvYXQgaG9z
dGluZ1NjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlLCBib29sIGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbik7CisgICAgdm9pZCBzZXR1cEZ1
bGxzY3JlZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVG
YWN0b3IsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSwgYm9vbCBhbGxvd09wdGltaXplZEZ1bGxzY3JlZW4pOwogICAgIHZvaWQgcmVzZXRNZWRpYVN0
YXRlKHVpbnQ2NF90IGNvbnRleHRJZCk7CiAgICAgdm9pZCBzZXRDdXJyZW50VGltZSh1aW50NjRf
dCBjb250ZXh0SWQsIGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlIGhvc3RUaW1lKTsKICAgICB2
b2lkIHNldEJ1ZmZlcmVkVGltZSh1aW50NjRfdCBjb250ZXh0SWQsIGRvdWJsZSBidWZmZXJlZFRp
bWUpOwpAQCAtMTYwLDcgKzE2MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRWaWRlb0xheWVy
R3Jhdml0eSh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsOjpWaWRlb0dyYXZpdHkpOwogICAgIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50
NjRfdCBjb250ZXh0SWQsIHVpbnQ2NF90IGluZGV4KTsKICAgICB2b2lkIHNlbGVjdExlZ2libGVN
ZWRpYU9wdGlvbih1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQ2NF90IGluZGV4KTsKLSAgICB2b2lk
IGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgIHZvaWQgZnVsbHNjcmVlbk1v
ZGVDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKICAgICB2b2lkIGZ1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZSh1aW50NjRfdCBjb250ZXh0SWQpOwogCiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGE0ZTdj
MjdhOGUzYmMyMTI4M2U0NTEzOGVhODI0NzZlZDcwNjNhMGEuLjBjNWRjMTE1NDYxODUxMDYxZjEx
MGZlYzc4Mzg2NTY3NTkwMWFiNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0zMyw3ICszMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eSB7CiAgICAgU2V0RXh0ZXJuYWxQbGF5YmFja1Byb3BlcnRpZXModWlu
dDY0X3QgY29udGV4dElkLCBib29sIGVuYWJsZWQsIHVpbnQzMl90IHRhcmdldFR5cGUsIFN0cmlu
ZyBsb2NhbGl6ZWREZXZpY2VOYW1lKQogICAgIFNldER1cmF0aW9uKHVpbnQ2NF90IGNvbnRleHRJ
ZCwgZG91YmxlIGR1cmF0aW9uKQogICAgIFNldFJhdGUodWludDY0X3QgY29udGV4dElkLCBib29s
IGlzUGxheWluZywgZG91YmxlIHJhdGUpCi0gICAgU2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQ2
NF90IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGlu
aXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxv
d09wdGltaXplZEZ1bGxzY3JlZW4pCisgICAgU2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQ2NF90
IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGluaXRp
YWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFs
bG93T3B0aW1pemVkRnVsbHNjcmVlbikKICAgICBFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29u
dGV4dElkKQogICAgIEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6
SW50UmVjdCBmaW5hbFJlY3QpCiAgICAgQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4
dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCA0MzEwODBhYzViZmQ1ZDY2MTE1
ZjhmMWJjZmI2MjdjNWRkMGEyMmExLi5lNmFkYTEyYmQ4NmE3Zjc1ODgyYzRhMTI2YWViMjc3NmMx
ZDEwODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtNTcsNyArNTcsNyBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7CiB9CiAK
LWJvb2wgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpoYXNNb2RlKEhUTUxNZWRpYUVs
ZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGNvbnN0Citib29sIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eTo6aGFzTW9kZShIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTc3LDcgKzE3Nyw3
IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpzZWxlY3RMZWdpYmxlTWVk
aWFPcHRpb24odWludDY0X3Qgb3B0aW9uSWQpCiAgICAgICAgIG1fbWFuYWdlci0+c2VsZWN0TGVn
aWJsZU1lZGlhT3B0aW9uKG1fY29udGV4dElkLCBvcHRpb25JZCk7CiB9CiAKLXZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0OjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQordm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbENvbnRleHQ6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKICAgICBp
ZiAobV9tYW5hZ2VyKQogICAgICAgICBtX21hbmFnZXItPmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCht
X2NvbnRleHRJZCwgbW9kZSk7CkBAIC0yNTcsNyArMjU3LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKQogICAgICAg
ICBzdGQ6OmdldDwxPih0dXBsZSktPnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKTsKIH0K
IAotYm9vbCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Omhhc01vZGUoSFRNTE1lZGlh
RWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKSBjb25zdAorYm9vbCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6Omhhc01vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzY3JlZW5Nb2RlIG1vZGUpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiB0dXBsZSA6IG1f
Y29udGV4dE1hcC52YWx1ZXMoKSkgewogICAgICAgICBpZiAoc3RkOjpnZXQ8MT4odHVwbGUpLT5o
YXNNb2RlKG1vZGUpKQpAQCAtMzA2LDcgKzMwNiw3IEBAIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0JiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVuc3Vy
CiAKICNwcmFnbWEgbWFyayBNZXNzYWdlcyBmcm9tIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIK
IAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldp
dGhJRCh1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdEZXZpY2VTY2FsZUZhY3Rv
ciwgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5N
b2RlLCBib29sIGFsbG93T3B0aW1pemVkRnVsbHNjcmVlbikKK3ZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDY0X3QgY29udGV4dElk
LCB1aW50MzJfdCB2aWRlb0xheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxS
ZWN0LCBmbG9hdCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3IsIEhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93T3B0
aW1pemVkRnVsbHNjcmVlbikKIHsKICAgICBBU1NFUlQodmlkZW9MYXllcklEKTsKICAgICBSZWZQ
dHI8V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxDb250ZXh0PiBtb2RlbDsKQEAgLTU0Miw3ICs1NDIs
NyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2VsZWN0TGVnaWJsZU1l
ZGlhT3B0aW9uKHVpbnQ2NF90IGNvbnRleHRJZAogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6U2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKGNvbnRl
eHRJZCwgaW5kZXgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0
SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkK
K3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpmdWxsc2NyZWVuTW9kZUNoYW5n
ZWQodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSkKIHsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZChjb250ZXh0SWQs
IG1vZGUpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCBmNjExNzM4NTdkZGU2ZGFlOGFlZjhmZmI3ZGM1MTMyZWYzZGYyYjA2Li45MDUyODEyM2Q2NDIx
MDIyYzYyMzI5Zjk2OGNlODE1YzI2ODc0NDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC05MTUsOSArOTE1LDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxs
c2NyZWVuKCkKICAgICByZXR1cm4gbV9wYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCktPnN1
cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRl
clZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
JiB2aWRlb0VsZW1lbnQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVl
bk1vZGUgbW9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQog
ewotICAgIEFTU0VSVChtb2RlICE9IEhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVOb25lKTsKKyAgICBBU1NFUlQobW9kZSAhPSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVv
RnVsbHNjcmVlbk1vZGVOb25lKTsKICAgICBtX3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
KS0+ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50LCBtb2Rl
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzQ5NDc5YzcwNTlmNTJjMjk4NWE3ODFh
NmYxNjIxMTUyZTBhY2Q2NC4uZmJkYzMwODI3MWFlNTQ4NTU1ZTk2MGQ3NzI4NGVkMmY1YzY4YTQ5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yNTAsNyArMjUwLDcgQEAgcHJpdmF0ZToKIAog
I2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3Jl
ZW4oKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JW
aWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jikgb3ZlcnJpZGU7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IDZhYzM2Yjk3NDc1NDIzMzQ1MmJjMGJiNmJhYjBjMGRh
ZjdkNDAwMzkuLjZmMjNhOGY0NWI4NzMwY2UxZWY0MjA0MzAxYzdlMGY2OTkzMDE0N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRMaXN0ZW5lci5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxl
bWVudEVudW1zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQuaD4KQEAgLTczLDggKzcz
LDggQEAgcHVibGljOgogICAgIGJvb2wgdGFyZ2V0SXNGdWxsc2NyZWVuKCkgY29uc3QgeyByZXR1
cm4gbV90YXJnZXRJc0Z1bGxzY3JlZW47IH0KICAgICB2b2lkIHNldFRhcmdldElzRnVsbHNjcmVl
bihib29sIGZsYWcpIHsgbV90YXJnZXRJc0Z1bGxzY3JlZW4gPSBmbGFnOyB9CiAKLSAgICBXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIGZ1bGxzY3JlZW5Nb2Rl
KCkgY29uc3QgeyByZXR1cm4gbV9mdWxsc2NyZWVuTW9kZTsgfQotICAgIHZvaWQgc2V0RnVsbHNj
cmVlbk1vZGUoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBt
b2RlKSB7IG1fZnVsbHNjcmVlbk1vZGUgPSBtb2RlOyB9CisgICAgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIGZ1bGxzY3JlZW5Nb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9mdWxsc2NyZWVuTW9kZTsgfQorICAgIHZvaWQgc2V0RnVsbHNjcmVlbk1vZGUo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUp
IHsgbV9mdWxsc2NyZWVuTW9kZSA9IG1vZGU7IH0KIAogICAgIGJvb2wgaXNGdWxsc2NyZWVuKCkg
Y29uc3QgeyByZXR1cm4gbV9pc0Z1bGxzY3JlZW47IH0KICAgICB2b2lkIHNldElzRnVsbHNjcmVl
bihib29sIGZsYWcpIHsgbV9pc0Z1bGxzY3JlZW4gPSBmbGFnOyB9CkBAIC0xMDAsNyArMTAwLDcg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9s
YXllckhvc3RpbmdDb250ZXh0OwogICAgIGJvb2wgbV9pc0FuaW1hdGluZyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3RhcmdldElzRnVsbHNjcmVlbiB7IGZhbHNlIH07Ci0gICAgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtX2Z1bGxzY3JlZW5Nb2RlIHsgV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUgfTsKKyAgICBX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbV9mdWxs
c2NyZWVuTW9kZSB7IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZU5vbmUgfTsKICAgICBib29sIG1faXNGdWxsc2NyZWVuIHsgZmFsc2UgfTsKIH07CiAK
QEAgLTExMyw3ICsxMTMsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBJbnRlcmZhY2UgdG8gQ2hyb21l
Q2xpZW50CiAgICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbigpIGNvbnN0OwotICAgIHZv
aWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVv
RWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
OworICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6
SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZSk7CiAgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmKTsKICAgICAKIHByb3RlY3RlZDoKQEAgLTE2
MCw3ICsxNjAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVu
dW0odWludDY0X3QgY29udGV4dElkLCB1bnNpZ25lZCBncmF2aXR5KTsKICAgICB2b2lkIHNlbGVj
dEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgY29udGV4dElkLCB1aW50NjRfdCBpbmRleCk7CiAg
ICAgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgY29udGV4dElkLCB1aW50
NjRfdCBpbmRleCk7Ci0gICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQodWludDY0X3QgY29u
dGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsK
KyAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAgICAgdm9p
ZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBib29sIGlz
UGFnZVZpc2libGUpOwogICAgIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDAxM2RhM2VlNjIyNDVkMTQyNTJmY2IxNGEwYWI5
ODMwYTA3NGVjNmQuLmIzMTUzYzBiMzk5MjJlZWNiNDQ5Mjc4YzEzOWJmOTRhOTJmYjcyZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtNDEsNyArNDEsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIHsKICAgICBTZXRWaWRlb0xheWVy
R3Jhdml0eUVudW0odWludDY0X3QgY29udGV4dElkLCB1bnNpZ25lZCBncmF2aXR5KQogICAgIFNl
bGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgY29udGV4dElkLCB1aW50NjRfdCBpbmRleCkK
ICAgICBTZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgY29udGV4dElkLCB1aW50NjRf
dCBpbmRleCkKLSAgICBGdWxsc2NyZWVuTW9kZUNoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNj
cmVlbk1vZGUpCisgICAgRnVsbHNjcmVlbk1vZGVDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwg
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVv
RnVsbHNjcmVlbk1vZGUpCiAgICAgRnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKHVpbnQ2NF90
IGNvbnRleHRJZCwgYm9vbCBpc1BhZ2VWaXNpYmxlKQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tbQppbmRleCA5YWFlZmM4YjgxNDliZDQ5ZWUzNWE0MDQzYTgwZTdhNDNhZjBiNmFmLi5jYmQx
ZWMyNWI2NGU0Yzk5ODM0OGU2ZWVhZjlhYzY0ZTczY2Q4ZmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0KQEAgLTIxNyw5ICsyMTcsOSBAQCBib29sIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnN1
cHBvcnRzVmlkZW9GdWxsc2NyZWVuKCkgY29uc3QKICAgICByZXR1cm4gU2V0dGluZ3M6OmF2S2l0
RW5hYmxlZCgpOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlk
ZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVu
dCwgSFRNTE1lZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQordm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlKQogewotICAgIEFTU0VSVChtb2RlICE9IEhUTUxNZWRp
YUVsZW1lbnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKKyAgICBBU1NFUlQobW9kZSAhPSBI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVOb25lKTsKIAogICAgIHVp
bnQ2NF90IGNvbnRleHRJZDsKIApAQCAtMzk0LDcgKzM5NCw3IEBAIHZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGNvbnRleHRJ
ZCwgdWluCiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5zZWxlY3RMZWdpYmxlTWVkaWFPcHRp
b24oaW5kZXgpOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3Jl
ZW5Nb2RlQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKK3ZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKHVpbnQ2NF90IGNvbnRl
eHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
IHZpZGVvRnVsbHNjcmVlbk1vZGUpCiB7CiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5mdWxs
c2NyZWVuTW9kZUNoYW5nZWQodmlkZW9GdWxsc2NyZWVuTW9kZSk7CiB9CkBAIC00ODEsNyArNDgx
LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVl
bih1aW50NjRfdCBjb250ZXh0SWQpCiAKICAgICBpbnRlcmZhY2UtPnNldElzQW5pbWF0aW5nKGZh
bHNlKTsKICAgICBpbnRlcmZhY2UtPnNldElzRnVsbHNjcmVlbihmYWxzZSk7Ci0gICAgSFRNTE1l
ZGlhRWxlbWVudDo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlID0gaW50ZXJmYWNlLT5mdWxsc2Ny
ZWVuTW9kZSgpOworICAgIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSBtb2RlID0gaW50ZXJmYWNlLT5mdWxsc2NyZWVuTW9kZSgpOwogCiAgICAgbW9kZWwtPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKG5pbCk7CiAgICAgUmVmUHRyPEhUTUxWaWRlb0VsZW1lbnQ+IHZp
ZGVvRWxlbWVudCA9IG1vZGVsLT52aWRlb0VsZW1lbnQoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>