<?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>127605</bug_id>
          
          <creation_ts>2014-01-24 20:25:16 -0800</creation_ts>
          <short_desc>Web Inspector: Move InspectorRuntimeAgent into JavaScriptCore</short_desc>
          <delta_ts>2014-01-25 09:44:20 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
    
    <cc>rakuco</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>971875</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-24 20:25:16 -0800</bug_when>
    <thetext>All requirements (InjectedScripts and ScriptDebugServer) are met. We can now move down InspectorRuntimeAgent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971876</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-24 20:25:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/15908355&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971879</commentid>
    <comment_count>2</comment_count>
      <attachid>222189</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-24 20:31:27 -0800</bug_when>
    <thetext>Created attachment 222189
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971882</commentid>
    <comment_count>3</comment_count>
      <attachid>222190</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-24 20:39:56 -0800</bug_when>
    <thetext>Created attachment 222190
[PATCH] For Bots 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971883</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-24 20:42:54 -0800</bug_when>
    <thetext>Attachment 222190 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/agents/JSGlobalObjectRuntimeAgent.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/inspector/WorkerRuntimeAgent.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971884</commentid>
    <comment_count>5</comment_count>
      <attachid>222189</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-24 21:05:59 -0800</bug_when>
    <thetext>Comment on attachment 222189
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/inspector/agents/InspectorRuntimeAgent.cpp:2
&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.

2013, 2014?

&gt; Source/JavaScriptCore/inspector/agents/JSGlobalObjectRuntimeAgent.cpp:2
&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.

2014

&gt; Source/JavaScriptCore/inspector/agents/JSGlobalObjectRuntimeAgent.h:2
&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.

2014

&gt; Source/WebCore/inspector/PageRuntimeAgent.cpp:56
&gt; +PageRuntimeAgent::PageRuntimeAgent(InjectedScriptManager* injectedScriptManager, Page* page, InspectorPageAgent* pageAgent)

We might want to consider putting Inspector back in these subclass names. Page or Web?

&gt; Source/WebCore/inspector/PageRuntimeAgent.h:70
&gt; +    virtual JSC::VM* globalVM() override;

final too?

&gt; Source/WebCore/inspector/WorkerRuntimeAgent.h:59
&gt; +    virtual JSC::VM* globalVM() override;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971885</commentid>
    <comment_count>6</comment_count>
      <attachid>222189</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-01-24 21:06:54 -0800</bug_when>
    <thetext>Comment on attachment 222189
[PATCH] Proposed Fix

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

&gt; Source/WebCore/inspector/PageRuntimeAgent.h:56
&gt; +class PageRuntimeAgent final : public Inspector::InspectorRuntimeAgent {

Oh, does final on the class apply to all the override virtual functions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971893</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-24 22:09:24 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 222189 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=222189&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/PageRuntimeAgent.h:56
&gt; &gt; +class PageRuntimeAgent final : public Inspector::InspectorRuntimeAgent {
&gt; 
&gt; Oh, does final on the class apply to all the override virtual functions?

Yep!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971895</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-24 22:12:31 -0800</bug_when>
    <thetext>&gt; 
&gt; &gt; Source/JavaScriptCore/inspector/agents/JSGlobalObjectRuntimeAgent.cpp:2
&gt; &gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.
&gt; 
&gt; 2014

Hehe, good catch on these. I had written this in 2013 though, I didn&apos;t copy/paste error it =). I&apos;ll update them.


&gt; &gt; Source/WebCore/inspector/PageRuntimeAgent.cpp:56
&gt; &gt; +PageRuntimeAgent::PageRuntimeAgent(InjectedScriptManager* injectedScriptManager, Page* page, InspectorPageAgent* pageAgent)
&gt; 
&gt; We might want to consider putting Inspector back in these subclass names. Page or Web?

Names could get ridiculously long. Lets keep these JSGlobalObject/Web/Page/Worker. And if we need to change we can change all at once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971970</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-25 09:44:20 -0800</bug_when>
    <thetext>Landed &lt;http://trac.webkit.org/changeset/162767&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222189</attachid>
            <date>2014-01-24 20:31:27 -0800</date>
            <delta_ts>2014-01-24 21:06:54 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>runtime.patch</filename>
            <type>text/plain</type>
            <size>61657</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">Y29tbWl0IDZjOTAzMDhiNWQ2NDRlM2IyNTgwMTUyNmUyYzliNTAxZTQ3MjQ4M2UKQXV0aG9yOiBK
b3NlcGggUGVjb3Jhcm8gPHBlY29yYXJvQGFwcGxlLmNvbT4KRGF0ZTogICBGcmkgSmFuIDI0IDE4
OjA4OjAyIDIwMTQgLTA4MDAKCiAgICBQUk9HUkVTUzogUnVudGltZUFnZW50CgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFhM2QzNjUuLjFiNDM2N2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI0Miw2ICsyNDIsOCBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAogICAg
IGluc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKICAgICBpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckFnZW50LmNwcAorICAgIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFn
ZW50LmNwcAorICAgIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQu
Y3BwCiAKICAgICBpbnRlcnByZXRlci9BYnN0cmFjdFBDLmNwcAogICAgIGludGVycHJldGVyL0Nh
bGxGcmFtZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJlMzg3ZmQuLmZmYzZhNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTAxLTI0ICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogTW92ZSBJbnNwZWN0b3JSdW50aW1lQWdlbnQgaW50byBKYXZhU2NyaXB0Q29yZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NjA1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3Jp
cHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQg
bmV3IGZpbGVzIHRvIHRoZSBidWlsZC4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUnVudGltZUFnZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmguCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAuCisgICAgICAgIChJbnNwZWN0b3I6Oklu
c3BlY3RvclJ1bnRpbWVBZ2VudDo6SW5zcGVjdG9yUnVudGltZUFnZW50KToKKyAgICAgICAgKElu
c3BlY3Rvcjo6SW5zcGVjdG9yUnVudGltZUFnZW50OjpwYXJzZSk6CisgICAgICAgIChJbnNwZWN0
b3I6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUpOgorICAgICAgICAoSW5zcGVjdG9y
OjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmNhbGxGdW5jdGlvbk9uKToKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yUnVudGltZUFnZW50OjpnZXRQcm9wZXJ0aWVzKToKKyAgICAgICAgLSBN
b3ZlIHRoZSBhZ2VudCBpbnRvIEphdmFTY3JpcHRDb3JlLgorICAgICAgICAtIE1vZGVybml6ZSBh
bmQgY2xlYW51cC4KKyAgICAgICAgLSBNYWtlIGdsb2JhbFZNIGEgcHVyZSB2aXJ0dWFsIGZ1bmN0
aW9uIGZvciBzdWJjbGFzc2VzIHRvIGltcGxlbWVudC4KKworICAgICAgICAqIGluc3BlY3Rvci9h
Z2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaDogQWRkZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6SlNHbG9iYWxPYmpl
Y3RSdW50aW1lQWdlbnQpOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdFJ1bnRp
bWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKToKKyAgICAgICAgKEluc3BlY3Rv
cjo6SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ6Omds
b2JhbFZNKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ6
OmluamVjdGVkU2NyaXB0Rm9yRXZhbCk6CisgICAgICAgIFN0cmFpZ2h0Zm9yd2FyZCBKU0dsb2Jh
bE9iamVjdCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9i
amVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2Jh
bE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlcik6CisgICAgICAgIEFkZCBhIHJ1bnRpbWUgYWdlbnQgd2hlbiBpbnNwZWN0aW5nIGEgSlND
b250ZXh0IQorCiAyMDE0LTAxLTIzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5j
b20+CiAKICAgICAgICAgTW92ZSBKYXZhU2NyaXB0Q2FsbEZyYW1lIGFuZCBTY3JpcHREZWJ1Z1Nl
cnZlciBpbnRvIEphdmFTY3JpcHRDb3JlIGZvciBpbnNwZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYzQxNDNkNi4uNGQxNjM1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTY2NSw2ICs2NjUsMTAgQEAg
amF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAgXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIFwKKwlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1
bnRpbWVBZ2VudC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9K
U0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9BYnN0cmFjdFBDLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0Fic3RyYWN0UEMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhY2hlZENhbGwuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRl
eCA3ZjAyY2YwLi43MmRjYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2oKQEAgLTQ5MSw2ICs0OTEsOCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVj
dG9yXEphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5caW5zcGVjdG9yXFNjcmlwdERlYnVnU2VydmVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGluc3BlY3RvclxhZ2VudHNcSW5zcGVjdG9yQWdlbnQuY3BwIiAvPgorICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGFnZW50c1xJbnNwZWN0b3JSdW50aW1lQWdl
bnQuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGFnZW50c1xK
U0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxpbnRlcnByZXRlclxBYnN0cmFjdFBDLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGludGVycHJldGVyXENhbGxGcmFtZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxpbnRlcnByZXRlclxJbnRlcnByZXRlci5jcHAiIC8+CkBAIC0xMDY4LDYgKzEwNzAs
OCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXFNjcmlwdERlYnVnTGlz
dGVuZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxTY3JpcHRE
ZWJ1Z1NlcnZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGFn
ZW50c1xJbnNwZWN0b3JBZ2VudC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXGFnZW50c1xJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxhZ2VudHNcSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGludGVycHJldGVyXEFic3RyYWN0UEMu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGludGVycHJldGVyXENhY2hlZENhbGwu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGludGVycHJldGVyXENhbGxGcmFtZS5o
IiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJz
CmluZGV4IDJlYTlmMDUuLjZjNmMwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTMwMCw2ICszMDAsMTIgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxhZ2VudHNcSW5zcGVjdG9yQWdlbnQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcYWdlbnRzXEluc3BlY3RvclJ1bnRpbWVBZ2Vu
dC5jcHAiPgorICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGls
ZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxhZ2VudHNcSlNHbG9iYWxP
YmplY3RSdW50aW1lQWdlbnQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+
CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnRlcnByZXRl
clxBYnN0cmFjdFBDLmNwcCI+CiAgICAgICA8RmlsdGVyPmludGVycHJldGVyPC9GaWx0ZXI+CiAg
ICAgPC9DbENvbXBpbGU+CkBAIC0xNzk2LDYgKzE4MDIsMTIgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGluc3BlY3RvclxhZ2VudHNcSW5zcGVjdG9yQWdlbnQuaCI+CiAgICAgICA8Rmls
dGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXGFnZW50c1xJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCI+Cisg
ICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGFnZW50c1xKU0dsb2JhbE9iamVjdFJ1bnRp
bWVBZ2VudC5oIj4KKyAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CisgICAgPC9DbElu
Y2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnRlcnByZXRlclxBYnN0cmFjdFBD
LmgiPgogICAgICAgPEZpbHRlcj5pbnRlcnByZXRlcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxYzdkYmRkLi5mNTg3MzcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTEwLDYgKzkxMCwxMCBAQAogCQlBNTAzRkEy
MjE4OEVGRjY4MDAxMTBGMTQgLyogU2NyaXB0RGVidWdMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwM0ZBMjAxODhFRkY2ODAwMTEwRjE0
IC8qIFNjcmlwdERlYnVnTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBNTAzRkEyNTE4OEVGRkZEMDAxMTBGMTQgLyogU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTUwM0ZBMjMxODhFRkZGRDAwMTEwRjE0IC8qIFNjcmlwdERlYnVnU2VydmVyLmNwcCAqLzsg
fTsKIAkJQTUwM0ZBMjYxODhFRkZGRDAwMTEwRjE0IC8qIFNjcmlwdERlYnVnU2VydmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTAzRkEyNDE4OEVG
RkZEMDAxMTBGMTQgLyogU2NyaXB0RGVidWdTZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNTBFNEI2MTE4ODA5REQ1MDA2OEE0NkQgLyog
SW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1MEU0QjVEMTg4MDlERDUwMDY4QTQ2RCAvKiBJbnNwZWN0b3JSdW50
aW1lQWdlbnQuY3BwICovOyB9OworCQlBNTBFNEI2MjE4ODA5REQ1MDA2OEE0NkQgLyogSW5zcGVj
dG9yUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNTBFNEI1RTE4ODA5REQ1MDA2OEE0NkQgLyogSW5zcGVjdG9yUnVudGltZUFnZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTUw
RTRCNjMxODgwOURENTAwNjhBNDZEIC8qIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MEU0QjVGMTg4
MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAgKi87IH07CisJ
CUE1MEU0QjY0MTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwRTRCNjAx
ODgwOURENTAwNjhBNDZEIC8qIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmggKi87IH07CiAJ
CUE1MTAwN0MwMTg3Q0MzQzYwMEIzODg3OSAvKiBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRy
b2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTUxMDA3QkUxODdDQzNDNjAwQjM4ODc5IC8qIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJv
bGxlci5jcHAgKi87IH07CiAJCUE1MTAwN0MxMTg3Q0MzQzYwMEIzODg3OSAvKiBKU0dsb2JhbE9i
amVjdEluc3BlY3RvckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE1MTAwN0JGMTg3Q0MzQzYwMEIzODg3OSAvKiBKU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQTUxM0U1QjcxODVCOEJEMzAwN0U5NUFE
IC8qIEluamVjdGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE1MTNFNUI1MTg1QjhCRDMwMDdFOTVBRCAvKiBJbmplY3RlZFNjcmlwdC5j
cHAgKi87IH07CkBAIC0yMzA4LDYgKzIzMTIsMTAgQEAKIAkJQTUwM0ZBMjAxODhFRkY2ODAwMTEw
RjE0IC8qIFNjcmlwdERlYnVnTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NyaXB0RGVidWdMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNTAzRkEyMzE4OEVGRkZEMDAxMTBGMTQgLyogU2NyaXB0RGVidWdTZXJ2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTAzRkEyNDE4OEVGRkZEMDAxMTBGMTQgLyog
U2NyaXB0RGVidWdTZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Ny
aXB0RGVidWdTZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTUwRTRCNUQx
ODgwOURENTAwNjhBNDZEIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNTBFNEI1RTE4ODA5REQ1MDA2OEE0NkQgLyogSW5z
cGVjdG9yUnVudGltZUFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
c3BlY3RvclJ1bnRpbWVBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNTBF
NEI1RjE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNTBFNEI2MDE4ODA5REQ1
MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUxMDA3QkUxODdDQzNDNjAwQjM4ODc5IC8qIEpTR2xvYmFs
T2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNTEwMDdCRjE4N0NDM0M2MDBCMzg4NzkgLyogSlNHbG9i
YWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNTEzRTVCNTE4NUI4QkQzMDA3RTk1QUQgLyogSW5qZWN0ZWRTY3Jp
cHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRTY3Jp
cHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDM1OCw2ICs0MzY2LDEwIEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBNUNFRUUxMjE4N0YzQkFEMDBFNTVDOTkgLyogSW5zcGVj
dG9yQWdlbnQuY3BwICovLAogCQkJCUE1Q0VFRTEzMTg3RjNCQUQwMEU1NUM5OSAvKiBJbnNwZWN0
b3JBZ2VudC5oICovLAorCQkJCUE1MEU0QjVEMTg4MDlERDUwMDY4QTQ2RCAvKiBJbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwICovLAorCQkJCUE1MEU0QjVFMTg4MDlERDUwMDY4QTQ2RCAvKiBJbnNw
ZWN0b3JSdW50aW1lQWdlbnQuaCAqLywKKwkJCQlBNTBFNEI1RjE4ODA5REQ1MDA2OEE0NkQgLyog
SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwICovLAorCQkJCUE1MEU0QjYwMTg4MDlERDUw
MDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBhZ2VudHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNDUwNiw2ICs0NTE4
LDcgQEAKIAkJCQlBNTMyNDM5MzE4NTY5NzA5MDAyRUQ2OTIgLyogQ29kZUdlbmVyYXRvckluc3Bl
Y3RvclN0cmluZ3MucHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5MjE4NTY5NzA5MDAyRUQ2
OTIgLyogQ29kZUdlbmVyYXRvckluc3BlY3Rvci5weSBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRF
NTRGMTdFRTI3NDkwMEFCQjIxNyAvKiBUZW1wUmVnaXN0ZXJTZXQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUE1MEU0QjY0MTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCRkYzQzAxNzk4Njg5NDAwMDJGNDYyIC8qIERGR0Zp
bHRyYXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTI3MTg3Qzk4MUUwMDg0
M0IxMCAvKiBjc3NtaW4ucHkgaW4gSGVhZGVycyAqLywKIAkJCQlDMkZDQUUxMTE3QTlDMjRFMDAz
NEM3MzUgLyogQnl0ZWNvZGVCYXNpY0Jsb2NrLmggaW4gSGVhZGVycyAqLywKQEAgLTUxNzYsNiAr
NTE4OSw3IEBACiAJCQkJMEYyQjY3MDgxN0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlDb250
cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRCOTREQzE3QjlGMDc1MDBERDAzQTQgLyog
VHlwZWRBcnJheUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NzA5MTdCNkI1QUIw
MEE3QUUzRiAvKiBUeXBlZEFycmF5cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTUwRTRCNjIxODgw
OURENTAwNjhBNDZEIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyQjY3MEIxN0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlUeXBlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkY0Mjc0QjE1OEVCRTkxMDA0Q0I5RkYgLyogdWRpczg2LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkY0Mjc0MTE1OEVCRThEMDA0Q0I5RkYgLyogdWRpczg2X2RlY29kZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC01Nzk5LDYgKzU4MTMsNyBAQAogCQkJCTBGMkJEQzRBMTUyMjgwOUEw
MENEODkxMCAvKiBERkdWYXJpYWJsZUV2ZW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRkZDOTVGMTRFRjkwQkIwMEM3MjUzMiAvKiBERkdWaXJ0dWFsUmVnaXN0ZXJBbGxvY2F0aW9u
UGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDOTdGNDExODIwMjExOTAwMkM5QjI2IC8q
IERGR1dhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTUw
RTRCNjMxODgwOURENTAwNjhBNDZEIC8qIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGREIyQ0U3MTc0ODMwQTIwMDdCM0MxQiAvKiBERkdXb3JrbGlz
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlEMzM3MDE2NURCQjkwMDA1QUQzODcgLyogRGlz
YXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3MDQ0N0VEMTdBMEJENzAwMEY1ODk4
RSAvKiBEdW1wQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTYwMDAsNiArNjAxNSw3IEBA
CiAJCQkJMTQ0NjlEREYxMDdFQzdFNzAwNjUwNDQ2IC8qIE1hdGhPYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTAyMTNFM0QxMjNBNDBDMjAwRDQyMkYzIC8qIE1lbW9yeVN0YXRpc3RpY3Mu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNTQ2N0QxNEY1Q0ZENjAwMkMyOTg5IC8qIE1ldGhv
ZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTUwRTRCNjEx
ODgwOURENTAwNjhBNDZEIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NkVCRjJGRjE1NjBGMDZBMDA4RTkyMjIgLyogTmFtZUNvbnN0cnVjdG9yLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg2RUJGMzAxMTU2MEYwNkEwMDhFOTIyMiAvKiBOYW1lSW5zdGFu
Y2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZFQkYzMDMxNTYwRjA2QTAwOEU5MjIyIC8qIE5h
bWVQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggZDdiNDZkMy4uYWY1ZWViZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIklu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdFJ1bnRpbWVBZ2VudC5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkBAIC00Niwx
MCArNDcsNyBAQCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OkpTR2xvYmFsT2Jq
ZWN0SW5zcGVjdG9yQ29udHJvbGxlcihKU0dsb2JhbE9iagogICAgICwgbV9pbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwobnVsbHB0cikKIHsKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3Vu
aXF1ZTxJbnNwZWN0b3JBZ2VudD4oKSk7Ci0KLSAgICAvLyBGSVhNRTogQ3JlYXRlIFJ1bnRpbWVB
Z2VudC4KLSAgICAvLyBGSVhNRTogQ3JlYXRlIERlYnVnZ2VyQWdlbnQuCi0gICAgKHZvaWQpbV9n
bG9iYWxPYmplY3Q7IC8vIFdpbGwgYmUgdXNlZCBieSBSdW50aW1lQWdlbnQuCisgICAgbV9hZ2Vu
dHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ+KG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX2dsb2JhbE9iamVjdCkpOwogfQogCiBKU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6On5KU0dsb2JhbE9iamVjdEluc3BlY3RvckNv
bnRyb2xsZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCnNpbWlsYXJpdHkgaW5kZXggOTAlCnJlbmFtZSBm
cm9tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCnJl
bmFtZSB0byBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwCmluZGV4IDI4NjU3ZTkuLmEyNzRmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5j
cHAKQEAgLTEsNCArMSw1IEBACiAvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjksNDMgKzMwLDM5IEBA
CiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLQog
I2luY2x1ZGUgIkluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIgogCi0jaW5jbHVkZSAiSlNET01XaW5k
b3dCYXNlLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg+Ci0jaW5jbHVk
ZSA8aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oPgotI2luY2x1ZGUgPGluc3BlY3Rv
ci9JbnNwZWN0b3JWYWx1ZXMuaD4KLSNpbmNsdWRlIDxwYXJzZXIvUGFyc2VyRXJyb3IuaD4KLSNp
bmNsdWRlIDxwYXJzZXIvU291cmNlQ29kZS5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvQ29tcGxldGlv
bi5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaWYgRU5BQkxFKElOU1BFQ1RPUikK
KworI2luY2x1ZGUgIkNvbXBsZXRpb24uaCIKKyNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgor
I2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgorI2luY2x1ZGUgIkluc3BlY3RvclZh
bHVlcy5oIgorI2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIlBhcnNlckVycm9yLmgiCisj
aW5jbHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKICNp
ZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0
RGVidWdTZXJ2ZXIuaD4KKyNpbmNsdWRlICJTY3JpcHREZWJ1Z1NlcnZlci5oIgogI2VuZGlmCiAK
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLXVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBJbnNwZWN0b3IgewogCiBzdGF0aWMgYm9vbCBh
c0Jvb2woY29uc3QgYm9vbCogY29uc3QgYikKIHsKICAgICByZXR1cm4gYiA/ICpiIDogZmFsc2U7
CiB9CiAKLUluc3BlY3RvclJ1bnRpbWVBZ2VudDo6SW5zcGVjdG9yUnVudGltZUFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluamVjdGVkU2NyaXB0TWFuYWdl
ciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgIDogSW5zcGVjdG9yQWdlbnRCYXNlKEFTQ0lJ
TGl0ZXJhbCgiUnVudGltZSIpLCBpbnN0cnVtZW50aW5nQWdlbnRzKQotICAgICwgbV9lbmFibGVk
KGZhbHNlKQorSW5zcGVjdG9yUnVudGltZUFnZW50OjpJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgOiBJbnNwZWN0
b3JBZ2VudEJhc2UoQVNDSUlMaXRlcmFsKCJSdW50aW1lIikpCiAgICAgLCBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRf
REVCVUdHRVIpCiAgICAgLCBtX3NjcmlwdERlYnVnU2VydmVyKG51bGxwdHIpCiAjZW5kaWYKKyAg
ICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKIH0KIApAQCAtOTQsNyArOTEsNyBAQCBzdGF0aWMgUGFz
c1JlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpFcnJvclJhbmdlPiBidWls
ZEVycm9yUmFuZ2VPYgogCiB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6cGFyc2UoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6
OlJ1bnRpbWU6OlN5bnRheEVycm9yVHlwZTo6RW51bSogcmVzdWx0LCBJbnNwZWN0b3I6OlR5cGVC
dWlsZGVyOjpPcHRPdXRwdXQ8U3RyaW5nPiogbWVzc2FnZSwgUmVmUHRyPEluc3BlY3Rvcjo6VHlw
ZUJ1aWxkZXI6OlJ1bnRpbWU6OkVycm9yUmFuZ2U+JiByYW5nZSkKIHsKLSAgICBWTSogdm0gPSBK
U0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCk7CisgICAgVk0qIHZtID0gZ2xvYmFsVk0oKTsKICAg
ICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKQEAgLTEy
Niw2ICsxMjMsNyBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGUoRXJyb3JT
dHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGV4cAogICAgIEluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0ID0gaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKGVycm9yU3RyaW5nLCBleGVj
dXRpb25Db250ZXh0SWQpOwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpCiAg
ICAgICAgIHJldHVybjsKKwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIFNj
cmlwdERlYnVnU2VydmVyOjpQYXVzZU9uRXhjZXB0aW9uc1N0YXRlIHByZXZpb3VzUGF1c2VPbkV4
Y2VwdGlvbnNTdGF0ZSA9IFNjcmlwdERlYnVnU2VydmVyOjpEb250UGF1c2VPbkV4Y2VwdGlvbnM7
CiAgICAgaWYgKGFzQm9vbChkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUpKQpA
QCAtMTQ4LDkgKzE0NiwxMCBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0
aW9uT24oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbgogewogICAgIEluamVj
dGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVj
dGVkU2NyaXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5o
YXNOb1ZhbHVlKCkpIHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIkluc3BlY3RlZCBmcmFtZSBo
YXMgZ29uZSI7CisgICAgICAgICplcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiSW5zcGVjdGVk
IGZyYW1lIGhhcyBnb25lIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBTdHJpbmcg
YXJndW1lbnRzOwogICAgIGlmIChvcHRpb25hbEFyZ3VtZW50cykKICAgICAgICAgYXJndW1lbnRz
ID0gKCpvcHRpb25hbEFyZ3VtZW50cyktPnRvSlNPTlN0cmluZygpOwpAQCAtMTc3LDcgKzE3Niw3
IEBAIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpnZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nCiB7CiAgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0
ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3JPYmpl
Y3RJZChvYmplY3RJZCk7CiAgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgewot
ICAgICAgICAqZXJyb3JTdHJpbmcgPSAiSW5zcGVjdGVkIGZyYW1lIGhhcyBnb25lIjsKKyAgICAg
ICAgKmVycm9yU3RyaW5nID0gQVNDSUlMaXRlcmFsKCJJbnNwZWN0ZWQgZnJhbWUgaGFzIGdvbmUi
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjExLDEzICsyMTAsNiBAQCB2b2lkIElu
c3BlY3RvclJ1bnRpbWVBZ2VudDo6cnVuKEVycm9yU3RyaW5nKikKIHsKIH0KIAotI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQotdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnNldFNj
cmlwdERlYnVnU2VydmVyKFNjcmlwdERlYnVnU2VydmVyKiBzY3JpcHREZWJ1Z1NlcnZlcikKLXsK
LSAgICBtX3NjcmlwdERlYnVnU2VydmVyID0gc2NyaXB0RGVidWdTZXJ2ZXI7Ci19Ci0jZW5kaWYg
Ly8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
K30gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdl
bnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5oCnNpbWlsYXJpdHkgaW5kZXggNTclCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaApyZW5hbWUgdG8gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKaW5k
ZXggZTE1ODY1Yi4uODQ3ZTJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCkBAIC0xLDQgKzEsNSBAQAogLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTMzLDg0ICszNCw2NSBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKIAotI2luY2x1ZGUgIkluc3BlY3RvcldlYkFnZW50QmFzZS5oIgotI2luY2x1ZGUgIkluc3Bl
Y3RvcldlYkJhY2tlbmREaXNwYXRjaGVycy5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0
b3JKU0JhY2tlbmREaXNwYXRjaGVycy5oPgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JK
U0Zyb250ZW5kRGlzcGF0Y2hlcnMuaD4KKyNpbmNsdWRlICJJbnNwZWN0b3JKU0JhY2tlbmREaXNw
YXRjaGVycy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckpTRnJvbnRlbmREaXNwYXRjaGVycy5oIgor
I2luY2x1ZGUgImluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCituYW1lc3BhY2UgSlND
IHsKK2NsYXNzIFZNOworfQorCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKKwogY2xhc3MgSW5qZWN0
ZWRTY3JpcHQ7CiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CiBjbGFzcyBJbnNwZWN0b3JB
cnJheTsKLWNsYXNzIEluc3BlY3Rvck9iamVjdDsKLWNsYXNzIEluc3BlY3RvclZhbHVlOwogY2xh
c3MgU2NyaXB0RGVidWdTZXJ2ZXI7Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
SW5zdHJ1bWVudGluZ0FnZW50czsKLWNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwotCiB0eXBlZGVm
IFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgSW5zcGVjdG9yUnVudGltZUFnZW50IDogcHVi
bGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yUnVudGlt
ZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlciB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBJbnNw
ZWN0b3JSdW50aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQWdlbnRCYXNlLCBwdWJsaWMgSW5z
cGVjdG9yUnVudGltZUJhY2tlbmREaXNwYXRjaGVySGFuZGxlciB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoSW5zcGVjdG9yUnVudGltZUFnZW50KTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5J
bnNwZWN0b3JSdW50aW1lQWdlbnQoKTsKIAotICAgIC8vIFBhcnQgb2YgdGhlIHByb3RvY29sLgog
ICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZSB7IG1fZW5hYmxl
ZCA9IHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopIG92ZXJy
aWRlIHsgbV9lbmFibGVkID0gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2UoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6
OlJ1bnRpbWU6OlN5bnRheEVycm9yVHlwZTo6RW51bSogcmVzdWx0LCBJbnNwZWN0b3I6OlR5cGVC
dWlsZGVyOjpPcHRPdXRwdXQ8U3RyaW5nPiogbWVzc2FnZSwgUmVmUHRyPEluc3BlY3Rvcjo6VHlw
ZUJ1aWxkZXI6OlJ1bnRpbWU6OkVycm9yUmFuZ2U+Jikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2
b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwKLSAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyogb2JqZWN0R3Jv
dXAsCi0gICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBpbmNsdWRlQ29tbWFuZExpbmVBUEks
Ci0gICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5k
TXV0ZUNvbnNvbGUsCi0gICAgICAgICAgICAgICAgICBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRl
eHRJZCwKLSAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wqIHJldHVybkJ5VmFsdWUsCi0gICAg
ICAgICAgICAgICAgICBjb25zdCBib29sKiBnZW5lcmF0ZVByZXZpZXcsCi0gICAgICAgICAgICAg
ICAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0
PiYgcmVzdWx0LAotICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6T3B0
T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBjYWxs
RnVuY3Rpb25PbihFcnJvclN0cmluZyosCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBT
dHJpbmcmIG9iamVjdElkLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVmUHRyPEluc3BlY3Rv
cjo6SW5zcGVjdG9yQXJyYXk+KiBvcHRpb25hbEFyZ3VtZW50cywKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGJvb2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wqIHJldHVybkJ5VmFsdWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBnZW5lcmF0ZVByZXZpZXcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6UnVudGltZTo6
UmVtb3RlT2JqZWN0PiYgcmVzdWx0LAotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
OjpUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCByZWxlYXNlT2JqZWN0KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBv
YmplY3RJZCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnRpZXMoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBib29sKiBvd25Qcm9wZXJ0aWVz
LCBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6UnVudGltZTo6UHJvcGVydHlEZXNjcmlwdG9yPj4mIHJlc3VsdCwgUmVmUHRyPEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6OkFycmF5PEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6
OkludGVybmFsUHJvcGVydHlEZXNjcmlwdG9yPj4mIGludGVybmFsUHJvcGVydGllcykgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbGVhc2VPYmplY3RHcm91cChFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgb2JqZWN0R3JvdXApIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgSW5zcGVjdG9yOjpUeXBl
QnVpbGRlcjo6UnVudGltZTo6U3ludGF4RXJyb3JUeXBlOjpFbnVtKiByZXN1bHQsIEluc3BlY3Rv
cjo6VHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxTdHJpbmc+KiBtZXNzYWdlLCBSZWZQdHI8SW5zcGVj
dG9yOjpUeXBlQnVpbGRlcjo6UnVudGltZTo6RXJyb3JSYW5nZT4mKSBvdmVycmlkZSBmaW5hbDsK
KyAgICB2aXJ0dWFsIHZvaWQgZXZhbHVhdGUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4
cHJlc3Npb24sIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIGNvbnN0IGJvb2wqIGluY2x1ZGVD
b21tYW5kTGluZUFQSSwgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVD
b25zb2xlLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCwgY29uc3QgYm9vbCogcmV0dXJu
QnlWYWx1ZSwgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LCBSZWZQdHI8SW5zcGVjdG9yOjpU
eXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBJbnNwZWN0b3I6OlR5
cGVCdWlsZGVyOjpPcHRPdXRwdXQ8Ym9vbD4qIHdhc1Rocm93bikgb3ZlcnJpZGUgZmluYWw7Cisg
ICAgdmlydHVhbCB2b2lkIGNhbGxGdW5jdGlvbk9uKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBSZWZQdHI8SW5zcGVj
dG9yOjpJbnNwZWN0b3JBcnJheT4qIG9wdGlvbmFsQXJndW1lbnRzLCBjb25zdCBib29sKiBkb05v
dFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIGNvbnN0IGJvb2wqIHJldHVybkJ5VmFs
dWUsIGNvbnN0IGJvb2wqIGdlbmVyYXRlUHJldmlldywgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1
aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgSW5zcGVjdG9yOjpUeXBlQnVp
bGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pIG92ZXJyaWRlIGZpbmFsOworICAgIHZp
cnR1YWwgdm9pZCByZWxlYXNlT2JqZWN0KEVycm9yU3RyaW5nKiwgY29uc3QgRXJyb3JTdHJpbmcm
IG9iamVjdElkKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydGll
cyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IGJvb2wqIG93blBy
b3BlcnRpZXMsIFJlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpBcnJheTxJbnNwZWN0b3I6
OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpQcm9wZXJ0eURlc2NyaXB0b3I+PiYgcmVzdWx0LCBSZWZQ
dHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6
UnVudGltZTo6SW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3I+PiYgaW50ZXJuYWxQcm9wZXJ0aWVz
KSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU9iamVjdEdyb3VwKEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCkgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIHJ1bihFcnJvclN0cmluZyopIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxF
KEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgdm9pZCBzZXRTY3JpcHREZWJ1Z1NlcnZlcihJbnNw
ZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyKik7CisgICAgdm9pZCBzZXRTY3JpcHREZWJ1Z1NlcnZl
cihTY3JpcHREZWJ1Z1NlcnZlciogc2NyaXB0RGVidWdTZXJ2ZXIpIHsgbV9zY3JpcHREZWJ1Z1Nl
cnZlciA9IHNjcmlwdERlYnVnU2VydmVyOyB9CiAjZW5kaWYKIAorICAgIGJvb2wgZW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQorCiBwcm90ZWN0ZWQ6Ci0gICAgSW5zcGVjdG9y
UnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3I6OkluamVjdGVkU2Ny
aXB0TWFuYWdlciopOwotICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmpl
Y3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRl
eHRJZCkgPSAwOworICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudChJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqKTsKKworICAgIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KCkgeyByZXR1cm4gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7IH0KKworICAgIHZpcnR1YWwgSlND
OjpWTSogZ2xvYmFsVk0oKSA9IDA7CisgICAgdmlydHVhbCBJbmplY3RlZFNjcmlwdCBpbmplY3Rl
ZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJ
ZCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCB1bm11dGVDb25zb2xlKCkgPSAwOwogCi0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNj
cmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcigpIHsgcmV0dXJuIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyOyB9Ci0gICAgYm9vbCBtX2VuYWJsZWQ7Ci0KIHByaXZhdGU6Ci0gICAgSW5z
cGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwor
ICAgIEluamVjdGVkU2NyaXB0TWFuYWdlciogbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7CiAjaWYg
RU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgSW5zcGVjdG9yOjpTY3JpcHREZWJ1Z1Nl
cnZlciogbV9zY3JpcHREZWJ1Z1NlcnZlcjsKKyAgICBTY3JpcHREZWJ1Z1NlcnZlciogbV9zY3Jp
cHREZWJ1Z1NlcnZlcjsKICNlbmRpZgorICAgIGJvb2wgbV9lbmFibGVkOwogfTsKIAotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCiAKICNlbmRpZiAvLyBF
TkFCTEUoSU5TUEVDVE9SKQogI2VuZGlmIC8vIEluc3BlY3RvclJ1bnRpbWVBZ2VudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9i
amVjdFJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZDI5MTljMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcApA
QCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0UnVudGlt
ZUFnZW50LmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiSlNHbG9iYWxP
YmplY3QuaCIKKyNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgorI2luY2x1ZGUgIkluamVjdGVk
U2NyaXB0TWFuYWdlci5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgSW5z
cGVjdG9yIHsKKworSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ6OkpTR2xvYmFsT2JqZWN0UnVu
dGltZUFnZW50KEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBK
U0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQorICAgIDogSW5zcGVjdG9yUnVudGltZUFnZW50
KGluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVj
dCkKK3sKK30KKwordm9pZCBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFubmVs
LCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciogYmFja2VuZERpc3BhdGNoZXIpCit7CisgICAg
bV9mcm9udGVuZERpc3BhdGNoZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclJ1bnRpbWVG
cm9udGVuZERpc3BhdGNoZXI+KGZyb250ZW5kQ2hhbm5lbCk7CisgICAgbV9iYWNrZW5kRGlzcGF0
Y2hlciA9IEluc3BlY3RvclJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcjo6Y3JlYXRlKGJhY2tlbmRE
aXNwYXRjaGVyLCB0aGlzKTsKK30KKwordm9pZCBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6
d2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikK
K3sKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlciA9IG51bGxwdHI7CisgICAgbV9iYWNrZW5kRGlz
cGF0Y2hlci5jbGVhcigpOworfQorCitWTSogSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ6Omds
b2JhbFZNKCkKK3sKKyAgICByZXR1cm4gJm1fZ2xvYmFsT2JqZWN0LnZtKCk7Cit9CisKK0luamVj
dGVkU2NyaXB0IEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50OjppbmplY3RlZFNjcmlwdEZvckV2
YWwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJ
ZCkKK3sKKyAgICBBU1NFUlRfVU5VU0VEKGV4ZWN1dGlvbkNvbnRleHRJZCwgIWV4ZWN1dGlvbkNv
bnRleHRJZCk7CisKKyAgICBKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUgPSBtX2dsb2JhbE9i
amVjdC5nbG9iYWxFeGVjKCk7CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBp
bmplY3RlZFNjcmlwdE1hbmFnZXIoKS0+aW5qZWN0ZWRTY3JpcHRGb3Ioc2NyaXB0U3RhdGUpOwor
ICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpCisgICAgICAgICplcnJvclN0cmlu
ZyA9IEFTQ0lJTGl0ZXJhbCgiSW50ZXJuYWwgZXJyb3I6IG1haW4gd29ybGQgZXhlY3V0aW9uIGNv
bnRleHQgbm90IGZvdW5kLiIpOworCisgICAgcmV0dXJuIGluamVjdGVkU2NyaXB0OworfQorCit9
IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2Jh
bE9iamVjdFJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi40MTA4OThiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudF9oCisjZGVmaW5lIEpTR2xvYmFs
T2JqZWN0UnVudGltZUFnZW50X2gKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRl
ICJJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgor
CituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEpTR2xvYmFsT2JqZWN0OworfQorCituYW1lc3BhY2Ug
SW5zcGVjdG9yIHsKKworY2xhc3MgSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQgZmluYWwgOiBw
dWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50IHsKK3B1YmxpYzoKKyAgICBKU0dsb2JhbE9iamVj
dFJ1bnRpbWVBZ2VudChJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Jik7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBKU0M6OlZNKiBn
bG9iYWxWTSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRT
Y3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQp
IG92ZXJyaWRlOworCisgICAgLy8gRklYTUU6IEphdmFTY3JpcHQgaW5zcGVjdG9yIGRvZXMgbm90
IHlldCBoYXZlIGEgY29uc29sZSBvYmplY3QgdG8gbXV0ZS4KKyAgICB2aXJ0dWFsIHZvaWQgbXV0
ZUNvbnNvbGUoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29sZSgp
IG92ZXJyaWRlIHsgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3JS
dW50aW1lRnJvbnRlbmREaXNwYXRjaGVyPiBtX2Zyb250ZW5kRGlzcGF0Y2hlcjsKKyAgICBSZWZQ
dHI8SW5zcGVjdG9yUnVudGltZUJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVy
OworICAgIEpTQzo6SlNHbG9iYWxPYmplY3QmIG1fZ2xvYmFsT2JqZWN0OworfTsKKworfSAvLyBu
YW1lc3BhY2UgSW5zcGVjdG9yCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQorCisjZW5k
aWYgLy8gIWRlZmluZWQoSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnRfaCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggYzkwOTY4Ny4uZDAzZThhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2
MDMsNyArMTYwMyw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBpbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNw
cAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAotICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclN0eWxl
U2hlZXQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjcy
NjMzLi40NGUwMzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTQtMDEtMjQgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBNb3ZlIEluc3BlY3RvclJ1bnRpbWVBZ2VudCBpbnRvIEphdmFTY3JpcHRDb3JlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2MDUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4
aXN0aW5nIHRlc3RzLiBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5j
cHA6CisgICAgICAgIFJlbW92ZSBXZWJDb3JlIEluc3BlY3RvclJ1bnRpbWVBZ2VudC4KKworICAg
ICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGlt
ZUFnZW50Lmg6IEFkZGVkLgorICAgICAgICBBZGQgSmF2YVNjcmlwdENvcmUgSW5zcGVjdG9yUnVu
dGltZUFnZW50LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJv
bGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyKToKKyAgICAgICAgTmV3IGNvbnN0cnVjdG9ycyBmb3IgdGhlIHJ1bnRpbWUgYWdl
bnQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VS
dW50aW1lQWdlbnQ6OlBhZ2VSdW50aW1lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1
bnRpbWVBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6
OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRl
TWFpbldvcmxkQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVudGltZUFnZW50Ojpk
aWRDcmVhdGVJc29sYXRlZENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVB
Z2VudDo6Z2xvYmFsVk0pOgorICAgICAgICBNb2Rlcm5pemUgYW5kIGltcGxlbWVudCBnbG9iYWxW
TS4KKworICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclJ1bnRpbWVBZ2VudDo6V29ya2VyUnVudGltZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclJ1bnRpbWVBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclJ1bnRpbWVBZ2VudDo6Z2xvYmFsVk0pOgorICAgICAgICBNb2Rlcm5pemUg
YW5kIGltcGxlbWVudCBnbG9iYWxWTS4KKwogMjAxNC0wMS0yMyAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgSmF2YVNjcmlwdENhbGxGcmFtZSBh
bmQgU2NyaXB0RGVidWdTZXJ2ZXIgaW50byBKYXZhU2NyaXB0Q29yZSBmb3IgaW5zcGVjdG9yCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmVlYTIzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JS
dW50aW1lQWdlbnQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfSW5zcGVj
dG9yUnVudGltZUFnZW50X2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfSW5zcGVjdG9yUnVudGltZUFn
ZW50X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaD4K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZmE3ZjFhMC4uYzVkNDA3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODI2LDggKzM4MjYsNiBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
cm9maWxlckFnZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVB
Z2VudC5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdl
bnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBj
NTU1Yjc2Li42MThmNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKQEAgLTE3Nzc4LDE0ICsxNzc3OCw2IEBACiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9k
dWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9k
dWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclJ1bnRpbWVBZ2Vu
dC5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
LSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQo
UGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXEluc3BlY3RvclN0eWxlU2hlZXQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xODUwMSw3ICsxODQ5Myw2IEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xpbnNwZWN0b3JcSW5qZWN0ZWRT
Y3JpcHRIb3N0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVh
ZGVyc1xpbnNwZWN0b3JcSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xpbnNwZWN0b3JcSW5qZWN0ZWRTY3JpcHRN
b2R1bGUuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJz
XGluc3BlY3RvclxJbnNwZWN0b3JBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cRm9yd2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yXEluc3BlY3RvckFnZW50QmFzZS5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yXElu
c3BlY3RvckFnZW50UmVnaXN0cnkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZv
cndhcmRpbmdIZWFkZXJzXGluc3BlY3RvclxJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oIiAv
PgpAQCAtMTg1MTIsNiArMTg1MDMsOCBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yXEluc3BlY3RvckpTVHlwZUJ1aWxkZXJzLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xpbnNwZWN0b3JcSW5z
cGVjdG9yVHlwZUJ1aWxkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndh
cmRpbmdIZWFkZXJzXGluc3BlY3RvclxJbnNwZWN0b3JWYWx1ZXMuaCIgLz4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3RvclxhZ2VudHNcSW5zcGVj
dG9yQWdlbnQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXGluc3BlY3RvclxhZ2VudHNcSW5zcGVjdG9yUnVudGltZUFnZW50LmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xtYXNtXFg4NkFzc2VtYmxlci5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccGFyc2Vy
XFNvdXJjZUNvZGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdI
ZWFkZXJzXHBhcnNlclxTb3VyY2VQcm92aWRlci5oIiAvPgpAQCAtMjA4ODAsNyArMjA4NzMsNiBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclBhZ2VBZ2Vu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclBy
b2ZpbGVyQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxp
bnNwZWN0b3JcSW5zcGVjdG9yUnVudGltZUFnZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5bGVTaGVldC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0eWxlVGV4dEVkaXRvci5oIiAvPgog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclRpbWVsaW5lQWdl
bnQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA1N2UzN2VhLi45ZDg5NmVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJz
CkBAIC0yNzQsNiArMjc0LDkgQEAKICAgICA8RmlsdGVyIEluY2x1ZGU9IkZvcndhcmRpbmdIZWFk
ZXJzXGluc3BlY3RvciI+CiAgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MTMyYmFkZTItMGFhYi02
Mjc0LTBhZGZmLWFlOGFlZDVhZWQ0fTwvVW5pcXVlSWRlbnRpZmllcj4KICAgICA8L0ZpbHRlcj4K
KyAgICA8RmlsdGVyIEluY2x1ZGU9IkZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3RvclxhZ2VudHMi
PgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezEzMmJhZGUyLTBhYWItNjI3NC0wYWRmZi1hYmNk
YWNiZGFiY308L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CiAgICAgPEZpbHRlciBJ
bmNsdWRlPSJoaXN0b3J5Ij4KICAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns2ZjM5ZGVkZi0yZDNh
LTQxNGUtODNmZS03YmY2NGY5MTFjZmJ9PC9VbmlxdWVJZGVudGlmaWVyPgogICAgIDwvRmlsdGVy
PgpAQCAtNDgxOCw5ICs0ODIxLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3Bl
Y3RvclxJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3Rv
cjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
aW5zcGVjdG9yXEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAiPgotICAgICAgPEZpbHRlcj5pbnNw
ZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCI+CiAgICAgICA8RmlsdGVyPmlu
c3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTIwODksOSArMTIwODksNiBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9y
XEluamVjdGVkU2NyaXB0TW9kdWxlLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVy
c1xpbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3RvclxJbnNwZWN0b3JBZ2VudC5oIj4K
LSAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAg
PC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xpbnNwZWN0b3JcSW5zcGVjdG9yQWdlbnRCYXNlLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJk
aW5nSGVhZGVyc1xpbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEyMTIy
LDYgKzEyMTE5LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVh
ZGVyc1xpbnNwZWN0b3JcSW5zcGVjdG9yVmFsdWVzLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJk
aW5nSGVhZGVyc1xpbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3RvclxhZ2VudHNcSW5z
cGVjdG9yQWdlbnQuaCI+CisgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3Rv
cjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Rm9yd2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yXGFnZW50c1xJbnNwZWN0b3JSdW50aW1lQWdlbnQu
aCI+CisgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3RvcjwvRmlsdGVyPgor
ICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGlzdG9yeVxCYWNr
Rm9yd2FyZENsaWVudC5oIj4KICAgICAgIDxGaWx0ZXI+aGlzdG9yeTwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpAQCAtMTIzNTMsOSArMTIzNTYsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclJlc291cmNlQWdlbnQuaCI+CiAgICAgICA8RmlsdGVy
Pmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIj4KLSAgICAgIDxGaWx0
ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5bGVTaGVldC5oIj4KICAgICAgIDxGaWx0
ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNThmMjc5YS4uMWQw
NGRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjI2NSw3ICsyMjY1LDYgQEAKIAkJN0E3NEVDQkExMDE4MzlBNjAwQkY5MzlF
IC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTc0RUNCODEwMTgzOUE1MDBCRjkzOUUgLyogSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50LmNwcCAqLzsgfTsKIAkJN0E3NEVDQkIxMDE4MzlBNjAwQkY5MzlF
IC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0E3NEVDQjkxMDE4MzlBNjAwQkY5MzlFIC8qIEluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudC5oICovOyB9OwogCQk3QTc0RUNCRDEwMTgzOURBMDBCRjkzOUUgLyog
SlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E3NEVDQkMxMDE4MzlEQTAwQkY5MzlFIC8qIEpTSW5z
cGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCAqLzsgfTsKLQkJN0FBMzY1RUUxMkU3MjY1NDAw
RENBMjQyIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUEzNjVFRDEyRTcyNjU0MDBEQ0EyNDIgLyogSW5z
cGVjdG9yUnVudGltZUFnZW50LmNwcCAqLzsgfTsKIAkJN0FBNTFERDUxNDg1MDZBOTAwQUQyNzUy
IC8qIEluc3BlY3Rvck1lbW9yeUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdBQTUxREQzMTQ4NTA2QTkwMEFEMjc1MiAvKiBJbnNwZWN0b3JN
ZW1vcnlBZ2VudC5jcHAgKi87IH07CiAJCTdBQTUxREQ2MTQ4NTA2QTkwMEFEMjc1MiAvKiBJbnNw
ZWN0b3JNZW1vcnlBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0FBNTFERDQxNDg1MDZBOTAwQUQyNzUyIC8qIEluc3BlY3Rvck1lbW9yeUFnZW50
LmggKi87IH07CiAJCTdBQUJBMjU5MTRCQzYxMzMwMEFBOUExMSAvKiBET01FZGl0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FBQkEyNTcxNEJD
NjEzMzAwQUE5QTExIC8qIERPTUVkaXRvci5jcHAgKi87IH07CkBAIC0yMjc1LDcgKzIyNzQsNiBA
QAogCQk3QUNEODhEMzE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FDRDg4
RDExNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCAqLzsgfTsK
IAkJN0FDRDg4RDQxNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUNEODhEMjE0
QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCAqLzsgfTsKIAkJN0FE
RTcyMjYxMENCQkI5QjAwNkIzQjNBIC8qIENvbnRleHRNZW51UHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBREU3MjI1MTBDQkJCOUIwMDZC
M0IzQSAvKiBDb250ZXh0TWVudVByb3ZpZGVyLmggKi87IH07Ci0JCTdBRjExQTVBMTJFNzI3NDkw
MDYxRjIzQyAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRjExQTU5MTJFNzI3NDkwMDYxRjIzQyAvKiBJbnNw
ZWN0b3JSdW50aW1lQWdlbnQuaCAqLzsgfTsKIAkJN0JFNzQyNzM4MUZBOTA2RkJCNEYwRjJDIC8q
IEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NTBDNEMwMkJFRDg5MzZGODE4RTJGOTkgLyogSlNTVkdHcmFwaGljc0Vs
ZW1lbnQuaCAqLzsgfTsKIAkJN0MyQkREM0QxN0M3Rjk4QzAwMzhGRjE1IC8qIEpTRE9NR2xvYmFs
T2JqZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzJCREQzQjE3QzdGOThCMDAzOEZGMTUgLyogSlNET01HbG9iYWxPYmplY3RUYXNrLmNw
cCAqLzsgfTsKIAkJN0MyQkREM0UxN0M3Rjk4QzAwMzhGRjE1IC8qIEpTRE9NR2xvYmFsT2JqZWN0
VGFzay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0My
QkREM0MxN0M3Rjk4QjAwMzhGRjE1IC8qIEpTRE9NR2xvYmFsT2JqZWN0VGFzay5oICovOyB9OwpA
QCAtOTIwNCw3ICs5MjAyLDYgQEAKIAkJN0E3NEVDQjgxMDE4MzlBNTAwQkY5MzlFIC8qIEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3QTc0RUNCOTEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTc0RUNCQzEwMTgzOURB
MDBCRjkzOUUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QUEzNjVFRDEyRTcyNjU0MDBEQ0Ey
NDIgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdBQTUxREQzMTQ4NTA2QTkwMEFEMjc1MiAvKiBJbnNwZWN0b3JNZW1vcnlB
Z2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JN
ZW1vcnlBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBQTUxREQ0MTQ4
NTA2QTkwMEFEMjc1MiAvKiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JNZW1vcnlBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QUFCQTI1NzE0QkM2MTMzMDBBQTlBMTEgLyogRE9NRWRpdG9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUVkaXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MjE0LDcgKzkyMTEsNiBAQAogCQk3QUNEODhEMTE0
QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUNEODhEMjE0QzA4QkQ2MDA4NEVERDIgLyog
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0FERTcyMjUxMENCQkI5QjAwNkIzQjNBIC8qIENvbnRleHRNZW51UHJvdmlkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGV4dE1lbnVQcm92aWRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QUYxMUE1OTEyRTcyNzQ5MDA2MUYyM0MgLyogSW5z
cGVjdG9yUnVudGltZUFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
c3BlY3RvclJ1bnRpbWVBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzJC
REQzQjE3QzdGOThCMDAzOEZGMTUgLyogSlNET01HbG9iYWxPYmplY3RUYXNrLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NR2xvYmFsT2JqZWN0VGFzay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMkJERDNDMTdDN0Y5OEIwMDM4RkYxNSAv
KiBKU0RPTUdsb2JhbE9iamVjdFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNET01HbG9iYWxPYmplY3RUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDNTIyRDQ5MTVCNDc3RTgwMDlCN0M5NSAvKiBJbnNwZWN0b3JPdmVybGF5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvck92ZXJsYXkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ4NTMsOCArMTQ4NDksNiBAQAogCQkJCTlGMEQ2
QjJEMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmggKi8sCiAJCQkJ
ODJBQjE3NzExMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclJlc291cmNlQWdlbnQuY3BwICov
LAogCQkJCTgyQUIxNzcyMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
LmggKi8sCi0JCQkJN0FBMzY1RUQxMkU3MjY1NDAwRENBMjQyIC8qIEluc3BlY3RvclJ1bnRpbWVB
Z2VudC5jcHAgKi8sCi0JCQkJN0FGMTFBNTkxMkU3Mjc0OTAwNjFGMjNDIC8qIEluc3BlY3RvclJ1
bnRpbWVBZ2VudC5oICovLAogCQkJCTgyQUIxNzZGMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcCAqLywKIAkJCQk4MkFCMTc3MDEyNUM4MjY3MDBDNTA2OUQgLyogSW5z
cGVjdG9yU3R5bGVTaGVldC5oICovLAogCQkJCTgyODg5QjRBMTNDNjIzOTIwMDlBNjE1NiAvKiBJ
bnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuY3BwICovLApAQCAtMjM5NjAsNyArMjM5NTQsNiBAQAog
CQkJCTRGNkZERDY1MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9m
aWxlckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MkFCMTc3NjEyNUM4MjY3MDBDNTA2OUQg
LyogSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0FGMTFBNUEx
MkU3Mjc0OTAwNjFGMjNDIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODJBQjE3NzQxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxlU2hlZXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTgyODg5QjREMTNDNjIzOTIwMDlBNjE1NiAvKiBJbnNwZWN0b3JT
dHlsZVRleHRFZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRUFGOTdFMTIxNDM1QTQwMEU3
QzFCRiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovLApAQCAtMjcyODks
NyArMjcyODIsNiBAQAogCQkJCUUxRkY4RjVGMTgwNzQ0MjEwMDEzMjY3NCAvKiBTdWJ0bGVDcnlw
dG8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUYwRDZCMkUxMjFCRkVCQTAwNkMwMjg4IC8qIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzUxMjVD
ODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJN0FBMzY1RUUxMkU3MjY1NDAwRENBMjQyIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4MkFCMTc3MzEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVj
dG9yU3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4Mjg4OUI0QzEzQzYyMzkyMDA5
QTYxNTYgLyogSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3Mjc3RTRFMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlv
bk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckFsbEluT25lLmNwcAppbmRleCA2NjZiYmE2Li4wNmMwZTAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKQEAgLTYwLDcgKzYwLDYg
QEAKICNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3Rv
clByb2ZpbGVyQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlQWdlbnQuY3Bw
IgotI2luY2x1ZGUgIkluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yU3R5bGVTaGVldC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNw
cCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBlYzY0YzJhLi40
ZmYxMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCkBAIC0xMDYsNiArMTA2LDExIEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3Bl
Y3RvckNvbnRyb2xsZXIoUGFnZSYgcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAg
ICAgbV9wYWdlQWdlbnQgPSBwYWdlQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5k
KHN0ZDo6bW92ZShwYWdlQWdlbnRQdHIpKTsKIAorICAgIGF1dG8gcnVudGltZUFnZW50UHRyID0g
c3RkOjptYWtlX3VuaXF1ZTxQYWdlUnVudGltZUFnZW50PihtX2luamVjdGVkU2NyaXB0TWFuYWdl
ci5nZXQoKSwgJnBhZ2UsIHBhZ2VBZ2VudCk7CisgICAgUGFnZVJ1bnRpbWVBZ2VudCogcnVudGlt
ZUFnZW50ID0gcnVudGltZUFnZW50UHRyLmdldCgpOworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50
cy0+c2V0UGFnZVJ1bnRpbWVBZ2VudChydW50aW1lQWdlbnQpOworICAgIG1fYWdlbnRzLmFwcGVu
ZChzdGQ6Om1vdmUocnVudGltZUFnZW50UHRyKSk7CisKICAgICBhdXRvIGRvbUFnZW50UHRyID0g
c3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JET01BZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRz
LmdldCgpLCBwYWdlQWdlbnQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBtX292ZXJs
YXkuZ2V0KCkpOwogICAgIG1fZG9tQWdlbnQgPSBkb21BZ2VudFB0ci5nZXQoKTsKICAgICBtX2Fn
ZW50cy5hcHBlbmQoc3RkOjptb3ZlKGRvbUFnZW50UHRyKSk7CkBAIC0xMzcsMTAgKzE0Miw2IEBA
IEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSYgcGFnZSwgSW5z
cGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAgICAgbV9yZXNvdXJjZUFnZW50ID0gcmVzb3VyY2VB
Z2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3ZlKHJlc291cmNlQWdl
bnRQdHIpKTsKIAotICAgIGF1dG8gcnVudGltZUFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxQ
YWdlUnVudGltZUFnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmdldCgpLCAmcGFnZSwgcGFnZUFnZW50KTsKLSAgICBJbnNwZWN0b3JSdW50
aW1lQWdlbnQqIHJ1bnRpbWVBZ2VudCA9IHJ1bnRpbWVBZ2VudFB0ci5nZXQoKTsKLSAgICBtX2Fn
ZW50cy5hcHBlbmQoc3RkOjptb3ZlKHJ1bnRpbWVBZ2VudFB0cikpOwotCiAgICAgYXV0byBjb25z
b2xlQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDb25zb2xlQWdlbnQ+KG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1fZG9t
QWdlbnQpOwogICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50ID0gY29uc29s
ZUFnZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUoY29uc29sZUFn
ZW50UHRyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRp
bWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5j
cHAKaW5kZXggMDM0MjY2NC4uOWU4NDI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9QYWdlUnVudGltZUFnZW50LmNwcApAQCAtMjksMTggKzI5LDIwIEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLQogI2luY2x1ZGUgIlBhZ2VS
dW50aW1lQWdlbnQuaCIKIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKICNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50
LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgorI2luY2x1ZGUgIkpTRE9NV2lu
ZG93QmFzZS5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSA8aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0TWFuYWdlci5oPgpAQCAtNTEsMTggKzUzLDEyIEBAIHVzaW5nIG5hbWVzcGFj
ZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZVJ1bnRpbWVBZ2VudDo6
UGFnZVJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgUGFnZSogcGFn
ZSwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCi0gICAgOiBJbnNwZWN0b3JSdW50aW1l
QWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorUGFnZVJ1
bnRpbWVBZ2VudDo6UGFnZVJ1bnRpbWVBZ2VudChJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVj
dGVkU2NyaXB0TWFuYWdlciwgUGFnZSogcGFnZSwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdl
bnQpCisgICAgOiBJbnNwZWN0b3JSdW50aW1lQWdlbnQoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQog
ICAgICwgbV9pbnNwZWN0ZWRQYWdlKHBhZ2UpCiAgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQp
CiAgICAgLCBtX21haW5Xb3JsZENvbnRleHRDcmVhdGVkKGZhbHNlKQogewotICAgIG1faW5zdHJ1
bWVudGluZ0FnZW50cy0+c2V0UGFnZVJ1bnRpbWVBZ2VudCh0aGlzKTsKLX0KLQotUGFnZVJ1bnRp
bWVBZ2VudDo6flBhZ2VSdW50aW1lQWdlbnQoKQotewotICAgIG1faW5zdHJ1bWVudGluZ0FnZW50
cy0+c2V0UGFnZVJ1bnRpbWVBZ2VudChudWxscHRyKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFn
ZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwqIGZyb250ZW5kQ2hhbm5lbCwgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIq
IGJhY2tlbmREaXNwYXRjaGVyKQpAQCAtODIsNyArNzgsNyBAQCB2b2lkIFBhZ2VSdW50aW1lQWdl
bnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFz
b24pCiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZykKIHsKLSAgICBpZiAobV9lbmFibGVkKQorICAgIGlmIChlbmFibGVkKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZW5hYmxlKGVycm9yU3RyaW5n
KTsKQEAgLTk2LDcgKzkyLDcgQEAgdm9pZCBQYWdlUnVudGltZUFnZW50OjplbmFibGUoRXJyb3JT
dHJpbmcqIGVycm9yU3RyaW5nKQogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OmRpc2FibGUoRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nKQogewotICAgIGlmICghbV9lbmFibGVkKQorICAgIGlmICgh
ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6
OmRpc2FibGUoZXJyb3JTdHJpbmcpOwpAQCAtMTA2LDggKzEwMiw5IEBAIHZvaWQgUGFnZVJ1bnRp
bWVBZ2VudDo6ZGlkQ3JlYXRlTWFpbldvcmxkQ29udGV4dChGcmFtZSogZnJhbWUpCiB7CiAgICAg
bV9tYWluV29ybGRDb250ZXh0Q3JlYXRlZCA9IHRydWU7CiAKLSAgICBpZiAoIW1fZW5hYmxlZCkK
KyAgICBpZiAoIWVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOworCiAgICAgQVNTRVJUKG1fZnJv
bnRlbmREaXNwYXRjaGVyKTsKICAgICBTdHJpbmcgZnJhbWVJZCA9IG1fcGFnZUFnZW50LT5mcmFt
ZUlkKGZyYW1lKTsKICAgICBKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUgPSBtYWluV29ybGRF
eGVjU3RhdGUoZnJhbWUpOwpAQCAtMTE2LDEzICsxMTMsMTkgQEAgdm9pZCBQYWdlUnVudGltZUFn
ZW50OjpkaWRDcmVhdGVNYWluV29ybGRDb250ZXh0KEZyYW1lKiBmcmFtZSkKIAogdm9pZCBQYWdl
UnVudGltZUFnZW50OjpkaWRDcmVhdGVJc29sYXRlZENvbnRleHQoRnJhbWUqIGZyYW1lLCBKU0M6
OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUsIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7Ci0gICAg
aWYgKCFtX2VuYWJsZWQpCisgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKKwog
ICAgIEFTU0VSVChtX2Zyb250ZW5kRGlzcGF0Y2hlcik7CiAgICAgU3RyaW5nIGZyYW1lSWQgPSBt
X3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSk7CiAgICAgbm90aWZ5Q29udGV4dENyZWF0ZWQoZnJh
bWVJZCwgc2NyaXB0U3RhdGUsIG9yaWdpbiwgZmFsc2UpOwogfQogCitKU0M6OlZNKiBQYWdlUnVu
dGltZUFnZW50OjpnbG9iYWxWTSgpCit7CisgICAgcmV0dXJuIEpTRE9NV2luZG93QmFzZTo6Y29t
bW9uVk0oKTsKK30KKwogSW5qZWN0ZWRTY3JpcHQgUGFnZVJ1bnRpbWVBZ2VudDo6aW5qZWN0ZWRT
Y3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgaW50KiBleGVjdXRp
b25Db250ZXh0SWQpCiB7CiAgICAgaWYgKCFleGVjdXRpb25Db250ZXh0SWQpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCmluZGV4IGU2MmMzM2MuLjAyMDU4
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaApAQCAt
MzMsMTEgKzMzLDE0IEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCi0jaW5jbHVkZSAiSW5z
cGVjdG9yUnVudGltZUFnZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yV2ViRnJvbnRlbmREaXNw
YXRjaGVycy5oIgotI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCisjaW5jbHVkZSA8aW5zcGVjdG9y
L0luc3BlY3RvckpTRnJvbnRlbmREaXNwYXRjaGVycy5oPgorI2luY2x1ZGUgPGluc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KIAorbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBFeGVjU3RhdGU7Cit9CisKIG5hbWVzcGFjZSBJ
bnNwZWN0b3IgewogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogfQpAQCAtNDUsMTMgKzQ4
LDE1IEBAIGNsYXNzIEluamVjdGVkU2NyaXB0TWFuYWdlcjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OworY2xhc3MgRnJhbWU7CiBjbGFzcyBQYWdlOwog
Y2xhc3MgU2VjdXJpdHlPcmlnaW47Cit0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xh
c3MgUGFnZVJ1bnRpbWVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JSdW50aW1lQWdlbnQgeworY2xh
c3MgUGFnZVJ1bnRpbWVBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvclJ1
bnRpbWVBZ2VudCB7CiBwdWJsaWM6Ci0gICAgUGFnZVJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBQYWdlKiwgSW5zcGVj
dG9yUGFnZUFnZW50Kik7Ci0gICAgdmlydHVhbCB+UGFnZVJ1bnRpbWVBZ2VudCgpOworICAgIFBh
Z2VSdW50aW1lQWdlbnQoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBQYWdlKiwg
SW5zcGVjdG9yUGFnZUFnZW50Kik7CisgICAgdmlydHVhbCB+UGFnZVJ1bnRpbWVBZ2VudCgpIHsg
fQogICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbikg
b3ZlcnJpZGU7CkBAIC02Miw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENyZWF0ZUlz
b2xhdGVkQ29udGV4dChGcmFtZSosIEpTQzo6RXhlY1N0YXRlKiwgU2VjdXJpdHlPcmlnaW4qKTsK
IAogcHJpdmF0ZToKKyAgICB2aXJ0dWFsIEpTQzo6Vk0qIGdsb2JhbFZNKCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yRXZh
bChFcnJvclN0cmluZyosIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGZkMDcyN2EuLjgw
ODkxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTg1LDggKzg1LDkgQEAgV29ya2VySW5zcGVjdG9yQ29u
dHJvbGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihXb3JrZXJHbG9iYWxTY29wZSYgd29y
a2VyR2wKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKHN0ZDo6bWFrZV91bmlxdWU8UGFn
ZUluamVjdGVkU2NyaXB0TWFuYWdlcj4oKnRoaXMsIFBhZ2VJbmplY3RlZFNjcmlwdEhvc3Q6OmNy
ZWF0ZSgpKSkKICAgICAsIG1fcnVudGltZUFnZW50KG51bGxwdHIpCiB7Ci0gICAgYXV0byBydW50
aW1lQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlclJ1bnRpbWVBZ2VudD4obV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgJndvcmtl
ckdsb2JhbFNjb3BlKTsKKyAgICBhdXRvIHJ1bnRpbWVBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8
V29ya2VyUnVudGltZUFnZW50PihtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgJndvcmtl
ckdsb2JhbFNjb3BlKTsKICAgICBtX3J1bnRpbWVBZ2VudCA9IHJ1bnRpbWVBZ2VudC5nZXQoKTsK
KyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFdvcmtlclJ1bnRpbWVBZ2VudChtX3J1bnRp
bWVBZ2VudCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShydW50aW1lQWdlbnQpKTsK
IAogICAgIGF1dG8gY29uc29sZUFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJDb25zb2xl
QWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmgKaW5kZXggN2IyNDNmNC4uYWQzMmQzMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC01
MCwxMCArNTAsMTAgQEAgY2xhc3MgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI7CiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjsKLWNsYXNzIElu
c3BlY3RvclJ1bnRpbWVBZ2VudDsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBQ
YWdlSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CitjbGFz
cyBXb3JrZXJSdW50aW1lQWdlbnQ7CiAKIGNsYXNzIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIg
ZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JFbnZpcm9ubWVudCB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik7CkBAIC04Miw3ICs4
Miw3IEBAIHByaXZhdGU6CiAgICAgV29ya2VyR2xvYmFsU2NvcGUmIG1fd29ya2VyR2xvYmFsU2Nv
cGU7CiAgICAgUmVmUHRyPEluc3RydW1lbnRpbmdBZ2VudHM+IG1faW5zdHJ1bWVudGluZ0FnZW50
czsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUluamVjdGVkU2NyaXB0TWFuYWdlcj4gbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXI7Ci0gICAgSW5zcGVjdG9yUnVudGltZUFnZW50KiBtX3J1bnRpbWVB
Z2VudDsKKyAgICBXb3JrZXJSdW50aW1lQWdlbnQqIG1fcnVudGltZUFnZW50OwogICAgIEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yQWdlbnRSZWdpc3RyeSBtX2FnZW50czsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsPiBtX2Zyb250ZW5kQ2hhbm5lbDsKICAgICBSZWZQ
dHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5kRGlzcGF0
Y2hlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1l
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5j
cHAKaW5kZXggNmM0MDE3MC4uOGI1NjYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAKKyNpbmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKICNpbmNsdWRlICJJ
bnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRl
ICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCkBAIC00NiwxNyArNDcsMTEgQEAgdXNpbmcgbmFtZXNw
YWNlIEluc3BlY3RvcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Xb3JrZXJSdW50aW1lQWdl
bnQ6OldvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgV29y
a2VyR2xvYmFsU2NvcGUqIHdvcmtlckdsb2JhbFNjb3BlKQotICAgIDogSW5zcGVjdG9yUnVudGlt
ZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK1dvcmtl
clJ1bnRpbWVBZ2VudDo6V29ya2VyUnVudGltZUFnZW50KEluamVjdGVkU2NyaXB0TWFuYWdlciog
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBXb3JrZXJHbG9iYWxTY29wZSogd29ya2VyR2xvYmFsU2Nv
cGUpCisgICAgOiBJbnNwZWN0b3JSdW50aW1lQWdlbnQoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQog
ICAgICwgbV93b3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSkKICAgICAsIG1fcGF1
c2VkKGZhbHNlKQogewotICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0V29ya2VyUnVudGlt
ZUFnZW50KHRoaXMpOwotfQotCi1Xb3JrZXJSdW50aW1lQWdlbnQ6On5Xb3JrZXJSdW50aW1lQWdl
bnQoKQotewotICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0V29ya2VyUnVudGltZUFnZW50
KG51bGxwdHIpOwogfQogCiB2b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIqIGJhY2tlbmREaXNwYXRjaGVyKQpAQCAtNzIsOSArNjcsMTAg
QEAgdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24KIEluamVjdGVkU2NyaXB0IFdvcmtlclJ1bnRpbWVB
Z2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgaW50
KiBleGVjdXRpb25Db250ZXh0SWQpCiB7CiAgICAgaWYgKGV4ZWN1dGlvbkNvbnRleHRJZCkgewot
ICAgICAgICAqZXJyb3IgPSAiRXhlY3V0aW9uIGNvbnRleHQgaWQgaXMgbm90IHN1cHBvcnRlZCBm
b3Igd29ya2VycyBhcyB0aGVyZSBpcyBvbmx5IG9uZSBleGVjdXRpb24gY29udGV4dC4iOworICAg
ICAgICAqZXJyb3IgPSBBU0NJSUxpdGVyYWwoIkV4ZWN1dGlvbiBjb250ZXh0IGlkIGlzIG5vdCBz
dXBwb3J0ZWQgZm9yIHdvcmtlcnMgYXMgdGhlcmUgaXMgb25seSBvbmUgZXhlY3V0aW9uIGNvbnRl
eHQuIik7CiAgICAgICAgIHJldHVybiBJbmplY3RlZFNjcmlwdCgpOwogICAgIH0KKwogICAgIEpT
Qzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSA9IGV4ZWNTdGF0ZUZyb21Xb3JrZXJHbG9iYWxTY29w
ZShtX3dvcmtlckdsb2JhbFNjb3BlKTsKICAgICByZXR1cm4gaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KCktPmluamVjdGVkU2NyaXB0Rm9yKHNjcmlwdFN0YXRlKTsKIH0KQEAgLTk0LDYgKzkwLDExIEBA
IHZvaWQgV29ya2VyUnVudGltZUFnZW50OjpydW4oRXJyb3JTdHJpbmcqKQogICAgIG1fcGF1c2Vk
ID0gZmFsc2U7CiB9CiAKK0pTQzo6Vk0qIFdvcmtlclJ1bnRpbWVBZ2VudDo6Z2xvYmFsVk0oKQor
eworICAgIHJldHVybiBKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCk7Cit9CisKICNpZiBFTkFC
TEUoSkFWQVNDUklQVF9ERUJVR0dFUikKIHZvaWQgV29ya2VyUnVudGltZUFnZW50OjpwYXVzZVdv
cmtlckdsb2JhbFNjb3BlKFdvcmtlckdsb2JhbFNjb3BlKiBjb250ZXh0KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCmluZGV4IDAzZWFkODYuLmI3
MDUwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1l
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50
LmgKQEAgLTMzLDI5ICszMywzMCBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAotI2luY2x1
ZGUgIkluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIgorI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yUnVudGltZUFnZW50Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKK3R5cGVkZWYg
U3RyaW5nIEVycm9yU3RyaW5nOwogCi1jbGFzcyBXb3JrZXJSdW50aW1lQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yUnVudGltZUFnZW50IHsKK2NsYXNzIFdvcmtlclJ1bnRpbWVBZ2VudCBmaW5hbCA6
IHB1YmxpYyBJbnNwZWN0b3I6Okluc3BlY3RvclJ1bnRpbWVBZ2VudCB7CiBwdWJsaWM6Ci0gICAg
V29ya2VyUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3I6OkluamVj
dGVkU2NyaXB0TWFuYWdlciosIFdvcmtlckdsb2JhbFNjb3BlKik7Ci0gICAgdmlydHVhbCB+V29y
a2VyUnVudGltZUFnZW50KCk7CisgICAgV29ya2VyUnVudGltZUFnZW50KEluc3BlY3Rvcjo6SW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgV29ya2VyR2xvYmFsU2NvcGUqKTsKKyAgICB2aXJ0dWFsIH5X
b3JrZXJSdW50aW1lQWdlbnQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNw
ZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RGlzY29ubmVjdFJlYXNvbikgb3ZlcnJpZGU7CiAKLSAgICAvLyBQcm90b2NvbCBjb21tYW5kcy4K
ICAgICB2aXJ0dWFsIHZvaWQgcnVuKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CiAKICNpZiBFTkFC
TEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICB2b2lkIHBhdXNlV29ya2VyR2xvYmFsU2NvcGUo
V29ya2VyR2xvYmFsU2NvcGUqKTsKLSNlbmRpZiAvLyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dF
UikKKyNlbmRpZgogCiBwcml2YXRlOgorICAgIHZpcnR1YWwgSlNDOjpWTSogZ2xvYmFsVk0oKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRT
Y3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29sZSgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCB1bm11dGVDb25zb2xlKCkgb3ZlcnJpZGU7Cg==
</data>
<flag name="review"
          id="246161"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222190</attachid>
            <date>2014-01-24 20:39:56 -0800</date>
            <delta_ts>2014-01-24 20:39:56 -0800</delta_ts>
            <desc>[PATCH] For Bots 1</desc>
            <filename>runtime2.patch</filename>
            <type>text/plain</type>
            <size>61496</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxYTNkMzY1Li4xYjQzNjdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yNDIsNiArMjQyLDggQEAgc2V0
KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBpbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFt
ZS5jcHAKICAgICBpbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCiAgICAgaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JBZ2VudC5jcHAKKyAgICBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
clJ1bnRpbWVBZ2VudC5jcHAKKyAgICBpbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVu
dGltZUFnZW50LmNwcAogCiAgICAgaW50ZXJwcmV0ZXIvQWJzdHJhY3RQQy5jcHAKICAgICBpbnRl
cnByZXRlci9DYWxsRnJhbWUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2NTY2YTU5
Li43N2ZmOTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAx
NC0wMS0yNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE1vdmUgSW5zcGVjdG9yUnVudGltZUFnZW50IGludG8gSmF2YVNjcmlw
dENvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
NzYwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgQWRkIG5ldyBmaWxlcyB0byB0aGUgYnVpbGQuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oLgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwLgorICAgICAgICAoSW5z
cGVjdG9yOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVBZ2VudCk6Cisg
ICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6cGFyc2UpOgorICAgICAg
ICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlKToKKyAgICAgICAg
KEluc3BlY3Rvcjo6SW5zcGVjdG9yUnVudGltZUFnZW50OjpjYWxsRnVuY3Rpb25Pbik6CisgICAg
ICAgIChJbnNwZWN0b3I6Okluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyk6Cisg
ICAgICAgIC0gTW92ZSB0aGUgYWdlbnQgaW50byBKYXZhU2NyaXB0Q29yZS4KKyAgICAgICAgLSBN
b2Rlcm5pemUgYW5kIGNsZWFudXAuCisgICAgICAgIC0gTWFrZSBnbG9iYWxWTSBhIHB1cmUgdmly
dHVhbCBmdW5jdGlvbiBmb3Igc3ViY2xhc3NlcyB0byBpbXBsZW1lbnQuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Lmg6IEFkZGVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ6OkpT
R2xvYmFsT2JqZWN0UnVudGltZUFnZW50KToKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxP
YmplY3RSdW50aW1lQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZCk6CisgICAgICAg
IChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZCk6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0UnVudGlt
ZUFnZW50OjpnbG9iYWxWTSk6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0UnVu
dGltZUFnZW50OjppbmplY3RlZFNjcmlwdEZvckV2YWwpOgorICAgICAgICBTdHJhaWdodGZvcndh
cmQgSlNHbG9iYWxPYmplY3QgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rv
cjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpKU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIpOgorICAgICAgICBBZGQgYSBydW50aW1lIGFnZW50IHdoZW4gaW5zcGVj
dGluZyBhIEpTQ29udGV4dCEKKwogMjAxNC0wMS0yMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgSmF2YVNjcmlwdENhbGxGcmFtZSBhbmQgU2Ny
aXB0RGVidWdTZXJ2ZXIgaW50byBKYXZhU2NyaXB0Q29yZSBmb3IgaW5zcGVjdG9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGM0MTQzZDYuLjRkMTYzNWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC02NjUsNiAr
NjY1LDEwIEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuaCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuY3BwIFwKKwlTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBcCisJ
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFn
ZW50LmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9i
YWxPYmplY3RSdW50aW1lQWdlbnQuaCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwIFwKIAlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvQWJzdHJhY3RQQy5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9BYnN0cmFjdFBDLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9DYWNoZWRDYWxsLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2oKaW5kZXggN2YwMmNmMC4uNzJkY2EzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qCkBAIC00OTEsNiArNDkxLDggQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGluc3BlY3RvclxKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxTY3JpcHREZWJ1Z1NlcnZlci5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcYWdlbnRzXEluc3BlY3RvckFnZW50LmNwcCIg
Lz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxhZ2VudHNcSW5zcGVjdG9y
UnVudGltZUFnZW50LmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3Rv
clxhZ2VudHNcSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwIiAvPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5caW50ZXJwcmV0ZXJcQWJzdHJhY3RQQy5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxpbnRlcnByZXRlclxDYWxsRnJhbWUuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5caW50ZXJwcmV0ZXJcSW50ZXJwcmV0ZXIuY3BwIiAvPgpAQCAtMTA2
OCw2ICsxMDcwLDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxTY3Jp
cHREZWJ1Z0xpc3RlbmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcU2NyaXB0RGVidWdTZXJ2ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGlu
c3BlY3RvclxhZ2VudHNcSW5zcGVjdG9yQWdlbnQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGluc3BlY3RvclxhZ2VudHNcSW5zcGVjdG9yUnVudGltZUFnZW50LmgiIC8+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcYWdlbnRzXEpTR2xvYmFsT2JqZWN0UnVu
dGltZUFnZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnRlcnByZXRlclxB
YnN0cmFjdFBDLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnRlcnByZXRlclxD
YWNoZWRDYWxsLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnRlcnByZXRlclxD
YWxsRnJhbWUuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ouZmlsdGVycwppbmRleCAyZWE5ZjA1Li42YzZjMDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
LmZpbHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0zMDAsNiArMzAwLDEyIEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcYWdlbnRzXEluc3BlY3RvckFnZW50
LmNwcCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxl
PgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXGFnZW50c1xJbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwIj4KKyAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CisgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcYWdlbnRz
XEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcCI+CisgICAgICA8RmlsdGVyPmluc3BlY3Rv
cjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
aW50ZXJwcmV0ZXJcQWJzdHJhY3RQQy5jcHAiPgogICAgICAgPEZpbHRlcj5pbnRlcnByZXRlcjwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTc5Niw2ICsxODAyLDEyIEBACiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcYWdlbnRzXEluc3BlY3RvckFnZW50LmgiPgog
ICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxhZ2VudHNcSW5zcGVjdG9yUnVudGltZUFn
ZW50LmgiPgorICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxhZ2VudHNcSlNHbG9iYWxP
YmplY3RSdW50aW1lQWdlbnQuaCI+CisgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgor
ICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW50ZXJwcmV0ZXJc
QWJzdHJhY3RQQy5oIj4KICAgICAgIDxGaWx0ZXI+aW50ZXJwcmV0ZXI8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWM3ZGJkZC4uZjU4
NzM3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxMCw2ICs5MTAsMTAgQEAK
IAkJQTUwM0ZBMjIxODhFRkY2ODAwMTEwRjE0IC8qIFNjcmlwdERlYnVnTGlzdGVuZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MDNGQTIwMTg4RUZG
NjgwMDExMEYxNCAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTUwM0ZBMjUxODhFRkZGRDAwMTEwRjE0IC8q
IFNjcmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE1MDNGQTIzMTg4RUZGRkQwMDExMEYxNCAvKiBTY3JpcHREZWJ1Z1NlcnZl
ci5jcHAgKi87IH07CiAJCUE1MDNGQTI2MTg4RUZGRkQwMDExMEYxNCAvKiBTY3JpcHREZWJ1Z1Nl
cnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUw
M0ZBMjQxODhFRkZGRDAwMTEwRjE0IC8qIFNjcmlwdERlYnVnU2VydmVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTUwRTRCNjExODgwOURENTAw
NjhBNDZEIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTBFNEI1RDE4ODA5REQ1MDA2OEE0NkQgLyogSW5z
cGVjdG9yUnVudGltZUFnZW50LmNwcCAqLzsgfTsKKwkJQTUwRTRCNjIxODgwOURENTAwNjhBNDZE
IC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTUwRTRCNUUxODgwOURENTAwNjhBNDZEIC8qIEluc3BlY3RvclJ1
bnRpbWVBZ2VudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUE1MEU0QjYzMTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVB
Z2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NTBFNEI1RjE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3Bw
ICovOyB9OworCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE1MEU0QjYwMTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5o
ICovOyB9OwogCQlBNTEwMDdDMDE4N0NDM0M2MDBCMzg4NzkgLyogSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE1MTAwN0JFMTg3Q0MzQzYwMEIzODg3OSAvKiBKU0dsb2JhbE9iamVjdEluc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwICovOyB9OwogCQlBNTEwMDdDMTE4N0NDM0M2MDBCMzg4NzkgLyog
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTEwMDdCRjE4N0NDM0M2MDBCMzg4NzkgLyogSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggKi87IH07CiAJCUE1MTNFNUI3MTg1QjhC
RDMwMDdFOTVBRCAvKiBJbmplY3RlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTEzRTVCNTE4NUI4QkQzMDA3RTk1QUQgLyogSW5qZWN0
ZWRTY3JpcHQuY3BwICovOyB9OwpAQCAtMjMwOCw2ICsyMzEyLDEwIEBACiAJCUE1MDNGQTIwMTg4
RUZGNjgwMDExMEYxNCAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNjcmlwdERlYnVnTGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTUwM0ZBMjMxODhFRkZGRDAwMTEwRjE0IC8qIFNjcmlwdERlYnVnU2VydmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdERlYnVnU2Vy
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUwM0ZBMjQxODhFRkZGRDAw
MTEwRjE0IC8qIFNjcmlwdERlYnVnU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcmlwdERlYnVnU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUE1MEU0QjVEMTg4MDlERDUwMDY4QTQ2RCAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yUnVudGltZUFnZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTUwRTRCNUUxODgwOURENTAwNjhB
NDZEIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbnNwZWN0b3JSdW50aW1lQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTUwRTRCNUYxODgwOURENTAwNjhBNDZEIC8qIEpTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTR2xvYmFsT2Jq
ZWN0UnVudGltZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTUwRTRC
NjAxODgwOURENTAwNjhBNDZEIC8qIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1MTAwN0JFMTg3Q0MzQzYwMEIzODg3OSAv
KiBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUxMDA3QkYxODdDQzNDNjAwQjM4ODc5
IC8qIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUxM0U1QjUxODVCOEJEMzAwN0U5NUFEIC8qIElu
amVjdGVkU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
amVjdGVkU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzNTgsNiAr
NDM2NiwxMCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTVDRUVFMTIxODdGM0JBRDAwRTU1Qzk5
IC8qIEluc3BlY3RvckFnZW50LmNwcCAqLywKIAkJCQlBNUNFRUUxMzE4N0YzQkFEMDBFNTVDOTkg
LyogSW5zcGVjdG9yQWdlbnQuaCAqLywKKwkJCQlBNTBFNEI1RDE4ODA5REQ1MDA2OEE0NkQgLyog
SW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCAqLywKKwkJCQlBNTBFNEI1RTE4ODA5REQ1MDA2OEE0
NkQgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmggKi8sCisJCQkJQTUwRTRCNUYxODgwOURENTAw
NjhBNDZEIC8qIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmNwcCAqLywKKwkJCQlBNTBFNEI2
MDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gYWdlbnRzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ1
MDYsNiArNDUxOCw3IEBACiAJCQkJQTUzMjQzOTMxODU2OTcwOTAwMkVENjkyIC8qIENvZGVHZW5l
cmF0b3JJbnNwZWN0b3JTdHJpbmdzLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQTUzMjQzOTIxODU2
OTcwOTAwMkVENjkyIC8qIENvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkgaW4gSGVhZGVycyAqLywK
IAkJCQkwRjI0RTU0RjE3RUUyNzQ5MDBBQkIyMTcgLyogVGVtcFJlZ2lzdGVyU2V0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RS
dW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkZGM0MwMTc5ODY4OTQwMDAyRjQ2
MiAvKiBERkdGaWx0cmF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg0MEUyNzE4
N0M5ODFFMDA4NDNCMTAgLyogY3NzbWluLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQzJGQ0FFMTEx
N0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8sCkBA
IC01MTc2LDYgKzUxODksNyBAQAogCQkJCTBGMkI2NzA4MTdCNkI1QUIwMEE3QUUzRiAvKiBUeXBl
ZEFycmF5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0Qjk0REMxN0I5RjA3NTAw
REQwM0E0IC8qIFR5cGVkQXJyYXlJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjcw
OTE3QjZCNUFCMDBBN0FFM0YgLyogVHlwZWRBcnJheXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE1
MEU0QjYyMTg4MDlERDUwMDY4QTQ2RCAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkI2NzBCMTdCNkI1QUIwMEE3QUUzRiAvKiBUeXBlZEFycmF5VHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNDI3NEIxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Ni5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNDI3NDExNThFQkU4RDAwNENCOUZGIC8qIHVkaXM4Nl9k
ZWNvZGUuaCBpbiBIZWFkZXJzICovLApAQCAtNTc5OSw2ICs1ODEzLDcgQEAKIAkJCQkwRjJCREM0
QTE1MjI4MDlBMDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkZGQzk1RjE0RUY5MEJCMDBDNzI1MzIgLyogREZHVmlydHVhbFJlZ2lzdGVy
QWxsb2NhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzk3RjQxMTgyMDIxMTkw
MDJDOUIyNiAvKiBERkdXYXRjaHBvaW50Q29sbGVjdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE1MEU0QjYzMTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVB
Z2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkRCMkNFNzE3NDgzMEEyMDA3QjNDMUIgLyog
REZHV29ya2xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDMzNzAxNjVEQkI5MDAwNUFE
Mzg3IC8qIERpc2Fzc2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzA0NDdFRDE3QTBC
RDcwMDBGNTg5OEUgLyogRHVtcENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02MDAwLDYg
KzYwMTUsNyBAQAogCQkJCTE0NDY5RERGMTA3RUM3RTcwMDY1MDQ0NiAvKiBNYXRoT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTkwMjEzRTNEMTIzQTQwQzIwMEQ0MjJGMyAvKiBNZW1vcnlT
dGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQjU0NjdEMTRGNUNGRDYwMDJDMjk4
OSAvKiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUE1MEU0QjYxMTg4MDlERDUwMDY4QTQ2RCAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODZFQkYyRkYxNTYwRjA2QTAwOEU5MjIyIC8qIE5hbWVDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkVCRjMwMTE1NjBGMDZBMDA4RTkyMjIgLyog
TmFtZUluc3RhbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RUJGMzAzMTU2MEYwNkEwMDhF
OTIyMiAvKiBOYW1lUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVj
dEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGQ3YjQ2ZDMuLmFmNWVlYmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0
b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IApAQCAtNDYsMTAgKzQ3LDcgQEAgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpK
U0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIoSlNHbG9iYWxPYmoKICAgICAsIG1faW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsKG51bGxwdHIpCiB7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0
ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yQWdlbnQ+KCkpOwotCi0gICAgLy8gRklYTUU6IENyZWF0
ZSBSdW50aW1lQWdlbnQuCi0gICAgLy8gRklYTUU6IENyZWF0ZSBEZWJ1Z2dlckFnZW50LgotICAg
ICh2b2lkKW1fZ2xvYmFsT2JqZWN0OyAvLyBXaWxsIGJlIHVzZWQgYnkgUnVudGltZUFnZW50Lgor
ICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEpTR2xvYmFsT2JqZWN0UnVudGlt
ZUFnZW50PihtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgbV9nbG9iYWxPYmplY3QpKTsK
IH0KIAogSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjp+SlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcApzaW1pbGFyaXR5IGluZGV4IDkw
JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFn
ZW50LmNwcApyZW5hbWUgdG8gU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAppbmRleCAyODY1N2U5Li5hMjc0ZmI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50
aW1lQWdlbnQuY3BwCkBAIC0xLDQgKzEsNSBAQAogLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI5LDQz
ICszMCwzOSBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCi0KICNpbmNsdWRlICJJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCIKIAotI2luY2x1ZGUg
IkpTRE9NV2luZG93QmFzZS5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5o
PgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaD4KLSNpbmNsdWRl
IDxpbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmg+Ci0jaW5jbHVkZSA8cGFyc2VyL1BhcnNlckVy
cm9yLmg+Ci0jaW5jbHVkZSA8cGFyc2VyL1NvdXJjZUNvZGUuaD4KLSNpbmNsdWRlIDxydW50aW1l
L0NvbXBsZXRpb24uaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCisKKyNpbmNsdWRlICJDb21wbGV0aW9uLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRT
Y3JpcHQuaCIKKyNpbmNsdWRlICJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIKKyNpbmNsdWRlICJJ
bnNwZWN0b3JWYWx1ZXMuaCIKKyNpbmNsdWRlICJKU0xvY2suaCIKKyNpbmNsdWRlICJQYXJzZXJF
cnJvci5oIgorI2luY2x1ZGUgIlNvdXJjZUNvZGUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0jaW5jbHVkZSA8aW5zcGVj
dG9yL1NjcmlwdERlYnVnU2VydmVyLmg+CisjaW5jbHVkZSAiU2NyaXB0RGVidWdTZXJ2ZXIuaCIK
ICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi11c2luZyBuYW1lc3BhY2UgSW5zcGVj
dG9yOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogc3Rh
dGljIGJvb2wgYXNCb29sKGNvbnN0IGJvb2wqIGNvbnN0IGIpCiB7CiAgICAgcmV0dXJuIGIgPyAq
YiA6IGZhbHNlOwogfQogCi1JbnNwZWN0b3JSdW50aW1lQWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVB
Z2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbmplY3RlZFNj
cmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKLSAgICA6IEluc3BlY3RvckFnZW50
QmFzZShBU0NJSUxpdGVyYWwoIlJ1bnRpbWUiKSwgaW5zdHJ1bWVudGluZ0FnZW50cykKLSAgICAs
IG1fZW5hYmxlZChmYWxzZSkKK0luc3BlY3RvclJ1bnRpbWVBZ2VudDo6SW5zcGVjdG9yUnVudGlt
ZUFnZW50KEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAg
IDogSW5zcGVjdG9yQWdlbnRCYXNlKEFTQ0lJTGl0ZXJhbCgiUnVudGltZSIpKQogICAgICwgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogI2lmIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKQogICAgICwgbV9zY3JpcHREZWJ1Z1NlcnZlcihudWxscHRyKQog
I2VuZGlmCisgICAgLCBtX2VuYWJsZWQoZmFsc2UpCiB7CiB9CiAKQEAgLTk0LDcgKzkxLDcgQEAg
c3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6UnVudGltZTo6RXJyb3JS
YW5nZT4gYnVpbGRFcnJvclJhbmdlT2IKIAogdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnBh
cnNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBJbnNwZWN0b3I6OlR5
cGVCdWlsZGVyOjpSdW50aW1lOjpTeW50YXhFcnJvclR5cGU6OkVudW0qIHJlc3VsdCwgSW5zcGVj
dG9yOjpUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PFN0cmluZz4qIG1lc3NhZ2UsIFJlZlB0cjxJbnNw
ZWN0b3I6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpFcnJvclJhbmdlPiYgcmFuZ2UpCiB7Ci0gICAg
Vk0qIHZtID0gSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpOworICAgIFZNKiB2bSA9IGdsb2Jh
bFZNKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwogCiAgICAgUGFyc2VyRXJyb3IgZXJy
b3I7CkBAIC0xMjYsNiArMTIzLDcgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1
YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBleHAKICAgICBJbmpl
Y3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IGluamVjdGVkU2NyaXB0Rm9yRXZhbChlcnJvclN0
cmluZywgZXhlY3V0aW9uQ29udGV4dElkKTsKICAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9W
YWx1ZSgpKQogICAgICAgICByZXR1cm47CisKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dF
UikKICAgICBTY3JpcHREZWJ1Z1NlcnZlcjo6UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSBwcmV2aW91
c1BhdXNlT25FeGNlcHRpb25zU3RhdGUgPSBTY3JpcHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25F
eGNlcHRpb25zOwogICAgIGlmIChhc0Jvb2woZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVD
b25zb2xlKSkKQEAgLTE0OCw5ICsxNDYsMTAgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6
OmNhbGxGdW5jdGlvbk9uKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW4KIHsK
ICAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLT5pbmplY3RlZFNjcmlwdEZvck9iamVjdElkKG9iamVjdElkKTsKICAgICBpZiAoaW5qZWN0
ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKSB7Ci0gICAgICAgICplcnJvclN0cmluZyA9ICJJbnNwZWN0
ZWQgZnJhbWUgaGFzIGdvbmUiOworICAgICAgICAqZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwo
Ikluc3BlY3RlZCBmcmFtZSBoYXMgZ29uZSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCiAg
ICAgU3RyaW5nIGFyZ3VtZW50czsKICAgICBpZiAob3B0aW9uYWxBcmd1bWVudHMpCiAgICAgICAg
IGFyZ3VtZW50cyA9ICgqb3B0aW9uYWxBcmd1bWVudHMpLT50b0pTT05TdHJpbmcoKTsKQEAgLTE3
Nyw3ICsxNzYsNyBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyhF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZwogewogICAgIEluamVjdGVkU2Ny
aXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2Ny
aXB0Rm9yT2JqZWN0SWQob2JqZWN0SWQpOwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1Zh
bHVlKCkpIHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIkluc3BlY3RlZCBmcmFtZSBoYXMgZ29u
ZSI7CisgICAgICAgICplcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiSW5zcGVjdGVkIGZyYW1l
IGhhcyBnb25lIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIxMSwxMyArMjEwLDYg
QEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnJ1bihFcnJvclN0cmluZyopCiB7CiB9CiAK
LSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLXZvaWQgSW5zcGVjdG9yUnVudGltZUFn
ZW50OjpzZXRTY3JpcHREZWJ1Z1NlcnZlcihTY3JpcHREZWJ1Z1NlcnZlciogc2NyaXB0RGVidWdT
ZXJ2ZXIpCi17Ci0gICAgbV9zY3JpcHREZWJ1Z1NlcnZlciA9IHNjcmlwdERlYnVnU2VydmVyOwot
fQotI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCit9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIAogI2VuZGlmIC8vIEVOQUJMRShJ
TlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UnVudGltZUFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuaApzaW1pbGFyaXR5IGluZGV4IDU3JQpyZW5hbWUgZnJvbSBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKcmVuYW1lIHRv
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVB
Z2VudC5oCmluZGV4IGUxNTg2NWIuLjg0N2UyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaApAQCAtMSw0ICsx
LDUgQEAKIC8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zMyw4NCArMzQsNjUgQEAKIAogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAKLSNpbmNsdWRlICJJbnNwZWN0b3JXZWJBZ2VudEJhc2UuaCIKLSNpbmNs
dWRlICJJbnNwZWN0b3JXZWJCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKLSNpbmNsdWRlIDxpbnNwZWN0
b3IvSW5zcGVjdG9ySlNCYWNrZW5kRGlzcGF0Y2hlcnMuaD4KLSNpbmNsdWRlIDxpbnNwZWN0b3Iv
SW5zcGVjdG9ySlNGcm9udGVuZERpc3BhdGNoZXJzLmg+CisjaW5jbHVkZSAiSW5zcGVjdG9ySlNC
YWNrZW5kRGlzcGF0Y2hlcnMuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JKU0Zyb250ZW5kRGlzcGF0
Y2hlcnMuaCIKKyNpbmNsdWRlICJpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmgiCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAorbmFt
ZXNwYWNlIEpTQyB7CitjbGFzcyBWTTsKK30KKwogbmFtZXNwYWNlIEluc3BlY3RvciB7CisKIGNs
YXNzIEluamVjdGVkU2NyaXB0OwogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogY2xhc3Mg
SW5zcGVjdG9yQXJyYXk7Ci1jbGFzcyBJbnNwZWN0b3JPYmplY3Q7Ci1jbGFzcyBJbnNwZWN0b3JW
YWx1ZTsKIGNsYXNzIFNjcmlwdERlYnVnU2VydmVyOwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7Ci1jbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsK
LQogdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKLWNsYXNzIEluc3BlY3RvclJ1bnRpbWVB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6Okluc3Bl
Y3RvclJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIgeworY2xhc3MgSlNfRVhQT1JUX1BS
SVZBVEUgSW5zcGVjdG9yUnVudGltZUFnZW50IDogcHVibGljIEluc3BlY3RvckFnZW50QmFzZSwg
cHVibGljIEluc3BlY3RvclJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvclJ1bnRpbWVBZ2VudCk7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+SW5zcGVjdG9yUnVudGltZUFnZW50KCk7CiAKLSAgICAvLyBQYXJ0IG9mIHRoZSBw
cm90b2NvbC4KICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3ZlcnJpZGUg
eyBtX2VuYWJsZWQgPSB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJp
bmcqKSBvdmVycmlkZSB7IG1fZW5hYmxlZCA9IGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHBh
cnNlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBJbnNwZWN0b3I6OlR5
cGVCdWlsZGVyOjpSdW50aW1lOjpTeW50YXhFcnJvclR5cGU6OkVudW0qIHJlc3VsdCwgSW5zcGVj
dG9yOjpUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PFN0cmluZz4qIG1lc3NhZ2UsIFJlZlB0cjxJbnNw
ZWN0b3I6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpFcnJvclJhbmdlPiYpIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCBldmFsdWF0ZShFcnJvclN0cmluZyosCi0gICAgICAgICAgICAgICAgICBj
b25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcq
IG9iamVjdEdyb3VwLAotICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCogaW5jbHVkZUNvbW1h
bmRMaW5lQVBJLAotICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCogZG9Ob3RQYXVzZU9uRXhj
ZXB0aW9uc0FuZE11dGVDb25zb2xlLAotICAgICAgICAgICAgICAgICAgY29uc3QgaW50KiBleGVj
dXRpb25Db250ZXh0SWQsCi0gICAgICAgICAgICAgICAgICBjb25zdCBib29sKiByZXR1cm5CeVZh
bHVlLAotICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3LAotICAg
ICAgICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJl
bW90ZU9iamVjdD4mIHJlc3VsdCwKLSAgICAgICAgICAgICAgICAgIEluc3BlY3Rvcjo6VHlwZUJ1
aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IHZvaWQgY2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJpbmcqLAotICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFN0cmluZyYgZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlZlB0
cjxJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5Piogb3B0aW9uYWxBcmd1bWVudHMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBib29sKiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0
ZUNvbnNvbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sKiByZXR1cm5CeVZh
bHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCogZ2VuZXJhdGVQcmV2aWV3
LAotICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6
OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU9iamVjdChFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgb2JqZWN0SWQpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0
aWVzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgYm9vbCogb3du
UHJvcGVydGllcywgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkFycmF5PEluc3BlY3Rv
cjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlByb3BlcnR5RGVzY3JpcHRvcj4+JiByZXN1bHQsIFJl
ZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpBcnJheTxJbnNwZWN0b3I6OlR5cGVCdWlsZGVy
OjpSdW50aW1lOjpJbnRlcm5hbFByb3BlcnR5RGVzY3JpcHRvcj4+JiBpbnRlcm5hbFByb3BlcnRp
ZXMpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlT2JqZWN0R3JvdXAoRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2UoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlN5bnRheEVycm9yVHlwZTo6RW51bSogcmVzdWx0
LCBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8U3RyaW5nPiogbWVzc2FnZSwgUmVm
UHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkVycm9yUmFuZ2U+Jikgb3ZlcnJp
ZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBjb25zdCBib29s
KiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGRvTm90UGF1c2VPbkV4Y2VwdGlv
bnNBbmRNdXRlQ29uc29sZSwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQsIGNvbnN0IGJv
b2wqIHJldHVybkJ5VmFsdWUsIGNvbnN0IGJvb2wqIGdlbmVyYXRlUHJldmlldywgUmVmUHRyPElu
c3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgSW5z
cGVjdG9yOjpUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pIG92ZXJyaWRl
IGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBjYWxsRnVuY3Rpb25PbihFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgUmVm
UHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yQXJyYXk+KiBvcHRpb25hbEFyZ3VtZW50cywgY29uc3Qg
Ym9vbCogZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBjb25zdCBib29sKiBy
ZXR1cm5CeVZhbHVlLCBjb25zdCBib29sKiBnZW5lcmF0ZVByZXZpZXcsIFJlZlB0cjxJbnNwZWN0
b3I6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsIEluc3BlY3Rv
cjo6VHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKSBvdmVycmlkZSBmaW5h
bDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU9iamVjdChFcnJvclN0cmluZyosIGNvbnN0IEVy
cm9yU3RyaW5nJiBvYmplY3RJZCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGdl
dFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBi
b29sKiBvd25Qcm9wZXJ0aWVzLCBSZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk8
SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6UnVudGltZTo6UHJvcGVydHlEZXNjcmlwdG9yPj4mIHJl
c3VsdCwgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkFycmF5PEluc3BlY3Rvcjo6VHlw
ZUJ1aWxkZXI6OlJ1bnRpbWU6OkludGVybmFsUHJvcGVydHlEZXNjcmlwdG9yPj4mIGludGVybmFs
UHJvcGVydGllcykgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VPYmpl
Y3RHcm91cChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApIG92ZXJyaWRl
IGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBydW4oRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsKIAog
I2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIHZvaWQgc2V0U2NyaXB0RGVidWdT
ZXJ2ZXIoSW5zcGVjdG9yOjpTY3JpcHREZWJ1Z1NlcnZlciopOworICAgIHZvaWQgc2V0U2NyaXB0
RGVidWdTZXJ2ZXIoU2NyaXB0RGVidWdTZXJ2ZXIqIHNjcmlwdERlYnVnU2VydmVyKSB7IG1fc2Ny
aXB0RGVidWdTZXJ2ZXIgPSBzY3JpcHREZWJ1Z1NlcnZlcjsgfQogI2VuZGlmCiAKKyAgICBib29s
IGVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KKwogcHJvdGVjdGVkOgotICAg
IEluc3BlY3RvclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yOjpJ
bmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKLSAgICB2aXJ0dWFsIEluc3BlY3Rvcjo6SW5qZWN0ZWRT
Y3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBleGVj
dXRpb25Db250ZXh0SWQpID0gMDsKKyAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKik7CisKKyAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0TWFuYWdlcigpIHsgcmV0dXJuIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOyB9CisKKyAgICB2
aXJ0dWFsIEpTQzo6Vk0qIGdsb2JhbFZNKCkgPSAwOworICAgIHZpcnR1YWwgSW5qZWN0ZWRTY3Jp
cHQgaW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBleGVjdXRp
b25Db250ZXh0SWQpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29sZSgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29sZSgpID0gMDsKIAotICAgIEluc3BlY3Rvcjo6
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIoKSB7IHJldHVybiBt
X2luamVjdGVkU2NyaXB0TWFuYWdlcjsgfQotICAgIGJvb2wgbV9lbmFibGVkOwotCiBwcml2YXRl
OgotICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBtX2luamVjdGVkU2NyaXB0
TWFuYWdlcjsKKyAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIEluc3BlY3Rvcjo6U2Ny
aXB0RGVidWdTZXJ2ZXIqIG1fc2NyaXB0RGVidWdTZXJ2ZXI7CisgICAgU2NyaXB0RGVidWdTZXJ2
ZXIqIG1fc2NyaXB0RGVidWdTZXJ2ZXI7CiAjZW5kaWYKKyAgICBib29sIG1fZW5hYmxlZDsKIH07
CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCiAj
ZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKICNlbmRpZiAvLyBJbnNwZWN0b3JSdW50aW1lQWdl
bnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyOTE5YzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdFJ1bnRpbWVB
Z2VudC5jcHAKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdFJ1bnRpbWVBZ2VudC5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUg
IkpTR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHQuaCIKKyNpbmNsdWRl
ICJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFt
ZXNwYWNlIEluc3BlY3RvciB7CisKK0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50OjpKU0dsb2Jh
bE9iamVjdFJ1bnRpbWVBZ2VudChJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0
TWFuYWdlciwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKKyAgICA6IEluc3BlY3RvclJ1
bnRpbWVBZ2VudChpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgLCBtX2dsb2JhbE9iamVjdChn
bG9iYWxPYmplY3QpCit7Cit9CisKK3ZvaWQgSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQ6OmRp
ZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGZyb250
ZW5kQ2hhbm5lbCwgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqIGJhY2tlbmREaXNwYXRjaGVy
KQoreworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0
b3JSdW50aW1lRnJvbnRlbmREaXNwYXRjaGVyPihmcm9udGVuZENoYW5uZWwpOworICAgIG1fYmFj
a2VuZERpc3BhdGNoZXIgPSBJbnNwZWN0b3JSdW50aW1lQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0
ZShiYWNrZW5kRGlzcGF0Y2hlciwgdGhpcyk7Cit9CisKK3ZvaWQgSlNHbG9iYWxPYmplY3RSdW50
aW1lQWdlbnQ6OndpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5l
Y3RSZWFzb24pCit7CisgICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOworICAgIG1f
YmFja2VuZERpc3BhdGNoZXIuY2xlYXIoKTsKK30KKworVk0qIEpTR2xvYmFsT2JqZWN0UnVudGlt
ZUFnZW50OjpnbG9iYWxWTSgpCit7CisgICAgcmV0dXJuICZtX2dsb2JhbE9iamVjdC52bSgpOwor
fQorCitJbmplY3RlZFNjcmlwdCBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudDo6aW5qZWN0ZWRT
Y3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgaW50KiBleGVjdXRp
b25Db250ZXh0SWQpCit7CisgICAgQVNTRVJUX1VOVVNFRChleGVjdXRpb25Db250ZXh0SWQsICFl
eGVjdXRpb25Db250ZXh0SWQpOworCisgICAgSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlID0g
bV9nbG9iYWxPYmplY3QuZ2xvYmFsRXhlYygpOworICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVk
U2NyaXB0ID0gaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKCktPmluamVjdGVkU2NyaXB0Rm9yKHNjcmlw
dFN0YXRlKTsKKyAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKQorICAgICAgICAq
ZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIkludGVybmFsIGVycm9yOiBtYWluIHdvcmxkIGV4
ZWN1dGlvbiBjb250ZXh0IG5vdCBmb3VuZC4iKTsKKworICAgIHJldHVybiBpbmplY3RlZFNjcmlw
dDsKK30KKworfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5T
UEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEwODk4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0UnVudGltZUFn
ZW50LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnRfaAorI2RlZmlu
ZSBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudF9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQor
CisjaW5jbHVkZSAiSW5zcGVjdG9yUnVudGltZUFnZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKworbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBKU0dsb2JhbE9iamVjdDsKK30KKwor
bmFtZXNwYWNlIEluc3BlY3RvciB7CisKK2NsYXNzIEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50
IGZpbmFsIDogcHVibGljIEluc3BlY3RvclJ1bnRpbWVBZ2VudCB7CitwdWJsaWM6CisgICAgSlNH
bG9iYWxPYmplY3RSdW50aW1lQWdlbnQoSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSlNDOjpKU0ds
b2JhbE9iamVjdCYpOworCisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
ciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwg
SlNDOjpWTSogZ2xvYmFsVk0oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCogZXhlY3V0aW9u
Q29udGV4dElkKSBvdmVycmlkZTsKKworICAgIC8vIEZJWE1FOiBKYXZhU2NyaXB0IGluc3BlY3Rv
ciBkb2VzIG5vdCB5ZXQgaGF2ZSBhIGNvbnNvbGUgb2JqZWN0IHRvIG11dGUuCisgICAgdmlydHVh
bCB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHVubXV0
ZUNvbnNvbGUoKSBvdmVycmlkZSB7IH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
SW5zcGVjdG9yUnVudGltZUZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7
CisgICAgUmVmUHRyPEluc3BlY3RvclJ1bnRpbWVCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNrZW5k
RGlzcGF0Y2hlcjsKKyAgICBKU0M6OkpTR2xvYmFsT2JqZWN0JiBtX2dsb2JhbE9iamVjdDsKK307
CisKK30gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RP
UikKKworI2VuZGlmIC8vICFkZWZpbmVkKEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50X2gpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IGM5MDk2ODcuLmQwM2U4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xNjAzLDcgKzE2MDMsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKLSAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVRleHRFZGl0
b3IuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNWM0ZmM0Zi4uMGYxYzU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE0
LTAxLTI0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogTW92ZSBJbnNwZWN0b3JSdW50aW1lQWdlbnQgaW50byBKYXZhU2NyaXB0
Q29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3
NjA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4gTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
QWxsSW5PbmUuY3BwOgorICAgICAgICBSZW1vdmUgV2ViQ29yZSBJbnNwZWN0b3JSdW50aW1lQWdl
bnQuCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclJ1bnRpbWVBZ2VudC5oOiBBZGRlZC4KKyAgICAgICAgQWRkIEphdmFTY3JpcHRDb3JlIElu
c3BlY3RvclJ1bnRpbWVBZ2VudC4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3Bl
Y3RvckNvbnRyb2xsZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAgICAgIE5ldyBjb25zdHJ1Y3RvcnMgZm9yIHRoZSBy
dW50aW1lIGFnZW50LgorCisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlUnVudGltZUFnZW50OjpQYWdlUnVudGltZUFnZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VSdW50aW1lQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVu
dGltZUFnZW50OjpkaXNhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6
OmRpZENyZWF0ZU1haW5Xb3JsZENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRp
bWVBZ2VudDo6ZGlkQ3JlYXRlSXNvbGF0ZWRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VSdW50aW1lQWdlbnQ6Omdsb2JhbFZNKToKKyAgICAgICAgTW9kZXJuaXplIGFuZCBpbXBsZW1l
bnQgZ2xvYmFsVk0uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6OldvcmtlclJ1bnRpbWVBZ2VudCk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW50aW1lQWdlbnQ6Omdsb2JhbFZNKToKKyAgICAgICAg
TW9kZXJuaXplIGFuZCBpbXBsZW1lbnQgZ2xvYmFsVk0uCisKIDIwMTQtMDEtMjMgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIEphdmFTY3JpcHRD
YWxsRnJhbWUgYW5kIFNjcmlwdERlYnVnU2VydmVyIGludG8gSmF2YVNjcmlwdENvcmUgZm9yIGlu
c3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJlZWEyMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yUnVudGltZUFnZW50LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVf
RldEX0luc3BlY3RvclJ1bnRpbWVBZ2VudF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0luc3BlY3Rv
clJ1bnRpbWVBZ2VudF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUnVudGlt
ZUFnZW50Lmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGZhN2Yx
YTAuLmM1ZDQwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzgyNiw4ICsz
ODI2LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmggXAotCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSdW50aW1lQWdlbnQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UnVudGltZUFnZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVNoZWV0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVkaXRv
ci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKaW5kZXggYzU1NWI3Ni4uNjE4ZjZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xNzc3OCwxNCArMTc3NzgsNiBAQAogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0Ns
Q29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JS
dW50aW1lQWdlbnQuY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCI+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdS
ZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRG
cm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxl
YXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTg1MDEsNyArMTg0OTMsNiBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9y
XEluamVjdGVkU2NyaXB0SG9zdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yXEluamVjdGVkU2NyaXB0TWFuYWdlci5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yXEluamVj
dGVkU2NyaXB0TW9kdWxlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJk
aW5nSGVhZGVyc1xpbnNwZWN0b3JcSW5zcGVjdG9yQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3RvclxJbnNwZWN0b3JBZ2VudEJh
c2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGlu
c3BlY3RvclxJbnNwZWN0b3JBZ2VudFJlZ2lzdHJ5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xpbnNwZWN0b3JcSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIuaCIgLz4KQEAgLTE4NTEyLDYgKzE4NTAzLDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3RvclxJbnNwZWN0b3JKU1R5cGVCdWlsZGVy
cy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNcaW5z
cGVjdG9yXEluc3BlY3RvclR5cGVCdWlsZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xpbnNwZWN0b3JcSW5zcGVjdG9yVmFsdWVzLmgiIC8+Cisg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xpbnNwZWN0b3JcYWdl
bnRzXEluc3BlY3RvckFnZW50LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3
YXJkaW5nSGVhZGVyc1xpbnNwZWN0b3JcYWdlbnRzXEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNcbWFzbVxYODZB
c3NlbWJsZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXHBhcnNlclxTb3VyY2VDb2RlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxG
b3J3YXJkaW5nSGVhZGVyc1xwYXJzZXJcU291cmNlUHJvdmlkZXIuaCIgLz4KQEAgLTIwODgwLDcg
KzIwODczLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0
b3JQYWdlQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JQcm9maWxlckFnZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxp
bnNwZWN0b3JcSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0eWxlU2hlZXQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JTdHlsZVRleHRFZGl0
b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JU
aW1lbGluZUFnZW50LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggNTdlMzdlYS4uOWQ4OTZlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycwpAQCAtMjc0LDYgKzI3NCw5IEBACiAgICAgPEZpbHRlciBJbmNsdWRlPSJGb3J3
YXJkaW5nSGVhZGVyc1xpbnNwZWN0b3IiPgogICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezEzMmJh
ZGUyLTBhYWItNjI3NC0wYWRmZi1hZThhZWQ1YWVkNH08L1VuaXF1ZUlkZW50aWZpZXI+CiAgICAg
PC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJGb3J3YXJkaW5nSGVhZGVyc1xpbnNwZWN0
b3JcYWdlbnRzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPnsxMzJiYWRlMi0wYWFiLTYyNzQt
MGFkZmYtYWJjZGFjYmRhYmN9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgogICAg
IDxGaWx0ZXIgSW5jbHVkZT0iaGlzdG9yeSI+CiAgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NmYz
OWRlZGYtMmQzYS00MTRlLTgzZmUtN2JmNjRmOTExY2ZifTwvVW5pcXVlSWRlbnRpZmllcj4KICAg
ICA8L0ZpbHRlcj4KQEAgLTQ4MTgsOSArNDgyMSw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAiPgogICAgICAgPEZpbHRl
cj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIj4KLSAgICAgIDxG
aWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAiPgogICAgICAg
PEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEyMDg5LDkg
KzEyMDg5LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJz
XGluc3BlY3RvclxJbmplY3RlZFNjcmlwdE1vZHVsZS5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2Fy
ZGluZ0hlYWRlcnNcaW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xpbnNwZWN0b3JcSW5zcGVjdG9y
QWdlbnQuaCI+Ci0gICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3RvcjwvRmls
dGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2Fy
ZGluZ0hlYWRlcnNcaW5zcGVjdG9yXEluc3BlY3RvckFnZW50QmFzZS5oIj4KICAgICAgIDxGaWx0
ZXI+Rm9yd2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CkBAIC0xMjEyMiw2ICsxMjExOSwxMiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yXEluc3BlY3RvclZhbHVlcy5oIj4KICAgICAgIDxGaWx0
ZXI+Rm9yd2FyZGluZ0hlYWRlcnNcaW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xpbnNwZWN0b3Jc
YWdlbnRzXEluc3BlY3RvckFnZW50LmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVy
c1xpbnNwZWN0b3I8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGluc3BlY3RvclxhZ2VudHNcSW5zcGVjdG9yUnVu
dGltZUFnZW50LmgiPgorICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1xpbnNwZWN0b3I8
L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhp
c3RvcnlcQmFja0ZvcndhcmRDbGllbnQuaCI+CiAgICAgICA8RmlsdGVyPmhpc3Rvcnk8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTEyMzUzLDkgKzEyMzU2LDYgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgiPgogICAg
ICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCI+Ci0g
ICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0eWxlU2hlZXQuaCI+CiAg
ICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU4
ZjI3OWEuLjFkMDRkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTIyNjUsNyArMjI2NSw2IEBACiAJCTdBNzRFQ0JBMTAxODM5
QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E3NEVDQjgxMDE4MzlBNTAwQkY5MzlF
IC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgKi87IH07CiAJCTdBNzRFQ0JCMTAxODM5
QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNzRFQ0I5MTAxODM5QTYwMEJGOTM5RSAv
KiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCAqLzsgfTsKIAkJN0E3NEVDQkQxMDE4MzlEQTAw
QkY5MzlFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBNzRFQ0JDMTAxODM5REEwMEJGOTM5
RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgKi87IH07Ci0JCTdBQTM2NUVF
MTJFNzI2NTQwMERDQTI0MiAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FBMzY1RUQxMkU3MjY1NDAwRENB
MjQyIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgKi87IH07CiAJCTdBQTUxREQ1MTQ4NTA2
QTkwMEFEMjc1MiAvKiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUE1MUREMzE0ODUwNkE5MDBBRDI3NTIgLyog
SW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwICovOyB9OwogCQk3QUE1MURENjE0ODUwNkE5MDBBRDI3
NTIgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdBQTUxREQ0MTQ4NTA2QTkwMEFEMjc1MiAvKiBJbnNwZWN0b3JN
ZW1vcnlBZ2VudC5oICovOyB9OwogCQk3QUFCQTI1OTE0QkM2MTMzMDBBQTlBMTEgLyogRE9NRWRp
dG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdB
QUJBMjU3MTRCQzYxMzMwMEFBOUExMSAvKiBET01FZGl0b3IuY3BwICovOyB9OwpAQCAtMjI3NSw3
ICsyMjc0LDYgQEAKIAkJN0FDRDg4RDMxNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4
ZWREQkFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdBQ0Q4OEQxMTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJbmRleGVkREJBZ2VudC5j
cHAgKi87IH07CiAJCTdBQ0Q4OEQ0MTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJbmRleGVk
REJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0FDRDg4RDIxNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50LmggKi87
IH07CiAJCTdBREU3MjI2MTBDQkJCOUIwMDZCM0IzQSAvKiBDb250ZXh0TWVudVByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QURFNzIyNTEw
Q0JCQjlCMDA2QjNCM0EgLyogQ29udGV4dE1lbnVQcm92aWRlci5oICovOyB9OwotCQk3QUYxMUE1
QTEyRTcyNzQ5MDA2MUYyM0MgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUYxMUE1OTEyRTcyNzQ5MDA2MUYy
M0MgLyogSW5zcGVjdG9yUnVudGltZUFnZW50LmggKi87IH07CiAJCTdCRTc0MjczODFGQTkwNkZC
QjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZH
R3JhcGhpY3NFbGVtZW50LmggKi87IH07CiAJCTdDMkJERDNEMTdDN0Y5OEMwMDM4RkYxNSAvKiBK
U0RPTUdsb2JhbE9iamVjdFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0MyQkREM0IxN0M3Rjk4QjAwMzhGRjE1IC8qIEpTRE9NR2xvYmFsT2Jq
ZWN0VGFzay5jcHAgKi87IH07CiAJCTdDMkJERDNFMTdDN0Y5OEMwMDM4RkYxNSAvKiBKU0RPTUds
b2JhbE9iamVjdFRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDMkJERDNDMTdDN0Y5OEIwMDM4RkYxNSAvKiBKU0RPTUdsb2JhbE9iamVjdFRhc2su
aCAqLzsgfTsKQEAgLTkyMDQsNyArOTIwMiw2IEBACiAJCTdBNzRFQ0I4MTAxODM5QTUwMEJGOTM5
RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0E3NEVDQjkxMDE4MzlBNjAwQkY5MzlFIC8qIEluc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E3NEVD
QkMxMDE4MzlEQTAwQkY5MzlFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW5zcGVjdG9yRnJvbnRlbmRI
b3N0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0FBMzY1RUQxMkU3
MjY1NDAwRENBMjQyIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QUE1MUREMzE0ODUwNkE5MDBBRDI3NTIgLyogSW5zcGVj
dG9yTWVtb3J5QWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QUE1MURENDE0ODUwNkE5MDBBRDI3NTIgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yTWVtb3J5QWdlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0FBQkEyNTcxNEJDNjEzMzAwQUE5QTExIC8qIERPTUVk
aXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01FZGl0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTIxNCw3ICs5MjExLDYgQEAKIAkJ
N0FDRDg4RDExNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckluZGV4ZWREQkFn
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0FDRDg4RDIxNEMwOEJENjAw
ODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3RvckluZGV4ZWREQkFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdBREU3MjI1MTBDQkJCOUIwMDZCM0IzQSAvKiBDb250ZXh0TWVudVByb3Zp
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRleHRNZW51UHJvdmlk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0FGMTFBNTkxMkU3Mjc0OTAwNjFG
MjNDIC8qIEluc3BlY3RvclJ1bnRpbWVBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbnNwZWN0b3JSdW50aW1lQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0MyQkREM0IxN0M3Rjk4QjAwMzhGRjE1IC8qIEpTRE9NR2xvYmFsT2JqZWN0VGFzay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUdsb2JhbE9iamVj
dFRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzJCREQzQzE3QzdGOThC
MDAzOEZGMTUgLyogSlNET01HbG9iYWxPYmplY3RUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRE9NR2xvYmFsT2JqZWN0VGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QzUyMkQ0OTE1QjQ3N0U4MDA5QjdDOTUgLyogSW5zcGVjdG9yT3ZlcmxheS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JPdmVybGF5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0ODUzLDggKzE0ODQ5LDYgQEAK
IAkJCQk5RjBENkIyRDEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5o
ICovLAogCQkJCTgyQUIxNzcxMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcCAqLywKIAkJCQk4MkFCMTc3MjEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5oICovLAotCQkJCTdBQTM2NUVEMTJFNzI2NTQwMERDQTI0MiAvKiBJbnNwZWN0
b3JSdW50aW1lQWdlbnQuY3BwICovLAotCQkJCTdBRjExQTU5MTJFNzI3NDkwMDYxRjIzQyAvKiBJ
bnNwZWN0b3JSdW50aW1lQWdlbnQuaCAqLywKIAkJCQk4MkFCMTc2RjEyNUM4MjY3MDBDNTA2OUQg
LyogSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgKi8sCiAJCQkJODJBQjE3NzAxMjVDODI2NzAwQzUw
NjlEIC8qIEluc3BlY3RvclN0eWxlU2hlZXQuaCAqLywKIAkJCQk4Mjg4OUI0QTEzQzYyMzkyMDA5
QTYxNTYgLyogSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcCAqLywKQEAgLTIzOTYwLDcgKzIz
OTU0LDYgQEAKIAkJCQk0RjZGREQ2NTEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFn
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5RjBENkIyRjEyMUJGRUJBMDA2QzAyODggLyogSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODJBQjE3NzYxMjVDODI2
NzAwQzUwNjlEIC8qIEluc3BlY3RvclJlc291cmNlQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTdBRjExQTVBMTJFNzI3NDkwMDYxRjIzQyAvKiBJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgyQUIxNzc0MTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JTdHls
ZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mjg4OUI0RDEzQzYyMzkyMDA5QTYxNTYgLyog
SW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUVBRjk3RTEy
MTQzNUE0MDBFN0MxQkYgLyogRGV2aWNlTW90aW9uQ2xpZW50SU9TLmggaW4gSGVhZGVycyAqLywK
QEAgLTI3Mjg5LDcgKzI3MjgyLDYgQEAKIAkJCQlFMUZGOEY1RjE4MDc0NDIxMDAxMzI2NzQgLyog
U3VidGxlQ3J5cHRvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlGMEQ2QjJFMTIxQkZFQkEwMDZD
MDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgy
QUIxNzc1MTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTdBQTM2NUVFMTJFNzI2NTQwMERDQTI0MiAvKiBJbnNwZWN0b3JSdW50
aW1lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzMxMjVDODI2NzAwQzUwNjlE
IC8qIEluc3BlY3RvclN0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODI4ODlCNEMx
M0M2MjM5MjAwOUE2MTU2IC8qIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwNzI3N0U0RTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUF1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKaW5kZXggNjY2YmJhNi4uMDZjMGUwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCkBAIC02
MCw3ICs2MCw2IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmNwcCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50LmNwcCIKLSNpbmNsdWRlICJJbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwIgogI2luY2x1
ZGUgIkluc3BlY3RvclN0eWxlU2hlZXQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvclN0eWxlVGV4
dEVkaXRvci5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXgg
ZWM2NGMyYS4uNGZmMTM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTA2LDYgKzEwNiwxMSBAQCBJbnNwZWN0b3JDb250cm9s
bGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5z
cGVjdG9yQwogICAgIG1fcGFnZUFnZW50ID0gcGFnZUFnZW50UHRyLmdldCgpOwogICAgIG1fYWdl
bnRzLmFwcGVuZChzdGQ6Om1vdmUocGFnZUFnZW50UHRyKSk7CiAKKyAgICBhdXRvIHJ1bnRpbWVB
Z2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZVJ1bnRpbWVBZ2VudD4obV9pbmplY3RlZFNj
cmlwdE1hbmFnZXIuZ2V0KCksICZwYWdlLCBwYWdlQWdlbnQpOworICAgIFBhZ2VSdW50aW1lQWdl
bnQqIHJ1bnRpbWVBZ2VudCA9IHJ1bnRpbWVBZ2VudFB0ci5nZXQoKTsKKyAgICBtX2luc3RydW1l
bnRpbmdBZ2VudHMtPnNldFBhZ2VSdW50aW1lQWdlbnQocnVudGltZUFnZW50KTsKKyAgICBtX2Fn
ZW50cy5hcHBlbmQoc3RkOjptb3ZlKHJ1bnRpbWVBZ2VudFB0cikpOworCiAgICAgYXV0byBkb21B
Z2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yRE9NQWdlbnQ+KG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQo
KSwgbV9vdmVybGF5LmdldCgpKTsKICAgICBtX2RvbUFnZW50ID0gZG9tQWdlbnRQdHIuZ2V0KCk7
CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShkb21BZ2VudFB0cikpOwpAQCAtMTM3LDEw
ICsxNDIsNiBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2Um
IHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogICAgIG1fcmVzb3VyY2VBZ2VudCA9
IHJlc291cmNlQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShy
ZXNvdXJjZUFnZW50UHRyKSk7CiAKLSAgICBhdXRvIHJ1bnRpbWVBZ2VudFB0ciA9IHN0ZDo6bWFr
ZV91bmlxdWU8UGFnZVJ1bnRpbWVBZ2VudD4obV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBt
X2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgJnBhZ2UsIHBhZ2VBZ2VudCk7Ci0gICAgSW5z
cGVjdG9yUnVudGltZUFnZW50KiBydW50aW1lQWdlbnQgPSBydW50aW1lQWdlbnRQdHIuZ2V0KCk7
Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bW92ZShydW50aW1lQWdlbnRQdHIpKTsKLQogICAg
IGF1dG8gY29uc29sZUFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ29uc29sZUFnZW50
PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdl
dCgpLCBtX2RvbUFnZW50KTsKICAgICBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2Vu
dCA9IGNvbnNvbGVBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptb3Zl
KGNvbnNvbGVBZ2VudFB0cikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuY3BwCmluZGV4IDAzNDI2NjQuLjllODQyN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTI5LDE4ICsyOSwyMCBAQAogICov
CiAKICNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0KICNpbmNs
dWRlICJQYWdlUnVudGltZUFnZW50LmgiCiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
clBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKKyNpbmNsdWRl
ICJKU0RPTVdpbmRvd0Jhc2UuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bi5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oPgogI2luY2x1ZGUgPGlu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaD4KQEAgLTUxLDE4ICs1MywxMiBAQCB1c2lu
ZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VSdW50
aW1lQWdlbnQ6OlBhZ2VSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIs
IFBhZ2UqIHBhZ2UsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQotICAgIDogSW5zcGVj
dG9yUnVudGltZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdl
cikKK1BhZ2VSdW50aW1lQWdlbnQ6OlBhZ2VSdW50aW1lQWdlbnQoSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFBhZ2UqIHBhZ2UsIEluc3BlY3RvclBhZ2VBZ2Vu
dCogcGFnZUFnZW50KQorICAgIDogSW5zcGVjdG9yUnVudGltZUFnZW50KGluamVjdGVkU2NyaXB0
TWFuYWdlcikKICAgICAsIG1faW5zcGVjdGVkUGFnZShwYWdlKQogICAgICwgbV9wYWdlQWdlbnQo
cGFnZUFnZW50KQogICAgICwgbV9tYWluV29ybGRDb250ZXh0Q3JlYXRlZChmYWxzZSkKIHsKLSAg
ICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFBhZ2VSdW50aW1lQWdlbnQodGhpcyk7Ci19Ci0K
LVBhZ2VSdW50aW1lQWdlbnQ6On5QYWdlUnVudGltZUFnZW50KCkKLXsKLSAgICBtX2luc3RydW1l
bnRpbmdBZ2VudHMtPnNldFBhZ2VSdW50aW1lQWdlbnQobnVsbHB0cik7CiB9CiAKIHZvaWQgUGFn
ZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsKiBmcm9udGVuZENoYW5uZWwsIEluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyKiBiYWNrZW5kRGlzcGF0Y2hlcikKQEAgLTgyLDcgKzc4LDcgQEAgdm9pZCBQYWdl
UnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3JEaXNj
b25uZWN0UmVhc29uKQogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OmVuYWJsZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcpCiB7Ci0gICAgaWYgKG1fZW5hYmxlZCkKKyAgICBpZiAoZW5hYmxlZCgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmVuYWJsZShl
cnJvclN0cmluZyk7CkBAIC05Niw3ICs5Miw3IEBAIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZW5h
YmxlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZykKIAogdm9pZCBQYWdlUnVudGltZUFnZW50Ojpk
aXNhYmxlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZykKIHsKLSAgICBpZiAoIW1fZW5hYmxlZCkK
KyAgICBpZiAoIWVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSW5zcGVjdG9yUnVu
dGltZUFnZW50OjpkaXNhYmxlKGVycm9yU3RyaW5nKTsKQEAgLTEwNiw4ICsxMDIsOSBAQCB2b2lk
IFBhZ2VSdW50aW1lQWdlbnQ6OmRpZENyZWF0ZU1haW5Xb3JsZENvbnRleHQoRnJhbWUqIGZyYW1l
KQogewogICAgIG1fbWFpbldvcmxkQ29udGV4dENyZWF0ZWQgPSB0cnVlOwogCi0gICAgaWYgKCFt
X2VuYWJsZWQpCisgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKKwogICAgIEFT
U0VSVChtX2Zyb250ZW5kRGlzcGF0Y2hlcik7CiAgICAgU3RyaW5nIGZyYW1lSWQgPSBtX3BhZ2VB
Z2VudC0+ZnJhbWVJZChmcmFtZSk7CiAgICAgSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlID0g
bWFpbldvcmxkRXhlY1N0YXRlKGZyYW1lKTsKQEAgLTExNiwxMyArMTEzLDE5IEBAIHZvaWQgUGFn
ZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlTWFpbldvcmxkQ29udGV4dChGcmFtZSogZnJhbWUpCiAK
IHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlkQ3JlYXRlSXNvbGF0ZWRDb250ZXh0KEZyYW1lKiBm
cmFtZSwgSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlLCBTZWN1cml0eU9yaWdpbiogb3JpZ2lu
KQogewotICAgIGlmICghbV9lbmFibGVkKQorICAgIGlmICghZW5hYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CisKICAgICBBU1NFUlQobV9mcm9udGVuZERpc3BhdGNoZXIpOwogICAgIFN0cmluZyBm
cmFtZUlkID0gbV9wYWdlQWdlbnQtPmZyYW1lSWQoZnJhbWUpOwogICAgIG5vdGlmeUNvbnRleHRD
cmVhdGVkKGZyYW1lSWQsIHNjcmlwdFN0YXRlLCBvcmlnaW4sIGZhbHNlKTsKIH0KIAorSlNDOjpW
TSogUGFnZVJ1bnRpbWVBZ2VudDo6Z2xvYmFsVk0oKQoreworICAgIHJldHVybiBKU0RPTVdpbmRv
d0Jhc2U6OmNvbW1vblZNKCk7Cit9CisKIEluamVjdGVkU2NyaXB0IFBhZ2VSdW50aW1lQWdlbnQ6
OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IGlu
dCogZXhlY3V0aW9uQ29udGV4dElkKQogewogICAgIGlmICghZXhlY3V0aW9uQ29udGV4dElkKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaAppbmRleCBlNjJj
MzNjLi4wMjA1OGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1
bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmgKQEAgLTMzLDExICszMywxNCBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAotI2lu
Y2x1ZGUgIkluc3BlY3RvclJ1bnRpbWVBZ2VudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvcldlYkZy
b250ZW5kRGlzcGF0Y2hlcnMuaCIKLSNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUg
PGluc3BlY3Rvci9JbnNwZWN0b3JKU0Zyb250ZW5kRGlzcGF0Y2hlcnMuaD4KKyNpbmNsdWRlIDxp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgRXhlY1N0YXRlOworfQorCiBu
YW1lc3BhY2UgSW5zcGVjdG9yIHsKIGNsYXNzIEluamVjdGVkU2NyaXB0TWFuYWdlcjsKIH0KQEAg
LTQ1LDEzICs0OCwxNSBAQCBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKK2NsYXNzIEZyYW1lOwogY2xh
c3MgUGFnZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwordHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJp
bmc7CiAKLWNsYXNzIFBhZ2VSdW50aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFn
ZW50IHsKK2NsYXNzIFBhZ2VSdW50aW1lQWdlbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JSdW50aW1lQWdlbnQgewogcHVibGljOgotICAgIFBhZ2VSdW50aW1lQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgUGFn
ZSosIEluc3BlY3RvclBhZ2VBZ2VudCopOwotICAgIHZpcnR1YWwgflBhZ2VSdW50aW1lQWdlbnQo
KTsKKyAgICBQYWdlUnVudGltZUFnZW50KEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KiwgUGFnZSosIEluc3BlY3RvclBhZ2VBZ2VudCopOworICAgIHZpcnR1YWwgflBhZ2VSdW50aW1l
QWdlbnQoKSB7IH0KICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRC
YWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5l
Y3RSZWFzb24pIG92ZXJyaWRlOwpAQCAtNjIsNiArNjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRDcmVhdGVJc29sYXRlZENvbnRleHQoRnJhbWUqLCBKU0M6OkV4ZWNTdGF0ZSosIFNlY3VyaXR5
T3JpZ2luKik7CiAKIHByaXZhdGU6CisgICAgdmlydHVhbCBKU0M6OlZNKiBnbG9iYWxWTSgpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNj
cmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHVubXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBm
ZDA3MjdhLi44MDg5MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC04NSw4ICs4NSw5IEBAIFdvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoV29ya2VyR2xvYmFs
U2NvcGUmIHdvcmtlckdsCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihzdGQ6Om1ha2Vf
dW5pcXVlPFBhZ2VJbmplY3RlZFNjcmlwdE1hbmFnZXI+KCp0aGlzLCBQYWdlSW5qZWN0ZWRTY3Jp
cHRIb3N0OjpjcmVhdGUoKSkpCiAgICAgLCBtX3J1bnRpbWVBZ2VudChudWxscHRyKQogewotICAg
IGF1dG8gcnVudGltZUFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJSdW50aW1lQWdlbnQ+
KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0
KCksICZ3b3JrZXJHbG9iYWxTY29wZSk7CisgICAgYXV0byBydW50aW1lQWdlbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPFdvcmtlclJ1bnRpbWVBZ2VudD4obV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0
KCksICZ3b3JrZXJHbG9iYWxTY29wZSk7CiAgICAgbV9ydW50aW1lQWdlbnQgPSBydW50aW1lQWdl
bnQuZ2V0KCk7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRXb3JrZXJSdW50aW1lQWdl
bnQobV9ydW50aW1lQWdlbnQpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1vdmUocnVudGlt
ZUFnZW50KSk7CiAKICAgICBhdXRvIGNvbnNvbGVBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8V29y
a2VyQ29uc29sZUFnZW50PihtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDdiMjQzZjQuLmFkMzJkMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuaApAQCAtNTAsMTAgKzUwLDEwIEBAIGNsYXNzIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb247
Ci1jbGFzcyBJbnNwZWN0b3JSdW50aW1lQWdlbnQ7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRz
OwogY2xhc3MgUGFnZUluamVjdGVkU2NyaXB0TWFuYWdlcjsKIGNsYXNzIFdvcmtlckdsb2JhbFNj
b3BlOworY2xhc3MgV29ya2VyUnVudGltZUFnZW50OwogCiBjbGFzcyBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyIGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9yRW52aXJvbm1lbnQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIpOwpA
QCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogICAgIFdvcmtlckdsb2JhbFNjb3BlJiBtX3dvcmtl
ckdsb2JhbFNjb3BlOwogICAgIFJlZlB0cjxJbnN0cnVtZW50aW5nQWdlbnRzPiBtX2luc3RydW1l
bnRpbmdBZ2VudHM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VJbmplY3RlZFNjcmlwdE1hbmFn
ZXI+IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwotICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudCog
bV9ydW50aW1lQWdlbnQ7CisgICAgV29ya2VyUnVudGltZUFnZW50KiBtX3J1bnRpbWVBZ2VudDsK
ICAgICBJbnNwZWN0b3I6Okluc3BlY3RvckFnZW50UmVnaXN0cnkgbV9hZ2VudHM7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbD4gbV9mcm9udGVuZENoYW5uZWw7
CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI+IG1fYmFj
a2VuZERpc3BhdGNoZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50
aW1lQWdlbnQuY3BwCmluZGV4IDZjNDAxNzAuLjhiNTY2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCisjaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCiAj
aW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgi
CiAjaW5jbHVkZSAiV29ya2VyRGVidWdnZXJBZ2VudC5oIgpAQCAtNDYsMTcgKzQ3LDExIEBAIHVz
aW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV29ya2Vy
UnVudGltZUFnZW50OjpXb3JrZXJSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1h
bmFnZXIsIFdvcmtlckdsb2JhbFNjb3BlKiB3b3JrZXJHbG9iYWxTY29wZSkKLSAgICA6IEluc3Bl
Y3RvclJ1bnRpbWVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFn
ZXIpCitXb3JrZXJSdW50aW1lQWdlbnQ6OldvcmtlclJ1bnRpbWVBZ2VudChJbmplY3RlZFNjcmlw
dE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgV29ya2VyR2xvYmFsU2NvcGUqIHdvcmtl
ckdsb2JhbFNjb3BlKQorICAgIDogSW5zcGVjdG9yUnVudGltZUFnZW50KGluamVjdGVkU2NyaXB0
TWFuYWdlcikKICAgICAsIG1fd29ya2VyR2xvYmFsU2NvcGUod29ya2VyR2xvYmFsU2NvcGUpCiAg
ICAgLCBtX3BhdXNlZChmYWxzZSkKIHsKLSAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFdv
cmtlclJ1bnRpbWVBZ2VudCh0aGlzKTsKLX0KLQotV29ya2VyUnVudGltZUFnZW50Ojp+V29ya2Vy
UnVudGltZUFnZW50KCkKLXsKLSAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFdvcmtlclJ1
bnRpbWVBZ2VudChudWxscHRyKTsKIH0KIAogdm9pZCBXb3JrZXJSdW50aW1lQWdlbnQ6OmRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCosIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKiBiYWNrZW5kRGlzcGF0Y2hlcikKQEAgLTcy
LDkgKzY3LDEwIEBAIHZvaWQgV29ya2VyUnVudGltZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZChJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uCiBJbmplY3RlZFNjcmlwdCBXb3Jr
ZXJSdW50aW1lQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyogZXJyb3Is
IGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQogewogICAgIGlmIChleGVjdXRpb25Db250
ZXh0SWQpIHsKLSAgICAgICAgKmVycm9yID0gIkV4ZWN1dGlvbiBjb250ZXh0IGlkIGlzIG5vdCBz
dXBwb3J0ZWQgZm9yIHdvcmtlcnMgYXMgdGhlcmUgaXMgb25seSBvbmUgZXhlY3V0aW9uIGNvbnRl
eHQuIjsKKyAgICAgICAgKmVycm9yID0gQVNDSUlMaXRlcmFsKCJFeGVjdXRpb24gY29udGV4dCBp
ZCBpcyBub3Qgc3VwcG9ydGVkIGZvciB3b3JrZXJzIGFzIHRoZXJlIGlzIG9ubHkgb25lIGV4ZWN1
dGlvbiBjb250ZXh0LiIpOwogICAgICAgICByZXR1cm4gSW5qZWN0ZWRTY3JpcHQoKTsKICAgICB9
CisKICAgICBKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUgPSBleGVjU3RhdGVGcm9tV29ya2Vy
R2xvYmFsU2NvcGUobV93b3JrZXJHbG9iYWxTY29wZSk7CiAgICAgcmV0dXJuIGluamVjdGVkU2Ny
aXB0TWFuYWdlcigpLT5pbmplY3RlZFNjcmlwdEZvcihzY3JpcHRTdGF0ZSk7CiB9CkBAIC05NCw2
ICs5MCwxMSBAQCB2b2lkIFdvcmtlclJ1bnRpbWVBZ2VudDo6cnVuKEVycm9yU3RyaW5nKikKICAg
ICBtX3BhdXNlZCA9IGZhbHNlOwogfQogCitKU0M6OlZNKiBXb3JrZXJSdW50aW1lQWdlbnQ6Omds
b2JhbFZNKCkKK3sKKyAgICByZXR1cm4gSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpOworfQor
CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiB2b2lkIFdvcmtlclJ1bnRpbWVBZ2Vu
dDo6cGF1c2VXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJHbG9iYWxTY29wZSogY29udGV4dCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaAppbmRleCAw
M2VhZDg2Li5iNzA1MDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyUnVudGltZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1
bnRpbWVBZ2VudC5oCkBAIC0zMywyOSArMzMsMzAgQEAKIAogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
CiAKLSNpbmNsdWRlICJJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCIKKyNpbmNsdWRlIDxpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7
Cit0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAotY2xhc3MgV29ya2VyUnVudGltZUFnZW50
IDogcHVibGljIEluc3BlY3RvclJ1bnRpbWVBZ2VudCB7CitjbGFzcyBXb3JrZXJSdW50aW1lQWdl
bnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQgewogcHVi
bGljOgotICAgIFdvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVj
dG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBXb3JrZXJHbG9iYWxTY29wZSopOwotICAgIHZp
cnR1YWwgfldvcmtlclJ1bnRpbWVBZ2VudCgpOworICAgIFdvcmtlclJ1bnRpbWVBZ2VudChJbnNw
ZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciosIFdvcmtlckdsb2JhbFNjb3BlKik7CisgICAg
dmlydHVhbCB+V29ya2VyUnVudGltZUFnZW50KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pIG92ZXJyaWRlOwogCi0gICAgLy8gUHJvdG9jb2wg
Y29tbWFuZHMuCiAgICAgdmlydHVhbCB2b2lkIHJ1bihFcnJvclN0cmluZyopIG92ZXJyaWRlOwog
CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgdm9pZCBwYXVzZVdvcmtlckds
b2JhbFNjb3BlKFdvcmtlckdsb2JhbFNjb3BlKik7Ci0jZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCisjZW5kaWYKIAogcHJpdmF0ZToKKyAgICB2aXJ0dWFsIEpTQzo6Vk0qIGds
b2JhbFZNKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0
IGluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCogZXhlY3V0aW9u
Q29udGV4dElkKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>