<?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>107351</bug_id>
          
          <creation_ts>2013-01-18 17:46:52 -0800</creation_ts>
          <short_desc>WebSpeech: plumb through a method to generate fake speech jobs for testing</short_desc>
          <delta_ts>2013-02-17 13:02:10 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>106742</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>811216</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-18 17:46:52 -0800</bug_when>
    <thetext>We need to be able to tell DRT that we want to send fake speech jobs, then get the system to essentially fake up the speech job. we don&apos;t want real speech jobs to be sent lest they cause strange output on a persons system who&apos;s running layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830655</commentid>
    <comment_count>1</comment_count>
      <attachid>187796</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-12 00:38:31 -0800</bug_when>
    <thetext>Created attachment 187796
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830670</commentid>
    <comment_count>2</comment_count>
      <attachid>187796</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-12 00:51:32 -0800</bug_when>
    <thetext>Comment on attachment 187796
patch

Attachment 187796 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16493714</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830676</commentid>
    <comment_count>3</comment_count>
      <attachid>187796</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-12 01:00:22 -0800</bug_when>
    <thetext>Comment on attachment 187796
patch

Attachment 187796 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16454092</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831001</commentid>
    <comment_count>4</comment_count>
      <attachid>187881</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-12 09:10:18 -0800</bug_when>
    <thetext>Created attachment 187881
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831122</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-12 11:37:46 -0800</bug_when>
    <thetext>Adam and Dominic, what do you think of this approach to fake the speech synthesis output?

The idea is have a WebCore::Settings() method that can be checked, and then the platform can do something to fake the simulation that the speaking job completed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831156</commentid>
    <comment_count>6</comment_count>
      <attachid>187881</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-12 12:25:14 -0800</bug_when>
    <thetext>Comment on attachment 187881
patch

This isn&apos;t a very appealing approach to mocking out speak synthesis.  It&apos;s generally better to cleanly separate mock code from production code.  Ideally the mock code isn&apos;t linked into the production binary at all.  In other places, we&apos;ve mocked out subsystems at the Platform API boundary, but I understand that might not work well for ports like apple-mac that interact directly with the underlying operating system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831238</commentid>
    <comment_count>7</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-12 14:07:07 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 187881 [details])
&gt; This isn&apos;t a very appealing approach to mocking out speak synthesis.  It&apos;s generally better to cleanly separate mock code from production code.  Ideally the mock code isn&apos;t linked into the production binary at all.  In other places, we&apos;ve mocked out subsystems at the Platform API boundary, but I understand that might not work well for ports like apple-mac that interact directly with the underlying operating system.

Do you think I should do something like

MockPagePopup, (where we have a MockPlatformSynthesizer)

and then it&apos;s enabled through an Internals setting like
   void setEnableMockPagePopup(in boolean enabled) raises(DOMException);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831258</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-12 14:26:27 -0800</bug_when>
    <thetext>Is the mock linked into the production binary?  I&apos;d much prefer not to link it into the production binary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831260</commentid>
    <comment_count>9</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-12 14:28:19 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Is the mock linked into the production binary?  I&apos;d much prefer not to link it into the production binary.

That one specifically is, but I see other Mocks*, like MockCDM that is only linked in WebCoreTestSupport, so perhaps I can do that as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831321</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-12 15:14:42 -0800</bug_when>
    <thetext>If we can link it into WebCoreTestSupport, that&apos;s likely to be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832604</commentid>
    <comment_count>11</comment_count>
      <attachid>188237</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-13 17:50:59 -0800</bug_when>
    <thetext>Created attachment 188237
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832607</commentid>
    <comment_count>12</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-13 17:52:19 -0800</bug_when>
    <thetext>New patch uses a method in Internals to modify enter testing mode.

Doing that will create a mock platform synthesizer. This mock synthesizer lives only in WebCoreSupport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832609</commentid>
    <comment_count>13</comment_count>
      <attachid>188237</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-13 17:53:17 -0800</bug_when>
    <thetext>Comment on attachment 188237
patch

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

&gt; Source/WebCore/Modules/speech/SpeechSynthesis.h:76
&gt; -    PlatformSpeechSynthesizer m_platformSpeechSynthesizer;
&gt; +    RefPtr&lt;PlatformSpeechSynthesizer&gt; m_platformSpeechSynthesizer;

RefPtr -&gt; why not OwnPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832617</commentid>
    <comment_count>14</comment_count>
      <attachid>188237</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-13 17:59:05 -0800</bug_when>
    <thetext>Comment on attachment 188237
patch

The general approach looks fine, but you&apos;ve only modified one of the N build systems used by WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832623</commentid>
    <comment_count>15</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-13 18:03:34 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 188237 [details])
&gt; The general approach looks fine, but you&apos;ve only modified one of the N build systems used by WebKit.

Thanks for your feedback. 
Didn&apos;t want to do to most painful part of adding new files unless it looked like a good approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832626</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-13 18:07:23 -0800</bug_when>
    <thetext>Yeah, this isn&apos;t the best design for ports that have a Platform API, but this is fine for ports like apple-mac that talk to the operating system directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833120</commentid>
    <comment_count>17</comment_count>
      <attachid>188367</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-14 09:06:54 -0800</bug_when>
    <thetext>Created attachment 188367
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833136</commentid>
    <comment_count>18</comment_count>
      <attachid>188367</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-14 09:18:39 -0800</bug_when>
    <thetext>Comment on attachment 188367
patch

Attachment 188367 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16580436</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833502</commentid>
    <comment_count>19</comment_count>
      <attachid>188440</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-14 15:59:20 -0800</bug_when>
    <thetext>Created attachment 188440
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833512</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 16:03:20 -0800</bug_when>
    <thetext>Attachment 188440 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-speak.html&apos;, u&apos;LayoutTests/platform/mac/fast/speechsynthesis/speech-synthesis-voices.html&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/speech/SpeechSynthesis.cpp&apos;, u&apos;Source/WebCore/Modules/speech/SpeechSynthesis.h&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/WebCore.gypi&apos;, u&apos;Source/WebCore/WebCore.vcproj/WebCoreTestSupport.vcproj&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/platform/PlatformSpeechSynthesizer.cpp&apos;, u&apos;Source/WebCore/platform/PlatformSpeechSynthesizer.h&apos;, u&apos;Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.cpp&apos;, u&apos;Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.h&apos;, u&apos;Source/WebCore/testing/Internals.cpp&apos;, u&apos;Source/WebCore/testing/Internals.h&apos;, u&apos;Source/WebCore/testing/Internals.idl&apos;]&quot; exit_code: 1
Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.h:88:  &quot;PlatformSpeechSynthesizer.h&quot; already included at Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.h:31  [build/include] [4]
Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.h:89:  &quot;Timer.h&quot; already included at Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.h:32  [build/include] [4]
Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.h:90:  &quot;wtf/PassOwnPtr.h&quot; already included at Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.h:33  [build/include] [4]
Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.cpp:99:  &quot;config.h&quot; already included at Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.cpp:26  [build/include] [4]
Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.cpp:100:  &quot;PlatformSpeechSynthesizerMock.h&quot; already included at Source/WebCore/platform/mock/PlatformSpeechSynthesizerMock.cpp:27  [build/include] [4]
Total errors found: 5 in 19 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>833527</commentid>
    <comment_count>21</comment_count>
      <attachid>188447</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-14 16:19:26 -0800</bug_when>
    <thetext>Created attachment 188447
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833660</commentid>
    <comment_count>22</comment_count>
      <attachid>188447</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-14 20:42:33 -0800</bug_when>
    <thetext>Comment on attachment 188447
patch

Attachment 188447 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16584015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833740</commentid>
    <comment_count>23</comment_count>
      <attachid>188491</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-14 23:40:21 -0800</bug_when>
    <thetext>Created attachment 188491
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834952</commentid>
    <comment_count>24</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-17 00:46:37 -0800</bug_when>
    <thetext>Adam, does this latest patch look ok to you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834997</commentid>
    <comment_count>25</comment_count>
      <attachid>188491</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-17 09:24:27 -0800</bug_when>
    <thetext>Comment on attachment 188491
patch

Yep.  Looks good.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835023</commentid>
    <comment_count>26</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-02-17 13:02:10 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/143136</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187796</attachid>
            <date>2013-02-12 00:38:31 -0800</date>
            <delta_ts>2013-02-12 09:10:18 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>18586</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjU5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTEyICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViU3BlZWNoOiBwbHVt
YiB0aHJvdWdoIGEgbWV0aG9kIHRvIGdlbmVyYXRlIGZha2Ugc3BlZWNoIGpvYnMgZm9yIHRlc3Rp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzM1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBv
cnQgYSBzZXR0aW5nIHRvIGRpc2FibGUgdGhlIGFjdHVhbCBvdXRwdXQgb2Ygc3BlZWNoIHN5bnRo
ZXNpcy4KKworICAgICAgICBUaGlzIHdpbGwgYmUgdXNlZCBieSB0aGUgdGVzdGluZyBoYXJuZXNz
ZXMgc28gdGhhdCB0aGUgcGxhdGZvcm0ncyByZWFsCisgICAgICAgIHN5bnRoZXNpemVyIGlzIG5v
dCB1c2VkIGR1cmluZyB0aGUgdGVzdHMsIHdoaWNoIGNvdWxkIGNhdXNlIHByb2JsZW1zCisgICAg
ICAgIGlmIHRoZSBydW5uZXIgb2YgdGhlIHRlc3QgaXMgYWx3YXlzIHRyeWluZyB0byB1c2Ugc3Bl
ZWNoIHN5bnRoZXNpcy4KKworICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dTcGVlY2hTeW50aGVz
aXM6OnNwZWVjaFN5bnRoZXNpcyk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6U3BlZWNoU3lu
dGhlc2lzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6c2V0U3BlZWNoT3V0cHV0RW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnNwZWVjaE91dHB1dEVuYWJsZWQp
OgorICAgICAgICAoU3BlZWNoU3ludGhlc2lzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmlu
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaDoKKyAgICAg
ICAgKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tOgorICAgICAgICAoLVtXZWJTcGVl
Y2hTeW50aGVzaXNXcmFwcGVyIF9zaW11bGF0ZVNwZWFraW5nRmluaXNoZWRdKToKKyAgICAgICAg
KC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVha1V0dGVyYW5jZTpXZWJDb3JlOjpdKToK
KyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXplcjpk
aWRGaW5pc2hTcGVha2luZzpdKToKKwogMjAxMy0wMi0xMiAgVGFrYXNoaSBTYWthbW90byAgPHRh
c2FrQGdvb2dsZS5jb20+CiAKICAgICAgICAgW1JlZmFjdG9yaW5nXSBNYWtlIG1fc2VsZWN0b3JD
aGVja2VyIGluIFN0eWxlUmVzb2x2ZXIgYW4gb24tc3RhY2sgb2JqZWN0LgpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hT
eW50aGVzaXMuY3BwCShyZXZpc2lvbiAxNDI0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw2ICszNCw4IEBACiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAKICNpbmNsdWRlICJE
T01XaW5kb3cuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzEs
OCArNzMsMTAgQEAKIAogU3BlZWNoU3ludGhlc2lzKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6
OnNwZWVjaFN5bnRoZXNpcygpCiB7Ci0gICAgaWYgKCFtX3NwZWVjaFN5bnRoZXNpcyAmJiBmcmFt
ZSgpKQorICAgIGlmICghbV9zcGVlY2hTeW50aGVzaXMgJiYgZnJhbWUoKSkgewogICAgICAgICBt
X3NwZWVjaFN5bnRoZXNpcyA9IFNwZWVjaFN5bnRoZXNpczo6Y3JlYXRlKCk7CisgICAgICAgIG1f
c3BlZWNoU3ludGhlc2lzLT5zZXRTcGVlY2hPdXRwdXRFbmFibGVkKGZyYW1lKCktPnNldHRpbmdz
KCktPnNwZWVjaFN5bnRoZXNpc091dHB1dEVuYWJsZWQoKSk7CisgICAgfQogICAgIHJldHVybiBt
X3NwZWVjaFN5bnRoZXNpcy5nZXQoKTsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAkocmV2aXNpb24gMTQyNDkz
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQAogU3BlZWNoU3ludGhlc2lzOjpTcGVlY2hT
eW50aGVzaXMoKQogICAgIDogbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIodGhpcykpCiAgICAgLCBtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2UoMCkK
KyAgICAsIG1fc3BlZWNoT3V0cHV0RW5hYmxlZCh0cnVlKQogewogfQogICAgIApJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmgJKHJldmlz
aW9uIDE0MjQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRo
ZXNpcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw5IEBACiAgICAgCiAgICAgY29uc3Qg
VmVjdG9yPFJlZlB0cjxTcGVlY2hTeW50aGVzaXNWb2ljZT4gPiYgZ2V0Vm9pY2VzKCk7CiAgICAg
CisgICAgdm9pZCBzZXRTcGVlY2hPdXRwdXRFbmFibGVkKGJvb2wgc3BlZWNoT3V0cHV0RW5hYmxl
ZCkgeyBtX3NwZWVjaE91dHB1dEVuYWJsZWQgPSBzcGVlY2hPdXRwdXRFbmFibGVkOyB9CisgICAg
dmlydHVhbCBib29sIHNwZWVjaE91dHB1dEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVj
aE91dHB1dEVuYWJsZWQ7IH0KKyAgICAgICAgCiBwcml2YXRlOgogICAgIFNwZWVjaFN5bnRoZXNp
cygpOwogICAgIApAQCAtNzQsNyArNzcsNyBAQAogICAgIFZlY3RvcjxSZWZQdHI8U3BlZWNoU3lu
dGhlc2lzVm9pY2U+ID4gbV92b2ljZUxpc3Q7CiAgICAgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
KiBtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2U7CiAgICAgRGVxdWU8UmVmUHRyPFNwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZT4gPiBtX3V0dGVyYW5jZVF1ZXVlOwotCisgICAgYm9vbCBtX3NwZWVjaE91
dHB1dEVuYWJsZWQ7CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmluCShyZXZpc2lvbiAxNDI0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsNiArMTM0LDcgQEAKIHNob3Vs
ZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVZJREVP
X1RSQUNLCiBzY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQgaW5pdGlhbD1mYWxzZQogbm90aWZp
Y2F0aW9uc0VuYWJsZWQgaW5pdGlhbD10cnVlCitzcGVlY2hTeW50aGVzaXNPdXRwdXRFbmFibGVk
IGluaXRpYWw9dHJ1ZSwgY29uZGl0aW9uYWw9U1BFRUNIX1NZTlRIRVNJUwogCiAjIFNvbWUgYXBw
cyBuZWVkcyBpc0xvYWRpbmdJbkFQSVNlbnNlIHRvIGFjY291bnQgZm9yIGFjdGl2ZSBzdWJyZXNv
dXJjZSBsb2FkZXJzLgogbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcmsgaW5pdGlhbD1mYWxz
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXIuaAkocmV2aXNpb24gMTQyNDkzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0
NSw4IEBACiAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0U3BlYWtpbmcoY29uc3QgUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlz
aFNwZWFraW5nKGNvbnN0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzcGVha2luZ0Vycm9yT2NjdXJyZWQoY29uc3QgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2UqKSA9IDA7Ci0gICAgCisKKyAgICB2aXJ0dWFsIGJvb2wgc3Bl
ZWNoT3V0cHV0RW5hYmxlZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdm9pY2VzRGlk
Q2hhbmdlKCkgPSAwOwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJDbGllbnQoKSB7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tCShyZXZpc2lv
biAxNDI0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsMTMgQEAKICAgICBy
ZXR1cm4gMjAwLjBmICogcmF0ZTsKIH0KIAorLSAodm9pZClfc2ltdWxhdGVTcGVha2luZ0Zpbmlz
aGVkCit7CisgICAgLy8gSWYgRFJUIGlzIHJ1bm5pbmcgdGhlbiB3ZSBjYW4ndCByZWxpYWJseSB1
c2UgdGhlIHN5c3RlbSdzIHJlYWwgc3BlZWNoIHN5bnRoZXNpemVyLCBzaW5jZSBpdCBtaWdodAor
ICAgIC8vIGNvbmZsaWN0IHdpdGggb3RoZXIgc3BlZWNoIHRlc3RzIG9yIHdpdGggb3RoZXIgYXBw
cyBvbiB0aGUgc3lzdGVtLgorICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNsaWVudCgpLT5kaWRG
aW5pc2hTcGVha2luZyhtX3V0dGVyYW5jZSk7Cit9CisKIC0gKHZvaWQpc3BlYWtVdHRlcmFuY2U6
KGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlICopdXR0ZXJh
bmNlCiB7CiAgICAgLy8gV2hlbiBzcGVhayBpcyBjYWxsZWQgd2Ugc2hvdWxkIG5vdCBoYXZlIGFu
IGV4aXN0aW5nIHNwZWVjaCB1dHRlcmFuY2Ugb3V0c3RhbmRpbmcuCkBAIC05OCwyMyArMTA1LDM1
IEBACiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgTlNTdHJpbmcgKnZvaWNlVVJJID0gbmls
OwogICAgIGlmICh1dHRlcmFuY2VWb2ljZUJ5VVJJKQotICAgICAgICBbbV9zeW50aGVzaXplciBz
ZXRWb2ljZTp1dHRlcmFuY2VWb2ljZUJ5VVJJLT52b2ljZVVSSSgpXTsKKyAgICAgICAgdm9pY2VV
UkkgPSB1dHRlcmFuY2VWb2ljZUJ5VVJJLT52b2ljZVVSSSgpOwogICAgIGVsc2UgaWYgKHV0dGVy
YW5jZVZvaWNlQnlMYW5ndWFnZSkKLSAgICAgICAgW21fc3ludGhlc2l6ZXIgc2V0Vm9pY2U6dXR0
ZXJhbmNlVm9pY2VCeUxhbmd1YWdlLT52b2ljZVVSSSgpXTsKKyAgICAgICAgdm9pY2VVUkkgPSB1
dHRlcmFuY2VWb2ljZUJ5TGFuZ3VhZ2UtPnZvaWNlVVJJKCk7CiAgICAgZWxzZQotICAgICAgICBb
bV9zeW50aGVzaXplciBzZXRWb2ljZTpbTlNTcGVlY2hTeW50aGVzaXplciBkZWZhdWx0Vm9pY2Vd
XTsKKyAgICAgICAgdm9pY2VVUkkgPSBbTlNTcGVlY2hTeW50aGVzaXplciBkZWZhdWx0Vm9pY2Vd
OworCisgICAgLy8gRG9uJ3Qgc2V0IHRoZSB2b2ljZSB1bmxlc3MgbmVjZXNzYXJ5LiBUaGVyZSdz
IGEgYnVnIGluIE5TU3BlZWNoU3ludGhlc2l6ZXIgc3VjaCB0aGF0CisgICAgLy8gc2V0dGluZyB0
aGUgdm9pY2UgZm9yIHRoZSBmaXJzdCB0aW1lIHdpbGwgY2F1c2UgdGhlIGZpcnN0IHNwZWVjaERv
bmUgY2FsbGJhY2sgdG8gcmVwb3J0IGl0IHdhcyB1bnN1Y2Nlc3NmdWwuCisgICAgaWYgKCFbW21f
c3ludGhlc2l6ZXIgdm9pY2VdIGlzRXF1YWxUb1N0cmluZzp2b2ljZVVSSV0pCisgICAgICAgIFtt
X3N5bnRoZXNpemVyIHNldFZvaWNlOnZvaWNlVVJJXTsKICAgICAKICAgICBbbV9zeW50aGVzaXpl
ciBzZXRSYXRlOltzZWxmIGNvbnZlcnRSYXRlVG9XUE06dXR0ZXJhbmNlLT5yYXRlKCldXTsKICAg
ICBbbV9zeW50aGVzaXplciBzZXRWb2x1bWU6dXR0ZXJhbmNlLT52b2x1bWUoKV07CiAgICAgCiAg
ICAgbV91dHRlcmFuY2UgPSB1dHRlcmFuY2U7Ci0gICAgW21fc3ludGhlc2l6ZXIgc3RhcnRTcGVh
a2luZ1N0cmluZzp1dHRlcmFuY2UtPnRleHQoKV07CisKKyAgICBpZiAobV9zeW50aGVzaXplck9i
amVjdC0+Y2xpZW50KCktPnNwZWVjaE91dHB1dEVuYWJsZWQoKSkKKyAgICAgICAgW21fc3ludGhl
c2l6ZXIgc3RhcnRTcGVha2luZ1N0cmluZzp1dHRlcmFuY2UtPnRleHQoKV07CisgICAgZWxzZQor
ICAgICAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKF9zaW11bGF0ZVNwZWFraW5n
RmluaXNoZWQpIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6LjFdOworCiAgICAgbV9zeW50aGVz
aXplck9iamVjdC0+Y2xpZW50KCktPmRpZFN0YXJ0U3BlYWtpbmcodXR0ZXJhbmNlKTsKIH0KIAog
LSAodm9pZClzcGVlY2hTeW50aGVzaXplcjooTlNTcGVlY2hTeW50aGVzaXplciAqKXNlbmRlciBk
aWRGaW5pc2hTcGVha2luZzooQk9PTClmaW5pc2hlZFNwZWFraW5nCiB7CisgICAgQVNTRVJUKG1f
dXR0ZXJhbmNlKTsKICAgICBVTlVTRURfUEFSQU0oc2VuZGVyKTsKICAgICAKICAgICAvLyBDbGVh
ciB0aGUgbV91dHRlcmFuY2UgdmFyaWFibGUgaW4gY2FzZSBmaW5pc2ggc3BlYWtpbmcga2lja3Mg
b2ZmIGEgbmV3IHNwZWFraW5nIGpvYiBpbW1lZGlhdGVseS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE0MjU5MSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTEyICBDaHJpcyBGbGVpemFjaCAgPGNm
bGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViU3BlZWNoOiBwbHVtYiB0aHJvdWdoIGEg
bWV0aG9kIHRvIGdlbmVyYXRlIGZha2Ugc3BlZWNoIGpvYnMgZm9yIHRlc3RpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzM1MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHByZWZlcmVuY2Ug
dGhhdCB3aWxsIHRlbGwgdGhlIHNwZWVjaCBzeW50aGVzaXplciB0byBkaXNhYmxlCisgICAgICAg
IHRoZSBhY3R1YWwgb3V0cHV0dGluZyBvZiBzcGVlY2ggc3ludGhlc2lzLCBmb3IgdGhlIHB1cnBv
c2VzIG9mIHRlc3RpbmcuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgr
W1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDEzLTAyLTExICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIERpc2FibGUgZGVsZXRlIGJ1dHRv
biBjb250cm9sbGVyIG9uIG5vbi1NYWMgcG9ydHMgYW5kIGRlbGV0ZSBFZGl0b3JDbGllbnQ6OnNo
b3VsZFNob3dEZWxldGVJbnRlcmZhY2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNpb24gMTQyNDkzKQorKysgU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMjkzLDYgKzI5MywxMSBAQAogLSAodm9pZClzZXRCYWNrc3BhY2VLZXlOYXZpZ2F0
aW9uRW5hYmxlZDooQk9PTClmbGFnOwogLSAoQk9PTCliYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5h
YmxlZDsKIAorLy8gU3BlZWNoU3ludGhlc2lzIHN1cHBvcnQgaXMgZGVwZW5kZW50IG9uIFdlYkNv
cmUvV2ViS2l0IGJlaW5nCisvLyBjb21waWxlZCB3aXRoIEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
LgorLSAodm9pZClzZXRTcGVlY2hTeW50aGVzaXNPdXRwdXRFbmFibGVkOihCT09MKWZsYWc7Cist
IChCT09MKXNwZWVjaFN5bnRoZXNpc091dHB1dEVuYWJsZWQ7CisKIC0gKHZvaWQpc2V0V2FudHNC
YWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcjooQk9PTClmbGFnOwogLSAoQk9PTCl3YW50
c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlz
aW9uIDE0MjQ5MykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Niw2ICsxNDYsNyBAQAogI2RlZmluZSBX
ZWJLaXRCYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZEtleSBAIldlYktpdEJhY2tzcGFjZUtl
eU5hdmlnYXRpb25FbmFibGVkIgogI2RlZmluZSBXZWJLaXRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1
cHByZXNzaW9uVGltZW91dEluU2Vjb25kc0tleSBAIldlYktpdEluY3JlbWVudGFsUmVuZGVyaW5n
U3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzIgogI2RlZmluZSBXZWJLaXRXYW50c0JhbGFuY2Vk
U2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yS2V5IEAiV2ViS2l0V2FudHNCYWxhbmNlZFNldERlZmVy
c0xvYWRpbmdCZWhhdmlvciIKKyNkZWZpbmUgV2ViS2l0U3BlZWNoU3ludGhlc2lzT3V0cHV0RW5h
YmxlZEtleSBAIldlYktpdFNwZWVjaFN5bnRoZXNpc091dHB1dEVuYWJsZWQiCiAKIC8vIENvcmVH
cmFwaGljcyBkZWZlcnJlZCB1cGRhdGVzIGFyZSBkaXNhYmxlZCBpZiBXZWJLaXRFbmFibGVDb2Fs
ZXNjZWRVcGRhdGVzUHJlZmVyZW5jZUtleSBpcyBzZXQKIC8vIHRvIE5PLCBvciBoYXMgbm8gdmFs
dWUuICBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIE1hYyBPUyBYIDEwLjQuNiwgZGVmZXJyZWQgdXBk
YXRlcyBhcmUgT0ZGIGJ5CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShy
ZXZpc2lvbiAxNDI0OTMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0J
KHdvcmtpbmcgY29weSkKQEAgLTE1NjgsNyArMTU2OCw5IEBACiAgICAgc2V0dGluZ3MtPnNldEJh
Y2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkKFtwcmVmZXJlbmNlcyBiYWNrc3BhY2VLZXlOYXZp
Z2F0aW9uRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRXYW50c0JhbGFuY2VkU2V0RGVmZXJz
TG9hZGluZ0JlaGF2aW9yKFtwcmVmZXJlbmNlcyB3YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGlu
Z0JlaGF2aW9yXSk7CiAgICAgc2V0dGluZ3MtPnNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChbcHJl
ZmVyZW5jZXMgbW9ja1Njcm9sbGJhcnNFbmFibGVkXSk7Ci0KKyNpZiBFTkFCTEUoU1BFRUNIX1NZ
TlRIRVNJUykKKyAgICBzZXR0aW5ncy0+c2V0U3BlZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxlZChb
cHJlZmVyZW5jZXMgc3BlZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxlZF0pOworI2VuZGlmCiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogICAgIHNldHRpbmdzLT5zZXRTaG91bGREaXNwbGF5U3VidGl0
bGVzKFtwcmVmZXJlbmNlcyBzaG91bGREaXNwbGF5U3VidGl0bGVzXSk7CiAgICAgc2V0dGluZ3Mt
PnNldFNob3VsZERpc3BsYXlDYXB0aW9ucyhbcHJlZmVyZW5jZXMgc2hvdWxkRGlzcGxheUNhcHRp
b25zXSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0JKHJldmlzaW9uIDE0MjQ5MykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwMCw2ICs0MDAsNyBAQAogICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFN1cHByZXNzZXNJbmNyZW1lbnRh
bFJlbmRlcmluZ0tleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBX
ZWJLaXRSZWdpb25CYXNlZENvbHVtbnNFbmFibGVkS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdEJhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkS2V5
LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdFNwZWVjaFN5
bnRoZXNpc091dHB1dEVuYWJsZWRLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9v
bDpOT10sICAgV2ViS2l0U2hvdWxkRGlzcGxheVN1YnRpdGxlc1ByZWZlcmVuY2VLZXksCiAgICAg
ICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0U2hvdWxkRGlzcGxheUNh
cHRpb25zUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5P
XSwgICBXZWJLaXRTaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9uc1ByZWZlcmVuY2VLZXksCkBA
IC0xNjU2LDkgKzE2NTcsMTggQEAKIC0gKHZvaWQpc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5z
OihCT09MKWZsYWcKIHsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktp
dFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2luc1ByZWZlcmVuY2VLZXldOworfQogCistICh2b2lkKXNl
dFNwZWVjaFN5bnRoZXNpc091dHB1dEVuYWJsZWQ6KEJPT0wpZmxhZworeworICAgIFtzZWxmIF9z
ZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0U3BlZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxl
ZEtleV07CiB9CiAKKy0gKEJPT0wpc3BlZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxlZAoreworICAg
IHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdFNwZWVjaFN5bnRoZXNpc091dHB1
dEVuYWJsZWRLZXldOworfQorCiAtICh2b2lkKXNldEJhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFi
bGVkOihCT09MKWZsYWcKIHsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5Oldl
YktpdEJhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkS2V5XTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCShy
ZXZpc2lvbiAxNDI0OTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ3LDYgKzI0NywxMCBAQAogV0tf
RVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgZW5hYmxl
ZCk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0UGFnZVZpc2liaWxpdHlCYXNlZFBy
b2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiAKKy8vIERlZmF1bHRz
IHRvIGZhbHNlCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U3BlZWNoU3ludGhlc2lz
T3V0cHV0RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzLCBib29sIGVuYWJsZWQp
OworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNwZWVjaFN5bnRoZXNpc091dHB1dEVu
YWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CisKIFdLX0VYUE9SVCB2b2lkIFdL
UHJlZmVyZW5jZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAkocmV2aXNpb24gMTQyNDkz
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDMzLDMgKzEwMzMsMTQgQEAKIHsKICAgICByZXR1cm4gdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+cGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVu
YWJsZWQoKTsKIH0KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0U3BlZWNoU3ludGhlc2lzT3V0cHV0
RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCit7
CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0U3BlZWNoU3ludGhlc2lzT3V0cHV0RW5h
YmxlZChlbmFibGVkKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0U3BlZWNoU3ludGhlc2lz
T3V0cHV0RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJl
dHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zcGVlY2hTeW50aGVzaXNPdXRwdXRFbmFibGVk
KCk7Cit9CisKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAJKHJldmlzaW9uIDE0MjQ5MykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM1MCw2ICsyMzUwLDcgQEAK
ICAgICBzZXR0aW5ncy0+c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bW9ja1Njcm9sbGJhcnNFbmFibGVkS2V5KCkpKTsK
ICAgICBzZXR0aW5ncy0+c2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6aHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkS2V5
KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0UmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZChzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnJlcXVlc3RBbmltYXRpb25G
cmFtZUVuYWJsZWRLZXkoKSkpOworICAgIHNldHRpbmdzLT5zZXRTcGVlY2hTeW50aGVzaXNPdXRw
dXRFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3Bl
ZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxlZEtleSgpKSk7CiAjaWYgRU5BQkxFKFNNT09USF9TQ1JP
TExJTkcpCiAgICAgc2V0dGluZ3MtPnNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKHN0b3JlLmdldEJv
b2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c2Nyb2xsQW5pbWF0b3JFbmFibGVkS2V5
KCkpKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyNTkxKQorKysgU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMt
MDItMTIgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWJTcGVlY2g6IHBsdW1iIHRocm91Z2ggYSBtZXRob2QgdG8gZ2VuZXJhdGUgZmFrZSBzcGVlY2gg
am9icyBmb3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA3MzUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBkaXNhYmxlIHRoZSBhY3R1YWwgb3V0cHV0dGlu
ZyBvZiBzcGVlY2ggc3ludGhlc2lzCisgICAgICAgIHdoaWxlIHRlc3RpbmcuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZl
cmVuY2VzU2V0U3BlZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZl
cmVuY2VzR2V0U3BlZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVm
ZXJlbmNlcyk6CisKIDIwMTMtMDItMTEgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFu
eTEwMC5uZXQ+CiAKICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IE1ha2UgQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lIG5vdCBrbm93IGNvbnRlbnRzIHNpemUuCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgJKHJldmlzaW9uIDE0MjQ5MykKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE0MCw2ICsxNDAsNyBAQAogICAgIG1hY3JvKFFUS2l0RW5hYmxlZCwgaXNRVEtpdEVu
YWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKICAgICBtYWNybyhMb2dzUGFnZU1lc3NhZ2VzVG9T
eXN0ZW1Db25zb2xlRW5hYmxlZCwgbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJs
ZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oUGFnZVZpc2liaWxpdHlCYXNlZFBy
b2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQsIHBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJl
c3Npb25FbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFNwZWVjaFN5bnRo
ZXNpc091dHB1dEVuYWJsZWQsIHNwZWVjaFN5bnRoZXNpc091dHB1dEVuYWJsZWQsIEJvb2wsIGJv
b2wsIHRydWUpIFwKICAgICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVG
RVJFTkNFKG1hY3JvKSBcCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAkocmV2aXNpb24gMTQyNDkzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3MCw2ICs1NzAsNyBAQAogI2lmICFQ
TEFURk9STShNQUMpCiAgICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5h
YmxlZFN0YXRlQ2hhbmdlZCh0cnVlKTsKICNlbmRpZgorICAgIFdLUHJlZmVyZW5jZXNTZXRTcGVl
Y2hTeW50aGVzaXNPdXRwdXRFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAKICAgICAvLyBp
biB0aGUgY2FzZSB0aGF0IGEgdGVzdCB1c2luZyB0aGUgY2hyb21lIGlucHV0IGZpZWxkIGZhaWxl
ZCwgYmUgc3VyZSB0byBjbGVhbiB1cCBmb3IgdGhlIG5leHQgdGVzdAogICAgIG1fbWFpbldlYlZp
ZXctPnJlbW92ZUNocm9tZUlucHV0RmllbGQoKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHJldmlzaW9uIDE0MjQ5MykKKysrIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjkxLDYg
KzY5MSw4IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBbcHJlZmVyZW5jZXMgc2V0V2Vi
QXVkaW9FbmFibGVkOllFU107CiAjZW5kaWYKKyAgICAKKyAgICBbcHJlZmVyZW5jZXMgc2V0U3Bl
ZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxlZDpOT107CiAKICAgICBbcHJlZmVyZW5jZXMgc2V0U2Ny
ZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQ6WUVTXTsKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyNTkxKQorKysgVG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDItMTIg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJTcGVl
Y2g6IHBsdW1iIHRocm91Z2ggYSBtZXRob2QgdG8gZ2VuZXJhdGUgZmFrZSBzcGVlY2ggam9icyBm
b3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3MzUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVHVybiBvZmYgYXVkaW8gb3V0cHV0IG9mIHNwZWVjaCBzeW50aGVzaXMgd2hpbGUgdGVzdGlu
Zy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAg
ICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisKIDIwMTMtMDItMTEgIFRpbW90
aHkgTG9oICA8dGltbG9oQGNocm9taXVtLmNvbT4KIAogICAgICAgICB3ZWJraXQtcGF0Y2ggdXBs
b2FkIHJlZ2VuZXJhdGVzIHRoZSBXZWJDb3JlIENoYW5nZUxvZyBldmVyeSB0aW1lIGl0J3MgY2Fs
bGVkCg==
</data>
<flag name="commit-queue"
          id="207729"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187881</attachid>
            <date>2013-02-12 09:10:18 -0800</date>
            <delta_ts>2013-02-13 17:50:59 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>22342</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjU5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTEyICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViU3BlZWNoOiBwbHVt
YiB0aHJvdWdoIGEgbWV0aG9kIHRvIGdlbmVyYXRlIGZha2Ugc3BlZWNoIGpvYnMgZm9yIHRlc3Rp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzM1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBv
cnQgYSBzZXR0aW5nIHRvIGRpc2FibGUgdGhlIGFjdHVhbCBvdXRwdXQgb2Ygc3BlZWNoIHN5bnRo
ZXNpcy4KKworICAgICAgICBUaGlzIHdpbGwgYmUgdXNlZCBieSB0aGUgdGVzdGluZyBoYXJuZXNz
ZXMgc28gdGhhdCB0aGUgcGxhdGZvcm0ncyByZWFsCisgICAgICAgIHN5bnRoZXNpemVyIGlzIG5v
dCB1c2VkIGR1cmluZyB0aGUgdGVzdHMsIHdoaWNoIGNvdWxkIGNhdXNlIHByb2JsZW1zCisgICAg
ICAgIGlmIHRoZSBydW5uZXIgb2YgdGhlIHRlc3QgaXMgYWx3YXlzIHRyeWluZyB0byB1c2Ugc3Bl
ZWNoIHN5bnRoZXNpcy4KKworICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dTcGVlY2hTeW50aGVz
aXM6OnNwZWVjaFN5bnRoZXNpcyk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6U3BlZWNoU3lu
dGhlc2lzKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6c2V0U3BlZWNoT3V0cHV0RW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnNwZWVjaE91dHB1dEVuYWJsZWQp
OgorICAgICAgICAoU3BlZWNoU3ludGhlc2lzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmlu
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaDoKKyAgICAg
ICAgKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tOgorICAgICAgICAoLVtXZWJTcGVl
Y2hTeW50aGVzaXNXcmFwcGVyIF9zaW11bGF0ZVNwZWFraW5nRmluaXNoZWRdKToKKyAgICAgICAg
KC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVha1V0dGVyYW5jZTpXZWJDb3JlOjpdKToK
KyAgICAgICAgKC1bV2ViU3BlZWNoU3ludGhlc2lzV3JhcHBlciBzcGVlY2hTeW50aGVzaXplcjpk
aWRGaW5pc2hTcGVha2luZzpdKToKKwogMjAxMy0wMi0xMiAgVGFrYXNoaSBTYWthbW90byAgPHRh
c2FrQGdvb2dsZS5jb20+CiAKICAgICAgICAgW1JlZmFjdG9yaW5nXSBNYWtlIG1fc2VsZWN0b3JD
aGVja2VyIGluIFN0eWxlUmVzb2x2ZXIgYW4gb24tc3RhY2sgb2JqZWN0LgpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hT
eW50aGVzaXMuY3BwCShyZXZpc2lvbiAxNDI0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw2ICszNCw4IEBACiAjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCiAKICNpbmNsdWRlICJE
T01XaW5kb3cuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzEs
OCArNzMsMTAgQEAKIAogU3BlZWNoU3ludGhlc2lzKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXM6
OnNwZWVjaFN5bnRoZXNpcygpCiB7Ci0gICAgaWYgKCFtX3NwZWVjaFN5bnRoZXNpcyAmJiBmcmFt
ZSgpKQorICAgIGlmICghbV9zcGVlY2hTeW50aGVzaXMgJiYgZnJhbWUoKSkgewogICAgICAgICBt
X3NwZWVjaFN5bnRoZXNpcyA9IFNwZWVjaFN5bnRoZXNpczo6Y3JlYXRlKCk7CisgICAgICAgIG1f
c3BlZWNoU3ludGhlc2lzLT5zZXRTcGVlY2hPdXRwdXRFbmFibGVkKGZyYW1lKCktPnNldHRpbmdz
KCktPnNwZWVjaFN5bnRoZXNpc091dHB1dEVuYWJsZWQoKSk7CisgICAgfQogICAgIHJldHVybiBt
X3NwZWVjaFN5bnRoZXNpcy5nZXQoKTsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAkocmV2aXNpb24gMTQyNDkz
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsOCBAQAogU3BlZWNoU3ludGhlc2lzOjpTcGVlY2hT
eW50aGVzaXMoKQogICAgIDogbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIodGhpcykpCiAgICAgLCBtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2UoMCkK
KyAgICAsIG1faXNQYXVzZWQoZmFsc2UpCisgICAgLCBtX3NwZWVjaE91dHB1dEVuYWJsZWQodHJ1
ZSkKIHsKIH0KICAgICAKQEAgLTc1LDEyICs3NywxNCBAQAogCiBib29sIFNwZWVjaFN5bnRoZXNp
czo6cGVuZGluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIC8vIFRoaXMgaXMg
dHJ1ZSBpZiB0aGVyZSBhcmUgYW55IHV0dGVyYW5jZXMgdGhhdCBoYXZlIG5vdCBzdGFydGVkLgor
ICAgIC8vIFRoYXQgbWVhbnMgdGhlcmUgd2lsbCBiZSBtb3JlIHRoYW4gb25lIGluIHRoZSBxdWV1
ZS4KKyAgICByZXR1cm4gbV91dHRlcmFuY2VRdWV1ZS5zaXplKCkgPiAxOwogfQogCiBib29sIFNw
ZWVjaFN5bnRoZXNpczo6cGF1c2VkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIG1faXNQYXVzZWQ7CiB9CiAKIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpzdGFydFNwZWFr
aW5nSW1tZWRpYXRlbHkoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiB1dHRlcmFuY2UpCkBAIC04
OCw2ICs5Miw3IEBACiAgICAgQVNTRVJUKCFtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2UpOwogICAg
IHV0dGVyYW5jZS0+c2V0U3RhcnRUaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsK
ICAgICBtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2UgPSB1dHRlcmFuY2U7CisgICAgbV9pc1BhdXNl
ZCA9IGZhbHNlOwogICAgIG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5zcGVhayh1dHRlcmFu
Y2UtPnBsYXRmb3JtVXR0ZXJhbmNlKCkpOwogfQogCkBAIC0xMDYsMTAgKzExMSwxMyBAQAogCiB2
b2lkIFNwZWVjaFN5bnRoZXNpczo6cGF1c2UoKQogeworICAgIGlmICghbV9pc1BhdXNlZCkKKyAg
ICAgICAgbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLnBhdXNlKCk7CiB9CiAKIHZvaWQgU3Bl
ZWNoU3ludGhlc2lzOjpyZXN1bWUoKQogeworICAgIG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ci5yZXN1bWUoKTsKIH0KIAogdm9pZCBTcGVlY2hTeW50aGVzaXM6OmZpcmVFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSogdXR0ZXJhbmNlLCB1
bnNpZ25lZCBsb25nIGNoYXJJbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtMTM5LDcgKzE0
NywxOSBAQAogewogICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkuc3RhcnRFdmVudCwgc3RhdGlj
X2Nhc3Q8U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKj4odXR0ZXJhbmNlLT5jbGllbnQoKSksIDAs
IFN0cmluZygpKTsKIH0KKyAgICAKK3ZvaWQgU3BlZWNoU3ludGhlc2lzOjpkaWRQYXVzZVNwZWFr
aW5nKGNvbnN0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiB1dHRlcmFuY2UpCit7
CisgICAgbV9pc1BhdXNlZCA9IHRydWU7CisgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS5wYXVz
ZUV2ZW50LCBzdGF0aWNfY2FzdDxTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqPih1dHRlcmFuY2Ut
PmNsaWVudCgpKSwgMCwgU3RyaW5nKCkpOworfQogCit2b2lkIFNwZWVjaFN5bnRoZXNpczo6ZGlk
UmVzdW1lU3BlYWtpbmcoY29uc3QgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqIHV0
dGVyYW5jZSkKK3sKKyAgICBtX2lzUGF1c2VkID0gZmFsc2U7CisgICAgZmlyZUV2ZW50KGV2ZW50
TmFtZXMoKS5yZXN1bWVFdmVudCwgc3RhdGljX2Nhc3Q8U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
Kj4odXR0ZXJhbmNlLT5jbGllbnQoKSksIDAsIFN0cmluZygpKTsKK30KKwogdm9pZCBTcGVlY2hT
eW50aGVzaXM6OmRpZEZpbmlzaFNwZWFraW5nKGNvbnN0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlKiB1dHRlcmFuY2UpCiB7CiAgICAgaGFuZGxlU3BlYWtpbmdDb21wbGV0ZWQoc3Rh
dGljX2Nhc3Q8U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKj4odXR0ZXJhbmNlLT5jbGllbnQoKSks
IGZhbHNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRo
ZXNpcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpcy5oCShyZXZpc2lvbiAxNDI0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTIgKzU3LDE3
IEBACiAgICAgCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxTcGVlY2hTeW50aGVzaXNWb2ljZT4g
PiYgZ2V0Vm9pY2VzKCk7CiAgICAgCisgICAgdm9pZCBzZXRTcGVlY2hPdXRwdXRFbmFibGVkKGJv
b2wgc3BlZWNoT3V0cHV0RW5hYmxlZCkgeyBtX3NwZWVjaE91dHB1dEVuYWJsZWQgPSBzcGVlY2hP
dXRwdXRFbmFibGVkOyB9CisgICAgdmlydHVhbCBib29sIHNwZWVjaE91dHB1dEVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3NwZWVjaE91dHB1dEVuYWJsZWQ7IH0KKyAgICAgICAgCiBwcml2YXRl
OgogICAgIFNwZWVjaFN5bnRoZXNpcygpOwogICAgIAogICAgIC8vIFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJDbGllbnQgb3ZlcnJpZGUgbWV0aG9kcy4KICAgICB2aXJ0dWFsIHZvaWQgdm9pY2Vz
RGlkQ2hhbmdlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0U3BlYWtpbmco
Y29uc3QgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUGF1c2VTcGVha2luZyhjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN1bWVTcGVha2lu
Zyhjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSopIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hTcGVha2luZyhjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzcGVha2luZ0Vycm9y
T2NjdXJyZWQoY29uc3QgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqKSBPVkVSUklE
RTsKIApAQCAtNzQsNyArNzksOCBAQAogICAgIFZlY3RvcjxSZWZQdHI8U3BlZWNoU3ludGhlc2lz
Vm9pY2U+ID4gbV92b2ljZUxpc3Q7CiAgICAgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiBtX2N1
cnJlbnRTcGVlY2hVdHRlcmFuY2U7CiAgICAgRGVxdWU8UmVmUHRyPFNwZWVjaFN5bnRoZXNpc1V0
dGVyYW5jZT4gPiBtX3V0dGVyYW5jZVF1ZXVlOwotCisgICAgYm9vbCBtX2lzUGF1c2VkOworICAg
IGJvb2wgbV9zcGVlY2hPdXRwdXRFbmFibGVkOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgkocmV2aXNpb24gMTQyNDkzKQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTM0LDYg
KzEzNCw3IEBACiBzaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucyBpbml0aWFsPWZhbHNlLCBj
b25kaXRpb25hbD1WSURFT19UUkFDSwogc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkIGluaXRp
YWw9ZmFsc2UKIG5vdGlmaWNhdGlvbnNFbmFibGVkIGluaXRpYWw9dHJ1ZQorc3BlZWNoU3ludGhl
c2lzT3V0cHV0RW5hYmxlZCBpbml0aWFsPXRydWUsIGNvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVT
SVMKIAogIyBTb21lIGFwcHMgbmVlZHMgaXNMb2FkaW5nSW5BUElTZW5zZSB0byBhY2NvdW50IGZv
ciBhY3RpdmUgc3VicmVzb3VyY2UgbG9hZGVycy4KIG5lZWRzSXNMb2FkaW5nSW5BUElTZW5zZVF1
aXJrIGluaXRpYWw9ZmFsc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgJKHJldmlzaW9uIDE0MjQ5MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNDQsOCArNDQsMTEgQEAKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3Rh
cnRTcGVha2luZyhjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSopID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoU3BlYWtpbmcoY29uc3QgUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2UqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlU3BlYWtp
bmcoY29uc3QgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlc3VtZVNwZWFraW5nKGNvbnN0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzcGVha2luZ0Vycm9yT2NjdXJyZWQo
Y29uc3QgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqKSA9IDA7Ci0gICAgCisKKyAg
ICB2aXJ0dWFsIGJvb2wgc3BlZWNoT3V0cHV0RW5hYmxlZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgdm9pY2VzRGlkQ2hhbmdlKCkgPSAwOwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQoKSB7IH0KQEAgLTU3LDcgKzYwLDkgQEAK
ICAgICAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9p
Y2U+ID4mIHZvaWNlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fdm9pY2VMaXN0OyB9CiAgICAgdm9p
ZCBzcGVhayhjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSYpOwotICAgIAor
ICAgIHZvaWQgcGF1c2UoKTsKKyAgICB2b2lkIHJlc3VtZSgpOworCiAgICAgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplckNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50
aGVzaXplckNsaWVudDsgfQogICAgIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFj
Lm1tCShyZXZpc2lvbiAxNDI0OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYs
MTMgQEAKICAgICByZXR1cm4gMjAwLjBmICogcmF0ZTsKIH0KIAorLSAodm9pZClfc2ltdWxhdGVT
cGVha2luZ0ZpbmlzaGVkCit7CisgICAgLy8gSWYgRFJUIGlzIHJ1bm5pbmcgdGhlbiB3ZSBjYW4n
dCByZWxpYWJseSB1c2UgdGhlIHN5c3RlbSdzIHJlYWwgc3BlZWNoIHN5bnRoZXNpemVyLCBzaW5j
ZSBpdCBtaWdodAorICAgIC8vIGNvbmZsaWN0IHdpdGggb3RoZXIgc3BlZWNoIHRlc3RzIG9yIHdp
dGggb3RoZXIgYXBwcyBvbiB0aGUgc3lzdGVtLgorICAgIG1fc3ludGhlc2l6ZXJPYmplY3QtPmNs
aWVudCgpLT5kaWRGaW5pc2hTcGVha2luZyhtX3V0dGVyYW5jZSk7Cit9CisKIC0gKHZvaWQpc3Bl
YWtVdHRlcmFuY2U6KGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlICopdXR0ZXJhbmNlCiB7CiAgICAgLy8gV2hlbiBzcGVhayBpcyBjYWxsZWQgd2Ugc2hvdWxk
IG5vdCBoYXZlIGFuIGV4aXN0aW5nIHNwZWVjaCB1dHRlcmFuY2Ugb3V0c3RhbmRpbmcuCkBAIC05
OCwyMyArMTA1LDUzIEBACiAgICAgICAgIH0KICAgICB9CiAgICAgCisgICAgTlNTdHJpbmcgKnZv
aWNlVVJJID0gbmlsOwogICAgIGlmICh1dHRlcmFuY2VWb2ljZUJ5VVJJKQotICAgICAgICBbbV9z
eW50aGVzaXplciBzZXRWb2ljZTp1dHRlcmFuY2VWb2ljZUJ5VVJJLT52b2ljZVVSSSgpXTsKKyAg
ICAgICAgdm9pY2VVUkkgPSB1dHRlcmFuY2VWb2ljZUJ5VVJJLT52b2ljZVVSSSgpOwogICAgIGVs
c2UgaWYgKHV0dGVyYW5jZVZvaWNlQnlMYW5ndWFnZSkKLSAgICAgICAgW21fc3ludGhlc2l6ZXIg
c2V0Vm9pY2U6dXR0ZXJhbmNlVm9pY2VCeUxhbmd1YWdlLT52b2ljZVVSSSgpXTsKKyAgICAgICAg
dm9pY2VVUkkgPSB1dHRlcmFuY2VWb2ljZUJ5TGFuZ3VhZ2UtPnZvaWNlVVJJKCk7CiAgICAgZWxz
ZQotICAgICAgICBbbV9zeW50aGVzaXplciBzZXRWb2ljZTpbTlNTcGVlY2hTeW50aGVzaXplciBk
ZWZhdWx0Vm9pY2VdXTsKKyAgICAgICAgdm9pY2VVUkkgPSBbTlNTcGVlY2hTeW50aGVzaXplciBk
ZWZhdWx0Vm9pY2VdOworCisgICAgLy8gRG9uJ3Qgc2V0IHRoZSB2b2ljZSB1bmxlc3MgbmVjZXNz
YXJ5LiBUaGVyZSdzIGEgYnVnIGluIE5TU3BlZWNoU3ludGhlc2l6ZXIgc3VjaCB0aGF0CisgICAg
Ly8gc2V0dGluZyB0aGUgdm9pY2UgZm9yIHRoZSBmaXJzdCB0aW1lIHdpbGwgY2F1c2UgdGhlIGZp
cnN0IHNwZWVjaERvbmUgY2FsbGJhY2sgdG8gcmVwb3J0IGl0IHdhcyB1bnN1Y2Nlc3NmdWwuCisg
ICAgaWYgKCFbW21fc3ludGhlc2l6ZXIgdm9pY2VdIGlzRXF1YWxUb1N0cmluZzp2b2ljZVVSSV0p
CisgICAgICAgIFttX3N5bnRoZXNpemVyIHNldFZvaWNlOnZvaWNlVVJJXTsKICAgICAKICAgICBb
bV9zeW50aGVzaXplciBzZXRSYXRlOltzZWxmIGNvbnZlcnRSYXRlVG9XUE06dXR0ZXJhbmNlLT5y
YXRlKCldXTsKICAgICBbbV9zeW50aGVzaXplciBzZXRWb2x1bWU6dXR0ZXJhbmNlLT52b2x1bWUo
KV07CiAgICAgCiAgICAgbV91dHRlcmFuY2UgPSB1dHRlcmFuY2U7Ci0gICAgW21fc3ludGhlc2l6
ZXIgc3RhcnRTcGVha2luZ1N0cmluZzp1dHRlcmFuY2UtPnRleHQoKV07CisKKyAgICBpZiAobV9z
eW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPnNwZWVjaE91dHB1dEVuYWJsZWQoKSkKKyAgICAg
ICAgW21fc3ludGhlc2l6ZXIgc3RhcnRTcGVha2luZ1N0cmluZzp1dHRlcmFuY2UtPnRleHQoKV07
CisgICAgZWxzZQorICAgICAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKF9zaW11
bGF0ZVNwZWFraW5nRmluaXNoZWQpIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6LjFdOworCiAg
ICAgbV9zeW50aGVzaXplck9iamVjdC0+Y2xpZW50KCktPmRpZFN0YXJ0U3BlYWtpbmcodXR0ZXJh
bmNlKTsKIH0KIAorLSAodm9pZClwYXVzZQoreworICAgIGlmICghbV91dHRlcmFuY2UpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBbbV9zeW50aGVzaXplciBwYXVzZVNwZWFraW5nQXRCb3Vu
ZGFyeTpOU1NwZWVjaEltbWVkaWF0ZUJvdW5kYXJ5XTsKKyAgICBtX3N5bnRoZXNpemVyT2JqZWN0
LT5jbGllbnQoKS0+ZGlkUGF1c2VTcGVha2luZyhtX3V0dGVyYW5jZSk7Cit9CisKKy0gKHZvaWQp
cmVzdW1lCit7CisgICAgaWYgKCFtX3V0dGVyYW5jZSkKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIFttX3N5bnRoZXNpemVyIGNvbnRpbnVlU3BlYWtpbmddOworICAgIG1fc3ludGhlc2l6ZXJP
YmplY3QtPmNsaWVudCgpLT5kaWRSZXN1bWVTcGVha2luZyhtX3V0dGVyYW5jZSk7Cit9CisKIC0g
KHZvaWQpc3BlZWNoU3ludGhlc2l6ZXI6KE5TU3BlZWNoU3ludGhlc2l6ZXIgKilzZW5kZXIgZGlk
RmluaXNoU3BlYWtpbmc6KEJPT0wpZmluaXNoZWRTcGVha2luZwogeworICAgIEFTU0VSVChtX3V0
dGVyYW5jZSk7CiAgICAgVU5VU0VEX1BBUkFNKHNlbmRlcik7CiAgICAgCiAgICAgLy8gQ2xlYXIg
dGhlIG1fdXR0ZXJhbmNlIHZhcmlhYmxlIGluIGNhc2UgZmluaXNoIHNwZWFraW5nIGtpY2tzIG9m
ZiBhIG5ldyBzcGVha2luZyBqb2IgaW1tZWRpYXRlbHkuCkBAIC0xNTMsNiArMTkwLDE2IEBACiAg
ICAgfQogfQogICAgIAordm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpwYXVzZSgpCit7
CisgICAgW21fcGxhdGZvcm1TcGVlY2hXcmFwcGVyLmdldCgpIHBhdXNlXTsKK30KKwordm9pZCBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpyZXN1bWUoKQoreworICAgIFttX3BsYXRmb3JtU3Bl
ZWNoV3JhcHBlci5nZXQoKSByZXN1bWVdOworfQorICAgIAogdm9pZCBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyOjpzcGVhayhjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSYg
dXR0ZXJhbmNlKQogewogICAgIGlmICghbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXIpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDI1OTEpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0wMi0xMiAgQ2hyaXMg
RmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgorCisgICAgICAgIFdlYlNwZWVjaDogcGx1
bWIgdGhyb3VnaCBhIG1ldGhvZCB0byBnZW5lcmF0ZSBmYWtlIHNwZWVjaCBqb2JzIGZvciB0ZXN0
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDcz
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBwcmVmZXJlbmNlIHRoYXQgd2lsbCB0ZWxsIHRoZSBzcGVlY2ggc3ludGhlc2l6ZXIgdG8gZGlz
YWJsZQorICAgICAgICB0aGUgYWN0dWFsIG91dHB1dHRpbmcgb2Ygc3BlZWNoIHN5bnRoZXNpcywg
Zm9yIHRoZSBwdXJwb3NlcyBvZiB0ZXN0aW5nLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
OgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZDpdKToKKwogMjAxMy0w
Mi0xMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEaXNhYmxl
IGRlbGV0ZSBidXR0b24gY29udHJvbGxlciBvbiBub24tTWFjIHBvcnRzIGFuZCBkZWxldGUgRWRp
dG9yQ2xpZW50OjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlCkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgJKHJldmlzaW9uIDE0
MjQ5MykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5Myw2ICsyOTMsMTEgQEAKIC0gKHZvaWQpc2V0QmFja3Nw
YWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wpYmFja3NwYWNlS2V5
TmF2aWdhdGlvbkVuYWJsZWQ7CiAKKy8vIFNwZWVjaFN5bnRoZXNpcyBzdXBwb3J0IGlzIGRlcGVu
ZGVudCBvbiBXZWJDb3JlL1dlYktpdCBiZWluZworLy8gY29tcGlsZWQgd2l0aCBFTkFCTEVfU1BF
RUNIX1NZTlRIRVNJUy4KKy0gKHZvaWQpc2V0U3BlZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxlZDoo
Qk9PTClmbGFnOworLSAoQk9PTClzcGVlY2hTeW50aGVzaXNPdXRwdXRFbmFibGVkOworCiAtICh2
b2lkKXNldFdhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3I6KEJPT0wpZmxhZzsK
IC0gKEJPT0wpd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcjsKIApJbmRleDog
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oCShyZXZpc2lvbiAxNDI0OTMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2LDcg
QEAKICNkZWZpbmUgV2ViS2l0QmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWRLZXkgQCJXZWJL
aXRCYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0SW5jcmVtZW50
YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHNLZXkgQCJXZWJLaXRJbmNyZW1l
bnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcyIKICNkZWZpbmUgV2ViS2l0
V2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcktleSBAIldlYktpdFdhbnRzQmFs
YW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IiCisjZGVmaW5lIFdlYktpdFNwZWVjaFN5bnRo
ZXNpc091dHB1dEVuYWJsZWRLZXkgQCJXZWJLaXRTcGVlY2hTeW50aGVzaXNPdXRwdXRFbmFibGVk
IgogCiAvLyBDb3JlR3JhcGhpY3MgZGVmZXJyZWQgdXBkYXRlcyBhcmUgZGlzYWJsZWQgaWYgV2Vi
S2l0RW5hYmxlQ29hbGVzY2VkVXBkYXRlc1ByZWZlcmVuY2VLZXkgaXMgc2V0CiAvLyB0byBOTywg
b3IgaGFzIG5vIHZhbHVlLiAgRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBNYWMgT1MgWCAxMC40LjYs
IGRlZmVycmVkIHVwZGF0ZXMgYXJlIE9GRiBieQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQkocmV2aXNpb24gMTQyNDkzKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTY4LDcgKzE1NjgsOSBAQAogICAgIHNl
dHRpbmdzLT5zZXRCYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZChbcHJlZmVyZW5jZXMgYmFj
a3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0V2FudHNCYWxh
bmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcihbcHJlZmVyZW5jZXMgd2FudHNCYWxhbmNlZFNl
dERlZmVyc0xvYWRpbmdCZWhhdmlvcl0pOwogICAgIHNldHRpbmdzLT5zZXRNb2NrU2Nyb2xsYmFy
c0VuYWJsZWQoW3ByZWZlcmVuY2VzIG1vY2tTY3JvbGxiYXJzRW5hYmxlZF0pOwotCisjaWYgRU5B
QkxFKFNQRUVDSF9TWU5USEVTSVMpCisgICAgc2V0dGluZ3MtPnNldFNwZWVjaFN5bnRoZXNpc091
dHB1dEVuYWJsZWQoW3ByZWZlcmVuY2VzIHNwZWVjaFN5bnRoZXNpc091dHB1dEVuYWJsZWRdKTsK
KyNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBzZXR0aW5ncy0+c2V0U2hvdWxk
RGlzcGxheVN1YnRpdGxlcyhbcHJlZmVyZW5jZXMgc2hvdWxkRGlzcGxheVN1YnRpdGxlc10pOwog
ICAgIHNldHRpbmdzLT5zZXRTaG91bGREaXNwbGF5Q2FwdGlvbnMoW3ByZWZlcmVuY2VzIHNob3Vs
ZERpc3BsYXlDYXB0aW9uc10pOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAxNDI0OTMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MDAsNiArNDAwLDcg
QEAKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRTdXBwcmVz
c2VzSW5jcmVtZW50YWxSZW5kZXJpbmdLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRo
Qm9vbDpOT10sICAgV2ViS2l0UmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZEtleSwKICAgICAgICAg
W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRCYWNrc3BhY2VLZXlOYXZpZ2F0
aW9uRW5hYmxlZEtleSwKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBX
ZWJLaXRTcGVlY2hTeW50aGVzaXNPdXRwdXRFbmFibGVkS2V5LAogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFNob3VsZERpc3BsYXlTdWJ0aXRsZXNQcmVmZXJl
bmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFNo
b3VsZERpc3BsYXlDYXB0aW9uc1ByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1i
ZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0U2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnNQcmVm
ZXJlbmNlS2V5LApAQCAtMTY1Niw5ICsxNjU3LDE4IEBACiAtICh2b2lkKXNldFBhZ2VDYWNoZVN1
cHBvcnRzUGx1Z2luczooQk9PTClmbGFnCiB7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFn
IGZvcktleTpXZWJLaXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnNQcmVmZXJlbmNlS2V5XTsKK30K
IAorLSAodm9pZClzZXRTcGVlY2hTeW50aGVzaXNPdXRwdXRFbmFibGVkOihCT09MKWZsYWcKK3sK
KyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdFNwZWVjaFN5bnRoZXNp
c091dHB1dEVuYWJsZWRLZXldOwogfQogCistIChCT09MKXNwZWVjaFN5bnRoZXNpc091dHB1dEVu
YWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRTcGVlY2hT
eW50aGVzaXNPdXRwdXRFbmFibGVkS2V5XTsKK30KKwogLSAodm9pZClzZXRCYWNrc3BhY2VLZXlO
YXZpZ2F0aW9uRW5hYmxlZDooQk9PTClmbGFnCiB7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpm
bGFnIGZvcktleTpXZWJLaXRCYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZEtleV07CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaAkocmV2aXNpb24gMTQyNDkzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0Nyw2ICsy
NDcsMTAgQEAKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRQYWdlVmlzaWJpbGl0eUJh
c2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
LCBib29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBhZ2VWaXNp
YmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwog
CisvLyBEZWZhdWx0cyB0byBmYWxzZQorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFNw
ZWVjaFN5bnRoZXNpc091dHB1dEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywg
Ym9vbCBlbmFibGVkKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRTcGVlY2hTeW50
aGVzaXNPdXRwdXRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMpOworCiBXS19F
WFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzUmVzZXRUZXN0UnVubmVyT3ZlcnJpZGVzKFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAJKHJl
dmlzaW9uIDE0MjQ5MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzMywzICsxMDMzLDE0IEBACiB7CiAgICAg
cmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNz
U3VwcHJlc3Npb25FbmFibGVkKCk7CiB9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldFNwZWVjaFN5
bnRoZXNpc091dHB1dEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9v
bCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFNwZWVjaFN5bnRo
ZXNpc091dHB1dEVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldFNw
ZWVjaFN5bnRoZXNpc091dHB1dEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c3BlZWNoU3ludGhlc2lz
T3V0cHV0RW5hYmxlZCgpOworfQorCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAxNDI0OTMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNTAs
NiArMjM1MCw5IEBACiAgICAgc2V0dGluZ3MtPnNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1vY2tTY3JvbGxiYXJzRW5h
YmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChz
dG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Omh5cGVybGlua0F1ZGl0
aW5nRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldFJlcXVlc3RBbmltYXRpb25GcmFt
ZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpyZXF1
ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkS2V5KCkpKTsKKyNpZiBFTkFCTEUoU1BFRUNIX1NZTlRI
RVNJUykKKyAgICBzZXR0aW5ncy0+c2V0U3BlZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxlZChzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNwZWVjaFN5bnRoZXNpc091
dHB1dEVuYWJsZWRLZXkoKSkpOworI2VuZGlmCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
CiAgICAgc2V0dGluZ3MtPnNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKHN0b3JlLmdldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c2Nyb2xsQW5pbWF0b3JFbmFibGVkS2V5KCkpKTsK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyNTkxKQorKysgU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMDItMTIg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJTcGVl
Y2g6IHBsdW1iIHRocm91Z2ggYSBtZXRob2QgdG8gZ2VuZXJhdGUgZmFrZSBzcGVlY2ggam9icyBm
b3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3MzUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgcHJlZmVyZW5jZSB0byBkaXNhYmxlIHRoZSBhY3R1YWwgb3V0cHV0dGluZyBvZiBz
cGVlY2ggc3ludGhlc2lzCisgICAgICAgIHdoaWxlIHRlc3RpbmcuCisKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2Vz
U2V0U3BlZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2Vz
R2V0U3BlZWNoU3ludGhlc2lzT3V0cHV0RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNl
cyk6CisKIDIwMTMtMDItMTEgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5u
ZXQ+CiAKICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IE1ha2UgQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lIG5vdCBrbm93IGNvbnRlbnRzIHNpemUuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgJKHJldmlzaW9uIDE0MjQ5MykKKysrIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE0MCw2ICsxNDAsNyBAQAogICAgIG1hY3JvKFFUS2l0RW5hYmxlZCwgaXNRVEtpdEVuYWJsZWQs
IEJvb2wsIGJvb2wsIHRydWUpIFwKICAgICBtYWNybyhMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1D
b25zb2xlRW5hYmxlZCwgbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQsIEJv
b2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oUGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NT
dXBwcmVzc2lvbkVuYWJsZWQsIHBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25F
bmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFNwZWVjaFN5bnRoZXNpc091
dHB1dEVuYWJsZWQsIHNwZWVjaFN5bnRoZXNpc091dHB1dEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUpIFwKICAgICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNF
KG1hY3JvKSBcCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAkocmV2aXNpb24gMTQyNDkzKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3MCw2ICs1NzAsNyBAQAogI2lmICFQTEFURk9S
TShNQUMpCiAgICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0
YXRlQ2hhbmdlZCh0cnVlKTsKICNlbmRpZgorICAgIFdLUHJlZmVyZW5jZXNTZXRTcGVlY2hTeW50
aGVzaXNPdXRwdXRFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CiAKICAgICAvLyBpbiB0aGUg
Y2FzZSB0aGF0IGEgdGVzdCB1c2luZyB0aGUgY2hyb21lIGlucHV0IGZpZWxkIGZhaWxlZCwgYmUg
c3VyZSB0byBjbGVhbiB1cCBmb3IgdGhlIG5leHQgdGVzdAogICAgIG1fbWFpbldlYlZpZXctPnJl
bW92ZUNocm9tZUlucHV0RmllbGQoKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0JKHJldmlzaW9uIDE0MjQ5MykKKysrIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjkxLDYgKzY5MSw4
IEBACiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBbcHJlZmVyZW5jZXMgc2V0V2ViQXVkaW9F
bmFibGVkOllFU107CiAjZW5kaWYKKyAgICAKKyAgICBbcHJlZmVyZW5jZXMgc2V0U3BlZWNoU3lu
dGhlc2lzT3V0cHV0RW5hYmxlZDpOT107CiAKICAgICBbcHJlZmVyZW5jZXMgc2V0U2NyZWVuRm9u
dFN1YnN0aXR1dGlvbkVuYWJsZWQ6WUVTXTsKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyNTkxKQorKysgVG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDItMTIgIENocmlz
IEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJTcGVlY2g6IHBs
dW1iIHRocm91Z2ggYSBtZXRob2QgdG8gZ2VuZXJhdGUgZmFrZSBzcGVlY2ggam9icyBmb3IgdGVz
dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3
MzUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHVy
biBvZmYgYXVkaW8gb3V0cHV0IG9mIHNwZWVjaCBzeW50aGVzaXMgd2hpbGUgdGVzdGluZy4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAg
KHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6CisKIDIwMTMtMDItMTEgIFRpbW90aHkgTG9o
ICA8dGltbG9oQGNocm9taXVtLmNvbT4KIAogICAgICAgICB3ZWJraXQtcGF0Y2ggdXBsb2FkIHJl
Z2VuZXJhdGVzIHRoZSBXZWJDb3JlIENoYW5nZUxvZyBldmVyeSB0aW1lIGl0J3MgY2FsbGVkCg==
</data>
<flag name="review"
          id="207838"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188237</attachid>
            <date>2013-02-13 17:50:59 -0800</date>
            <delta_ts>2013-02-14 09:06:54 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>26137</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjgzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDEzLTAyLTEzICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViU3BlZWNoOiBwbHVt
YiB0aHJvdWdoIGEgbWV0aG9kIHRvIGdlbmVyYXRlIGZha2Ugc3BlZWNoIGpvYnMgZm9yIHRlc3Rp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzM1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGNh
bid0IHJlbGlhYmx5IHVzZSB0aGUgcGxhdGZvcm1zIHN5bnRoZXNpemVyIHRvIHRlc3Qgc3BlZWNo
IHN5bnRoZXNpcyBpbnRlcm5hbHMuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiBJbnRlcm5h
bHMgbWV0aG9kIHRvIGVuYWJsZSBhIG1vY2sgc3ludGhlc2l6ZXIsIHdoaWNoIGlzIGluaGVyaXRz
CisgICAgICAgIGZyb20gdGhlIFBsYXRmb3JtU3BlZWNoU3l0aGVzaXplci4KKworICAgICAgICBU
aGUgZmFrZSBzeW50aGVzaXplciBnb2VzIHRocm91Z2ggYWxsIHRoZSBtb3Rpb25zIG9mIGEgcmVh
bCBzeW50aGVzaXplciBidXQgZG9lc24ndCBkbyBhbnl0aGluZy4KKworICAgICAgICBBIGJ1bmNo
IG9mIGNoYW5nZXMgd2VyZSBuZWVkZWQgaGVyZSB0byBtYWtlIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIgc3ViY2xhc3NhYmxlIHNvIHRoYXQgdGhlCisgICAgICAgIHJpZ2h0IHZpcnR1YWwgYXJl
IHVzZWQuCisKKyAgICAgICAgVGhlIE1vY2sgc3ludGhlc2l6ZXIgb25seSBsaXZlcyBpbiBXZWJD
b3JlVGVzdFN1cHBvcnQuIEJlY2F1c2UgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciB1c2VzCisg
ICAgICAgIGEgUmV0YWluUHRyLCBJIG5lZWRlZCB0byBtYWtlIFdlYkNvcmVUZXN0U3VwcG9ydCBs
aW5rIENvcmVGb3VuZGF0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6U3BlZWNoU3lu
dGhlc2lzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6c2V0UGxhdGZvcm1T
eW50aGVzaXplcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aFN5bnRoZXNpczo6Z2V0Vm9pY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
czo6c3RhcnRTcGVha2luZ0ltbWVkaWF0ZWx5KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXMuaDoKKyAgICAgICAgKFNwZWVjaFN5bnRoZXNpcyk6CisgICAgICAgICog
V2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIuaDoKKyAgICAgICAgKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6flBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1vY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1vY2spOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6
On5QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jayk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6c3BlYWtpbmdGaW5pc2hlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6aW5pdGlhbGl6ZVZvaWNlTGlz
dCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6c3Bl
YWspOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1v
Y2suaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNb2NrKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5hYmxlTW9ja1Nw
ZWVjaFN5bnRoZXNpemVyKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMy0wMi0xMyAgS2VudGFybyBIYXJhICA8
aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBHZW5lcmF0ZSB3cmFwcGVyIG1l
dGhvZHMgZm9yIGN1c3RvbSBnZXR0ZXJzL3NldHRlcnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29y
a2luZyBjb3B5KQpAQCAtMTUzMyw2ICsxNTMzLDcgQEAKIF9fWlRWTjdXZWJDb3JlMTZJY29uRGF0
YWJhc2VCYXNlRQogX19aVFZON1dlYkNvcmUxN0ZyYW1lTG9hZGVyQ2xpZW50RQogX19aVFZON1dl
YkNvcmUyNUhpc3RvcnlQcm9wZXJ0eUxpc3RXcml0ZXJFCitfX1pUVk43V2ViQ29yZTI1UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplckUKIF9fWlRWTjdXZWJDb3JlMjhJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsOFNldHRpbmdzRQogX19aTjdXZWJDb3JlMTZDU1NQYXJzZXJDb250ZXh0QzFFUE5T
XzhEb2N1bWVudEVSS05TXzRLVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMThTdHls
ZVNoZWV0Q29udGVudHMxMXBhcnNlU3RyaW5nRVJLTjNXVEY2U3RyaW5nRQpAQCAtMTY4OCw2ICsx
Njg5LDcgQEAKIF9fWk43V2ViQ29yZTEzdG9EZXZpY2VTcGFjZUVSS05TXzlGbG9hdFJlY3RFUDhO
U1dpbmRvdwogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHRDMUVQOUNHQ29udGV4dAogX19a
TjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQxNWRyYXdOYXRpdmVJbWFnZUVQN0NHSW1hZ2VSS05T
XzlGbG9hdFNpemVFTlNfMTBDb2xvclNwYWNlRVJLTlNfOUZsb2F0UmVjdEVTOV9OU18xN0NvbXBv
c2l0ZU9wZXJhdG9yRU5TXzlCbGVuZE1vZGVFTlNfMTZJbWFnZU9yaWVudGF0aW9uRQorX19aTjdX
ZWJDb3JlMTVTcGVlY2hTeW50aGVzaXMyMnNldFBsYXRmb3JtU3ludGhlc2l6ZXJFTjNXVEYxMFBh
c3NSZWZQdHJJTlNfMjVQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyRUVFCiBfX1pON1dlYkNvcmUx
NkZvbnRQbGF0Zm9ybURhdGFDMUVQNk5TRm9udGZiYmJOU18xNUZvbnRPcmllbnRhdGlvbkVOU18x
NkZvbnRXaWR0aFZhcmlhbnRFCiBfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFDMkVQNk5T
Rm9udGZiYmJOU18xNUZvbnRPcmllbnRhdGlvbkVOU18xNkZvbnRXaWR0aFZhcmlhbnRFCiBfX1pO
N1dlYkNvcmUxNmNvbG9yRnJvbU5TQ29sb3JFUDdOU0NvbG9yCkBAIC0xNzA3LDYgKzE3MDksOCBA
QAogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWNFdgogX19aTjdXZWJDb3Jl
MjRjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXNFdgogX19aTjdXZWJDb3JlMjRrZXlJZGVudGlmaWVy
Rm9yS2V5RXZlbnRFUDdOU0V2ZW50CitfX1pON1dlYkNvcmUyNERPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpczE1c3BlZWNoU3ludGhlc2lzRVBOU185RE9NV2luZG93RQorX19aTjdXZWJDb3JlMjVQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyQzJFUE5TXzMxUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNs
aWVudEUKIF9fWk43V2ViQ29yZTI1UGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjEyc2NoZWR1bGVD
YWxsRVA0X05QUFBGdlB2RVMzXwogX19aTjdXZWJDb3JlMjVQbHVnaW5NYWluVGhyZWFkU2NoZWR1
bGVyMTRyZWdpc3RlclBsdWdpbkVQNF9OUFAKIF9fWk43V2ViQ29yZTI1UGx1Z2luTWFpblRocmVh
ZFNjaGVkdWxlcjE2dW5yZWdpc3RlclBsdWdpbkVQNF9OUFAKQEAgLTE3MjUsNiArMTcyOSw3IEBA
CiBfX1pON1dlYkNvcmUyOGNvbnRleHRNZW51SXRlbVRhZ1Nob3dDb2xvcnNFdgogX19aTjdXZWJD
b3JlMjhjb250ZXh0TWVudUl0ZW1UYWdTbWFydExpbmtzRXYKIF9fWk43V2ViQ29yZTI4Y29udGV4
dE1lbnVJdGVtVGFnU3BlZWNoTWVudUV2CitfX1pON1dlYkNvcmUyOFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2lzVm9pY2U2Y3JlYXRlRVJLTjNXVEY2U3RyaW5nRVM0X1M0X2JiCiBfX1pON1dlYkNvcmUy
OWFwcGxpY2F0aW9uSXNNaWNyb3NvZnRPdXRsb29rRXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1l
bnVJdGVtVGFnTGVmdFRvUmlnaHRFdgogX19aTjdXZWJDb3JlMjljb250ZXh0TWVudUl0ZW1UYWdS
aWdodFRvTGVmdEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShyZXZp
c2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsMTIgQEAKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisjaW5jbHVkZSAiRE9NV2lu
ZG93U3BlZWNoU3ludGhlc2lzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1vY2suaCIKKyNpbmNsdWRlICJTcGVlY2hTeW50aGVzaXMuaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKQEAgLTgyNyw2ICs4MzMsMjAg
QEAKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiB9CiAKKyNpZiBFTkFCTEUoU1BF
RUNIX1NZTlRIRVNJUykKK3ZvaWQgSW50ZXJuYWxzOjplbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6
ZXIoKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOworICAg
IGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5kb21XaW5kb3coKSkKKyAgICAgICAgcmV0dXJu
OworICAgIFNwZWVjaFN5bnRoZXNpcyogc3ludGhlc2lzID0gRE9NV2luZG93U3BlZWNoU3ludGhl
c2lzOjpzcGVlY2hTeW50aGVzaXMoZG9jdW1lbnQtPmRvbVdpbmRvdygpKTsKKyAgICBpZiAoIXN5
bnRoZXNpcykKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHN5bnRoZXNpcy0+c2V0UGxhdGZv
cm1TeW50aGVzaXplcihQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6Y3JlYXRlKHN5bnRo
ZXNpcykpOworfQorI2VuZGlmCisgICAgCiB2b2lkIEludGVybmFsczo6c2V0RW5hYmxlTW9ja1Bh
Z2VQb3B1cChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogI2lmIEVOQUJMRShQ
QUdFX1BPUFVQKQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCShyZXZpc2lvbiAx
NDI3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yODUsNiArMjg1LDEwIEBACiAgICAgdm9pZCBpbml0aWFsaXplTW9ja0NETSgpOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKKyAgICB2b2lkIGVuYWJsZU1v
Y2tTcGVlY2hTeW50aGVzaXplcigpOworI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIAogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQqKTsKICAgICBEb2N1bWVudCog
Y29udGV4dERvY3VtZW50KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1MSw0ICsyNTEsNiBAQAogICAgIHZvaWQgc2V0
VXNlc092ZXJsYXlTY3JvbGxiYXJzKGluIGJvb2xlYW4gZW5hYmxlZCk7CiAKICAgICBbQ29uZGl0
aW9uYWw9RU5DUllQVEVEX01FRElBX1YyXSB2b2lkIGluaXRpYWxpemVNb2NrQ0RNKCk7CisgICAg
CisgICAgW0NvbmRpdGlvbmFsPVNQRUVDSF9TWU5USEVTSVNdIHZvaWQgZW5hYmxlTW9ja1NwZWVj
aFN5bnRoZXNpemVyKCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaAkocmV2aXNpb24gMTQyNzU1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MSwyMSArNTEsMjUgQEAKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyQ2xpZW50KCkgeyB9CiB9OwogICAgIAotY2xhc3MgUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplciB7CitjbGFzcyBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyIDogcHVibGljIFJlZkNv
dW50ZWQ8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcj4gewogcHVibGljOgotICAgIGV4cGxpY2l0
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVu
dCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI+IGNy
ZWF0ZShQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50Kik7CisKKyAgICB2aXJ0dWFsIH5Q
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKCkgeyB9CiAgICAgCiAgICAgY29uc3QgVmVjdG9yPFJl
ZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlPiA+JiB2b2ljZUxpc3QoKSBjb25zdCB7
IHJldHVybiBtX3ZvaWNlTGlzdDsgfQotICAgIHZvaWQgc3BlYWsoY29uc3QgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2UmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3BlYWsoY29uc3QgUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmKTsKICAgICAKICAgICBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVjaFN5bnRo
ZXNpemVyQ2xpZW50OyB9CiAgICAgCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplcihQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50Kik7CisgICAg
VmVjdG9yPFJlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlPiA+IG1fdm9pY2VMaXN0
OworICAgIAogcHJpdmF0ZToKICAgICBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50KiBt
X3NwZWVjaFN5bnRoZXNpemVyQ2xpZW50OwotICAgIFZlY3RvcjxSZWZQdHI8UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNWb2ljZT4gPiBtX3ZvaWNlTGlzdDsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlh
bGl6ZVZvaWNlTGlzdCgpOwogICAgIAotICAgIHZvaWQgaW5pdGlhbGl6ZVZvaWNlTGlzdCgpOwot
ICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXRhaW5QdHI8V2ViU3BlZWNoU3ludGhlc2lz
V3JhcHBlcj4gbV9wbGF0Zm9ybVNwZWVjaFdyYXBwZXI7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3Bw
CShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTEgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAorUGFzc1JlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyPiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpjcmVhdGUoUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplckNsaWVudCogY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcihjbGllbnQpKTsKK30KKwogUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcjo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcihQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyQ2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3NwZWVjaFN5bnRoZXNpemVyQ2xpZW50KGNsaWVu
dCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1vY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9j
ay5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJN
b2NrLmgiCisKKyNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQYXNzUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrPiBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTW9jazo6Y3JlYXRlKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJD
bGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNb2NrKGNsaWVudCkpOworfQorICAgIAorUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplck1vY2s6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrKFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJDbGllbnQqIGNsaWVudCkKKyAgICA6IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIo
Y2xpZW50KQorICAgICwgbV9zcGVha2luZ0ZpbmlzaGVkVGltZXIodGhpcywgJlBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJNb2NrOjpzcGVha2luZ0ZpbmlzaGVkKQorICAgICwgbV91dHRlcmFuY2Uo
MCkKK3sKK30KKyAgICAKK1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjp+UGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplck1vY2soKQoreworICAgIG1fc3BlYWtpbmdGaW5pc2hlZFRpbWVyLnN0
b3AoKTsKK30KKwordm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6c3BlYWtpbmdG
aW5pc2hlZChUaW1lcjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jaz4qKQoreworICAgIGNs
aWVudCgpLT5kaWRGaW5pc2hTcGVha2luZyhtX3V0dGVyYW5jZSk7CisgICAgbV91dHRlcmFuY2Ug
PSAwOworfQorICAgIAordm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6aW5pdGlh
bGl6ZVZvaWNlTGlzdCgpCit7CisgICAgbV92b2ljZUxpc3QuY2xlYXIoKTsKKyAgICBtX3ZvaWNl
TGlzdC5hcHBlbmQoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZTo6Y3JlYXRlKFN0cmluZygi
bW9jay52b2ljZS5icnVjZSIpLCBTdHJpbmcoImJydWNlIiksIFN0cmluZygiZW4tVVMiKSwgdHJ1
ZSwgdHJ1ZSkpOworICAgIG1fdm9pY2VMaXN0LmFwcGVuZChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1ZvaWNlOjpjcmVhdGUoU3RyaW5nKCJtb2NrLnZvaWNlLmNsYXJrIiksIFN0cmluZygiY2xhcmsi
KSwgU3RyaW5nKCJlbi1VUyIpLCB0cnVlLCBmYWxzZSkpOworICAgIG1fdm9pY2VMaXN0LmFwcGVu
ZChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpjcmVhdGUoU3RyaW5nKCJtb2NrLnZvaWNl
LmxvZ2FuIiksIFN0cmluZygibG9nYW4iKSwgU3RyaW5nKCJmci1DQSIpLCB0cnVlLCB0cnVlKSk7
Cit9CisKK3ZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OnNwZWFrKGNvbnN0IFBs
YXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJiB1dHRlcmFuY2UpCit7CisgICAgbV91dHRl
cmFuY2UgPSAmdXR0ZXJhbmNlOworICAgIGNsaWVudCgpLT5kaWRTdGFydFNwZWFraW5nKG1fdXR0
ZXJhbmNlKTsKKyAgICBtX3NwZWFraW5nRmluaXNoZWRUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lO
VEhFU0lTKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTW9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2su
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrX2gKKyNkZWZpbmUgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1vY2tfaAorCisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisKKyNp
bmNsdWRlICJQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgiCisjaW5jbHVkZSAiVGltZXIuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
CitjbGFzcyBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jayA6IHB1YmxpYyBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTW9jaz4gY3JlYXRlKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJD
bGllbnQqKTsKKyAgICAKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9j
aygpOworICAgIHZpcnR1YWwgdm9pZCBzcGVhayhjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZSYpOworICAgIAorcHJpdmF0ZToKKyAgICBleHBsaWNpdCBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTW9jayhQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50Kik7CisgICAg
dmlydHVhbCB2b2lkIGluaXRpYWxpemVWb2ljZUxpc3QoKTsKKyAgICB2b2lkIHNwZWFraW5nRmlu
aXNoZWQoVGltZXI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s+Kik7CisgICAgCisgICAg
VGltZXI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s+IG1fc3BlYWtpbmdGaW5pc2hlZFRp
bWVyOworICAgIGNvbnN0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiBtX3V0dGVy
YW5jZTsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoU1BFRUNIX1NZTlRIRVNJUykKKworI2VuZGlmIC8vIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJfaApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NjUyLDYgKzQ2NTIs
OSBAQAogCQlBQTJBNUFENzE2QTQ4NjFBMDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhl
c2lzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFB
MkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICov
OyB9OwogCQlBQTRDM0E3NjBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBNEMzQTc0MEIyQjE2
NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuY3BwICovOyB9OwogCQlBQTRDM0E3NzBCMkIxNjc5
MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBQTRDM0E3NTBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50
LmggKi87IH07CisJCUFBNUYzQjhEMTZDQzMzRDEwMDQ1NUVCMCAvKiBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUFFMjdCNzUxNkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNb2NrLmggKi87IH07CisJCUFBNUYzQjhGMTZDQzRCMzkwMDQ1NUVCMCAvKiBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBQUUyN0I3NDE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1vY2suY3BwICovOyB9OworCQlBQTVGM0I5MTE2Q0M1QkVCMDA0NTVFQjAgLyog
Q29yZUZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUE1RjNCOTAxNkNDNUJFQjAwNDU1RUIwIC8qIENvcmVGb3VuZGF0
aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJQUE3MzE4M0UxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVj
dGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFBNzMxODNDMTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlw
dENhbnZhc01vZHVsZS5jcHAgKi87IH07CiAJCUFBNzMxODNGMTU5MjU1QjkwMEE5M0U2RSAvKiBJ
bmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQUE3MzE4M0QxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2Ny
aXB0Q2FudmFzTW9kdWxlLmggKi87IH07CiAJCUFBN0ZFRUE0MTZBNEU2RjMwMDRDMEMzMyAvKiBK
U1NwZWVjaFN5bnRoZXNpcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBQTdGRUU5QzE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMu
Y3BwICovOyB9OwpAQCAtMTIwMzIsNiArMTIwMzUsNyBAQAogCQlBQTJBNUFDODE2QTQ4NUQ1MDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNwZWVjaFN5bnRoZXNpc1Zv
aWNlLmlkbDsgcGF0aCA9IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUE0QzNBNzQwQjJCMTY3OTAwMjMzNEEyIC8q
IFN0eWxlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3R5bGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUE0QzNBNzUw
QjJCMTY3OTAwMjMzNEEyIC8qIFN0eWxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3R5bGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUFBNUYzQjkwMTZDQzVCRUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZy
YW1ld29yazsgbmFtZSA9IENvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgcGF0aCA9IC4uLy4uLy4u
Ly4uLy4uL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUZvdW5kYXRpb24uZnJhbWV3b3Jr
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQTczMTgzQzE1OTI1NUI5MDBBOTNFNkUg
LyogSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBQTczMTgzRDE1OTI1NUI5MDBBOTNFNkUgLyogSW5qZWN0ZWRT
Y3JpcHRDYW52YXNNb2R1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5q
ZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QUE3RkVFOUMxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3BlZWNoU3ludGhlc2lzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDUyLDYgKzEyMDU2LDggQEAKIAkJQUFENzY2
RTgxNTdFNTAyRjAwRTg1NDIzIC8qIEluc3BlY3RvckNhbnZhc0FnZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNhbnZhc0FnZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUFENzY2RTkxNTdFNTAyRjAwRTg1NDIzIC8qIElu
c3BlY3RvckNhbnZhc0FnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
c3BlY3RvckNhbnZhc0FnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBRDc2
NkVBMTU3RTUwMkYwMEU4NTQyMyAvKiBJbnNwZWN0b3JDYW52YXNJbnN0cnVtZW50YXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzSW5zdHJ1bWVu
dGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBRTI3Qjc0MTZDQkZDMEQw
MDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5j
cHA7IHBhdGggPSBtb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUFFMjdCNzUxNkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmg7IHBhdGggPSBtb2NrL1BsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFB
RjVCN0IxMTUyNEI0QkQwMDA0Q0I0OSAvKiBXZWJTb2NrZXRGcmFtZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXRGcmFtZS5jcHA7IHBhdGggPSBNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBQjIzQTMyNTA5QkJBN0QwMDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJlZm9yZVRleHRJ
bnNlcnRlZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUIyM0EzMjYw
OUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1MzQsNiArMTQ1NDAsNyBAQAogCQkJaXNhID0gUEJY
RnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3Owog
CQkJZmlsZXMgPSAoCisJCQkJQUE1RjNCOTExNkNDNUJFQjAwNDU1RUIwIC8qIENvcmVGb3VuZGF0
aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTQxMjMwOTEzMTM4QzQyRkYwMEJD
Q0ZDQSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQk0
MTIzMDgxQjEzOEM0Mjk3MDBCQ0NGQ0EgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCSk7CkBAIC0xNDY4Miw2ICsxNDY4OSw3IEBACiAJCTA4NjdENjlBRkU4NDAyOEZD
MDJBQUMwNyAvKiBGcmFtZXdvcmtzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQlBQTVGM0I5MDE2Q0M1QkVCMDA0NTVFQjAgLyogQ29yZUZvdW5kYXRpb24u
ZnJhbWV3b3JrICovLAogCQkJCUZEMkRCRjBFMTJCMDQ4QTMwMEVEOThDNiAvKiBBY2NlbGVyYXRl
LmZyYW1ld29yayAqLywKIAkJCQlGNUMyODY5MzAyODQ2RENEMDE4NjM1Q0EgLyogQXBwbGljYXRp
b25TZXJ2aWNlcy5mcmFtZXdvcmsgKi8sCiAJCQkJRkQyREJGMEYxMkIwNDhBMzAwRUQ5OEM2IC8q
IEF1ZGlvVG9vbGJveC5mcmFtZXdvcmsgKi8sCkBAIC0xNTk3Myw2ICsxNTk4MSw4IEBACiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQk1OTMwOUExMDExRjRBRTU4MDAyNTA2MDMgLyogRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrLmNwcCAqLywKIAkJCQk1OTMwOUExMjExRjRBRTZBMDAyNTA2MDMgLyog
RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggKi8sCisJCQkJQUFFMjdCNzQxNkNCRkMwRDAw
NjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcCAqLywKKwkJCQlBQUUy
N0I3NTE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCAq
LywKIAkJCQkwRkU3MTQwMzE0MjE3MEI4MDBEQjMzQkEgLyogU2Nyb2xsYmFyVGhlbWVNb2NrLmNw
cCAqLywKIAkJCQkwRkU3MTQwNDE0MjE3MEI4MDBEQjMzQkEgLyogU2Nyb2xsYmFyVGhlbWVNb2Nr
LmggKi8sCiAJCQkpOwpAQCAtMjMwOTIsNiArMjMxMDIsNyBAQAogCQkJCTQxN0RBNkRBMTM3MzRF
NkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkY3RUUwMTRD
OTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
M0UyOUU1RjE2N0E4QTE5MDA1ODZEM0QgLyogSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQUE1RjNCOEQxNkNDMzNEMTAwNDU1RUIwIC8qIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTdEQTcxRTEzNzM1REZB
MDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NDBCNUE1MTRD
OTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUzRUQzRkRGMTY3QTg4RTcwMDY3NjJFNiAvKiBKU0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjY4MzMsNiArMjY4NDQsNyBAQAogCQkJCUE3NDBCNTk3MTRD
OTM1QUYwMEE3N0ZBNCAvKiBKU01hbGxvY1N0YXRpc3RpY3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRUJGNTEyMUMxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEQzI2QjQwMTYwQThDQzYwMDI2NzU3QiAvKiBNb2NrQ0RNLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUFBNUYzQjhGMTZDQzRCMzkwMDQ1NUVCMCAvKiBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTgxNUMxRTEzODMx
OTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCShy
ZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxMSArNDIsMTYgQEAKIH0KICAgICAK
IFNwZWVjaFN5bnRoZXNpczo6U3BlZWNoU3ludGhlc2lzKCkKLSAgICA6IG1fcGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplcihQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKHRoaXMpKQorICAgIDogbV9w
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OmNyZWF0
ZSh0aGlzKSkKICAgICAsIG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSgwKQogewogfQogICAgIAor
dm9pZCBTcGVlY2hTeW50aGVzaXM6OnNldFBsYXRmb3JtU3ludGhlc2l6ZXIoUGFzc1JlZlB0cjxQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyPiBzeW50aGVzaXplcikKK3sKKyAgICBtX3BsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXIgPSBzeW50aGVzaXplcjsKK30KKyAgICAKIHZvaWQgU3BlZWNoU3lu
dGhlc2lzOjp2b2ljZXNEaWRDaGFuZ2UoKQogewogICAgIG1fdm9pY2VMaXN0LmNsZWFyKCk7CkBA
IC01OCw3ICs2Myw3IEBACiAgICAgICAgIHJldHVybiBtX3ZvaWNlTGlzdDsKICAgICAKICAgICAv
LyBJZiB0aGUgdm9pY2VMaXN0IGlzIGVtcHR5LCB0aGF0J3MgdGhlIGN1ZSB0byBnZXQgdGhlIHZv
aWNlcyBmcm9tIHRoZSBwbGF0Zm9ybSBhZ2Fpbi4KLSAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFBs
YXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2U+ID4mIHBsYXRmb3JtVm9pY2VzID0gbV9wbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyLnZvaWNlTGlzdCgpOworICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZT4gPiYgcGxhdGZvcm1Wb2ljZXMgPSBtX3BsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXItPnZvaWNlTGlzdCgpOwogICAgIHNpemVfdCB2b2ljZUNvdW50
ID0gcGxhdGZvcm1Wb2ljZXMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGsgPSAwOyBrIDwgdm9p
Y2VDb3VudDsgaysrKQogICAgICAgICBtX3ZvaWNlTGlzdC5hcHBlbmQoU3BlZWNoU3ludGhlc2lz
Vm9pY2U6OmNyZWF0ZShwbGF0Zm9ybVZvaWNlc1trXSkpOwpAQCAtODgsNyArOTMsNyBAQAogICAg
IEFTU0VSVCghbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlKTsKICAgICB1dHRlcmFuY2UtPnNldFN0
YXJ0VGltZShtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAgbV9jdXJyZW50U3Bl
ZWNoVXR0ZXJhbmNlID0gdXR0ZXJhbmNlOwotICAgIG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ci5zcGVhayh1dHRlcmFuY2UtPnBsYXRmb3JtVXR0ZXJhbmNlKCkpOworICAgIG1fcGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplci0+c3BlYWsodXR0ZXJhbmNlLT5wbGF0Zm9ybVV0dGVyYW5jZSgpKTsK
IH0KIAogdm9pZCBTcGVlY2hTeW50aGVzaXM6OnNwZWFrKFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZSogdXR0ZXJhbmNlKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzLmgJKHJldmlzaW9uIDE0Mjc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1
Nyw5IEBACiAgICAgCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxTcGVlY2hTeW50aGVzaXNWb2lj
ZT4gPiYgZ2V0Vm9pY2VzKCk7CiAgICAgCisgICAgLy8gVXNlZCBpbiB0ZXN0aW5nIHRvIHVzZSBh
IG1vY2sgcGxhdGZvcm0gc3ludGhlc2l6ZXIKKyAgICB2b2lkIHNldFBsYXRmb3JtU3ludGhlc2l6
ZXIoUGFzc1JlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyPik7CisgICAgCiBwcml2YXRl
OgogICAgIFNwZWVjaFN5bnRoZXNpcygpOwogICAgIApAQCAtNzAsNyArNzMsNyBAQAogICAgIHZv
aWQgaGFuZGxlU3BlYWtpbmdDb21wbGV0ZWQoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiwgYm9v
bCBlcnJvck9jY3VycmVkKTsKICAgICB2b2lkIGZpcmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IHR5cGUsIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSosIHVuc2lnbmVkIGxvbmcgY2hhckluZGV4
LCBjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIAotICAgIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXIgbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOworICAgIFJlZlB0cjxQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyPiBtX3BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI7CiAgICAgVmVjdG9yPFJl
ZlB0cjxTcGVlY2hTeW50aGVzaXNWb2ljZT4gPiBtX3ZvaWNlTGlzdDsKICAgICBTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2UqIG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZTsKICAgICBEZXF1ZTxSZWZQ
dHI8U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPiA+IG1fdXR0ZXJhbmNlUXVldWU7CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRo
ZXNpcy1zcGVhay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLmh0bWwJKHJldmlzaW9u
IDE0Mjc1NSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3NwZWVjaHN5bnRoZXNp
cy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw5
IEBACiAKIDxzY3JpcHQ+CiAKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2lu
ZG93LmludGVybmFscy5lbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6ZXIoKTsKKwogICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIGJhc2ljIG1lY2hhbmlzbXMgb2Ygc3BlYWtpbmcg
dGV4dCB3b3JrLCBpbmNsdWRpbmcgc2VuZGluZyB0aGUgam9iIGFuZCByZWNldmluZyB0aGUgY2Fs
bGJhY2suIik7CiAKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy12b2lj
ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zcGVl
Y2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy12b2ljZXMuaHRtbAkocmV2aXNpb24gMTQyNzU1
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVj
aC1zeW50aGVzaXMtdm9pY2VzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNiArOCw4IEBACiA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIAogPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5lbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6
ZXIoKTsKIAogICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgd2UgY2FuIGdldCBzeW50
aGVzaXplciB2b2ljZXMgb24gdGhlIE1hYyIpOwogCg==
</data>
<flag name="review"
          id="208295"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188367</attachid>
            <date>2013-02-14 09:06:54 -0800</date>
            <delta_ts>2013-02-14 15:59:20 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32706</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMTA3OSw2ICsxMDc5LDcgQEAKICAgICBwbGF0Zm9y
bS9tb2NrL0RldmljZU1vdGlvbkNsaWVudE1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9tb2NrL0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svR2VvbG9j
YXRpb25DbGllbnRNb2NrLmNwcCBcCisgICAgcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2Nr
LmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2Uu
Y3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcCBcCkBAIC0yMTY4LDYgKzIx
NjksNyBAQAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlTW90aW9uQ2xpZW50TW9jay5oIFwKICAg
ICBwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIFwKICAgICBwbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgXAorICAgIHBsYXRmb3JtL21vY2sv
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCBcCiAgICAgcGxhdGZvcm0vbW9jay9TY3Jv
bGxiYXJUaGVtZU1vY2suaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTE1MzMsNiArMTUzMyw3IEBACiBfX1pUVk43V2ViQ29yZTE2SWNvbkRh
dGFiYXNlQmFzZUUKIF9fWlRWTjdXZWJDb3JlMTdGcmFtZUxvYWRlckNsaWVudEUKIF9fWlRWTjdX
ZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyRQorX19aVFZON1dlYkNvcmUyNVBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJFCiBfX1pUVk43V2ViQ29yZTI4SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDhTZXR0aW5nc0UKIF9fWk43V2ViQ29yZTE2Q1NTUGFyc2VyQ29udGV4dEMxRVBO
U184RG9jdW1lbnRFUktOU180S1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4U3R5
bGVTaGVldENvbnRlbnRzMTFwYXJzZVN0cmluZ0VSS04zV1RGNlN0cmluZ0UKQEAgLTE2ODgsNiAr
MTY4OSw3IEBACiBfX1pON1dlYkNvcmUxM3RvRGV2aWNlU3BhY2VFUktOU185RmxvYXRSZWN0RVA4
TlNXaW5kb3cKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0QzFFUDlDR0NvbnRleHQKIF9f
Wk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MTVkcmF3TmF0aXZlSW1hZ2VFUDdDR0ltYWdlUktO
U185RmxvYXRTaXplRU5TXzEwQ29sb3JTcGFjZUVSS05TXzlGbG9hdFJlY3RFUzlfTlNfMTdDb21w
b3NpdGVPcGVyYXRvckVOU185QmxlbmRNb2RlRU5TXzE2SW1hZ2VPcmllbnRhdGlvbkUKK19fWk43
V2ViQ29yZTE1U3BlZWNoU3ludGhlc2lzMjJzZXRQbGF0Zm9ybVN5bnRoZXNpemVyRU4zV1RGMTBQ
YXNzT3duUHRySU5TXzI1UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckVFRQogX19aTjdXZWJDb3Jl
MTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNf
MTZGb250V2lkdGhWYXJpYW50RQogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzJFUDZO
U0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNfMTZGb250V2lkdGhWYXJpYW50RQogX19a
TjdXZWJDb3JlMTZjb2xvckZyb21OU0NvbG9yRVA3TlNDb2xvcgpAQCAtMTcwNyw2ICsxNzA5LDgg
QEAKIF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljRXYKIF9fWk43V2ViQ29y
ZTI0Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzRXYKIF9fWk43V2ViQ29yZTI0a2V5SWRlbnRpZmll
ckZvcktleUV2ZW50RVA3TlNFdmVudAorX19aTjdXZWJDb3JlMjRET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMxNXNwZWVjaFN5bnRoZXNpc0VQTlNfOURPTVdpbmRvd0UKK19fWk43V2ViQ29yZTI1UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplckMyRVBOU18zMVBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJD
bGllbnRFCiBfX1pON1dlYkNvcmUyNVBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIxMnNjaGVkdWxl
Q2FsbEVQNF9OUFBQRnZQdkVTM18KIF9fWk43V2ViQ29yZTI1UGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjE0cmVnaXN0ZXJQbHVnaW5FUDRfTlBQCiBfX1pON1dlYkNvcmUyNVBsdWdpbk1haW5UaHJl
YWRTY2hlZHVsZXIxNnVucmVnaXN0ZXJQbHVnaW5FUDRfTlBQCkBAIC0xNzI1LDYgKzE3MjksNyBA
QAogX19aTjdXZWJDb3JlMjhjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzRXYKIF9fWk43V2Vi
Q29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rc0V2CiBfX1pON1dlYkNvcmUyOGNvbnRl
eHRNZW51SXRlbVRhZ1NwZWVjaE1lbnVFdgorX19aTjdXZWJDb3JlMjhQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1ZvaWNlNmNyZWF0ZUVSS04zV1RGNlN0cmluZ0VTNF9TNF9iYgogX19aTjdXZWJDb3Jl
MjlhcHBsaWNhdGlvbklzTWljcm9zb2Z0T3V0bG9va0V2CiBfX1pON1dlYkNvcmUyOWNvbnRleHRN
ZW51SXRlbVRhZ0xlZnRUb1JpZ2h0RXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFn
UmlnaHRUb0xlZnRFdgpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2
aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzcsNiArMTM3LDEyIEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgi
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorI2luY2x1ZGUgIkRPTVdp
bmRvd1NwZWVjaFN5bnRoZXNpcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNb2NrLmgiCisjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzLmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAjaWYgRU5BQkxFKFBBR0VfUE9QVVApCkBAIC04MjcsNiArODMzLDIw
IEBACiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogfQogCisjaWYgRU5BQkxFKFNQ
RUVDSF9TWU5USEVTSVMpCit2b2lkIEludGVybmFsczo6ZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNp
emVyKCkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAg
ICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZG9tV2luZG93KCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBTcGVlY2hTeW50aGVzaXMqIHN5bnRoZXNpcyA9IERPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpczo6c3BlZWNoU3ludGhlc2lzKGRvY3VtZW50LT5kb21XaW5kb3coKSk7CisgICAgaWYgKCFz
eW50aGVzaXMpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBzeW50aGVzaXMtPnNldFBsYXRm
b3JtU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNyZWF0ZShzeW50
aGVzaXMpKTsKK30KKyNlbmRpZgorICAgIAogdm9pZCBJbnRlcm5hbHM6OnNldEVuYWJsZU1vY2tQ
YWdlUG9wdXAoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICNpZiBFTkFCTEUo
UEFHRV9QT1BVUCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24g
MTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjg1LDYgKzI4NSwxMCBAQAogICAgIHZvaWQgaW5pdGlhbGl6ZU1vY2tDRE0oKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisgICAgdm9pZCBlbmFibGVN
b2NrU3BlZWNoU3ludGhlc2l6ZXIoKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQq
IGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNCArMjUxLDYgQEAKICAgICB2b2lkIHNl
dFVzZXNPdmVybGF5U2Nyb2xsYmFycyhpbiBib29sZWFuIGVuYWJsZWQpOwogCiAgICAgW0NvbmRp
dGlvbmFsPUVOQ1JZUFRFRF9NRURJQV9WMl0gdm9pZCBpbml0aWFsaXplTW9ja0NETSgpOworICAg
IAorICAgIFtDb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTXSB2b2lkIGVuYWJsZU1vY2tTcGVl
Y2hTeW50aGVzaXplcigpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjg4MCkKKysr
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBA
CisyMDEzLTAyLTE0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViU3BlZWNoOiBwbHVtYiB0aHJvdWdoIGEgbWV0aG9kIHRvIGdlbmVyYXRlIGZha2Ug
c3BlZWNoIGpvYnMgZm9yIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNzM1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlIGNhbid0IHJlbGlhYmx5IHVzZSB0aGUgcGxhdGZvcm1zIHN5bnRo
ZXNpemVyIHRvIHRlc3Qgc3BlZWNoIHN5bnRoZXNpcyBpbnRlcm5hbHMuCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyBhbiBJbnRlcm5hbHMgbWV0aG9kIHRvIGVuYWJsZSBhIG1vY2sgc3ludGhlc2l6
ZXIsIHdoaWNoIGlzIGluaGVyaXRzCisgICAgICAgIGZyb20gdGhlIFBsYXRmb3JtU3BlZWNoU3l0
aGVzaXplci4KKworICAgICAgICBUaGUgZmFrZSBzeW50aGVzaXplciBnb2VzIHRocm91Z2ggYWxs
IHRoZSBtb3Rpb25zIG9mIGEgcmVhbCBzeW50aGVzaXplciBidXQgZG9lc24ndCBkbyBhbnl0aGlu
Zy4KKworICAgICAgICBBIGJ1bmNoIG9mIGNoYW5nZXMgd2VyZSBuZWVkZWQgaGVyZSB0byBtYWtl
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIgc3ViY2xhc3NhYmxlIHNvIHRoYXQgdGhlCisgICAg
ICAgIHJpZ2h0IHZpcnR1YWwgYXJlIHVzZWQuCisKKyAgICAgICAgVGhlIE1vY2sgc3ludGhlc2l6
ZXIgb25seSBsaXZlcyBpbiBXZWJDb3JlVGVzdFN1cHBvcnQuIEJlY2F1c2UgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplciB1c2VzCisgICAgICAgIGEgUmV0YWluUHRyLCBJIG5lZWRlZCB0byBtYWtl
IFdlYkNvcmVUZXN0U3VwcG9ydCBsaW5rIENvcmVGb3VuZGF0aW9uLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWc6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6U3BlZWNoU3ludGhlc2lzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6c2V0UGxhdGZvcm1TeW50aGVzaXplcik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6Z2V0
Vm9pY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNpczo6c3RhcnRTcGVha2lu
Z0ltbWVkaWF0ZWx5KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMu
aDoKKyAgICAgICAgKFNwZWVjaFN5bnRoZXNpcyk6CisgICAgICAgICogVGFyZ2V0LnByaToKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oOgorICAgICAgICAoUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyOjp+UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcik6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9j
azo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJN
b2NrOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jayk6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJN
b2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpz
cGVha2luZ0ZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJNb2NrOjppbml0aWFsaXplVm9pY2VMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpzcGVhayk6CisgICAgICAgICogcGxhdGZvcm0vbW9j
ay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2spOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjplbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6ZXIpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CiAyMDEzLTAyLTA4ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogZXhwb3NlIGRpZHtCZWdpbixDYW5jZWx9RnJhbWUoKSBhbmQg
e3dpbGwsZGlkfUNvbXBvc2l0ZSgpIG9uIFdlYkRlYlRvb2xzQWdlbnQKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVUZXN0U3VwcG9ydC52Y3Byb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZj
cHJvagkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNzU3LDYgKzc1Nyw4
MiBAQAogCQkJPC9GaWxlPgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgorCQkJTmFtZT0icGxhdGZv
cm0iCisJCQk+CisJCQk8RmlsdGVyCisJCQkJTmFtZT0ibW9jayIKKwkJCQk+CisJCQkJPEZpbGUK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxtb2NrXFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJNb2NrLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJCURp
c2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQkJ
Rm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQkJRGlzYWJsZVNw
ZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCQlGb3JjZWRJ
bmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJCURpc2Fi
bGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQkJRm9y
Y2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2Vf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJ
CURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJ
CQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCQkvPgorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCQlEaXNh
YmxlU3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJCUZv
cmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJQcm9kdWN0
aW9ufFdpbjMyIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJCURpc2FibGVT
cGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQkJRm9yY2Vk
SW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXG1vY2tcUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCIKKwkJCQkJPgorCQkJ
CTwvRmlsZT4KKwkJCTwvRmlsdGVyPgorCQk8L0ZpbHRlcj4KKwkJPEZpbHRlcgogCQkJTmFtZT0i
dGVzdGluZyIKIAkJCT4KIAkJCTxGaWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oCShyZXZpc2lvbiAxNDI3NTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJ
UykKIAogI2luY2x1ZGUgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2lmIFBMQVRG
T1JNKE1BQykKQEAgLTUzLDE5ICs1NCwyMyBAQAogICAgIAogY2xhc3MgUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcihQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50Kik7CisgICAgc3RhdGljIFBhc3NP
d25QdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcj4gY3JlYXRlKFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJDbGllbnQqKTsKKworICAgIHZpcnR1YWwgflBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXIoKSB7IH0KICAgICAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2lzVm9pY2U+ID4mIHZvaWNlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fdm9pY2VMaXN0OyB9
Ci0gICAgdm9pZCBzcGVhayhjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSYp
OworICAgIHZpcnR1YWwgdm9pZCBzcGVhayhjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0
dGVyYW5jZSYpOwogICAgIAogICAgIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQqIGNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoU3ludGhlc2l6ZXJDbGllbnQ7IH0KICAgICAK
K3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQqKTsKKyAgICBWZWN0b3I8UmVmUHRyPFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2lzVm9pY2U+ID4gbV92b2ljZUxpc3Q7CisgICAgCiBwcml2YXRlOgogICAg
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQqIG1fc3BlZWNoU3ludGhlc2l6ZXJDbGll
bnQ7Ci0gICAgVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlPiA+IG1f
dm9pY2VMaXN0OworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplVm9pY2VMaXN0KCk7CiAgICAg
Ci0gICAgdm9pZCBpbml0aWFsaXplVm9pY2VMaXN0KCk7Ci0gICAgCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIFJldGFpblB0cjxXZWJTcGVlY2hTeW50aGVzaXNXcmFwcGVyPiBtX3BsYXRmb3JtU3Bl
ZWNoV3JhcHBlcjsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5jcHAJKHJldmlzaW9uIDE0Mjc1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgCitQYXNzT3duUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI+IFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXI6OmNyZWF0ZShQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50KiBjbGll
bnQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
KGNsaWVudCkpOworfQorCiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQqIGNsaWVudCkKICAg
ICA6IG1fc3BlZWNoU3ludGhlc2l6ZXJDbGllbnQoY2xpZW50KQogewpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jay5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCIKKworI2lmIEVOQUJMRShT
UEVFQ0hfU1lOVEhFU0lTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s+IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2Nr
OjpjcmVhdGUoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCogY2xpZW50KQoreworICAg
IHJldHVybiBhZG9wdFB0cihuZXcgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2soY2xpZW50
KSk7Cit9CisgICAgCitQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1vY2soUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCogY2xpZW50
KQorICAgIDogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcihjbGllbnQpCisgICAgLCBtX3NwZWFr
aW5nRmluaXNoZWRUaW1lcih0aGlzLCAmUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OnNw
ZWFraW5nRmluaXNoZWQpCisgICAgLCBtX3V0dGVyYW5jZSgwKQoreworfQorICAgIAorUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1vY2s6On5QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jaygp
Cit7CisgICAgbV9zcGVha2luZ0ZpbmlzaGVkVGltZXIuc3RvcCgpOworfQorCit2b2lkIFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpzcGVha2luZ0ZpbmlzaGVkKFRpbWVyPFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNb2NrPiopCit7CisgICAgY2xpZW50KCktPmRpZEZpbmlzaFNwZWFr
aW5nKG1fdXR0ZXJhbmNlKTsKKyAgICBtX3V0dGVyYW5jZSA9IDA7Cit9CisgICAgCit2b2lkIFBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjppbml0aWFsaXplVm9pY2VMaXN0KCkKK3sKKyAg
ICBtX3ZvaWNlTGlzdC5jbGVhcigpOworICAgIG1fdm9pY2VMaXN0LmFwcGVuZChQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpc1ZvaWNlOjpjcmVhdGUoU3RyaW5nKCJtb2NrLnZvaWNlLmJydWNlIiksIFN0
cmluZygiYnJ1Y2UiKSwgU3RyaW5nKCJlbi1VUyIpLCB0cnVlLCB0cnVlKSk7CisgICAgbV92b2lj
ZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2U6OmNyZWF0ZShTdHJpbmco
Im1vY2sudm9pY2UuY2xhcmsiKSwgU3RyaW5nKCJjbGFyayIpLCBTdHJpbmcoImVuLVVTIiksIHRy
dWUsIGZhbHNlKSk7CisgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3ludGhl
c2lzVm9pY2U6OmNyZWF0ZShTdHJpbmcoIm1vY2sudm9pY2UubG9nYW4iKSwgU3RyaW5nKCJsb2dh
biIpLCBTdHJpbmcoImZyLUNBIiksIHRydWUsIHRydWUpKTsKK30KKwordm9pZCBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jazo6c3BlYWsoY29uc3QgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UmIHV0dGVyYW5jZSkKK3sKKyAgICBtX3V0dGVyYW5jZSA9ICZ1dHRlcmFuY2U7Cisg
ICAgY2xpZW50KCktPmRpZFN0YXJ0U3BlYWtpbmcobV91dHRlcmFuY2UpOworICAgIG1fc3BlYWtp
bmdGaW5pc2hlZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jay5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIENvbXB1dGVyLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1vY2tfaAorI2RlZmluZSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9ja19oCisK
KyNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKKworI2luY2x1ZGUgIlBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXIuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNb2NrIDogcHVibGljIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2Nr
PiBjcmVhdGUoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCopOworICAgIAorICAgIHZp
cnR1YWwgflBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrKCk7CisgICAgdmlydHVhbCB2b2lk
IHNwZWFrKGNvbnN0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJik7CisgICAgCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrKFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6
ZVZvaWNlTGlzdCgpOworICAgIHZvaWQgc3BlYWtpbmdGaW5pc2hlZChUaW1lcjxQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jaz4qKTsKKyAgICAKKyAgICBUaW1lcjxQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jaz4gbV9zcGVha2luZ0ZpbmlzaGVkVGltZXI7CisgICAgY29uc3QgUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqIG1fdXR0ZXJhbmNlOworfTsKKyAgICAKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQor
CisjZW5kaWYgLy8gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcl9oCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdv
cmtpbmcgY29weSkKQEAgLTQ0MTAsNiArNDQxMCw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
bW9jay9EZXZpY2VNb3Rpb25DbGllbnRNb2NrLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
bW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwJywKQEAgLTUxMzUs
NiArNTEzNyw4IEBACiAgICAgICAgICd3ZWJjb3JlX3Rlc3Rfc3VwcG9ydF9maWxlcyc6IFsKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2su
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNb2NrLmgnLAogICAgICAgICAgICAgJ3Rlc3RpbmcvdjgvV2ViQ29yZVRlc3RTdXBwb3J0LmNw
cCcsCiAgICAgICAgICAgICAndGVzdGluZy92OC9XZWJDb3JlVGVzdFN1cHBvcnQuaCcsCiAgICAg
ICAgICAgICAndGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwJywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjgyNiw2ICsyODI2LDcgQEAKIAogc2V0KFdlYkNv
cmVUZXN0U3VwcG9ydF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3Rl
c3RpbmciCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL21vY2siCiApCiAKIHNldChXZWJD
b3JlVGVzdFN1cHBvcnRfSURMX0lOQ0xVREVTCkBAIC0yODQyLDYgKzI4NDMsNyBAQAogc2V0KFdl
YkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAgdGVzdGluZy9JbnRlcm5hbHMuY3BwCiAgICAg
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorICAgIHRlc3RpbmcvUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1vY2suY3BwCiApCiAKICMgTW9kdWxlcyB0aGF0IHRoZSBiaW5kaW5ncyBnZW5l
cmF0b3Igc2NyaXB0cyBtYXkgdXNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTQ2NTIsNiArNDY1Miw5IEBACiAJCUFBMkE1QUQ3MTZBNDg2MUEwMDk3NUEyNSAvKiBET01X
aW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVj
aFN5bnRoZXNpcy5jcHAgKi87IH07CiAJCUFBNEMzQTc2MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHls
ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUE0QzNBNzQwQjJCMTY3OTAwMjMzNEEyIC8qIFN0eWxlRWxlbWVudC5jcHAgKi87IH07CiAJ
CUFBNEMzQTc3MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBNEMzQTc1MEIyQjE2NzkwMDIzMzRB
MiAvKiBTdHlsZUVsZW1lbnQuaCAqLzsgfTsKKwkJQUE1RjNCOEQxNkNDMzNEMTAwNDU1RUIwIC8q
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUyN0I3NTE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1vY2suaCAqLzsgfTsKKwkJQUE1RjNCOEYxNkNDNEIzOTAwNDU1
RUIwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBRTI3Qjc0MTZDQkZDMEQwMDYyMzA0MyAv
KiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAgKi87IH07CisJCUFBNUYzQjkxMTZD
QzVCRUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTVGM0I5MDE2Q0M1QkVCMDA0NTVF
QjAgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQlBQTczMTgzRTE1OTI1NUI5
MDBBOTNFNkUgLyogSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3MzE4M0MxNTkyNTVCOTAwQTkzRTZF
IC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcCAqLzsgfTsKIAkJQUE3MzE4M0YxNTky
NTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTczMTgzRDE1OTI1NUI5MDBBOTNF
NkUgLyogSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuaCAqLzsgfTsKIAkJQUE3RkVFQTQxNkE0
RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBN0ZFRTlDMTZBNEU2RjMwMDRDMEMzMyAvKiBK
U1NwZWVjaFN5bnRoZXNpcy5jcHAgKi87IH07CkBAIC0xMjAzMiw2ICsxMjAzNSw3IEBACiAJCUFB
MkE1QUM4MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNWb2ljZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0g
U3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsOyBwYXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzVm9pY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQTRDM0E3NDBC
MkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTdHlsZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBQTRDM0E3NTBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQUE1RjNCOTAxNkNDNUJFQjAwNDU1RUIwIC8qIENvcmVGb3VuZGF0
aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29yZUZvdW5kYXRpb24uZnJhbWV3b3Jr
OyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlRm91
bmRhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBNzMxODND
MTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBNzMxODNEMTU5MjU1QjkwMEE5
M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBQTdGRUU5QzE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50
aGVzaXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTcGVlY2hT
eW50aGVzaXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIwNTIsNiArMTIw
NTYsOCBAQAogCQlBQUQ3NjZFODE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yQ2FudmFzQWdl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQUQ3NjZFOTE1N0U1
MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQUFENzY2RUExNTdFNTAyRjAwRTg1NDIzIC8qIEluc3BlY3RvckNhbnZhc0lu
c3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JDYW52YXNJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QUFFMjdCNzQxNkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2Nr
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNb2NrLmNwcDsgcGF0aCA9IG1vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQUUyN0I3NTE2Q0JGQzBE
MDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaDsgcGF0
aCA9IG1vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQUFGNUI3QjExNTI0QjRCRDAwMDRDQjQ5IC8qIFdlYlNvY2tldEZyYW1l
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldEZyYW1l
LmNwcDsgcGF0aCA9IE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFCMjNBMzI1MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZv
cmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBQjIzQTMyNjA5QkJBN0QwMDA2N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJlZm9yZVRleHRJbnNlcnRl
ZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDUzNCw2ICsxNDU0MCw3
IEBACiAJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlBQTVGM0I5MTE2Q0M1QkVCMDA0NTVF
QjAgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJNDEy
MzA5MTMxMzhDNDJGRjAwQkNDRkNBIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFt
ZXdvcmtzICovLAogCQkJCTQxMjMwODFCMTM4QzQyOTcwMEJDQ0ZDQSAvKiBXZWJDb3JlLmZyYW1l
d29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJKTsKQEAgLTE0NjgyLDYgKzE0Njg5LDcgQEAKIAkJ
MDg2N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUFBNUYzQjkwMTZDQzVCRUIwMDQ1NUVCMCAv
KiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJRkQyREJGMEUxMkIwNDhBMzAwRUQ5
OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3JrICovLAogCQkJCUY1QzI4NjkzMDI4NDZEQ0QwMTg2
MzVDQSAvKiBBcHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yayAqLywKIAkJCQlGRDJEQkYwRjEy
QjA0OEEzMDBFRDk4QzYgLyogQXVkaW9Ub29sYm94LmZyYW1ld29yayAqLywKQEAgLTE1OTczLDYg
KzE1OTgxLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTU5MzA5QTEwMTFGNEFFNTgwMDI1MDYw
MyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwICovLAogCQkJCTU5MzA5QTEyMTFG
NEFFNkEwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCAqLywKKwkJCQlB
QUUyN0I3NDE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2su
Y3BwICovLAorCQkJCUFBRTI3Qjc1MTZDQkZDMEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jay5oICovLAogCQkJCTBGRTcxNDAzMTQyMTcwQjgwMERCMzNCQSAvKiBTY3Jv
bGxiYXJUaGVtZU1vY2suY3BwICovLAogCQkJCTBGRTcxNDA0MTQyMTcwQjgwMERCMzNCQSAvKiBT
Y3JvbGxiYXJUaGVtZU1vY2suaCAqLywKIAkJCSk7CkBAIC0yMzA5Miw2ICsyMzEwMiw3IEBACiAJ
CQkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTdCRjdFRTAxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUzRTI5RTVGMTY3QThBMTkwMDU4NkQzRCAvKiBJbnRlcm5hbFNldHRp
bmdzR2VuZXJhdGVkLmggaW4gSGVhZGVycyAqLywKKwkJCQlBQTVGM0I4RDE2Q0MzM0QxMDA0NTVF
QjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxN0RBNzFFMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTc0MEI1QTUxNEM5MzVBQjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTNFRDNGREYxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxT
ZXR0aW5nc0dlbmVyYXRlZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjgzMyw2ICsyNjg0NCw3IEBA
CiAJCQkJQTc0MEI1OTcxNEM5MzVBRjAwQTc3RkE0IC8qIEpTTWFsbG9jU3RhdGlzdGljcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFQkY1MTIxQzE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29u
dmVyc2lvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDMjZCNDAxNjBBOENDNjAwMjY3NTdC
IC8qIE1vY2tDRE0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUE1RjNCOEYxNkNDNEIzOTAwNDU1
RUIwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQxODE1QzFFMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNv
cmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkK
QEAgLTE0Miw3ICsxNDIsNyBAQAogRU5BQkxFX1NDUklQVEVEX1NQRUVDSCA9IDsKIEVOQUJMRV9T
SEFET1dfRE9NID0gOwogRU5BQkxFX1NIQVJFRF9XT1JLRVJTID0gRU5BQkxFX1NIQVJFRF9XT1JL
RVJTOwotRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMgPSA7CitFTkFCTEVfU1BFRUNIX1NZTlRIRVNJ
UyA9IEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTOwogRU5BQkxFX1NRTF9EQVRBQkFTRSA9IEVOQUJM
RV9TUUxfREFUQUJBU0U7CiBFTkFCTEVfU1RZTEVfU0NPUEVEID0gOwogRU5BQkxFX1NVQlBJWEVM
X0xBWU9VVCA9IEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAJKHJldmlzaW9uIDE0Mjc1
NSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDExICs0MiwxNiBAQAogfQogICAgIAogU3BlZWNoU3ludGhl
c2lzOjpTcGVlY2hTeW50aGVzaXMoKQotICAgIDogbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
KFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIodGhpcykpCisgICAgOiBtX3BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6Y3JlYXRlKHRoaXMpKQogICAg
ICwgbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlKDApCiB7CiB9CiAgICAgCit2b2lkIFNwZWVjaFN5
bnRoZXNpczo6c2V0UGxhdGZvcm1TeW50aGVzaXplcihQYXNzT3duUHRyPFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXI+IHN5bnRoZXNpemVyKQoreworICAgIG1fcGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplciA9IHN5bnRoZXNpemVyOworfQorICAgIAogdm9pZCBTcGVlY2hTeW50aGVzaXM6OnZvaWNl
c0RpZENoYW5nZSgpCiB7CiAgICAgbV92b2ljZUxpc3QuY2xlYXIoKTsKQEAgLTU4LDcgKzYzLDcg
QEAKICAgICAgICAgcmV0dXJuIG1fdm9pY2VMaXN0OwogICAgIAogICAgIC8vIElmIHRoZSB2b2lj
ZUxpc3QgaXMgZW1wdHksIHRoYXQncyB0aGUgY3VlIHRvIGdldCB0aGUgdm9pY2VzIGZyb20gdGhl
IHBsYXRmb3JtIGFnYWluLgotICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UGxhdGZvcm1TcGVlY2hT
eW50aGVzaXNWb2ljZT4gPiYgcGxhdGZvcm1Wb2ljZXMgPSBtX3BsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIudm9pY2VMaXN0KCk7CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpc1ZvaWNlPiA+JiBwbGF0Zm9ybVZvaWNlcyA9IG1fcGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplci0+dm9pY2VMaXN0KCk7CiAgICAgc2l6ZV90IHZvaWNlQ291bnQgPSBwbGF0Zm9ybVZv
aWNlcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgayA9IDA7IGsgPCB2b2ljZUNvdW50OyBrKysp
CiAgICAgICAgIG1fdm9pY2VMaXN0LmFwcGVuZChTcGVlY2hTeW50aGVzaXNWb2ljZTo6Y3JlYXRl
KHBsYXRmb3JtVm9pY2VzW2tdKSk7CkBAIC04OCw3ICs5Myw3IEBACiAgICAgQVNTRVJUKCFtX2N1
cnJlbnRTcGVlY2hVdHRlcmFuY2UpOwogICAgIHV0dGVyYW5jZS0+c2V0U3RhcnRUaW1lKG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKICAgICBtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2Ug
PSB1dHRlcmFuY2U7Ci0gICAgbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLnNwZWFrKHV0dGVy
YW5jZS0+cGxhdGZvcm1VdHRlcmFuY2UoKSk7CisgICAgbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyLT5zcGVhayh1dHRlcmFuY2UtPnBsYXRmb3JtVXR0ZXJhbmNlKCkpOwogfQogCiB2b2lkIFNw
ZWVjaFN5bnRoZXNpczo6c3BlYWsoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiB1dHRlcmFuY2Up
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVz
aXMuaAkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoU3ludGhlc2lzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDkgQEAKICAgICAK
ICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFNwZWVjaFN5bnRoZXNpc1ZvaWNlPiA+JiBnZXRWb2lj
ZXMoKTsKICAgICAKKyAgICAvLyBVc2VkIGluIHRlc3RpbmcgdG8gdXNlIGEgbW9jayBwbGF0Zm9y
bSBzeW50aGVzaXplcgorICAgIHZvaWQgc2V0UGxhdGZvcm1TeW50aGVzaXplcihQYXNzT3duUHRy
PFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI+KTsKKyAgICAKIHByaXZhdGU6CiAgICAgU3BlZWNo
U3ludGhlc2lzKCk7CiAgICAgCkBAIC03MCw3ICs3Myw3IEBACiAgICAgdm9pZCBoYW5kbGVTcGVh
a2luZ0NvbXBsZXRlZChTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqLCBib29sIGVycm9yT2NjdXJy
ZWQpOwogICAgIHZvaWQgZmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlKiwgdW5zaWduZWQgbG9uZyBjaGFySW5kZXgsIGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CiAgICAgCi0gICAgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciBtX3BsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXI7CisgICAgT3duUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI+
IG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjsKICAgICBWZWN0b3I8UmVmUHRyPFNwZWVjaFN5
bnRoZXNpc1ZvaWNlPiA+IG1fdm9pY2VMaXN0OwogICAgIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZSogbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlOwogICAgIERlcXVlPFJlZlB0cjxTcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2U+ID4gbV91dHRlcmFuY2VRdWV1ZTsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0
Mjg4MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDEzLTAyLTE0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViU3BlZWNoOiBwbHVtYiB0aHJvdWdoIGEgbWV0aG9kIHRvIGdlbmVyYXRl
IGZha2Ugc3BlZWNoIGpvYnMgZm9yIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzM1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc3BlZWNoc3ludGhlc2lz
L3NwZWVjaC1zeW50aGVzaXMtc3BlYWsuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFz
dC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy12b2ljZXMuaHRtbDoKKwogMjAxMy0w
Mi0xNCAgRmxvcmluIE1hbGl0YSAgPGZtYWxpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gVW5yZXZpZXdlZCByZWJhc2VsaW5lIGFmdGVyIGJyaWdodG5lc3MgZmlsdGVyIHVw
ZGF0ZS4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3NwZWVjaHN5bnRoZXNp
cy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWsu
aHRtbAkocmV2aXNpb24gMTQyNzU1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
c3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWsuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtOSw2ICs5LDkgQEAKIAogPHNjcmlwdD4KIAorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmVuYWJsZU1vY2tTcGVlY2hTeW50aGVzaXplcigp
OworCiAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB0aGUgYmFzaWMgbWVjaGFuaXNt
cyBvZiBzcGVha2luZyB0ZXh0IHdvcmssIGluY2x1ZGluZyBzZW5kaW5nIHRoZSBqb2IgYW5kIHJl
Y2V2aW5nIHRoZSBjYWxsYmFjay4iKTsKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gt
c3ludGhlc2lzLXZvaWNlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXZvaWNlcy5odG1sCShy
ZXZpc2lvbiAxNDI3NTUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zcGVlY2hz
eW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy12b2ljZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
OCw2ICs4LDggQEAKIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogCiA8c2NyaXB0PgorICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmVuYWJsZU1vY2tT
cGVlY2hTeW50aGVzaXplcigpOwogCiAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB3
ZSBjYW4gZ2V0IHN5bnRoZXNpemVyIHZvaWNlcyBvbiB0aGUgTWFjIik7CiAK
</data>
<flag name="commit-queue"
          id="208458"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188440</attachid>
            <date>2013-02-14 15:59:20 -0800</date>
            <delta_ts>2013-02-14 16:19:26 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>37497</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMTA3OSw2ICsxMDc5LDcgQEAKICAgICBwbGF0Zm9y
bS9tb2NrL0RldmljZU1vdGlvbkNsaWVudE1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9tb2NrL0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svR2VvbG9j
YXRpb25DbGllbnRNb2NrLmNwcCBcCisgICAgcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2Nr
LmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2Uu
Y3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcCBcCkBAIC0yMTY4LDYgKzIx
NjksNyBAQAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlTW90aW9uQ2xpZW50TW9jay5oIFwKICAg
ICBwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIFwKICAgICBwbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgXAorICAgIHBsYXRmb3JtL21vY2sv
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCBcCiAgICAgcGxhdGZvcm0vbW9jay9TY3Jv
bGxiYXJUaGVtZU1vY2suaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTE1MzMsNiArMTUzMyw3IEBACiBfX1pUVk43V2ViQ29yZTE2SWNvbkRh
dGFiYXNlQmFzZUUKIF9fWlRWTjdXZWJDb3JlMTdGcmFtZUxvYWRlckNsaWVudEUKIF9fWlRWTjdX
ZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyRQorX19aVFZON1dlYkNvcmUyNVBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJFCiBfX1pUVk43V2ViQ29yZTI4SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDhTZXR0aW5nc0UKIF9fWk43V2ViQ29yZTE2Q1NTUGFyc2VyQ29udGV4dEMxRVBO
U184RG9jdW1lbnRFUktOU180S1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4U3R5
bGVTaGVldENvbnRlbnRzMTFwYXJzZVN0cmluZ0VSS04zV1RGNlN0cmluZ0UKQEAgLTE2ODgsNiAr
MTY4OSw3IEBACiBfX1pON1dlYkNvcmUxM3RvRGV2aWNlU3BhY2VFUktOU185RmxvYXRSZWN0RVA4
TlNXaW5kb3cKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0QzFFUDlDR0NvbnRleHQKIF9f
Wk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MTVkcmF3TmF0aXZlSW1hZ2VFUDdDR0ltYWdlUktO
U185RmxvYXRTaXplRU5TXzEwQ29sb3JTcGFjZUVSS05TXzlGbG9hdFJlY3RFUzlfTlNfMTdDb21w
b3NpdGVPcGVyYXRvckVOU185QmxlbmRNb2RlRU5TXzE2SW1hZ2VPcmllbnRhdGlvbkUKK19fWk43
V2ViQ29yZTE1U3BlZWNoU3ludGhlc2lzMjJzZXRQbGF0Zm9ybVN5bnRoZXNpemVyRU4zV1RGMTBQ
YXNzT3duUHRySU5TXzI1UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckVFRQogX19aTjdXZWJDb3Jl
MTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNf
MTZGb250V2lkdGhWYXJpYW50RQogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzJFUDZO
U0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNfMTZGb250V2lkdGhWYXJpYW50RQogX19a
TjdXZWJDb3JlMTZjb2xvckZyb21OU0NvbG9yRVA3TlNDb2xvcgpAQCAtMTcwNyw2ICsxNzA5LDgg
QEAKIF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljRXYKIF9fWk43V2ViQ29y
ZTI0Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzRXYKIF9fWk43V2ViQ29yZTI0a2V5SWRlbnRpZmll
ckZvcktleUV2ZW50RVA3TlNFdmVudAorX19aTjdXZWJDb3JlMjRET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMxNXNwZWVjaFN5bnRoZXNpc0VQTlNfOURPTVdpbmRvd0UKK19fWk43V2ViQ29yZTI1UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplckMyRVBOU18zMVBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJD
bGllbnRFCiBfX1pON1dlYkNvcmUyNVBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIxMnNjaGVkdWxl
Q2FsbEVQNF9OUFBQRnZQdkVTM18KIF9fWk43V2ViQ29yZTI1UGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjE0cmVnaXN0ZXJQbHVnaW5FUDRfTlBQCiBfX1pON1dlYkNvcmUyNVBsdWdpbk1haW5UaHJl
YWRTY2hlZHVsZXIxNnVucmVnaXN0ZXJQbHVnaW5FUDRfTlBQCkBAIC0xNzI1LDYgKzE3MjksNyBA
QAogX19aTjdXZWJDb3JlMjhjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzRXYKIF9fWk43V2Vi
Q29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rc0V2CiBfX1pON1dlYkNvcmUyOGNvbnRl
eHRNZW51SXRlbVRhZ1NwZWVjaE1lbnVFdgorX19aTjdXZWJDb3JlMjhQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1ZvaWNlNmNyZWF0ZUVSS04zV1RGNlN0cmluZ0VTNF9TNF9iYgogX19aTjdXZWJDb3Jl
MjlhcHBsaWNhdGlvbklzTWljcm9zb2Z0T3V0bG9va0V2CiBfX1pON1dlYkNvcmUyOWNvbnRleHRN
ZW51SXRlbVRhZ0xlZnRUb1JpZ2h0RXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFn
UmlnaHRUb0xlZnRFdgpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2
aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzcsNiArMTM3LDEyIEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgi
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorI2luY2x1ZGUgIkRPTVdp
bmRvd1NwZWVjaFN5bnRoZXNpcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNb2NrLmgiCisjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzLmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAjaWYgRU5BQkxFKFBBR0VfUE9QVVApCkBAIC04MjcsNiArODMzLDIw
IEBACiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogfQogCisjaWYgRU5BQkxFKFNQ
RUVDSF9TWU5USEVTSVMpCit2b2lkIEludGVybmFsczo6ZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNp
emVyKCkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAg
ICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZG9tV2luZG93KCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBTcGVlY2hTeW50aGVzaXMqIHN5bnRoZXNpcyA9IERPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpczo6c3BlZWNoU3ludGhlc2lzKGRvY3VtZW50LT5kb21XaW5kb3coKSk7CisgICAgaWYgKCFz
eW50aGVzaXMpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBzeW50aGVzaXMtPnNldFBsYXRm
b3JtU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNyZWF0ZShzeW50
aGVzaXMpKTsKK30KKyNlbmRpZgorICAgIAogdm9pZCBJbnRlcm5hbHM6OnNldEVuYWJsZU1vY2tQ
YWdlUG9wdXAoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICNpZiBFTkFCTEUo
UEFHRV9QT1BVUCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24g
MTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjg1LDYgKzI4NSwxMCBAQAogICAgIHZvaWQgaW5pdGlhbGl6ZU1vY2tDRE0oKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisgICAgdm9pZCBlbmFibGVN
b2NrU3BlZWNoU3ludGhlc2l6ZXIoKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQq
IGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNCArMjUxLDYgQEAKICAgICB2b2lkIHNl
dFVzZXNPdmVybGF5U2Nyb2xsYmFycyhpbiBib29sZWFuIGVuYWJsZWQpOwogCiAgICAgW0NvbmRp
dGlvbmFsPUVOQ1JZUFRFRF9NRURJQV9WMl0gdm9pZCBpbml0aWFsaXplTW9ja0NETSgpOworICAg
IAorICAgIFtDb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTXSB2b2lkIGVuYWJsZU1vY2tTcGVl
Y2hTeW50aGVzaXplcigpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjkwOSkKKysr
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBA
CisyMDEzLTAyLTE0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViU3BlZWNoOiBwbHVtYiB0aHJvdWdoIGEgbWV0aG9kIHRvIGdlbmVyYXRlIGZha2Ug
c3BlZWNoIGpvYnMgZm9yIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNzM1MQorIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXZSBjYW4ndCByZWxpYWJseSB1c2UgdGhlIHBsYXRmb3JtcyBzeW50
aGVzaXplciB0byB0ZXN0IHNwZWVjaCBzeW50aGVzaXMgaW50ZXJuYWxzLgorICAgICAgICBUaGlz
IHBhdGNoIGFkZHMgYW4gSW50ZXJuYWxzIG1ldGhvZCB0byBlbmFibGUgYSBtb2NrIHN5bnRoZXNp
emVyLCB3aGljaCBpcyBpbmhlcml0cworICAgICAgICBmcm9tIHRoZSBQbGF0Zm9ybVNwZWVjaFN5
dGhlc2l6ZXIuCisKKyAgICAgICAgVGhlIGZha2Ugc3ludGhlc2l6ZXIgZ29lcyB0aHJvdWdoIGFs
bCB0aGUgbW90aW9ucyBvZiBhIHJlYWwgc3ludGhlc2l6ZXIgYnV0IGRvZXNuJ3QgZG8gYW55dGhp
bmcuCisKKyAgICAgICAgQSBidW5jaCBvZiBjaGFuZ2VzIHdlcmUgbmVlZGVkIGhlcmUgdG8gbWFr
ZSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyIHN1YmNsYXNzYWJsZSBzbyB0aGF0IHRoZQorICAg
ICAgICByaWdodCB2aXJ0dWFsIGFyZSB1c2VkLgorCisgICAgICAgIFRoZSBNb2NrIHN5bnRoZXNp
emVyIG9ubHkgbGl2ZXMgaW4gV2ViQ29yZVRlc3RTdXBwb3J0LiBCZWNhdXNlIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIgdXNlcworICAgICAgICBhIFJldGFpblB0ciwgSSBuZWVkZWQgdG8gbWFr
ZSBXZWJDb3JlVGVzdFN1cHBvcnQgbGluayBDb3JlRm91bmRhdGlvbi4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OlNwZWVjaFN5bnRoZXNpcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnNldFBsYXRmb3JtU3ludGhlc2l6ZXIpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6Omdl
dFZvaWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnN0YXJ0U3BlYWtp
bmdJbW1lZGlhdGVseSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
Lmg6CisgICAgICAgIChTcGVlY2hTeW50aGVzaXMpOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmVUZXN0U3VwcG9ydC52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL1Bs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaDoKKyAgICAgICAgKFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcjo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1v
Y2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
TW9jazo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2spOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6On5QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
TW9jayk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6
c3BlYWtpbmdGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyTW9jazo6aW5pdGlhbGl6ZVZvaWNlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6c3BlYWspOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6ZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNpemVyKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KwogMjAxMy0wMi0xNCAgQ29zbWluIFRydXRhICA8Y3RydXRhQHJpbS5jb20+CiAKICAgICAgICAg
TnVtZXJpYyBpZGVudGlmaWVycyBvZiBldmVudHMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIHVu
aXF1ZQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBw
b3J0LnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlVGVzdFN1cHBvcnQudmNwcm9qCShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlVGVzdFN1cHBvcnQudmNwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC03NTcsNiArNzU3LDgyIEBACiAJCQk8L0ZpbGU+CiAJCTwvRmlsdGVyPgogCQk8Rmls
dGVyCisJCQlOYW1lPSJwbGF0Zm9ybSIKKwkJCT4KKwkJCTxGaWx0ZXIKKwkJCQlOYW1lPSJtb2Nr
IgorCQkJCT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tc
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQk+CisJCQkJCQk8VG9v
bAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGlsZWRI
ZWFkZXI9IjAiCisJCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1
OzQ3MDE7NDcwMiIKKwkJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0i
MCIKKwkJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0
NzAyIgorCQkJCQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkJLz4K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQk+CisJCQkJCQk8VG9vbAor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFk
ZXI9IjAiCisJCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3
MDE7NDcwMiIKKwkJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQk+CisJCQkJCQk8
VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGls
ZWRIZWFkZXI9IjAiCisJCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0
NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIK
KwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJPgorCQkJCQkJPFRvb2wK
KwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJCVVzZVByZWNvbXBpbGVkSGVh
ZGVyPSIwIgorCQkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0
NzAxOzQ3MDIiCisJCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJ
CQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9
IjAiCisJCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7
NDcwMiIKKwkJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJCS8+
CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
TW9jay5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJPC9GaWx0ZXI+CisJCTwvRmlsdGVyPgor
CQk8RmlsdGVyCiAJCQlOYW1lPSJ0ZXN0aW5nIgogCQkJPgogCQkJPEZpbGUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgJ
KHJldmlzaW9uIDE0Mjc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVO
QUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogCiAjaW5jbHVkZSAiUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXNWb2ljZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNTMsMTkgKzU0LDIzIEBACiAgICAgCiBj
bGFzcyBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQq
KTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyPiBjcmVh
dGUoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCopOworCisgICAgdmlydHVhbCB+UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcigpIHsgfQogICAgIAogICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZT4gPiYgdm9pY2VMaXN0KCkgY29uc3QgeyBy
ZXR1cm4gbV92b2ljZUxpc3Q7IH0KLSAgICB2b2lkIHNwZWFrKGNvbnN0IFBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlJik7CisgICAgdmlydHVhbCB2b2lkIHNwZWFrKGNvbnN0IFBsYXRm
b3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJik7CiAgICAgCiAgICAgUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplckNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50aGVz
aXplckNsaWVudDsgfQogICAgIAorcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCopOworICAgIFZl
Y3RvcjxSZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZT4gPiBtX3ZvaWNlTGlzdDsK
KyAgICAKIHByaXZhdGU6CiAgICAgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCogbV9z
cGVlY2hTeW50aGVzaXplckNsaWVudDsKLSAgICBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVm9pY2U+ID4gbV92b2ljZUxpc3Q7CisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxp
emVWb2ljZUxpc3QoKTsKICAgICAKLSAgICB2b2lkIGluaXRpYWxpemVWb2ljZUxpc3QoKTsKLSAg
ICAKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmV0YWluUHRyPFdlYlNwZWVjaFN5bnRoZXNpc1dy
YXBwZXI+IG1fcGxhdGZvcm1TcGVlY2hXcmFwcGVyOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcAko
cmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDExIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAKK1Bhc3NPd25QdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcj4gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6Y3JlYXRlKFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJDbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXIoY2xpZW50KSk7Cit9CisKIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXI6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ckNsaWVudCogY2xpZW50KQogICAgIDogbV9zcGVlY2hTeW50aGVzaXplckNsaWVudChjbGllbnQp
CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJNb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2su
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1v
Y2suaCIKKworI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1Bhc3NPd25QdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s+IFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpjcmVhdGUoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNs
aWVudCogY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1vY2soY2xpZW50KSk7Cit9CisgICAgCitQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyTW9jazo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2soUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplckNsaWVudCogY2xpZW50KQorICAgIDogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcihj
bGllbnQpCisgICAgLCBtX3NwZWFraW5nRmluaXNoZWRUaW1lcih0aGlzLCAmUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1vY2s6OnNwZWFraW5nRmluaXNoZWQpCisgICAgLCBtX3V0dGVyYW5jZSgw
KQoreworfQorICAgIAorUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6On5QbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jaygpCit7CisgICAgbV9zcGVha2luZ0ZpbmlzaGVkVGltZXIuc3Rv
cCgpOworfQorCit2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpzcGVha2luZ0Zp
bmlzaGVkKFRpbWVyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrPiopCit7CisgICAgY2xp
ZW50KCktPmRpZEZpbmlzaFNwZWFraW5nKG1fdXR0ZXJhbmNlKTsKKyAgICBtX3V0dGVyYW5jZSA9
IDA7Cit9CisgICAgCit2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjppbml0aWFs
aXplVm9pY2VMaXN0KCkKK3sKKyAgICBtX3ZvaWNlTGlzdC5jbGVhcigpOworICAgIG1fdm9pY2VM
aXN0LmFwcGVuZChQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpjcmVhdGUoU3RyaW5nKCJt
b2NrLnZvaWNlLmJydWNlIiksIFN0cmluZygiYnJ1Y2UiKSwgU3RyaW5nKCJlbi1VUyIpLCB0cnVl
LCB0cnVlKSk7CisgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3ludGhlc2lz
Vm9pY2U6OmNyZWF0ZShTdHJpbmcoIm1vY2sudm9pY2UuY2xhcmsiKSwgU3RyaW5nKCJjbGFyayIp
LCBTdHJpbmcoImVuLVVTIiksIHRydWUsIGZhbHNlKSk7CisgICAgbV92b2ljZUxpc3QuYXBwZW5k
KFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2U6OmNyZWF0ZShTdHJpbmcoIm1vY2sudm9pY2Uu
bG9nYW4iKSwgU3RyaW5nKCJsb2dhbiIpLCBTdHJpbmcoImZyLUNBIiksIHRydWUsIHRydWUpKTsK
K30KKwordm9pZCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6c3BlYWsoY29uc3QgUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmIHV0dGVyYW5jZSkKK3sKKyAgICBtX3V0dGVy
YW5jZSA9ICZ1dHRlcmFuY2U7CisgICAgY2xpZW50KCktPmRpZFN0YXJ0U3BlYWtpbmcobV91dHRl
cmFuY2UpOworICAgIG1fc3BlYWtpbmdGaW5pc2hlZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5U
SEVTSVMpCisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9T
WU5USEVTSVMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093blB0cjxQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jaz4gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNyZWF0
ZShQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jayhjbGllbnQpKTsKK30K
KyAgICAKK1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyTW9jayhQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50KiBjbGllbnQpCisgICAg
OiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKGNsaWVudCkKKyAgICAsIG1fc3BlYWtpbmdGaW5p
c2hlZFRpbWVyKHRoaXMsICZQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6c3BlYWtpbmdG
aW5pc2hlZCkKKyAgICAsIG1fdXR0ZXJhbmNlKDApCit7Cit9CisgICAgCitQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTW9jazo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrKCkKK3sKKyAg
ICBtX3NwZWFraW5nRmluaXNoZWRUaW1lci5zdG9wKCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1vY2s6OnNwZWFraW5nRmluaXNoZWQoVGltZXI8UGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1vY2s+KikKK3sKKyAgICBjbGllbnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcobV91
dHRlcmFuY2UpOworICAgIG1fdXR0ZXJhbmNlID0gMDsKK30KKyAgICAKK3ZvaWQgUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplck1vY2s6OmluaXRpYWxpemVWb2ljZUxpc3QoKQoreworICAgIG1fdm9p
Y2VMaXN0LmNsZWFyKCk7CisgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2lzVm9pY2U6OmNyZWF0ZShTdHJpbmcoIm1vY2sudm9pY2UuYnJ1Y2UiKSwgU3RyaW5nKCJi
cnVjZSIpLCBTdHJpbmcoImVuLVVTIiksIHRydWUsIHRydWUpKTsKKyAgICBtX3ZvaWNlTGlzdC5h
cHBlbmQoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZTo6Y3JlYXRlKFN0cmluZygibW9jay52
b2ljZS5jbGFyayIpLCBTdHJpbmcoImNsYXJrIiksIFN0cmluZygiZW4tVVMiKSwgdHJ1ZSwgZmFs
c2UpKTsKKyAgICBtX3ZvaWNlTGlzdC5hcHBlbmQoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2lj
ZTo6Y3JlYXRlKFN0cmluZygibW9jay52b2ljZS5sb2dhbiIpLCBTdHJpbmcoImxvZ2FuIiksIFN0
cmluZygiZnItQ0EiKSwgdHJ1ZSwgdHJ1ZSkpOworfQorCit2b2lkIFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJNb2NrOjpzcGVhayhjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZSYgdXR0ZXJhbmNlKQoreworICAgIG1fdXR0ZXJhbmNlID0gJnV0dGVyYW5jZTsKKyAgICBjbGll
bnQoKS0+ZGlkU3RhcnRTcGVha2luZyhtX3V0dGVyYW5jZSk7CisgICAgbV9zcGVha2luZ0Zpbmlz
aGVkVGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNb2NrLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Bs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTE0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1vY2tfaAorI2RlZmluZSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9ja19oCisKKyNpZiBF
TkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKKworI2luY2x1ZGUgIlBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJNb2NrIDogcHVibGljIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrPiBjcmVh
dGUoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCopOworICAgIAorICAgIHZpcnR1YWwg
flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrKCk7CisgICAgdmlydHVhbCB2b2lkIHNwZWFr
KGNvbnN0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJik7CisgICAgCitwcml2YXRl
OgorICAgIGV4cGxpY2l0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrKFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJDbGllbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVZvaWNl
TGlzdCgpOworICAgIHZvaWQgc3BlYWtpbmdGaW5pc2hlZChUaW1lcjxQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jaz4qKTsKKyAgICAKKyAgICBUaW1lcjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyTW9jaz4gbV9zcGVha2luZ0ZpbmlzaGVkVGltZXI7CisgICAgY29uc3QgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2UqIG1fdXR0ZXJhbmNlOworfTsKKyAgICAKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCisjZW5k
aWYgLy8gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcl9oCisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2tfaAorI2RlZmluZSBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9ja19oCisKKyNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKKwor
I2luY2x1ZGUgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCIKKyNpbmNsdWRlICJUaW1lci5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAg
ICAKK2NsYXNzIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrIDogcHVibGljIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrPiBjcmVhdGUoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ckNsaWVudCopOworICAgIAorICAgIHZpcnR1YWwgflBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJN
b2NrKCk7CisgICAgdmlydHVhbCB2b2lkIHNwZWFrKGNvbnN0IFBsYXRmb3JtU3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlJik7CisgICAgCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJNb2NrKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQqKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVZvaWNlTGlzdCgpOworICAgIHZvaWQgc3BlYWtpbmdG
aW5pc2hlZChUaW1lcjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jaz4qKTsKKyAgICAKKyAg
ICBUaW1lcjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jaz4gbV9zcGVha2luZ0ZpbmlzaGVk
VGltZXI7CisgICAgY29uc3QgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqIG1fdXR0
ZXJhbmNlOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCisjZW5kaWYgLy8gUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTQ0MTAsNiArNDQxMCw4IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9EZXZpY2VNb3Rpb25DbGllbnRNb2NrLmNwcCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5j
cHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1vY2suY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJNb2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhl
bWVNb2NrLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1v
Y2suaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZUJhc2UuY3BwJywKQEAgLTUxMzUsNiArNTEzNyw4IEBACiAgICAgICAgICd3ZWJjb3JlX3Rl
c3Rfc3VwcG9ydF9maWxlcyc6IFsKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tb2Nr
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmgnLAogICAgICAgICAgICAgJ3Rlc3Rpbmcv
djgvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCcsCiAgICAgICAgICAgICAndGVzdGluZy92OC9XZWJD
b3JlVGVzdFN1cHBvcnQuaCcsCiAgICAgICAgICAgICAndGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1
cHBvcnQuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNDI3NTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjgyNiw2
ICsyODI2LDcgQEAKIAogc2V0KFdlYkNvcmVUZXN0U3VwcG9ydF9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L3Rlc3RpbmciCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL21vY2siCiApCiAKIHNldChXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0lOQ0xVREVTCkBAIC0y
ODQyLDYgKzI4NDMsNyBAQAogc2V0KFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAgdGVz
dGluZy9JbnRlcm5hbHMuY3BwCiAgICAgdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorICAg
IHBsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwCiApCiAKICMg
TW9kdWxlcyB0aGF0IHRoZSBiaW5kaW5ncyBnZW5lcmF0b3Igc2NyaXB0cyBtYXkgdXNlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ2NTIsNiArNDY1Miw5IEBACiAJCUFB
MkE1QUQ3MTZBNDg2MUEwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUEyQTVBQjgxNkE0
ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi87IH07CiAJCUFB
NEMzQTc2MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE0QzNBNzQwQjJCMTY3OTAwMjMzNEEy
IC8qIFN0eWxlRWxlbWVudC5jcHAgKi87IH07CiAJCUFBNEMzQTc3MEIyQjE2NzkwMDIzMzRBMiAv
KiBTdHlsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEFBNEMzQTc1MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuaCAqLzsgfTsK
KwkJQUE1RjNCOEQxNkNDMzNEMTAwNDU1RUIwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJN
b2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUy
N0I3NTE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCAq
LzsgfTsKKwkJQUE1RjNCOEYxNkNDNEIzOTAwNDU1RUIwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFBRTI3Qjc0MTZDQkZDMEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
TW9jay5jcHAgKi87IH07CisJCUFBNUYzQjkxMTZDQzVCRUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRh
dGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBQTVGM0I5MDE2Q0M1QkVCMDA0NTVFQjAgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3
b3JrICovOyB9OwogCQlBQTczMTgzRTE1OTI1NUI5MDBBOTNFNkUgLyogSW5qZWN0ZWRTY3JpcHRD
YW52YXNNb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQUE3MzE4M0MxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9k
dWxlLmNwcCAqLzsgfTsKIAkJQUE3MzE4M0YxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2Ny
aXB0Q2FudmFzTW9kdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBQTczMTgzRDE1OTI1NUI5MDBBOTNFNkUgLyogSW5qZWN0ZWRTY3JpcHRDYW52YXNN
b2R1bGUuaCAqLzsgfTsKIAkJQUE3RkVFQTQxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3lu
dGhlc2lzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEFBN0ZFRTlDMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5jcHAgKi87IH07
CkBAIC0xMjAzMiw2ICsxMjAzNSw3IEBACiAJCUFBMkE1QUM4MTZBNDg1RDUwMDk3NUEyNSAvKiBT
cGVlY2hTeW50aGVzaXNWb2ljZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsOyBw
YXRoID0gTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVm9pY2UuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBQTRDM0E3NDBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVt
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUVsZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQTRDM0E3NTBCMkIxNjc5MDAy
MzM0QTIgLyogU3R5bGVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTdHlsZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUE1RjNCOTAx
NkNDNUJFQjAwNDU1RUIwIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBu
YW1lID0gQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vU3lz
dGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlRm91bmRhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBNzMxODNDMTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3Rl
ZFNjcmlwdENhbnZhc01vZHVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUFBNzMxODNEMTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlw
dENhbnZhc01vZHVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQTdGRUU5QzE2
QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNTcGVlY2hTeW50aGVzaXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTIwNTIsNiArMTIwNTYsOCBAQAogCQlBQUQ3NjZFODE1N0U1MDJG
MDBFODU0MjMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBQUQ3NjZFOTE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUFENzY2RUExNTdFNTAy
RjAwRTg1NDIzIC8qIEluc3BlY3RvckNhbnZhc0luc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JDYW52YXNJbnN0cnVtZW50YXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUFFMjdCNzQxNkNCRkMwRDAwNjIzMDQzIC8q
IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcDsgcGF0aCA9
IG1vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBQUUyN0I3NTE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1vY2suaDsgcGF0aCA9IG1vY2svUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUFGNUI3QjExNTI0
QjRCRDAwMDRDQjQ5IC8qIFdlYlNvY2tldEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldEZyYW1lLmNwcDsgcGF0aCA9IE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFC
MjNBMzI1MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmVmb3JlVGV4dEluc2VydGVkRXZl
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQjIzQTMyNjA5QkJBN0QwMDA2
N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNDUzNCw2ICsxNDU0MCw3IEBACiAJCQlpc2EgPSBQQlhGcmFtZXdvcmtz
QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9
ICgKKwkJCQlBQTVGM0I5MTE2Q0M1QkVCMDA0NTVFQjAgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJNDEyMzA5MTMxMzhDNDJGRjAwQkNDRkNBIC8qIEph
dmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCTQxMjMwODFCMTM4
QzQyOTcwMEJDQ0ZDQSAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJ
KTsKQEAgLTE0NjgyLDYgKzE0Njg5LDcgQEAKIAkJMDg2N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8q
IEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCUFBNUYzQjkwMTZDQzVCRUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsg
Ki8sCiAJCQkJRkQyREJGMEUxMkIwNDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3Jr
ICovLAogCQkJCUY1QzI4NjkzMDI4NDZEQ0QwMTg2MzVDQSAvKiBBcHBsaWNhdGlvblNlcnZpY2Vz
LmZyYW1ld29yayAqLywKIAkJCQlGRDJEQkYwRjEyQjA0OEEzMDBFRDk4QzYgLyogQXVkaW9Ub29s
Ym94LmZyYW1ld29yayAqLywKQEAgLTE1OTczLDYgKzE1OTgxLDggQEAKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTU5MzA5QTEwMTFGNEFFNTgwMDI1MDYwMyAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dE1vY2suY3BwICovLAogCQkJCTU5MzA5QTEyMTFGNEFFNkEwMDI1MDYwMyAvKiBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2suaCAqLywKKwkJCQlBQUUyN0I3NDE2Q0JGQzBEMDA2MjMwNDMgLyog
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwICovLAorCQkJCUFBRTI3Qjc1MTZDQkZD
MEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oICovLAogCQkJCTBG
RTcxNDAzMTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suY3BwICovLAogCQkJ
CTBGRTcxNDA0MTQyMTcwQjgwMERCMzNCQSAvKiBTY3JvbGxiYXJUaGVtZU1vY2suaCAqLywKIAkJ
CSk7CkBAIC0yMzA5Miw2ICsyMzEwMiw3IEBACiAJCQkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZC
IC8qIEludGVybmFscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCRjdFRTAxNEM5MTc1QTAwMTQ0
ODlEIC8qIEludGVybmFsU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzRTI5RTVGMTY3
QThBMTkwMDU4NkQzRCAvKiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBQTVGM0I4RDE2Q0MzM0QxMDA0NTVFQjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplck1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTQxN0RBNzFFMTM3MzVERkEwMDdDNTdGQiAv
KiBKU0ludGVybmFscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0MEI1QTUxNEM5MzVBQjAwQTc3
RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNFRDNGREYx
NjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNjgzMyw2ICsyNjg0NCw3IEBACiAJCQkJQTc0MEI1OTcxNEM5MzVBRjAwQTc3
RkE0IC8qIEpTTWFsbG9jU3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFQkY1MTIx
QzE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0RDMjZCNDAxNjBBOENDNjAwMjY3NTdCIC8qIE1vY2tDRE0uY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQUE1RjNCOEYxNkNDNEIzOTAwNDU1RUIwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxODE1QzFFMTM4MzE5ODMwMDU3QUFB
NCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAJKHJldmlzaW9uIDE0
Mjc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDExICs0MiwxNiBAQAogfQogICAgIAogU3BlZWNoU3lu
dGhlc2lzOjpTcGVlY2hTeW50aGVzaXMoKQotICAgIDogbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIodGhpcykpCisgICAgOiBtX3BsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6Y3JlYXRlKHRoaXMpKQog
ICAgICwgbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlKDApCiB7CiB9CiAgICAgCit2b2lkIFNwZWVj
aFN5bnRoZXNpczo6c2V0UGxhdGZvcm1TeW50aGVzaXplcihQYXNzT3duUHRyPFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXI+IHN5bnRoZXNpemVyKQoreworICAgIG1fcGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplciA9IHN5bnRoZXNpemVyOworfQorICAgIAogdm9pZCBTcGVlY2hTeW50aGVzaXM6OnZv
aWNlc0RpZENoYW5nZSgpCiB7CiAgICAgbV92b2ljZUxpc3QuY2xlYXIoKTsKQEAgLTU4LDcgKzYz
LDcgQEAKICAgICAgICAgcmV0dXJuIG1fdm9pY2VMaXN0OwogICAgIAogICAgIC8vIElmIHRoZSB2
b2ljZUxpc3QgaXMgZW1wdHksIHRoYXQncyB0aGUgY3VlIHRvIGdldCB0aGUgdm9pY2VzIGZyb20g
dGhlIHBsYXRmb3JtIGFnYWluLgotICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNWb2ljZT4gPiYgcGxhdGZvcm1Wb2ljZXMgPSBtX3BsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXIudm9pY2VMaXN0KCk7CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpc1ZvaWNlPiA+JiBwbGF0Zm9ybVZvaWNlcyA9IG1fcGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplci0+dm9pY2VMaXN0KCk7CiAgICAgc2l6ZV90IHZvaWNlQ291bnQgPSBwbGF0Zm9y
bVZvaWNlcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgayA9IDA7IGsgPCB2b2ljZUNvdW50OyBr
KyspCiAgICAgICAgIG1fdm9pY2VMaXN0LmFwcGVuZChTcGVlY2hTeW50aGVzaXNWb2ljZTo6Y3Jl
YXRlKHBsYXRmb3JtVm9pY2VzW2tdKSk7CkBAIC04OCw3ICs5Myw3IEBACiAgICAgQVNTRVJUKCFt
X2N1cnJlbnRTcGVlY2hVdHRlcmFuY2UpOwogICAgIHV0dGVyYW5jZS0+c2V0U3RhcnRUaW1lKG1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKICAgICBtX2N1cnJlbnRTcGVlY2hVdHRlcmFu
Y2UgPSB1dHRlcmFuY2U7Ci0gICAgbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLnNwZWFrKHV0
dGVyYW5jZS0+cGxhdGZvcm1VdHRlcmFuY2UoKSk7CisgICAgbV9wbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyLT5zcGVhayh1dHRlcmFuY2UtPnBsYXRmb3JtVXR0ZXJhbmNlKCkpOwogfQogCiB2b2lk
IFNwZWVjaFN5bnRoZXNpczo6c3BlYWsoU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiB1dHRlcmFu
Y2UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXMuaAkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDkgQEAKICAg
ICAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFNwZWVjaFN5bnRoZXNpc1ZvaWNlPiA+JiBnZXRW
b2ljZXMoKTsKICAgICAKKyAgICAvLyBVc2VkIGluIHRlc3RpbmcgdG8gdXNlIGEgbW9jayBwbGF0
Zm9ybSBzeW50aGVzaXplcgorICAgIHZvaWQgc2V0UGxhdGZvcm1TeW50aGVzaXplcihQYXNzT3du
UHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI+KTsKKyAgICAKIHByaXZhdGU6CiAgICAgU3Bl
ZWNoU3ludGhlc2lzKCk7CiAgICAgCkBAIC03MCw3ICs3Myw3IEBACiAgICAgdm9pZCBoYW5kbGVT
cGVha2luZ0NvbXBsZXRlZChTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqLCBib29sIGVycm9yT2Nj
dXJyZWQpOwogICAgIHZvaWQgZmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgU3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiwgdW5zaWduZWQgbG9uZyBjaGFySW5kZXgsIGNvbnN0IFN0
cmluZyYgbmFtZSk7CiAgICAgCi0gICAgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciBtX3BsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXI7CisgICAgT3duUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXI+IG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjsKICAgICBWZWN0b3I8UmVmUHRyPFNwZWVj
aFN5bnRoZXNpc1ZvaWNlPiA+IG1fdm9pY2VMaXN0OwogICAgIFNwZWVjaFN5bnRoZXNpc1V0dGVy
YW5jZSogbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlOwogICAgIERlcXVlPFJlZlB0cjxTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2U+ID4gbV91dHRlcmFuY2VRdWV1ZTsKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE0Mjg4MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDEzLTAyLTE0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5j
b20+CisKKyAgICAgICAgV2ViU3BlZWNoOiBwbHVtYiB0aHJvdWdoIGEgbWV0aG9kIHRvIGdlbmVy
YXRlIGZha2Ugc3BlZWNoIGpvYnMgZm9yIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzM1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvc3BlZWNoc3ludGhl
c2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWsuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
ZmFzdC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy12b2ljZXMuaHRtbDoKKwogMjAx
My0wMi0xNCAgRmxvcmluIE1hbGl0YSAgPGZtYWxpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gVW5yZXZpZXdlZCByZWJhc2VsaW5lIGFmdGVyIGJyaWdodG5lc3MgZmlsdGVy
IHVwZGF0ZS4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3NwZWVjaHN5bnRo
ZXNpcy9zcGVlY2gtc3ludGhlc2lzLXNwZWFrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3Bl
YWsuaHRtbAkocmV2aXNpb24gMTQyNzU1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtc3BlYWsuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtOSw2ICs5LDkgQEAKIAogPHNjcmlwdD4KIAorICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmVuYWJsZU1vY2tTcGVlY2hTeW50aGVzaXpl
cigpOworCiAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB0aGUgYmFzaWMgbWVjaGFu
aXNtcyBvZiBzcGVha2luZyB0ZXh0IHdvcmssIGluY2x1ZGluZyBzZW5kaW5nIHRoZSBqb2IgYW5k
IHJlY2V2aW5nIHRoZSBjYWxsYmFjay4iKTsKIAogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVl
Y2gtc3ludGhlc2lzLXZvaWNlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXZvaWNlcy5odG1s
CShyZXZpc2lvbiAxNDI3NTUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zcGVl
Y2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy12b2ljZXMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtOCw2ICs4LDggQEAKIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogCiA8c2NyaXB0PgorICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmVuYWJsZU1v
Y2tTcGVlY2hTeW50aGVzaXplcigpOwogCiAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhh
dCB3ZSBjYW4gZ2V0IHN5bnRoZXNpemVyIHZvaWNlcyBvbiB0aGUgTWFjIik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188447</attachid>
            <date>2013-02-14 16:19:26 -0800</date>
            <delta_ts>2013-02-14 23:40:21 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32078</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMTA3OSw2ICsxMDc5LDcgQEAKICAgICBwbGF0Zm9y
bS9tb2NrL0RldmljZU1vdGlvbkNsaWVudE1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9tb2NrL0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svR2VvbG9j
YXRpb25DbGllbnRNb2NrLmNwcCBcCisgICAgcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2Nr
LmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2Uu
Y3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcCBcCkBAIC0yMTY4LDYgKzIx
NjksNyBAQAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlTW90aW9uQ2xpZW50TW9jay5oIFwKICAg
ICBwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIFwKICAgICBwbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgXAorICAgIHBsYXRmb3JtL21vY2sv
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCBcCiAgICAgcGxhdGZvcm0vbW9jay9TY3Jv
bGxiYXJUaGVtZU1vY2suaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTE1MzMsNiArMTUzMyw3IEBACiBfX1pUVk43V2ViQ29yZTE2SWNvbkRh
dGFiYXNlQmFzZUUKIF9fWlRWTjdXZWJDb3JlMTdGcmFtZUxvYWRlckNsaWVudEUKIF9fWlRWTjdX
ZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyRQorX19aVFZON1dlYkNvcmUyNVBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXJFCiBfX1pUVk43V2ViQ29yZTI4SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDhTZXR0aW5nc0UKIF9fWk43V2ViQ29yZTE2Q1NTUGFyc2VyQ29udGV4dEMxRVBO
U184RG9jdW1lbnRFUktOU180S1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4U3R5
bGVTaGVldENvbnRlbnRzMTFwYXJzZVN0cmluZ0VSS04zV1RGNlN0cmluZ0UKQEAgLTE2ODgsNiAr
MTY4OSw3IEBACiBfX1pON1dlYkNvcmUxM3RvRGV2aWNlU3BhY2VFUktOU185RmxvYXRSZWN0RVA4
TlNXaW5kb3cKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0QzFFUDlDR0NvbnRleHQKIF9f
Wk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0MTVkcmF3TmF0aXZlSW1hZ2VFUDdDR0ltYWdlUktO
U185RmxvYXRTaXplRU5TXzEwQ29sb3JTcGFjZUVSS05TXzlGbG9hdFJlY3RFUzlfTlNfMTdDb21w
b3NpdGVPcGVyYXRvckVOU185QmxlbmRNb2RlRU5TXzE2SW1hZ2VPcmllbnRhdGlvbkUKK19fWk43
V2ViQ29yZTE1U3BlZWNoU3ludGhlc2lzMjJzZXRQbGF0Zm9ybVN5bnRoZXNpemVyRU4zV1RGMTBQ
YXNzT3duUHRySU5TXzI1UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckVFRQogX19aTjdXZWJDb3Jl
MTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNf
MTZGb250V2lkdGhWYXJpYW50RQogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzJFUDZO
U0ZvbnRmYmJiTlNfMTVGb250T3JpZW50YXRpb25FTlNfMTZGb250V2lkdGhWYXJpYW50RQogX19a
TjdXZWJDb3JlMTZjb2xvckZyb21OU0NvbG9yRVA3TlNDb2xvcgpAQCAtMTcwNyw2ICsxNzA5LDgg
QEAKIF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljRXYKIF9fWk43V2ViQ29y
ZTI0Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzRXYKIF9fWk43V2ViQ29yZTI0a2V5SWRlbnRpZmll
ckZvcktleUV2ZW50RVA3TlNFdmVudAorX19aTjdXZWJDb3JlMjRET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMxNXNwZWVjaFN5bnRoZXNpc0VQTlNfOURPTVdpbmRvd0UKK19fWk43V2ViQ29yZTI1UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplckMyRVBOU18zMVBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJD
bGllbnRFCiBfX1pON1dlYkNvcmUyNVBsdWdpbk1haW5UaHJlYWRTY2hlZHVsZXIxMnNjaGVkdWxl
Q2FsbEVQNF9OUFBQRnZQdkVTM18KIF9fWk43V2ViQ29yZTI1UGx1Z2luTWFpblRocmVhZFNjaGVk
dWxlcjE0cmVnaXN0ZXJQbHVnaW5FUDRfTlBQCiBfX1pON1dlYkNvcmUyNVBsdWdpbk1haW5UaHJl
YWRTY2hlZHVsZXIxNnVucmVnaXN0ZXJQbHVnaW5FUDRfTlBQCkBAIC0xNzI1LDYgKzE3MjksNyBA
QAogX19aTjdXZWJDb3JlMjhjb250ZXh0TWVudUl0ZW1UYWdTaG93Q29sb3JzRXYKIF9fWk43V2Vi
Q29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rc0V2CiBfX1pON1dlYkNvcmUyOGNvbnRl
eHRNZW51SXRlbVRhZ1NwZWVjaE1lbnVFdgorX19aTjdXZWJDb3JlMjhQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1ZvaWNlNmNyZWF0ZUVSS04zV1RGNlN0cmluZ0VTNF9TNF9iYgogX19aTjdXZWJDb3Jl
MjlhcHBsaWNhdGlvbklzTWljcm9zb2Z0T3V0bG9va0V2CiBfX1pON1dlYkNvcmUyOWNvbnRleHRN
ZW51SXRlbVRhZ0xlZnRUb1JpZ2h0RXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFn
UmlnaHRUb0xlZnRFdgpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2
aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzcsNiArMTM3LDEyIEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgi
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorI2luY2x1ZGUgIkRPTVdp
bmRvd1NwZWVjaFN5bnRoZXNpcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNb2NrLmgiCisjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzLmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAjaWYgRU5BQkxFKFBBR0VfUE9QVVApCkBAIC04MjcsNiArODMzLDIw
IEBACiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogfQogCisjaWYgRU5BQkxFKFNQ
RUVDSF9TWU5USEVTSVMpCit2b2lkIEludGVybmFsczo6ZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNp
emVyKCkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAg
ICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZG9tV2luZG93KCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBTcGVlY2hTeW50aGVzaXMqIHN5bnRoZXNpcyA9IERPTVdpbmRvd1NwZWVjaFN5bnRo
ZXNpczo6c3BlZWNoU3ludGhlc2lzKGRvY3VtZW50LT5kb21XaW5kb3coKSk7CisgICAgaWYgKCFz
eW50aGVzaXMpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBzeW50aGVzaXMtPnNldFBsYXRm
b3JtU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNyZWF0ZShzeW50
aGVzaXMpKTsKK30KKyNlbmRpZgorICAgIAogdm9pZCBJbnRlcm5hbHM6OnNldEVuYWJsZU1vY2tQ
YWdlUG9wdXAoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICNpZiBFTkFCTEUo
UEFHRV9QT1BVUCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24g
MTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjg1LDYgKzI4NSwxMCBAQAogICAgIHZvaWQgaW5pdGlhbGl6ZU1vY2tDRE0oKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisgICAgdm9pZCBlbmFibGVN
b2NrU3BlZWNoU3ludGhlc2l6ZXIoKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQq
IGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsNCArMjUxLDYgQEAKICAgICB2b2lkIHNl
dFVzZXNPdmVybGF5U2Nyb2xsYmFycyhpbiBib29sZWFuIGVuYWJsZWQpOwogCiAgICAgW0NvbmRp
dGlvbmFsPUVOQ1JZUFRFRF9NRURJQV9WMl0gdm9pZCBpbml0aWFsaXplTW9ja0NETSgpOworICAg
IAorICAgIFtDb25kaXRpb25hbD1TUEVFQ0hfU1lOVEhFU0lTXSB2b2lkIGVuYWJsZU1vY2tTcGVl
Y2hTeW50aGVzaXplcigpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjkwOSkKKysr
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBA
CisyMDEzLTAyLTE0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViU3BlZWNoOiBwbHVtYiB0aHJvdWdoIGEgbWV0aG9kIHRvIGdlbmVyYXRlIGZha2Ug
c3BlZWNoIGpvYnMgZm9yIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNzM1MQorIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXZSBjYW4ndCByZWxpYWJseSB1c2UgdGhlIHBsYXRmb3JtcyBzeW50
aGVzaXplciB0byB0ZXN0IHNwZWVjaCBzeW50aGVzaXMgaW50ZXJuYWxzLgorICAgICAgICBUaGlz
IHBhdGNoIGFkZHMgYW4gSW50ZXJuYWxzIG1ldGhvZCB0byBlbmFibGUgYSBtb2NrIHN5bnRoZXNp
emVyLCB3aGljaCBpcyBpbmhlcml0cworICAgICAgICBmcm9tIHRoZSBQbGF0Zm9ybVNwZWVjaFN5
dGhlc2l6ZXIuCisKKyAgICAgICAgVGhlIGZha2Ugc3ludGhlc2l6ZXIgZ29lcyB0aHJvdWdoIGFs
bCB0aGUgbW90aW9ucyBvZiBhIHJlYWwgc3ludGhlc2l6ZXIgYnV0IGRvZXNuJ3QgZG8gYW55dGhp
bmcuCisKKyAgICAgICAgQSBidW5jaCBvZiBjaGFuZ2VzIHdlcmUgbmVlZGVkIGhlcmUgdG8gbWFr
ZSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyIHN1YmNsYXNzYWJsZSBzbyB0aGF0IHRoZQorICAg
ICAgICByaWdodCB2aXJ0dWFsIGFyZSB1c2VkLgorCisgICAgICAgIFRoZSBNb2NrIHN5bnRoZXNp
emVyIG9ubHkgbGl2ZXMgaW4gV2ViQ29yZVRlc3RTdXBwb3J0LiBCZWNhdXNlIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIgdXNlcworICAgICAgICBhIFJldGFpblB0ciwgSSBuZWVkZWQgdG8gbWFr
ZSBXZWJDb3JlVGVzdFN1cHBvcnQgbGluayBDb3JlRm91bmRhdGlvbi4KKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OlNwZWVjaFN5bnRoZXNpcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnNldFBsYXRmb3JtU3ludGhlc2l6ZXIpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6Omdl
dFZvaWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnN0YXJ0U3BlYWtp
bmdJbW1lZGlhdGVseSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
Lmg6CisgICAgICAgIChTcGVlY2hTeW50aGVzaXMpOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmVUZXN0U3VwcG9ydC52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL1Bs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaDoKKyAgICAgICAgKFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcjo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1v
Y2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
TW9jazo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2spOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6On5QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
TW9jayk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6
c3BlYWtpbmdGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyTW9jazo6aW5pdGlhbGl6ZVZvaWNlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6c3BlYWspOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6ZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNpemVyKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KwogMjAxMy0wMi0xNCAgQ29zbWluIFRydXRhICA8Y3RydXRhQHJpbS5jb20+CiAKICAgICAgICAg
TnVtZXJpYyBpZGVudGlmaWVycyBvZiBldmVudHMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIHVu
aXF1ZQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBw
b3J0LnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlVGVzdFN1cHBvcnQudmNwcm9qCShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlVGVzdFN1cHBvcnQudmNwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC03NTcsNiArNzU3LDgyIEBACiAJCQk8L0ZpbGU+CiAJCTwvRmlsdGVyPgogCQk8Rmls
dGVyCisJCQlOYW1lPSJwbGF0Zm9ybSIKKwkJCT4KKwkJCTxGaWx0ZXIKKwkJCQlOYW1lPSJtb2Nr
IgorCQkJCT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tc
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQk+CisJCQkJCQk8VG9v
bAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGlsZWRI
ZWFkZXI9IjAiCisJCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1
OzQ3MDE7NDcwMiIKKwkJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0i
MCIKKwkJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0
NzAyIgorCQkJCQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkJLz4K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQk+CisJCQkJCQk8VG9vbAor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFk
ZXI9IjAiCisJCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3
MDE7NDcwMiIKKwkJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQk+CisJCQkJCQk8
VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGls
ZWRIZWFkZXI9IjAiCisJCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0
NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIK
KwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJPgorCQkJCQkJPFRvb2wK
KwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJCVVzZVByZWNvbXBpbGVkSGVh
ZGVyPSIwIgorCQkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0
NzAxOzQ3MDIiCisJCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJ
CQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9
IjAiCisJCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7
NDcwMiIKKwkJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJCS8+
CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
TW9jay5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJPC9GaWx0ZXI+CisJCTwvRmlsdGVyPgor
CQk8RmlsdGVyCiAJCQlOYW1lPSJ0ZXN0aW5nIgogCQkJPgogCQkJPEZpbGUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgJ
KHJldmlzaW9uIDE0Mjc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVO
QUJMRShTUEVFQ0hfU1lOVEhFU0lTKQogCiAjaW5jbHVkZSAiUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXNWb2ljZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNTMsMTkgKzU0LDIzIEBACiAgICAgCiBj
bGFzcyBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQq
KTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyPiBjcmVh
dGUoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCopOworCisgICAgdmlydHVhbCB+UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplcigpIHsgfQogICAgIAogICAgIGNvbnN0IFZlY3RvcjxSZWZQ
dHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZT4gPiYgdm9pY2VMaXN0KCkgY29uc3QgeyBy
ZXR1cm4gbV92b2ljZUxpc3Q7IH0KLSAgICB2b2lkIHNwZWFrKGNvbnN0IFBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlJik7CisgICAgdmlydHVhbCB2b2lkIHNwZWFrKGNvbnN0IFBsYXRm
b3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlJik7CiAgICAgCiAgICAgUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplckNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50aGVz
aXplckNsaWVudDsgfQogICAgIAorcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCopOworICAgIFZl
Y3RvcjxSZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZT4gPiBtX3ZvaWNlTGlzdDsK
KyAgICAKIHByaXZhdGU6CiAgICAgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCogbV9z
cGVlY2hTeW50aGVzaXplckNsaWVudDsKLSAgICBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVm9pY2U+ID4gbV92b2ljZUxpc3Q7CisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxp
emVWb2ljZUxpc3QoKTsKICAgICAKLSAgICB2b2lkIGluaXRpYWxpemVWb2ljZUxpc3QoKTsKLSAg
ICAKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmV0YWluUHRyPFdlYlNwZWVjaFN5bnRoZXNpc1dy
YXBwZXI+IG1fcGxhdGZvcm1TcGVlY2hXcmFwcGVyOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcAko
cmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDExIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAKK1Bhc3NPd25QdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcj4gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6Y3JlYXRlKFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJDbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBsYXRm
b3JtU3BlZWNoU3ludGhlc2l6ZXIoY2xpZW50KSk7Cit9CisKIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXI6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ckNsaWVudCogY2xpZW50KQogICAgIDogbV9zcGVlY2hTeW50aGVzaXplckNsaWVudChjbGllbnQp
CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJNb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2su
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9j
ay5oIgorCisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUGFzc093blB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jaz4gUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplck1vY2s6OmNyZWF0ZShQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jayhjbGllbnQpKTsKK30KKyAgICAKK1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXJNb2NrOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jayhQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyQ2xpZW50KiBjbGllbnQpCisgICAgOiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKGNs
aWVudCkKKyAgICAsIG1fc3BlYWtpbmdGaW5pc2hlZFRpbWVyKHRoaXMsICZQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTW9jazo6c3BlYWtpbmdGaW5pc2hlZCkKKyAgICAsIG1fdXR0ZXJhbmNlKDAp
Cit7Cit9CisgICAgCitQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6flBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJNb2NrKCkKK3sKKyAgICBtX3NwZWFraW5nRmluaXNoZWRUaW1lci5zdG9w
KCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OnNwZWFraW5nRmlu
aXNoZWQoVGltZXI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s+KikKK3sKKyAgICBjbGll
bnQoKS0+ZGlkRmluaXNoU3BlYWtpbmcobV91dHRlcmFuY2UpOworICAgIG1fdXR0ZXJhbmNlID0g
MDsKK30KKyAgICAKK3ZvaWQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmluaXRpYWxp
emVWb2ljZUxpc3QoKQoreworICAgIG1fdm9pY2VMaXN0LmNsZWFyKCk7CisgICAgbV92b2ljZUxp
c3QuYXBwZW5kKFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2U6OmNyZWF0ZShTdHJpbmcoIm1v
Y2sudm9pY2UuYnJ1Y2UiKSwgU3RyaW5nKCJicnVjZSIpLCBTdHJpbmcoImVuLVVTIiksIHRydWUs
IHRydWUpKTsKKyAgICBtX3ZvaWNlTGlzdC5hcHBlbmQoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNW
b2ljZTo6Y3JlYXRlKFN0cmluZygibW9jay52b2ljZS5jbGFyayIpLCBTdHJpbmcoImNsYXJrIiks
IFN0cmluZygiZW4tVVMiKSwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBtX3ZvaWNlTGlzdC5hcHBlbmQo
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZTo6Y3JlYXRlKFN0cmluZygibW9jay52b2ljZS5s
b2dhbiIpLCBTdHJpbmcoImxvZ2FuIiksIFN0cmluZygiZnItQ0EiKSwgdHJ1ZSwgdHJ1ZSkpOwor
fQorCit2b2lkIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpzcGVhayhjb25zdCBQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSYgdXR0ZXJhbmNlKQoreworICAgIG1fdXR0ZXJh
bmNlID0gJnV0dGVyYW5jZTsKKyAgICBjbGllbnQoKS0+ZGlkU3RhcnRTcGVha2luZyhtX3V0dGVy
YW5jZSk7CisgICAgbV9zcGVha2luZ0ZpbmlzaGVkVGltZXIuc3RhcnRPbmVTaG90KDApOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRI
RVNJUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1vY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmgJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9ja19oCisjZGVmaW5lIFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNb2NrX2gKKworI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCisjaW5j
bHVkZSAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAor
Y2xhc3MgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2sgOiBwdWJsaWMgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplck1vY2s+IGNyZWF0ZShQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xp
ZW50Kik7CisgICAgCisgICAgdmlydHVhbCB+UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2so
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc3BlYWsoY29uc3QgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UmKTsKKyAgICAKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1vY2soUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCopOworICAgIHZp
cnR1YWwgdm9pZCBpbml0aWFsaXplVm9pY2VMaXN0KCk7CisgICAgdm9pZCBzcGVha2luZ0Zpbmlz
aGVkKFRpbWVyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrPiopOworICAgIAorICAgIFRp
bWVyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrPiBtX3NwZWFraW5nRmluaXNoZWRUaW1l
cjsKKyAgICBjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSogbV91dHRlcmFu
Y2U7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFNQRUVDSF9TWU5USEVTSVMpCisKKyNlbmRpZiAvLyBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDE0Mjc1NSkKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNDQxMCw2ICs0NDEwLDggQEAKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0RldmljZU1vdGlvbkNsaWVudE1vY2suY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCcs
CisgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9j
ay5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplck1vY2suaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1v
Y2suY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
QmFzZS5jcHAnLApAQCAtNTEzNSw2ICs1MTM3LDggQEAKICAgICAgICAgJ3dlYmNvcmVfdGVzdF9z
dXBwb3J0X2ZpbGVzJzogWwogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWwuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jay5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCcsCiAgICAgICAgICAgICAndGVzdGluZy92OC9X
ZWJDb3JlVGVzdFN1cHBvcnQuY3BwJywKICAgICAgICAgICAgICd0ZXN0aW5nL3Y4L1dlYkNvcmVU
ZXN0U3VwcG9ydC5oJywKICAgICAgICAgICAgICd0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9y
dC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE0Mjc1NSkKKysrIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yODI2LDYgKzI4
MjYsNyBAQAogCiBzZXQoV2ViQ29yZVRlc3RTdXBwb3J0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
ICAiJHtXRUJDT1JFX0RJUn0vdGVzdGluZyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
bW9jayIKICkKIAogc2V0KFdlYkNvcmVUZXN0U3VwcG9ydF9JRExfSU5DTFVERVMKQEAgLTI4NDIs
NiArMjg0Myw3IEBACiBzZXQoV2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVMKICAgICB0ZXN0aW5n
L0ludGVybmFscy5jcHAKICAgICB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisgICAgcGxh
dGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAKICkKIAogIyBNb2R1
bGVzIHRoYXQgdGhlIGJpbmRpbmdzIGdlbmVyYXRvciBzY3JpcHRzIG1heSB1c2UKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDE0Mjc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDY1Miw2ICs0NjUyLDkgQEAKIAkJQUEyQTVB
RDcxNkE0ODYxQTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFCODE2QTQ4NUQ1
MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLzsgfTsKIAkJQUE0QzNB
NzYwQjJCMTY3OTAwMjMzNEEyIC8qIFN0eWxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTRDM0E3NDBCMkIxNjc5MDAyMzM0QTIgLyog
U3R5bGVFbGVtZW50LmNwcCAqLzsgfTsKIAkJQUE0QzNBNzcwQjJCMTY3OTAwMjMzNEEyIC8qIFN0
eWxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUE0QzNBNzUwQjJCMTY3OTAwMjMzNEEyIC8qIFN0eWxlRWxlbWVudC5oICovOyB9OworCQlB
QTVGM0I4RDE2Q0MzM0QxMDA0NTVFQjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBRTI3Qjc1
MTZDQkZDMEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oICovOyB9
OworCQlBQTVGM0I4RjE2Q0M0QjM5MDA0NTVFQjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1vY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QUFFMjdCNzQxNkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2Nr
LmNwcCAqLzsgfTsKKwkJQUE1RjNCOTExNkNDNUJFQjAwNDU1RUIwIC8qIENvcmVGb3VuZGF0aW9u
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFBNUYzQjkwMTZDQzVCRUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsg
Ki87IH07CiAJCUFBNzMxODNFMTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBQTczMTgzQzE1OTI1NUI5MDBBOTNFNkUgLyogSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUu
Y3BwICovOyB9OwogCQlBQTczMTgzRjE1OTI1NUI5MDBBOTNFNkUgLyogSW5qZWN0ZWRTY3JpcHRD
YW52YXNNb2R1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFBNzMxODNEMTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVs
ZS5oICovOyB9OwogCQlBQTdGRUVBNDE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVz
aXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3
RkVFOUMxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzLmNwcCAqLzsgfTsKQEAg
LTEyMDMyLDYgKzEyMDM1LDcgQEAKIAkJQUEyQTVBQzgxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpc1ZvaWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBTcGVlY2hTeW50aGVzaXNWb2ljZS5pZGw7IHBhdGgg
PSBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNWb2ljZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUFBNEMzQTc0MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBNEMzQTc1MEIyQjE2NzkwMDIzMzRB
MiAvKiBTdHlsZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
eWxlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTVGM0I5MDE2Q0M1
QkVCMDA0NTVFQjAgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUg
PSBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcms7IHBhdGggPSAuLi8uLi8uLi8uLi8uLi9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0NvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQUE3MzE4M0MxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2Ny
aXB0Q2FudmFzTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQUE3MzE4M0QxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9k
dWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0Q2Fu
dmFzTW9kdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBN0ZFRTlDMTZBNEU2
RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1NwZWVjaFN5bnRoZXNpcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMjA1Miw2ICsxMjA1Niw4IEBACiAJCUFBRDc2NkU4MTU3RTUwMkYwMEU4
NTQyMyAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUFBRDc2NkU5MTU3RTUwMkYwMEU4NTQyMyAvKiBJbnNwZWN0b3JDYW52YXNB
Z2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JDYW52YXNB
Z2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQUQ3NjZFQTE1N0U1MDJGMDBF
ODU0MjMgLyogSW5zcGVjdG9yQ2FudmFzSW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckNhbnZhc0luc3RydW1lbnRhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQUUyN0I3NDE2Q0JGQzBEMDA2MjMwNDMgLyogUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwOyBwYXRoID0gbW9j
ay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUFBRTI3Qjc1MTZDQkZDMEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyTW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jay5oOyBwYXRoID0gbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQUY1QjdCMTE1MjRCNEJE
MDAwNENCNDkgLyogV2ViU29ja2V0RnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViU29ja2V0RnJhbWUuY3BwOyBwYXRoID0gTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUIyM0Ez
MjUwOUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFCMjNBMzI2MDlCQkE3RDAwMDY3Q0M1
MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE0NTM0LDYgKzE0NTQwLDcgQEAKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWls
ZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAor
CQkJCUFBNUYzQjkxMTZDQzVCRUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLywKIAkJCQk0MTIzMDkxMzEzOEM0MkZGMDBCQ0NGQ0EgLyogSmF2YVNj
cmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJNDEyMzA4MUIxMzhDNDI5
NzAwQkNDRkNBIC8qIFdlYkNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwpA
QCAtMTQ2ODIsNiArMTQ2ODksNyBAQAogCQkwODY3RDY5QUZFODQwMjhGQzAyQUFDMDcgLyogRnJh
bWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
QUE1RjNCOTAxNkNDNUJFQjAwNDU1RUIwIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAqLywK
IAkJCQlGRDJEQkYwRTEyQjA0OEEzMDBFRDk4QzYgLyogQWNjZWxlcmF0ZS5mcmFtZXdvcmsgKi8s
CiAJCQkJRjVDMjg2OTMwMjg0NkRDRDAxODYzNUNBIC8qIEFwcGxpY2F0aW9uU2VydmljZXMuZnJh
bWV3b3JrICovLAogCQkJCUZEMkRCRjBGMTJCMDQ4QTMwMEVEOThDNiAvKiBBdWRpb1Rvb2xib3gu
ZnJhbWV3b3JrICovLApAQCAtMTU5NzMsNiArMTU5ODEsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJ
CQkJNTkzMDlBMTAxMUY0QUU1ODAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9j
ay5jcHAgKi8sCiAJCQkJNTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jay5oICovLAorCQkJCUFBRTI3Qjc0MTZDQkZDMEQwMDYyMzA0MyAvKiBQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAgKi8sCisJCQkJQUFFMjdCNzUxNkNCRkMwRDAw
NjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggKi8sCiAJCQkJMEZFNzE0
MDMxNDIxNzBCODAwREIzM0JBIC8qIFNjcm9sbGJhclRoZW1lTW9jay5jcHAgKi8sCiAJCQkJMEZF
NzE0MDQxNDIxNzBCODAwREIzM0JBIC8qIFNjcm9sbGJhclRoZW1lTW9jay5oICovLAogCQkJKTsK
QEAgLTIzMDkyLDYgKzIzMTAyLDcgQEAKIAkJCQk0MTdEQTZEQTEzNzM0RTZFMDA3QzU3RkIgLyog
SW50ZXJuYWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0JGN0VFMDE0QzkxNzVBMDAxNDQ4OUQg
LyogSW50ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNFMjlFNUYxNjdBOEEx
OTAwNTg2RDNEIC8qIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUFBNUYzQjhEMTZDQzMzRDEwMDQ1NUVCMCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVy
TW9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3REE3MUUxMzczNURGQTAwN0M1N0ZCIC8qIEpT
SW50ZXJuYWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzQwQjVBNTE0QzkzNUFCMDBBNzdGQTQg
LyogSlNJbnRlcm5hbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1M0VEM0ZERjE2N0E4
OEU3MDA2NzYyRTYgLyogSlNJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmggaW4gSGVhZGVycyAq
LywKQEAgLTI2ODMzLDYgKzI2ODQ0LDcgQEAKIAkJCQlBNzQwQjU5NzE0QzkzNUFGMDBBNzdGQTQg
LyogSlNNYWxsb2NTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUVCRjUxMjFDMTY5
NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDREMyNkI0MDE2MEE4Q0M2MDAyNjc1N0IgLyogTW9ja0NETS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlBQTVGM0I4RjE2Q0M0QjM5MDA0NTVFQjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4MTVDMUUxMzgzMTk4MzAwNTdBQUE0IC8q
IFdlYkNvcmVUZXN0U3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAkocmV2aXNpb24gMTQyNzU1
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDIsMTEgKzQyLDE2IEBACiB9CiAgICAgCiBTcGVlY2hTeW50aGVz
aXM6OlNwZWVjaFN5bnRoZXNpcygpCi0gICAgOiBtX3BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIo
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcih0aGlzKSkKKyAgICA6IG1fcGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplcihQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOjpjcmVhdGUodGhpcykpCiAgICAg
LCBtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2UoMCkKIHsKIH0KICAgICAKK3ZvaWQgU3BlZWNoU3lu
dGhlc2lzOjpzZXRQbGF0Zm9ybVN5bnRoZXNpemVyKFBhc3NPd25QdHI8UGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplcj4gc3ludGhlc2l6ZXIpCit7CisgICAgbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyID0gc3ludGhlc2l6ZXI7Cit9CisgICAgCiB2b2lkIFNwZWVjaFN5bnRoZXNpczo6dm9pY2Vz
RGlkQ2hhbmdlKCkKIHsKICAgICBtX3ZvaWNlTGlzdC5jbGVhcigpOwpAQCAtNTgsNyArNjMsNyBA
QAogICAgICAgICByZXR1cm4gbV92b2ljZUxpc3Q7CiAgICAgCiAgICAgLy8gSWYgdGhlIHZvaWNl
TGlzdCBpcyBlbXB0eSwgdGhhdCdzIHRoZSBjdWUgdG8gZ2V0IHRoZSB2b2ljZXMgZnJvbSB0aGUg
cGxhdGZvcm0gYWdhaW4uCi0gICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpc1ZvaWNlPiA+JiBwbGF0Zm9ybVZvaWNlcyA9IG1fcGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplci52b2ljZUxpc3QoKTsKKyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtU3BlZWNo
U3ludGhlc2lzVm9pY2U+ID4mIHBsYXRmb3JtVm9pY2VzID0gbV9wbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyLT52b2ljZUxpc3QoKTsKICAgICBzaXplX3Qgdm9pY2VDb3VudCA9IHBsYXRmb3JtVm9p
Y2VzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBrID0gMDsgayA8IHZvaWNlQ291bnQ7IGsrKykK
ICAgICAgICAgbV92b2ljZUxpc3QuYXBwZW5kKFNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpjcmVhdGUo
cGxhdGZvcm1Wb2ljZXNba10pKTsKQEAgLTg4LDcgKzkzLDcgQEAKICAgICBBU1NFUlQoIW1fY3Vy
cmVudFNwZWVjaFV0dGVyYW5jZSk7CiAgICAgdXR0ZXJhbmNlLT5zZXRTdGFydFRpbWUobW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogICAgIG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSA9
IHV0dGVyYW5jZTsKLSAgICBtX3BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuc3BlYWsodXR0ZXJh
bmNlLT5wbGF0Zm9ybVV0dGVyYW5jZSgpKTsKKyAgICBtX3BsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXItPnNwZWFrKHV0dGVyYW5jZS0+cGxhdGZvcm1VdHRlcmFuY2UoKSk7CiB9CiAKIHZvaWQgU3Bl
ZWNoU3ludGhlc2lzOjpzcGVhayhTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqIHV0dGVyYW5jZSkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNp
cy5oCShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXMuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOSBAQAogICAgIAog
ICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3BlZWNoU3ludGhlc2lzVm9pY2U+ID4mIGdldFZvaWNl
cygpOwogICAgIAorICAgIC8vIFVzZWQgaW4gdGVzdGluZyB0byB1c2UgYSBtb2NrIHBsYXRmb3Jt
IHN5bnRoZXNpemVyCisgICAgdm9pZCBzZXRQbGF0Zm9ybVN5bnRoZXNpemVyKFBhc3NPd25QdHI8
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcj4pOworICAgIAogcHJpdmF0ZToKICAgICBTcGVlY2hT
eW50aGVzaXMoKTsKICAgICAKQEAgLTcwLDcgKzczLDcgQEAKICAgICB2b2lkIGhhbmRsZVNwZWFr
aW5nQ29tcGxldGVkKFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSosIGJvb2wgZXJyb3JPY2N1cnJl
ZCk7CiAgICAgdm9pZCBmaXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2UqLCB1bnNpZ25lZCBsb25nIGNoYXJJbmRleCwgY29uc3QgU3RyaW5n
JiBuYW1lKTsKICAgICAKLSAgICBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyIG1fcGxhdGZvcm1T
cGVlY2hTeW50aGVzaXplcjsKKyAgICBPd25QdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcj4g
bV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyOwogICAgIFZlY3RvcjxSZWZQdHI8U3BlZWNoU3lu
dGhlc2lzVm9pY2U+ID4gbV92b2ljZUxpc3Q7CiAgICAgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
KiBtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2U7CiAgICAgRGVxdWU8UmVmUHRyPFNwZWVjaFN5bnRo
ZXNpc1V0dGVyYW5jZT4gPiBtX3V0dGVyYW5jZVF1ZXVlOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQy
ODgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTMtMDItMTQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
KworICAgICAgICBXZWJTcGVlY2g6IHBsdW1iIHRocm91Z2ggYSBtZXRob2QgdG8gZ2VuZXJhdGUg
ZmFrZSBzcGVlY2ggam9icyBmb3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3MzUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9zcGVlY2hzeW50aGVzaXMv
c3BlZWNoLXN5bnRoZXNpcy1zcGVhay5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0
L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXZvaWNlcy5odG1sOgorCiAyMDEzLTAy
LTE0ICBGbG9yaW4gTWFsaXRhICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0No
cm9taXVtXSBVbnJldmlld2VkIHJlYmFzZWxpbmUgYWZ0ZXIgYnJpZ2h0bmVzcyBmaWx0ZXIgdXBk
YXRlLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc3BlZWNoc3ludGhlc2lz
L3NwZWVjaC1zeW50aGVzaXMtc3BlYWsuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1zcGVhay5o
dG1sCShyZXZpc2lvbiAxNDI3NTUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9z
cGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1zcGVhay5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC05LDYgKzksOSBAQAogCiA8c2NyaXB0PgogCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNpemVyKCk7
CisKICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHRoZSBiYXNpYyBtZWNoYW5pc21z
IG9mIHNwZWFraW5nIHRleHQgd29yaywgaW5jbHVkaW5nIHNlbmRpbmcgdGhlIGpvYiBhbmQgcmVj
ZXZpbmcgdGhlIGNhbGxiYWNrLiIpOwogCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1z
eW50aGVzaXMtdm9pY2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtdm9pY2VzLmh0bWwJKHJl
dmlzaW9uIDE0Mjc1NSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3NwZWVjaHN5
bnRoZXNpcy9zcGVlY2gtc3ludGhlc2lzLXZvaWNlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04
LDYgKzgsOCBAQAogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiAKIDxzY3JpcHQ+CisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuZW5hYmxlTW9ja1Nw
ZWVjaFN5bnRoZXNpemVyKCk7CiAKICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHdl
IGNhbiBnZXQgc3ludGhlc2l6ZXIgdm9pY2VzIG9uIHRoZSBNYWMiKTsKIAo=
</data>
<flag name="commit-queue"
          id="208605"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188491</attachid>
            <date>2013-02-14 23:40:21 -0800</date>
            <delta_ts>2013-02-17 12:47:40 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32231</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMTA3OSw2ICsxMDc5LDcgQEAKICAgICBwbGF0Zm9y
bS9tb2NrL0RldmljZU1vdGlvbkNsaWVudE1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9tb2NrL0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svR2VvbG9j
YXRpb25DbGllbnRNb2NrLmNwcCBcCisgICAgcGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2Nr
LmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2Uu
Y3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcCBcCkBAIC0yMTY4LDYgKzIx
NjksNyBAQAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlTW90aW9uQ2xpZW50TW9jay5oIFwKICAg
ICBwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIFwKICAgICBwbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgXAorICAgIHBsYXRmb3JtL21vY2sv
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCBcCiAgICAgcGxhdGZvcm0vbW9jay9TY3Jv
bGxiYXJUaGVtZU1vY2suaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTE1MzMsNiArMTUzMyw5IEBACiBfX1pUVk43V2ViQ29yZTE2SWNvbkRh
dGFiYXNlQmFzZUUKIF9fWlRWTjdXZWJDb3JlMTdGcmFtZUxvYWRlckNsaWVudEUKIF9fWlRWTjdX
ZWJDb3JlMjVIaXN0b3J5UHJvcGVydHlMaXN0V3JpdGVyRQorI2lmIEVOQUJMRShTUEVFQ0hfU1lO
VEhFU0lTKQorX19aVFZON1dlYkNvcmUyNVBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJFCisjZW5k
aWYKIF9fWlRWTjdXZWJDb3JlMjhJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOFNldHRpbmdz
RQogX19aTjdXZWJDb3JlMTZDU1NQYXJzZXJDb250ZXh0QzFFUE5TXzhEb2N1bWVudEVSS05TXzRL
VVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMThTdHlsZVNoZWV0Q29udGVudHMxMXBh
cnNlU3RyaW5nRVJLTjNXVEY2U3RyaW5nRQpAQCAtMTY4OCw2ICsxNjkxLDkgQEAKIF9fWk43V2Vi
Q29yZTEzdG9EZXZpY2VTcGFjZUVSS05TXzlGbG9hdFJlY3RFUDhOU1dpbmRvdwogX19aTjdXZWJD
b3JlMTVHcmFwaGljc0NvbnRleHRDMUVQOUNHQ29udGV4dAogX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0NvbnRleHQxNWRyYXdOYXRpdmVJbWFnZUVQN0NHSW1hZ2VSS05TXzlGbG9hdFNpemVFTlNfMTBD
b2xvclNwYWNlRVJLTlNfOUZsb2F0UmVjdEVTOV9OU18xN0NvbXBvc2l0ZU9wZXJhdG9yRU5TXzlC
bGVuZE1vZGVFTlNfMTZJbWFnZU9yaWVudGF0aW9uRQorI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhF
U0lTKQorX19aTjdXZWJDb3JlMTVTcGVlY2hTeW50aGVzaXMyMnNldFBsYXRmb3JtU3ludGhlc2l6
ZXJFTjNXVEYxMFBhc3NPd25QdHJJTlNfMjVQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyRUVFCisj
ZW5kaWYKIF9fWk43V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUMxRVA2TlNGb250ZmJiYk5TXzE1
Rm9udE9yaWVudGF0aW9uRU5TXzE2Rm9udFdpZHRoVmFyaWFudEUKIF9fWk43V2ViQ29yZTE2Rm9u
dFBsYXRmb3JtRGF0YUMyRVA2TlNGb250ZmJiYk5TXzE1Rm9udE9yaWVudGF0aW9uRU5TXzE2Rm9u
dFdpZHRoVmFyaWFudEUKIF9fWk43V2ViQ29yZTE2Y29sb3JGcm9tTlNDb2xvckVQN05TQ29sb3IK
QEAgLTE3MDcsNiArMTcxMywxMCBAQAogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdJ
dGFsaWNFdgogX19aTjdXZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdTdHlsZXNFdgogX19aTjdX
ZWJDb3JlMjRrZXlJZGVudGlmaWVyRm9yS2V5RXZlbnRFUDdOU0V2ZW50CisjaWYgRU5BQkxFKFNQ
RUVDSF9TWU5USEVTSVMpCitfX1pON1dlYkNvcmUyNERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczE1
c3BlZWNoU3ludGhlc2lzRVBOU185RE9NV2luZG93RQorX19aTjdXZWJDb3JlMjVQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyQzJFUE5TXzMxUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudEUK
KyNlbmRpZgogX19aTjdXZWJDb3JlMjVQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyMTJzY2hlZHVs
ZUNhbGxFUDRfTlBQUEZ2UHZFUzNfCiBfX1pON1dlYkNvcmUyNVBsdWdpbk1haW5UaHJlYWRTY2hl
ZHVsZXIxNHJlZ2lzdGVyUGx1Z2luRVA0X05QUAogX19aTjdXZWJDb3JlMjVQbHVnaW5NYWluVGhy
ZWFkU2NoZWR1bGVyMTZ1bnJlZ2lzdGVyUGx1Z2luRVA0X05QUApAQCAtMTcyNSw2ICsxNzM1LDkg
QEAKIF9fWk43V2ViQ29yZTI4Y29udGV4dE1lbnVJdGVtVGFnU2hvd0NvbG9yc0V2CiBfX1pON1dl
YkNvcmUyOGNvbnRleHRNZW51SXRlbVRhZ1NtYXJ0TGlua3NFdgogX19aTjdXZWJDb3JlMjhjb250
ZXh0TWVudUl0ZW1UYWdTcGVlY2hNZW51RXYKKyNpZiBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykK
K19fWk43V2ViQ29yZTI4UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZTZjcmVhdGVFUktOM1dU
RjZTdHJpbmdFUzRfUzRfYmIKKyNlbmRpZgogX19aTjdXZWJDb3JlMjlhcHBsaWNhdGlvbklzTWlj
cm9zb2Z0T3V0bG9va0V2CiBfX1pON1dlYkNvcmUyOWNvbnRleHRNZW51SXRlbVRhZ0xlZnRUb1Jp
Z2h0RXYKIF9fWk43V2ViQ29yZTI5Y29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnRFdgpJbmRl
eDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkocmV2aXNpb24gMTQyNzU1KQorKysg
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzcsNiArMTM3LDEyIEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorI2luY2x1ZGUgIkRPTVdpbmRvd1NwZWVjaFN5bnRoZXNp
cy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmgiCisjaW5jbHVk
ZSAiU3BlZWNoU3ludGhlc2lzLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAj
aWYgRU5BQkxFKFBBR0VfUE9QVVApCkBAIC04MjcsNiArODMzLDIwIEBACiAgICAgICAgIGVjID0g
SU5WQUxJRF9BQ0NFU1NfRVJSOwogfQogCisjaWYgRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMpCit2
b2lkIEludGVybmFsczo6ZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNpemVyKCkKK3sKKyAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8
ICFkb2N1bWVudC0+ZG9tV2luZG93KCkpCisgICAgICAgIHJldHVybjsKKyAgICBTcGVlY2hTeW50
aGVzaXMqIHN5bnRoZXNpcyA9IERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpczo6c3BlZWNoU3ludGhl
c2lzKGRvY3VtZW50LT5kb21XaW5kb3coKSk7CisgICAgaWYgKCFzeW50aGVzaXMpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBzeW50aGVzaXMtPnNldFBsYXRmb3JtU3ludGhlc2l6ZXIoUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNyZWF0ZShzeW50aGVzaXMpKTsKK30KKyNlbmRp
ZgorICAgIAogdm9pZCBJbnRlcm5hbHM6OnNldEVuYWJsZU1vY2tQYWdlUG9wdXAoYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjg1LDYgKzI4
NSwxMCBAQAogICAgIHZvaWQgaW5pdGlhbGl6ZU1vY2tDRE0oKTsKICNlbmRpZgogCisjaWYgRU5B
QkxFKFNQRUVDSF9TWU5USEVTSVMpCisgICAgdm9pZCBlbmFibGVNb2NrU3BlZWNoU3ludGhlc2l6
ZXIoKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgp
IGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkocmV2aXNpb24g
MTQyNzU1KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yNTEsNCArMjUxLDYgQEAKICAgICB2b2lkIHNldFVzZXNPdmVybGF5U2Nyb2xs
YmFycyhpbiBib29sZWFuIGVuYWJsZWQpOwogCiAgICAgW0NvbmRpdGlvbmFsPUVOQ1JZUFRFRF9N
RURJQV9WMl0gdm9pZCBpbml0aWFsaXplTW9ja0NETSgpOworICAgIAorICAgIFtDb25kaXRpb25h
bD1TUEVFQ0hfU1lOVEhFU0lTXSB2b2lkIGVuYWJsZU1vY2tTcGVlY2hTeW50aGVzaXplcigpOwog
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjkwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDEzLTAyLTE0ICBDaHJp
cyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViU3BlZWNoOiBw
bHVtYiB0aHJvdWdoIGEgbWV0aG9kIHRvIGdlbmVyYXRlIGZha2Ugc3BlZWNoIGpvYnMgZm9yIHRl
c3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
NzM1MQorIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBjYW4ndCByZWxpYWJseSB1c2UgdGhlIHBsYXRmb3JtcyBzeW50aGVzaXplciB0byB0ZXN0IHNw
ZWVjaCBzeW50aGVzaXMgaW50ZXJuYWxzLgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gSW50
ZXJuYWxzIG1ldGhvZCB0byBlbmFibGUgYSBtb2NrIHN5bnRoZXNpemVyLCB3aGljaCBpcyBpbmhl
cml0cworICAgICAgICBmcm9tIHRoZSBQbGF0Zm9ybVNwZWVjaFN5dGhlc2l6ZXIuCisKKyAgICAg
ICAgVGhlIGZha2Ugc3ludGhlc2l6ZXIgZ29lcyB0aHJvdWdoIGFsbCB0aGUgbW90aW9ucyBvZiBh
IHJlYWwgc3ludGhlc2l6ZXIgYnV0IGRvZXNuJ3QgZG8gYW55dGhpbmcuCisKKyAgICAgICAgQSBi
dW5jaCBvZiBjaGFuZ2VzIHdlcmUgbmVlZGVkIGhlcmUgdG8gbWFrZSBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyIHN1YmNsYXNzYWJsZSBzbyB0aGF0IHRoZQorICAgICAgICByaWdodCB2aXJ0dWFs
IGFyZSB1c2VkLgorCisgICAgICAgIFRoZSBNb2NrIHN5bnRoZXNpemVyIG9ubHkgbGl2ZXMgaW4g
V2ViQ29yZVRlc3RTdXBwb3J0LiBCZWNhdXNlIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIgdXNl
cworICAgICAgICBhIFJldGFpblB0ciwgSSBuZWVkZWQgdG8gbWFrZSBXZWJDb3JlVGVzdFN1cHBv
cnQgbGluayBDb3JlRm91bmRhdGlvbi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hTeW50aGVzaXM6OlNwZWVjaFN5bnRoZXNpcyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hTeW50aGVzaXM6OnNldFBsYXRmb3JtU3ludGhlc2l6ZXIpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OmdldFZvaWNlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hTeW50aGVzaXM6OnN0YXJ0U3BlYWtpbmdJbW1lZGlhdGVseSk6Cisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmg6CisgICAgICAgIChTcGVl
Y2hTeW50aGVzaXMpOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmVUZXN0U3VwcG9ydC52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXIuaDoKKyAgICAgICAgKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjo6flBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1vY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1vY2spOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1vY2s6On5QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jayk6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6c3BlYWtpbmdGaW5pc2hlZCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6aW5pdGlh
bGl6ZVZvaWNlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyTW9jazo6c3BlYWspOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplck1vY2suaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
ZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNpemVyKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMy0wMi0xNCAgQ29z
bWluIFRydXRhICA8Y3RydXRhQHJpbS5jb20+CiAKICAgICAgICAgTnVtZXJpYyBpZGVudGlmaWVy
cyBvZiBldmVudHMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIHVuaXF1ZQpJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlVGVzdFN1cHBvcnQu
dmNwcm9qCShyZXZpc2lvbiAxNDI3NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlVGVzdFN1cHBvcnQudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03NTcsNiArNzU3
LDgyIEBACiAJCQk8L0ZpbGU+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCisJCQlOYW1lPSJwbGF0
Zm9ybSIKKwkJCT4KKwkJCTxGaWx0ZXIKKwkJCQlOYW1lPSJtb2NrIgorCQkJCT4KKwkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tcUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplck1vY2suY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQkJ
RGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJ
CQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJCS8+CisJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVs
ZWFzZXxXaW4zMiIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCQlEaXNhYmxl
U3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJCUZvcmNl
ZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQkJRGlz
YWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCQlG
b3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFz
ZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJ
CQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJ
CQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJCS8+CisJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJCURp
c2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQkJ
Rm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlByb2R1
Y3Rpb258V2luMzIiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQkJRGlzYWJs
ZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCQlGb3Jj
ZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGxhdGZvcm1cbW9ja1xQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJPC9GaWx0ZXI+CisJCTwvRmlsdGVyPgorCQk8RmlsdGVyCiAJCQlOYW1l
PSJ0ZXN0aW5nIgogCQkJPgogCQkJPEZpbGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmgJKHJldmlzaW9uIDE0Mjc1NSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhF
U0lTKQogCiAjaW5jbHVkZSAiUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgUExB
VEZPUk0oTUFDKQpAQCAtNTMsMTkgKzU0LDIzIEBACiAgICAgCiBjbGFzcyBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQqKTsKKyAgICBzdGF0aWMgUGFz
c093blB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyPiBjcmVhdGUoUGxhdGZvcm1TcGVlY2hT
eW50aGVzaXplckNsaWVudCopOworCisgICAgdmlydHVhbCB+UGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplcigpIHsgfQogICAgIAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UGxhdGZvcm1TcGVlY2hT
eW50aGVzaXNWb2ljZT4gPiYgdm9pY2VMaXN0KCkgY29uc3QgeyByZXR1cm4gbV92b2ljZUxpc3Q7
IH0KLSAgICB2b2lkIHNwZWFrKGNvbnN0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNl
Jik7CisgICAgdmlydHVhbCB2b2lkIHNwZWFrKGNvbnN0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlJik7CiAgICAgCiAgICAgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCog
Y2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zcGVlY2hTeW50aGVzaXplckNsaWVudDsgfQogICAg
IAorcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCopOworICAgIFZlY3RvcjxSZWZQdHI8UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNWb2ljZT4gPiBtX3ZvaWNlTGlzdDsKKyAgICAKIHByaXZhdGU6CiAg
ICAgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCogbV9zcGVlY2hTeW50aGVzaXplckNs
aWVudDsKLSAgICBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2U+ID4g
bV92b2ljZUxpc3Q7CisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVWb2ljZUxpc3QoKTsKICAg
ICAKLSAgICB2b2lkIGluaXRpYWxpemVWb2ljZUxpc3QoKTsKLSAgICAKICNpZiBQTEFURk9STShN
QUMpCiAgICAgUmV0YWluUHRyPFdlYlNwZWVjaFN5bnRoZXNpc1dyYXBwZXI+IG1fcGxhdGZvcm1T
cGVlY2hXcmFwcGVyOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcAkocmV2aXNpb24gMTQyNzU1KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAKK1Bhc3NPd25QdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcj4gUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplcjo6Y3JlYXRlKFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQqIGNs
aWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6
ZXIoY2xpZW50KSk7Cit9CisKIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXI6OlBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCogY2xpZW50KQog
ICAgIDogbV9zcGVlY2hTeW50aGVzaXplckNsaWVudChjbGllbnQpCiB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNb2NrLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oIgorCisjaWYgRU5BQkxF
KFNQRUVDSF9TWU5USEVTSVMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093blB0cjxQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jaz4gUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1v
Y2s6OmNyZWF0ZShQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50KiBjbGllbnQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jayhjbGll
bnQpKTsKK30KKyAgICAKK1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVyTW9jayhQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50KiBjbGll
bnQpCisgICAgOiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKGNsaWVudCkKKyAgICAsIG1fc3Bl
YWtpbmdGaW5pc2hlZFRpbWVyKHRoaXMsICZQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6
c3BlYWtpbmdGaW5pc2hlZCkKKyAgICAsIG1fdXR0ZXJhbmNlKDApCit7Cit9CisgICAgCitQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jazo6flBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2Nr
KCkKK3sKKyAgICBtX3NwZWFraW5nRmluaXNoZWRUaW1lci5zdG9wKCk7Cit9CisKK3ZvaWQgUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OnNwZWFraW5nRmluaXNoZWQoVGltZXI8UGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1vY2s+KikKK3sKKyAgICBjbGllbnQoKS0+ZGlkRmluaXNoU3Bl
YWtpbmcobV91dHRlcmFuY2UpOworICAgIG1fdXR0ZXJhbmNlID0gMDsKK30KKyAgICAKK3ZvaWQg
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2s6OmluaXRpYWxpemVWb2ljZUxpc3QoKQorewor
ICAgIG1fdm9pY2VMaXN0LmNsZWFyKCk7CisgICAgbV92b2ljZUxpc3QuYXBwZW5kKFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2lzVm9pY2U6OmNyZWF0ZShTdHJpbmcoIm1vY2sudm9pY2UuYnJ1Y2UiKSwg
U3RyaW5nKCJicnVjZSIpLCBTdHJpbmcoImVuLVVTIiksIHRydWUsIHRydWUpKTsKKyAgICBtX3Zv
aWNlTGlzdC5hcHBlbmQoUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZTo6Y3JlYXRlKFN0cmlu
ZygibW9jay52b2ljZS5jbGFyayIpLCBTdHJpbmcoImNsYXJrIiksIFN0cmluZygiZW4tVVMiKSwg
dHJ1ZSwgZmFsc2UpKTsKKyAgICBtX3ZvaWNlTGlzdC5hcHBlbmQoUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXNWb2ljZTo6Y3JlYXRlKFN0cmluZygibW9jay52b2ljZS5sb2dhbiIpLCBTdHJpbmcoImxv
Z2FuIiksIFN0cmluZygiZnItQ0EiKSwgdHJ1ZSwgdHJ1ZSkpOworfQorCit2b2lkIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNb2NrOjpzcGVhayhjb25zdCBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZSYgdXR0ZXJhbmNlKQoreworICAgIG1fdXR0ZXJhbmNlID0gJnV0dGVyYW5jZTsK
KyAgICBjbGllbnQoKS0+ZGlkU3RhcnRTcGVha2luZyhtX3V0dGVyYW5jZSk7CisgICAgbV9zcGVh
a2luZ0ZpbmlzaGVkVGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1BFRUNIX1NZTlRIRVNJUykKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNb2NrLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9ja19oCisjZGVmaW5lIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrX2gK
KworI2lmIEVOQUJMRShTUEVFQ0hfU1lOVEhFU0lTKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplci5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorY2xhc3MgUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1vY2sgOiBwdWJsaWMgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1v
Y2s+IGNyZWF0ZShQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50Kik7CisgICAgCisgICAg
dmlydHVhbCB+UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2soKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc3BlYWsoY29uc3QgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UmKTsKKyAgICAK
K3ByaXZhdGU6CisgICAgZXhwbGljaXQgUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2soUGxh
dGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudCopOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFs
aXplVm9pY2VMaXN0KCk7CisgICAgdm9pZCBzcGVha2luZ0ZpbmlzaGVkKFRpbWVyPFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNb2NrPiopOworICAgIAorICAgIFRpbWVyPFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXJNb2NrPiBtX3NwZWFraW5nRmluaXNoZWRUaW1lcjsKKyAgICBjb25zdCBQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSogbV91dHRlcmFuY2U7Cit9OworICAgIAorfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNQRUVDSF9TWU5USEVTSVMp
CisKKyNlbmRpZiAvLyBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyX2gKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkJKHJldmlzaW9uIDE0Mjc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQko
d29ya2luZyBjb3B5KQpAQCAtNDQxMCw2ICs0NDEwLDggQEAKICAgICAgICAgICAgICdwbGF0Zm9y
bS9tb2NrL0RldmljZU1vdGlvbkNsaWVudE1vY2suY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAnLApAQCAtNTEz
NSw2ICs1MTM3LDggQEAKICAgICAgICAgJ3dlYmNvcmVfdGVzdF9zdXBwb3J0X2ZpbGVzJzogWwog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCcs
CisgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9j
ay5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplck1vY2suaCcsCiAgICAgICAgICAgICAndGVzdGluZy92OC9XZWJDb3JlVGVzdFN1cHBvcnQu
Y3BwJywKICAgICAgICAgICAgICd0ZXN0aW5nL3Y4L1dlYkNvcmVUZXN0U3VwcG9ydC5oJywKICAg
ICAgICAgICAgICd0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAnLApJbmRleDogU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE0Mjc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yODI2LDYgKzI4MjYsNyBAQAogCiBzZXQoV2Vi
Q29yZVRlc3RTdXBwb3J0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0v
dGVzdGluZyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbW9jayIKICkKIAogc2V0KFdl
YkNvcmVUZXN0U3VwcG9ydF9JRExfSU5DTFVERVMKQEAgLTI4NDIsNiArMjg0Myw3IEBACiBzZXQo
V2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVMKICAgICB0ZXN0aW5nL0ludGVybmFscy5jcHAKICAg
ICB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisgICAgcGxhdGZvcm0vbW9jay9QbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAKICkKIAogIyBNb2R1bGVzIHRoYXQgdGhlIGJpbmRp
bmdzIGdlbmVyYXRvciBzY3JpcHRzIG1heSB1c2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE0Mjc1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtNDY1Miw2ICs0NjUyLDkgQEAKIAkJQUEyQTVBRDcxNkE0ODYxQTAwOTc1QTI1
IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2lu
ZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLzsgfTsKIAkJQUE0QzNBNzYwQjJCMTY3OTAwMjMzNEEy
IC8qIFN0eWxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBQTRDM0E3NDBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmNwcCAq
LzsgfTsKIAkJQUE0QzNBNzcwQjJCMTY3OTAwMjMzNEEyIC8qIFN0eWxlRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE0QzNBNzUwQjJCMTY3
OTAwMjMzNEEyIC8qIFN0eWxlRWxlbWVudC5oICovOyB9OworCQlBQTVGM0I4RDE2Q0MzM0QxMDA0
NTVFQjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBRTI3Qjc1MTZDQkZDMEQwMDYyMzA0MyAv
KiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oICovOyB9OworCQlBQTVGM0I4RjE2Q0M0
QjM5MDA0NTVFQjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFFMjdCNzQxNkNCRkMwRDAw
NjIzMDQzIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNb2NrLmNwcCAqLzsgfTsKKwkJQUE1
RjNCOTExNkNDNUJFQjAwNDU1RUIwIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBNUYzQjkwMTZDQzVC
RUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJCUFBNzMxODNF
MTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTczMTgzQzE1OTI1NUI5
MDBBOTNFNkUgLyogSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuY3BwICovOyB9OwogCQlBQTcz
MTgzRjE1OTI1NUI5MDBBOTNFNkUgLyogSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBNzMxODNEMTU5MjU1
QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oICovOyB9OwogCQlBQTdG
RUVBNDE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3RkVFOUMxNkE0RTZGMzAwNEMw
QzMzIC8qIEpTU3BlZWNoU3ludGhlc2lzLmNwcCAqLzsgfTsKQEAgLTEyMDMyLDYgKzEyMDM1LDcg
QEAKIAkJQUEyQTVBQzgxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc1ZvaWNlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IG5hbWUgPSBTcGVlY2hTeW50aGVzaXNWb2ljZS5pZGw7IHBhdGggPSBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hTeW50aGVzaXNWb2ljZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFB
NEMzQTc0MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUFBNEMzQTc1MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlRWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQTVGM0I5MDE2Q0M1QkVCMDA0NTVFQjAgLyogQ29y
ZUZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb3JlRm91bmRhdGlvbi5m
cmFtZXdvcms7IHBhdGggPSAuLi8uLi8uLi8uLi8uLi9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0NvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QUE3MzE4M0MxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkU2NyaXB0Q2Fu
dmFzTW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUE3MzE4M0QxNTky
NTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBN0ZFRTlDMTZBNEU2RjMwMDRDMEMzMyAvKiBKU1Nw
ZWVjaFN5bnRoZXNpcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1NwZWVjaFN5bnRoZXNpcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjA1
Miw2ICsxMjA1Niw4IEBACiAJCUFBRDc2NkU4MTU3RTUwMkYwMEU4NTQyMyAvKiBJbnNwZWN0b3JD
YW52YXNBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNw
ZWN0b3JDYW52YXNBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBRDc2
NkU5MTU3RTUwMkYwMEU4NTQyMyAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JDYW52YXNBZ2VudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBQUQ3NjZFQTE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9y
Q2FudmFzSW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEluc3BlY3RvckNhbnZhc0luc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBQUUyN0I3NDE2Q0JGQzBEMDA2MjMwNDMgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplck1vY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwOyBwYXRoID0gbW9jay9QbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyTW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUFBRTI3Qjc1
MTZDQkZDMEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9j
ay5oOyBwYXRoID0gbW9jay9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBQUY1QjdCMTE1MjRCNEJEMDAwNENCNDkgLyogV2ViU29j
a2V0RnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViU29j
a2V0RnJhbWUuY3BwOyBwYXRoID0gTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUIyM0EzMjUwOUJCQTdEMDAwNjdDQzUz
IC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUFCMjNBMzI2MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5z
ZXJ0ZWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmVmb3JlVGV4
dEluc2VydGVkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NTM0LDYg
KzE0NTQwLDcgQEAKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCUFBNUYzQjkxMTZDQzVC
RUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywK
IAkJCQk0MTIzMDkxMzEzOEM0MkZGMDBCQ0NGQ0EgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkJNDEyMzA4MUIxMzhDNDI5NzAwQkNDRkNBIC8qIFdlYkNv
cmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwpAQCAtMTQ2ODIsNiArMTQ2ODks
NyBAQAogCQkwODY3RDY5QUZFODQwMjhGQzAyQUFDMDcgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQUE1RjNCOTAxNkNDNUJFQjAw
NDU1RUIwIC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQlGRDJEQkYwRTEyQjA0
OEEzMDBFRDk4QzYgLyogQWNjZWxlcmF0ZS5mcmFtZXdvcmsgKi8sCiAJCQkJRjVDMjg2OTMwMjg0
NkRDRDAxODYzNUNBIC8qIEFwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrICovLAogCQkJCUZE
MkRCRjBGMTJCMDQ4QTMwMEVEOThDNiAvKiBBdWRpb1Rvb2xib3guZnJhbWV3b3JrICovLApAQCAt
MTU5NzMsNiArMTU5ODEsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTkzMDlBMTAxMUY0QUU1
ODAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgKi8sCiAJCQkJNTkz
MDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oICov
LAorCQkJCUFBRTI3Qjc0MTZDQkZDMEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyTW9jay5jcHAgKi8sCisJCQkJQUFFMjdCNzUxNkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggKi8sCiAJCQkJMEZFNzE0MDMxNDIxNzBCODAwREIzM0JB
IC8qIFNjcm9sbGJhclRoZW1lTW9jay5jcHAgKi8sCiAJCQkJMEZFNzE0MDQxNDIxNzBCODAwREIz
M0JBIC8qIFNjcm9sbGJhclRoZW1lTW9jay5oICovLAogCQkJKTsKQEAgLTIzMDkyLDYgKzIzMTAy
LDcgQEAKIAkJCQk0MTdEQTZEQTEzNzM0RTZFMDA3QzU3RkIgLyogSW50ZXJuYWxzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBN0JGN0VFMDE0QzkxNzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxTZXR0aW5n
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNFMjlFNUYxNjdBOEExOTAwNTg2RDNEIC8qIEludGVy
bmFsU2V0dGluZ3NHZW5lcmF0ZWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUFBNUYzQjhEMTZDQzMz
RDEwMDQ1NUVCMCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE3REE3MUUxMzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNzQwQjVBNTE0QzkzNUFCMDBBNzdGQTQgLyogSlNJbnRlcm5hbFNldHRp
bmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1M0VEM0ZERjE2N0E4OEU3MDA2NzYyRTYgLyogSlNJ
bnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmggaW4gSGVhZGVycyAqLywKQEAgLTI2ODMzLDYgKzI2
ODQ0LDcgQEAKIAkJCQlBNzQwQjU5NzE0QzkzNUFGMDBBNzdGQTQgLyogSlNNYWxsb2NTdGF0aXN0
aWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUVCRjUxMjFDMTY5NjQ5NkMwMDU2QkQyNSAvKiBK
U1R5cGVDb252ZXJzaW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREMyNkI0MDE2MEE4Q0M2
MDAyNjc1N0IgLyogTW9ja0NETS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBQTVGM0I4RjE2Q0M0
QjM5MDA0NTVFQjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDE4MTVDMUUxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9y
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFN5bnRoZXNpcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzLmNwcAkocmV2aXNpb24gMTQyNzU1KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDIsMTEgKzQyLDE2IEBACiB9CiAgICAgCiBTcGVlY2hTeW50aGVzaXM6OlNwZWVjaFN5bnRoZXNp
cygpCi0gICAgOiBtX3BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIoUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcih0aGlzKSkKKyAgICA6IG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcihQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2N1cnJlbnRTcGVlY2hV
dHRlcmFuY2UoMCkKIHsKIH0KICAgICAKK3ZvaWQgU3BlZWNoU3ludGhlc2lzOjpzZXRQbGF0Zm9y
bVN5bnRoZXNpemVyKFBhc3NPd25QdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcj4gc3ludGhl
c2l6ZXIpCit7CisgICAgbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyID0gc3ludGhlc2l6ZXI7
Cit9CisgICAgCiB2b2lkIFNwZWVjaFN5bnRoZXNpczo6dm9pY2VzRGlkQ2hhbmdlKCkKIHsKICAg
ICBtX3ZvaWNlTGlzdC5jbGVhcigpOwpAQCAtNTgsNyArNjMsNyBAQAogICAgICAgICByZXR1cm4g
bV92b2ljZUxpc3Q7CiAgICAgCiAgICAgLy8gSWYgdGhlIHZvaWNlTGlzdCBpcyBlbXB0eSwgdGhh
dCdzIHRoZSBjdWUgdG8gZ2V0IHRoZSB2b2ljZXMgZnJvbSB0aGUgcGxhdGZvcm0gYWdhaW4uCi0g
ICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlPiA+JiBw
bGF0Zm9ybVZvaWNlcyA9IG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci52b2ljZUxpc3QoKTsK
KyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2U+ID4m
IHBsYXRmb3JtVm9pY2VzID0gbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLT52b2ljZUxpc3Qo
KTsKICAgICBzaXplX3Qgdm9pY2VDb3VudCA9IHBsYXRmb3JtVm9pY2VzLnNpemUoKTsKICAgICBm
b3IgKHNpemVfdCBrID0gMDsgayA8IHZvaWNlQ291bnQ7IGsrKykKICAgICAgICAgbV92b2ljZUxp
c3QuYXBwZW5kKFNwZWVjaFN5bnRoZXNpc1ZvaWNlOjpjcmVhdGUocGxhdGZvcm1Wb2ljZXNba10p
KTsKQEAgLTg4LDcgKzkzLDcgQEAKICAgICBBU1NFUlQoIW1fY3VycmVudFNwZWVjaFV0dGVyYW5j
ZSk7CiAgICAgdXR0ZXJhbmNlLT5zZXRTdGFydFRpbWUobW9ub3RvbmljYWxseUluY3JlYXNpbmdU
aW1lKCkpOwogICAgIG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSA9IHV0dGVyYW5jZTsKLSAgICBt
X3BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuc3BlYWsodXR0ZXJhbmNlLT5wbGF0Zm9ybVV0dGVy
YW5jZSgpKTsKKyAgICBtX3BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXItPnNwZWFrKHV0dGVyYW5j
ZS0+cGxhdGZvcm1VdHRlcmFuY2UoKSk7CiB9CiAKIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpzcGVh
ayhTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqIHV0dGVyYW5jZSkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5oCShyZXZpc2lvbiAxNDI3
NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuaAko
d29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOSBAQAogICAgIAogICAgIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8U3BlZWNoU3ludGhlc2lzVm9pY2U+ID4mIGdldFZvaWNlcygpOwogICAgIAorICAgIC8v
IFVzZWQgaW4gdGVzdGluZyB0byB1c2UgYSBtb2NrIHBsYXRmb3JtIHN5bnRoZXNpemVyCisgICAg
dm9pZCBzZXRQbGF0Zm9ybVN5bnRoZXNpemVyKFBhc3NPd25QdHI8UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplcj4pOworICAgIAogcHJpdmF0ZToKICAgICBTcGVlY2hTeW50aGVzaXMoKTsKICAgICAK
QEAgLTcwLDcgKzczLDcgQEAKICAgICB2b2lkIGhhbmRsZVNwZWFraW5nQ29tcGxldGVkKFNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZSosIGJvb2wgZXJyb3JPY2N1cnJlZCk7CiAgICAgdm9pZCBmaXJl
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2Uq
LCB1bnNpZ25lZCBsb25nIGNoYXJJbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICAKLSAg
ICBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyIG1fcGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcjsK
KyAgICBPd25QdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcj4gbV9wbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyOwogICAgIFZlY3RvcjxSZWZQdHI8U3BlZWNoU3ludGhlc2lzVm9pY2U+ID4gbV92
b2ljZUxpc3Q7CiAgICAgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKiBtX2N1cnJlbnRTcGVlY2hV
dHRlcmFuY2U7CiAgICAgRGVxdWU8UmVmUHRyPFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gPiBt
X3V0dGVyYW5jZVF1ZXVlOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyODgwKQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMTQg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJTcGVl
Y2g6IHBsdW1iIHRocm91Z2ggYSBtZXRob2QgdG8gZ2VuZXJhdGUgZmFrZSBzcGVlY2ggam9icyBm
b3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA3MzUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9zcGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1z
cGVhay5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9z
cGVlY2gtc3ludGhlc2lzLXZvaWNlcy5odG1sOgorCiAyMDEzLTAyLTE0ICBGbG9yaW4gTWFsaXRh
ICA8Zm1hbGl0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2Vk
IHJlYmFzZWxpbmUgYWZ0ZXIgYnJpZ2h0bmVzcyBmaWx0ZXIgdXBkYXRlLgpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMt
c3BlYWsuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9z
cGVlY2hzeW50aGVzaXMvc3BlZWNoLXN5bnRoZXNpcy1zcGVhay5odG1sCShyZXZpc2lvbiAxNDI3
NTUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9zcGVlY2hzeW50aGVzaXMvc3Bl
ZWNoLXN5bnRoZXNpcy1zcGVhay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDYgKzksOSBAQAog
CiA8c2NyaXB0PgogCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNpemVyKCk7CisKICAgICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0cyB0aGF0IHRoZSBiYXNpYyBtZWNoYW5pc21zIG9mIHNwZWFraW5nIHRleHQg
d29yaywgaW5jbHVkaW5nIHNlbmRpbmcgdGhlIGpvYiBhbmQgcmVjZXZpbmcgdGhlIGNhbGxiYWNr
LiIpOwogCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3Qvc3BlZWNoc3ludGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtdm9pY2VzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvc3BlZWNoc3lu
dGhlc2lzL3NwZWVjaC1zeW50aGVzaXMtdm9pY2VzLmh0bWwJKHJldmlzaW9uIDE0Mjc1NSkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3NwZWVjaHN5bnRoZXNpcy9zcGVlY2gtc3lu
dGhlc2lzLXZvaWNlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDYgKzgsOCBAQAogPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CiAKIDxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuZW5hYmxlTW9ja1NwZWVjaFN5bnRoZXNpemVyKCk7
CiAKICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHdlIGNhbiBnZXQgc3ludGhlc2l6
ZXIgdm9pY2VzIG9uIHRoZSBNYWMiKTsKIAo=
</data>
<flag name="review"
          id="208630"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="208982"
          type_id="3"
          status="-"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>