<?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>41518</bug_id>
          
          <creation_ts>2010-07-02 04:05:03 -0700</creation_ts>
          <short_desc>Speech input plumbing in webcore</short_desc>
          <delta_ts>2010-07-13 12:16:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>39485</blocked>
    
    <blocked>42047</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Satish Sampath">satish</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jorlow</cc>
    
    <cc>sam</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>245873</commentid>
    <comment_count>0</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-02 04:05:03 -0700</bug_when>
    <thetext>Adds the following:
- a SpeechInput class in WebCore to be used by the speech enabled HTML elements (which implement SpeechInputElementListener)
- a SpeechInputClient interface (defined in WebCore, implemented by WebKit) for WebCore to call into WebKit. This is available as a member of WebCore::Page, set by the platforms which support speech input.
- a SpeechInputListener interface for WebCore to receive events from WebKit

Also adds a click handler to the speech button which uses the above, and testing code with related DumpRenderTree additions and a layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245877</commentid>
    <comment_count>1</comment_count>
      <attachid>60359</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-02 04:33:32 -0700</bug_when>
    <thetext>Created attachment 60359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245878</commentid>
    <comment_count>2</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-02 04:34:26 -0700</bug_when>
    <thetext>All code changes are behind the speech input compile time flag (disabled by default).

More information about the speech input API proposal can be found in the following links:
 Parent bug: https://bugs.webkit.org/show_bug.cgi?id=39485
 Full API proposal: https://docs.google.com/View?id=dcfg79pz_5dhnp23f5
 Relevant discussions in the WHATWG list:
  - http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-May/026338.html
  - http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2010-June/026747.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245887</commentid>
    <comment_count>3</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-02 05:44:22 -0700</bug_when>
    <thetext>Adding Sam Weinig and Steve Block to review as they are familiar with similar plumbing code in client based geolocation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247066</commentid>
    <comment_count>4</comment_count>
      <attachid>60359</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-07-06 07:15:11 -0700</bug_when>
    <thetext>Comment on attachment 60359
Patch

LayoutTests/fast/forms/input-text-speechbutton.html:22
 +              layoutTestController.notifyDone();
if (window.layoutTestController)

LayoutTests/fast/forms/input-text-speechbutton.html:1
 +  &lt;html&gt;
I think we should be using script-tests for these kind of tests.

WebCore/Android.mk:383
 +  ifeq ($(ENABLE_INPUT_SPEECH), true)
No need to guard this. Contents of file should be guarded.

WebCore/html/HTMLInputElement.cpp:2777
 +          return hasAttribute(speechAttr) &amp;&amp; document()-&gt;page()-&gt;isSpeechInputSupported();
Do we need this extra check? Surely any platform that sets ENABLE(INPUT_SPEECH) will provide a speech client, and this entire method is guarded by ENABLE(INPUT_SPEECH).

WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp:170
 +  #if ENABLE(INPUT_SPEECH)
I think this shouldn&apos;t be guarded

WebKitTools/ChangeLog:13
 +          * DumpRenderTree/chromium/LayoutTestController.h:
I think that all new LayoutTestController methods need to be implemented for Mac.

WebKit/chromium/ChangeLog:5
 +          Speech input plumbing in webcore and webkit
Can we leave the WebKit/chromium changes for a separate patch to keep this one simpler?

WebCore/page/SpeechInput.h:45
 +  class SpeechInputElementListener {
Shouldn&apos;t this be named SpeechInputListener, as it listens to SpeechInput?

WebCore/page/SpeechInputClient.h:39
 +  class SpeechInputListener {
Shouldn&apos;t this be named SpeechInputClientListener, as it listens to SpeechInputClient?

WebCore/page/SpeechInputClient.h:42
 +      virtual void recognitionResult(const String&amp; result) = 0;
setRecognitionResult()?

WebCore/page/Page.h:155
 +          void setSpeechInputClient(SpeechInputClient* client) { m_speechInputClient = client; }
Is there any reason for the client to be reset, other than for testing purposes? If not, I don&apos;t think we need this method. The embedder can configure their SpeechInputClient to be mocked out without having to call into WebCore.

WebCore/page/Page.cpp:133
 +      , m_speechInputClient(0)
For other services (eg Geolocation, DeviceOrientation), the Page owns a FooController object, which holds a weak reference to the client, which is owned by the embedder. The controller takes care of multiplexing multiple requests from the page to the client. Here the Page holds a reference to the client directly. I see that you have a separate SpeechInputElement object for each input. Is there no need for a controller type object? Even if not, it might be best to add a SpeechInputController just to keep the pattern the same. It can have a single createSpeechElement(SpeechInputElementListener*) method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247224</commentid>
    <comment_count>5</comment_count>
      <attachid>60659</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-06 15:41:52 -0700</bug_when>
    <thetext>Created attachment 60659
Patch

Removed non-WebCore code from this patch and addressed Steve Block&apos;s other comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247231</commentid>
    <comment_count>6</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-06 16:08:20 -0700</bug_when>
    <thetext>Thanks for the review comments Steve. I have now removed all non-WebCore files from this patch and made most of the suggested changes. Here are replies for those which are not implemented:

WebCore/page/Page.h:155
 +          void setSpeechInputClient(SpeechInputClient* client) {
m_speechInputClient = client; }

&gt; Is there any reason for the client to be reset, other than for testing
&gt; purposes? If not, I don&apos;t think we need this method. The embedder can
&gt; configure their SpeechInputClient to be mocked out without having to
&gt; call into WebCore.

Testing was one of the main reasons, since there was a need to enable the mock SpeechInputClient when a layout test&apos;s JS code says so. Was your suggestion to always use the mock SpeechInputClient in LayoutTestController? If not, I am not sure how else the layout test can enable the mock client object without an additional layer of indirection in WebKit.
However, the other reason was the growing number of arguments to the constructor (8 already) and some of the clients passed in as null by majority of the callers. It seemed cleaner to move away from that model as new features get added.

WebCore/page/Page.cpp:133
 +      , m_speechInputClient(0)

&gt; For other services (eg Geolocation, DeviceOrientation), the Page
&gt; owns a FooController object, which holds a weak reference to the
&gt; client, which is owned by the embedder.

The controller model did not look like a good fit here since the speech interface requires 2-way communication between WebKit and WebCore, rather than how Geolocation for e.g. works (WebCore calling WebKit to get current location, the result would be same irrespective of how many ever callers invoke this method in WebCore, and all of them get broadcasted the same new location when the result comes in). Here we have each SpeechInput object getting invoked separately by SpeechInputClient when it has new events and no two SpeechInput objects will receive the same speech recognized result data. Effectively the SpeechInput class is the controller here, though there are multiple instances of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247596</commentid>
    <comment_count>7</comment_count>
      <attachid>60742</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-07 09:37:50 -0700</bug_when>
    <thetext>Created attachment 60742
Patch

per Sam Weinig&apos;s suggestion, removed TextControlInnerElements.* from this patch and moved the 2 Listener interfaces to their own files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247599</commentid>
    <comment_count>8</comment_count>
      <attachid>60744</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-07 09:43:42 -0700</bug_when>
    <thetext>Created attachment 60744
Patch

merged with latest master</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248120</commentid>
    <comment_count>9</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-07-08 03:08:17 -0700</bug_when>
    <thetext>&gt; Testing was one of the main reasons, since there was a need to enable the
&gt; mock SpeechInputClient when a layout test&apos;s JS code says so. Was your
&gt; suggestion to always use the mock SpeechInputClient in LayoutTestController?
Yes, or alternatively the embedder can respond to LayoutTestController calls and modify their own SpeechInputClient to mock things appropriately.

&gt; However, the other reason was the growing number of arguments to the
&gt; constructor (8 already) and some of the clients passed in as null by majority
&gt; of the callers.
Makes sense

&gt; Effectively the SpeechInput class is the controller here, though there are
&gt; multiple instances of it.
Makes sense

This patch looks fine to me. The decision on the last two points above are, I think, policy decisions about how closely we want to adhere to existing patterns. I don&apos;t think I have enough WebKit experience to make these decisions, so it would be good if Sam or somebody else with the necessary background could give the r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249821</commentid>
    <comment_count>10</comment_count>
      <attachid>60744</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-12 07:21:18 -0700</bug_when>
    <thetext>Comment on attachment 60744
Patch

steve is probably the best reviewer, but here are some drive by comments


WebCore/page/SpeechInputClientListener.h:14
 +   *     * Neither the name of Google Inc. nor the names of its
use 2 clause

WebCore/page/SpeechInputClient.h:14
 +   *     * Neither the name of Google Inc. nor the names of its
use 2 clause

WebCore/page/SpeechInput.h:14
 +   *     * Neither the name of Google Inc. nor the names of its
use 2 clause

WebCore/Android.mk:383
 +  	page/SpeechInput.cpp
need \

WebCore/GNUmakefile.am:2687
 +  	WebCore/page/SpeechInputListener.h \
alpha order

WebCore/WebCore.gypi:2034
 +              &apos;page/SpeechInputListener.h&apos;,
alpha order

WebCore/WebCore.pro:1605
 +      page/SpeechInputListener.h \
alpha

WebCore/WebCore.vcproj/WebCore.vcproj:22476
 +  				RelativePath=&quot;..\page\SpeechInputListener.h&quot;
alpha

WebCore/page/SpeechInput.h:45
 +  
extra new line

WebCore/page/SpeechInput.h:37
 +  #if ENABLE(INPUT_SPEECH)
put includes inside this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249875</commentid>
    <comment_count>11</comment_count>
      <attachid>61237</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-12 09:14:28 -0700</bug_when>
    <thetext>Created attachment 61237
Patch

Addressed Jeremy&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250426</commentid>
    <comment_count>12</comment_count>
      <attachid>61237</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-07-13 03:49:18 -0700</bug_when>
    <thetext>Comment on attachment 61237
Patch

It looks like you have guards in some headers, but not all. Is there a reason for this? If is builds either way, we should at least be consistent.

Also, why do you guard the inclusion of new files in GNUmakefile.am and WebCore.pro? If the source is guarded, there&apos;s no need for this. Looking at these build files, is seems that some features use guards, some don&apos;t. Jeremy, do you know what&apos;s expected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250427</commentid>
    <comment_count>13</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-13 03:55:58 -0700</bug_when>
    <thetext>Oops, yes I&apos;ll add ENABLE(INPUT_SPEECH) guards for the 2 headers which don&apos;t have it now. Regd the makefiles, I was trying to follow existing convention in those files and happy to remove the guards if you think they should be removed (yes the source files build either way since the code is under the guard).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250509</commentid>
    <comment_count>14</comment_count>
      <attachid>61377</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-13 08:13:15 -0700</bug_when>
    <thetext>Created attachment 61377
Patch

Addressed Steve&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250513</commentid>
    <comment_count>15</comment_count>
      <attachid>61377</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-07-13 08:18:06 -0700</bug_when>
    <thetext>Comment on attachment 61377
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250554</commentid>
    <comment_count>16</comment_count>
      <attachid>61377</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-07-13 09:24:13 -0700</bug_when>
    <thetext>Comment on attachment 61377
Patch

Looks like the EWS bots have given up on your patch.

cq+ but please watch the build bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250555</commentid>
    <comment_count>17</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-07-13 09:25:34 -0700</bug_when>
    <thetext>Thanks. Apparently the bots stop building the patch once it receives r+, so it looks like typically r+ and cq+ go together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250669</commentid>
    <comment_count>18</comment_count>
      <attachid>61377</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-13 12:16:45 -0700</bug_when>
    <thetext>Comment on attachment 61377
Patch

Clearing flags on attachment: 61377

Committed r63230: &lt;http://trac.webkit.org/changeset/63230&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250670</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-13 12:16:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60359</attachid>
            <date>2010-07-02 04:33:32 -0700</date>
            <delta_ts>2010-07-06 15:41:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41518-20100702123330.patch</filename>
            <type>text/plain</type>
            <size>51146</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ODhhNzA0YjNiMjM3MWI1ZjJkZWY0MDlmZGQ0OGE4ZWU5NzA5ZGE5Li5jYzJiYmM4
OTAzYzMxYjNlOTMyYjNmYzc0ZTFmNGFjOWVkN2Q5M2ExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDctMDIgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMYXlvdXQgdGVzdCBm
b3Igc3BlZWNoIGlucHV0IHBsdW1iaW5nIGluIHdlYmNvcmUgYW5kIHdlYmtpdCwgZGlzYWJsZWQg
YnkgZGVmYXVsdCBvbiBhbGwgcGxhdGZvcm1zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1MTgKKworICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQt
dGV4dC1zcGVlY2hidXR0b24tYWN0dWFsLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jt
cy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1sOiBBZGRlZCwgdGVzdHMgY2xpY2tpbmcgdGhl
IHNwZWVjaCBidXR0b24gd2l0aCBhIG1vY2sgc3BlZWNoIHNlcnZpY2UuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisK
IDIwMTAtMDctMDIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIENocm9taXVtIHRlc3QgZXhwZWN0YXRpb25zLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi1h
Y3R1YWwudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRv
bi1hY3R1YWwudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjN2ZjMGNjNjdmMThiMWRiMDkwMmI0ZmUwZmQyYjk5
MzBhYmJmZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXRleHQtc3BlZWNoYnV0dG9uLWFjdHVhbC50eHQKQEAgLTAsMCArMSw0IEBACitDbGlja2luZyB0
aGUgc3BlZWNoIGJ1dHRvbiBzaG91bGQgZmlsbCBpbiBtb2NrIHNwZWVjaC1yZWNvZ25pemVkIHRl
eHQuCisKKworUGljdHVyZXMgb2YgdGhlIG1vb24gLSBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI3
NDU4MTYyMzRjNDFhYTgzZWNiMzlmNjlkN2YwNmU2MzI0MTRjOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbApAQCAt
MCwwICsxLDM0IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5JbnB1dCBGaWVsZCB3aXRo
IFNwZWVjaCBpbnB1dC48L3RpdGxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoIlBpY3R1cmVzIG9mIHRo
ZSBtb29uIik7CisgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
cD4KKyAgICAgICAgQ2xpY2tpbmcgdGhlIHNwZWVjaCBidXR0b24gc2hvdWxkIGZpbGwgaW4gbW9j
ayBzcGVlY2gtcmVjb2duaXplZCB0ZXh0LgorICAgIDwvcD4KKyAgICA8aW5wdXQgdHlwZT0idGV4
dCIgaWQ9InRleHRmaWVsZCIgc3BlZWNoIG9uY2hhbmdlPSJvblJlc3VsdCh0aGlzLnZhbHVlKTsi
PgorICAgIDxwIGlkPSJyZXN1bHQiIHN0eWxlPSJtYXJnaW4tdG9wOiA2MHB4OyI+PC9wPgorICAg
IDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIG9uUmVzdWx0KHZhbHVlKSB7CisgICAgICAgICAg
ICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOworICAgICAg
ICAgICAgcmVzdWx0LmlubmVyVGV4dCA9IHZhbHVlICsgIiAtICIgKyAoKHZhbHVlID09ICJQaWN0
dXJlcyBvZiB0aGUgbW9vbiIpID8gIlBBU1MiIDogIkZBSUwiKTsKKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAod2lu
ZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICB2YXIgdGV4dGZpZWxkID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRleHRmaWVsZCIpOworICAgICAgICAgICAgdmFyIHggPSB0ZXh0Zmll
bGQub2Zmc2V0TGVmdCArIHRleHRmaWVsZC5vZmZzZXRXaWR0aCAtIDQ7CisgICAgICAgICAgICB2
YXIgeSA9IHRleHRmaWVsZC5vZmZzZXRUb3AgKyB0ZXh0ZmllbGQub2Zmc2V0SGVpZ2h0IC8gMjsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRl
eCBkYWEwNGFiYzIyMGQ0MjYyMWIzNjU3OTFiZjAyMTY5YmM5ZmYyMTZkLi5hZjk3MjFlODhlNTc0
YThjZjc5NjIxYmNlZDg0MjgxM2Y4ZDFhMzI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0yOTE0LDYgKzI5MTQsNyBA
QCBCVUdXSzQxMzExIFdJTiBMSU5VWCA6IGZhc3QvYm9yZGVycy9ib3JkZXJSYWRpdXNEb3VibGUw
OS5odG1sID0gSU1BR0UKIEJVRzQ0ODQ0OiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2UtbnVt
YmVyYW5kc3BlZWNoLmh0bWwgPSBJTUFHRStURVhUCiBCVUc0NDg0NDogZmFzdC9mb3Jtcy9pbnB1
dC1hcHBlYXJhbmNlLXNlYXJjaGFuZHNwZWVjaC5odG1sID0gSU1BR0UrVEVYVAogQlVHNDQ4NDQ6
IGZhc3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1zcGVlY2hidXR0b24uaHRtbCA9IElNQUdFK1RF
WFQKK0JVRzQ0ODQ0OiBmYXN0L2Zvcm1zL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWwgPSBU
RVhUCiAKIC8vIHY4IGJpbmRpbmdzIGZvciBkYXRhc2V0IG5lZWQgdG8gYmUgaW1wbGVtZW50ZWQu
CiBCVUc0ODEzMyA6ICBmYXN0L2RvbS9kYXRhc2V0LXhodG1sLnhodG1sID0gVEVYVApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBmNWIxZWU1NjRhYWNhZjc1ZDFjNmZiOTdiYjgzY2FmNDll
ZTkzNzJjLi5iYzEwNTg0ZThiOWEyNWFiNWE1OGQ1ZGI2ZmFkNzFhN2Y0YmIwNWM5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNTgyOCwzICs1ODI4LDQgQEAgZWRpdGluZy9wYXN0ZWJv
YXJkLzU3NjE1MzAtMS5odG1sCiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2UtbnVtYmVyYW5k
c3BlZWNoLmh0bWwKIGZhc3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1zZWFyY2hhbmRzcGVlY2gu
aHRtbAogZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJhbmNlLXNwZWVjaGJ1dHRvbi5odG1sCitmYXN0
L2Zvcm1zL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQKaW5kZXggZWJjMzM1MDMwYzVmNWVjNzI5ZGZmZmVjNTI3OWVlYmViNWVjMmJjYS4uNmYyYWE5
MjkyMWE2MGZlYmM4ODRkOWQ4YTkzZTk2ZTQyNjEzMWFkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQKQEAgLTMwMiw0ICszMDIsNCBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvNTc2MTUzMC0xLmh0
bWwKIGZhc3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1udW1iZXJhbmRzcGVlY2guaHRtbAogZmFz
dC9mb3Jtcy9pbnB1dC1hcHBlYXJhbmNlLXNlYXJjaGFuZHNwZWVjaC5odG1sCiBmYXN0L2Zvcm1z
L2lucHV0LWFwcGVhcmFuY2Utc3BlZWNoYnV0dG9uLmh0bWwKLQorZmFzdC9mb3Jtcy9pbnB1dC10
ZXh0LXNwZWVjaGJ1dHRvbi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA0YmU1ZjUz
NzIyYzQzMTg0YmY5MWMxMmQxMDA3YTUxZWFhMDQ3N2RkLi5lNjA0N2FiMDMyM2RkY2FkODAzOWZj
OWJjNTZjNTE4NjRiZmEwZTE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTU0MjUsMyAr
NTQyNSw0IEBAIGZhc3QvdGV4dC9iaWRpLWV4cGxpY2l0LWVtYmVkZGluZy1wYXN0LWVuZC5odG1s
CiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2UtbnVtYmVyYW5kc3BlZWNoLmh0bWwKIGZhc3Qv
Zm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1zZWFyY2hhbmRzcGVlY2guaHRtbAogZmFzdC9mb3Jtcy9p
bnB1dC1hcHBlYXJhbmNlLXNwZWVjaGJ1dHRvbi5odG1sCitmYXN0L2Zvcm1zL2lucHV0LXRleHQt
c3BlZWNoYnV0dG9uLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNWRjZmE3MzI2
ZDhiMTA5NThhZTZiZjdiNGIxNDRjNTA3ZWJkYTNmOS4uZmU4ZjEyZjJmZGE4NDcxMGQzM2Y5ZTM1
YWMzZTQzNGIzYzIwNDhjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTk0MCw0ICs5
NDAsNCBAQCBwcmludGluZy9wYWdlLWZvcm1hdC1kYXRhLmh0bWwKIGZhc3QvZm9ybXMvaW5wdXQt
YXBwZWFyYW5jZS1udW1iZXJhbmRzcGVlY2guaHRtbAogZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJh
bmNlLXNlYXJjaGFuZHNwZWVjaC5odG1sCiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc3Bl
ZWNoYnV0dG9uLmh0bWwKLQorZmFzdC9mb3Jtcy9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1s
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsKaW5k
ZXggZDFiNmE2ZDZkYzNhYjIzMzdlZWVmMDAxM2Y2Mzk0MGY5Y2I4NjFjOS4uNDM5YTkzNDViYjQy
NzEwMDdkZjlkZDY5ZWQwYTZhODZiZDhiYWRmMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lk
Lm1rCisrKyBiL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtMzc4LDcgKzM3OCwxNCBAQCBMT0NBTF9T
UkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlwYWdlL1NjcmVlbi5jcHAgXAogCXBh
Z2UvU2VjdXJpdHlPcmlnaW4uY3BwIFwKIAlwYWdlL1NldHRpbmdzLmNwcCBcCi0JcGFnZS9TcGF0
aWFsTmF2aWdhdGlvbi5jcHAgXAorCXBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCisKK2lmZXEg
KCQoRU5BQkxFX0lOUFVUX1NQRUVDSCksIHRydWUpCitMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NB
TF9TUkNfRklMRVMpIFwKKwlwYWdlL1NwZWVjaElucHV0LmNwcAorZW5kaWYKKworTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNw
cCBcCiAJcGFnZS9UaW1pbmcuY3BwIFwKIAlwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA3OWQ0MTEwODNiMjE0ZGJiOGJiYjA1MmZiMzhkMmYyYmNmMzBlNDRiLi41ODc2ZTk5MGQ3OWEx
MGNlMDQ4Yzk3MDdiMTJkYWFlMmYyNjk3NjkzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEwLTA3LTAyICBT
YXRpc2ggU2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3BlZWNoIGlucHV0IHBsdW1iaW5nIGluIHdl
YmNvcmUgYW5kIHdlYmtpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDE1MTgKKworICAgICAgICBBZGRzIHRoZSBmb2xsb3dpbmc6CisgICAgICAgIC0g
YSBTcGVlY2hJbnB1dCBjbGFzcyBpbiBXZWJDb3JlIHRvIGJlIHVzZWQgYnkgdGhlIHNwZWVjaCBl
bmFibGVkIEhUTUwgZWxlbWVudHMKKyAgICAgICAgLSBhIFNwZWVjaElucHV0Q2xpZW50IGludGVy
ZmFjZSAoZGVmaW5lZCBpbiBXZWJDb3JlLCBpbXBsZW1lbnRlZCBieSBXZWJLaXQpIGZvciBXZWJD
b3JlIHRvIGNhbGwgaW50byBXZWJLaXQuCisgICAgICAgICAgVGhpcyBpcyBhdmFpbGFibGUgYXMg
YSBtZW1iZXIgb2YgV2ViQ29yZTo6UGFnZSwgc2V0IGJ5IHRoZSBwbGF0Zm9ybXMgd2hpY2ggc3Vw
cG9ydCBzcGVlY2ggaW5wdXQuCisgICAgICAgIC0gYSBTcGVlY2hJbnB1dExpc3RlbmVyIGludGVy
ZmFjZSBmb3IgV2ViQ29yZSB0byByZWNlaXZlIGV2ZW50cyBmcm9tIFdlYktpdAorCisgICAgICAg
IFRlc3Q6IGZhc3QvZm9ybXMvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbAorCisgICAgICAg
ICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1NwZWVjaEVuYWJsZWQpOgorICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuaDogQWRkZWQgU3BlZWNoSW5wdXRDbGllbnQgbWVtYmVyIHZhcmlhYmxlIGFuZCBh
c3NvY2lhdGVkIG1ldGhvZHMuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRTcGVlY2hJbnB1
dENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzcGVlY2hJbnB1dENsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjppc1NwZWVjaElucHV0U3VwcG9ydGVkKToKKyAgICAgICAg
KiBwYWdlL1NwZWVjaElucHV0LmNwcDogQWRkZWQgbmV3IGNsYXNzIHRvIHByb3ZpZGUgc3BlZWNo
IEFQSSBzZXJ2aWNlcyB0byBIVE1MIGVsZW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
SW5wdXQ6OlNwZWVjaElucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0OjpyZWNv
cmRpbmdDb21wbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6cmVjb2duaXRp
b25SZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXQ6OnN0YXJ0UmVjb2duaXRp
b24pOgorICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXQuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hJbnB1dEVsZW1lbnRMaXN0ZW5lcjo6flNwZWVjaElucHV0RWxlbWVudExpc3Rl
bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Ojp+U3BlZWNoSW5wdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXQ6OmNsaWVudCk6CisgICAgICAgICogcGFnZS9TcGVl
Y2hJbnB1dENsaWVudC5oOiBBZGRlZCBuZXcgaW50ZXJmYWNlIGltcGxlbWVudGVkIGJ5IFdlYktp
dCB0byBidWJibGUgdXAgc3BlZWNoIEFQSSByZXF1ZXN0cyB0byB0aGUgZW1iZWRkZXIuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dExpc3RlbmVyOjp+U3BlZWNoSW5wdXRMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudDo6flNwZWVjaElucHV0Q2xpZW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDogQWRk
ZWQgY2xpY2sgZXZlbnQgaGFuZGxlciBhbmQgc3BlZWNoIGlucHV0IGNhbGxiYWNrcy4KKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpJbnB1dEZpZWxkU3Bl
ZWNoQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0
dG9uRWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hC
dXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
cHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpzcGVlY2hJbnB1dCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3BlZWNoSW5wdXRSZWNvcmRpbmdD
b21wbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVu
dDo6c3BlZWNoSW5wdXRSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAgICogcmVuZGVyaW5nL1Rl
eHRDb250cm9sSW5uZXJFbGVtZW50cy5oOgorCiAyMDEwLTA2LTI4ICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXou
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQppbmRleCBmNTNmYjU1MTEzOTNmOGNjOTEzZGQzMGE1MWQ1NzhkZTA2MjUyNDIyLi5jNGE2
NGRiZDMwNWFjYzRkYmNlYWUyMGNkZWVhZjEzMDgyOWIyOWE1IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTI2NjcsNiAr
MjY2NywxMSBAQCBpZiBFTkFCTEVfSU5QVVRfU1BFRUNICiBGRUFUVVJFX0RFRklORVMgKz0gRU5B
QkxFX0lOUFVUX1NQRUVDSD0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX0lOUFVUX1NQ
RUVDSD0xCiAKK3dlYmNvcmVfc291cmNlcyArPSBcCisJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0
LmNwcCBcCisJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmggXAorCVdlYkNvcmUvcGFnZS9TcGVl
Y2hJbnB1dENsaWVudC5oCisKIGVsc2UKIAogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9J
TlBVVF9TUEVFQ0g9MApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCBkMGQ3MzZkYTJkN2ZmNDFkYTE1ZDU4NDdjODY5Y2ExODk4YWI0
MjJjLi42MzMxMTM0YzRmNjdkYjc5ODMwZTgxYjgzZTFhMDIwNDM3ZjkxZGQ1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjAy
MCw2ICsyMDIwLDkgQEAKICAgICAgICAgICAgICdwYWdlL1NldHRpbmdzLmgnLAogICAgICAgICAg
ICAgJ3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCcsCiAgICAgICAgICAgICAncGFnZS9TcGF0aWFs
TmF2aWdhdGlvbi5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXQuY3BwJywKKyAg
ICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0LmgnLAorICAgICAgICAgICAgJ3BhZ2UvU3BlZWNo
SW5wdXRDbGllbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcCcs
CiAgICAgICAgICAgICAncGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgnLAogICAgICAgICAgICAgJ3Bh
Z2UvVGltaW5nLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29y
ZS9XZWJDb3JlLnBybwppbmRleCAzMTg3N2NiZjMxOThlNmE1MjhjNGZjMTE5ZGEzNjY5NDkxYzc3
ZGVjLi5jNTNhMDUwMTk1OGY0YmQzNjZmMjY2YTgxMDMyNGY4NTdiYTg4N2RmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE1OTYs
NiArMTU5Niw4IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaCBcCiAg
ICAgcGFnZS9TZXR0aW5ncy5oIFwKICAgICBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmggXAorICAg
IHBhZ2UvU3BlZWNoSW5wdXQuaCBcCisgICAgcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oIFwKICAg
ICBwYWdlL1dpbmRvd0ZlYXR1cmVzLmggXAogICAgIHBhZ2UvV29ya2VyTmF2aWdhdG9yLmggXAog
ICAgIHBhZ2UvWFNTQXVkaXRvci5oIFwKQEAgLTI1MjAsNiArMjUyMiw3IEBAIGNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9TSEFSRURfV09SS0VSUz0xKSB7CiAKIGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9JTlBVVF9TUEVFQ0g9MSkgewogICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBwYWdlL1Nw
ZWVjaElucHV0LmNwcCBcCiAgICAgICAgIHJlbmRlcmluZy9SZW5kZXJJbnB1dFNwZWVjaC5jcHAK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZmE2NzFlYTc4NTQz
MjI1Yjk4NTllNDFkMDkxYWQyZmRjYzhmZjAyNS4uNGM5YjA3MzY3ZjEwYzhmYmM2Y2ZjOTBmYTcz
OWZiZDQ4MDIxOTMyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0y
MjQ2MSw2ICsyMjQ2MSwxOCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNwZWVjaElucHV0LmNwcCINCisJCQkJPg0KKwkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3BlZWNoSW5wdXQuaCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBh
Z2VcU3BlZWNoSW5wdXRDbGllbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3VzcGVuZGFibGVUaW1lci5jcHAiDQogCQkJCT4N
CiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBiM2Y2ZmNmNWQyYjk1MDRjNDM2YzUyYmM3ZTRjZWZmY2ZjZDg2MzhkLi40ODA0ZWQ4M2Iw
NWZjZGQ3MDcxMzI2MjlkYTdmOGYyZTUwZjBiOTRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMzMCw2ICsxMzMwLDkgQEAKIAkJNzU0MTMzQUExMDJF
MDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTMzQTkxMDJFMDBGNDAwMDc1RDAw
IC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwICovOyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNG
MDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1NTNDRkU5MTA4RjQ3M0YwMEVBMjgxRSAv
KiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVj
b3JkRmFjdG9yeS5jcHAgKi87IH07CisJCTc1NzhGOTBCMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVl
Y2hJbnB1dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3NTc4RjkwODExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwICovOyB9OworCQk3
NTc4RjkwQzExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTA5MTFEREYyNjkwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dC5oICovOyB9OworCQk3NTc4RjkwRDExRERGMjY5MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oICov
OyB9OwogCQk3NTc5M0U4MzBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgwMEQwQ0Uw
QjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuY3BwICovOyB9OwogCQk3NTc5M0U4NDBEMENFMEIz
MDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4MTBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50
LmggKi87IH07CiAJCTc1NzkzRUM4MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VD
NjBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuY3BwICovOyB9OwpAQCAtNzA1MSw2
ICs3MDU0LDkgQEAKIAkJNzU0MTMzQTkxMDJFMDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTND
RkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NzU3OEY5MDgxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaElucHV0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJ
bnB1dENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1
dENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc5M0U4MDBEMENFMEIz
MDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBNZXNzYWdlRXZlbnQuY3BwOyBwYXRoID0gZG9tL01lc3NhZ2VFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFD
IC8qIE1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTWVz
c2FnZUV2ZW50Lmg7IHBhdGggPSBkb20vTWVzc2FnZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSBTT1VS
Q0VfUk9PVDsgfTsKIAkJNzU3OTNFODIwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE1lc3NhZ2VFdmVudC5pZGw7IHBhdGggPSBkb20v
TWVzc2FnZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtMTIyODAs
NiArMTIyODYsOSBAQAogCQkJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0aW5ncy5o
ICovLAogCQkJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5j
cHAgKi8sCiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9u
LmggKi8sCisJCQkJNzU3OEY5MDgxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCAq
LywKKwkJCQk3NTc4RjkwOTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCAqLywKKwkJ
CQk3NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCAqLywKIAkJ
CQk2MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJ
CQkJNjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKIAkJ
CQk4QUY0RTU1ODExREM1QTYzMDAwRUQzREUgLyogVGltaW5nLmNwcCAqLywKQEAgLTE5Njk4LDYg
KzE5NzA3LDggQEAKIAkJCQk4QTgxQkY4NTExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2Fk
VGltaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QUY0RTU1NjExREM1QTM2MDAwRUQzREUgLyog
TmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEFGNEU1NUMxMURDNUE2MzAwMEVEM0RF
IC8qIFRpbWluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU3OEY5MEMxMURERjI2OTAwRDkzM0M1
IC8qIFNwZWVjaElucHV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTc4RjkwRDExRERGMjY5MDBE
OTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjIwMzcsNiAr
MjIwNDgsNyBAQAogCQkJCUE4QTU2NEE2MTFEQzBFNTkwMDNBQzJGMCAvKiBIVE1MRm9ybWF0dGlu
Z0VsZW1lbnRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBRjRFNTU1MTFEQzVBMzYwMDBF
RDNERSAvKiBOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThBRjRFNTVCMTFEQzVB
NjMwMDBFRDNERSAvKiBUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU3OEY5MEIxMURE
RjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCmluZGV4IDRlM2IyMzc5ZGUzZTYzNDI3MTI5YmJlZDcxNTY3NzViMDRh
MmYwMjIuLjhiYjc3ODc2ZTAxY2YwNzJkOGE3ZTU4NTM3MTAxYjQyZWQ3YmFmMjQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTI3NzQsNyArMjc3NCw3IEBAIGJvb2wgSFRNTElucHV0
RWxlbWVudDo6aXNTcGVlY2hFbmFibGVkKCkgY29uc3QKICAgICBjYXNlIFNFQVJDSDoKICAgICBj
YXNlIFRFTEVQSE9ORToKICAgICBjYXNlIFRFWFQ6Ci0gICAgICAgIHJldHVybiBoYXNBdHRyaWJ1
dGUoc3BlZWNoQXR0cik7CisgICAgICAgIHJldHVybiBoYXNBdHRyaWJ1dGUoc3BlZWNoQXR0cikg
JiYgZG9jdW1lbnQoKS0+cGFnZSgpLT5pc1NwZWVjaElucHV0U3VwcG9ydGVkKCk7CiAgICAgY2Fz
ZSBCVVRUT046CiAgICAgY2FzZSBDSEVDS0JPWDoKICAgICBjYXNlIENPTE9SOgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDc0
ZDQwNzdjZDk2N2MyMDQ4NGFiOTViZWQ3OWVmYjU0ZDcyMGY1ODcuLmJiOGE0ZjcxYzE3MjQyMWVl
ZjcxNmY5N2Q3OTQ1NDY1YmI4MDAxYjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRl
ICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVudC5oIgogI2luY2x1
ZGUgIlN0cmluZ0hhc2guaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5j
bHVkZSAiV2lkZ2V0LmgiCkBAIC0xMjgsNiArMTI5LDkgQEAgUGFnZTo6UGFnZShDaHJvbWVDbGll
bnQqIGNocm9tZUNsaWVudCwgQ29udGV4dE1lbnVDbGllbnQqIGNvbnRleHRNZW51Q2xpZW50LCBF
ZGkKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgICwgbV9kZXZpY2VPcmllbnRh
dGlvbihuZXcgRGV2aWNlT3JpZW50YXRpb24odGhpcywgZGV2aWNlT3JpZW50YXRpb25DbGllbnQp
KQogI2VuZGlmCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICAsIG1fc3BlZWNoSW5wdXRD
bGllbnQoMCkKKyNlbmRpZgogICAgICwgbV9zZXR0aW5ncyhuZXcgU2V0dGluZ3ModGhpcykpCiAg
ICAgLCBtX3Byb2dyZXNzKG5ldyBQcm9ncmVzc1RyYWNrZXIpCiAgICAgLCBtX2JhY2tGb3J3YXJk
TGlzdChCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSh0aGlzKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9QYWdlLmggYi9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGI5MzEwOTI0ZjM0MGU0NDk1
Yzg2ODczYTg1NzBlY2ZiYWRkZmY1ODAuLjk5M2NkOGJkYjM0MzZlOGJlMDQ5YzUzMWYxZjdkZTFm
ZTUxZTI5ZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvV2ViQ29yZS9w
YWdlL1BhZ2UuaApAQCAtNjgsNiArNjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xh
c3MgVmlzaWJsZVNlbGVjdGlvbjsKICAgICBjbGFzcyBTZWxlY3Rpb25Db250cm9sbGVyOwogICAg
IGNsYXNzIFNldHRpbmdzOworICAgIGNsYXNzIFNwZWVjaElucHV0Q2xpZW50OwogCiAjaWYgRU5B
QkxFKERPTV9TVE9SQUdFKQogICAgIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7CkBAIC0xNTAsNiAr
MTUxLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQogICAgICAgICBEZXZpY2VPcmllbnRhdGlvbiogZGV2aWNlT3JpZW50YXRpb24oKSBjb25z
dCB7IHJldHVybiBtX2RldmljZU9yaWVudGF0aW9uLmdldCgpOyB9CiAjZW5kaWYKKyNpZiBFTkFC
TEUoSU5QVVRfU1BFRUNIKQorICAgICAgICB2b2lkIHNldFNwZWVjaElucHV0Q2xpZW50KFNwZWVj
aElucHV0Q2xpZW50KiBjbGllbnQpIHsgbV9zcGVlY2hJbnB1dENsaWVudCA9IGNsaWVudDsgfQor
ICAgICAgICBTcGVlY2hJbnB1dENsaWVudCogc3BlZWNoSW5wdXRDbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX3NwZWVjaElucHV0Q2xpZW50OyB9CisgICAgICAgIGJvb2wgaXNTcGVlY2hJbnB1dFN1
cHBvcnRlZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9zcGVlY2hJbnB1dENsaWVudDsgfQorI2VuZGlm
CiAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGluZ3Mu
Z2V0KCk7IH0KICAgICAgICAgUHJvZ3Jlc3NUcmFja2VyKiBwcm9ncmVzcygpIGNvbnN0IHsgcmV0
dXJuIG1fcHJvZ3Jlc3MuZ2V0KCk7IH0KICAgICAgICAgCkBAIC0yNjcsNiArMjczLDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAgICAgICAg
IE93blB0cjxEZXZpY2VPcmllbnRhdGlvbj4gbV9kZXZpY2VPcmllbnRhdGlvbjsKICNlbmRpZgor
I2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBtX3Nw
ZWVjaElucHV0Q2xpZW50OworI2VuZGlmCiAgICAgICAgIE93blB0cjxTZXR0aW5ncz4gbV9zZXR0
aW5nczsKICAgICAgICAgT3duUHRyPFByb2dyZXNzVHJhY2tlcj4gbV9wcm9ncmVzczsKICAgICAg
ICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwIGIvV2ViQ29yZS9w
YWdlL1NwZWVjaElucHV0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDQ3MDRlZWUzYTFjODA4ODUwOGMwYTdk
MzY0MGZhMTliNmZkMDk3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElu
cHV0LmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNw
ZWVjaElucHV0LmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1NwZWVjaElucHV0OjpTcGVlY2hJbnB1dChTcGVlY2hJbnB1dENsaWVudCogY2xpZW50
LCBTcGVlY2hJbnB1dEVsZW1lbnRMaXN0ZW5lciogbGlzdGVuZXIpCisgICAgOiBtX2NsaWVudChj
bGllbnQpCisgICAgLCBtX2xpc3RlbmVyKGxpc3RlbmVyKQoreworfQorCit2b2lkIFNwZWVjaElu
cHV0OjpyZWNvcmRpbmdDb21wbGV0ZSgpCit7CisgICAgbV9saXN0ZW5lci0+c3BlZWNoSW5wdXRS
ZWNvcmRpbmdDb21wbGV0ZSgpOworfQorCit2b2lkIFNwZWVjaElucHV0OjpyZWNvZ25pdGlvblJl
c3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCkKK3sKKyAgICBtX2xpc3RlbmVyLT5zcGVlY2hJbnB1
dFJlY29nbml0aW9uUmVzdWx0KHJlc3VsdCk7Cit9CisKK2Jvb2wgU3BlZWNoSW5wdXQ6OnN0YXJ0
UmVjb2duaXRpb24oKQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIG1fY2xp
ZW50LT5zdGFydFJlY29nbml0aW9uKHRoaXMpOworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oIGIvV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTg1NTZhNjc1OWI1Zjg0OTlmM2ZjNWM3MGE2YmE0MTE5ZjY0
NWQ2MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oCkBAIC0w
LDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFNwZWVjaElucHV0X2gKKyNkZWZpbmUgU3BlZWNoSW5wdXRfaAor
CisjaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KKworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoSW5wdXQ7CitjbGFzcyBTdHJpbmc7CisKKy8vIEludGVyZmFjZSB0byBi
ZSBpbXBsZW1lbnRlZCBieSB0aGUgZWxlbWVudCB3aGljaCBpbnZva2VzIFNwZWVjaElucHV0Lgor
Y2xhc3MgU3BlZWNoSW5wdXRFbGVtZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHZpcnR1YWwg
flNwZWVjaElucHV0RWxlbWVudExpc3RlbmVyKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNwZWVj
aElucHV0UmVjb3JkaW5nQ29tcGxldGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNwZWVjaElu
cHV0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpID0gMDsKK307CisKKy8v
IFRoaXMgY2xhc3MgY29ubmVjdHMgdGhlIGlucHV0IGVsZW1lbnRzIHJlcXVpcmluZyBzcGVlY2gg
aW5wdXQgd2l0aCB0aGUgcGxhdGZvcm0gc3BlY2lmaWMKKy8vIHNwZWVjaCByZWNvZ25pdGlvbiBl
bmdpbmUuIEl0IHByb3ZpZGVzIG1ldGhvZHMgZm9yIHRoZSBpbnB1dCBlbGVtZW50cyB0byBhY3Rp
dmF0ZSBzcGVlY2gKKy8vIHJlY29nbml0aW9uIGFuZCBtZXRob2RzIGZvciB0aGUgc3BlZWNoIHJl
Y29nbml0aW9uIGVuZ2luZSB0byByZXR1cm4gYmFjayB0aGUgcmVzdWx0cy4KK2NsYXNzIFNwZWVj
aElucHV0IDogcHVibGljIE5vbmNvcHlhYmxlLCBwdWJsaWMgU3BlZWNoSW5wdXRMaXN0ZW5lciB7
CitwdWJsaWM6CisgICAgU3BlZWNoSW5wdXQoU3BlZWNoSW5wdXRDbGllbnQqLCBTcGVlY2hJbnB1
dEVsZW1lbnRMaXN0ZW5lciopOworICAgIHZpcnR1YWwgflNwZWVjaElucHV0KCkgeyB9CisKKyAg
ICAvLyBNZXRob2RzIGludm9rZWQgYnkgdGhlIGlucHV0IGVsZW1lbnRzLgorICAgIHZpcnR1YWwg
Ym9vbCBzdGFydFJlY29nbml0aW9uKCk7CisKKyAgICAvLyBTcGVlY2hJbnB1dExpc3RlbmVyIG1l
dGhvZHMuCisgICAgdmlydHVhbCB2b2lkIHJlY29yZGluZ0NvbXBsZXRlKCk7CisgICAgdmlydHVh
bCB2b2lkIHJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYpOworCitwcm90ZWN0ZWQ6Cisg
ICAgU3BlZWNoSW5wdXRDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9
CisKK3ByaXZhdGU6CisgICAgU3BlZWNoSW5wdXRDbGllbnQqIG1fY2xpZW50OworICAgIFNwZWVj
aElucHV0RWxlbWVudExpc3RlbmVyKiBtX2xpc3RlbmVyOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKKworI2VuZGlmIC8vIFNw
ZWVjaElucHV0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudC5o
IGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTRhYmY1ODE0
YzhjZjgyMDhmODRlZjc3ZTQxMTgzYzE4NDkyN2UxNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNwZWVjaElucHV0
Q2xpZW50X2gKKyNkZWZpbmUgU3BlZWNoSW5wdXRDbGllbnRfaAorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFN0cmluZzsKKworLy8gUHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciB0aGUg
ZW1iZWRkZXIgdG8gY2FsbCBpbnRvIFdlYkNvcmUuCitjbGFzcyBTcGVlY2hJbnB1dExpc3RlbmVy
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkaW5nQ29tcGxldGUoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KSA9
IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5TcGVlY2hJbnB1dExpc3RlbmVyKCkgeyB9
Cit9OworCisvLyBQcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIFNwZWVjaElucHV0IHRvIGNhbGwg
aW50byB0aGUgZW1iZWRkZXIuCitjbGFzcyBTcGVlY2hJbnB1dENsaWVudCB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCBib29sIHN0YXJ0UmVjb2duaXRpb24oU3BlZWNoSW5wdXRMaXN0ZW5lciogbGlz
dGVuZXIpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgflNwZWVjaElucHV0Q2xpZW50
KCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTcGVlY2hJ
bnB1dENsaWVudF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmNwcAppbmRleCAzNmUzMGFmZTRjZDQxODZmM2VlZWZkOWQ5MGQ2YWNkOWE1Nzk0MGQ1Li5l
ZTAwYjhlNTc5NmM5ZWM3MTUxMDY5ZWVmYWQ3N2Q4Yjc3MjAyZmExIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJS
ZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIgog
CkBAIC0zMjEsNiArMzIyLDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCogZXZlbnQpCiAKIGlubGluZSBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxl
bWVudDo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQog
ICAgIDogVGV4dENvbnRyb2xJbm5lckVsZW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX2NhcHR1cmlu
ZyhmYWxzZSkKIHsKIH0KIApAQCAtMzI5LDEwICszMzEsNjcgQEAgUGFzc1JlZlB0cjxJbnB1dEZp
ZWxkU3BlZWNoQnV0dG9uRWxlbWVudD4gSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZSgKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50KGRvY3VtZW50KSk7CiB9CiAKK3ZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6
OmRldGFjaCgpCit7CisgICAgaWYgKG1fY2FwdHVyaW5nKSB7CisgICAgICAgIGlmIChGcmFtZSog
ZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKQorICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFu
ZGxlcigpLT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUoMCk7ICAgICAgCisgICAgfQorICAg
IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpkZXRhY2goKTsKK30KKwogdm9pZCBJbnB1dEZpZWxk
U3BlZWNoQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7
Ci0gICAgLy8gRklYTUU6IFN0YXJ0IHNwZWVjaCByZWNvZ25pdGlvbiBoZXJlLgotICAgIEhUTUxE
aXZFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAvLyBPbiBtb3VzZSBk
b3duLCBzZWxlY3QgdGhlIHRleHQgYW5kIHNldCBmb2N1cy4KKyAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5v
ZGUoKSk7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2
ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4o
ZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CisgICAgICAgIGlmIChyZW5kZXJlcigp
ICYmIHJlbmRlcmVyKCktPnZpc2libGVUb0hpdFRlc3RpbmcoKSkgeworICAgICAgICAgICAgaWYg
KEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpIHsKKyAgICAgICAgICAgICAgICBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNlRXZlbnRzTm9kZSh0aGlzKTsK
KyAgICAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgaW5wdXQtPmZvY3VzKCk7CisgICAgICAgIGlucHV0LT5zZWxlY3QoKTsK
KyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgfQorICAgIC8vIE9uIG1v
dXNlIHVwLCBzdGFydCBzcGVlY2ggcmVjb2duaXRpb24uCisgICAgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYg
c3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikg
eworICAgICAgICBpZiAobV9jYXB0dXJpbmcgJiYgcmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT52
aXNpYmxlVG9IaXRUZXN0aW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBk
b2N1bWVudCgpLT5mcmFtZSgpKSB7CisgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxl
cigpLT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUoMCk7CisgICAgICAgICAgICAgICAgbV9j
YXB0dXJpbmcgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChob3ZlcmVk
KCkpIHsKKyAgICAgICAgICAgICAgICBzcGVlY2hJbnB1dCgpLT5zdGFydFJlY29nbml0aW9uKCk7
CisgICAgICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWV2ZW50LT5kZWZhdWx0SGFuZGxlZCgp
KQorICAgICAgICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7Cit9
CisKK1NwZWVjaElucHV0KiBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3BlZWNoSW5w
dXQoKQoreworICAgIGlmICghbV9zcGVlY2hJbnB1dCkKKyAgICAgICAgbV9zcGVlY2hJbnB1dC5z
ZXQobmV3IFNwZWVjaElucHV0KGRvY3VtZW50KCktPnBhZ2UoKS0+c3BlZWNoSW5wdXRDbGllbnQo
KSwgdGhpcykpOworICAgIHJldHVybiBtX3NwZWVjaElucHV0LmdldCgpOworfQorCit2b2lkIElu
cHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpzcGVlY2hJbnB1dFJlY29yZGluZ0NvbXBsZXRl
KCkKK3sKKyAgICAvLyBGSVhNRTogQWRkIFVJIGZlZWRiYWNrIGhlcmUgdG8gaW5kaWNhdGUgdGhh
dCBhdWRpbyByZWNvcmRpbmcgc3RvcHBlZCBhbmQgcmVjb2duaXRpb24gaXMKKyAgICAvLyBpbiBw
cm9ncmVzcy4KK30KKwordm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c3BlZWNo
SW5wdXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCkKK3sKKyAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFk
b3dBbmNlc3Rvck5vZGUoKSk7CisgICAgaW5wdXQtPnNldFZhbHVlKHJlc3VsdCk7CisgICAgaW5w
dXQtPmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOworICAgIHJlbmRlcmVyKCktPnJl
cGFpbnQoKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBiL1dlYkNvcmUv
cmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCmluZGV4IDE4ODRhMzQ3OGU0ZmIx
NTY0Y2M3ZTQwZWVmMmYwMjRmYjJlMjdmYTAuLjk0ZDY1OTk1NjdiNGU2MTA5N2ZiYjkxZGMxM2Ey
YzE2MTA4YWZjODkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5oCkBAIC0yOCw2ICsyOCw3IEBACiAjZGVmaW5lIFRleHRDb250cm9sSW5uZXJFbGVtZW50
c19oCiAKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTA3LDE0ICsxMDgsMjUgQEAgcHJpdmF0
ZToKIAogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAKLWNsYXNzIElucHV0RmllbGRTcGVlY2hC
dXR0b25FbGVtZW50IDogcHVibGljIFRleHRDb250cm9sSW5uZXJFbGVtZW50IHsKK2NsYXNzIElu
cHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50CisgICAgOiBwdWJsaWMgVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnQKKyAgICAsIHB1YmxpYyBTcGVlY2hJbnB1dEVsZW1lbnRMaXN0ZW5lciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRs
ZXIoRXZlbnQqKTsKIAorICAgIC8vIFNwZWVjaElucHV0RWxlbWVudExpc3RlbmVyIG1ldGhvZHMu
CisgICAgdm9pZCBzcGVlY2hJbnB1dFJlY29yZGluZ0NvbXBsZXRlKCk7CisgICAgdm9pZCBzcGVl
Y2hJbnB1dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KTsKKwogcHJpdmF0
ZToKICAgICBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudChEb2N1bWVudCopOworICAgIHZp
cnR1YWwgdm9pZCBkZXRhY2goKTsKKyAgICBTcGVlY2hJbnB1dCogc3BlZWNoSW5wdXQoKTsKKwor
ICAgIGJvb2wgbV9jYXB0dXJpbmc7CisgICAgT3duUHRyPFNwZWVjaElucHV0PiBtX3NwZWVjaElu
cHV0OwogfTsKIAogI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCA0MTVlNmI3YmYxYWU5NTVlNWI1OGNkZTJjOGY4MzQ3NzA5YzNjNjk5Li44YzA3MDZhYWVhMjRm
ZDQyMDI0Y2ZlZmExYmY1OTQyYzhhN2RhOWRkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBA
QAorMjAxMC0wNy0wMiAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwZWVjaCBpbnB1
dCBwbHVtYmluZyBpbiB3ZWJjb3JlIGFuZCB3ZWJraXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTE4CisKKyAgICAgICAgQWRkcyBhbiBlbXB0eSBT
cGVlY2hJbnB1dENsaWVudCBjbGFzcyBhbmQgYSBtb2NrIGNsYXNzIGZvciBsYXlvdXQgdGVzdHMu
CisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6Cisg
ICAgICAgICogc3JjL1dlYlNwZWVjaElucHV0Q2xpZW50LmNwcDogQWRkZWQgZW1wdHkgU3BlZWNo
SW5wdXRDbGllbnQgY2xhc3MuCisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaElucHV0Q2xpZW50
OjpXZWJTcGVlY2hJbnB1dENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaElucHV0
Q2xpZW50OjpzdGFydFJlY29nbml0aW9uKToKKyAgICAgICAgKiBzcmMvV2ViU3BlZWNoSW5wdXRD
bGllbnQuaDogQWRkZWQuCisgICAgICAgICogc3JjL1dlYlNwZWVjaElucHV0Q2xpZW50TW9jay5j
cHA6IEFkZGVkIG1vY2sgU3BlZWNoSW5wdXRDbGllbnQgY2xhc3MgZm9yIHRlc3RpbmcuCisgICAg
ICAgIChXZWJLaXQ6OldlYlNwZWVjaElucHV0Q2xpZW50TW9jazo6V2ViU3BlZWNoSW5wdXRDbGll
bnRNb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpzdGFy
dFJlY29nbml0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoSW5wdXRDbGllbnRNb2Nr
Ojp0aW1lckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViU3BlZWNoSW5wdXRDbGllbnRNb2Nr
OjpzZXRSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAgICogc3JjL1dlYlNwZWVjaElucHV0Q2xp
ZW50TW9jay5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuaDoKKwogMjAxMC0wNy0wMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjYyMzQ5Lgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cAppbmRleCBlMmRhMWI0ODRkOTk1N2JkYmQ4MDAxMmQ5ZjAxYjQyOTg3YjI5MjJk
Li4zNjE2YTI5OWZlNDBiN2Q1ZmFjZGU5ODg1NmY0NzlmYzMwM2FiMTQ4IDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cApAQCAtMTk5LDYgKzE5OSw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJTb2NrZXRT
dHJlYW1FcnJvci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlNvY2tldFN0cmVhbUhh
bmRsZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlNvY2tldFN0cmVhbUhhbmRsZUNs
aWVudC5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYlNwZWVjaElucHV0Q2xpZW50TW9j
ay5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlN0b3JhZ2VBcmVhLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYlN0b3JhZ2VOYW1lc3BhY2UuaCcsCkBAIC00MTQsNiArNDE1LDkg
QEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYlNldHRpbmdzSW1wbC5oJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYlNoYXJlZFdvcmtlckltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJTcGVlY2hJ
bnB1dENsaWVudC5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViU3BlZWNoSW5wdXRDbGll
bnQuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJTcGVlY2hJbnB1dENsaWVudE1vY2suY3Bw
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlN0b3JhZ2VBcmVhSW1wbC5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViU3RvcmFnZUFyZWFJbXBsLmgnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViU3RvcmFnZUV2ZW50RGlzcGF0Y2hlckltcGwuY3BwJywKZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3LmgKaW5kZXggMWVmZDc1MmU1MzBhNGU2YjJiYTVmZjEzMDQ5MjJjYWE5NWIxZDZiMC4uMzQ1
NTdmNTQxZDFkYTA0ZDBkN2JhMTkwODVhM2M0MmJjNDZmZmZmYSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWV3LmgKQEAgLTMwNyw2ICszMDcsOSBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBzdGF0
aWMgdm9pZCB3aWxsRW50ZXJNb2RhbExvb3AoKTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lk
IGRpZEV4aXRNb2RhbExvb3AoKTsKIAorICAgIC8vIFNwZWVjaCBpbnB1dCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHZpcnR1YWwg
dm9pZCBzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgV2ViU3RyaW5nJiByZXN1bHQpID0g
MDsKKwogICAgIC8vIEdQVSBhY2NlbGVyYXRpb24gc3VwcG9ydCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgLy8gUmV0dXJucyB0aGUgR0xFUzJDb250
ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIFdlYlZpZXcuIE9uZSB3aWxsIGJlCmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q2xpZW50LmNwcCBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNjIyMTdh
MDU5M2M3NmZiNzdkY2Q1ZWEwMDBlODcwN2JmYjMwYzAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q2xpZW50LmNwcApAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNwZWVjaElucHV0Q2xpZW50LmgiCisK
KyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViU3Bl
ZWNoSW5wdXRDbGllbnQ6OldlYlNwZWVjaElucHV0Q2xpZW50KCkKK3sKK30KKworYm9vbCBXZWJT
cGVlY2hJbnB1dENsaWVudDo6c3RhcnRSZWNvZ25pdGlvbihXZWJDb3JlOjpTcGVlY2hJbnB1dExp
c3RlbmVyKiBsaXN0ZW5lcikKK3sKKyAgICAvLyBGSVhNRTogSW52b2tlIHRoZSBlbWJlZGRlciB0
byBzdGFydCBzcGVlY2ggcmVjb2duaXRpb24uCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q2xpZW50LmggYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRkMTEz
M2U3Yzc0YjdjMjIyZDE4MTBiNDk3MzkxODI3YjY4YTQ5MQotLS0gL2Rldi9udWxsCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDbGllbnQuaApAQCAtMCwwICsxLDUyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJTcGVlY2hJbnB1dENsaWVudF9oCisjZGVmaW5lIFdlYlNwZWVjaElucHV0Q2xpZW50X2gK
KworI2luY2x1ZGUgPHBhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaD4KKworI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTcGVlY2hJbnB1dENs
aWVudCA6IHB1YmxpYyBXZWJDb3JlOjpTcGVlY2hJbnB1dENsaWVudCB7CitwdWJsaWM6CisgICAg
V2ViU3BlZWNoSW5wdXRDbGllbnQoKTsKKworICAgIC8vIFNwZWVjaElucHV0Q2xpZW50IG1ldGhv
ZHMuCisgICAgYm9vbCBzdGFydFJlY29nbml0aW9uKFdlYkNvcmU6OlNwZWVjaElucHV0TGlzdGVu
ZXIqIGxpc3RlbmVyKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKKyNlbmRpZiAvLyBXZWJTcGVlY2hJbnB1dENsaWVudF9o
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q2xpZW50TW9j
ay5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzA3ZDI0NTBlMjJkNmEwOGUyZWM4MDY2NGMzMjUxZGYxZmI5NDk0YQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDbGllbnRN
b2NrLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YlNwZWVjaElucHV0Q2xpZW50TW9jay5oIgorCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKwor
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJT
cGVlY2hJbnB1dENsaWVudE1vY2s6OldlYlNwZWVjaElucHV0Q2xpZW50TW9jaygpCisgICAgOiBt
X3JlY29yZGluZyhmYWxzZSkKKyAgICAsIG1fdGltZXIodGhpcywgJldlYlNwZWVjaElucHV0Q2xp
ZW50TW9jazo6dGltZXJGaXJlZCkKK3sKK30KKworYm9vbCBXZWJTcGVlY2hJbnB1dENsaWVudE1v
Y2s6OnN0YXJ0UmVjb2duaXRpb24oV2ViQ29yZTo6U3BlZWNoSW5wdXRMaXN0ZW5lciogbGlzdGVu
ZXIpCit7CisgICAgbV9saXN0ZW5lciA9IGxpc3RlbmVyOworICAgIG1fcmVjb3JkaW5nID0gdHJ1
ZTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
dm9pZCBXZWJTcGVlY2hJbnB1dENsaWVudE1vY2s6OnRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8
V2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrPiopCit7CisgICAgaWYgKG1fcmVjb3JkaW5nKSB7Cisg
ICAgICAgIG1fcmVjb3JkaW5nID0gZmFsc2U7CisgICAgICAgIG1fbGlzdGVuZXItPnJlY29yZGlu
Z0NvbXBsZXRlKCk7CisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIH0gZWxz
ZSB7CisgICAgICAgIG1fbGlzdGVuZXItPnJlY29nbml0aW9uUmVzdWx0KG1fcmVjb2duaXRpb25S
ZXN1bHQpOworICAgIH0KK30KKwordm9pZCBXZWJTcGVlY2hJbnB1dENsaWVudE1vY2s6OnNldFJl
Y29nbml0aW9uUmVzdWx0KGNvbnN0IFdlYlN0cmluZyYgcmVzdWx0KQoreworICAgIG1fcmVjb2du
aXRpb25SZXN1bHQgPSByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNw
ZWVjaElucHV0Q2xpZW50TW9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwODE0ZDI2MjVkMjEyZmQ3NGZjYWU2
MjRlZGNjOTAwNDE4Y2QyZDkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNwZWVjaElucHV0Q2xpZW50TW9jay5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlNw
ZWVjaElucHV0Q2xpZW50TW9ja19oCisjZGVmaW5lIFdlYlNwZWVjaElucHV0Q2xpZW50TW9ja19o
CisKKyNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVudC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisj
aW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrIDogcHVibGlj
IFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJTcGVlY2hJbnB1
dENsaWVudE1vY2soKTsKKworICAgIC8vIFNwZWVjaElucHV0Q2xpZW50IG1ldGhvZHMuCisgICAg
Ym9vbCBzdGFydFJlY29nbml0aW9uKFdlYkNvcmU6OlNwZWVjaElucHV0TGlzdGVuZXIqKTsKKwor
ICAgIHZvaWQgc2V0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgV2ViU3RyaW5nJiByZXN1bHQpOwor
Citwcml2YXRlOgorICAgIHZvaWQgdGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxXZWJTcGVlY2hJ
bnB1dENsaWVudE1vY2s+Kik7CisKKyAgICBXZWJDb3JlOjpUaW1lcjxXZWJTcGVlY2hJbnB1dENs
aWVudE1vY2s+IG1fdGltZXI7CisgICAgYm9vbCBtX3JlY29yZGluZzsKKyAgICBXZWJDb3JlOjpT
cGVlY2hJbnB1dExpc3RlbmVyKiBtX2xpc3RlbmVyOworICAgIFdlYlN0cmluZyBtX3JlY29nbml0
aW9uUmVzdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoSU5QVVRfU1BFRUNIKQorCisjZW5kaWYgLy8gV2ViU3BlZWNoSW5wdXRDbGllbnRNb2NrX2gK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYjAwMTA3NjBlMDExZjE1MDFkY2Rl
ZDU2YzZkZmQzNjQ2NWIyMGQ2My4uNjYyMjYyYmNmNTMxNzBhZDBhMjhjNTYzODczZTFmYmE2MmJl
YTQ0MiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTEwMCw2ICsxMDAsOCBA
QAogI2luY2x1ZGUgIldlYlBvcHVwTWVudUltcGwuaCIKICNpbmNsdWRlICJXZWJSZWN0LmgiCiAj
aW5jbHVkZSAiV2ViU2V0dGluZ3NJbXBsLmgiCisjaW5jbHVkZSAiV2ViU3BlZWNoSW5wdXRDbGll
bnQuaCIKKyNpbmNsdWRlICJXZWJTcGVlY2hJbnB1dENsaWVudE1vY2suaCIKICNpbmNsdWRlICJX
ZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKICNpbmNsdWRlICJXZWJWaWV3Q2xp
ZW50LmgiCkBAIC0yNDksNiArMjUxLDkgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZp
ZXdDbGllbnQqIGNsaWVudCwgV2ViRGV2VG9vbHNBZ2VudENsaWVudCogZGV2VG9vbHMKICAgICAs
IG1fbGF5ZXJSZW5kZXJlcigwKQogICAgICwgbV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3Rp
dmUoZmFsc2UpCiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgICwgbV9zcGVl
Y2hJbnB1dENsaWVudE1vY2soMCkKKyNlbmRpZgogICAgICwgbV9nbGVzMkNvbnRleHQoMCkKIHsK
ICAgICAvLyBXZWJLaXQvd2luL1dlYlZpZXcuY3BwIGRvZXMgdGhlIHNhbWUgdGhpbmcsIGV4Y2Vw
dCB0aGV5IGNhbGwgdGhlCkBAIC0yMTk1LDQgKzIyMDAsMTcgQEAgV2ViR0xFUzJDb250ZXh0KiBX
ZWJWaWV3SW1wbDo6Z2xlczJDb250ZXh0KCkKICAgICByZXR1cm4gbV9nbGVzMkNvbnRleHQuZ2V0
KCk7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25z
dCBXZWJTdHJpbmcmIHJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIGlm
ICghbV9zcGVlY2hJbnB1dENsaWVudE1vY2spIHsKKyAgICAgICAgbV9zcGVlY2hJbnB1dENsaWVu
dE1vY2suc2V0KG5ldyBXZWJTcGVlY2hJbnB1dENsaWVudE1vY2soKSk7CisgICAgICAgIHBhZ2Uo
KS0+c2V0U3BlZWNoSW5wdXRDbGllbnQobV9zcGVlY2hJbnB1dENsaWVudE1vY2suZ2V0KCkpOwor
ICAgIH0KKyAgICBtX3NwZWVjaElucHV0Q2xpZW50TW9jay0+c2V0UmVjb2duaXRpb25SZXN1bHQo
cmVzdWx0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZW5kaWYKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggZGIy
YTFkMjc2MWFjN2Q0NzAwNTg5MTlmN2NmNTFkMzQ1Y2NhYzBlZS4uMjY5MzllNmNkNmQzZTRlM2Mx
Y2EyNDQzNDNmN2E5MDkzYmY0MGVjZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAt
NzksNiArNzksNyBAQCBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVu
dDsKIGNsYXNzIFdlYk1vdXNlV2hlZWxFdmVudDsKIGNsYXNzIFdlYlNldHRpbmdzSW1wbDsKK2Ns
YXNzIFdlYlNwZWVjaElucHV0Q2xpZW50TW9jazsKIGNsYXNzIFdlYlRvdWNoRXZlbnQ7CiAKIGNs
YXNzIFdlYlZpZXdJbXBsIDogcHVibGljIFdlYlZpZXcsIHB1YmxpYyBSZWZDb3VudGVkPFdlYlZp
ZXdJbXBsPiB7CkBAIC0xODQsNiArMTg1LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5hY3RpdmVGb3JlZ3JvdW5kQ29sb3IpOwogICAg
IHZpcnR1YWwgdm9pZCBwZXJmb3JtQ3VzdG9tQ29udGV4dE1lbnVBY3Rpb24odW5zaWduZWQgYWN0
aW9uKTsKICAgICB2aXJ0dWFsIFdlYkdMRVMyQ29udGV4dCogZ2xlczJDb250ZXh0KCk7CisgICAg
dmlydHVhbCB2b2lkIHNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJl
c3VsdCk7CiAKICAgICAvLyBXZWJWaWV3SW1wbAogCkBAIC00OTcsNiArNDk5LDEwIEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIGNvbnN0IFdlYklucHV0RXZlbnQqIG1fY3VycmVudElucHV0RXZlbnQ7
CiAKICAgICBPd25QdHI8V2ViR0xFUzJDb250ZXh0PiBtX2dsZXMyQ29udGV4dDsKKworI2lmIEVO
QUJMRShJTlBVVF9TUEVFQ0gpCisgICAgT3duUHRyPFdlYlNwZWVjaElucHV0Q2xpZW50TW9jaz4g
bV9zcGVlY2hJbnB1dENsaWVudE1vY2s7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGM1YzUxNGI2MDMxM2FkMmU1ZDE3MWNhMThmYTMwMzM5YjExMTk2N2QuLmI1
NmZiY2JmYjg0YWQyZGQ2N2Q1MzM2ZmQxNDIwNzQ0M2M3ZTkyYWUgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxMC0wNy0wMiAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwZWVjaCBp
bnB1dCBwbHVtYmluZyBpbiB3ZWJjb3JlIGFuZCB3ZWJraXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTE4CisKKyAgICAgICAgRXhwb3NlcyBtb2Nr
IHNwZWVjaCBpbnB1dCBtZXRob2RzIGZvciBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKwogMjAxMC0w
Ny0wMSAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggOWJhNjQyMTYxM2U5NDg2Mzc3ODY5NTkyNjVjZjM5YzViYTI0YmNm
Ny4uNWRjNzlhNjEzYmNkMjY3NGMxZGY1OTBmYWFmMjNhMzRhM2ExYTJiYiAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcApAQCAtMTY3LDYgKzE2NywxMCBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJz
ZXRNb2NrR2VvbG9jYXRpb25FcnJvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dl
b2xvY2F0aW9uRXJyb3IpOwogICAgIGJpbmRNZXRob2QoImFib3J0TW9kYWwiLCAmTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmFib3J0TW9kYWwpOwogCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAg
ICBiaW5kTWV0aG9kKCJzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQiLCAmTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCk7CisjZW5kaWYKKwogICAgIC8vIFRoZSBm
YWxsYmFjayBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYW4gdW5rbm93biBtZXRob2QgaXMgaW52b2tl
ZC4KICAgICBiaW5kRmFsbGJhY2tNZXRob2QoJkxheW91dFRlc3RDb250cm9sbGVyOjpmYWxsYmFj
a01ldGhvZCk7CiAKQEAgLTEzMTgsMyArMTMyMiwxMyBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjphYm9ydE1vZGFsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YQogewogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQorCisjaWYgRU5BQkxFKElOUFVUX1NQRUVD
SCkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdChj
b25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQorewor
ICAgIHJlc3VsdC0+c2V0TnVsbCgpOworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpICE9IDEgfHwg
IWFyZ3VtZW50c1swXS5pc1N0cmluZygpKQorICAgICAgICByZXR1cm47CisgICAgbV9zaGVsbC0+
d2ViVmlldygpLT5zZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY3BwVmFyaWFudFRvV2ViU3RyaW5n
KGFyZ3VtZW50c1swXSkpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAyMjc0
MWQ1MTcxYjNhMTAzMmY4M2NiYTg4MTEyM2QxMGMzNTU1Y2Y1Li4yZjY5OWQ4NWNkNzQwZTM1MmU5
NmI5Yzc0YjZjZWEzN2M1MmY0YjY0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTI4OSw2ICsy
ODksMTEgQEAgcHVibGljOgogICAgIC8vIEVtcHR5IHN0dWIgbWV0aG9kIHRvIGtlZXAgcGFyaXR5
IHdpdGggb2JqZWN0IG1vZGVsIGV4cG9zZWQgYnkgZ2xvYmFsIExheW91dFRlc3RDb250cm9sbGVy
LgogICAgIHZvaWQgYWJvcnRNb2RhbChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CiAKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIC8vIFNwZWVjaCBpbnB1dCByZWxh
dGVkIGZ1bmN0aW9ucy4KKyAgICB2b2lkIHNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisjZW5kaWYKKwogcHVibGljOgogICAgIC8v
IFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUgbm90IGV4cG9zZWQgdG8gSmF2YVNjcmlwdC4KICAg
ICB2b2lkIHNldFdvcmtRdWV1ZUZyb3plbihib29sIGZyb3plbikgeyBtX3dvcmtRdWV1ZS5zZXRG
cm96ZW4oZnJvemVuKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60659</attachid>
            <date>2010-07-06 15:41:52 -0700</date>
            <delta_ts>2010-07-07 09:37:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41518-20100706234149.patch</filename>
            <type>text/plain</type>
            <size>25600</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBkMWI2YTZkNmRjM2FiMjMzN2VlZWYwMDEzZjYzOTQwZjljYjg2MWM5Li44OGJiNWRmYmU5NTJl
YzVkZTJiNWU2NzgyZjkwZmU5MjMwN2ZjNjQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zNzksNiArMzc5LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAg
XAogCXBhZ2UvU2V0dGluZ3MuY3BwIFwKIAlwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCisJ
cGFnZS9TcGVlY2hJbnB1dC5jcHAKIAlwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwIFwKIAlwYWdl
L1RpbWluZy5jcHAgXAogCXBhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZlMzk5NGM2
NWVjZmI4MzE5MGJjZWZjZWE2OWZmNjIxNzM4ODI3Y2QuLjMzMzgzMGE2YTQyNmM1YWQwNzgwMmNh
YmIxYWRlNzQxYzFlMDhkYWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTAtMDctMDIgIFNhdGlzaCBTYW1w
YXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTcGVlY2ggaW5wdXQgcGx1bWJpbmcgaW4gd2ViY29yZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1MTgKKworICAg
ICAgICBBZGRzIHRoZSBmb2xsb3dpbmc6CisgICAgICAgIC0gYSBTcGVlY2hJbnB1dCBjbGFzcyBp
biBXZWJDb3JlIHRvIGJlIHVzZWQgYnkgdGhlIHNwZWVjaCBlbmFibGVkIEhUTUwgZWxlbWVudHMK
KyAgICAgICAgLSBhIFNwZWVjaElucHV0Q2xpZW50IGludGVyZmFjZSAoZGVmaW5lZCBpbiBXZWJD
b3JlLCBpbXBsZW1lbnRlZCBieSBXZWJLaXQpIGZvciBXZWJDb3JlIHRvIGNhbGwgaW50byBXZWJL
aXQuCisgICAgICAgICAgVGhpcyBpcyBhdmFpbGFibGUgYXMgYSBtZW1iZXIgb2YgV2ViQ29yZTo6
UGFnZSwgc2V0IGJ5IHRoZSBwbGF0Zm9ybXMgd2hpY2ggc3VwcG9ydCBzcGVlY2ggaW5wdXQuCisg
ICAgICAgIC0gYSBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyIGludGVyZmFjZSBmb3IgV2ViQ29y
ZSB0byByZWNlaXZlIGV2ZW50cyBmcm9tIFdlYktpdAorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
dGhlIHJlbGV2YW50IExheW91dFRlc3RDb250cm9sbGVyIGJpbmRpbmdzIHdpbGwgYmUgYWRkZWQg
aW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwv
SFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50
Ojppc1NwZWVjaEVuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDogQWRkZWQgU3BlZWNo
SW5wdXRDbGllbnQgbWVtYmVyIHZhcmlhYmxlIGFuZCBhc3NvY2lhdGVkIG1ldGhvZHMuCisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpzZXRTcGVlY2hJbnB1dENsaWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpzcGVlY2hJbnB1dENsaWVudCk6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1
dC5jcHA6IEFkZGVkIG5ldyBjbGFzcyB0byBwcm92aWRlIHNwZWVjaCBBUEkgc2VydmljZXMgdG8g
SFRNTCBlbGVtZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0OjpTcGVlY2hJbnB1
dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6cmVjb3JkaW5nQ29tcGxldGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXQ6OnNldFJlY29nbml0aW9uUmVzdWx0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0OjpzdGFydFJlY29nbml0aW9uKToKKyAgICAgICAg
KiBwYWdlL1NwZWVjaElucHV0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5w
dXRMaXN0ZW5lcjo6flNwZWVjaElucHV0TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoSW5wdXQ6On5TcGVlY2hJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6
Y2xpZW50KToKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0Q2xpZW50Lmg6IEFkZGVkIG5ldyBp
bnRlcmZhY2UgaW1wbGVtZW50ZWQgYnkgV2ViS2l0IHRvIGJ1YmJsZSB1cCBzcGVlY2ggQVBJIHJl
cXVlc3RzIHRvIHRoZSBlbWJlZGRlci4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xp
ZW50TGlzdGVuZXI6On5TcGVlY2hJbnB1dENsaWVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaElucHV0Q2xpZW50Ojp+U3BlZWNoSW5wdXRDbGllbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOiBBZGRlZCBjbGljayBldmVudCBo
YW5kbGVyIGFuZCBzcGVlY2ggaW5wdXQgY2FsbGJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZXRh
Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRGaWVsZFNwZWVjaEJ1
dHRvbkVsZW1lbnQ6OnNwZWVjaElucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRT
cGVlY2hCdXR0b25FbGVtZW50OjpzcGVlY2hJbnB1dFJlY29yZGluZ0NvbXBsZXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpzcGVlY2hJbnB1dFNl
dFJlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnRzLmg6CisKIDIwMTAtMDctMDYgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rh
dm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExv
cGV6LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggN2RiOTcwNGM3OTk1MDcwMzIxMTcwNzI3MjA3ZDQzMDg2ZWUxODhiMS4u
NDYwNWVjYzZkMjVlMmM5MTI4YWJhMjI3Yzg1YzYwNDMxZjhiYWQxYiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yNjc2
LDYgKzI2NzYsMTEgQEAgaWYgRU5BQkxFX0lOUFVUX1NQRUVDSAogRkVBVFVSRV9ERUZJTkVTICs9
IEVOQUJMRV9JTlBVVF9TUEVFQ0g9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9JTlBV
VF9TUEVFQ0g9MQogCit3ZWJjb3JlX3NvdXJjZXMgKz0gXAorCVdlYkNvcmUvcGFnZS9TcGVlY2hJ
bnB1dC5jcHAgXAorCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oIFwKKwlXZWJDb3JlL3BhZ2Uv
U3BlZWNoSW5wdXRDbGllbnQuaAorCiBlbHNlCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFC
TEVfSU5QVVRfU1BFRUNIPTAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZjkyMWQxYjNkODMwN2VmZTc3OWJmZmFhNDcxYmExY2Jl
MDRmZjg5Ny4uZTQ5YjUwZjA0ZDA4YTViZWVjMzdkYzExZDlhOWJiMTI5ZGVhMDEyZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTIwMjQsNiArMjAyNCw5IEBACiAgICAgICAgICAgICAncGFnZS9TZXR0aW5ncy5oJywKICAgICAg
ICAgICAgICdwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwJywKKyAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0LmNwcCcs
CisgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dC5oJywKKyAgICAgICAgICAgICdwYWdlL1Nw
ZWVjaElucHV0Q2xpZW50LmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3VzcGVuZGFibGVUaW1lci5j
cHAnLAogICAgICAgICAgICAgJ3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oJywKICAgICAgICAgICAg
ICdwYWdlL1RpbWluZy5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dl
YkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggODI5OTg4OTI4NmIxZjliNmRjNjc2YzRmMTdlYjk5MzA5
M2FmYzdmZC4uODgyN2RiOWJjMWJlYTM1MGNhOWM2NDY5YzFlMDAyZDA5ZmQxMTJkMiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0x
NTk3LDYgKzE1OTcsOCBAQCBIRUFERVJTICs9IFwKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luLmgg
XAogICAgIHBhZ2UvU2V0dGluZ3MuaCBcCiAgICAgcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oIFwK
KyAgICBwYWdlL1NwZWVjaElucHV0LmggXAorICAgIHBhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaCBc
CiAgICAgcGFnZS9XaW5kb3dGZWF0dXJlcy5oIFwKICAgICBwYWdlL1dvcmtlck5hdmlnYXRvci5o
IFwKICAgICBwYWdlL1hTU0F1ZGl0b3IuaCBcCkBAIC0yNTIxLDYgKzI1MjMsNyBAQCBjb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfU0hBUkVEX1dPUktFUlM9MSkgewogCiBjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfSU5QVVRfU1BFRUNIPTEpIHsKICAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgcGFn
ZS9TcGVlY2hJbnB1dC5jcHAgXAogICAgICAgICByZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2gu
Y3BwCiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDk0ZmFiM2Rm
OWVkZjg1OWUwODVmNzQ3NTBmZTE4NWVhYjllZDliZGUuLjAwZDAxZWIwZDgxODkyNzNlYzFjMTFl
ZTU4OWUxNDNmZTk4ZTk5YWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtMjI0NjUsNiArMjI0NjUsMTggQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxTcGVlY2hJbnB1dC5jcHAiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNwZWVjaElucHV0
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXFNwZWVjaElucHV0Q2xpZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFN1c3BlbmRhYmxlVGltZXIuY3BwIg0KIAkJ
CQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNzhiMjMwMWI1ZDczZmFhYjQ1NTUyMGM3Y2ViMWFkNGY0NmRiNzAzNy4uZGQ3Yjdm
OWZkN2QzOTM0MmEzZGM2YmRmMWJkNWNmZGFkZWMxMWJmMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMzEsNiArMTMzMSw5IEBACiAJCTc1NDEzM0FB
MTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NDEzM0E5MTAyRTAwRjQwMDA3
NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCAqLzsgfTsKIAkJNzU1M0NGRTgxMDhG
NDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8q
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICovOyB9OwogCQk3NTUzQ0ZFOTEwOEY0NzNGMDBFQTI4
MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuY3BwICovOyB9OworCQk3NTc4RjkwQjExRERGMjY5MDBEOTMzQzUgLyog
U3BlZWNoSW5wdXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzU3OEY5MDgxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCAqLzsgfTsK
KwkJNzU3OEY5MEMxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkwOTExRERGMjY5MDBEOTMz
QzUgLyogU3BlZWNoSW5wdXQuaCAqLzsgfTsKKwkJNzU3OEY5MEQxMURERjI2OTAwRDkzM0M1IC8q
IFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQu
aCAqLzsgfTsKIAkJNzU3OTNFODMwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4MDBE
MENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLzsgfTsKIAkJNzU3OTNFODQwRDBD
RTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VF
dmVudC5oICovOyB9OwogCQk3NTc5M0VDODBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3
OTNFQzYwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmNwcCAqLzsgfTsKQEAgLTcw
NTQsNiArNzA1Nyw5IEBACiAJCTc1NDEzM0E5MTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTc1NzhGOTA4MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hJbnB1dC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTc1NzhGOTA5MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
SW5wdXRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OTNFODAwRDBD
RTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gTWVzc2FnZUV2ZW50LmNwcDsgcGF0aCA9IGRvbS9NZXNzYWdlRXZlbnQu
Y3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTc1NzkzRTgxMEQwQ0UwQjMwMDdG
QzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE1lc3NhZ2VFdmVudC5oOyBwYXRoID0gZG9tL01lc3NhZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0g
U09VUkNFX1JPT1Q7IH07CiAJCTc1NzkzRTgyMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZl
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBNZXNzYWdlRXZlbnQuaWRsOyBwYXRoID0g
ZG9tL01lc3NhZ2VFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTEy
Mjg3LDYgKzEyMjkzLDkgQEAKIAkJCQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGlu
Z3MuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRp
b24uY3BwICovLAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdh
dGlvbi5oICovLAorCQkJCTc1NzhGOTA4MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5j
cHAgKi8sCisJCQkJNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggKi8s
CisJCQkJNzU3OEY5MEExMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi8s
CiAJCQkJNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICov
LAogCQkJCTYyQzEyMTdCMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8s
CiAJCQkJOEFGNEU1NTgxMURDNUE2MzAwMEVEM0RFIC8qIFRpbWluZy5jcHAgKi8sCkBAIC0xOTcw
Niw2ICsxOTcxNSw4IEBACiAJCQkJOTdERDREODcwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTcyRTAxMTEzNkU4Q0UwMDYyQTUzMyAvKiBab29t
TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjg4NUU4RDUxMUUwNkREMjAwOUZGQkY0IC8qIElu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU3OEY5
MEMxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk3
NTc4RjkwRDExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjIwNDYsNiArMjIwNTcsNyBAQAogCQkJCTk3REQ0RDg2MEZERjRENkUwMEVDRjlB
NCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI4ODVFOEQ0MTFFMDZERDIw
MDlGRkJGNCAvKiBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNEY0RjVGRkIxMUNCRDJFMTAwQTE4NkJGIC8qIFJlbW90ZUluc3BlY3RvckZyb250
ZW5kMi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTc4RjkwQjExRERGMjY5MDBEOTMzQzUgLyog
U3BlZWNoSW5wdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAgYi9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggOWJkYmU3OTEyYjJhMDBhODA0
ZmYxNGQ2OTNlY2RiNjE5NDczOGQ2NC4uN2Q1OTc3ZmYyZjQ1MGY4ZjU1MTQwZGMwNmE1Yzc2Njc1
MmViMGJlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcApAQCAtNjAsNiArNjAsNyBAQAogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgorI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50LmgiCiAjaW5jbHVkZSAiU3RyaW5nSGFzaC5o
IgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIK
QEAgLTEzOSw2ICsxNDAsOSBAQCBQYWdlOjpQYWdlKENocm9tZUNsaWVudCogY2hyb21lQ2xpZW50
LCBDb250ZXh0TWVudUNsaWVudCogY29udGV4dE1lbnVDbGllbnQsIEVkaQogI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCiAgICAgLCBtX2RldmljZU9yaWVudGF0aW9uKG5ldyBEZXZpY2VP
cmllbnRhdGlvbih0aGlzLCBkZXZpY2VPcmllbnRhdGlvbkNsaWVudCkpCiAjZW5kaWYKKyNpZiBF
TkFCTEUoSU5QVVRfU1BFRUNIKQorICAgICwgbV9zcGVlY2hJbnB1dENsaWVudCgwKQorI2VuZGlm
CiAgICAgLCBtX3NldHRpbmdzKG5ldyBTZXR0aW5ncyh0aGlzKSkKICAgICAsIG1fcHJvZ3Jlc3Mo
bmV3IFByb2dyZXNzVHJhY2tlcikKICAgICAsIG1fYmFja0ZvcndhcmRMaXN0KEJhY2tGb3J3YXJk
TGlzdDo6Y3JlYXRlKHRoaXMpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1dl
YkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggYjkzMTA5MjRmMzQwZTQ0OTVjODY4NzNhODU3MGVjZmJh
ZGRmZjU4MC4uOTQzNDc4MWVkZDI2Nzg0YjdkNDhjNWExNDU5MDU1OTg0ZGZmNWM0MSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC02
OCw2ICs2OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBWaXNpYmxlU2VsZWN0
aW9uOwogICAgIGNsYXNzIFNlbGVjdGlvbkNvbnRyb2xsZXI7CiAgICAgY2xhc3MgU2V0dGluZ3M7
CisgICAgY2xhc3MgU3BlZWNoSW5wdXRDbGllbnQ7CiAKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0Up
CiAgICAgY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKQEAgLTE1MCw2ICsxNTEsMTAgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAgICAgICAgIERl
dmljZU9yaWVudGF0aW9uKiBkZXZpY2VPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2
aWNlT3JpZW50YXRpb24uZ2V0KCk7IH0KICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gp
CisgICAgICAgIHZvaWQgc2V0U3BlZWNoSW5wdXRDbGllbnQoU3BlZWNoSW5wdXRDbGllbnQqIGNs
aWVudCkgeyBtX3NwZWVjaElucHV0Q2xpZW50ID0gY2xpZW50OyB9CisgICAgICAgIFNwZWVjaElu
cHV0Q2xpZW50KiBzcGVlY2hJbnB1dENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoSW5w
dXRDbGllbnQ7IH0KKyNlbmRpZgogICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MoKSBjb25zdCB7
IHJldHVybiBtX3NldHRpbmdzLmdldCgpOyB9CiAgICAgICAgIFByb2dyZXNzVHJhY2tlciogcHJv
Z3Jlc3MoKSBjb25zdCB7IHJldHVybiBtX3Byb2dyZXNzLmdldCgpOyB9CiAgICAgICAgIApAQCAt
MjY3LDYgKzI3Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQogICAgICAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb24+IG1fZGV2aWNlT3Jp
ZW50YXRpb247CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgICAgICBTcGVl
Y2hJbnB1dENsaWVudCogbV9zcGVlY2hJbnB1dENsaWVudDsKKyNlbmRpZgogICAgICAgICBPd25Q
dHI8U2V0dGluZ3M+IG1fc2V0dGluZ3M7CiAgICAgICAgIE93blB0cjxQcm9ncmVzc1RyYWNrZXI+
IG1fcHJvZ3Jlc3M7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElu
cHV0LmNwcCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDJmZWMx
NDFkMDRiNmU0ZDBhZDY1YzMwNzFmZTJhNWIyOTdlM2U3ZQotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTcGVlY2hJbnB1dC5oIgorCisjaWYgRU5BQkxFKElOUFVUX1NQRUVD
SCkKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hJbnB1dDo6U3BlZWNoSW5wdXQoU3BlZWNo
SW5wdXRDbGllbnQqIGNsaWVudCwgU3BlZWNoSW5wdXRMaXN0ZW5lciogbGlzdGVuZXIpCisgICAg
OiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX2xpc3RlbmVyKGxpc3RlbmVyKQoreworfQorCit2
b2lkIFNwZWVjaElucHV0OjpyZWNvcmRpbmdDb21wbGV0ZSgpCit7CisgICAgbV9saXN0ZW5lci0+
c3BlZWNoSW5wdXRSZWNvcmRpbmdDb21wbGV0ZSgpOworfQorCit2b2lkIFNwZWVjaElucHV0Ojpz
ZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCkKK3sKKyAgICBtX2xpc3Rl
bmVyLT5zcGVlY2hJbnB1dFNldFJlY29nbml0aW9uUmVzdWx0KHJlc3VsdCk7Cit9CisKK2Jvb2wg
U3BlZWNoSW5wdXQ6OnN0YXJ0UmVjb2duaXRpb24oKQoreworICAgIGlmIChtX2NsaWVudCkKKyAg
ICAgICAgcmV0dXJuIG1fY2xpZW50LT5zdGFydFJlY29nbml0aW9uKHRoaXMpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KElOUFVUX1NQRUVDSCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oIGIv
V2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJiYTBiMzZmMjEwNmIwZTg4
NTE0N2E1ODE5OGY5MjI5Y2Q1YWZiZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9T
cGVlY2hJbnB1dC5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNwZWVjaElucHV0X2gKKyNkZWZp
bmUgU3BlZWNoSW5wdXRfaAorCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnQuaCIKKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoSW5wdXQ7CitjbGFzcyBTdHJpbmc7CisK
Ky8vIEludGVyZmFjZSB0byBiZSBpbXBsZW1lbnRlZCBieSB0aGUgZWxlbWVudCB3aGljaCBpbnZv
a2VzIFNwZWVjaElucHV0LgorY2xhc3MgU3BlZWNoSW5wdXRMaXN0ZW5lciB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+U3BlZWNoSW5wdXRMaXN0ZW5lcigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBz
cGVlY2hJbnB1dFJlY29yZGluZ0NvbXBsZXRlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzcGVl
Y2hJbnB1dFNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KSA9IDA7Cit9
OworCisvLyBUaGlzIGNsYXNzIGNvbm5lY3RzIHRoZSBpbnB1dCBlbGVtZW50cyByZXF1aXJpbmcg
c3BlZWNoIGlucHV0IHdpdGggdGhlIHBsYXRmb3JtIHNwZWNpZmljCisvLyBzcGVlY2ggcmVjb2du
aXRpb24gZW5naW5lLiBJdCBwcm92aWRlcyBtZXRob2RzIGZvciB0aGUgaW5wdXQgZWxlbWVudHMg
dG8gYWN0aXZhdGUgc3BlZWNoCisvLyByZWNvZ25pdGlvbiBhbmQgbWV0aG9kcyBmb3IgdGhlIHNw
ZWVjaCByZWNvZ25pdGlvbiBlbmdpbmUgdG8gcmV0dXJuIGJhY2sgdGhlIHJlc3VsdHMuCitjbGFz
cyBTcGVlY2hJbnB1dCA6IHB1YmxpYyBOb25jb3B5YWJsZSwgcHVibGljIFNwZWVjaElucHV0Q2xp
ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIFNwZWVjaElucHV0KFNwZWVjaElucHV0Q2xpZW50
KiwgU3BlZWNoSW5wdXRMaXN0ZW5lciopOworICAgIHZpcnR1YWwgflNwZWVjaElucHV0KCkgeyB9
CisKKyAgICAvLyBNZXRob2RzIGludm9rZWQgYnkgdGhlIGlucHV0IGVsZW1lbnRzLgorICAgIHZp
cnR1YWwgYm9vbCBzdGFydFJlY29nbml0aW9uKCk7CisKKyAgICAvLyBTcGVlY2hJbnB1dENsaWVu
dExpc3RlbmVyIG1ldGhvZHMuCisgICAgdmlydHVhbCB2b2lkIHJlY29yZGluZ0NvbXBsZXRlKCk7
CisgICAgdmlydHVhbCB2b2lkIHNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYpOwor
Citwcm90ZWN0ZWQ6CisgICAgU3BlZWNoSW5wdXRDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2xpZW50OyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoSW5wdXRDbGllbnQqIG1fY2xp
ZW50OworICAgIFNwZWVjaElucHV0TGlzdGVuZXIqIG1fbGlzdGVuZXI7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5k
aWYgLy8gU3BlZWNoSW5wdXRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0
Q2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
YjY3MDU0YmNlYmEzZTJlYmYyYmVjMmEzMjU0NDNmNjJlY2E3NDZmCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50LmgKQEAgLTAsMCArMSw1OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3Bl
ZWNoSW5wdXRDbGllbnRfaAorI2RlZmluZSBTcGVlY2hJbnB1dENsaWVudF9oCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgU3RyaW5nOworCisvLyBQcm92aWRlcyBhbiBpbnRlcmZhY2Ug
Zm9yIHRoZSBlbWJlZGRlciB0byBjYWxsIGludG8gV2ViQ29yZS4KK2NsYXNzIFNwZWVjaElucHV0
Q2xpZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCByZWNvcmRpbmdDb21w
bGV0ZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVjb2duaXRpb25SZXN1bHQoY29uc3Qg
U3RyaW5nJiByZXN1bHQpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgflNwZWVjaElu
cHV0Q2xpZW50TGlzdGVuZXIoKSB7IH0KK307CisKKy8vIFByb3ZpZGVzIGFuIGludGVyZmFjZSBm
b3IgU3BlZWNoSW5wdXQgdG8gY2FsbCBpbnRvIHRoZSBlbWJlZGRlci4KK2NsYXNzIFNwZWVjaElu
cHV0Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJvb2wgc3RhcnRSZWNvZ25pdGlvbihT
cGVlY2hJbnB1dENsaWVudExpc3RlbmVyKiBsaXN0ZW5lcikgPSAwOworCitwcm90ZWN0ZWQ6Cisg
ICAgdmlydHVhbCB+U3BlZWNoSW5wdXRDbGllbnQoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFNwZWVjaElucHV0Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCmluZGV4IDM2ZTMwYWZlNGNkNDE4
NmYzZWVlZmQ5ZDkwZDZhY2Q5YTU3OTQwZDUuLjMzZjc3Y2E0MWM2MzhkY2E5YTU0MzA2YmE4Mzlm
MTM2YjVmMTBkNmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnRzLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgiCiAKQEAgLTMyMSw2ICszMjIsNyBAQCB2b2lkIFNw
aW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIAogaW5s
aW5lIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9u
RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBUZXh0Q29udHJvbElubmVyRWxlbWVu
dChkb2N1bWVudCkKKyAgICAsIG1fY2FwdHVyaW5nKGZhbHNlKQogewogfQogCkBAIC0zMjksMTAg
KzMzMSw2NyBAQCBQYXNzUmVmUHRyPElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50PiBJbnB1
dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6Y3JlYXRlKAogICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAordm9pZCBJ
bnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6ZGV0YWNoKCkKK3sKKyAgICBpZiAobV9jYXB0
dXJpbmcpIHsKKyAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkp
CisgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNlRXZl
bnRzTm9kZSgwKTsgICAgICAKKyAgICB9CisgICAgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmRl
dGFjaCgpOworfQorCiB2b2lkIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHsKLSAgICAvLyBGSVhNRTogU3RhcnQgc3BlZWNo
IHJlY29nbml0aW9uIGhlcmUuCi0gICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRs
ZXIoZXZlbnQpOworICAgIC8vIE9uIG1vdXNlIGRvd24sIHNlbGVjdCB0aGUgdGV4dCBhbmQgc2V0
IGZvY3VzLgorICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKKyAgICBpZiAoZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgp
ICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpID09IExlZnRCdXR0
b24pIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+dmlzaWJsZVRvSGl0
VGVzdGluZygpKSB7CisgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+
ZnJhbWUoKSkgeworICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2V0Q2Fw
dHVyaW5nTW91c2VFdmVudHNOb2RlKHRoaXMpOworICAgICAgICAgICAgICAgIG1fY2FwdHVyaW5n
ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnB1dC0+Zm9jdXMo
KTsKKyAgICAgICAgaW5wdXQtPnNlbGVjdCgpOworICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhh
bmRsZWQoKTsKKyAgICB9CisgICAgLy8gT24gbW91c2UgdXAsIHN0YXJ0IHNwZWVjaCByZWNvZ25p
dGlvbi4KKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50
ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZl
bnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CisgICAgICAgIGlmIChtX2NhcHR1cmluZyAm
JiByZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnZpc2libGVUb0hpdFRlc3RpbmcoKSkgeworICAg
ICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpIHsKKyAgICAg
ICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNlRXZlbnRz
Tm9kZSgwKTsKKyAgICAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IGZhbHNlOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgKGhvdmVyZWQoKSkgeworICAgICAgICAgICAgICAgIHNwZWVj
aElucHV0KCktPnN0YXJ0UmVjb2duaXRpb24oKTsKKyAgICAgICAgICAgICAgICBldmVudC0+c2V0
RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmICghZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgIEhUTUxEaXZFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKK30KKworU3BlZWNoSW5wdXQqIElucHV0RmllbGRT
cGVlY2hCdXR0b25FbGVtZW50OjpzcGVlY2hJbnB1dCgpCit7CisgICAgaWYgKCFtX3NwZWVjaElu
cHV0KQorICAgICAgICBtX3NwZWVjaElucHV0LnNldChuZXcgU3BlZWNoSW5wdXQoZG9jdW1lbnQo
KS0+cGFnZSgpLT5zcGVlY2hJbnB1dENsaWVudCgpLCB0aGlzKSk7CisgICAgcmV0dXJuIG1fc3Bl
ZWNoSW5wdXQuZ2V0KCk7Cit9CisKK3ZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6
OnNwZWVjaElucHV0UmVjb3JkaW5nQ29tcGxldGUoKQoreworICAgIC8vIEZJWE1FOiBBZGQgVUkg
ZmVlZGJhY2sgaGVyZSB0byBpbmRpY2F0ZSB0aGF0IGF1ZGlvIHJlY29yZGluZyBzdG9wcGVkIGFu
ZCByZWNvZ25pdGlvbiBpcworICAgIC8vIGluIHByb2dyZXNzLgorfQorCit2b2lkIElucHV0Rmll
bGRTcGVlY2hCdXR0b25FbGVtZW50OjpzcGVlY2hJbnB1dFNldFJlY29nbml0aW9uUmVzdWx0KGNv
bnN0IFN0cmluZyYgcmVzdWx0KQoreworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3Rh
dGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKKyAgICBp
bnB1dC0+c2V0VmFsdWUocmVzdWx0KTsKKyAgICBpbnB1dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbENo
YW5nZUV2ZW50KCk7CisgICAgcmVuZGVyZXIoKS0+cmVwYWludCgpOwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKElOUFVUX1NQRUVDSCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRD
b250cm9sSW5uZXJFbGVtZW50cy5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnRzLmgKaW5kZXggMTg4NGEzNDc4ZTRmYjE1NjRjYzdlNDBlZWYyZjAyNGZiMmUyN2Zh
MC4uMzVmNTg4YzJiNjEwZjJkYmRhYWRkMjU3ZWNhNDY5OGM0NTA3Mjc3NiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKQEAgLTI4LDYgKzI4LDcgQEAK
ICNkZWZpbmUgVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzX2gKIAogI2luY2x1ZGUgIkhUTUxEaXZF
bGVtZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0xMDcsMTQgKzEwOCwyNSBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKElOUFVUX1NQ
RUVDSCkKIAotY2xhc3MgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgVGV4
dENvbnRyb2xJbm5lckVsZW1lbnQgeworY2xhc3MgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1l
bnQKKyAgICA6IHB1YmxpYyBUZXh0Q29udHJvbElubmVyRWxlbWVudAorICAgICwgcHVibGljIFNw
ZWVjaElucHV0TGlzdGVuZXIgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElucHV0
RmllbGRTcGVlY2hCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAKKyAgICAvLyBTcGVlY2hJbnB1
dExpc3RlbmVyIG1ldGhvZHMuCisgICAgdm9pZCBzcGVlY2hJbnB1dFJlY29yZGluZ0NvbXBsZXRl
KCk7CisgICAgdm9pZCBzcGVlY2hJbnB1dFNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmlu
ZyYgcmVzdWx0KTsKKwogcHJpdmF0ZToKICAgICBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVu
dChEb2N1bWVudCopOworICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKKyAgICBTcGVlY2hJbnB1
dCogc3BlZWNoSW5wdXQoKTsKKworICAgIGJvb2wgbV9jYXB0dXJpbmc7CisgICAgT3duUHRyPFNw
ZWVjaElucHV0PiBtX3NwZWVjaElucHV0OwogfTsKIAogI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9T
UEVFQ0gpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60742</attachid>
            <date>2010-07-07 09:37:50 -0700</date>
            <delta_ts>2010-07-07 09:43:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41518-20100707173747.patch</filename>
            <type>text/plain</type>
            <size>26146</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBkMWI2YTZkNmRjM2FiMjMzN2VlZWYwMDEzZjYzOTQwZjljYjg2MWM5Li44OGJiNWRmYmU5NTJl
YzVkZTJiNWU2NzgyZjkwZmU5MjMwN2ZjNjQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zNzksNiArMzc5LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAg
XAogCXBhZ2UvU2V0dGluZ3MuY3BwIFwKIAlwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCisJ
cGFnZS9TcGVlY2hJbnB1dC5jcHAKIAlwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwIFwKIAlwYWdl
L1RpbWluZy5jcHAgXAogCXBhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZlMzk5NGM2
NWVjZmI4MzE5MGJjZWZjZWE2OWZmNjIxNzM4ODI3Y2QuLmVjMTM0ODViZmYzZWQ1MDc3YTVhMjQw
ZGEzOGVlNjg1NDJmNjA2ZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMDctMDIgIFNhdGlzaCBTYW1w
YXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTcGVlY2ggaW5wdXQgcGx1bWJpbmcgaW4gd2ViY29yZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1MTgKKworICAg
ICAgICBBZGRzIHRoZSBmb2xsb3dpbmc6CisgICAgICAgIC0gYSBTcGVlY2hJbnB1dCBjbGFzcyB0
byBiZSB1c2VkIGJ5IHRoZSBzcGVlY2ggZW5hYmxlZCBIVE1MIGVsZW1lbnRzCisgICAgICAgIC0g
YSBTcGVlY2hJbnB1dExpc3RlbmVyIGludGVyZmFjZSB0byBiZSBpbXBsZW1lbnRlZCBieSB0aGUg
c3BlZWNoIGVuYWJsZWQgSFRNTCBlbGVtZW50cworICAgICAgICAtIGEgU3BlZWNoSW5wdXRDbGll
bnQgaW50ZXJmYWNlIChkZWZpbmVkIGluIFdlYkNvcmUsIGltcGxlbWVudGVkIGJ5IFdlYktpdCkg
Zm9yIFdlYkNvcmUgdG8gY2FsbCBpbnRvIFdlYktpdC4KKyAgICAgICAgICBUaGlzIGlzIGF2YWls
YWJsZSBhcyBhIG1lbWJlciBvZiBXZWJDb3JlOjpQYWdlLCBzZXQgYnkgdGhlIHBsYXRmb3JtcyB3
aGljaCBzdXBwb3J0IHNwZWVjaCBpbnB1dC4KKyAgICAgICAgLSBhIFNwZWVjaElucHV0Q2xpZW50
TGlzdGVuZXIgaW50ZXJmYWNlIGZvciBXZWJDb3JlIHRvIHJlY2VpdmUgZXZlbnRzIGZyb20gV2Vi
S2l0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGUgcmVsZXZhbnQgTGF5b3V0VGVzdENvbnRy
b2xsZXIgYmluZGluZ3Mgd2lsbCBiZSBhZGRlZCBpbiBhIHN1YnNlcXVlbnQgcGF0Y2guCisKKyAg
ICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOiBBZGRlZCBTcGVlY2hJbnB1dENs
aWVudCBtZW1iZXIgdmFyaWFibGUgYW5kIGFzc29jaWF0ZWQgbWV0aG9kcy4KKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnNldFNwZWVjaElucHV0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OnNwZWVjaElucHV0Q2xpZW50KToKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0LmNwcDog
QWRkZWQgbmV3IGNsYXNzIHRvIHByb3ZpZGUgc3BlZWNoIEFQSSBzZXJ2aWNlcyB0byBIVE1MIGVs
ZW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXQ6OlNwZWVjaElucHV0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0OjpyZWNvcmRpbmdDb21wbGV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6c2V0UmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoSW5wdXQ6OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAgICAqIHBhZ2Uv
U3BlZWNoSW5wdXQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6flNw
ZWVjaElucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0OjpjbGllbnQpOgorICAg
ICAgICAqIHBhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaElucHV0TGlzdGVuZXI6On5TcGVlY2hJbnB1dExpc3RlbmVyKToKKyAgICAgICAg
KiBwYWdlL1NwZWVjaElucHV0Q2xpZW50Lmg6IEFkZGVkIG5ldyBpbnRlcmZhY2UgaW1wbGVtZW50
ZWQgYnkgV2ViS2l0IHRvIGJ1YmJsZSB1cCBzcGVlY2ggQVBJIHJlcXVlc3RzIHRvIHRoZSBlbWJl
ZGRlci4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50Ojp+U3BlZWNoSW5wdXRD
bGllbnQpOgorICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXI6On5TcGVlY2hJ
bnB1dENsaWVudExpc3RlbmVyKToKKwogMjAxMC0wNy0wNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZh
ICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBYYW4gTG9wZXouCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQppbmRleCA3ZGI5NzA0Yzc5OTUwNzAzMjExNzA3MjcyMDdkNDMwODZl
ZTE4OGIxLi5mMjUyNDg2NTVkNjJmNzZmYjdmMDYxOTAwY2FjYjc4NmM5NjExZmEyIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
QEAgLTI2NzYsNiArMjY3NiwxMyBAQCBpZiBFTkFCTEVfSU5QVVRfU1BFRUNICiBGRUFUVVJFX0RF
RklORVMgKz0gRU5BQkxFX0lOUFVUX1NQRUVDSD0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5B
QkxFX0lOUFVUX1NQRUVDSD0xCiAKK3dlYmNvcmVfc291cmNlcyArPSBcCisJV2ViQ29yZS9wYWdl
L1NwZWVjaElucHV0LmNwcCBcCisJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmggXAorCVdlYkNv
cmUvcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmggXAorCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1
dENsaWVudC5oIFwKKwlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oCisK
IGVsc2UKIAogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9JTlBVVF9TUEVFQ0g9MApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBmOTIxZDFiM2Q4MzA3ZWZlNzc5YmZmYWE0NzFiYTFjYmUwNGZmODk3Li43YmY2NjNhODJhYjY4
Yzk1OTA3MDJmNWQyMTU0MTE3OWEwMDFmZTEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjAyNCw2ICsyMDI0LDExIEBACiAg
ICAgICAgICAgICAncGFnZS9TZXR0aW5ncy5oJywKICAgICAgICAgICAgICdwYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwJywK
KyAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0LmNwcCcsCisgICAgICAgICAgICAncGFnZS9T
cGVlY2hJbnB1dC5oJywKKyAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaCcs
CisgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dENsaWVudC5oJywKKyAgICAgICAgICAgICdw
YWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9TdXNw
ZW5kYWJsZVRpbWVyLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvVGltaW5nLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA4Mjk5ODg5Mjg2YjFmOWI2ZGM2
NzZjNGYxN2ViOTkzMDkzYWZjN2ZkLi45ZGJmZDJiMTU1ZmY5NzU5Nzk2NzFmNTM5OGUxMTk2ZDAy
NThmMjUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KQEAgLTE1OTcsNiArMTU5NywxMCBAQCBIRUFERVJTICs9IFwKICAgICBwYWdlL1Nl
Y3VyaXR5T3JpZ2luLmggXAogICAgIHBhZ2UvU2V0dGluZ3MuaCBcCiAgICAgcGFnZS9TcGF0aWFs
TmF2aWdhdGlvbi5oIFwKKyAgICBwYWdlL1NwZWVjaElucHV0LmggXAorICAgIHBhZ2UvU3BlZWNo
SW5wdXRMaXN0ZW5lci5oIFwKKyAgICBwYWdlL1NwZWVjaElucHV0Q2xpZW50LmggXAorICAgIHBh
Z2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oIFwKICAgICBwYWdlL1dpbmRvd0ZlYXR1cmVz
LmggXAogICAgIHBhZ2UvV29ya2VyTmF2aWdhdG9yLmggXAogICAgIHBhZ2UvWFNTQXVkaXRvci5o
IFwKQEAgLTI1MjEsNiArMjUyNSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TSEFSRURf
V09SS0VSUz0xKSB7CiAKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JTlBVVF9TUEVFQ0g9MSkg
ewogICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBwYWdlL1NwZWVjaElucHV0LmNwcCBcCiAgICAg
ICAgIHJlbmRlcmluZy9SZW5kZXJJbnB1dFNwZWVjaC5jcHAKIH0KIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOTRmYWIzZGY5ZWRmODU5ZTA4NWY3NDc1MGZlMTg1ZWFi
OWVkOWJkZS4uZjQxZjBkOTFlMmFmMjNhNmVhOTcxZDIxMzkwZjk3NjgwZWFmM2ZmYyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMjQ2NSw2ICsyMjQ2NSwyNiBAQAog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdl
XFNwZWVjaElucHV0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3BlZWNoSW5wdXQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3BlZWNoSW5wdXRMaXN0ZW5l
ci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGFnZVxTcGVlY2hJbnB1dENsaWVudC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxG
aWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxTcGVlY2hJbnB1dENsaWVudExpc3RlbmVy
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXFN1c3BlbmRhYmxlVGltZXIuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzhiMjMwMWI1ZDczZmFh
YjQ1NTUyMGM3Y2ViMWFkNGY0NmRiNzAzNy4uNmRlYmIwNDUzYWU2N2QyYTM3NTMxMWVkZThmOWYz
MDVlOTA4ZDdmZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEzMzEsNiArMTMzMSwxMSBAQAogCQk3NTQxMzNBQTEwMkUwMEY0MDAwNzVEMDAgLyogSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5jcHAgKi87IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3Rvcnku
aCAqLzsgfTsKIAkJNzU1M0NGRTkxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLzsg
fTsKKwkJNzU3OEY5MEIxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTA4MTFEREYyNjkw
MEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgKi87IH07CisJCTc1NzhGOTBDMTFEREYyNjkwMEQ5
MzNDNSAvKiBTcGVlY2hJbnB1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggKi87
IH07CisJCTc1NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MEExMURE
RjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi87IH07CisJCTc1NzhGOTFGMTFF
NEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkxRDExRTRFMzI4MDBEOTMz
QzUgLyogU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oICovOyB9OworCQk3NTc4RjkyMDExRTRF
MzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8qIFNw
ZWVjaElucHV0TGlzdGVuZXIuaCAqLzsgfTsKIAkJNzU3OTNFODMwRDBDRTBCMzAwN0ZDMEFDIC8q
IE1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NTc5M0U4MDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLzsg
fTsKIAkJNzU3OTNFODQwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFODEwRDBDRTBCMzAw
N0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovOyB9OwogCQk3NTc5M0VDODBEMENFNzJEMDA3RkMw
QUMgLyogSlNNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzU3OTNFQzYwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50
LmNwcCAqLzsgfTsKQEAgLTcwNTQsNiArNzA1OSwxMSBAQAogCQk3NTQxMzNBOTEwMkUwMEY0MDAw
NzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU1M0NGRTcxMDhG
NDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3NTc4RjkwODExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoSW5w
dXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTc4RjkwOTExRERGMjY5MDBE
OTMzQzUgLyogU3BlZWNoSW5wdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoSW5wdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU3OEY5MEExMURE
RjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc1NzhGOTFEMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudExpc3Rl
bmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Q2xpZW50
TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU3OEY5MUUxMUU0RTMy
ODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoSW5wdXRMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3NTc5M0U4MDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZXNzYWdlRXZlbnQuY3BwOyBwYXRo
ID0gZG9tL01lc3NhZ2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJ
NzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gTWVzc2FnZUV2ZW50Lmg7IHBhdGggPSBkb20vTWVzc2FnZUV2
ZW50Lmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNzU3OTNFODIwRDBDRTBCMzAw
N0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE1lc3Nh
Z2VFdmVudC5pZGw7IHBhdGggPSBkb20vTWVzc2FnZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OwpAQCAtMTIyODcsNiArMTIyOTcsMTEgQEAKIAkJCQlGNTg3ODYzQTAyREUz
QTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVB
NjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFF
NUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oICovLAorCQkJCTc1NzhGOTA4MTFEREYyNjkwMEQ5
MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgKi8sCisJCQkJNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1
IC8qIFNwZWVjaElucHV0LmggKi8sCisJCQkJNzU3OEY5MEExMURERjI2OTAwRDkzM0M1IC8qIFNw
ZWVjaElucHV0Q2xpZW50LmggKi8sCisJCQkJNzU3OEY5MUQxMUU0RTMyODAwRDkzM0M1IC8qIFNw
ZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCAqLywKKwkJCQk3NTc4RjkxRTExRTRFMzI4MDBEOTMz
QzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDND
NDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAz
QzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovLAogCQkJCThBRjRFNTU4MTFEQzVBNjMwMDBF
RDNERSAvKiBUaW1pbmcuY3BwICovLApAQCAtMTk3MDYsNiArMTk3MjEsMTAgQEAKIAkJCQk5N0RE
NEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0UxNzJFMDExMTM2RThDRTAwNjJBNTMzIC8qIFpvb21Nb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCODg1RThENTExRTA2REQyMDA5RkZCRjQgLyogSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTc4RjkwQzExRERGMjY5MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dENsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU3OEY5MUYxMUU0RTMy
ODAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTc1NzhGOTIwMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTIyMDQ2LDYgKzIyMDY1LDcgQEAKIAkJCQk5N0RENEQ4NjBGREY0RDZF
MDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCODg1RThENDEx
RTA2REQyMDA5RkZCRjQgLyogSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEExODZCRiAvKiBSZW1vdGVJbnNwZWN0
b3JGcm9udGVuZDIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU3OEY5MEIxMURERjI2OTAwRDkz
M0M1IC8qIFNwZWVjaElucHV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDliZGJlNzkxMmIy
YTAwYTgwNGZmMTRkNjkzZWNkYjYxOTQ3MzhkNjQuLjdkNTk3N2ZmMmY0NTBmOGY1NTE0MGRjMDZh
NWM3NjY3NTJlYjBiZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlICJTZWxlY3Rp
b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRC
dWZmZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVudC5oIgogI2luY2x1ZGUgIlN0cmlu
Z0hhc2guaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiV2lk
Z2V0LmgiCkBAIC0xMzksNiArMTQwLDkgQEAgUGFnZTo6UGFnZShDaHJvbWVDbGllbnQqIGNocm9t
ZUNsaWVudCwgQ29udGV4dE1lbnVDbGllbnQqIGNvbnRleHRNZW51Q2xpZW50LCBFZGkKICNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbihuZXcg
RGV2aWNlT3JpZW50YXRpb24odGhpcywgZGV2aWNlT3JpZW50YXRpb25DbGllbnQpKQogI2VuZGlm
CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICAsIG1fc3BlZWNoSW5wdXRDbGllbnQoMCkK
KyNlbmRpZgogICAgICwgbV9zZXR0aW5ncyhuZXcgU2V0dGluZ3ModGhpcykpCiAgICAgLCBtX3By
b2dyZXNzKG5ldyBQcm9ncmVzc1RyYWNrZXIpCiAgICAgLCBtX2JhY2tGb3J3YXJkTGlzdChCYWNr
Rm9yd2FyZExpc3Q6OmNyZWF0ZSh0aGlzKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdl
LmggYi9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGI5MzEwOTI0ZjM0MGU0NDk1Yzg2ODczYTg1
NzBlY2ZiYWRkZmY1ODAuLjk0MzQ3ODFlZGQyNjc4NGI3ZDQ4YzVhMTQ1OTA1NTk4NGRmZjVjNDEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2Uu
aApAQCAtNjgsNiArNjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgVmlzaWJs
ZVNlbGVjdGlvbjsKICAgICBjbGFzcyBTZWxlY3Rpb25Db250cm9sbGVyOwogICAgIGNsYXNzIFNl
dHRpbmdzOworICAgIGNsYXNzIFNwZWVjaElucHV0Q2xpZW50OwogCiAjaWYgRU5BQkxFKERPTV9T
VE9SQUdFKQogICAgIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7CkBAIC0xNTAsNiArMTUxLDEwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAg
ICAgICBEZXZpY2VPcmllbnRhdGlvbiogZGV2aWNlT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVy
biBtX2RldmljZU9yaWVudGF0aW9uLmdldCgpOyB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRf
U1BFRUNIKQorICAgICAgICB2b2lkIHNldFNwZWVjaElucHV0Q2xpZW50KFNwZWVjaElucHV0Q2xp
ZW50KiBjbGllbnQpIHsgbV9zcGVlY2hJbnB1dENsaWVudCA9IGNsaWVudDsgfQorICAgICAgICBT
cGVlY2hJbnB1dENsaWVudCogc3BlZWNoSW5wdXRDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3Nw
ZWVjaElucHV0Q2xpZW50OyB9CisjZW5kaWYKICAgICAgICAgU2V0dGluZ3MqIHNldHRpbmdzKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXR0aW5ncy5nZXQoKTsgfQogICAgICAgICBQcm9ncmVzc1RyYWNr
ZXIqIHByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9ncmVzcy5nZXQoKTsgfQogICAgICAg
ICAKQEAgLTI2Nyw2ICsyNzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikKICAgICAgICAgT3duUHRyPERldmljZU9yaWVudGF0aW9uPiBtX2Rl
dmljZU9yaWVudGF0aW9uOwogI2VuZGlmCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICAg
ICAgU3BlZWNoSW5wdXRDbGllbnQqIG1fc3BlZWNoSW5wdXRDbGllbnQ7CisjZW5kaWYKICAgICAg
ICAgT3duUHRyPFNldHRpbmdzPiBtX3NldHRpbmdzOwogICAgICAgICBPd25QdHI8UHJvZ3Jlc3NU
cmFja2VyPiBtX3Byb2dyZXNzOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9T
cGVlY2hJbnB1dC5jcHAgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjkyZGY3MGU0N2RlNDI3M2M0ODZhYThlZWRiMGU4YzhmNGVlNTQ3N2IKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXQuaCIKKworI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xp
ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRMaXN0ZW5lci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1NwZWVjaElucHV0OjpTcGVlY2hJbnB1dChTcGVlY2hJbnB1dENsaWVudCogY2xp
ZW50LCBTcGVlY2hJbnB1dExpc3RlbmVyKiBsaXN0ZW5lcikKKyAgICA6IG1fY2xpZW50KGNsaWVu
dCkKKyAgICAsIG1fbGlzdGVuZXIobGlzdGVuZXIpCit7Cit9CisKK3ZvaWQgU3BlZWNoSW5wdXQ6
OnJlY29yZGluZ0NvbXBsZXRlKCkKK3sKKyAgICBtX2xpc3RlbmVyLT5yZWNvcmRpbmdDb21wbGV0
ZSgpOworfQorCit2b2lkIFNwZWVjaElucHV0OjpzZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBT
dHJpbmcmIHJlc3VsdCkKK3sKKyAgICBtX2xpc3RlbmVyLT5zZXRSZWNvZ25pdGlvblJlc3VsdChy
ZXN1bHQpOworfQorCitib29sIFNwZWVjaElucHV0OjpzdGFydFJlY29nbml0aW9uKCkKK3sKKyAg
ICBpZiAobV9jbGllbnQpCisgICAgICAgIHJldHVybiBtX2NsaWVudC0+c3RhcnRSZWNvZ25pdGlv
bih0aGlzKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvU3BlZWNoSW5wdXQuaCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY3MzMxYTU1NTM1OGFiODRhNTdkMzk2YzRmYmY4NGU1NTAxNDQ1NzkKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuaApAQCAtMCwwICsxLDczIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBT
cGVlY2hJbnB1dF9oCisjZGVmaW5lIFNwZWVjaElucHV0X2gKKworI2luY2x1ZGUgIlNwZWVjaElu
cHV0Q2xpZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworI2lm
IEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3Bl
ZWNoSW5wdXRDbGllbnQ7CitjbGFzcyBTcGVlY2hJbnB1dExpc3RlbmVyOworY2xhc3MgU3RyaW5n
OworCisKKy8vIFRoaXMgY2xhc3MgY29ubmVjdHMgdGhlIGlucHV0IGVsZW1lbnRzIHJlcXVpcmlu
ZyBzcGVlY2ggaW5wdXQgd2l0aCB0aGUgcGxhdGZvcm0gc3BlY2lmaWMKKy8vIHNwZWVjaCByZWNv
Z25pdGlvbiBlbmdpbmUuIEl0IHByb3ZpZGVzIG1ldGhvZHMgZm9yIHRoZSBpbnB1dCBlbGVtZW50
cyB0byBhY3RpdmF0ZSBzcGVlY2gKKy8vIHJlY29nbml0aW9uIGFuZCBtZXRob2RzIGZvciB0aGUg
c3BlZWNoIHJlY29nbml0aW9uIGVuZ2luZSB0byByZXR1cm4gYmFjayB0aGUgcmVzdWx0cy4KK2Ns
YXNzIFNwZWVjaElucHV0IDogcHVibGljIE5vbmNvcHlhYmxlLCBwdWJsaWMgU3BlZWNoSW5wdXRD
bGllbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgU3BlZWNoSW5wdXQoU3BlZWNoSW5wdXRDbGll
bnQqLCBTcGVlY2hJbnB1dExpc3RlbmVyKik7CisgICAgdmlydHVhbCB+U3BlZWNoSW5wdXQoKSB7
IH0KKworICAgIC8vIE1ldGhvZHMgaW52b2tlZCBieSB0aGUgaW5wdXQgZWxlbWVudHMuCisgICAg
dmlydHVhbCBib29sIHN0YXJ0UmVjb2duaXRpb24oKTsKKworICAgIC8vIFNwZWVjaElucHV0Q2xp
ZW50OjpMaXN0ZW5lciBtZXRob2RzLgorICAgIHZpcnR1YWwgdm9pZCByZWNvcmRpbmdDb21wbGV0
ZSgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJpbmcm
KTsKKworcHJvdGVjdGVkOgorICAgIFNwZWVjaElucHV0Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudDsgfQorCitwcml2YXRlOgorICAgIFNwZWVjaElucHV0Q2xpZW50KiBt
X2NsaWVudDsKKyAgICBTcGVlY2hJbnB1dExpc3RlbmVyKiBtX2xpc3RlbmVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKKwor
I2VuZGlmIC8vIFNwZWVjaElucHV0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJ
bnB1dENsaWVudC5oIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjE1MmIwZmE2NGMxMzhjMDQ2ZjQxYTMyMzc2ZWEzMTZkZmY4ODVjMwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oCkBAIC0wLDAgKzEsNDkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFNwZWVjaElucHV0Q2xpZW50X2gKKyNkZWZpbmUgU3BlZWNoSW5wdXRDbGllbnRfaAorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXI7CisKKy8v
IFByb3ZpZGVzIGFuIGludGVyZmFjZSBmb3IgU3BlZWNoSW5wdXQgdG8gY2FsbCBpbnRvIHRoZSBl
bWJlZGRlci4KK2NsYXNzIFNwZWVjaElucHV0Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IGJvb2wgc3RhcnRSZWNvZ25pdGlvbihTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyKiBsaXN0ZW5l
cikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+U3BlZWNoSW5wdXRDbGllbnQoKSB7
IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNwZWVjaElucHV0
Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudExpc3Rl
bmVyLmggYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIxZjUyYjQzOTg0OTQ2N2RjZmFiMWM0YjFhZDIxYTYzNjhmOTllMjIKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oCkBAIC0wLDAg
KzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXJfaAorI2RlZmluZSBTcGVlY2hJbnB1
dENsaWVudExpc3RlbmVyX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdHJpbmc7
CisKKy8vIFByb3ZpZGVzIGFuIGludGVyZmFjZSBmb3IgdGhlIGVtYmVkZGVyIHRvIGNhbGwgaW50
byBXZWJDb3JlLgorY2xhc3MgU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lciB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB2b2lkIHJlY29yZGluZ0NvbXBsZXRlKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCkgPSAwOworCitwcm90
ZWN0ZWQ6CisgICAgdmlydHVhbCB+U3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lcigpIHsgfQorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU3BlZWNoSW5wdXRDbGllbnRM
aXN0ZW5lcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5o
IGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDg3ZDM2
NzY4ZmY5Yjk1MzE2ZjNlNzZlOWViMmQ0ZWJjNjIyNjU5Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBT
cGVlY2hJbnB1dExpc3RlbmVyX2gKKyNkZWZpbmUgU3BlZWNoSW5wdXRMaXN0ZW5lcl9oCisKKyNp
ZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFN0
cmluZzsKKworLy8gSW50ZXJmYWNlIHRvIGJlIGltcGxlbWVudGVkIGJ5IHRoZSBlbGVtZW50IHdo
aWNoIGludm9rZXMgU3BlZWNoSW5wdXQuCitjbGFzcyBTcGVlY2hJbnB1dExpc3RlbmVyIHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkaW5nQ29tcGxldGUoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KSA9IDA7
CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5TcGVlY2hJbnB1dExpc3RlbmVyKCkgeyB9Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BF
RUNIKQorCisjZW5kaWYgLy8gU3BlZWNoSW5wdXRMaXN0ZW5lcl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60744</attachid>
            <date>2010-07-07 09:43:42 -0700</date>
            <delta_ts>2010-07-12 09:14:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41518-20100707174339.patch</filename>
            <type>text/plain</type>
            <size>26252</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCA3MDNmM2VjMWMyNTE4ZDE5MWM2MjFlYjMzNGM2OTNiOTEwNTllNjBmLi5mMzAwMTcxYzAxMDY2
ODA1NjFmZmNiNGMwM2E3N2MwNjdiZmJkNjY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zODAsNiArMzgwLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAg
XAogCXBhZ2UvU2V0dGluZ3MuY3BwIFwKIAlwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCisJ
cGFnZS9TcGVlY2hJbnB1dC5jcHAKIAlwYWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwIFwKIAlwYWdl
L1RpbWluZy5jcHAgXAogCXBhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM4NWQ1ODgw
Yjc4NjMxOWVmNzQwNzkyMGZkNjExOTc4M2JiNDZiMDkuLjVkMDNkM2RkMjQ4NjQ3OGM2Mzc5MDU1
NDViYzRkMWJjMGNjNDNlZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTAtMDctMDIgIFNhdGlzaCBTYW1w
YXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTcGVlY2ggaW5wdXQgcGx1bWJpbmcgaW4gd2ViY29yZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1MTgKKworICAg
ICAgICBBZGRzIHRoZSBmb2xsb3dpbmc6CisgICAgICAgIC0gYSBTcGVlY2hJbnB1dCBjbGFzcyB0
byBiZSB1c2VkIGJ5IHRoZSBzcGVlY2ggZW5hYmxlZCBIVE1MIGVsZW1lbnRzCisgICAgICAgIC0g
YSBTcGVlY2hJbnB1dExpc3RlbmVyIGludGVyZmFjZSB0byBiZSBpbXBsZW1lbnRlZCBieSB0aGUg
c3BlZWNoIGVuYWJsZWQgSFRNTCBlbGVtZW50cworICAgICAgICAtIGEgU3BlZWNoSW5wdXRDbGll
bnQgaW50ZXJmYWNlIChkZWZpbmVkIGluIFdlYkNvcmUsIGltcGxlbWVudGVkIGJ5IFdlYktpdCkg
Zm9yIFdlYkNvcmUgdG8gY2FsbCBpbnRvIFdlYktpdC4KKyAgICAgICAgICBUaGlzIGlzIGF2YWls
YWJsZSBhcyBhIG1lbWJlciBvZiBXZWJDb3JlOjpQYWdlLCBzZXQgYnkgdGhlIHBsYXRmb3JtcyB3
aGljaCBzdXBwb3J0IHNwZWVjaCBpbnB1dC4KKyAgICAgICAgLSBhIFNwZWVjaElucHV0Q2xpZW50
TGlzdGVuZXIgaW50ZXJmYWNlIGZvciBXZWJDb3JlIHRvIHJlY2VpdmUgZXZlbnRzIGZyb20gV2Vi
S2l0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGUgcmVsZXZhbnQgTGF5b3V0VGVzdENvbnRy
b2xsZXIgYmluZGluZ3Mgd2lsbCBiZSBhZGRlZCBpbiBhIHN1YnNlcXVlbnQgcGF0Y2guCisKKyAg
ICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOiBBZGRlZCBTcGVlY2hJbnB1dENs
aWVudCBtZW1iZXIgdmFyaWFibGUgYW5kIGFzc29jaWF0ZWQgbWV0aG9kcy4KKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnNldFNwZWVjaElucHV0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OnNwZWVjaElucHV0Q2xpZW50KToKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0LmNwcDog
QWRkZWQgbmV3IGNsYXNzIHRvIHByb3ZpZGUgc3BlZWNoIEFQSSBzZXJ2aWNlcyB0byBIVE1MIGVs
ZW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXQ6OlNwZWVjaElucHV0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0OjpyZWNvcmRpbmdDb21wbGV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6c2V0UmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoSW5wdXQ6OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAgICAqIHBhZ2Uv
U3BlZWNoSW5wdXQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6flNw
ZWVjaElucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0OjpjbGllbnQpOgorICAg
ICAgICAqIHBhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaElucHV0TGlzdGVuZXI6On5TcGVlY2hJbnB1dExpc3RlbmVyKToKKyAgICAgICAg
KiBwYWdlL1NwZWVjaElucHV0Q2xpZW50Lmg6IEFkZGVkIG5ldyBpbnRlcmZhY2UgaW1wbGVtZW50
ZWQgYnkgV2ViS2l0IHRvIGJ1YmJsZSB1cCBzcGVlY2ggQVBJIHJlcXVlc3RzIHRvIHRoZSBlbWJl
ZGRlci4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50Ojp+U3BlZWNoSW5wdXRD
bGllbnQpOgorICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXI6On5TcGVlY2hJ
bnB1dENsaWVudExpc3RlbmVyKToKKwogMjAxMC0wNy0wNyAgTHVjYXMgRGUgTWFyY2hpICA8bHVj
YXMuZGVtYXJjaGlAcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBm
aXggYWZ0ZXIgcjYyNTc3LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggODNiZGI3NDkyYzM2MjFmYzBlZjhhYTRlOWFmOTU0
YjYxNjYwYzNlNi4uNGEzOTdhNTExYzhmMTk4OTUyOWZkMzljYWNhNmEyMGY0ZTc0NjQxYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCkBAIC0yNjgxLDYgKzI2ODEsMTMgQEAgaWYgRU5BQkxFX0lOUFVUX1NQRUVDSAogRkVBVFVS
RV9ERUZJTkVTICs9IEVOQUJMRV9JTlBVVF9TUEVFQ0g9MQogd2ViY29yZV9jcHBmbGFncyArPSAt
REVOQUJMRV9JTlBVVF9TUEVFQ0g9MQogCit3ZWJjb3JlX3NvdXJjZXMgKz0gXAorCVdlYkNvcmUv
cGFnZS9TcGVlY2hJbnB1dC5jcHAgXAorCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oIFwKKwlX
ZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oIFwKKwlXZWJDb3JlL3BhZ2UvU3BlZWNo
SW5wdXRDbGllbnQuaCBcCisJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIu
aAorCiBlbHNlCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfSU5QVVRfU1BFRUNIPTAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggNGVkYzQyNjgzYWEyNzA0MGFiNDRhNGUzYWFkMmRmMzcxYmQyYmZlNy4uYjM3YTBiNGFl
ODNiYTE4YzIzY2JmZDhlODBiOTczZDE1NzcwOWRhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIwMjksNiArMjAyOSwxMSBA
QAogICAgICAgICAgICAgJ3BhZ2UvU2V0dGluZ3MuaCcsCiAgICAgICAgICAgICAncGFnZS9TcGF0
aWFsTmF2aWdhdGlvbi5oJywKICAgICAgICAgICAgICdwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNw
cCcsCisgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dC5jcHAnLAorICAgICAgICAgICAgJ3Bh
Z2UvU3BlZWNoSW5wdXQuaCcsCisgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dExpc3RlbmVy
LmgnLAorICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaCcsCisgICAgICAgICAg
ICAncGFnZS9TcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmgnLAogICAgICAgICAgICAgJ3BhZ2Uv
U3VzcGVuZGFibGVUaW1lci5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvU3VzcGVuZGFibGVUaW1l
ci5oJywKICAgICAgICAgICAgICdwYWdlL1RpbWluZy5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZDAzMGUzNDk2ZTVlMmYx
Nzk2MmQ4ZDVmYzQ0M2E1ODJjZjg5ZmFkZC4uMWUzMzFmZTc5NWU0YTFiZGYyZGFkYWNlZTlkYWQ1
MzEzY2RhMmI1MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3Jl
L1dlYkNvcmUucHJvCkBAIC0xNjAxLDYgKzE2MDEsMTAgQEAgSEVBREVSUyArPSBcCiAgICAgcGFn
ZS9TZWN1cml0eU9yaWdpbi5oIFwKICAgICBwYWdlL1NldHRpbmdzLmggXAogICAgIHBhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uaCBcCisgICAgcGFnZS9TcGVlY2hJbnB1dC5oIFwKKyAgICBwYWdlL1Nw
ZWVjaElucHV0TGlzdGVuZXIuaCBcCisgICAgcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oIFwKKyAg
ICBwYWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCBcCiAgICAgcGFnZS9XaW5kb3dGZWF0
dXJlcy5oIFwKICAgICBwYWdlL1dvcmtlck5hdmlnYXRvci5oIFwKICAgICBwYWdlL1hTU0F1ZGl0
b3IuaCBcCkBAIC0yNTI1LDYgKzI1MjksNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU0hB
UkVEX1dPUktFUlM9MSkgewogCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5QVVRfU1BFRUNI
PTEpIHsKICAgICBTT1VSQ0VTICs9IFwKKyAgICAgICAgcGFnZS9TcGVlY2hJbnB1dC5jcHAgXAog
ICAgICAgICByZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2guY3BwCiB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDZhMjM3ODFmMDdhNjUyY2M2NDI2MDYzOTk1OTc2
ZjgwYTBlOWY3MzguLjY3N2ZhYmFiNmViOWEzZjNkZWIzYTc1ZmVlYjg3OWNmM2QzOGNlNGMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjI0NjUsNiArMjI0NjUsMjYg
QEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGFnZVxTcGVlY2hJbnB1dC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNwZWVjaElucHV0LmgiDQorCQkJCT4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNwZWVjaElucHV0TGlz
dGVuZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBhZ2VcU3BlZWNoSW5wdXRDbGllbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3BlZWNoSW5wdXRDbGllbnRMaXN0
ZW5lci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGFnZVxTdXNwZW5kYWJsZVRpbWVyLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEwMTFjZmQzN2Qy
ZWViNzQ2N2JkNTYxZmU4YzRiNDlhNTIwNWZiYmUuLmRjZWE5MzAyYzcyNTdmZGJkNjE0MjViYTY3
YjIyZTY5MTY0ZDc5NjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzQ0LDYgKzEzNDQsMTEgQEAKIAkJNzU0MTMzQUExMDJFMDBGNDAwMDc1RDAwIC8q
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU0MTMzQTkxMDJFMDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwICovOyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0
b3J5LmggKi87IH07CiAJCTc1NTNDRkU5MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29y
ZEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAg
Ki87IH07CisJCTc1NzhGOTBCMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkwODExRERG
MjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwICovOyB9OworCQk3NTc4RjkwQzExRERGMjY5
MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NzhGOTA5MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5o
ICovOyB9OworCQk3NTc4RjkwRDExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTBB
MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oICovOyB9OworCQk3NTc4Rjkx
RjExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MUQxMUU0RTMyODAw
RDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCAqLzsgfTsKKwkJNzU3OEY5MjAx
MUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTFFMTFFNEUzMjgwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dExpc3RlbmVyLmggKi87IH07CiAJCTc1NzkzRTgzMEQwQ0UwQjMwMDdGQzBB
QyAvKiBNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzU3OTNFODAwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5jcHAg
Ki87IH07CiAJCTc1NzkzRTg0MEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgxMEQwQ0Uw
QjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLzsgfTsKIAkJNzU3OTNFQzgwRDBDRTcyRDAw
N0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUM2MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VF
dmVudC5jcHAgKi87IH07CkBAIC03MDg4LDYgKzcwOTMsMTEgQEAKIAkJNzU0MTMzQTkxMDJFMDBG
NDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZWxp
bmVSZWNvcmRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU3
MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU3OEY5MDgxMURERjI2OTAwRDkzM0M1IC8qIFNw
ZWVjaElucHV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVj
aElucHV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU3OEY5MDkxMURERjI2
OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaElucHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NzhGOTBB
MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3NTc4RjkxRDExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnRM
aXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dENs
aWVudExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NzhGOTFFMTFF
NEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzU3OTNFODAwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVzc2FnZUV2ZW50LmNwcDsg
cGF0aCA9IGRvbS9NZXNzYWdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07
CiAJCTc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lc3NhZ2VFdmVudC5oOyBwYXRoID0gZG9tL01lc3Nh
Z2VFdmVudC5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTc1NzkzRTgyMEQwQ0Uw
QjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBN
ZXNzYWdlRXZlbnQuaWRsOyBwYXRoID0gZG9tL01lc3NhZ2VFdmVudC5pZGw7IHNvdXJjZVRyZWUg
PSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTEyMzM4LDYgKzEyMzQ4LDExIEBACiAJCQkJRjU4Nzg2M0Ew
MkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8sCiAJCQkJNjI2Q0RFMEMxMTQwNDI0QzAw
MUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCAqLywKIAkJCQk2MjZDREUwRDExNDA0MjRD
MDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCAqLywKKwkJCQk3NTc4RjkwODExRERGMjY5
MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwICovLAorCQkJCTc1NzhGOTA5MTFEREYyNjkwMEQ5
MzNDNSAvKiBTcGVlY2hJbnB1dC5oICovLAorCQkJCTc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dENsaWVudC5oICovLAorCQkJCTc1NzhGOTFEMTFFNEUzMjgwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmggKi8sCisJCQkJNzU3OEY5MUUxMUU0RTMyODAw
RDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCAqLywKIAkJCQk2MkMxMjE3QTExQUI5RTc2
MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJNjJDMTIxN0IxMUFCOUU3
NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKIAkJCQk4QUY0RTU1ODExREM1QTYz
MDAwRUQzREUgLyogVGltaW5nLmNwcCAqLywKQEAgLTE5NzYyLDYgKzE5Nzc3LDEwIEBACiAJCQkJ
OTdFRjU2MTExMUU0MDc4MzAwN0UwMjZGIC8qIEhUTUxDb25zdHJ1Y3Rpb25TaXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0E4QzgxRTExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRDb250
cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E4QzgzMTExRTNENTMyMDA4MTJGQjcgLyog
QmFja0ZvcndhcmRDb250cm9sbGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTc4Rjkw
QzExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1
NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNzU3OEY5MUYxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50TGlz
dGVuZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NzhGOTIwMTFFNEUzMjgwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyMTQ4LDYgKzIyMTY3LDcg
QEAKIAkJCQlCQ0E4QzgxRjExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRDb250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEExODZCRiAvKiBSZW1v
dGVJbnNwZWN0b3JGcm9udGVuZDIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdFRjU2MTAxMUU0
MDc4MzAwN0UwMjZGIC8qIEhUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTc1NzhGOTBCMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAppbmRleCBlZmNiOGQ1ZjgyOWVjMDJlNTE4MWI2ODZkNzQ5MDVkMWNjNTA1NGZhLi5m
MDQ5NDM3YWEwYzAwYmIyNDkxZmQxNjZjODZmNTI2NjY2Mjg0MzNkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC02MSw2ICs2
MSw3IEBACiAjaW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRD
bGllbnQuaCIKICNpbmNsdWRlICJTdHJpbmdIYXNoLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNl
RGVjb2Rlci5oIgogI2luY2x1ZGUgIldpZGdldC5oIgpAQCAtMTQwLDYgKzE0MSw5IEBAIFBhZ2U6
OlBhZ2UoQ2hyb21lQ2xpZW50KiBjaHJvbWVDbGllbnQsIENvbnRleHRNZW51Q2xpZW50KiBjb250
ZXh0TWVudUNsaWVudCwgRWRpCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICAgICAs
IG1fZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKG5ldyBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIodGhpcywgZGV2aWNlT3JpZW50YXRpb25DbGllbnQpKQogI2VuZGlmCisjaWYgRU5BQkxF
KElOUFVUX1NQRUVDSCkKKyAgICAsIG1fc3BlZWNoSW5wdXRDbGllbnQoMCkKKyNlbmRpZgogICAg
ICwgbV9zZXR0aW5ncyhuZXcgU2V0dGluZ3ModGhpcykpCiAgICAgLCBtX3Byb2dyZXNzKG5ldyBQ
cm9ncmVzc1RyYWNrZXIpCiAgICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihuZXcgQmFja0Zv
cndhcmRDb250cm9sbGVyKHRoaXMsIDApKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2Uu
aCBiL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMmFmNDE5ZWMzMTNjMzE1YWRlYzg4NGY4ZTFk
OTY4OWQ5NGZlZjQxZS4uY2Y1MzVhMDY5NGZlOTg0ODFhYzhjZmE5NzFjMWRkMTUxMjczZTk5ZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9XZWJDb3JlL3BhZ2UvUGFnZS5o
CkBAIC02OSw2ICs2OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBWaXNpYmxl
U2VsZWN0aW9uOwogICAgIGNsYXNzIFNlbGVjdGlvbkNvbnRyb2xsZXI7CiAgICAgY2xhc3MgU2V0
dGluZ3M7CisgICAgY2xhc3MgU3BlZWNoSW5wdXRDbGllbnQ7CiAKICNpZiBFTkFCTEUoRE9NX1NU
T1JBR0UpCiAgICAgY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKQEAgLTE1MSw2ICsxNTIsMTAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAgICAg
ICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7
IH0KICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgICAgIHZvaWQgc2V0U3Bl
ZWNoSW5wdXRDbGllbnQoU3BlZWNoSW5wdXRDbGllbnQqIGNsaWVudCkgeyBtX3NwZWVjaElucHV0
Q2xpZW50ID0gY2xpZW50OyB9CisgICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBzcGVlY2hJbnB1
dENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoSW5wdXRDbGllbnQ7IH0KKyNlbmRpZgog
ICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzLmdl
dCgpOyB9CiAgICAgICAgIFByb2dyZXNzVHJhY2tlciogcHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVy
biBtX3Byb2dyZXNzLmdldCgpOyB9CiAgICAgICAgIApAQCAtMjY4LDYgKzI3Myw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgICAgICBP
d25QdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBtX2RldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcjsKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgICAgIFNwZWVj
aElucHV0Q2xpZW50KiBtX3NwZWVjaElucHV0Q2xpZW50OworI2VuZGlmCiAgICAgICAgIE93blB0
cjxTZXR0aW5ncz4gbV9zZXR0aW5nczsKICAgICAgICAgT3duUHRyPFByb2dyZXNzVHJhY2tlcj4g
bV9wcm9ncmVzczsKICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5w
dXQuY3BwIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmRmNzBl
NDdkZTQyNzNjNDg2YWE4ZWVkYjBlOGM4ZjRlZTU0NzdiCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9wYWdlL1NwZWVjaElucHV0LmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0LmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNI
KQorCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVudC5oIgor
I2luY2x1ZGUgIlNwZWVjaElucHV0TGlzdGVuZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTcGVlY2hJbnB1dDo6U3BlZWNoSW5wdXQoU3BlZWNoSW5wdXRDbGllbnQqIGNsaWVudCwgU3Bl
ZWNoSW5wdXRMaXN0ZW5lciogbGlzdGVuZXIpCisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAg
LCBtX2xpc3RlbmVyKGxpc3RlbmVyKQoreworfQorCit2b2lkIFNwZWVjaElucHV0OjpyZWNvcmRp
bmdDb21wbGV0ZSgpCit7CisgICAgbV9saXN0ZW5lci0+cmVjb3JkaW5nQ29tcGxldGUoKTsKK30K
Kwordm9pZCBTcGVlY2hJbnB1dDo6c2V0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJiBy
ZXN1bHQpCit7CisgICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQocmVzdWx0KTsK
K30KKworYm9vbCBTcGVlY2hJbnB1dDo6c3RhcnRSZWNvZ25pdGlvbigpCit7CisgICAgaWYgKG1f
Y2xpZW50KQorICAgICAgICByZXR1cm4gbV9jbGllbnQtPnN0YXJ0UmVjb2duaXRpb24odGhpcyk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0LmggYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzMzMWE1
NTUzNThhYjg0YTU3ZDM5NmM0ZmJmODRlNTUwMTQ0NTc5Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9wYWdlL1NwZWVjaElucHV0LmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3BlZWNoSW5w
dXRfaAorI2RlZmluZSBTcGVlY2hJbnB1dF9oCisKKyNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVu
dExpc3RlbmVyLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpZiBFTkFCTEUo
SU5QVVRfU1BFRUNIKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaElucHV0
Q2xpZW50OworY2xhc3MgU3BlZWNoSW5wdXRMaXN0ZW5lcjsKK2NsYXNzIFN0cmluZzsKKworCisv
LyBUaGlzIGNsYXNzIGNvbm5lY3RzIHRoZSBpbnB1dCBlbGVtZW50cyByZXF1aXJpbmcgc3BlZWNo
IGlucHV0IHdpdGggdGhlIHBsYXRmb3JtIHNwZWNpZmljCisvLyBzcGVlY2ggcmVjb2duaXRpb24g
ZW5naW5lLiBJdCBwcm92aWRlcyBtZXRob2RzIGZvciB0aGUgaW5wdXQgZWxlbWVudHMgdG8gYWN0
aXZhdGUgc3BlZWNoCisvLyByZWNvZ25pdGlvbiBhbmQgbWV0aG9kcyBmb3IgdGhlIHNwZWVjaCBy
ZWNvZ25pdGlvbiBlbmdpbmUgdG8gcmV0dXJuIGJhY2sgdGhlIHJlc3VsdHMuCitjbGFzcyBTcGVl
Y2hJbnB1dCA6IHB1YmxpYyBOb25jb3B5YWJsZSwgcHVibGljIFNwZWVjaElucHV0Q2xpZW50TGlz
dGVuZXIgeworcHVibGljOgorICAgIFNwZWVjaElucHV0KFNwZWVjaElucHV0Q2xpZW50KiwgU3Bl
ZWNoSW5wdXRMaXN0ZW5lciopOworICAgIHZpcnR1YWwgflNwZWVjaElucHV0KCkgeyB9CisKKyAg
ICAvLyBNZXRob2RzIGludm9rZWQgYnkgdGhlIGlucHV0IGVsZW1lbnRzLgorICAgIHZpcnR1YWwg
Ym9vbCBzdGFydFJlY29nbml0aW9uKCk7CisKKyAgICAvLyBTcGVlY2hJbnB1dENsaWVudDo6TGlz
dGVuZXIgbWV0aG9kcy4KKyAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkaW5nQ29tcGxldGUoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJik7CisKK3By
b3RlY3RlZDoKKyAgICBTcGVlY2hJbnB1dENsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4g
bV9jbGllbnQ7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hJbnB1dENsaWVudCogbV9jbGllbnQ7
CisgICAgU3BlZWNoSW5wdXRMaXN0ZW5lciogbV9saXN0ZW5lcjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKKyNlbmRpZiAv
LyBTcGVlY2hJbnB1dF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGll
bnQuaCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxNTJi
MGZhNjRjMTM4YzA0NmY0MWEzMjM3NmVhMzE2ZGZmODg1YzMKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTcGVlY2hJ
bnB1dENsaWVudF9oCisjZGVmaW5lIFNwZWVjaElucHV0Q2xpZW50X2gKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyOworCisvLyBQcm92aWRl
cyBhbiBpbnRlcmZhY2UgZm9yIFNwZWVjaElucHV0IHRvIGNhbGwgaW50byB0aGUgZW1iZWRkZXIu
CitjbGFzcyBTcGVlY2hJbnB1dENsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCBib29sIHN0
YXJ0UmVjb2duaXRpb24oU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lciogbGlzdGVuZXIpID0gMDsK
KworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgflNwZWVjaElucHV0Q2xpZW50KCkgeyB9Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTcGVlY2hJbnB1dENsaWVudF9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oIGIv
V2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMWY1
MmI0Mzk4NDk0NjdkY2ZhYjFjNGIxYWQyMWE2MzY4Zjk5ZTIyCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaApAQCAtMCwwICsxLDUwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyX2gKKyNkZWZpbmUgU3BlZWNoSW5wdXRDbGllbnRM
aXN0ZW5lcl9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3RyaW5nOworCisvLyBQ
cm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIHRoZSBlbWJlZGRlciB0byBjYWxsIGludG8gV2ViQ29y
ZS4KK2NsYXNzIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHZpcnR1
YWwgdm9pZCByZWNvcmRpbmdDb21wbGV0ZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVj
b2duaXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpID0gMDsKKworcHJvdGVjdGVkOgor
ICAgIHZpcnR1YWwgflNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIoKSB7IH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXJf
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaCBiL1dlYkNv
cmUvcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA4N2QzNjc2OGZmOWI5
NTMxNmYzZTc2ZTllYjJkNGViYzYyMjY1OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dExpc3RlbmVyLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3BlZWNoSW5w
dXRMaXN0ZW5lcl9oCisjZGVmaW5lIFNwZWVjaElucHV0TGlzdGVuZXJfaAorCisjaWYgRU5BQkxF
KElOUFVUX1NQRUVDSCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdHJpbmc7CisK
Ky8vIEludGVyZmFjZSB0byBiZSBpbXBsZW1lbnRlZCBieSB0aGUgZWxlbWVudCB3aGljaCBpbnZv
a2VzIFNwZWVjaElucHV0LgorY2xhc3MgU3BlZWNoSW5wdXRMaXN0ZW5lciB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB2b2lkIHJlY29yZGluZ0NvbXBsZXRlKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCkgPSAwOworCitwcm90
ZWN0ZWQ6CisgICAgdmlydHVhbCB+U3BlZWNoSW5wdXRMaXN0ZW5lcigpIHsgfQorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKKwor
I2VuZGlmIC8vIFNwZWVjaElucHV0TGlzdGVuZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61237</attachid>
            <date>2010-07-12 09:14:28 -0700</date>
            <delta_ts>2010-07-13 08:13:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41518-20100712171424.patch</filename>
            <type>text/plain</type>
            <size>26248</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAyYzg2OTkzNDgyOWJlNmExNzRhNjhkYzNmNmNlYjU5MzVlMjViNGQxLi5hMzI2ZDRiYjY0ZDgw
Nzg5ZTc2ZDE5YzZjYTcwZGNhNjAwZjdiOGY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zODAsNiArMzgwLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAg
XAogCXBhZ2UvU2V0dGluZ3MuY3BwIFwKIAlwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCisJ
cGFnZS9TcGVlY2hJbnB1dC5jcHAgXAogCXBhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAgXAogCXBh
Z2UvVGltaW5nLmNwcCBcCiAJcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlhYWJi
ZmE1ZDlmMDgwNzUwYTUyNjczY2YwODRmMmRlYzU0YTMwNS4uMzJiOTQxMzBmNTIxY2JiZWM0NGYx
MzAzZjIxMzE3OGQyMmQ1ZmU3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMC0wNy0wMiAgU2F0aXNoIFNh
bXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNwZWVjaCBpbnB1dCBwbHVtYmluZyBpbiB3ZWJjb3JlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUxOAorCisg
ICAgICAgIEFkZHMgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgLSBhIFNwZWVjaElucHV0IGNsYXNz
IHRvIGJlIHVzZWQgYnkgdGhlIHNwZWVjaCBlbmFibGVkIEhUTUwgZWxlbWVudHMKKyAgICAgICAg
LSBhIFNwZWVjaElucHV0TGlzdGVuZXIgaW50ZXJmYWNlIHRvIGJlIGltcGxlbWVudGVkIGJ5IHRo
ZSBzcGVlY2ggZW5hYmxlZCBIVE1MIGVsZW1lbnRzCisgICAgICAgIC0gYSBTcGVlY2hJbnB1dENs
aWVudCBpbnRlcmZhY2UgKGRlZmluZWQgaW4gV2ViQ29yZSwgaW1wbGVtZW50ZWQgYnkgV2ViS2l0
KSBmb3IgV2ViQ29yZSB0byBjYWxsIGludG8gV2ViS2l0LgorICAgICAgICAgIFRoaXMgaXMgYXZh
aWxhYmxlIGFzIGEgbWVtYmVyIG9mIFdlYkNvcmU6OlBhZ2UsIHNldCBieSB0aGUgcGxhdGZvcm1z
IHdoaWNoIHN1cHBvcnQgc3BlZWNoIGlucHV0LgorICAgICAgICAtIGEgU3BlZWNoSW5wdXRDbGll
bnRMaXN0ZW5lciBpbnRlcmZhY2UgZm9yIFdlYkNvcmUgdG8gcmVjZWl2ZSBldmVudHMgZnJvbSBX
ZWJLaXQKKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoZSByZWxldmFudCBMYXlvdXRUZXN0Q29u
dHJvbGxlciBiaW5kaW5ncyB3aWxsIGJlIGFkZGVkIGluIGEgc3Vic2VxdWVudCBwYXRjaC4KKwor
ICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6UGFnZSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6IEFkZGVkIFNwZWVjaElucHV0
Q2xpZW50IG1lbWJlciB2YXJpYWJsZSBhbmQgYXNzb2NpYXRlZCBtZXRob2RzLgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6c2V0U3BlZWNoSW5wdXRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6c3BlZWNoSW5wdXRDbGllbnQpOgorICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXQuY3Bw
OiBBZGRlZCBuZXcgY2xhc3MgdG8gcHJvdmlkZSBzcGVlY2ggQVBJIHNlcnZpY2VzIHRvIEhUTUwg
ZWxlbWVudHMuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6U3BlZWNoSW5wdXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXQ6OnJlY29yZGluZ0NvbXBsZXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaElucHV0OjpzZXRSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgICogcGFn
ZS9TcGVlY2hJbnB1dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Ojp+
U3BlZWNoSW5wdXQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXQ6OmNsaWVudCk6Cisg
ICAgICAgICogcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoSW5wdXRMaXN0ZW5lcjo6flNwZWVjaElucHV0TGlzdGVuZXIpOgorICAgICAg
ICAqIHBhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaDogQWRkZWQgbmV3IGludGVyZmFjZSBpbXBsZW1l
bnRlZCBieSBXZWJLaXQgdG8gYnViYmxlIHVwIHNwZWVjaCBBUEkgcmVxdWVzdHMgdG8gdGhlIGVt
YmVkZGVyLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnQ6On5TcGVlY2hJbnB1
dENsaWVudCk6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lcjo6flNwZWVj
aElucHV0Q2xpZW50TGlzdGVuZXIpOgorCiAyMDEwLTA3LTEyICBBbmRyZWFzIEtsaW5nICA8YW5k
cmVhcy5rbGluZ0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21h
bm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQppbmRleCBjMzQ0NmQ0NGYyYjg3MGM3ZTBlMDM4ZTUwMmNiMTUxNjk4ZWU1ZjlkLi4y
Yzg5Yzk4N2UxYzlmMzc2YTMzYTAyZGFlMjkxNmNmMDVlMDlmOWIyIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTI2ODIs
NiArMjY4MiwxMyBAQCBpZiBFTkFCTEVfSU5QVVRfU1BFRUNICiBGRUFUVVJFX0RFRklORVMgKz0g
RU5BQkxFX0lOUFVUX1NQRUVDSD0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX0lOUFVU
X1NQRUVDSD0xCiAKK3dlYmNvcmVfc291cmNlcyArPSBcCisJV2ViQ29yZS9wYWdlL1NwZWVjaElu
cHV0LmNwcCBcCisJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmggXAorCVdlYkNvcmUvcGFnZS9T
cGVlY2hJbnB1dENsaWVudC5oIFwKKwlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0
ZW5lci5oIFwKKwlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oCisKIGVsc2UKIAog
d2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9JTlBVVF9TUEVFQ0g9MApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAxY2NiYzNm
ZDM5Mzk0MGJlMzg0ZWEwYjg2YjViNmExNzM5NWIwYTBkLi45OWVjMDVmMjUzN2I0MzA5Nzg1M2Nm
ZjUxOWFkY2EwYTVmOWYwMGRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjAzMyw2ICsyMDMzLDExIEBACiAgICAgICAgICAg
ICAncGFnZS9TZXR0aW5ncy5oJywKICAgICAgICAgICAgICdwYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
LmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwJywKKyAgICAgICAg
ICAgICdwYWdlL1NwZWVjaElucHV0LmNwcCcsCisgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1
dC5oJywKKyAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0Q2xpZW50LmgnLAorICAgICAgICAg
ICAgJ3BhZ2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oJywKKyAgICAgICAgICAgICdwYWdl
L1NwZWVjaElucHV0TGlzdGVuZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9TdXNwZW5kYWJsZVRp
bWVyLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgnLAogICAgICAg
ICAgICAgJ3BhZ2UvVGltaW5nLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJv
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA0OTE0OWRjOWEyYjE3OGExM2M3YWJiMmExYWYw
YjRhMzljY2FiZjJmLi4wMTJmZGYwY2E3NmVlNDJhZjExMWY3ODIzZTBlOTQzZDNlMzcyZDhjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTE1OTAsNiArMTU5MCwxMCBAQCBIRUFERVJTICs9IFwKICAgICBwYWdlL1NlY3VyaXR5T3Jp
Z2luLmggXAogICAgIHBhZ2UvU2V0dGluZ3MuaCBcCiAgICAgcGFnZS9TcGF0aWFsTmF2aWdhdGlv
bi5oIFwKKyAgICBwYWdlL1NwZWVjaElucHV0LmggXAorICAgIHBhZ2UvU3BlZWNoSW5wdXRDbGll
bnQuaCBcCisgICAgcGFnZS9TcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmggXAorICAgIHBhZ2Uv
U3BlZWNoSW5wdXRMaXN0ZW5lci5oIFwKICAgICBwYWdlL1dpbmRvd0ZlYXR1cmVzLmggXAogICAg
IHBhZ2UvV29ya2VyTmF2aWdhdG9yLmggXAogICAgIHBhZ2UvWFNTQXVkaXRvci5oIFwKQEAgLTI1
MTksNiArMjUyMyw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TSEFSRURfV09SS0VSUz0x
KSB7CiAKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JTlBVVF9TUEVFQ0g9MSkgewogICAgIFNP
VVJDRVMgKz0gXAorICAgICAgICBwYWdlL1NwZWVjaElucHV0LmNwcCBcCiAgICAgICAgIHJlbmRl
cmluZy9SZW5kZXJJbnB1dFNwZWVjaC5jcHAKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggNjIzNTIzZWU2YWRjYzRmNTE3NzNkZjI5YWVmMTJkNzc4MDdlZTliYy4u
N2ZiNjZkZTljNTA5NmY5YzBmY2QyOWE2NjQ1YTFmYTEyYzY2MTNkOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMjQ2NSw2ICsyMjQ2NSwyNiBAQAogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNwZWVjaElu
cHV0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBhZ2VcU3BlZWNoSW5wdXQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3BlZWNoSW5wdXRDbGllbnQuaCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3Bl
ZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxTcGVlY2hJbnB1dExpc3RlbmVyLmgiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFN1
c3BlbmRhYmxlVGltZXIuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWNkMjVlYzAwODkxZGJlZmMzNGFiMDMy
NTQxOTI4NmE4OWYzNmMzNy4uYTZiNWEwMDU4MWJmZGExNWQ5Zjg5N2MzNDFiNzc5YzgwMTY3N2Zh
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNDIs
NiArMTM0MiwxMSBAQAogCQk3NTQxMzNBQTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHAgKi87IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZh
Y3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsK
IAkJNzU1M0NGRTkxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNzEw
OEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLzsgfTsKKwkJNzU3
OEY5MEIxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTA4MTFEREYyNjkwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dC5jcHAgKi87IH07CisJCTc1NzhGOTBDMTFEREYyNjkwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggKi87IH07CisJCTc1
NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MEExMURERjI2OTAwRDkz
M0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi87IH07CisJCTc1NzhGOTFGMTFFNEUzMjgwMEQ5
MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkxRDExRTRFMzI4MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oICovOyB9OworCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMz
QzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0
TGlzdGVuZXIuaCAqLzsgfTsKIAkJNzU3OTNFODMwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VF
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTc5M0U4MDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLzsgfTsKIAkJNzU3
OTNFODQwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8q
IE1lc3NhZ2VFdmVudC5oICovOyB9OwogCQk3NTc5M0VDODBEMENFNzJEMDA3RkMwQUMgLyogSlNN
ZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzU3OTNFQzYwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmNwcCAqLzsg
fTsKQEAgLTcwODksNiArNzA5NCwxMSBAQAogCQk3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyog
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lbGluZVJlY29yZEZhY3Rv
cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU1M0NGRTcxMDhGNDczRjAwRUEy
ODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3NTc4RjkwODExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoSW5wdXQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTc4RjkwOTExRERGMjY5MDBEOTMzQzUgLyog
U3BlZWNoSW5wdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5w
dXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU3OEY5MEExMURERjI2OTAwRDkz
M0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaElucHV0Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1
NzhGOTFEMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1
IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoSW5wdXRMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
NTc5M0U4MDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZXNzYWdlRXZlbnQuY3BwOyBwYXRoID0gZG9tL01l
c3NhZ2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNzU3OTNFODEw
RDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gTWVzc2FnZUV2ZW50Lmg7IHBhdGggPSBkb20vTWVzc2FnZUV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNzU3OTNFODIwRDBDRTBCMzAwN0ZDMEFDIC8q
IE1lc3NhZ2VFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE1lc3NhZ2VFdmVudC5p
ZGw7IHBhdGggPSBkb20vTWVzc2FnZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09U
OyB9OwpAQCAtMTIzMzEsNiArMTIzNDEsMTEgQEAKIAkJCQlGNTg3ODYzQTAyREUzQTE0MDFFQTQx
MjIgLyogU2V0dGluZ3MuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3Bh
dGlhbE5hdmlnYXRpb24uY3BwICovLAogCQkJCTYyNkNERTBEMTE0MDQyNEMwMDFFNUE2OCAvKiBT
cGF0aWFsTmF2aWdhdGlvbi5oICovLAorCQkJCTc1NzhGOTA4MTFEREYyNjkwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dC5jcHAgKi8sCisJCQkJNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVj
aElucHV0LmggKi8sCisJCQkJNzU3OEY5MEExMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0
Q2xpZW50LmggKi8sCisJCQkJNzU3OEY5MUQxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0
Q2xpZW50TGlzdGVuZXIuaCAqLywKKwkJCQk3NTc4RjkxRTExRTRFMzI4MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRMaXN0ZW5lci5oICovLAogCQkJCTYyQzEyMTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBT
dXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjExQUI5RTc3MDAzQzQ2MkMgLyog
U3VzcGVuZGFibGVUaW1lci5oICovLAogCQkJCThBRjRFNTU4MTFEQzVBNjMwMDBFRDNERSAvKiBU
aW1pbmcuY3BwICovLApAQCAtMTk3NjgsNiArMTk3ODMsMTAgQEAKIAkJCQlDNTg1QTZGQTExRDRG
QjNEMDA0QzNFNEIgLyogSW5kZXhlZERhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTg1
QTZGQzExRDRGQjNEMDA0QzNFNEIgLyogSW5kZXhlZERhdGFiYXNlSW1wbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzU4NUE2RkUxMUQ0RkIzRDAwNEMzRTRCIC8qIEluZGV4ZWREYXRhYmFzZVJlcXVl
c3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NzhGOTBDMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVl
Y2hJbnB1dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU3OEY5MEQxMURERjI2OTAwRDkzM0M1IC8q
IFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTc4RjkxRjExRTRFMzI4
MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNzU3OEY5MjAxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtMjIxNTMsNiArMjIxNzIsNyBAQAogCQkJCUM1ODVBNkY5MTFENEZCM0Qw
MDRDM0U0QiAvKiBJbmRleGVkRGF0YWJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU4NUE2
RkIxMUQ0RkIzRDAwNEMzRTRCIC8qIEluZGV4ZWREYXRhYmFzZUltcGwuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzU4NUE2RkQxMUQ0RkIzRDAwNEMzRTRCIC8qIEluZGV4ZWREYXRhYmFzZVJlcXVl
c3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU3OEY5MEIxMURERjI2OTAwRDkzM0M1IC8qIFNw
ZWVjaElucHV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDRkMWYyMjBiOTM4NmY5ZGMwODA2
ZTVmYzYxNTdlNDcxYmVlM2EyMjEuLjU5YzIyMzhjOTljMmY5YTAxMzkxNzY3NmJhYzY5N2Y5MzU5
NzhjODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
KyNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVudC5oIgogI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIK
ICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCkBA
IC0xNDAsNiArMTQxLDkgQEAgUGFnZTo6UGFnZShDaHJvbWVDbGllbnQqIGNocm9tZUNsaWVudCwg
Q29udGV4dE1lbnVDbGllbnQqIGNvbnRleHRNZW51Q2xpZW50LCBFZGkKICNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQogICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIobmV3
IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcih0aGlzLCBkZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCkpCiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgICwgbV9zcGVlY2hJbnB1
dENsaWVudCgwKQorI2VuZGlmCiAgICAgLCBtX3NldHRpbmdzKG5ldyBTZXR0aW5ncyh0aGlzKSkK
ICAgICAsIG1fcHJvZ3Jlc3MobmV3IFByb2dyZXNzVHJhY2tlcikKICAgICAsIG1fYmFja0Zvcndh
cmRDb250cm9sbGVyKG5ldyBCYWNrRm9yd2FyZENvbnRyb2xsZXIodGhpcywgYmFja0ZvcndhcmRD
b250cm9sbGVyQ2xpZW50KSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IDU2YTI1ZWI4MjU3ZDA0YmYxYWI3NGVjNjNjNDNmZWE4OGJl
Zjg0MGQuLjg1OTlhODMyMDc2Y2YwYjE0NDAyMWMwNDE1ODc5YjQwOWJkMjA0NTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzAs
NiArNzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgVmlzaWJsZVNlbGVjdGlv
bjsKICAgICBjbGFzcyBTZWxlY3Rpb25Db250cm9sbGVyOwogICAgIGNsYXNzIFNldHRpbmdzOwor
ICAgIGNsYXNzIFNwZWVjaElucHV0Q2xpZW50OwogCiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQog
ICAgIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2U7CkBAIC0xNTIsNiArMTUzLDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgICAgICBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpIGNv
bnN0IHsgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmdldCgpOyB9CiAjZW5k
aWYKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgICAgICB2b2lkIHNldFNwZWVjaElucHV0
Q2xpZW50KFNwZWVjaElucHV0Q2xpZW50KiBjbGllbnQpIHsgbV9zcGVlY2hJbnB1dENsaWVudCA9
IGNsaWVudDsgfQorICAgICAgICBTcGVlY2hJbnB1dENsaWVudCogc3BlZWNoSW5wdXRDbGllbnQo
KSBjb25zdCB7IHJldHVybiBtX3NwZWVjaElucHV0Q2xpZW50OyB9CisjZW5kaWYKICAgICAgICAg
U2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0aW5ncy5nZXQoKTsgfQog
ICAgICAgICBQcm9ncmVzc1RyYWNrZXIqIHByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9n
cmVzcy5nZXQoKTsgfQogICAgICAgICAKQEAgLTI2OSw2ICsyNzQsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICAgICAgICAgT3duUHRyPERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7
CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgICAgICBTcGVlY2hJbnB1dENs
aWVudCogbV9zcGVlY2hJbnB1dENsaWVudDsKKyNlbmRpZgogICAgICAgICBPd25QdHI8U2V0dGlu
Z3M+IG1fc2V0dGluZ3M7CiAgICAgICAgIE93blB0cjxQcm9ncmVzc1RyYWNrZXI+IG1fcHJvZ3Jl
c3M7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmNwcCBi
L1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJkZjcwZTQ3ZGU0Mjcz
YzQ4NmFhOGVlZGIwZThjOGY0ZWU1NDc3YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dC5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJTcGVlY2hJbnB1dC5oIgorCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKworI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnQuaCIKKyNpbmNsdWRl
ICJTcGVlY2hJbnB1dExpc3RlbmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlZWNo
SW5wdXQ6OlNwZWVjaElucHV0KFNwZWVjaElucHV0Q2xpZW50KiBjbGllbnQsIFNwZWVjaElucHV0
TGlzdGVuZXIqIGxpc3RlbmVyKQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9saXN0
ZW5lcihsaXN0ZW5lcikKK3sKK30KKwordm9pZCBTcGVlY2hJbnB1dDo6cmVjb3JkaW5nQ29tcGxl
dGUoKQoreworICAgIG1fbGlzdGVuZXItPnJlY29yZGluZ0NvbXBsZXRlKCk7Cit9CisKK3ZvaWQg
U3BlZWNoSW5wdXQ6OnNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KQor
eworICAgIG1fbGlzdGVuZXItPnNldFJlY29nbml0aW9uUmVzdWx0KHJlc3VsdCk7Cit9CisKK2Jv
b2wgU3BlZWNoSW5wdXQ6OnN0YXJ0UmVjb2duaXRpb24oKQoreworICAgIGlmIChtX2NsaWVudCkK
KyAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5zdGFydFJlY29nbml0aW9uKHRoaXMpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKElOUFVUX1NQRUVDSCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5o
IGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjAxYmU5OTEwYTJjNmNh
MmRlMGQ3NTA3YzFhMjEzY2Q3OTY3Njc0OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNwZWVjaElucHV0X2gKKyNk
ZWZpbmUgU3BlZWNoSW5wdXRfaAorCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKworI2luY2x1
ZGUgIlNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hJbnB1dENsaWVudDsK
K2NsYXNzIFNwZWVjaElucHV0TGlzdGVuZXI7CitjbGFzcyBTdHJpbmc7CisKKy8vIFRoaXMgY2xh
c3MgY29ubmVjdHMgdGhlIGlucHV0IGVsZW1lbnRzIHJlcXVpcmluZyBzcGVlY2ggaW5wdXQgd2l0
aCB0aGUgcGxhdGZvcm0gc3BlY2lmaWMKKy8vIHNwZWVjaCByZWNvZ25pdGlvbiBlbmdpbmUuIEl0
IHByb3ZpZGVzIG1ldGhvZHMgZm9yIHRoZSBpbnB1dCBlbGVtZW50cyB0byBhY3RpdmF0ZSBzcGVl
Y2gKKy8vIHJlY29nbml0aW9uIGFuZCBtZXRob2RzIGZvciB0aGUgc3BlZWNoIHJlY29nbml0aW9u
IGVuZ2luZSB0byByZXR1cm4gYmFjayB0aGUgcmVzdWx0cy4KK2NsYXNzIFNwZWVjaElucHV0IDog
cHVibGljIE5vbmNvcHlhYmxlLCBwdWJsaWMgU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lciB7Citw
dWJsaWM6CisgICAgU3BlZWNoSW5wdXQoU3BlZWNoSW5wdXRDbGllbnQqLCBTcGVlY2hJbnB1dExp
c3RlbmVyKik7CisgICAgdmlydHVhbCB+U3BlZWNoSW5wdXQoKSB7IH0KKworICAgIC8vIE1ldGhv
ZHMgaW52b2tlZCBieSB0aGUgaW5wdXQgZWxlbWVudHMuCisgICAgdmlydHVhbCBib29sIHN0YXJ0
UmVjb2duaXRpb24oKTsKKworICAgIC8vIFNwZWVjaElucHV0Q2xpZW50OjpMaXN0ZW5lciBtZXRo
b2RzLgorICAgIHZpcnR1YWwgdm9pZCByZWNvcmRpbmdDb21wbGV0ZSgpOworICAgIHZpcnR1YWwg
dm9pZCBzZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJpbmcmKTsKKworcHJvdGVjdGVkOgor
ICAgIFNwZWVjaElucHV0Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsg
fQorCitwcml2YXRlOgorICAgIFNwZWVjaElucHV0Q2xpZW50KiBtX2NsaWVudDsKKyAgICBTcGVl
Y2hJbnB1dExpc3RlbmVyKiBtX2xpc3RlbmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKKworI2VuZGlmIC8vIFNwZWVjaElu
cHV0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oIGIvV2Vi
Q29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE1MmIwZmE2NGMxMzhj
MDQ2ZjQxYTMyMzc2ZWEzMTZkZmY4ODVjMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dENsaWVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNwZWVjaElucHV0Q2xpZW50
X2gKKyNkZWZpbmUgU3BlZWNoSW5wdXRDbGllbnRfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXI7CisKKy8vIFByb3ZpZGVzIGFuIGludGVy
ZmFjZSBmb3IgU3BlZWNoSW5wdXQgdG8gY2FsbCBpbnRvIHRoZSBlbWJlZGRlci4KK2NsYXNzIFNw
ZWVjaElucHV0Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJvb2wgc3RhcnRSZWNvZ25p
dGlvbihTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyKiBsaXN0ZW5lcikgPSAwOworCitwcm90ZWN0
ZWQ6CisgICAgdmlydHVhbCB+U3BlZWNoSW5wdXRDbGllbnQoKSB7IH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNwZWVjaElucHV0Q2xpZW50X2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmggYi9XZWJDb3JlL3Bh
Z2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmYTU3NWJhMjNkNjc3
YThhNzQ0M2UwNTYzYjcyMGM0YzI0NTU4YTQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3Bh
Z2UvU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNw
ZWVjaElucHV0Q2xpZW50TGlzdGVuZXJfaAorI2RlZmluZSBTcGVlY2hJbnB1dENsaWVudExpc3Rl
bmVyX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTdHJpbmc7CisKKy8vIFByb3Zp
ZGVzIGFuIGludGVyZmFjZSBmb3IgdGhlIGVtYmVkZGVyIHRvIGNhbGwgaW50byBXZWJDb3JlLgor
Y2xhc3MgU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2
b2lkIHJlY29yZGluZ0NvbXBsZXRlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZWNvZ25p
dGlvblJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAg
dmlydHVhbCB+U3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lcigpIHsgfQorfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lcl9oCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oIGIvV2ViQ29yZS9w
YWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDg3ZDM2NzY4ZmY5Yjk1MzE2
ZjNlNzZlOWViMmQ0ZWJjNjIyNjU5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1Nw
ZWVjaElucHV0TGlzdGVuZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTcGVlY2hJbnB1dExp
c3RlbmVyX2gKKyNkZWZpbmUgU3BlZWNoSW5wdXRMaXN0ZW5lcl9oCisKKyNpZiBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFN0cmluZzsKKworLy8g
SW50ZXJmYWNlIHRvIGJlIGltcGxlbWVudGVkIGJ5IHRoZSBlbGVtZW50IHdoaWNoIGludm9rZXMg
U3BlZWNoSW5wdXQuCitjbGFzcyBTcGVlY2hJbnB1dExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIHZvaWQgcmVjb3JkaW5nQ29tcGxldGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KSA9IDA7CisKK3Byb3RlY3Rl
ZDoKKyAgICB2aXJ0dWFsIH5TcGVlY2hJbnB1dExpc3RlbmVyKCkgeyB9Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5k
aWYgLy8gU3BlZWNoSW5wdXRMaXN0ZW5lcl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61377</attachid>
            <date>2010-07-13 08:13:15 -0700</date>
            <delta_ts>2010-07-13 12:16:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41518-20100713161313.patch</filename>
            <type>text/plain</type>
            <size>26392</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBiNjhmMzBmMzAzNjA3NzEzYTNkYzkyOGM5M2VhNjE0MTU2NmY5OGMzLi5iYWRkODRlMWQwYmQ5
NjY3YjVhYTczNTZlOWUzMjE0MDEzNWZiMjY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zODEsNiArMzgxLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAg
XAogCXBhZ2UvU2V0dGluZ3MuY3BwIFwKIAlwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCisJ
cGFnZS9TcGVlY2hJbnB1dC5jcHAgXAogCXBhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAgXAogCXBh
Z2UvVGltaW5nLmNwcCBcCiAJcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdiYTBl
N2E3YTJlODBlMzQzNWZjYzZiNDFlZjdiZjAzNWI4YzUyYS4uMWQyMWY0MjhjODAzMjIzZjAyMDlm
YTFkMzlmNjFlMWU1NWIxN2E1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMC0wNy0wMiAgU2F0aXNoIFNh
bXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNwZWVjaCBpbnB1dCBwbHVtYmluZyBpbiB3ZWJjb3JlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUxOAorCisg
ICAgICAgIEFkZHMgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgLSBhIFNwZWVjaElucHV0IGNsYXNz
IHRvIGJlIHVzZWQgYnkgdGhlIHNwZWVjaCBlbmFibGVkIEhUTUwgZWxlbWVudHMKKyAgICAgICAg
LSBhIFNwZWVjaElucHV0TGlzdGVuZXIgaW50ZXJmYWNlIHRvIGJlIGltcGxlbWVudGVkIGJ5IHRo
ZSBzcGVlY2ggZW5hYmxlZCBIVE1MIGVsZW1lbnRzCisgICAgICAgIC0gYSBTcGVlY2hJbnB1dENs
aWVudCBpbnRlcmZhY2UgKGRlZmluZWQgaW4gV2ViQ29yZSwgaW1wbGVtZW50ZWQgYnkgV2ViS2l0
KSBmb3IgV2ViQ29yZSB0byBjYWxsIGludG8gV2ViS2l0LgorICAgICAgICAgIFRoaXMgaXMgYXZh
aWxhYmxlIGFzIGEgbWVtYmVyIG9mIFdlYkNvcmU6OlBhZ2UsIHNldCBieSB0aGUgcGxhdGZvcm1z
IHdoaWNoIHN1cHBvcnQgc3BlZWNoIGlucHV0LgorICAgICAgICAtIGEgU3BlZWNoSW5wdXRDbGll
bnRMaXN0ZW5lciBpbnRlcmZhY2UgZm9yIFdlYkNvcmUgdG8gcmVjZWl2ZSBldmVudHMgZnJvbSBX
ZWJLaXQKKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoZSByZWxldmFudCBMYXlvdXRUZXN0Q29u
dHJvbGxlciBiaW5kaW5ncyB3aWxsIGJlIGFkZGVkIGluIGEgc3Vic2VxdWVudCBwYXRjaC4KKwor
ICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6UGFnZSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6IEFkZGVkIFNwZWVjaElucHV0
Q2xpZW50IG1lbWJlciB2YXJpYWJsZSBhbmQgYXNzb2NpYXRlZCBtZXRob2RzLgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6c2V0U3BlZWNoSW5wdXRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6c3BlZWNoSW5wdXRDbGllbnQpOgorICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXQuY3Bw
OiBBZGRlZCBuZXcgY2xhc3MgdG8gcHJvdmlkZSBzcGVlY2ggQVBJIHNlcnZpY2VzIHRvIEhUTUwg
ZWxlbWVudHMuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6U3BlZWNoSW5wdXQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXQ6OnJlY29yZGluZ0NvbXBsZXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaElucHV0OjpzZXRSZWNvZ25pdGlvblJlc3VsdCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hJbnB1dDo6c3RhcnRSZWNvZ25pdGlvbik6CisgICAgICAgICogcGFn
ZS9TcGVlY2hJbnB1dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Ojp+
U3BlZWNoSW5wdXQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXQ6OmNsaWVudCk6Cisg
ICAgICAgICogcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoSW5wdXRMaXN0ZW5lcjo6flNwZWVjaElucHV0TGlzdGVuZXIpOgorICAgICAg
ICAqIHBhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaDogQWRkZWQgbmV3IGludGVyZmFjZSBpbXBsZW1l
bnRlZCBieSBXZWJLaXQgdG8gYnViYmxlIHVwIHNwZWVjaCBBUEkgcmVxdWVzdHMgdG8gdGhlIGVt
YmVkZGVyLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnQ6On5TcGVlY2hJbnB1
dENsaWVudCk6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lcjo6flNwZWVj
aElucHV0Q2xpZW50TGlzdGVuZXIpOgorCiAyMDEwLTA3LTEzICBBbnR0aSBLb2l2aXN0byAgPGtv
aXZpc3RvQGlraS5maT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlz
dGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCmluZGV4IDdmYTgwOTM5YmMwOGMxOWM2NWZhZGU1ZjliODRiMzI1NDhkNDFh
MzguLjdhYTkxNDJjYmVmMDFiMjQ0ODAwMTY2NmU2MWRjOWQ0ZThjZjYxZTMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
MjY5Miw2ICsyNjkyLDEzIEBAIGlmIEVOQUJMRV9JTlBVVF9TUEVFQ0gKIEZFQVRVUkVfREVGSU5F
UyArPSBFTkFCTEVfSU5QVVRfU1BFRUNIPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVf
SU5QVVRfU1BFRUNIPTEKIAord2ViY29yZV9zb3VyY2VzICs9IFwKKwlXZWJDb3JlL3BhZ2UvU3Bl
ZWNoSW5wdXQuY3BwIFwKKwlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuaCBcCisJV2ViQ29yZS9w
YWdlL1NwZWVjaElucHV0Q2xpZW50LmggXAorCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVu
dExpc3RlbmVyLmggXAorCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmgKKwogZWxz
ZQogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX0lOUFVUX1NQRUVDSD0wCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDFk
MjM2M2I5ZjAwMjc5N2U5NzQ1MDQ1NGZiYTJjYjQzZWYyM2MyYjkuLmQ2MjUwOWJjMGRlZDk4NjE2
NDk0OGJkZmNkZDg5ZWQxZTZjZWEwMjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMDM3LDYgKzIwMzcsMTEgQEAKICAgICAg
ICAgICAgICdwYWdlL1NldHRpbmdzLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BhdGlhbE5hdmln
YXRpb24uaCcsCiAgICAgICAgICAgICAncGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAnLAorICAg
ICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXQuY3BwJywKKyAgICAgICAgICAgICdwYWdlL1NwZWVj
aElucHV0LmgnLAorICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaCcsCisgICAg
ICAgICAgICAncGFnZS9TcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmgnLAorICAgICAgICAgICAg
J3BhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oJywKICAgICAgICAgICAgICdwYWdlL1N1c3BlbmRh
YmxlVGltZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL1N1c3BlbmRhYmxlVGltZXIuaCcsCiAg
ICAgICAgICAgICAncGFnZS9UaW1pbmcuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDVjZTRjMmY1NTE0ZGI5NzMxYjA4ZjY2
MzU3ZDBkMTFmMmY1MmZlYTkuLjg5ZDNhZTdjMDVmNTAzYzBiODJlYWViZWQyYWFhODNhYWI4MjRj
ZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtMTU5Nyw2ICsxNTk3LDEwIEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvU2VjdXJp
dHlPcmlnaW4uaCBcCiAgICAgcGFnZS9TZXR0aW5ncy5oIFwKICAgICBwYWdlL1NwYXRpYWxOYXZp
Z2F0aW9uLmggXAorICAgIHBhZ2UvU3BlZWNoSW5wdXQuaCBcCisgICAgcGFnZS9TcGVlY2hJbnB1
dENsaWVudC5oIFwKKyAgICBwYWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCBcCisgICAg
cGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmggXAogICAgIHBhZ2UvV2luZG93RmVhdHVyZXMuaCBc
CiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaCBcCiAgICAgcGFnZS9YU1NBdWRpdG9yLmggXApA
QCAtMjUyNiw2ICsyNTMwLDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NIQVJFRF9XT1JL
RVJTPTEpIHsKIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lOUFVUX1NQRUVDSD0xKSB7CiAg
ICAgU09VUkNFUyArPSBcCisgICAgICAgIHBhZ2UvU3BlZWNoSW5wdXQuY3BwIFwKICAgICAgICAg
cmVuZGVyaW5nL1JlbmRlcklucHV0U3BlZWNoLmNwcAogfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCA4Yzg2OTY4ZThjNjUxMzI4YmFjNzcwNTcwMzk5YWFiNzlkNTcx
Njg1Li5iYTgwYjVjZjE2OTRhOTkwZjJjMTg4NmYzMzg3MWYzNmMzZmIyNTgwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTIyNDgxLDYgKzIyNDgxLDI2IEBACiAJCQkJ
Pg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3Bl
ZWNoSW5wdXQuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGFnZVxTcGVlY2hJbnB1dC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxTcGVlY2hJbnB1dENsaWVudC5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFn
ZVxTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNwZWVjaElucHV0TGlzdGVuZXIuaCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBh
Z2VcU3VzcGVuZGFibGVUaW1lci5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjYjNkNTQyYjcyMTdlYzc1ZGI4
MzEyMzQyMDgxYmY3YjJhMTA1Y2EwLi44ZjNlNzU0ODc5NjhiM2YyYTFhN2U1NDJkZjg2YWRmNjI5
NTQ1ZDRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTM0NSw2ICsxMzQ1LDExIEBACiAJCTc1NDEzM0FBMTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1NDEzM0E5MTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcCAqLzsgfTsKIAkJNzU1M0NGRTgxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICov
OyB9OwogCQk3NTUzQ0ZFOTEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTND
RkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwICovOyB9Owor
CQk3NTc4RjkwQjExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MDgxMURERjI2OTAwRDkz
M0M1IC8qIFNwZWVjaElucHV0LmNwcCAqLzsgfTsKKwkJNzU3OEY5MEMxMURERjI2OTAwRDkzM0M1
IC8qIFNwZWVjaElucHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NTc4RjkwOTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuaCAqLzsgfTsK
KwkJNzU3OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkwQTExRERGMjY5
MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCAqLzsgfTsKKwkJNzU3OEY5MUYxMUU0RTMy
ODAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTFEMTFFNEUzMjgwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyLmggKi87IH07CisJCTc1NzhGOTIwMTFFNEUzMjgw
MEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkxRTExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXRMaXN0ZW5lci5oICovOyB9OwogCQk3NTc5M0U4MzBEMENFMEIzMDA3RkMwQUMgLyogTWVz
c2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NzkzRTgwMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuY3BwICovOyB9Owog
CQk3NTc5M0U4NDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4MTBEMENFMEIzMDA3RkMw
QUMgLyogTWVzc2FnZUV2ZW50LmggKi87IH07CiAJCTc1NzkzRUM4MEQwQ0U3MkQwMDdGQzBBQyAv
KiBKU01lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTc5M0VDNjBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuY3Bw
ICovOyB9OwpAQCAtNzA5NSw2ICs3MTAwLDExIEBACiAJCTc1NDEzM0E5MTAyRTAwRjQwMDA3NUQw
MCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNzEwOEY0NzNG
MDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTc1NzhGOTA4MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hJbnB1dC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NzhGOTA5MTFEREYyNjkwMEQ5MzND
NSAvKiBTcGVlY2hJbnB1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hJbnB1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTc4RjkwQTExRERGMjY5
MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoSW5wdXRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzU3OEY5MUQxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRDbGllbnRMaXN0
ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTc4RjkxRTExRTRFMzI4MDBE
OTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hJbnB1dExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc1NzkzRTgwMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lc3NhZ2VFdmVudC5jcHA7IHBhdGggPSBk
b20vTWVzc2FnZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk3NTc5
M0U4MTBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBNZXNzYWdlRXZlbnQuaDsgcGF0aCA9IGRvbS9NZXNzYWdlRXZlbnQu
aDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk3NTc5M0U4MjBEMENFMEIzMDA3RkMw
QUMgLyogTWVzc2FnZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTWVzc2FnZUV2
ZW50LmlkbDsgcGF0aCA9IGRvbS9NZXNzYWdlRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNF
X1JPT1Q7IH07CkBAIC0xMjMzNyw2ICsxMjM0NywxMSBAQAogCQkJCUY1ODc4NjNBMDJERTNBMTQw
MUVBNDEyMiAvKiBTZXR0aW5ncy5oICovLAogCQkJCTYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAv
KiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgKi8sCiAJCQkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1QTY4
IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8sCisJCQkJNzU3OEY5MDgxMURERjI2OTAwRDkzM0M1
IC8qIFNwZWVjaElucHV0LmNwcCAqLywKKwkJCQk3NTc4RjkwOTExRERGMjY5MDBEOTMzQzUgLyog
U3BlZWNoSW5wdXQuaCAqLywKKwkJCQk3NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXRDbGllbnQuaCAqLywKKwkJCQk3NTc4RjkxRDExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXRDbGllbnRMaXN0ZW5lci5oICovLAorCQkJCTc1NzhGOTFFMTFFNEUzMjgwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dExpc3RlbmVyLmggKi8sCiAJCQkJNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJD
IC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFBQjlFNzcwMDNDNDYy
QyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8sCiAJCQkJOEFGNEU1NTgxMURDNUE2MzAwMEVEM0RF
IC8qIFRpbWluZy5jcHAgKi8sCkBAIC0xOTc3OCw2ICsxOTc5MywxMCBAQAogCQkJCUM1ODVBNkZD
MTFENEZCM0QwMDRDM0U0QiAvKiBJbmRleGVkRGF0YWJhc2VJbXBsLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDNTg1QTZGRTExRDRGQjNEMDA0QzNFNEIgLyogSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTkwRTFCNDkxMUU0RUY0QjAwNjlGNzg0IC8qIERldmljZU9y
aWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTc4RjkwQzExRERGMjY5MDBEOTMzQzUg
LyogU3BlZWNoSW5wdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NzhGOTBEMTFEREYyNjkwMEQ5
MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU3OEY5MUYx
MUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTc1NzhGOTIwMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyMTY1LDYgKzIyMTg0LDcgQEAKIAkJCQlDNTg1QTZGRDEx
RDRGQjNEMDA0QzNFNEIgLyogSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1OTBFMUI0QjExRTRFRjcwMDA2OUY3ODQgLyogSlNEZXZpY2VPcmllbnRhdGlvbkV2
ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU5RDFDMTA0MTFFQjVEQ0YwMEI2MzhD
OCAvKiBEZXZpY2VPcmllbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTc4RjkwQjEx
RERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXgg
NGQxZjIyMGI5Mzg2ZjlkYzA4MDZlNWZjNjE1N2U0NzFiZWUzYTIyMS4uNTljMjIzOGM5OWMyZjlh
MDEzOTE3Njc2YmFjNjk3ZjkzNTk3OGM4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1
ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50LmgiCiAjaW5j
bHVkZSAiU3RyaW5nSGFzaC5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNp
bmNsdWRlICJXaWRnZXQuaCIKQEAgLTE0MCw2ICsxNDEsOSBAQCBQYWdlOjpQYWdlKENocm9tZUNs
aWVudCogY2hyb21lQ2xpZW50LCBDb250ZXh0TWVudUNsaWVudCogY29udGV4dE1lbnVDbGllbnQs
IEVkaQogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAgICAgLCBtX2RldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcihuZXcgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKHRoaXMsIGRl
dmljZU9yaWVudGF0aW9uQ2xpZW50KSkKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gp
CisgICAgLCBtX3NwZWVjaElucHV0Q2xpZW50KDApCisjZW5kaWYKICAgICAsIG1fc2V0dGluZ3Mo
bmV3IFNldHRpbmdzKHRoaXMpKQogICAgICwgbV9wcm9ncmVzcyhuZXcgUHJvZ3Jlc3NUcmFja2Vy
KQogICAgICwgbV9iYWNrRm9yd2FyZENvbnRyb2xsZXIobmV3IEJhY2tGb3J3YXJkQ29udHJvbGxl
cih0aGlzLCBiYWNrRm9yd2FyZENvbnRyb2xsZXJDbGllbnQpKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL1BhZ2UuaCBiL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNTZhMjVlYjgyNTdkMDRi
ZjFhYjc0ZWM2M2M0M2ZlYTg4YmVmODQwZC4uODU5OWE4MzIwNzZjZjBiMTQ0MDIxYzA0MTU4Nzli
NDA5YmQyMDQ1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCkBAIC03MCw2ICs3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBj
bGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogICAgIGNsYXNzIFNlbGVjdGlvbkNvbnRyb2xsZXI7CiAg
ICAgY2xhc3MgU2V0dGluZ3M7CisgICAgY2xhc3MgU3BlZWNoSW5wdXRDbGllbnQ7CiAKICNpZiBF
TkFCTEUoRE9NX1NUT1JBR0UpCiAgICAgY2xhc3MgU3RvcmFnZU5hbWVzcGFjZTsKQEAgLTE1Miw2
ICsxNTMsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCiAgICAgICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuZ2V0KCk7IH0KICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgICAg
IHZvaWQgc2V0U3BlZWNoSW5wdXRDbGllbnQoU3BlZWNoSW5wdXRDbGllbnQqIGNsaWVudCkgeyBt
X3NwZWVjaElucHV0Q2xpZW50ID0gY2xpZW50OyB9CisgICAgICAgIFNwZWVjaElucHV0Q2xpZW50
KiBzcGVlY2hJbnB1dENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlZWNoSW5wdXRDbGllbnQ7
IH0KKyNlbmRpZgogICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBt
X3NldHRpbmdzLmdldCgpOyB9CiAgICAgICAgIFByb2dyZXNzVHJhY2tlciogcHJvZ3Jlc3MoKSBj
b25zdCB7IHJldHVybiBtX3Byb2dyZXNzLmdldCgpOyB9CiAgICAgICAgIApAQCAtMjY5LDYgKzI3
NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQogICAgICAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBtX2RldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjsKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisg
ICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBtX3NwZWVjaElucHV0Q2xpZW50OworI2VuZGlmCiAg
ICAgICAgIE93blB0cjxTZXR0aW5ncz4gbV9zZXR0aW5nczsKICAgICAgICAgT3duUHRyPFByb2dy
ZXNzVHJhY2tlcj4gbV9wcm9ncmVzczsKICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvU3BlZWNoSW5wdXQuY3BwIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45MmRmNzBlNDdkZTQyNzNjNDg2YWE4ZWVkYjBlOGM4ZjRlZTU0NzdiCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmNwcApAQCAtMCwwICsxLDY3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0LmgiCisKKyNpZiBFTkFCTEUo
SU5QVVRfU1BFRUNIKQorCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJTcGVlY2hJbnB1
dENsaWVudC5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0TGlzdGVuZXIuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitTcGVlY2hJbnB1dDo6U3BlZWNoSW5wdXQoU3BlZWNoSW5wdXRDbGllbnQq
IGNsaWVudCwgU3BlZWNoSW5wdXRMaXN0ZW5lciogbGlzdGVuZXIpCisgICAgOiBtX2NsaWVudChj
bGllbnQpCisgICAgLCBtX2xpc3RlbmVyKGxpc3RlbmVyKQoreworfQorCit2b2lkIFNwZWVjaElu
cHV0OjpyZWNvcmRpbmdDb21wbGV0ZSgpCit7CisgICAgbV9saXN0ZW5lci0+cmVjb3JkaW5nQ29t
cGxldGUoKTsKK30KKwordm9pZCBTcGVlY2hJbnB1dDo6c2V0UmVjb2duaXRpb25SZXN1bHQoY29u
c3QgU3RyaW5nJiByZXN1bHQpCit7CisgICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1
bHQocmVzdWx0KTsKK30KKworYm9vbCBTcGVlY2hJbnB1dDo6c3RhcnRSZWNvZ25pdGlvbigpCit7
CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICByZXR1cm4gbV9jbGllbnQtPnN0YXJ0UmVjb2du
aXRpb24odGhpcyk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL1NwZWVjaElucHV0LmggYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMDFiZTk5MTBhMmM2Y2EyZGUwZDc1MDdjMWEyMTNjZDc5Njc2NzQ4Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmgKQEAgLTAsMCArMSw3MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgU3BlZWNoSW5wdXRfaAorI2RlZmluZSBTcGVlY2hJbnB1dF9oCisKKyNpZiBFTkFCTEUoSU5Q
VVRfU1BFRUNIKQorCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lci5oIgorI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFNwZWVjaElucHV0Q2xpZW50OworY2xhc3MgU3BlZWNoSW5wdXRMaXN0ZW5lcjsKK2NsYXNzIFN0
cmluZzsKKworLy8gVGhpcyBjbGFzcyBjb25uZWN0cyB0aGUgaW5wdXQgZWxlbWVudHMgcmVxdWly
aW5nIHNwZWVjaCBpbnB1dCB3aXRoIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYworLy8gc3BlZWNoIHJl
Y29nbml0aW9uIGVuZ2luZS4gSXQgcHJvdmlkZXMgbWV0aG9kcyBmb3IgdGhlIGlucHV0IGVsZW1l
bnRzIHRvIGFjdGl2YXRlIHNwZWVjaAorLy8gcmVjb2duaXRpb24gYW5kIG1ldGhvZHMgZm9yIHRo
ZSBzcGVlY2ggcmVjb2duaXRpb24gZW5naW5lIHRvIHJldHVybiBiYWNrIHRoZSByZXN1bHRzLgor
Y2xhc3MgU3BlZWNoSW5wdXQgOiBwdWJsaWMgTm9uY29weWFibGUsIHB1YmxpYyBTcGVlY2hJbnB1
dENsaWVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBTcGVlY2hJbnB1dChTcGVlY2hJbnB1dENs
aWVudCosIFNwZWVjaElucHV0TGlzdGVuZXIqKTsKKyAgICB2aXJ0dWFsIH5TcGVlY2hJbnB1dCgp
IHsgfQorCisgICAgLy8gTWV0aG9kcyBpbnZva2VkIGJ5IHRoZSBpbnB1dCBlbGVtZW50cy4KKyAg
ICB2aXJ0dWFsIGJvb2wgc3RhcnRSZWNvZ25pdGlvbigpOworCisgICAgLy8gU3BlZWNoSW5wdXRD
bGllbnQ6Okxpc3RlbmVyIG1ldGhvZHMuCisgICAgdmlydHVhbCB2b2lkIHJlY29yZGluZ0NvbXBs
ZXRlKCk7CisgICAgdmlydHVhbCB2b2lkIHNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmlu
ZyYpOworCitwcm90ZWN0ZWQ6CisgICAgU3BlZWNoSW5wdXRDbGllbnQqIGNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2xpZW50OyB9CisKK3ByaXZhdGU6CisgICAgU3BlZWNoSW5wdXRDbGllbnQq
IG1fY2xpZW50OworICAgIFNwZWVjaElucHV0TGlzdGVuZXIqIG1fbGlzdGVuZXI7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQor
CisjZW5kaWYgLy8gU3BlZWNoSW5wdXRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0Q2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iZTY4ZjQ2Yjk4ZTFmMmE4NmJhNjU0ZTc4ZmUxMjhhYzA2ZGVjMjExCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50LmgKQEAgLTAsMCArMSw1MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgU3BlZWNoSW5wdXRDbGllbnRfaAorI2RlZmluZSBTcGVlY2hJbnB1dENsaWVudF9oCisKKyNp
ZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNw
ZWVjaElucHV0Q2xpZW50TGlzdGVuZXI7CisKKy8vIFByb3ZpZGVzIGFuIGludGVyZmFjZSBmb3Ig
U3BlZWNoSW5wdXQgdG8gY2FsbCBpbnRvIHRoZSBlbWJlZGRlci4KK2NsYXNzIFNwZWVjaElucHV0
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJvb2wgc3RhcnRSZWNvZ25pdGlvbihTcGVl
Y2hJbnB1dENsaWVudExpc3RlbmVyKiBsaXN0ZW5lcikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAg
dmlydHVhbCB+U3BlZWNoSW5wdXRDbGllbnQoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKKyNlbmRpZiAvLyBTcGVl
Y2hJbnB1dENsaWVudF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGll
bnRMaXN0ZW5lci5oIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hOWE4OTdlNGIyYzdmNzExNDViZjM1NmU5Mzc3YzgzMWYyOGM1MmY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0Q2xpZW50TGlzdGVuZXIuaApA
QCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyX2gKKyNkZWZp
bmUgU3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lcl9oCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNI
KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFN0cmluZzsKKworLy8gUHJvdmlkZXMg
YW4gaW50ZXJmYWNlIGZvciB0aGUgZW1iZWRkZXIgdG8gY2FsbCBpbnRvIFdlYkNvcmUuCitjbGFz
cyBTcGVlY2hJbnB1dENsaWVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQg
cmVjb3JkaW5nQ29tcGxldGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFJlY29nbml0aW9u
UmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0
dWFsIH5TcGVlY2hJbnB1dENsaWVudExpc3RlbmVyKCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5kaWYgLy8g
U3BlZWNoSW5wdXRDbGllbnRMaXN0ZW5lcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3Bl
ZWNoSW5wdXRMaXN0ZW5lci5oIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMDg3ZDM2NzY4ZmY5Yjk1MzE2ZjNlNzZlOWViMmQ0ZWJjNjIyNjU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaApAQCAtMCww
ICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBTcGVlY2hJbnB1dExpc3RlbmVyX2gKKyNkZWZpbmUgU3BlZWNoSW5w
dXRMaXN0ZW5lcl9oCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFN0cmluZzsKKworLy8gSW50ZXJmYWNlIHRvIGJlIGltcGxlbWVudGVk
IGJ5IHRoZSBlbGVtZW50IHdoaWNoIGludm9rZXMgU3BlZWNoSW5wdXQuCitjbGFzcyBTcGVlY2hJ
bnB1dExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgcmVjb3JkaW5nQ29tcGxl
dGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0
cmluZyYgcmVzdWx0KSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5TcGVlY2hJbnB1
dExpc3RlbmVyKCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5kaWYgLy8gU3BlZWNoSW5wdXRMaXN0ZW5lcl9o
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>