<?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>107780</bug_id>
          
          <creation_ts>2013-01-23 20:31:31 -0800</creation_ts>
          <short_desc>Split default style-sheet statics out from StyleResolver into its own class</short_desc>
          <delta_ts>2013-02-03 20:57:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>
          
          <blocked>89879</blocked>
    
    <blocked>107777</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Hayato Ito">hayato</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>815002</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-01-23 20:31:31 -0800</bug_when>
    <thetext>This will be a separated patch from https://bugs.webkit.org/show_bug.cgi?id=107777.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822416</commentid>
    <comment_count>1</comment_count>
      <attachid>185963</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-01 00:16:08 -0800</bug_when>
    <thetext>Created attachment 185963
Factored default style sheets</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822463</commentid>
    <comment_count>2</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-01 01:00:44 -0800</bug_when>
    <thetext>I am wondering whether or not we should add accessors to these static fields to encapsulate those in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822841</commentid>
    <comment_count>3</comment_count>
      <attachid>185963</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-02-01 09:07:56 -0800</bug_when>
    <thetext>Comment on attachment 185963
Factored default style sheets

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

&gt; Source/WebCore/css/CSSDefaultStyleSheets.cpp:30
&gt; +#include &quot;CSSDefaultStyleSheets.h&quot;

Should this be called UserAgentStyleSheets?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823973</commentid>
    <comment_count>4</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-03 18:47:06 -0800</bug_when>
    <thetext>Thank you for the review.

(In reply to comment #3)
&gt; (From update of attachment 185963 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185963&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSDefaultStyleSheets.cpp:30
&gt; &gt; +#include &quot;CSSDefaultStyleSheets.h&quot;
&gt; 
&gt; Should this be called UserAgentStyleSheets?

There is already a file called UserAgentStyleSheets.h. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823974</commentid>
    <comment_count>5</comment_count>
      <attachid>185963</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-03 18:50:11 -0800</bug_when>
    <thetext>Comment on attachment 185963
Factored default style sheets

Rejecting attachment 185963 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 185963, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
cpp
patching file Source/WebCore/css/CSSDefaultStyleSheets.cpp
patching file Source/WebCore/css/CSSDefaultStyleSheets.h
patching file Source/WebCore/css/StyleResolver.cpp
Hunk #10 succeeded at 5259 (offset 13 lines).
Hunk #11 FAILED at 5320.
1 out of 11 hunks FAILED -- saving rejects to file Source/WebCore/css/StyleResolver.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, &apos;Dimitri Glazkov&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/16366026</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823991</commentid>
    <comment_count>6</comment_count>
      <attachid>186289</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-02-03 20:01:59 -0800</bug_when>
    <thetext>Created attachment 186289
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824008</commentid>
    <comment_count>7</comment_count>
      <attachid>186289</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-03 20:55:14 -0800</bug_when>
    <thetext>Comment on attachment 186289
Patch for landing

Clearing flags on attachment: 186289

Committed r141733: &lt;http://trac.webkit.org/changeset/141733&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824009</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-03 20:55:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824012</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-03 20:57:29 -0800</bug_when>
    <thetext>Yay!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185963</attachid>
            <date>2013-02-01 00:16:08 -0800</date>
            <delta_ts>2013-02-03 20:01:52 -0800</delta_ts>
            <desc>Factored default style sheets</desc>
            <filename>bug-107780-20130201171251.patch</filename>
            <type>text/plain</type>
            <size>35647</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmFjNjI0YWUxZWJkYTNl
MTNhZGQwNzM1NjcyNGVhZTI0MzBlN2I3YS4uNGRlYjJjODFlYmQ3NTQ2Zjk1ODQ2MmM2MTZlNTZi
ZTU3Y2M0MGU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEzLTAxLTMxICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGxpdCBkZWZhdWx0IHN0
eWxlLXNoZWV0IHN0YXRpY3Mgb3V0IGZyb20gU3R5bGVSZXNvbHZlciBpbnRvIGl0cyBvd24gY2xh
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzc4
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZhY3Rv
cmVkIHN0YXRpYyB2YXJpYWJsZXMgYW5kIGxvZ2ljIGFib3V0IGRlZmF1bHQgc3R5bGUgc2hlZXRz
IG91dCBmcm9tIFN0eWxlUmVzb2x2ZXIgaW50byBpdHMgb3duIGNsYXNzCisgICAgICAgIENTU0Rl
ZmF1bHRTdHlsZVNoZWV0cy4gVGhpcyBpcyBhIGZvbGxvd2luZyBwYXRjaCBhZnRlciByMTQxMzcz
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgcmVmYWN0b3Jpbmcgb25seS4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NBbGxJbk9uZS5j
cHA6CisgICAgICAgICogY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjplbGVtZW50Q2FuVXNlU2ltcGxlRGVm
YXVsdFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlbkV2YWwpOgorICAgICAgICAoV2Vi
Q29yZTo6cHJpbnRFdmFsKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlVUFTaGVldCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NEZWZhdWx0U3R5bGVTaGVldHM6OmluaXREZWZhdWx0U3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpsb2FkRnVsbERlZmF1bHRT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NEZWZhdWx0U3R5bGVTaGVldHM6OmxvYWRTaW1w
bGVEZWZhdWx0U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRGVmYXVsdFN0eWxlU2hlZXRz
Ojp2aWV3U291cmNlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRGVmYXVsdFN0eWxlU2hl
ZXRzOjplbnN1cmVEZWZhdWx0U3R5bGVTaGVldHNGb3JFbGVtZW50KToKKyAgICAgICAgKiBjc3Mv
Q1NTRGVmYXVsdFN0eWxlU2hlZXRzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChDU1NEZWZhdWx0U3R5bGVTaGVldHMpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZl
cjo6U3R5bGVSZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjptYXRj
aFVBUnVsZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yUGFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NPTVdyYXBwZXJzOjpnZXRXcmFwcGVyRm9yUnVs
ZUluU2hlZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RGZWF0
dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpyZXBvcnRNZW1vcnlVc2Fn
ZSk6CisKIDIwMTMtMDEtMzAgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFNwbGl0IENTU09NV3JhcHBlciBkYXRhIGFuZCBmdW5jdGlvbnMgb3V0IGZyb20gU3R5
bGVSZXNvbHZlciBpbnRvIGl0cyBvd24gY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDgw
MzY0NGI3YWU5YjE0NjlmNGYwODVhOWEzN2E3ZjIxMTg2ZjM5ZTYuLjA3YzlhYTRhOWU1ZWZkMThh
M2EwM2VkMGIxZWE5ZDM2NjI4OWE5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDI2LDYg
KzEwMjYsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKICAgICBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCiAgICAgY3NzL0NT
U0N1cnNvckltYWdlVmFsdWUuY3BwCisgICAgY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAK
ICAgICBjc3MvQ1NTRm9udEZhY2UuY3BwCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAKICAg
ICBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBlZTllZmE5MjA2M2M4NWRmMDIzZTRiOTdmMmM3NGQ3OGZlNzVmZjY2Li5kMGUyZjQyNTUw
N2JmZDAzNGIwYTc0OTA1MzVkZjAyMjZhMjQ1Y2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTI1MzAsNiArMjUzMCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvcklt
YWdlVmFsdWUuaCBcCisJU291cmNlL1dlYkNvcmUvY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuaCBcCiAJU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRGYWNlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IGMzYjhmYzAyMGMxMjZhNjRkNjE5YTdkNzBiZWJiYzk3YmRiZGYyMWQu
Ljg5ZTE3NDZlOGVlM2RiYjQ3MWQzYmIzMzQ5ODIwNzhiMDVjYjc2NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpA
QCAtMjU2LDYgKzI1Niw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9DU1NDcm9zc2ZhZGVWYWx1
ZS5jcHAgXAogICAgIGNzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBcCiAgICAgY3NzL0NTU0Zv
bnRGYWNlLmNwcCBcCisgICAgY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAgXAogICAgIGNz
cy9DU1NGb250RmFjZVJ1bGUuY3BwIFwKICAgICBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAg
XAogICAgIGNzcy9DU1NGb250U2VsZWN0b3IuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1YzJh
MTk4NDMxOTc5MzFlOTM1MTI4NjA4MDM1ZmQyZjliNzk0NDE3Li4wYTFmZmNhZWE4MWVjZmRmNjgz
OTIwMGUzNmZlMDhiYTM4ODg1NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xNDYxLDYgKzE0NjEs
OCBAQAogICAgICAgICAgICAgJ2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAnLAogICAgICAgICAg
ICAgJ2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvQ1NTQ3Vyc29y
SW1hZ2VWYWx1ZS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMu
Y3BwJywKKyAgICAgICAgICAgICdjc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmgnLAogICAgICAg
ICAgICAgJ2Nzcy9DU1NGb250RmFjZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9DU1NGb250RmFj
ZS5oJywKICAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2VSdWxlLmNwcCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjUzNjI0
NGQyOTAxMTI1N2FkOTc5ZTI0MTY1MzM5YTBhODE1ZTkyYi4uMDRiNjExMjNiMTc4MTYxNzhkZDMz
Y2ExZTdjNDUwNTI4NTZkZmJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ0Niw2ICsxNDQ2LDggQEAKIAkJNEE2RTlGQzcx
M0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzUxM0MxN0Q1NzAwNDZBN0Y4
IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwICovOyB9OwogCQk0QTZFOUZDODEzQzE3RDU3MDA0
NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzYxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0
dXJlU2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0QThDOTZFQjBCRTY5MDMyMDA0RUVGRjAgLyogRnJhbWVTZWxlY3Rpb25NYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QThDOTZFQTBC
RTY5MDMyMDA0RUVGRjAgLyogRnJhbWVTZWxlY3Rpb25NYWMubW0gKi87IH07CisJCTRBOUNDODE3
MTZCQjlBQzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE5Q0M4MTUxNkJCOUFDNjAwRUM2
NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAgKi87IH07CisJCTRBOUNDODE4MTZCQjlB
QzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0U3R5bGVTaGVldHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOUNDODE2MTZCQjlBQzYwMEVDNjQ1QSAvKiBD
U1NEZWZhdWx0U3R5bGVTaGVldHMuaCAqLzsgfTsKIAkJNEFCREZGMEIxNERCRTM4NTAwNEQxMTdE
IC8qIEhUTUxTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRBQkRGRjA3MTREQkUzMTIwMDREMTE3RCAvKiBIVE1MU2hhZG93RWxl
bWVudC5jcHAgKi87IH07CiAJCTRBQkRGRjBDMTREQkUzODUwMDREMTE3RCAvKiBIVE1MU2hhZG93
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEFCREZGMDgxNERCRTMxMjAwNEQxMTdEIC8qIEhUTUxTaGFkb3dFbGVtZW50LmggKi87IH07CiAJ
CTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMwQkMxMjcxM0NCRDAwOTRGOUIy
IC8qIENsYXNzTGlzdC5jcHAgKi87IH07CkBAIC04ODEyLDYgKzg4MTQsOCBAQAogCQk0QTZFOUZD
NTEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVhdHVyZVNldHRpbmdzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE2RTlGQzYxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRG
ZWF0dXJlU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBGb250RmVh
dHVyZVNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBOEM5NkVBMEJF
NjkwMzIwMDRFRUZGMCAvKiBGcmFtZVNlbGVjdGlvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBGcmFtZVNlbGVjdGlvbk1hYy5tbTsgcGF0aCA9IG1hYy9G
cmFtZVNlbGVjdGlvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE5Q0M4
MTUxNkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTlDQzgxNjE2QkI5QUM2MDBFQzY0NUEgLyog
Q1NTRGVmYXVsdFN0eWxlU2hlZXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
QUJERkYwNzE0REJFMzEyMDA0RDExN0QgLyogSFRNTFNoYWRvd0VsZW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFNoYWRvd0VsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QUJERkYwODE0REJFMzEyMDA0RDExN0QgLyogSFRN
TFNoYWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFNo
YWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEFCREZGMDkxNERC
RTMxMjAwNEQxMTdEIC8qIEhUTUxTaGFkb3dFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBIVE1MU2hhZG93RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMTY5OSw2ICsyMTcwMyw4IEBACiAJCQkJMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJCIC8qIENT
U0Nyb3NzZmFkZVZhbHVlLmggKi8sCiAJCQkJQUEwOTc4RUQwQUJBQTZFMTAwODc0NDgwIC8qIENT
U0N1cnNvckltYWdlVmFsdWUuY3BwICovLAogCQkJCUFBMDk3OEVFMEFCQUE2RTEwMDg3NDQ4MCAv
KiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggKi8sCisJCQkJNEE5Q0M4MTUxNkJCOUFDNjAwRUM2NDVB
IC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAgKi8sCisJCQkJNEE5Q0M4MTYxNkJCOUFDNjAw
RUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oICovLAogCQkJCUJDNjRCNENEMENCNDI5
OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZS5jcHAgKi8sCiAJCQkJQkM2NEI0Q0UwQ0I0Mjk4QTAw
NUYyQjYyIC8qIENTU0ZvbnRGYWNlLmggKi8sCiAJCQkJQTgwRTZDQkQwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU0ZvbnRGYWNlUnVsZS5jcHAgKi8sCkBAIC0yMzIxNyw2ICsyMzIyMyw3IEBACiAJCQkJ
QkNFQTQ3OTAwOTdDQUFDODAwOTRDOUU0IC8qIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4RkVCREQxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3Nz
ZmFkZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTIxRUNDRDBBQkYwRkM2MDAyQjgzNEMg
LyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEE5Q0M4MTgxNkJC
OUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM2NEI0RDYwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODBFNkNGRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udEZhY2VSdWxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzY0QjREODBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9udEZhY2VT
b3VyY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjY4NzgsNiArMjY4ODUsNyBAQAogCQkJCUJDRUE0
NzhGMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkQ4RkVCREMxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFk
ZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUFBMjFFQ0NBMEFCRjBGQkEwMDJCODM0QyAv
KiBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBOUNDODE3MTZC
QjlBQzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM2NEI0RDUwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4MEU2Q0U3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250RmFjZVJ1bGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NEI0RDcwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0Zv
bnRGYWNlU291cmNlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbGxJbk9uZS5j
cHAKaW5kZXggODY0NmRmNjY4MTMwMDI3ZDVlMTUzZTg3N2MyZDUxOWUzNzBlZGVmYi4uMDc2YWI1
YzI5ODY2ZmU1MGE3ZDQ2ODMzMjFkZGE5OGM3OTk1OGUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxs
SW5PbmUuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcCIKICNpbmNsdWRlICJDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAiCiAjaW5jbHVk
ZSAiQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAiCisjaW5jbHVkZSAiQ1NTRGVmYXVsdFN0eWxlU2hl
ZXRzLmNwcCIKICNpbmNsdWRlICJDU1NGb250RmFjZS5jcHAiCiAjaW5jbHVkZSAiQ1NTRm9udEZh
Y2VSdWxlLmNwcCIKICNpbmNsdWRlICJDU1NGb250RmFjZVNvdXJjZS5jcHAiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZjA0Nzg5
OGQ0ZDU5NTdlMjhjZWJhNjQxNTU5YmY0ZmI4NDI2Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmNwcApAQCAtMCwwICsxLDIwNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQor
ICogICAgICAgICAgIChDKSAyMDA0LTIwMDUgQWxsYW4gU2FuZGZlbGQgSmVuc2VuIChrZGVAY2Fy
ZXdvbGYuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IE5pY2hvbGFzIFNoYW5rcyAo
d2Via2l0QG5pY2tzaGFua3MuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJr
aXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEVyaWMgU2VpZGVsIDxlcmljQHdl
YmtpdC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqIENv
cHlyaWdodCAoYykgMjAxMSwgQ29kZSBBdXJvcmEgRm9ydW0uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTU0RlZmF1bHRT
dHlsZVNoZWV0cy5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xp
ZW50LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJ1bGVTZXQuaCIKKyNpbmNs
dWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKKyNpbmNsdWRlICJVc2VyQWdlbnRTdHlsZVNoZWV0
cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
CisKK1J1bGVTZXQqIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6ZGVmYXVsdFN0eWxlOworUnVsZVNl
dCogQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpkZWZhdWx0UXVpcmtzU3R5bGU7CitSdWxlU2V0KiBD
U1NEZWZhdWx0U3R5bGVTaGVldHM6OmRlZmF1bHRQcmludFN0eWxlOworUnVsZVNldCogQ1NTRGVm
YXVsdFN0eWxlU2hlZXRzOjpkZWZhdWx0Vmlld1NvdXJjZVN0eWxlOworCitTdHlsZVNoZWV0Q29u
dGVudHMqIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6c2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQ7CitT
dHlsZVNoZWV0Q29udGVudHMqIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6ZGVmYXVsdFN0eWxlU2hl
ZXQ7CitTdHlsZVNoZWV0Q29udGVudHMqIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6cXVpcmtzU3R5
bGVTaGVldDsKK1N0eWxlU2hlZXRDb250ZW50cyogQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpzdmdT
dHlsZVNoZWV0OworU3R5bGVTaGVldENvbnRlbnRzKiBDU1NEZWZhdWx0U3R5bGVTaGVldHM6Om1h
dGhNTFN0eWxlU2hlZXQ7CitTdHlsZVNoZWV0Q29udGVudHMqIENTU0RlZmF1bHRTdHlsZVNoZWV0
czo6bWVkaWFDb250cm9sc1N0eWxlU2hlZXQ7CitTdHlsZVNoZWV0Q29udGVudHMqIENTU0RlZmF1
bHRTdHlsZVNoZWV0czo6ZnVsbHNjcmVlblN0eWxlU2hlZXQ7CitTdHlsZVNoZWV0Q29udGVudHMq
IENTU0RlZmF1bHRTdHlsZVNoZWV0czo6cGx1Z0luc1N0eWxlU2hlZXQ7CisKKy8vIEZJWE1FOiBJ
dCB3b3VsZCBiZSBuaWNlIHRvIHVzZSBzb21lIG1lY2hhbmlzbSB0aGF0IGd1YXJhbnRlZXMgdGhp
cyBpcyBpbiBzeW5jIHdpdGggdGhlIHJlYWwgVUEgc3R5bGVzaGVldC4KK3N0YXRpYyBjb25zdCBj
aGFyKiBzaW1wbGVVc2VyQWdlbnRTdHlsZVNoZWV0ID0gImh0bWwsYm9keSxkaXZ7ZGlzcGxheTpi
bG9ja31oZWFke2Rpc3BsYXk6bm9uZX1ib2R5e21hcmdpbjo4cHh9ZGl2OmZvY3VzLHNwYW46Zm9j
dXN7b3V0bGluZTphdXRvIDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3J9YTotd2Via2l0LWFu
eS1saW5re2NvbG9yOi13ZWJraXQtbGluazt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWE6LXdl
YmtpdC1hbnktbGluazphY3RpdmV7Y29sb3I6LXdlYmtpdC1hY3RpdmVsaW5rfSI7CisKK3N0YXRp
YyBpbmxpbmUgYm9vbCBlbGVtZW50Q2FuVXNlU2ltcGxlRGVmYXVsdFN0eWxlKEVsZW1lbnQqIGUp
Cit7CisgICAgcmV0dXJuIGUtPmhhc1RhZ05hbWUoaHRtbFRhZykgfHwgZS0+aGFzVGFnTmFtZSho
ZWFkVGFnKSB8fCBlLT5oYXNUYWdOYW1lKGJvZHlUYWcpIHx8IGUtPmhhc1RhZ05hbWUoZGl2VGFn
KSB8fCBlLT5oYXNUYWdOYW1lKHNwYW5UYWcpIHx8IGUtPmhhc1RhZ05hbWUoYnJUYWcpIHx8IGUt
Pmhhc1RhZ05hbWUoYVRhZyk7Cit9CisKK3N0YXRpYyBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9y
JiBzY3JlZW5FdmFsKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IE1lZGlhUXVl
cnlFdmFsdWF0b3IsIHN0YXRpY1NjcmVlbkV2YWwsICgic2NyZWVuIikpOworICAgIHJldHVybiBz
dGF0aWNTY3JlZW5FdmFsOworfQorCitzdGF0aWMgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYg
cHJpbnRFdmFsKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IE1lZGlhUXVlcnlF
dmFsdWF0b3IsIHN0YXRpY1ByaW50RXZhbCwgKCJwcmludCIpKTsKKyAgICByZXR1cm4gc3RhdGlj
UHJpbnRFdmFsOworfQorCitzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBwYXJzZVVBU2hlZXQo
Y29uc3QgU3RyaW5nJiBzdHIpCit7CisgICAgU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCA9IFN0
eWxlU2hlZXRDb250ZW50czo6Y3JlYXRlKCkubGVha1JlZigpOyAvLyBsZWFrIHRoZSBzaGVldCBv
biBwdXJwb3NlCisgICAgc2hlZXQtPnBhcnNlU3RyaW5nKHN0cik7CisgICAgcmV0dXJuIHNoZWV0
OworfQorCitzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBwYXJzZVVBU2hlZXQoY29uc3QgY2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgc2l6ZSkKK3sKKyAgICByZXR1cm4gcGFyc2VVQVNoZWV0
KFN0cmluZyhjaGFyYWN0ZXJzLCBzaXplKSk7Cit9CisKK3ZvaWQgQ1NTRGVmYXVsdFN0eWxlU2hl
ZXRzOjppbml0RGVmYXVsdFN0eWxlKEVsZW1lbnQqIHJvb3QpCit7CisgICAgaWYgKCFkZWZhdWx0
U3R5bGUpIHsKKyAgICAgICAgaWYgKCFyb290IHx8IGVsZW1lbnRDYW5Vc2VTaW1wbGVEZWZhdWx0
U3R5bGUocm9vdCkpCisgICAgICAgICAgICBsb2FkU2ltcGxlRGVmYXVsdFN0eWxlKCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGxvYWRGdWxsRGVmYXVsdFN0eWxlKCk7CisgICAgfQorfQor
Cit2b2lkIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6bG9hZEZ1bGxEZWZhdWx0U3R5bGUoKQorewor
ICAgIGlmIChzaW1wbGVEZWZhdWx0U3R5bGVTaGVldCkgeworICAgICAgICBBU1NFUlQoZGVmYXVs
dFN0eWxlKTsKKyAgICAgICAgQVNTRVJUKGRlZmF1bHRQcmludFN0eWxlID09IGRlZmF1bHRTdHls
ZSk7CisgICAgICAgIGRlbGV0ZSBkZWZhdWx0U3R5bGU7CisgICAgICAgIHNpbXBsZURlZmF1bHRT
dHlsZVNoZWV0LT5kZXJlZigpOworICAgICAgICBkZWZhdWx0U3R5bGUgPSBSdWxlU2V0OjpjcmVh
dGUoKS5sZWFrUHRyKCk7CisgICAgICAgIGRlZmF1bHRQcmludFN0eWxlID0gUnVsZVNldDo6Y3Jl
YXRlKCkubGVha1B0cigpOworICAgICAgICBzaW1wbGVEZWZhdWx0U3R5bGVTaGVldCA9IDA7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKCFkZWZhdWx0U3R5bGUpOworICAgICAgICBkZWZh
dWx0U3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUHRyKCk7CisgICAgICAgIGRlZmF1bHRQ
cmludFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigpOworICAgICAgICBkZWZhdWx0
UXVpcmtzU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUHRyKCk7CisgICAgfQorCisgICAg
Ly8gU3RyaWN0LW1vZGUgcnVsZXMuCisgICAgU3RyaW5nIGRlZmF1bHRSdWxlcyA9IFN0cmluZyho
dG1sVXNlckFnZW50U3R5bGVTaGVldCwgc2l6ZW9mKGh0bWxVc2VyQWdlbnRTdHlsZVNoZWV0KSkg
KyBSZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPmV4dHJhRGVmYXVsdFN0eWxlU2hlZXQoKTsK
KyAgICBkZWZhdWx0U3R5bGVTaGVldCA9IHBhcnNlVUFTaGVldChkZWZhdWx0UnVsZXMpOworICAg
IGRlZmF1bHRTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQoZGVmYXVsdFN0eWxlU2hlZXQsIHNjcmVl
bkV2YWwoKSk7CisgICAgZGVmYXVsdFByaW50U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KGRlZmF1
bHRTdHlsZVNoZWV0LCBwcmludEV2YWwoKSk7CisKKyAgICAvLyBRdWlya3MtbW9kZSBydWxlcy4K
KyAgICBTdHJpbmcgcXVpcmtzUnVsZXMgPSBTdHJpbmcocXVpcmtzVXNlckFnZW50U3R5bGVTaGVl
dCwgc2l6ZW9mKHF1aXJrc1VzZXJBZ2VudFN0eWxlU2hlZXQpKSArIFJlbmRlclRoZW1lOjpkZWZh
dWx0VGhlbWUoKS0+ZXh0cmFRdWlya3NTdHlsZVNoZWV0KCk7CisgICAgcXVpcmtzU3R5bGVTaGVl
dCA9IHBhcnNlVUFTaGVldChxdWlya3NSdWxlcyk7CisgICAgZGVmYXVsdFF1aXJrc1N0eWxlLT5h
ZGRSdWxlc0Zyb21TaGVldChxdWlya3NTdHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkpOworfQorCit2
b2lkIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6bG9hZFNpbXBsZURlZmF1bHRTdHlsZSgpCit7Cisg
ICAgQVNTRVJUKCFkZWZhdWx0U3R5bGUpOworICAgIEFTU0VSVCghc2ltcGxlRGVmYXVsdFN0eWxl
U2hlZXQpOworCisgICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigp
OworICAgIC8vIFRoZXJlIGFyZSBubyBtZWRpYS1zcGVjaWZpYyBydWxlcyBpbiB0aGUgc2ltcGxl
IGRlZmF1bHQgc3R5bGUuCisgICAgZGVmYXVsdFByaW50U3R5bGUgPSBkZWZhdWx0U3R5bGU7Cisg
ICAgZGVmYXVsdFF1aXJrc1N0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigpOworCisg
ICAgc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQoc2ltcGxlVXNlckFnZW50
U3R5bGVTaGVldCwgc3RybGVuKHNpbXBsZVVzZXJBZ2VudFN0eWxlU2hlZXQpKTsKKyAgICBkZWZh
dWx0U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHNpbXBsZURlZmF1bHRTdHlsZVNoZWV0LCBzY3Jl
ZW5FdmFsKCkpOworCisgICAgLy8gTm8gbmVlZCB0byBpbml0aWFsaXplIHF1aXJrcyBzaGVldCB5
ZXQgYXMgdGhlcmUgYXJlIG5vIHF1aXJrIHJ1bGVzIGZvciBlbGVtZW50cyBhbGxvd2VkIGluIHNp
bXBsZSBkZWZhdWx0IHN0eWxlLgorfQorCitSdWxlU2V0KiBDU1NEZWZhdWx0U3R5bGVTaGVldHM6
OnZpZXdTb3VyY2VTdHlsZSgpCit7CisgICAgaWYgKCFkZWZhdWx0Vmlld1NvdXJjZVN0eWxlKSB7
CisgICAgICAgIGRlZmF1bHRWaWV3U291cmNlU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKS5sZWFr
UHRyKCk7CisgICAgICAgIGRlZmF1bHRWaWV3U291cmNlU3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0
KHBhcnNlVUFTaGVldChzb3VyY2VVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2Yoc291cmNlVXNl
ckFnZW50U3R5bGVTaGVldCkpLCBzY3JlZW5FdmFsKCkpOworICAgIH0KKyAgICByZXR1cm4gZGVm
YXVsdFZpZXdTb3VyY2VTdHlsZTsKK30KKworCit2b2lkIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6
ZW5zdXJlRGVmYXVsdFN0eWxlU2hlZXRzRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQorewor
ICAgIGlmIChzaW1wbGVEZWZhdWx0U3R5bGVTaGVldCAmJiAhZWxlbWVudENhblVzZVNpbXBsZURl
ZmF1bHRTdHlsZShlbGVtZW50KSkKKyAgICAgICAgbG9hZEZ1bGxEZWZhdWx0U3R5bGUoKTsKKwor
I2lmIEVOQUJMRShTVkcpCisgICAgaWYgKGVsZW1lbnQtPmlzU1ZHRWxlbWVudCgpICYmICFzdmdT
dHlsZVNoZWV0KSB7CisgICAgICAgIC8vIFNWRyBydWxlcy4KKyAgICAgICAgc3ZnU3R5bGVTaGVl
dCA9IHBhcnNlVUFTaGVldChzdmdVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2Yoc3ZnVXNlckFn
ZW50U3R5bGVTaGVldCkpOworICAgICAgICBkZWZhdWx0U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0
KHN2Z1N0eWxlU2hlZXQsIHNjcmVlbkV2YWwoKSk7CisgICAgICAgIGRlZmF1bHRQcmludFN0eWxl
LT5hZGRSdWxlc0Zyb21TaGVldChzdmdTdHlsZVNoZWV0LCBwcmludEV2YWwoKSk7CisgICAgfQor
I2VuZGlmCisKKyNpZiBFTkFCTEUoTUFUSE1MKQorICAgIGlmIChlbGVtZW50LT5pc01hdGhNTEVs
ZW1lbnQoKSAmJiAhbWF0aE1MU3R5bGVTaGVldCkgeworICAgICAgICAvLyBNYXRoTUwgcnVsZXMu
CisgICAgICAgIG1hdGhNTFN0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQobWF0aG1sVXNlckFnZW50
U3R5bGVTaGVldCwgc2l6ZW9mKG1hdGhtbFVzZXJBZ2VudFN0eWxlU2hlZXQpKTsKKyAgICAgICAg
ZGVmYXVsdFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChtYXRoTUxTdHlsZVNoZWV0LCBzY3JlZW5F
dmFsKCkpOworICAgICAgICBkZWZhdWx0UHJpbnRTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQobWF0
aE1MU3R5bGVTaGVldCwgcHJpbnRFdmFsKCkpOworICAgIH0KKyNlbmRpZgorCisjaWYgRU5BQkxF
KFZJREVPKQorICAgIGlmICghbWVkaWFDb250cm9sc1N0eWxlU2hlZXQgJiYgKGVsZW1lbnQtPmhh
c1RhZ05hbWUodmlkZW9UYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoYXVkaW9UYWcpKSkgewor
ICAgICAgICBTdHJpbmcgbWVkaWFSdWxlcyA9IFN0cmluZyhtZWRpYUNvbnRyb2xzVXNlckFnZW50
U3R5bGVTaGVldCwgc2l6ZW9mKG1lZGlhQ29udHJvbHNVc2VyQWdlbnRTdHlsZVNoZWV0KSkgKyBS
ZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKGVsZW1lbnQtPmRvY3VtZW50KCktPnBhZ2UoKSktPmV4
dHJhTWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKTsKKyAgICAgICAgbWVkaWFDb250cm9sc1N0eWxl
U2hlZXQgPSBwYXJzZVVBU2hlZXQobWVkaWFSdWxlcyk7CisgICAgICAgIGRlZmF1bHRTdHlsZS0+
YWRkUnVsZXNGcm9tU2hlZXQobWVkaWFDb250cm9sc1N0eWxlU2hlZXQsIHNjcmVlbkV2YWwoKSk7
CisgICAgICAgIGRlZmF1bHRQcmludFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChtZWRpYUNvbnRy
b2xzU3R5bGVTaGVldCwgcHJpbnRFdmFsKCkpOworICAgIH0KKyNlbmRpZgorCisjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQorICAgIGlmICghZnVsbHNjcmVlblN0eWxlU2hlZXQgJiYgZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+d2Via2l0SXNGdWxsU2NyZWVuKCkpIHsKKyAgICAgICAgU3RyaW5nIGZ1
bGxzY3JlZW5SdWxlcyA9IFN0cmluZyhmdWxsc2NyZWVuVXNlckFnZW50U3R5bGVTaGVldCwgc2l6
ZW9mKGZ1bGxzY3JlZW5Vc2VyQWdlbnRTdHlsZVNoZWV0KSkgKyBSZW5kZXJUaGVtZTo6ZGVmYXVs
dFRoZW1lKCktPmV4dHJhRnVsbFNjcmVlblN0eWxlU2hlZXQoKTsKKyAgICAgICAgZnVsbHNjcmVl
blN0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQoZnVsbHNjcmVlblJ1bGVzKTsKKyAgICAgICAgZGVm
YXVsdFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChmdWxsc2NyZWVuU3R5bGVTaGVldCwgc2NyZWVu
RXZhbCgpKTsKKyAgICAgICAgZGVmYXVsdFF1aXJrc1N0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChm
dWxsc2NyZWVuU3R5bGVTaGVldCwgc2NyZWVuRXZhbCgpKTsKKyAgICB9CisjZW5kaWYKKworICAg
IGlmICghcGx1Z0luc1N0eWxlU2hlZXQgJiYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob2JqZWN0VGFn
KSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFnKSkpIHsKKyAgICAgICAgU3RyaW5nIHBs
dWdJbnNSdWxlcyA9IFN0cmluZyhwbHVnSW5zVXNlckFnZW50U3R5bGVTaGVldCwgc2l6ZW9mKHBs
dWdJbnNVc2VyQWdlbnRTdHlsZVNoZWV0KSkgKyBSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKGVs
ZW1lbnQtPmRvY3VtZW50KCktPnBhZ2UoKSktPmV4dHJhUGx1Z0luc1N0eWxlU2hlZXQoKSArIGVs
ZW1lbnQtPmRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5wbHVnSW5FeHRy
YVN0eWxlU2hlZXQoKTsKKyAgICAgICAgcGx1Z0luc1N0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQo
cGx1Z0luc1J1bGVzKTsKKyAgICAgICAgZGVmYXVsdFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChw
bHVnSW5zU3R5bGVTaGVldCwgc2NyZWVuRXZhbCgpKTsKKyAgICB9CisKKyAgICBBU1NFUlQoZGVm
YXVsdFN0eWxlLT5mZWF0dXJlcygpLmlkc0luUnVsZXMuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlQo
bWF0aE1MU3R5bGVTaGVldCB8fCBkZWZhdWx0U3R5bGUtPmZlYXR1cmVzKCkuc2libGluZ1J1bGVz
LmlzRW1wdHkoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTEwMTBjNDcwOWQxOWVl
Njc5YjRmOTkyYTUxOThjMjAyZTIzMWI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgQ1NTRGVmYXVsdFN0
eWxlU2hlZXRzX2gKKyNkZWZpbmUgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzX2gKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBFbGVtZW50OworY2xhc3MgUnVsZVNldDsKK2NsYXNzIFN0eWxl
U2hlZXRDb250ZW50czsKKworY2xhc3MgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUnVsZVNldCogZGVmYXVsdFN0eWxlOworICAgIHN0YXRpYyBSdWxlU2V0KiBk
ZWZhdWx0UXVpcmtzU3R5bGU7CisgICAgc3RhdGljIFJ1bGVTZXQqIGRlZmF1bHRQcmludFN0eWxl
OworICAgIHN0YXRpYyBSdWxlU2V0KiBkZWZhdWx0Vmlld1NvdXJjZVN0eWxlOworCisgICAgc3Rh
dGljIFN0eWxlU2hlZXRDb250ZW50cyogc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQ7CisgICAgc3Rh
dGljIFN0eWxlU2hlZXRDb250ZW50cyogZGVmYXVsdFN0eWxlU2hlZXQ7CisgICAgc3RhdGljIFN0
eWxlU2hlZXRDb250ZW50cyogcXVpcmtzU3R5bGVTaGVldDsKKyAgICBzdGF0aWMgU3R5bGVTaGVl
dENvbnRlbnRzKiBzdmdTdHlsZVNoZWV0OworICAgIHN0YXRpYyBTdHlsZVNoZWV0Q29udGVudHMq
IG1hdGhNTFN0eWxlU2hlZXQ7CisgICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogbWVkaWFD
b250cm9sc1N0eWxlU2hlZXQ7CisgICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogZnVsbHNj
cmVlblN0eWxlU2hlZXQ7CisgICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogcGx1Z0luc1N0
eWxlU2hlZXQ7CisKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVEZWZhdWx0U3R5bGVTaGVldHNGb3JF
bGVtZW50KEVsZW1lbnQqKTsKKyAgICBzdGF0aWMgdm9pZCBsb2FkRnVsbERlZmF1bHRTdHlsZSgp
OworICAgIHN0YXRpYyB2b2lkIGxvYWRTaW1wbGVEZWZhdWx0U3R5bGUoKTsKKyAgICBzdGF0aWMg
dm9pZCBpbml0RGVmYXVsdFN0eWxlKEVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUnVsZVNldCogdmll
d1NvdXJjZVN0eWxlKCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBDU1NEZWZhdWx0U3R5bGVTaGVldHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CmluZGV4IDhkMGMyYmU1NDA5YThlNjU0YTk0ZjkzYTY4ZDkzYzc5NWY1ZjU3ZjYuLmRiZTkzOThm
NmZiZGRiNWFmYmQ0N2IwYmY1MWQ4NTgwZGM1NTc3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDU1NCb3JkZXJJbWFnZS5o
IgogI2luY2x1ZGUgIkNTU0NhbGN1bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NDdXJzb3JJ
bWFnZVZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmgiCiAjaW5jbHVk
ZSAiQ1NTRm9udEZhY2VSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5j
bHVkZSAiQ1NTSG9zdFJ1bGUuaCIKQEAgLTU3LDggKzU4LDYgQEAKICNlbmRpZgogI2luY2x1ZGUg
IkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FsY3VsYXRpb25WYWx1ZS5oIgotI2luY2x1ZGUg
IkNocm9tZS5oIgotI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkNvbnRlbnRE
YXRhLmgiCiAjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiQ291bnRlci5o
IgpAQCAtMjExLDQ0ICsyMTAsOCBAQCBpZiAoaXNJbml0aWFsKSB7IFwKICAgICByZXR1cm47IFwK
IH0KIAotc3RhdGljIFJ1bGVTZXQqIGRlZmF1bHRTdHlsZTsKLXN0YXRpYyBSdWxlU2V0KiBkZWZh
dWx0UXVpcmtzU3R5bGU7Ci1zdGF0aWMgUnVsZVNldCogZGVmYXVsdFByaW50U3R5bGU7Ci1zdGF0
aWMgUnVsZVNldCogZGVmYXVsdFZpZXdTb3VyY2VTdHlsZTsKLXN0YXRpYyBTdHlsZVNoZWV0Q29u
dGVudHMqIHNpbXBsZURlZmF1bHRTdHlsZVNoZWV0Owotc3RhdGljIFN0eWxlU2hlZXRDb250ZW50
cyogZGVmYXVsdFN0eWxlU2hlZXQ7Ci1zdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBxdWlya3NT
dHlsZVNoZWV0Owotc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogc3ZnU3R5bGVTaGVldDsKLXN0
YXRpYyBTdHlsZVNoZWV0Q29udGVudHMqIG1hdGhNTFN0eWxlU2hlZXQ7Ci1zdGF0aWMgU3R5bGVT
aGVldENvbnRlbnRzKiBtZWRpYUNvbnRyb2xzU3R5bGVTaGVldDsKLXN0YXRpYyBTdHlsZVNoZWV0
Q29udGVudHMqIGZ1bGxzY3JlZW5TdHlsZVNoZWV0Owotc3RhdGljIFN0eWxlU2hlZXRDb250ZW50
cyogcGx1Z0luc1N0eWxlU2hlZXQ7Ci0KIFJlbmRlclN0eWxlKiBTdHlsZVJlc29sdmVyOjpzX3N0
eWxlTm90WWV0QXZhaWxhYmxlOwogCi1zdGF0aWMgdm9pZCBsb2FkRnVsbERlZmF1bHRTdHlsZSgp
Owotc3RhdGljIHZvaWQgbG9hZFNpbXBsZURlZmF1bHRTdHlsZSgpOwotCi0vLyBGSVhNRTogSXQg
d291bGQgYmUgbmljZSB0byB1c2Ugc29tZSBtZWNoYW5pc20gdGhhdCBndWFyYW50ZWVzIHRoaXMg
aXMgaW4gc3luYyB3aXRoIHRoZSByZWFsIFVBIHN0eWxlc2hlZXQuCi1zdGF0aWMgY29uc3QgY2hh
ciogc2ltcGxlVXNlckFnZW50U3R5bGVTaGVldCA9ICJodG1sLGJvZHksZGl2e2Rpc3BsYXk6Ymxv
Y2t9aGVhZHtkaXNwbGF5Om5vbmV9Ym9keXttYXJnaW46OHB4fWRpdjpmb2N1cyxzcGFuOmZvY3Vz
e291dGxpbmU6YXV0byA1cHggLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yfWE6LXdlYmtpdC1hbnkt
bGlua3tjb2xvcjotd2Via2l0LWxpbms7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1hOi13ZWJr
aXQtYW55LWxpbms6YWN0aXZle2NvbG9yOi13ZWJraXQtYWN0aXZlbGlua30iOwotCi1zdGF0aWMg
aW5saW5lIGJvb2wgZWxlbWVudENhblVzZVNpbXBsZURlZmF1bHRTdHlsZShFbGVtZW50KiBlKQot
ewotICAgIHJldHVybiBlLT5oYXNUYWdOYW1lKGh0bWxUYWcpIHx8IGUtPmhhc1RhZ05hbWUoaGVh
ZFRhZykgfHwgZS0+aGFzVGFnTmFtZShib2R5VGFnKSB8fCBlLT5oYXNUYWdOYW1lKGRpdlRhZykg
fHwgZS0+aGFzVGFnTmFtZShzcGFuVGFnKSB8fCBlLT5oYXNUYWdOYW1lKGJyVGFnKSB8fCBlLT5o
YXNUYWdOYW1lKGFUYWcpOwotfQotCi1zdGF0aWMgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYg
c2NyZWVuRXZhbCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBNZWRpYVF1ZXJ5
RXZhbHVhdG9yLCBzdGF0aWNTY3JlZW5FdmFsLCAoInNjcmVlbiIpKTsKLSAgICByZXR1cm4gc3Rh
dGljU2NyZWVuRXZhbDsKLX0KLQotc3RhdGljIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIHBy
aW50RXZhbCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBNZWRpYVF1ZXJ5RXZh
bHVhdG9yLCBzdGF0aWNQcmludEV2YWwsICgicHJpbnQiKSk7Ci0gICAgcmV0dXJuIHN0YXRpY1By
aW50RXZhbDsKLX0KLQogc3RhdGljIFN0eWxlUHJvcGVydHlTZXQqIGxlZnRUb1JpZ2h0RGVjbGFy
YXRpb24oKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPFN0eWxlUHJvcGVydHlT
ZXQ+LCBsZWZ0VG9SaWdodERlY2wsIChTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKSkpOwpAQCAt
Mjk5LDEyICsyNjIsNyBAQCBTdHlsZVJlc29sdmVyOjpTdHlsZVJlc29sdmVyKERvY3VtZW50KiBk
b2N1bWVudCwgYm9vbCBtYXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpCiB7CiAgICAgRWxlbWVudCog
cm9vdCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsKIAotICAgIGlmICghZGVmYXVsdFN0
eWxlKSB7Ci0gICAgICAgIGlmICghcm9vdCB8fCBlbGVtZW50Q2FuVXNlU2ltcGxlRGVmYXVsdFN0
eWxlKHJvb3QpKQotICAgICAgICAgICAgbG9hZFNpbXBsZURlZmF1bHRTdHlsZSgpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBsb2FkRnVsbERlZmF1bHRTdHlsZSgpOwotICAgIH0KKyAgICBD
U1NEZWZhdWx0U3R5bGVTaGVldHM6OmluaXREZWZhdWx0U3R5bGUocm9vdCk7CiAKICAgICAvLyBj
b25zdHJ1Y3QgZG9jdW1lbnQgcm9vdCBlbGVtZW50IGRlZmF1bHQgc3R5bGUuIHRoaXMgaXMgbmVl
ZGVkCiAgICAgLy8gdG8gZXZhbHVhdGUgbWVkaWEgcXVlcmllcyB0aGF0IGNvbnRhaW4gcmVsYXRp
dmUgY29uc3RyYWludHMsIGxpa2UgInNjcmVlbiBhbmQgKG1heC13aWR0aDogMTBlbSkiCkBAIC00
ODYsMTIzICs0NDQsNiBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OnN3ZWVwTWF0Y2hlZFByb3BlcnRp
ZXNDYWNoZShUaW1lcjxTdHlsZVJlc29sdmVyPiopCiAgICAgbV9tYXRjaGVkUHJvcGVydGllc0Nh
Y2hlQWRkaXRpb25zU2luY2VMYXN0U3dlZXAgPSAwOwogfQogCi1zdGF0aWMgU3R5bGVTaGVldENv
bnRlbnRzKiBwYXJzZVVBU2hlZXQoY29uc3QgU3RyaW5nJiBzdHIpCi17Ci0gICAgU3R5bGVTaGVl
dENvbnRlbnRzKiBzaGVldCA9IFN0eWxlU2hlZXRDb250ZW50czo6Y3JlYXRlKCkubGVha1JlZigp
OyAvLyBsZWFrIHRoZSBzaGVldCBvbiBwdXJwb3NlCi0gICAgc2hlZXQtPnBhcnNlU3RyaW5nKHN0
cik7Ci0gICAgcmV0dXJuIHNoZWV0OwotfQotCi1zdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBw
YXJzZVVBU2hlZXQoY29uc3QgY2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgc2l6ZSkKLXsKLSAg
ICByZXR1cm4gcGFyc2VVQVNoZWV0KFN0cmluZyhjaGFyYWN0ZXJzLCBzaXplKSk7Ci19Ci0KLXN0
YXRpYyB2b2lkIGxvYWRGdWxsRGVmYXVsdFN0eWxlKCkKLXsKLSAgICBpZiAoc2ltcGxlRGVmYXVs
dFN0eWxlU2hlZXQpIHsKLSAgICAgICAgQVNTRVJUKGRlZmF1bHRTdHlsZSk7Ci0gICAgICAgIEFT
U0VSVChkZWZhdWx0UHJpbnRTdHlsZSA9PSBkZWZhdWx0U3R5bGUpOwotICAgICAgICBkZWxldGUg
ZGVmYXVsdFN0eWxlOwotICAgICAgICBzaW1wbGVEZWZhdWx0U3R5bGVTaGVldC0+ZGVyZWYoKTsK
LSAgICAgICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigpOwotICAg
ICAgICBkZWZhdWx0UHJpbnRTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgpLmxlYWtQdHIoKTsKLSAg
ICAgICAgc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQgPSAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IEFTU0VSVCghZGVmYXVsdFN0eWxlKTsKLSAgICAgICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6
Y3JlYXRlKCkubGVha1B0cigpOwotICAgICAgICBkZWZhdWx0UHJpbnRTdHlsZSA9IFJ1bGVTZXQ6
OmNyZWF0ZSgpLmxlYWtQdHIoKTsKLSAgICAgICAgZGVmYXVsdFF1aXJrc1N0eWxlID0gUnVsZVNl
dDo6Y3JlYXRlKCkubGVha1B0cigpOwotICAgIH0KLQotICAgIC8vIFN0cmljdC1tb2RlIHJ1bGVz
LgotICAgIFN0cmluZyBkZWZhdWx0UnVsZXMgPSBTdHJpbmcoaHRtbFVzZXJBZ2VudFN0eWxlU2hl
ZXQsIHNpemVvZihodG1sVXNlckFnZW50U3R5bGVTaGVldCkpICsgUmVuZGVyVGhlbWU6OmRlZmF1
bHRUaGVtZSgpLT5leHRyYURlZmF1bHRTdHlsZVNoZWV0KCk7Ci0gICAgZGVmYXVsdFN0eWxlU2hl
ZXQgPSBwYXJzZVVBU2hlZXQoZGVmYXVsdFJ1bGVzKTsKLSAgICBkZWZhdWx0U3R5bGUtPmFkZFJ1
bGVzRnJvbVNoZWV0KGRlZmF1bHRTdHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkpOwotICAgIGRlZmF1
bHRQcmludFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChkZWZhdWx0U3R5bGVTaGVldCwgcHJpbnRF
dmFsKCkpOwotCi0gICAgLy8gUXVpcmtzLW1vZGUgcnVsZXMuCi0gICAgU3RyaW5nIHF1aXJrc1J1
bGVzID0gU3RyaW5nKHF1aXJrc1VzZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZihxdWlya3NVc2Vy
QWdlbnRTdHlsZVNoZWV0KSkgKyBSZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPmV4dHJhUXVp
cmtzU3R5bGVTaGVldCgpOwotICAgIHF1aXJrc1N0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQocXVp
cmtzUnVsZXMpOwotICAgIGRlZmF1bHRRdWlya3NTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQocXVp
cmtzU3R5bGVTaGVldCwgc2NyZWVuRXZhbCgpKTsKLX0KLQotc3RhdGljIHZvaWQgbG9hZFNpbXBs
ZURlZmF1bHRTdHlsZSgpCi17Ci0gICAgQVNTRVJUKCFkZWZhdWx0U3R5bGUpOwotICAgIEFTU0VS
VCghc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQpOwotCi0gICAgZGVmYXVsdFN0eWxlID0gUnVsZVNl
dDo6Y3JlYXRlKCkubGVha1B0cigpOwotICAgIC8vIFRoZXJlIGFyZSBubyBtZWRpYS1zcGVjaWZp
YyBydWxlcyBpbiB0aGUgc2ltcGxlIGRlZmF1bHQgc3R5bGUuCi0gICAgZGVmYXVsdFByaW50U3R5
bGUgPSBkZWZhdWx0U3R5bGU7Ci0gICAgZGVmYXVsdFF1aXJrc1N0eWxlID0gUnVsZVNldDo6Y3Jl
YXRlKCkubGVha1B0cigpOwotCi0gICAgc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQgPSBwYXJzZVVB
U2hlZXQoc2ltcGxlVXNlckFnZW50U3R5bGVTaGVldCwgc3RybGVuKHNpbXBsZVVzZXJBZ2VudFN0
eWxlU2hlZXQpKTsKLSAgICBkZWZhdWx0U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHNpbXBsZURl
ZmF1bHRTdHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkpOwotCi0gICAgLy8gTm8gbmVlZCB0byBpbml0
aWFsaXplIHF1aXJrcyBzaGVldCB5ZXQgYXMgdGhlcmUgYXJlIG5vIHF1aXJrIHJ1bGVzIGZvciBl
bGVtZW50cyBhbGxvd2VkIGluIHNpbXBsZSBkZWZhdWx0IHN0eWxlLgotfQotCi1zdGF0aWMgUnVs
ZVNldCogdmlld1NvdXJjZVN0eWxlKCkKLXsKLSAgICBpZiAoIWRlZmF1bHRWaWV3U291cmNlU3R5
bGUpIHsKLSAgICAgICAgZGVmYXVsdFZpZXdTb3VyY2VTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgp
LmxlYWtQdHIoKTsKLSAgICAgICAgZGVmYXVsdFZpZXdTb3VyY2VTdHlsZS0+YWRkUnVsZXNGcm9t
U2hlZXQocGFyc2VVQVNoZWV0KHNvdXJjZVVzZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZihzb3Vy
Y2VVc2VyQWdlbnRTdHlsZVNoZWV0KSksIHNjcmVlbkV2YWwoKSk7Ci0gICAgfQotICAgIHJldHVy
biBkZWZhdWx0Vmlld1NvdXJjZVN0eWxlOwotfQotCi1zdGF0aWMgdm9pZCBlbnN1cmVEZWZhdWx0
U3R5bGVTaGVldHNGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCi17Ci0gICAgaWYgKHNpbXBs
ZURlZmF1bHRTdHlsZVNoZWV0ICYmICFlbGVtZW50Q2FuVXNlU2ltcGxlRGVmYXVsdFN0eWxlKGVs
ZW1lbnQpKQotICAgICAgICBsb2FkRnVsbERlZmF1bHRTdHlsZSgpOwotCi0jaWYgRU5BQkxFKFNW
RykKLSAgICBpZiAoZWxlbWVudC0+aXNTVkdFbGVtZW50KCkgJiYgIXN2Z1N0eWxlU2hlZXQpIHsK
LSAgICAgICAgLy8gU1ZHIHJ1bGVzLgotICAgICAgICBzdmdTdHlsZVNoZWV0ID0gcGFyc2VVQVNo
ZWV0KHN2Z1VzZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZihzdmdVc2VyQWdlbnRTdHlsZVNoZWV0
KSk7Ci0gICAgICAgIGRlZmF1bHRTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQoc3ZnU3R5bGVTaGVl
dCwgc2NyZWVuRXZhbCgpKTsKLSAgICAgICAgZGVmYXVsdFByaW50U3R5bGUtPmFkZFJ1bGVzRnJv
bVNoZWV0KHN2Z1N0eWxlU2hlZXQsIHByaW50RXZhbCgpKTsKLSAgICB9Ci0jZW5kaWYKLQotI2lm
IEVOQUJMRShNQVRITUwpCi0gICAgaWYgKGVsZW1lbnQtPmlzTWF0aE1MRWxlbWVudCgpICYmICFt
YXRoTUxTdHlsZVNoZWV0KSB7Ci0gICAgICAgIC8vIE1hdGhNTCBydWxlcy4KLSAgICAgICAgbWF0
aE1MU3R5bGVTaGVldCA9IHBhcnNlVUFTaGVldChtYXRobWxVc2VyQWdlbnRTdHlsZVNoZWV0LCBz
aXplb2YobWF0aG1sVXNlckFnZW50U3R5bGVTaGVldCkpOwotICAgICAgICBkZWZhdWx0U3R5bGUt
PmFkZFJ1bGVzRnJvbVNoZWV0KG1hdGhNTFN0eWxlU2hlZXQsIHNjcmVlbkV2YWwoKSk7Ci0gICAg
ICAgIGRlZmF1bHRQcmludFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChtYXRoTUxTdHlsZVNoZWV0
LCBwcmludEV2YWwoKSk7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoVklERU8pCi0gICAg
aWYgKCFtZWRpYUNvbnRyb2xzU3R5bGVTaGVldCAmJiAoZWxlbWVudC0+aGFzVGFnTmFtZSh2aWRl
b1RhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShhdWRpb1RhZykpKSB7Ci0gICAgICAgIFN0cmlu
ZyBtZWRpYVJ1bGVzID0gU3RyaW5nKG1lZGlhQ29udHJvbHNVc2VyQWdlbnRTdHlsZVNoZWV0LCBz
aXplb2YobWVkaWFDb250cm9sc1VzZXJBZ2VudFN0eWxlU2hlZXQpKSArIFJlbmRlclRoZW1lOjp0
aGVtZUZvclBhZ2UoZWxlbWVudC0+ZG9jdW1lbnQoKS0+cGFnZSgpKS0+ZXh0cmFNZWRpYUNvbnRy
b2xzU3R5bGVTaGVldCgpOwotICAgICAgICBtZWRpYUNvbnRyb2xzU3R5bGVTaGVldCA9IHBhcnNl
VUFTaGVldChtZWRpYVJ1bGVzKTsKLSAgICAgICAgZGVmYXVsdFN0eWxlLT5hZGRSdWxlc0Zyb21T
aGVldChtZWRpYUNvbnRyb2xzU3R5bGVTaGVldCwgc2NyZWVuRXZhbCgpKTsKLSAgICAgICAgZGVm
YXVsdFByaW50U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0
LCBwcmludEV2YWwoKSk7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCi0gICAgaWYgKCFmdWxsc2NyZWVuU3R5bGVTaGVldCAmJiBlbGVtZW50LT5kb2N1bWVudCgp
LT53ZWJraXRJc0Z1bGxTY3JlZW4oKSkgewotICAgICAgICBTdHJpbmcgZnVsbHNjcmVlblJ1bGVz
ID0gU3RyaW5nKGZ1bGxzY3JlZW5Vc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2YoZnVsbHNjcmVl
blVzZXJBZ2VudFN0eWxlU2hlZXQpKSArIFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+ZXh0
cmFGdWxsU2NyZWVuU3R5bGVTaGVldCgpOwotICAgICAgICBmdWxsc2NyZWVuU3R5bGVTaGVldCA9
IHBhcnNlVUFTaGVldChmdWxsc2NyZWVuUnVsZXMpOwotICAgICAgICBkZWZhdWx0U3R5bGUtPmFk
ZFJ1bGVzRnJvbVNoZWV0KGZ1bGxzY3JlZW5TdHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkpOwotICAg
ICAgICBkZWZhdWx0UXVpcmtzU3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KGZ1bGxzY3JlZW5TdHls
ZVNoZWV0LCBzY3JlZW5FdmFsKCkpOwotICAgIH0KLSNlbmRpZgotCi0gICAgaWYgKCFwbHVnSW5z
U3R5bGVTaGVldCAmJiAoZWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQt
Pmhhc1RhZ05hbWUoZW1iZWRUYWcpKSkgewotICAgICAgICBTdHJpbmcgcGx1Z0luc1J1bGVzID0g
U3RyaW5nKHBsdWdJbnNVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2YocGx1Z0luc1VzZXJBZ2Vu
dFN0eWxlU2hlZXQpKSArIFJlbmRlclRoZW1lOjp0aGVtZUZvclBhZ2UoZWxlbWVudC0+ZG9jdW1l
bnQoKS0+cGFnZSgpKS0+ZXh0cmFQbHVnSW5zU3R5bGVTaGVldCgpICsgZWxlbWVudC0+ZG9jdW1l
bnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnBsdWdJbkV4dHJhU3R5bGVTaGVldCgp
OwotICAgICAgICBwbHVnSW5zU3R5bGVTaGVldCA9IHBhcnNlVUFTaGVldChwbHVnSW5zUnVsZXMp
OwotICAgICAgICBkZWZhdWx0U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHBsdWdJbnNTdHlsZVNo
ZWV0LCBzY3JlZW5FdmFsKCkpOwotICAgIH0KLQotICAgIEFTU0VSVChkZWZhdWx0U3R5bGUtPmZl
YXR1cmVzKCkuaWRzSW5SdWxlcy5pc0VtcHR5KCkpOwotICAgIEFTU0VSVChtYXRoTUxTdHlsZVNo
ZWV0IHx8IGRlZmF1bHRTdHlsZS0+ZmVhdHVyZXMoKS5zaWJsaW5nUnVsZXMuaXNFbXB0eSgpKTsK
LX0KLQogdm9pZCBTdHlsZVJlc29sdmVyOjphZGRNYXRjaGVkUHJvcGVydGllcyhNYXRjaFJlc3Vs
dCYgbWF0Y2hSZXN1bHQsIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnRpZXMsIFN0eWxl
UnVsZSogcnVsZSwgdW5zaWduZWQgbGlua01hdGNoVHlwZSwgUHJvcGVydHlXaGl0ZWxpc3RUeXBl
IHByb3BlcnR5V2hpdGVsaXN0VHlwZSkKIHsKICAgICBtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVy
dGllcy5ncm93KG1hdGNoUmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzLnNpemUoKSArIDEpOwpAQCAt
MTM1NCwxOSArMTE5NSwxOSBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6Om1hdGNoVUFSdWxlcyhNYXRj
aFJlc3VsdCYgcmVzdWx0KQogICAgIE1hdGNoaW5nVUFSdWxlc1Njb3BlIHNjb3BlOwogCiAgICAg
Ly8gRmlyc3Qgd2UgbWF0Y2ggcnVsZXMgZnJvbSB0aGUgdXNlciBhZ2VudCBzaGVldC4KLSAgICBp
ZiAoc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQpCisgICAgaWYgKENTU0RlZmF1bHRTdHlsZVNoZWV0
czo6c2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQpCiAgICAgICAgIHJlc3VsdC5pc0NhY2hlYWJsZSA9
IGZhbHNlOwogICAgIFJ1bGVTZXQqIHVzZXJBZ2VudFN0eWxlU2hlZXQgPSBtX21lZGl1bS0+bWVk
aWFUeXBlTWF0Y2hTcGVjaWZpYygicHJpbnQiKQotICAgICAgICA/IGRlZmF1bHRQcmludFN0eWxl
IDogZGVmYXVsdFN0eWxlOworICAgICAgICA/IENTU0RlZmF1bHRTdHlsZVNoZWV0czo6ZGVmYXVs
dFByaW50U3R5bGUgOiBDU1NEZWZhdWx0U3R5bGVTaGVldHM6OmRlZmF1bHRTdHlsZTsKICAgICBt
YXRjaFVBUnVsZXMocmVzdWx0LCB1c2VyQWdlbnRTdHlsZVNoZWV0KTsKIAogICAgIC8vIEluIHF1
aXJrcyBtb2RlLCB3ZSBtYXRjaCBydWxlcyBmcm9tIHRoZSBxdWlya3MgdXNlciBhZ2VudCBzaGVl
dC4KICAgICBpZiAoIW1fc2VsZWN0b3JDaGVja2VyLnN0cmljdFBhcnNpbmcoKSkKLSAgICAgICAg
bWF0Y2hVQVJ1bGVzKHJlc3VsdCwgZGVmYXVsdFF1aXJrc1N0eWxlKTsKKyAgICAgICAgbWF0Y2hV
QVJ1bGVzKHJlc3VsdCwgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpkZWZhdWx0UXVpcmtzU3R5bGUp
OwogCiAgICAgLy8gSWYgZG9jdW1lbnQgdXNlcyB2aWV3IHNvdXJjZSBzdHlsZXMgKGluIHZpZXcg
c291cmNlIG1vZGUgb3IgaW4geG1sIHZpZXdlciBtb2RlKSwgdGhlbiB3ZSBtYXRjaCBydWxlcyBm
cm9tIHRoZSB2aWV3IHNvdXJjZSBzdHlsZSBzaGVldC4KICAgICBpZiAoZG9jdW1lbnQoKS0+aXNW
aWV3U291cmNlKCkpCi0gICAgICAgIG1hdGNoVUFSdWxlcyhyZXN1bHQsIHZpZXdTb3VyY2VTdHls
ZSgpKTsKKyAgICAgICAgbWF0Y2hVQVJ1bGVzKHJlc3VsdCwgQ1NTRGVmYXVsdFN0eWxlU2hlZXRz
Ojp2aWV3U291cmNlU3R5bGUoKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldFN0eWxlc0ZvclBhZ2lu
YXRpb25Nb2RlKFBhZ2luYXRpb246Ok1vZGUgcGFnaW5hdGlvbk1vZGUsIFJlbmRlclN0eWxlKiBz
dHlsZSkKQEAgLTE2MDQsNyArMTQ0NSw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxl
UmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJTCiAgICAg
ICAgIG1fc3R5bGUtPnNldEluc2lkZUxpbmsobGlua1N0YXRlKTsKICAgICB9CiAKLSAgICBlbnN1
cmVEZWZhdWx0U3R5bGVTaGVldHNGb3JFbGVtZW50KGVsZW1lbnQpOworICAgIENTU0RlZmF1bHRT
dHlsZVNoZWV0czo6ZW5zdXJlRGVmYXVsdFN0eWxlU2hlZXRzRm9yRWxlbWVudChlbGVtZW50KTsK
IAogICAgIE1hdGNoUmVzdWx0IG1hdGNoUmVzdWx0OwogICAgIGlmIChtYXRjaGluZ0JlaGF2aW9y
ID09IE1hdGNoT25seVVzZXJBZ2VudFJ1bGVzKQpAQCAtMTgwMCw3ICsxNjQxLDcgQEAgUGFzc1Jl
ZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKGludCBwYWdlSW5k
ZXgpCiAgICAgY29uc3QgU3RyaW5nIHBhZ2UgPSBwYWdlTmFtZShwYWdlSW5kZXgpOwogICAgIAog
ICAgIE1hdGNoUmVzdWx0IHJlc3VsdDsKLSAgICBtYXRjaFBhZ2VSdWxlcyhyZXN1bHQsIGRlZmF1
bHRQcmludFN0eWxlLCBpc0xlZnQsIGlzRmlyc3QsIHBhZ2UpOworICAgIG1hdGNoUGFnZVJ1bGVz
KHJlc3VsdCwgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpkZWZhdWx0UHJpbnRTdHlsZSwgaXNMZWZ0
LCBpc0ZpcnN0LCBwYWdlKTsKICAgICBtYXRjaFBhZ2VSdWxlcyhyZXN1bHQsIG1fdXNlclN0eWxl
LmdldCgpLCBpc0xlZnQsIGlzRmlyc3QsIHBhZ2UpOwogICAgIC8vIE9ubHkgY29uc2lkZXIgdGhl
IGdsb2JhbCBhdXRob3IgUnVsZVNldCBmb3IgQHBhZ2UgcnVsZXMsIGFzIHBlciB0aGUgSFRNTDUg
c3BlYy4KICAgICBtYXRjaFBhZ2VSdWxlcyhyZXN1bHQsIG1fYXV0aG9yU3R5bGUuZ2V0KCksIGlz
TGVmdCwgaXNGaXJzdCwgcGFnZSk7CkBAIC0yNzQzLDEzICsyNTg0LDEzIEBAIHZvaWQgSW5zcGVj
dG9yQ1NTT01XcmFwcGVyczo6Y29sbGVjdEZyb21Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9u
KERvY3VtZW50U3R5CiBDU1NTdHlsZVJ1bGUqIEluc3BlY3RvckNTU09NV3JhcHBlcnM6OmdldFdy
YXBwZXJGb3JSdWxlSW5TaGVldHMoU3R5bGVSdWxlKiBydWxlLCBEb2N1bWVudFN0eWxlU2hlZXRD
b2xsZWN0aW9uKiBzdHlsZVNoZWV0Q29sbGVjdGlvbikKIHsKICAgICBpZiAobV9zdHlsZVJ1bGVU
b0NTU09NV3JhcHBlck1hcC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29sbGVjdEZyb21TdHlsZVNo
ZWV0Q29udGVudHMobV9zdHlsZVNoZWV0Q1NTT01XcmFwcGVyU2V0LCBzaW1wbGVEZWZhdWx0U3R5
bGVTaGVldCk7Ci0gICAgICAgIGNvbGxlY3RGcm9tU3R5bGVTaGVldENvbnRlbnRzKG1fc3R5bGVT
aGVldENTU09NV3JhcHBlclNldCwgZGVmYXVsdFN0eWxlU2hlZXQpOwotICAgICAgICBjb2xsZWN0
RnJvbVN0eWxlU2hlZXRDb250ZW50cyhtX3N0eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQsIHF1aXJr
c1N0eWxlU2hlZXQpOwotICAgICAgICBjb2xsZWN0RnJvbVN0eWxlU2hlZXRDb250ZW50cyhtX3N0
eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQsIHN2Z1N0eWxlU2hlZXQpOwotICAgICAgICBjb2xsZWN0
RnJvbVN0eWxlU2hlZXRDb250ZW50cyhtX3N0eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQsIG1hdGhN
TFN0eWxlU2hlZXQpOwotICAgICAgICBjb2xsZWN0RnJvbVN0eWxlU2hlZXRDb250ZW50cyhtX3N0
eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQsIG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KTsKLSAgICAg
ICAgY29sbGVjdEZyb21TdHlsZVNoZWV0Q29udGVudHMobV9zdHlsZVNoZWV0Q1NTT01XcmFwcGVy
U2V0LCBmdWxsc2NyZWVuU3R5bGVTaGVldCk7CisgICAgICAgIGNvbGxlY3RGcm9tU3R5bGVTaGVl
dENvbnRlbnRzKG1fc3R5bGVTaGVldENTU09NV3JhcHBlclNldCwgQ1NTRGVmYXVsdFN0eWxlU2hl
ZXRzOjpzaW1wbGVEZWZhdWx0U3R5bGVTaGVldCk7CisgICAgICAgIGNvbGxlY3RGcm9tU3R5bGVT
aGVldENvbnRlbnRzKG1fc3R5bGVTaGVldENTU09NV3JhcHBlclNldCwgQ1NTRGVmYXVsdFN0eWxl
U2hlZXRzOjpkZWZhdWx0U3R5bGVTaGVldCk7CisgICAgICAgIGNvbGxlY3RGcm9tU3R5bGVTaGVl
dENvbnRlbnRzKG1fc3R5bGVTaGVldENTU09NV3JhcHBlclNldCwgQ1NTRGVmYXVsdFN0eWxlU2hl
ZXRzOjpxdWlya3NTdHlsZVNoZWV0KTsKKyAgICAgICAgY29sbGVjdEZyb21TdHlsZVNoZWV0Q29u
dGVudHMobV9zdHlsZVNoZWV0Q1NTT01XcmFwcGVyU2V0LCBDU1NEZWZhdWx0U3R5bGVTaGVldHM6
OnN2Z1N0eWxlU2hlZXQpOworICAgICAgICBjb2xsZWN0RnJvbVN0eWxlU2hlZXRDb250ZW50cyht
X3N0eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQsIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6bWF0aE1M
U3R5bGVTaGVldCk7CisgICAgICAgIGNvbGxlY3RGcm9tU3R5bGVTaGVldENvbnRlbnRzKG1fc3R5
bGVTaGVldENTU09NV3JhcHBlclNldCwgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjptZWRpYUNvbnRy
b2xzU3R5bGVTaGVldCk7CisgICAgICAgIGNvbGxlY3RGcm9tU3R5bGVTaGVldENvbnRlbnRzKG1f
c3R5bGVTaGVldENTU09NV3JhcHBlclNldCwgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpmdWxsc2Ny
ZWVuU3R5bGVTaGVldCk7CiAKICAgICAgICAgY29sbGVjdEZyb21Eb2N1bWVudFN0eWxlU2hlZXRD
b2xsZWN0aW9uKHN0eWxlU2hlZXRDb2xsZWN0aW9uKTsKICAgICB9CkBAIC01NDA1LDEwICs1MjQ2
LDEwIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6Y29sbGVjdEZlYXR1cmVzKCkKICAgICAvLyBDb2xs
ZWN0IGFsbCBpZHMgYW5kIHJ1bGVzIHVzaW5nIHNpYmxpbmcgc2VsZWN0b3JzICg6Zmlyc3QtY2hp
bGQgYW5kIHNpbWlsYXIpCiAgICAgLy8gaW4gdGhlIGN1cnJlbnQgc2V0IG9mIHN0eWxlc2hlZXRz
LiBTdHlsZSBzaGFyaW5nIGNvZGUgdXNlcyB0aGlzIGluZm9ybWF0aW9uIHRvIHJlamVjdAogICAg
IC8vIHNoYXJpbmcgY2FuZGlkYXRlcy4KLSAgICBtX2ZlYXR1cmVzLmFkZChkZWZhdWx0U3R5bGUt
PmZlYXR1cmVzKCkpOworICAgIG1fZmVhdHVyZXMuYWRkKENTU0RlZmF1bHRTdHlsZVNoZWV0czo6
ZGVmYXVsdFN0eWxlLT5mZWF0dXJlcygpKTsKICAgICBtX2ZlYXR1cmVzLmFkZChtX2F1dGhvclN0
eWxlLT5mZWF0dXJlcygpKTsKICAgICBpZiAoZG9jdW1lbnQoKS0+aXNWaWV3U291cmNlKCkpCi0g
ICAgICAgIG1fZmVhdHVyZXMuYWRkKHZpZXdTb3VyY2VTdHlsZSgpLT5mZWF0dXJlcygpKTsKKyAg
ICAgICAgbV9mZWF0dXJlcy5hZGQoQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjp2aWV3U291cmNlU3R5
bGUoKS0+ZmVhdHVyZXMoKSk7CiAKICAgICBpZiAobV9zY29wZVJlc29sdmVyKQogICAgICAgICBt
X3Njb3BlUmVzb2x2ZXItPmNvbGxlY3RGZWF0dXJlc1RvKG1fZmVhdHVyZXMpOwpAQCAtNTQ3OSwx
MCArNTMyMCwxMCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9zY29wZVJlc29sdmVyKTsKIAogICAgIC8vIEZJWE1FOiBtb3ZlIHRoaXMgdG8gYSBwbGFjZSB3
aGVyZSBpdCB3b3VsZCBiZSBjYWxsZWQgb25seSBvbmNlPwotICAgIGluZm8uYWRkTWVtYmVyKGRl
ZmF1bHRTdHlsZSk7Ci0gICAgaW5mby5hZGRNZW1iZXIoZGVmYXVsdFF1aXJrc1N0eWxlKTsKLSAg
ICBpbmZvLmFkZE1lbWJlcihkZWZhdWx0UHJpbnRTdHlsZSk7Ci0gICAgaW5mby5hZGRNZW1iZXIo
ZGVmYXVsdFZpZXdTb3VyY2VTdHlsZSk7CisgICAgaW5mby5hZGRNZW1iZXIoQ1NTRGVmYXVsdFN0
eWxlU2hlZXRzOjpkZWZhdWx0U3R5bGUpOworICAgIGluZm8uYWRkTWVtYmVyKENTU0RlZmF1bHRT
dHlsZVNoZWV0czo6ZGVmYXVsdFF1aXJrc1N0eWxlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihDU1NE
ZWZhdWx0U3R5bGVTaGVldHM6OmRlZmF1bHRQcmludFN0eWxlKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihDU1NEZWZhdWx0U3R5bGVTaGVldHM6OmRlZmF1bHRWaWV3U291cmNlU3R5bGUpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186289</attachid>
            <date>2013-02-03 20:01:59 -0800</date>
            <delta_ts>2013-02-03 20:55:14 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-107780-20130204125838.patch</filename>
            <type>text/plain</type>
            <size>35839</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzNmYjJhMGMyYTMyYjZl
MDBlNzIwOGZkZDg0ODJhMDUwMTg1NTVmNC4uNjJiOWQyOWYwNWUyOTk2NmMwNjlmMGVjZWZjOGQz
NTYyMzZhYjRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEzLTAyLTAzICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBTcGxpdCBkZWZhdWx0IHN0
eWxlLXNoZWV0IHN0YXRpY3Mgb3V0IGZyb20gU3R5bGVSZXNvbHZlciBpbnRvIGl0cyBvd24gY2xh
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzc4
MAorCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICBGYWN0
b3JlZCBzdGF0aWMgdmFyaWFibGVzIGFuZCBsb2dpYyBhYm91dCBkZWZhdWx0IHN0eWxlIHNoZWV0
cyBvdXQgZnJvbSBTdHlsZVJlc29sdmVyIGludG8gaXRzIG93biBjbGFzcworICAgICAgICBDU1NE
ZWZhdWx0U3R5bGVTaGVldHMuIFRoaXMgaXMgYSBmb2xsb3dpbmcgcGF0Y2ggYWZ0ZXIgcjE0MTM3
My4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yaW5nIG9ubHkuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAg
ICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQWxsSW5PbmUu
Y3BwOgorICAgICAgICAqIGNzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZWxlbWVudENhblVzZVNpbXBsZURl
ZmF1bHRTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5FdmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OnByaW50RXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVVBU2hlZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTRGVmYXVsdFN0eWxlU2hlZXRzOjppbml0RGVmYXVsdFN0eWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0RlZmF1bHRTdHlsZVNoZWV0czo6bG9hZEZ1bGxEZWZhdWx0
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpsb2FkU2lt
cGxlRGVmYXVsdFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0RlZmF1bHRTdHlsZVNoZWV0
czo6dmlld1NvdXJjZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0RlZmF1bHRTdHlsZVNo
ZWV0czo6ZW5zdXJlRGVmYXVsdFN0eWxlU2hlZXRzRm9yRWxlbWVudCk6CisgICAgICAgICogY3Nz
L0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoQ1NTRGVmYXVsdFN0eWxlU2hlZXRzKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2
ZXI6OlN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6bWF0
Y2hVQVJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpzdHlsZUZvclBhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTT01XcmFwcGVyczo6Z2V0V3JhcHBlckZvclJ1
bGVJblNoZWV0cyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0RmVh
dHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorCiAyMDEzLTAyLTAzICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbVjhdIFNpbXBsaWZ5IENvZGVHZW5lcmF0b3JWOC5wbSBieSB1c2luZyBJbmhl
cml0c0V4dGVuZGVkQXR0cmlidXRlKCJFdmVudFRhcmdldCIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDBkNzJjYTBmZGRiYzdmZWU1MDhhZDk2YTJlMTBjZGNiZmU0ZDQ5MTcuLmUwMWIxNjY1MTVm
MmVhODgxMDlkZDZlNGU4ZmEzYWI0MTU5Y2NlZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0x
MDI4LDYgKzEwMjgsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKICAgICBjc3MvQ1NTQ3Jvc3NmYWRlVmFsdWUuY3BwCiAgICAg
Y3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCisgICAgY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0
cy5jcHAKICAgICBjc3MvQ1NTRm9udEZhY2UuY3BwCiAgICAgY3NzL0NTU0ZvbnRGYWNlUnVsZS5j
cHAKICAgICBjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCAxYmNhNmEzMGNmNjhkZWM4YzM2ZmMwOTZiMjEyYWJkN2FjODA2OGIxLi45ZTk3
NWEzMzE0NDI0N2ZhMTNhMTA4MDk1YzdiYjllYjdjOTcyNWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTI1MjcsNiArMjUyNyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvY3NzL0NTU0Nyb3NzZmFkZVZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1
cnNvckltYWdlVmFsdWUuaCBcCisJU291cmNlL1dlYkNvcmUvY3NzL0NTU0RlZmF1bHRTdHlsZVNo
ZWV0cy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuaCBc
CiAJU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCmluZGV4IDkwZWZjNDBmMzc2MmQwZjIyNDg2Mjc0NTIyMzg0MTQ3YjNj
MTRkNjcuLmI5ZmY4ZWJiMDMxMWRhNGUwYjE5MWYyZmUwNGEwNmYyNzFjYTBiOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQpAQCAtMjU2LDYgKzI1Niw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9DU1NDcm9zc2Zh
ZGVWYWx1ZS5jcHAgXAogICAgIGNzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBcCiAgICAgY3Nz
L0NTU0ZvbnRGYWNlLmNwcCBcCisgICAgY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAgXAog
ICAgIGNzcy9DU1NGb250RmFjZVJ1bGUuY3BwIFwKICAgICBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1
ZS5jcHAgXAogICAgIGNzcy9DU1NGb250U2VsZWN0b3IuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA3MzBlNWU2YTEyNzQyNDUxMjcxOWM0MjZlOTYwZWQ3NjIzZmM5ZDZhLi45OTk3YzI5YjhhZjk2
NmQ4YzkzZTI2OTJlYTgxMjdhZWQxMzhkYWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xNDYxLDYg
KzE0NjEsOCBAQAogICAgICAgICAgICAgJ2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5jcHAnLAogICAg
ICAgICAgICAgJ2Nzcy9DU1NDcm9zc2ZhZGVWYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvQ1NT
Q3Vyc29ySW1hZ2VWYWx1ZS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9DU1NEZWZhdWx0U3R5bGVT
aGVldHMuY3BwJywKKyAgICAgICAgICAgICdjc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmgnLAog
ICAgICAgICAgICAgJ2Nzcy9DU1NGb250RmFjZS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9DU1NG
b250RmFjZS5oJywKICAgICAgICAgICAgICdjc3MvQ1NTRm9udEZhY2VSdWxlLmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZjZmNjVlYjlhNDdmODcwYzY0ZjJkMThhZDUzN2Y4NmEzMTQ1NjllMC4uZjMwYzVhNjNjMTMxNGZm
YzA2NDUxOGZmNDg0ZDQ5N2I3N2UyYWE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ0Niw2ICsxNDQ2LDggQEAKIAkJNEE2
RTlGQzcxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzUxM0MxN0Q1NzAw
NDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwICovOyB9OwogCQk0QTZFOUZDODEzQzE3
RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzYxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZv
bnRGZWF0dXJlU2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0QThDOTZFQjBCRTY5MDMyMDA0RUVGRjAgLyogRnJhbWVTZWxlY3Rpb25N
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QThD
OTZFQTBCRTY5MDMyMDA0RUVGRjAgLyogRnJhbWVTZWxlY3Rpb25NYWMubW0gKi87IH07CisJCTRB
OUNDODE3MTZCQjlBQzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE5Q0M4MTUxNkJCOUFD
NjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAgKi87IH07CisJCTRBOUNDODE4
MTZCQjlBQzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0U3R5bGVTaGVldHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOUNDODE2MTZCQjlBQzYwMEVDNjQ1
QSAvKiBDU1NEZWZhdWx0U3R5bGVTaGVldHMuaCAqLzsgfTsKIAkJNEFCREZGMEIxNERCRTM4NTAw
NEQxMTdEIC8qIEhUTUxTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBQkRGRjA3MTREQkUzMTIwMDREMTE3RCAvKiBIVE1MU2hh
ZG93RWxlbWVudC5jcHAgKi87IH07CiAJCTRBQkRGRjBDMTREQkUzODUwMDREMTE3RCAvKiBIVE1M
U2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEFCREZGMDgxNERCRTMxMjAwNEQxMTdEIC8qIEhUTUxTaGFkb3dFbGVtZW50LmggKi87
IH07CiAJCTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMwQkMxMjcxM0NCRDAw
OTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi87IH07CkBAIC04ODEzLDYgKzg4MTUsOCBAQAogCQk0
QTZFOUZDNTEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVhdHVyZVNldHRpbmdzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE2RTlGQzYxM0MxN0Q1NzAwNDZBN0Y4IC8q
IEZvbnRGZWF0dXJlU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBs
aWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBG
b250RmVhdHVyZVNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBOEM5
NkVBMEJFNjkwMzIwMDRFRUZGMCAvKiBGcmFtZVNlbGVjdGlvbk1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBGcmFtZVNlbGVjdGlvbk1hYy5tbTsgcGF0aCA9
IG1hYy9GcmFtZVNlbGVjdGlvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NEE5Q0M4MTUxNkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NEZWZhdWx0U3R5bGVTaGVldHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTlDQzgxNjE2QkI5QUM2MDBFQzY0
NUEgLyogQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0QUJERkYwNzE0REJFMzEyMDA0RDExN0QgLyogSFRNTFNoYWRvd0VsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFNoYWRvd0VsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QUJERkYwODE0REJFMzEyMDA0RDExN0Qg
LyogSFRNTFNoYWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SFRNTFNoYWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEFCREZG
MDkxNERCRTMxMjAwNEQxMTdEIC8qIEhUTUxTaGFkb3dFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBIVE1MU2hhZG93RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMTcwMiw2ICsyMTcwNiw4IEBACiAJCQkJMkQ4RkVCREIxNDNFM0VGNzAwNzI1MDJC
IC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggKi8sCiAJCQkJQUEwOTc4RUQwQUJBQTZFMTAwODc0NDgw
IC8qIENTU0N1cnNvckltYWdlVmFsdWUuY3BwICovLAogCQkJCUFBMDk3OEVFMEFCQUE2RTEwMDg3
NDQ4MCAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggKi8sCisJCQkJNEE5Q0M4MTUxNkJCOUFDNjAw
RUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5jcHAgKi8sCisJCQkJNEE5Q0M4MTYxNkJC
OUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oICovLAogCQkJCUJDNjRCNENE
MENCNDI5OEEwMDVGMkI2MiAvKiBDU1NGb250RmFjZS5jcHAgKi8sCiAJCQkJQkM2NEI0Q0UwQ0I0
Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmggKi8sCiAJCQkJQTgwRTZDQkQwQTE5ODlDQTAw
N0ZCOEM1IC8qIENTU0ZvbnRGYWNlUnVsZS5jcHAgKi8sCkBAIC0yMzIyMCw2ICsyMzIyNiw3IEBA
CiAJCQkJQkNFQTQ3OTAwOTdDQUFDODAwOTRDOUU0IC8qIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4RkVCREQxNDNFM0VGNzAwNzI1MDJCIC8qIENT
U0Nyb3NzZmFkZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTIxRUNDRDBBQkYwRkM2MDAy
QjgzNEMgLyogQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEE5Q0M4
MTgxNkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM2NEI0RDYwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBODBFNkNGRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTRm9udEZhY2VSdWxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0QjREODBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9u
dEZhY2VTb3VyY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjY4ODEsNiArMjY4ODgsNyBAQAogCQkJ
CUJDRUE0NzhGMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ4RkVCREMxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Ny
b3NzZmFkZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUFBMjFFQ0NBMEFCRjBGQkEwMDJC
ODM0QyAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBOUND
ODE3MTZCQjlBQzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM2NEI0RDUwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0U3MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NGb250RmFj
ZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NEI0RDcwQ0I0Mjk4QTAwNUYyQjYyIC8q
IENTU0ZvbnRGYWNlU291cmNlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NBbGxJ
bk9uZS5jcHAKaW5kZXggODY0NmRmNjY4MTMwMDI3ZDVlMTUzZTg3N2MyZDUxOWUzNzBlZGVmYi4u
MDc2YWI1YzI5ODY2ZmU1MGE3ZDQ2ODMzMjFkZGE5OGM3OTk1OGUwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQWxsSW5PbmUuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcCIKICNpbmNsdWRlICJDU1NDcm9zc2ZhZGVWYWx1ZS5jcHAiCiAj
aW5jbHVkZSAiQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAiCisjaW5jbHVkZSAiQ1NTRGVmYXVsdFN0
eWxlU2hlZXRzLmNwcCIKICNpbmNsdWRlICJDU1NGb250RmFjZS5jcHAiCiAjaW5jbHVkZSAiQ1NT
Rm9udEZhY2VSdWxlLmNwcCIKICNpbmNsdWRlICJDU1NGb250RmFjZVNvdXJjZS5jcHAiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgx
ZjA0Nzg5OGQ0ZDU5NTdlMjhjZWJhNjQxNTU5YmY0ZmI4NDI2Y2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmNwcApAQCAtMCwwICsx
LDIwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQorICogICAgICAgICAgIChDKSAyMDA0LTIwMDUgQWxsYW4gU2FuZGZlbGQgSmVuc2VuIChr
ZGVAY2FyZXdvbGYuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IE5pY2hvbGFzIFNo
YW5rcyAod2Via2l0QG5pY2tzaGFua3MuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBBbGV4ZXkgUHJvc2t1cnlha292IDxh
cEB3ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEVyaWMgU2VpZGVsIDxl
cmljQHdlYmtpdC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykK
KyAqIENvcHlyaWdodCAoYykgMjAxMSwgQ29kZSBBdXJvcmEgRm9ydW0uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTU0Rl
ZmF1bHRTdHlsZVNoZWV0cy5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50LmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJ1bGVTZXQuaCIK
KyNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKKyNpbmNsdWRlICJVc2VyQWdlbnRTdHls
ZVNoZWV0cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CisKK1J1bGVTZXQqIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6ZGVmYXVsdFN0eWxlOwor
UnVsZVNldCogQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpkZWZhdWx0UXVpcmtzU3R5bGU7CitSdWxl
U2V0KiBDU1NEZWZhdWx0U3R5bGVTaGVldHM6OmRlZmF1bHRQcmludFN0eWxlOworUnVsZVNldCog
Q1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpkZWZhdWx0Vmlld1NvdXJjZVN0eWxlOworCitTdHlsZVNo
ZWV0Q29udGVudHMqIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6c2ltcGxlRGVmYXVsdFN0eWxlU2hl
ZXQ7CitTdHlsZVNoZWV0Q29udGVudHMqIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6ZGVmYXVsdFN0
eWxlU2hlZXQ7CitTdHlsZVNoZWV0Q29udGVudHMqIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6cXVp
cmtzU3R5bGVTaGVldDsKK1N0eWxlU2hlZXRDb250ZW50cyogQ1NTRGVmYXVsdFN0eWxlU2hlZXRz
OjpzdmdTdHlsZVNoZWV0OworU3R5bGVTaGVldENvbnRlbnRzKiBDU1NEZWZhdWx0U3R5bGVTaGVl
dHM6Om1hdGhNTFN0eWxlU2hlZXQ7CitTdHlsZVNoZWV0Q29udGVudHMqIENTU0RlZmF1bHRTdHls
ZVNoZWV0czo6bWVkaWFDb250cm9sc1N0eWxlU2hlZXQ7CitTdHlsZVNoZWV0Q29udGVudHMqIENT
U0RlZmF1bHRTdHlsZVNoZWV0czo6ZnVsbHNjcmVlblN0eWxlU2hlZXQ7CitTdHlsZVNoZWV0Q29u
dGVudHMqIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6cGx1Z0luc1N0eWxlU2hlZXQ7CisKKy8vIEZJ
WE1FOiBJdCB3b3VsZCBiZSBuaWNlIHRvIHVzZSBzb21lIG1lY2hhbmlzbSB0aGF0IGd1YXJhbnRl
ZXMgdGhpcyBpcyBpbiBzeW5jIHdpdGggdGhlIHJlYWwgVUEgc3R5bGVzaGVldC4KK3N0YXRpYyBj
b25zdCBjaGFyKiBzaW1wbGVVc2VyQWdlbnRTdHlsZVNoZWV0ID0gImh0bWwsYm9keSxkaXZ7ZGlz
cGxheTpibG9ja31oZWFke2Rpc3BsYXk6bm9uZX1ib2R5e21hcmdpbjo4cHh9ZGl2OmZvY3VzLHNw
YW46Zm9jdXN7b3V0bGluZTphdXRvIDVweCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3J9YTotd2Vi
a2l0LWFueS1saW5re2NvbG9yOi13ZWJraXQtbGluazt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5l
fWE6LXdlYmtpdC1hbnktbGluazphY3RpdmV7Y29sb3I6LXdlYmtpdC1hY3RpdmVsaW5rfSI7CisK
K3N0YXRpYyBpbmxpbmUgYm9vbCBlbGVtZW50Q2FuVXNlU2ltcGxlRGVmYXVsdFN0eWxlKEVsZW1l
bnQqIGUpCit7CisgICAgcmV0dXJuIGUtPmhhc1RhZ05hbWUoaHRtbFRhZykgfHwgZS0+aGFzVGFn
TmFtZShoZWFkVGFnKSB8fCBlLT5oYXNUYWdOYW1lKGJvZHlUYWcpIHx8IGUtPmhhc1RhZ05hbWUo
ZGl2VGFnKSB8fCBlLT5oYXNUYWdOYW1lKHNwYW5UYWcpIHx8IGUtPmhhc1RhZ05hbWUoYnJUYWcp
IHx8IGUtPmhhc1RhZ05hbWUoYVRhZyk7Cit9CisKK3N0YXRpYyBjb25zdCBNZWRpYVF1ZXJ5RXZh
bHVhdG9yJiBzY3JlZW5FdmFsKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IE1l
ZGlhUXVlcnlFdmFsdWF0b3IsIHN0YXRpY1NjcmVlbkV2YWwsICgic2NyZWVuIikpOworICAgIHJl
dHVybiBzdGF0aWNTY3JlZW5FdmFsOworfQorCitzdGF0aWMgY29uc3QgTWVkaWFRdWVyeUV2YWx1
YXRvciYgcHJpbnRFdmFsKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IE1lZGlh
UXVlcnlFdmFsdWF0b3IsIHN0YXRpY1ByaW50RXZhbCwgKCJwcmludCIpKTsKKyAgICByZXR1cm4g
c3RhdGljUHJpbnRFdmFsOworfQorCitzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBwYXJzZVVB
U2hlZXQoY29uc3QgU3RyaW5nJiBzdHIpCit7CisgICAgU3R5bGVTaGVldENvbnRlbnRzKiBzaGVl
dCA9IFN0eWxlU2hlZXRDb250ZW50czo6Y3JlYXRlKCkubGVha1JlZigpOyAvLyBsZWFrIHRoZSBz
aGVldCBvbiBwdXJwb3NlCisgICAgc2hlZXQtPnBhcnNlU3RyaW5nKHN0cik7CisgICAgcmV0dXJu
IHNoZWV0OworfQorCitzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBwYXJzZVVBU2hlZXQoY29u
c3QgY2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgc2l6ZSkKK3sKKyAgICByZXR1cm4gcGFyc2VV
QVNoZWV0KFN0cmluZyhjaGFyYWN0ZXJzLCBzaXplKSk7Cit9CisKK3ZvaWQgQ1NTRGVmYXVsdFN0
eWxlU2hlZXRzOjppbml0RGVmYXVsdFN0eWxlKEVsZW1lbnQqIHJvb3QpCit7CisgICAgaWYgKCFk
ZWZhdWx0U3R5bGUpIHsKKyAgICAgICAgaWYgKCFyb290IHx8IGVsZW1lbnRDYW5Vc2VTaW1wbGVE
ZWZhdWx0U3R5bGUocm9vdCkpCisgICAgICAgICAgICBsb2FkU2ltcGxlRGVmYXVsdFN0eWxlKCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvYWRGdWxsRGVmYXVsdFN0eWxlKCk7CisgICAg
fQorfQorCit2b2lkIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6bG9hZEZ1bGxEZWZhdWx0U3R5bGUo
KQoreworICAgIGlmIChzaW1wbGVEZWZhdWx0U3R5bGVTaGVldCkgeworICAgICAgICBBU1NFUlQo
ZGVmYXVsdFN0eWxlKTsKKyAgICAgICAgQVNTRVJUKGRlZmF1bHRQcmludFN0eWxlID09IGRlZmF1
bHRTdHlsZSk7CisgICAgICAgIGRlbGV0ZSBkZWZhdWx0U3R5bGU7CisgICAgICAgIHNpbXBsZURl
ZmF1bHRTdHlsZVNoZWV0LT5kZXJlZigpOworICAgICAgICBkZWZhdWx0U3R5bGUgPSBSdWxlU2V0
OjpjcmVhdGUoKS5sZWFrUHRyKCk7CisgICAgICAgIGRlZmF1bHRQcmludFN0eWxlID0gUnVsZVNl
dDo6Y3JlYXRlKCkubGVha1B0cigpOworICAgICAgICBzaW1wbGVEZWZhdWx0U3R5bGVTaGVldCA9
IDA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKCFkZWZhdWx0U3R5bGUpOworICAgICAg
ICBkZWZhdWx0U3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUHRyKCk7CisgICAgICAgIGRl
ZmF1bHRQcmludFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigpOworICAgICAgICBk
ZWZhdWx0UXVpcmtzU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUHRyKCk7CisgICAgfQor
CisgICAgLy8gU3RyaWN0LW1vZGUgcnVsZXMuCisgICAgU3RyaW5nIGRlZmF1bHRSdWxlcyA9IFN0
cmluZyhodG1sVXNlckFnZW50U3R5bGVTaGVldCwgc2l6ZW9mKGh0bWxVc2VyQWdlbnRTdHlsZVNo
ZWV0KSkgKyBSZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPmV4dHJhRGVmYXVsdFN0eWxlU2hl
ZXQoKTsKKyAgICBkZWZhdWx0U3R5bGVTaGVldCA9IHBhcnNlVUFTaGVldChkZWZhdWx0UnVsZXMp
OworICAgIGRlZmF1bHRTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQoZGVmYXVsdFN0eWxlU2hlZXQs
IHNjcmVlbkV2YWwoKSk7CisgICAgZGVmYXVsdFByaW50U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0
KGRlZmF1bHRTdHlsZVNoZWV0LCBwcmludEV2YWwoKSk7CisKKyAgICAvLyBRdWlya3MtbW9kZSBy
dWxlcy4KKyAgICBTdHJpbmcgcXVpcmtzUnVsZXMgPSBTdHJpbmcocXVpcmtzVXNlckFnZW50U3R5
bGVTaGVldCwgc2l6ZW9mKHF1aXJrc1VzZXJBZ2VudFN0eWxlU2hlZXQpKSArIFJlbmRlclRoZW1l
OjpkZWZhdWx0VGhlbWUoKS0+ZXh0cmFRdWlya3NTdHlsZVNoZWV0KCk7CisgICAgcXVpcmtzU3R5
bGVTaGVldCA9IHBhcnNlVUFTaGVldChxdWlya3NSdWxlcyk7CisgICAgZGVmYXVsdFF1aXJrc1N0
eWxlLT5hZGRSdWxlc0Zyb21TaGVldChxdWlya3NTdHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkpOwor
fQorCit2b2lkIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6bG9hZFNpbXBsZURlZmF1bHRTdHlsZSgp
Cit7CisgICAgQVNTRVJUKCFkZWZhdWx0U3R5bGUpOworICAgIEFTU0VSVCghc2ltcGxlRGVmYXVs
dFN0eWxlU2hlZXQpOworCisgICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVh
a1B0cigpOworICAgIC8vIFRoZXJlIGFyZSBubyBtZWRpYS1zcGVjaWZpYyBydWxlcyBpbiB0aGUg
c2ltcGxlIGRlZmF1bHQgc3R5bGUuCisgICAgZGVmYXVsdFByaW50U3R5bGUgPSBkZWZhdWx0U3R5
bGU7CisgICAgZGVmYXVsdFF1aXJrc1N0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigp
OworCisgICAgc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQoc2ltcGxlVXNl
ckFnZW50U3R5bGVTaGVldCwgc3RybGVuKHNpbXBsZVVzZXJBZ2VudFN0eWxlU2hlZXQpKTsKKyAg
ICBkZWZhdWx0U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHNpbXBsZURlZmF1bHRTdHlsZVNoZWV0
LCBzY3JlZW5FdmFsKCkpOworCisgICAgLy8gTm8gbmVlZCB0byBpbml0aWFsaXplIHF1aXJrcyBz
aGVldCB5ZXQgYXMgdGhlcmUgYXJlIG5vIHF1aXJrIHJ1bGVzIGZvciBlbGVtZW50cyBhbGxvd2Vk
IGluIHNpbXBsZSBkZWZhdWx0IHN0eWxlLgorfQorCitSdWxlU2V0KiBDU1NEZWZhdWx0U3R5bGVT
aGVldHM6OnZpZXdTb3VyY2VTdHlsZSgpCit7CisgICAgaWYgKCFkZWZhdWx0Vmlld1NvdXJjZVN0
eWxlKSB7CisgICAgICAgIGRlZmF1bHRWaWV3U291cmNlU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUo
KS5sZWFrUHRyKCk7CisgICAgICAgIGRlZmF1bHRWaWV3U291cmNlU3R5bGUtPmFkZFJ1bGVzRnJv
bVNoZWV0KHBhcnNlVUFTaGVldChzb3VyY2VVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2Yoc291
cmNlVXNlckFnZW50U3R5bGVTaGVldCkpLCBzY3JlZW5FdmFsKCkpOworICAgIH0KKyAgICByZXR1
cm4gZGVmYXVsdFZpZXdTb3VyY2VTdHlsZTsKK30KKworCit2b2lkIENTU0RlZmF1bHRTdHlsZVNo
ZWV0czo6ZW5zdXJlRGVmYXVsdFN0eWxlU2hlZXRzRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50
KQoreworICAgIGlmIChzaW1wbGVEZWZhdWx0U3R5bGVTaGVldCAmJiAhZWxlbWVudENhblVzZVNp
bXBsZURlZmF1bHRTdHlsZShlbGVtZW50KSkKKyAgICAgICAgbG9hZEZ1bGxEZWZhdWx0U3R5bGUo
KTsKKworI2lmIEVOQUJMRShTVkcpCisgICAgaWYgKGVsZW1lbnQtPmlzU1ZHRWxlbWVudCgpICYm
ICFzdmdTdHlsZVNoZWV0KSB7CisgICAgICAgIC8vIFNWRyBydWxlcy4KKyAgICAgICAgc3ZnU3R5
bGVTaGVldCA9IHBhcnNlVUFTaGVldChzdmdVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2Yoc3Zn
VXNlckFnZW50U3R5bGVTaGVldCkpOworICAgICAgICBkZWZhdWx0U3R5bGUtPmFkZFJ1bGVzRnJv
bVNoZWV0KHN2Z1N0eWxlU2hlZXQsIHNjcmVlbkV2YWwoKSk7CisgICAgICAgIGRlZmF1bHRQcmlu
dFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChzdmdTdHlsZVNoZWV0LCBwcmludEV2YWwoKSk7Cisg
ICAgfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoTUFUSE1MKQorICAgIGlmIChlbGVtZW50LT5pc01h
dGhNTEVsZW1lbnQoKSAmJiAhbWF0aE1MU3R5bGVTaGVldCkgeworICAgICAgICAvLyBNYXRoTUwg
cnVsZXMuCisgICAgICAgIG1hdGhNTFN0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQobWF0aG1sVXNl
ckFnZW50U3R5bGVTaGVldCwgc2l6ZW9mKG1hdGhtbFVzZXJBZ2VudFN0eWxlU2hlZXQpKTsKKyAg
ICAgICAgZGVmYXVsdFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChtYXRoTUxTdHlsZVNoZWV0LCBz
Y3JlZW5FdmFsKCkpOworICAgICAgICBkZWZhdWx0UHJpbnRTdHlsZS0+YWRkUnVsZXNGcm9tU2hl
ZXQobWF0aE1MU3R5bGVTaGVldCwgcHJpbnRFdmFsKCkpOworICAgIH0KKyNlbmRpZgorCisjaWYg
RU5BQkxFKFZJREVPKQorICAgIGlmICghbWVkaWFDb250cm9sc1N0eWxlU2hlZXQgJiYgKGVsZW1l
bnQtPmhhc1RhZ05hbWUodmlkZW9UYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoYXVkaW9UYWcp
KSkgeworICAgICAgICBTdHJpbmcgbWVkaWFSdWxlcyA9IFN0cmluZyhtZWRpYUNvbnRyb2xzVXNl
ckFnZW50U3R5bGVTaGVldCwgc2l6ZW9mKG1lZGlhQ29udHJvbHNVc2VyQWdlbnRTdHlsZVNoZWV0
KSkgKyBSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKGVsZW1lbnQtPmRvY3VtZW50KCktPnBhZ2Uo
KSktPmV4dHJhTWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKTsKKyAgICAgICAgbWVkaWFDb250cm9s
c1N0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQobWVkaWFSdWxlcyk7CisgICAgICAgIGRlZmF1bHRT
dHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQobWVkaWFDb250cm9sc1N0eWxlU2hlZXQsIHNjcmVlbkV2
YWwoKSk7CisgICAgICAgIGRlZmF1bHRQcmludFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChtZWRp
YUNvbnRyb2xzU3R5bGVTaGVldCwgcHJpbnRFdmFsKCkpOworICAgIH0KKyNlbmRpZgorCisjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIGlmICghZnVsbHNjcmVlblN0eWxlU2hlZXQgJiYg
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+d2Via2l0SXNGdWxsU2NyZWVuKCkpIHsKKyAgICAgICAgU3Ry
aW5nIGZ1bGxzY3JlZW5SdWxlcyA9IFN0cmluZyhmdWxsc2NyZWVuVXNlckFnZW50U3R5bGVTaGVl
dCwgc2l6ZW9mKGZ1bGxzY3JlZW5Vc2VyQWdlbnRTdHlsZVNoZWV0KSkgKyBSZW5kZXJUaGVtZTo6
ZGVmYXVsdFRoZW1lKCktPmV4dHJhRnVsbFNjcmVlblN0eWxlU2hlZXQoKTsKKyAgICAgICAgZnVs
bHNjcmVlblN0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQoZnVsbHNjcmVlblJ1bGVzKTsKKyAgICAg
ICAgZGVmYXVsdFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChmdWxsc2NyZWVuU3R5bGVTaGVldCwg
c2NyZWVuRXZhbCgpKTsKKyAgICAgICAgZGVmYXVsdFF1aXJrc1N0eWxlLT5hZGRSdWxlc0Zyb21T
aGVldChmdWxsc2NyZWVuU3R5bGVTaGVldCwgc2NyZWVuRXZhbCgpKTsKKyAgICB9CisjZW5kaWYK
KworICAgIGlmICghcGx1Z0luc1N0eWxlU2hlZXQgJiYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob2Jq
ZWN0VGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFnKSkpIHsKKyAgICAgICAgU3Ry
aW5nIHBsdWdJbnNSdWxlcyA9IFN0cmluZyhwbHVnSW5zVXNlckFnZW50U3R5bGVTaGVldCwgc2l6
ZW9mKHBsdWdJbnNVc2VyQWdlbnRTdHlsZVNoZWV0KSkgKyBSZW5kZXJUaGVtZTo6dGhlbWVGb3JQ
YWdlKGVsZW1lbnQtPmRvY3VtZW50KCktPnBhZ2UoKSktPmV4dHJhUGx1Z0luc1N0eWxlU2hlZXQo
KSArIGVsZW1lbnQtPmRvY3VtZW50KCktPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5wbHVn
SW5FeHRyYVN0eWxlU2hlZXQoKTsKKyAgICAgICAgcGx1Z0luc1N0eWxlU2hlZXQgPSBwYXJzZVVB
U2hlZXQocGx1Z0luc1J1bGVzKTsKKyAgICAgICAgZGVmYXVsdFN0eWxlLT5hZGRSdWxlc0Zyb21T
aGVldChwbHVnSW5zU3R5bGVTaGVldCwgc2NyZWVuRXZhbCgpKTsKKyAgICB9CisKKyAgICBBU1NF
UlQoZGVmYXVsdFN0eWxlLT5mZWF0dXJlcygpLmlkc0luUnVsZXMuaXNFbXB0eSgpKTsKKyAgICBB
U1NFUlQobWF0aE1MU3R5bGVTaGVldCB8fCBkZWZhdWx0U3R5bGUtPmZlYXR1cmVzKCkuc2libGlu
Z1J1bGVzLmlzRW1wdHkoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTEwMTBjNDcw
OWQxOWVlNjc5YjRmOTkyYTUxOThjMjAyZTIzMWI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0RlZmF1bHRTdHlsZVNoZWV0cy5oCkBAIC0wLDAgKzEsNTcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqIENv
cHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgQ1NTRGVm
YXVsdFN0eWxlU2hlZXRzX2gKKyNkZWZpbmUgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzX2gKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFbGVtZW50OworY2xhc3MgUnVsZVNldDsKK2NsYXNz
IFN0eWxlU2hlZXRDb250ZW50czsKKworY2xhc3MgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUnVsZVNldCogZGVmYXVsdFN0eWxlOworICAgIHN0YXRpYyBSdWxl
U2V0KiBkZWZhdWx0UXVpcmtzU3R5bGU7CisgICAgc3RhdGljIFJ1bGVTZXQqIGRlZmF1bHRQcmlu
dFN0eWxlOworICAgIHN0YXRpYyBSdWxlU2V0KiBkZWZhdWx0Vmlld1NvdXJjZVN0eWxlOworCisg
ICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQ7Cisg
ICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogZGVmYXVsdFN0eWxlU2hlZXQ7CisgICAgc3Rh
dGljIFN0eWxlU2hlZXRDb250ZW50cyogcXVpcmtzU3R5bGVTaGVldDsKKyAgICBzdGF0aWMgU3R5
bGVTaGVldENvbnRlbnRzKiBzdmdTdHlsZVNoZWV0OworICAgIHN0YXRpYyBTdHlsZVNoZWV0Q29u
dGVudHMqIG1hdGhNTFN0eWxlU2hlZXQ7CisgICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyog
bWVkaWFDb250cm9sc1N0eWxlU2hlZXQ7CisgICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyog
ZnVsbHNjcmVlblN0eWxlU2hlZXQ7CisgICAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogcGx1
Z0luc1N0eWxlU2hlZXQ7CisKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVEZWZhdWx0U3R5bGVTaGVl
dHNGb3JFbGVtZW50KEVsZW1lbnQqKTsKKyAgICBzdGF0aWMgdm9pZCBsb2FkRnVsbERlZmF1bHRT
dHlsZSgpOworICAgIHN0YXRpYyB2b2lkIGxvYWRTaW1wbGVEZWZhdWx0U3R5bGUoKTsKKyAgICBz
dGF0aWMgdm9pZCBpbml0RGVmYXVsdFN0eWxlKEVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUnVsZVNl
dCogdmlld1NvdXJjZVN0eWxlKCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBDU1NEZWZhdWx0U3R5bGVTaGVldHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZXIuY3BwCmluZGV4IGZiNzRlMjc1MWIzNTc1MjNjZWU2MWQ3MzY2OTFhNGY0YjdhMTBmNjcuLmUz
Yzk4ZGQzNjVjN2RiYjVhYWQzMDBiZDU0NzRjMzE5M2VlMmM1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDU1NCb3JkZXJJ
bWFnZS5oIgogI2luY2x1ZGUgIkNTU0NhbGN1bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1ND
dXJzb3JJbWFnZVZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmgiCiAj
aW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgi
CiAjaW5jbHVkZSAiQ1NTSG9zdFJ1bGUuaCIKQEAgLTU3LDggKzU4LDYgQEAKICNlbmRpZgogI2lu
Y2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FsY3VsYXRpb25WYWx1ZS5oIgotI2lu
Y2x1ZGUgIkNocm9tZS5oIgotI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkNv
bnRlbnREYXRhLmgiCiAjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiQ291
bnRlci5oIgpAQCAtMjExLDQ0ICsyMTAsOCBAQCBpZiAoaXNJbml0aWFsKSB7IFwKICAgICByZXR1
cm47IFwKIH0KIAotc3RhdGljIFJ1bGVTZXQqIGRlZmF1bHRTdHlsZTsKLXN0YXRpYyBSdWxlU2V0
KiBkZWZhdWx0UXVpcmtzU3R5bGU7Ci1zdGF0aWMgUnVsZVNldCogZGVmYXVsdFByaW50U3R5bGU7
Ci1zdGF0aWMgUnVsZVNldCogZGVmYXVsdFZpZXdTb3VyY2VTdHlsZTsKLXN0YXRpYyBTdHlsZVNo
ZWV0Q29udGVudHMqIHNpbXBsZURlZmF1bHRTdHlsZVNoZWV0Owotc3RhdGljIFN0eWxlU2hlZXRD
b250ZW50cyogZGVmYXVsdFN0eWxlU2hlZXQ7Ci1zdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBx
dWlya3NTdHlsZVNoZWV0Owotc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogc3ZnU3R5bGVTaGVl
dDsKLXN0YXRpYyBTdHlsZVNoZWV0Q29udGVudHMqIG1hdGhNTFN0eWxlU2hlZXQ7Ci1zdGF0aWMg
U3R5bGVTaGVldENvbnRlbnRzKiBtZWRpYUNvbnRyb2xzU3R5bGVTaGVldDsKLXN0YXRpYyBTdHls
ZVNoZWV0Q29udGVudHMqIGZ1bGxzY3JlZW5TdHlsZVNoZWV0Owotc3RhdGljIFN0eWxlU2hlZXRD
b250ZW50cyogcGx1Z0luc1N0eWxlU2hlZXQ7Ci0KIFJlbmRlclN0eWxlKiBTdHlsZVJlc29sdmVy
OjpzX3N0eWxlTm90WWV0QXZhaWxhYmxlOwogCi1zdGF0aWMgdm9pZCBsb2FkRnVsbERlZmF1bHRT
dHlsZSgpOwotc3RhdGljIHZvaWQgbG9hZFNpbXBsZURlZmF1bHRTdHlsZSgpOwotCi0vLyBGSVhN
RTogSXQgd291bGQgYmUgbmljZSB0byB1c2Ugc29tZSBtZWNoYW5pc20gdGhhdCBndWFyYW50ZWVz
IHRoaXMgaXMgaW4gc3luYyB3aXRoIHRoZSByZWFsIFVBIHN0eWxlc2hlZXQuCi1zdGF0aWMgY29u
c3QgY2hhciogc2ltcGxlVXNlckFnZW50U3R5bGVTaGVldCA9ICJodG1sLGJvZHksZGl2e2Rpc3Bs
YXk6YmxvY2t9aGVhZHtkaXNwbGF5Om5vbmV9Ym9keXttYXJnaW46OHB4fWRpdjpmb2N1cyxzcGFu
OmZvY3Vze291dGxpbmU6YXV0byA1cHggLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yfWE6LXdlYmtp
dC1hbnktbGlua3tjb2xvcjotd2Via2l0LWxpbms7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1h
Oi13ZWJraXQtYW55LWxpbms6YWN0aXZle2NvbG9yOi13ZWJraXQtYWN0aXZlbGlua30iOwotCi1z
dGF0aWMgaW5saW5lIGJvb2wgZWxlbWVudENhblVzZVNpbXBsZURlZmF1bHRTdHlsZShFbGVtZW50
KiBlKQotewotICAgIHJldHVybiBlLT5oYXNUYWdOYW1lKGh0bWxUYWcpIHx8IGUtPmhhc1RhZ05h
bWUoaGVhZFRhZykgfHwgZS0+aGFzVGFnTmFtZShib2R5VGFnKSB8fCBlLT5oYXNUYWdOYW1lKGRp
dlRhZykgfHwgZS0+aGFzVGFnTmFtZShzcGFuVGFnKSB8fCBlLT5oYXNUYWdOYW1lKGJyVGFnKSB8
fCBlLT5oYXNUYWdOYW1lKGFUYWcpOwotfQotCi1zdGF0aWMgY29uc3QgTWVkaWFRdWVyeUV2YWx1
YXRvciYgc2NyZWVuRXZhbCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBNZWRp
YVF1ZXJ5RXZhbHVhdG9yLCBzdGF0aWNTY3JlZW5FdmFsLCAoInNjcmVlbiIpKTsKLSAgICByZXR1
cm4gc3RhdGljU2NyZWVuRXZhbDsKLX0KLQotc3RhdGljIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0
b3ImIHByaW50RXZhbCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBNZWRpYVF1
ZXJ5RXZhbHVhdG9yLCBzdGF0aWNQcmludEV2YWwsICgicHJpbnQiKSk7Ci0gICAgcmV0dXJuIHN0
YXRpY1ByaW50RXZhbDsKLX0KLQogc3RhdGljIFN0eWxlUHJvcGVydHlTZXQqIGxlZnRUb1JpZ2h0
RGVjbGFyYXRpb24oKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPFN0eWxlUHJv
cGVydHlTZXQ+LCBsZWZ0VG9SaWdodERlY2wsIChTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKSkp
OwpAQCAtMjk5LDEyICsyNjIsNyBAQCBTdHlsZVJlc29sdmVyOjpTdHlsZVJlc29sdmVyKERvY3Vt
ZW50KiBkb2N1bWVudCwgYm9vbCBtYXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpCiB7CiAgICAgRWxl
bWVudCogcm9vdCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsKIAotICAgIGlmICghZGVm
YXVsdFN0eWxlKSB7Ci0gICAgICAgIGlmICghcm9vdCB8fCBlbGVtZW50Q2FuVXNlU2ltcGxlRGVm
YXVsdFN0eWxlKHJvb3QpKQotICAgICAgICAgICAgbG9hZFNpbXBsZURlZmF1bHRTdHlsZSgpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBsb2FkRnVsbERlZmF1bHRTdHlsZSgpOwotICAgIH0K
KyAgICBDU1NEZWZhdWx0U3R5bGVTaGVldHM6OmluaXREZWZhdWx0U3R5bGUocm9vdCk7CiAKICAg
ICAvLyBjb25zdHJ1Y3QgZG9jdW1lbnQgcm9vdCBlbGVtZW50IGRlZmF1bHQgc3R5bGUuIHRoaXMg
aXMgbmVlZGVkCiAgICAgLy8gdG8gZXZhbHVhdGUgbWVkaWEgcXVlcmllcyB0aGF0IGNvbnRhaW4g
cmVsYXRpdmUgY29uc3RyYWludHMsIGxpa2UgInNjcmVlbiBhbmQgKG1heC13aWR0aDogMTBlbSki
CkBAIC00ODYsMTIzICs0NDQsNiBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OnN3ZWVwTWF0Y2hlZFBy
b3BlcnRpZXNDYWNoZShUaW1lcjxTdHlsZVJlc29sdmVyPiopCiAgICAgbV9tYXRjaGVkUHJvcGVy
dGllc0NhY2hlQWRkaXRpb25zU2luY2VMYXN0U3dlZXAgPSAwOwogfQogCi1zdGF0aWMgU3R5bGVT
aGVldENvbnRlbnRzKiBwYXJzZVVBU2hlZXQoY29uc3QgU3RyaW5nJiBzdHIpCi17Ci0gICAgU3R5
bGVTaGVldENvbnRlbnRzKiBzaGVldCA9IFN0eWxlU2hlZXRDb250ZW50czo6Y3JlYXRlKCkubGVh
a1JlZigpOyAvLyBsZWFrIHRoZSBzaGVldCBvbiBwdXJwb3NlCi0gICAgc2hlZXQtPnBhcnNlU3Ry
aW5nKHN0cik7Ci0gICAgcmV0dXJuIHNoZWV0OwotfQotCi1zdGF0aWMgU3R5bGVTaGVldENvbnRl
bnRzKiBwYXJzZVVBU2hlZXQoY29uc3QgY2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgc2l6ZSkK
LXsKLSAgICByZXR1cm4gcGFyc2VVQVNoZWV0KFN0cmluZyhjaGFyYWN0ZXJzLCBzaXplKSk7Ci19
Ci0KLXN0YXRpYyB2b2lkIGxvYWRGdWxsRGVmYXVsdFN0eWxlKCkKLXsKLSAgICBpZiAoc2ltcGxl
RGVmYXVsdFN0eWxlU2hlZXQpIHsKLSAgICAgICAgQVNTRVJUKGRlZmF1bHRTdHlsZSk7Ci0gICAg
ICAgIEFTU0VSVChkZWZhdWx0UHJpbnRTdHlsZSA9PSBkZWZhdWx0U3R5bGUpOwotICAgICAgICBk
ZWxldGUgZGVmYXVsdFN0eWxlOwotICAgICAgICBzaW1wbGVEZWZhdWx0U3R5bGVTaGVldC0+ZGVy
ZWYoKTsKLSAgICAgICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigp
OwotICAgICAgICBkZWZhdWx0UHJpbnRTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgpLmxlYWtQdHIo
KTsKLSAgICAgICAgc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQgPSAwOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIEFTU0VSVCghZGVmYXVsdFN0eWxlKTsKLSAgICAgICAgZGVmYXVsdFN0eWxlID0gUnVs
ZVNldDo6Y3JlYXRlKCkubGVha1B0cigpOwotICAgICAgICBkZWZhdWx0UHJpbnRTdHlsZSA9IFJ1
bGVTZXQ6OmNyZWF0ZSgpLmxlYWtQdHIoKTsKLSAgICAgICAgZGVmYXVsdFF1aXJrc1N0eWxlID0g
UnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigpOwotICAgIH0KLQotICAgIC8vIFN0cmljdC1tb2Rl
IHJ1bGVzLgotICAgIFN0cmluZyBkZWZhdWx0UnVsZXMgPSBTdHJpbmcoaHRtbFVzZXJBZ2VudFN0
eWxlU2hlZXQsIHNpemVvZihodG1sVXNlckFnZW50U3R5bGVTaGVldCkpICsgUmVuZGVyVGhlbWU6
OmRlZmF1bHRUaGVtZSgpLT5leHRyYURlZmF1bHRTdHlsZVNoZWV0KCk7Ci0gICAgZGVmYXVsdFN0
eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQoZGVmYXVsdFJ1bGVzKTsKLSAgICBkZWZhdWx0U3R5bGUt
PmFkZFJ1bGVzRnJvbVNoZWV0KGRlZmF1bHRTdHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkpOwotICAg
IGRlZmF1bHRQcmludFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChkZWZhdWx0U3R5bGVTaGVldCwg
cHJpbnRFdmFsKCkpOwotCi0gICAgLy8gUXVpcmtzLW1vZGUgcnVsZXMuCi0gICAgU3RyaW5nIHF1
aXJrc1J1bGVzID0gU3RyaW5nKHF1aXJrc1VzZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZihxdWly
a3NVc2VyQWdlbnRTdHlsZVNoZWV0KSkgKyBSZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPmV4
dHJhUXVpcmtzU3R5bGVTaGVldCgpOwotICAgIHF1aXJrc1N0eWxlU2hlZXQgPSBwYXJzZVVBU2hl
ZXQocXVpcmtzUnVsZXMpOwotICAgIGRlZmF1bHRRdWlya3NTdHlsZS0+YWRkUnVsZXNGcm9tU2hl
ZXQocXVpcmtzU3R5bGVTaGVldCwgc2NyZWVuRXZhbCgpKTsKLX0KLQotc3RhdGljIHZvaWQgbG9h
ZFNpbXBsZURlZmF1bHRTdHlsZSgpCi17Ci0gICAgQVNTRVJUKCFkZWZhdWx0U3R5bGUpOwotICAg
IEFTU0VSVCghc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQpOwotCi0gICAgZGVmYXVsdFN0eWxlID0g
UnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigpOwotICAgIC8vIFRoZXJlIGFyZSBubyBtZWRpYS1z
cGVjaWZpYyBydWxlcyBpbiB0aGUgc2ltcGxlIGRlZmF1bHQgc3R5bGUuCi0gICAgZGVmYXVsdFBy
aW50U3R5bGUgPSBkZWZhdWx0U3R5bGU7Ci0gICAgZGVmYXVsdFF1aXJrc1N0eWxlID0gUnVsZVNl
dDo6Y3JlYXRlKCkubGVha1B0cigpOwotCi0gICAgc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQgPSBw
YXJzZVVBU2hlZXQoc2ltcGxlVXNlckFnZW50U3R5bGVTaGVldCwgc3RybGVuKHNpbXBsZVVzZXJB
Z2VudFN0eWxlU2hlZXQpKTsKLSAgICBkZWZhdWx0U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHNp
bXBsZURlZmF1bHRTdHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkpOwotCi0gICAgLy8gTm8gbmVlZCB0
byBpbml0aWFsaXplIHF1aXJrcyBzaGVldCB5ZXQgYXMgdGhlcmUgYXJlIG5vIHF1aXJrIHJ1bGVz
IGZvciBlbGVtZW50cyBhbGxvd2VkIGluIHNpbXBsZSBkZWZhdWx0IHN0eWxlLgotfQotCi1zdGF0
aWMgUnVsZVNldCogdmlld1NvdXJjZVN0eWxlKCkKLXsKLSAgICBpZiAoIWRlZmF1bHRWaWV3U291
cmNlU3R5bGUpIHsKLSAgICAgICAgZGVmYXVsdFZpZXdTb3VyY2VTdHlsZSA9IFJ1bGVTZXQ6OmNy
ZWF0ZSgpLmxlYWtQdHIoKTsKLSAgICAgICAgZGVmYXVsdFZpZXdTb3VyY2VTdHlsZS0+YWRkUnVs
ZXNGcm9tU2hlZXQocGFyc2VVQVNoZWV0KHNvdXJjZVVzZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVv
Zihzb3VyY2VVc2VyQWdlbnRTdHlsZVNoZWV0KSksIHNjcmVlbkV2YWwoKSk7Ci0gICAgfQotICAg
IHJldHVybiBkZWZhdWx0Vmlld1NvdXJjZVN0eWxlOwotfQotCi1zdGF0aWMgdm9pZCBlbnN1cmVE
ZWZhdWx0U3R5bGVTaGVldHNGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCi17Ci0gICAgaWYg
KHNpbXBsZURlZmF1bHRTdHlsZVNoZWV0ICYmICFlbGVtZW50Q2FuVXNlU2ltcGxlRGVmYXVsdFN0
eWxlKGVsZW1lbnQpKQotICAgICAgICBsb2FkRnVsbERlZmF1bHRTdHlsZSgpOwotCi0jaWYgRU5B
QkxFKFNWRykKLSAgICBpZiAoZWxlbWVudC0+aXNTVkdFbGVtZW50KCkgJiYgIXN2Z1N0eWxlU2hl
ZXQpIHsKLSAgICAgICAgLy8gU1ZHIHJ1bGVzLgotICAgICAgICBzdmdTdHlsZVNoZWV0ID0gcGFy
c2VVQVNoZWV0KHN2Z1VzZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZihzdmdVc2VyQWdlbnRTdHls
ZVNoZWV0KSk7Ci0gICAgICAgIGRlZmF1bHRTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQoc3ZnU3R5
bGVTaGVldCwgc2NyZWVuRXZhbCgpKTsKLSAgICAgICAgZGVmYXVsdFByaW50U3R5bGUtPmFkZFJ1
bGVzRnJvbVNoZWV0KHN2Z1N0eWxlU2hlZXQsIHByaW50RXZhbCgpKTsKLSAgICB9Ci0jZW5kaWYK
LQotI2lmIEVOQUJMRShNQVRITUwpCi0gICAgaWYgKGVsZW1lbnQtPmlzTWF0aE1MRWxlbWVudCgp
ICYmICFtYXRoTUxTdHlsZVNoZWV0KSB7Ci0gICAgICAgIC8vIE1hdGhNTCBydWxlcy4KLSAgICAg
ICAgbWF0aE1MU3R5bGVTaGVldCA9IHBhcnNlVUFTaGVldChtYXRobWxVc2VyQWdlbnRTdHlsZVNo
ZWV0LCBzaXplb2YobWF0aG1sVXNlckFnZW50U3R5bGVTaGVldCkpOwotICAgICAgICBkZWZhdWx0
U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KG1hdGhNTFN0eWxlU2hlZXQsIHNjcmVlbkV2YWwoKSk7
Ci0gICAgICAgIGRlZmF1bHRQcmludFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChtYXRoTUxTdHls
ZVNoZWV0LCBwcmludEV2YWwoKSk7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoVklERU8p
Ci0gICAgaWYgKCFtZWRpYUNvbnRyb2xzU3R5bGVTaGVldCAmJiAoZWxlbWVudC0+aGFzVGFnTmFt
ZSh2aWRlb1RhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShhdWRpb1RhZykpKSB7Ci0gICAgICAg
IFN0cmluZyBtZWRpYVJ1bGVzID0gU3RyaW5nKG1lZGlhQ29udHJvbHNVc2VyQWdlbnRTdHlsZVNo
ZWV0LCBzaXplb2YobWVkaWFDb250cm9sc1VzZXJBZ2VudFN0eWxlU2hlZXQpKSArIFJlbmRlclRo
ZW1lOjp0aGVtZUZvclBhZ2UoZWxlbWVudC0+ZG9jdW1lbnQoKS0+cGFnZSgpKS0+ZXh0cmFNZWRp
YUNvbnRyb2xzU3R5bGVTaGVldCgpOwotICAgICAgICBtZWRpYUNvbnRyb2xzU3R5bGVTaGVldCA9
IHBhcnNlVUFTaGVldChtZWRpYVJ1bGVzKTsKLSAgICAgICAgZGVmYXVsdFN0eWxlLT5hZGRSdWxl
c0Zyb21TaGVldChtZWRpYUNvbnRyb2xzU3R5bGVTaGVldCwgc2NyZWVuRXZhbCgpKTsKLSAgICAg
ICAgZGVmYXVsdFByaW50U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KG1lZGlhQ29udHJvbHNTdHls
ZVNoZWV0LCBwcmludEV2YWwoKSk7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCi0gICAgaWYgKCFmdWxsc2NyZWVuU3R5bGVTaGVldCAmJiBlbGVtZW50LT5kb2N1
bWVudCgpLT53ZWJraXRJc0Z1bGxTY3JlZW4oKSkgewotICAgICAgICBTdHJpbmcgZnVsbHNjcmVl
blJ1bGVzID0gU3RyaW5nKGZ1bGxzY3JlZW5Vc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2YoZnVs
bHNjcmVlblVzZXJBZ2VudFN0eWxlU2hlZXQpKSArIFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUo
KS0+ZXh0cmFGdWxsU2NyZWVuU3R5bGVTaGVldCgpOwotICAgICAgICBmdWxsc2NyZWVuU3R5bGVT
aGVldCA9IHBhcnNlVUFTaGVldChmdWxsc2NyZWVuUnVsZXMpOwotICAgICAgICBkZWZhdWx0U3R5
bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KGZ1bGxzY3JlZW5TdHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkp
OwotICAgICAgICBkZWZhdWx0UXVpcmtzU3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KGZ1bGxzY3Jl
ZW5TdHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkpOwotICAgIH0KLSNlbmRpZgotCi0gICAgaWYgKCFw
bHVnSW5zU3R5bGVTaGVldCAmJiAoZWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVs
ZW1lbnQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpKSkgewotICAgICAgICBTdHJpbmcgcGx1Z0luc1J1
bGVzID0gU3RyaW5nKHBsdWdJbnNVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2YocGx1Z0luc1Vz
ZXJBZ2VudFN0eWxlU2hlZXQpKSArIFJlbmRlclRoZW1lOjp0aGVtZUZvclBhZ2UoZWxlbWVudC0+
ZG9jdW1lbnQoKS0+cGFnZSgpKS0+ZXh0cmFQbHVnSW5zU3R5bGVTaGVldCgpICsgZWxlbWVudC0+
ZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnBsdWdJbkV4dHJhU3R5bGVT
aGVldCgpOwotICAgICAgICBwbHVnSW5zU3R5bGVTaGVldCA9IHBhcnNlVUFTaGVldChwbHVnSW5z
UnVsZXMpOwotICAgICAgICBkZWZhdWx0U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHBsdWdJbnNT
dHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkpOwotICAgIH0KLQotICAgIEFTU0VSVChkZWZhdWx0U3R5
bGUtPmZlYXR1cmVzKCkuaWRzSW5SdWxlcy5pc0VtcHR5KCkpOwotICAgIEFTU0VSVChtYXRoTUxT
dHlsZVNoZWV0IHx8IGRlZmF1bHRTdHlsZS0+ZmVhdHVyZXMoKS5zaWJsaW5nUnVsZXMuaXNFbXB0
eSgpKTsKLX0KLQogdm9pZCBTdHlsZVJlc29sdmVyOjphZGRNYXRjaGVkUHJvcGVydGllcyhNYXRj
aFJlc3VsdCYgbWF0Y2hSZXN1bHQsIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnRpZXMs
IFN0eWxlUnVsZSogcnVsZSwgdW5zaWduZWQgbGlua01hdGNoVHlwZSwgUHJvcGVydHlXaGl0ZWxp
c3RUeXBlIHByb3BlcnR5V2hpdGVsaXN0VHlwZSkKIHsKICAgICBtYXRjaFJlc3VsdC5tYXRjaGVk
UHJvcGVydGllcy5ncm93KG1hdGNoUmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzLnNpemUoKSArIDEp
OwpAQCAtMTM1NCwxOSArMTE5NSwxOSBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6Om1hdGNoVUFSdWxl
cyhNYXRjaFJlc3VsdCYgcmVzdWx0KQogICAgIE1hdGNoaW5nVUFSdWxlc1Njb3BlIHNjb3BlOwog
CiAgICAgLy8gRmlyc3Qgd2UgbWF0Y2ggcnVsZXMgZnJvbSB0aGUgdXNlciBhZ2VudCBzaGVldC4K
LSAgICBpZiAoc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQpCisgICAgaWYgKENTU0RlZmF1bHRTdHls
ZVNoZWV0czo6c2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQpCiAgICAgICAgIHJlc3VsdC5pc0NhY2hl
YWJsZSA9IGZhbHNlOwogICAgIFJ1bGVTZXQqIHVzZXJBZ2VudFN0eWxlU2hlZXQgPSBtX21lZGl1
bS0+bWVkaWFUeXBlTWF0Y2hTcGVjaWZpYygicHJpbnQiKQotICAgICAgICA/IGRlZmF1bHRQcmlu
dFN0eWxlIDogZGVmYXVsdFN0eWxlOworICAgICAgICA/IENTU0RlZmF1bHRTdHlsZVNoZWV0czo6
ZGVmYXVsdFByaW50U3R5bGUgOiBDU1NEZWZhdWx0U3R5bGVTaGVldHM6OmRlZmF1bHRTdHlsZTsK
ICAgICBtYXRjaFVBUnVsZXMocmVzdWx0LCB1c2VyQWdlbnRTdHlsZVNoZWV0KTsKIAogICAgIC8v
IEluIHF1aXJrcyBtb2RlLCB3ZSBtYXRjaCBydWxlcyBmcm9tIHRoZSBxdWlya3MgdXNlciBhZ2Vu
dCBzaGVldC4KICAgICBpZiAoIW1fc2VsZWN0b3JDaGVja2VyLnN0cmljdFBhcnNpbmcoKSkKLSAg
ICAgICAgbWF0Y2hVQVJ1bGVzKHJlc3VsdCwgZGVmYXVsdFF1aXJrc1N0eWxlKTsKKyAgICAgICAg
bWF0Y2hVQVJ1bGVzKHJlc3VsdCwgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpkZWZhdWx0UXVpcmtz
U3R5bGUpOwogCiAgICAgLy8gSWYgZG9jdW1lbnQgdXNlcyB2aWV3IHNvdXJjZSBzdHlsZXMgKGlu
IHZpZXcgc291cmNlIG1vZGUgb3IgaW4geG1sIHZpZXdlciBtb2RlKSwgdGhlbiB3ZSBtYXRjaCBy
dWxlcyBmcm9tIHRoZSB2aWV3IHNvdXJjZSBzdHlsZSBzaGVldC4KICAgICBpZiAoZG9jdW1lbnQo
KS0+aXNWaWV3U291cmNlKCkpCi0gICAgICAgIG1hdGNoVUFSdWxlcyhyZXN1bHQsIHZpZXdTb3Vy
Y2VTdHlsZSgpKTsKKyAgICAgICAgbWF0Y2hVQVJ1bGVzKHJlc3VsdCwgQ1NTRGVmYXVsdFN0eWxl
U2hlZXRzOjp2aWV3U291cmNlU3R5bGUoKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldFN0eWxlc0Zv
clBhZ2luYXRpb25Nb2RlKFBhZ2luYXRpb246Ok1vZGUgcGFnaW5hdGlvbk1vZGUsIFJlbmRlclN0
eWxlKiBzdHlsZSkKQEAgLTE2MDQsNyArMTQ0NSw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IFN0eWxlUmVzb2x2ZXI6OnN0eWxlRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJT
CiAgICAgICAgIG1fc3R5bGUtPnNldEluc2lkZUxpbmsobGlua1N0YXRlKTsKICAgICB9CiAKLSAg
ICBlbnN1cmVEZWZhdWx0U3R5bGVTaGVldHNGb3JFbGVtZW50KGVsZW1lbnQpOworICAgIENTU0Rl
ZmF1bHRTdHlsZVNoZWV0czo6ZW5zdXJlRGVmYXVsdFN0eWxlU2hlZXRzRm9yRWxlbWVudChlbGVt
ZW50KTsKIAogICAgIE1hdGNoUmVzdWx0IG1hdGNoUmVzdWx0OwogICAgIGlmIChtYXRjaGluZ0Jl
aGF2aW9yID09IE1hdGNoT25seVVzZXJBZ2VudFJ1bGVzKQpAQCAtMTgwMCw3ICsxNjQxLDcgQEAg
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gU3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKGludCBw
YWdlSW5kZXgpCiAgICAgY29uc3QgU3RyaW5nIHBhZ2UgPSBwYWdlTmFtZShwYWdlSW5kZXgpOwog
ICAgIAogICAgIE1hdGNoUmVzdWx0IHJlc3VsdDsKLSAgICBtYXRjaFBhZ2VSdWxlcyhyZXN1bHQs
IGRlZmF1bHRQcmludFN0eWxlLCBpc0xlZnQsIGlzRmlyc3QsIHBhZ2UpOworICAgIG1hdGNoUGFn
ZVJ1bGVzKHJlc3VsdCwgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpkZWZhdWx0UHJpbnRTdHlsZSwg
aXNMZWZ0LCBpc0ZpcnN0LCBwYWdlKTsKICAgICBtYXRjaFBhZ2VSdWxlcyhyZXN1bHQsIG1fdXNl
clN0eWxlLmdldCgpLCBpc0xlZnQsIGlzRmlyc3QsIHBhZ2UpOwogICAgIC8vIE9ubHkgY29uc2lk
ZXIgdGhlIGdsb2JhbCBhdXRob3IgUnVsZVNldCBmb3IgQHBhZ2UgcnVsZXMsIGFzIHBlciB0aGUg
SFRNTDUgc3BlYy4KICAgICBtYXRjaFBhZ2VSdWxlcyhyZXN1bHQsIG1fYXV0aG9yU3R5bGUuZ2V0
KCksIGlzTGVmdCwgaXNGaXJzdCwgcGFnZSk7CkBAIC0yNzQzLDEzICsyNTg0LDEzIEBAIHZvaWQg
SW5zcGVjdG9yQ1NTT01XcmFwcGVyczo6Y29sbGVjdEZyb21Eb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uKERvY3VtZW50U3R5CiBDU1NTdHlsZVJ1bGUqIEluc3BlY3RvckNTU09NV3JhcHBlcnM6
OmdldFdyYXBwZXJGb3JSdWxlSW5TaGVldHMoU3R5bGVSdWxlKiBydWxlLCBEb2N1bWVudFN0eWxl
U2hlZXRDb2xsZWN0aW9uKiBzdHlsZVNoZWV0Q29sbGVjdGlvbikKIHsKICAgICBpZiAobV9zdHls
ZVJ1bGVUb0NTU09NV3JhcHBlck1hcC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29sbGVjdEZyb21T
dHlsZVNoZWV0Q29udGVudHMobV9zdHlsZVNoZWV0Q1NTT01XcmFwcGVyU2V0LCBzaW1wbGVEZWZh
dWx0U3R5bGVTaGVldCk7Ci0gICAgICAgIGNvbGxlY3RGcm9tU3R5bGVTaGVldENvbnRlbnRzKG1f
c3R5bGVTaGVldENTU09NV3JhcHBlclNldCwgZGVmYXVsdFN0eWxlU2hlZXQpOwotICAgICAgICBj
b2xsZWN0RnJvbVN0eWxlU2hlZXRDb250ZW50cyhtX3N0eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQs
IHF1aXJrc1N0eWxlU2hlZXQpOwotICAgICAgICBjb2xsZWN0RnJvbVN0eWxlU2hlZXRDb250ZW50
cyhtX3N0eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQsIHN2Z1N0eWxlU2hlZXQpOwotICAgICAgICBj
b2xsZWN0RnJvbVN0eWxlU2hlZXRDb250ZW50cyhtX3N0eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQs
IG1hdGhNTFN0eWxlU2hlZXQpOwotICAgICAgICBjb2xsZWN0RnJvbVN0eWxlU2hlZXRDb250ZW50
cyhtX3N0eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQsIG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KTsK
LSAgICAgICAgY29sbGVjdEZyb21TdHlsZVNoZWV0Q29udGVudHMobV9zdHlsZVNoZWV0Q1NTT01X
cmFwcGVyU2V0LCBmdWxsc2NyZWVuU3R5bGVTaGVldCk7CisgICAgICAgIGNvbGxlY3RGcm9tU3R5
bGVTaGVldENvbnRlbnRzKG1fc3R5bGVTaGVldENTU09NV3JhcHBlclNldCwgQ1NTRGVmYXVsdFN0
eWxlU2hlZXRzOjpzaW1wbGVEZWZhdWx0U3R5bGVTaGVldCk7CisgICAgICAgIGNvbGxlY3RGcm9t
U3R5bGVTaGVldENvbnRlbnRzKG1fc3R5bGVTaGVldENTU09NV3JhcHBlclNldCwgQ1NTRGVmYXVs
dFN0eWxlU2hlZXRzOjpkZWZhdWx0U3R5bGVTaGVldCk7CisgICAgICAgIGNvbGxlY3RGcm9tU3R5
bGVTaGVldENvbnRlbnRzKG1fc3R5bGVTaGVldENTU09NV3JhcHBlclNldCwgQ1NTRGVmYXVsdFN0
eWxlU2hlZXRzOjpxdWlya3NTdHlsZVNoZWV0KTsKKyAgICAgICAgY29sbGVjdEZyb21TdHlsZVNo
ZWV0Q29udGVudHMobV9zdHlsZVNoZWV0Q1NTT01XcmFwcGVyU2V0LCBDU1NEZWZhdWx0U3R5bGVT
aGVldHM6OnN2Z1N0eWxlU2hlZXQpOworICAgICAgICBjb2xsZWN0RnJvbVN0eWxlU2hlZXRDb250
ZW50cyhtX3N0eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQsIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6
bWF0aE1MU3R5bGVTaGVldCk7CisgICAgICAgIGNvbGxlY3RGcm9tU3R5bGVTaGVldENvbnRlbnRz
KG1fc3R5bGVTaGVldENTU09NV3JhcHBlclNldCwgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjptZWRp
YUNvbnRyb2xzU3R5bGVTaGVldCk7CisgICAgICAgIGNvbGxlY3RGcm9tU3R5bGVTaGVldENvbnRl
bnRzKG1fc3R5bGVTaGVldENTU09NV3JhcHBlclNldCwgQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjpm
dWxsc2NyZWVuU3R5bGVTaGVldCk7CiAKICAgICAgICAgY29sbGVjdEZyb21Eb2N1bWVudFN0eWxl
U2hlZXRDb2xsZWN0aW9uKHN0eWxlU2hlZXRDb2xsZWN0aW9uKTsKICAgICB9CkBAIC01NDE4LDEw
ICs1MjU5LDEwIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6Y29sbGVjdEZlYXR1cmVzKCkKICAgICAv
LyBDb2xsZWN0IGFsbCBpZHMgYW5kIHJ1bGVzIHVzaW5nIHNpYmxpbmcgc2VsZWN0b3JzICg6Zmly
c3QtY2hpbGQgYW5kIHNpbWlsYXIpCiAgICAgLy8gaW4gdGhlIGN1cnJlbnQgc2V0IG9mIHN0eWxl
c2hlZXRzLiBTdHlsZSBzaGFyaW5nIGNvZGUgdXNlcyB0aGlzIGluZm9ybWF0aW9uIHRvIHJlamVj
dAogICAgIC8vIHNoYXJpbmcgY2FuZGlkYXRlcy4KLSAgICBtX2ZlYXR1cmVzLmFkZChkZWZhdWx0
U3R5bGUtPmZlYXR1cmVzKCkpOworICAgIG1fZmVhdHVyZXMuYWRkKENTU0RlZmF1bHRTdHlsZVNo
ZWV0czo6ZGVmYXVsdFN0eWxlLT5mZWF0dXJlcygpKTsKICAgICBtX2ZlYXR1cmVzLmFkZChtX2F1
dGhvclN0eWxlLT5mZWF0dXJlcygpKTsKICAgICBpZiAoZG9jdW1lbnQoKS0+aXNWaWV3U291cmNl
KCkpCi0gICAgICAgIG1fZmVhdHVyZXMuYWRkKHZpZXdTb3VyY2VTdHlsZSgpLT5mZWF0dXJlcygp
KTsKKyAgICAgICAgbV9mZWF0dXJlcy5hZGQoQ1NTRGVmYXVsdFN0eWxlU2hlZXRzOjp2aWV3U291
cmNlU3R5bGUoKS0+ZmVhdHVyZXMoKSk7CiAKICAgICBpZiAobV9zY29wZVJlc29sdmVyKQogICAg
ICAgICBtX3Njb3BlUmVzb2x2ZXItPmNvbGxlY3RGZWF0dXJlc1RvKG1fZmVhdHVyZXMpOwpAQCAt
NTQ5MiwxMCArNTMzMywxMCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRN
ZW1iZXIobV9zY29wZVJlc29sdmVyLCAic2NvcGVSZXNvbHZlciIpOwogCiAgICAgLy8gRklYTUU6
IG1vdmUgdGhpcyB0byBhIHBsYWNlIHdoZXJlIGl0IHdvdWxkIGJlIGNhbGxlZCBvbmx5IG9uY2U/
Ci0gICAgaW5mby5hZGRNZW1iZXIoZGVmYXVsdFN0eWxlLCAiZGVmYXVsdFN0eWxlIik7Ci0gICAg
aW5mby5hZGRNZW1iZXIoZGVmYXVsdFF1aXJrc1N0eWxlLCAiZGVmYXVsdFF1aXJrc1N0eWxlIik7
Ci0gICAgaW5mby5hZGRNZW1iZXIoZGVmYXVsdFByaW50U3R5bGUsICJkZWZhdWx0UHJpbnRTdHls
ZSIpOwotICAgIGluZm8uYWRkTWVtYmVyKGRlZmF1bHRWaWV3U291cmNlU3R5bGUsICJkZWZhdWx0
Vmlld1NvdXJjZVN0eWxlIik7CisgICAgaW5mby5hZGRNZW1iZXIoQ1NTRGVmYXVsdFN0eWxlU2hl
ZXRzOjpkZWZhdWx0U3R5bGUsICJkZWZhdWx0U3R5bGUiKTsKKyAgICBpbmZvLmFkZE1lbWJlcihD
U1NEZWZhdWx0U3R5bGVTaGVldHM6OmRlZmF1bHRRdWlya3NTdHlsZSwgImRlZmF1bHRRdWlya3NT
dHlsZSIpOworICAgIGluZm8uYWRkTWVtYmVyKENTU0RlZmF1bHRTdHlsZVNoZWV0czo6ZGVmYXVs
dFByaW50U3R5bGUsImRlZmF1bHRQcmludFN0eWxlIik7CisgICAgaW5mby5hZGRNZW1iZXIoQ1NT
RGVmYXVsdFN0eWxlU2hlZXRzOjpkZWZhdWx0Vmlld1NvdXJjZVN0eWxlLCAiZGVmYXVsdFZpZXdT
b3VyY2VTdHlsZSIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>